In diesem Artikel werden wir darüber sprechen, was ein TSS ist, welche potenziellen Vorteile es für die Blockchain-Industrie bringt, wie es in einem Blockchain-Client implementiert werden kann, wie es im Vergleich zu Shamir Secret Sharing und Multisig funktioniert, welche verschiedenen Möglichkeiten es gibt, TSS für die verteilte Schlüsselverwaltung zu nutzen, und schließlich diskutieren wir seine Risiken und Grenzen.
Die Macht der Kryptographie
Blockchain
In diesem Artikel konzentrieren wir uns auf einen einzigen solchen Durchbruch: effiziente sichere Schwellenwert-Signaturen (TSS).
MPC und das Schwellenwert-Signaturschema (TSS)
Multi-Party-Computation (MPC) ist ein Zweig der Kryptographie, der mit der wegweisenden Arbeit von Andrew C. Yao vor fast 40 Jahren begann. In der MPC versuchen eine Reihe von Parteien, die sich gegenseitig nicht vertrauen, gemeinsam eine Funktion über ihre Eingaben zu berechnen, während sie diese Eingaben privat halten.
Nehmen wir als Beispiel, dass n Mitarbeiter eines Unternehmens wissen wollen, wer am meisten bezahlt bekommt, ohne sich gegenseitig ihr tatsächliches Gehalt mitzuteilen. Hier sind die privaten Eingaben Gehälter und die Ausgabe ist der Name des Mitarbeiters mit dem höchsten Gehalt. Wenn wir diese Berechnung mit MPC durchführen, stellen wir fest, dass bei der Berechnung nicht ein einziges Gehalt verraten wird.
Die beiden Hauptmerkmale von MPC sind Korrektheit und Datenschutz:
Korrektheit: Die von einem Algorithmus erzeugte Ausgabe ist korrekt (wie erwartet).
Datenschutz: Die geheimen Eingabedaten, die eine Partei besitzt, würden nicht an die anderen Parteien weitergegeben.
Wir werden MPC verwenden, um eine digitale Signatur auf verteilte Weise zu berechnen. Schauen wir uns an, wie die oben genannten Eigenschaften auf Signaturen angewendet werden können. Bitte merken Sie sich, für Signaturen haben wird drei Schritte:
Schlüsselgenerierung: Der erste Schritt ist auch der komplexeste. Wir müssen einen Schlüssel generieren, der öffentlich ist und zur Überprüfung zukünftiger Signaturen verwendet wird. Aber wir müssen auch ein individuelles Geheimnis für jede Partei generieren, das wir Secret Share nennen werden. In Bezug auf Korrektheit und Datenschutz sagen wir, dass die Funktion den gleichen Public Key an alle Parteien ausgibt und einen anderen Secret Share für jede dieser Parteien so dass bezüglich: (1) Datenschutz: keine Secret Shares Daten zwischen den Parteien weitergegeben werden, und bezüglich (2) Korrektheit: der Public Key eine Funktion der Secret Shares ist.
Signieren: Dieser Schritt beinhaltet eine Signaturgenerierungsfunktion. Die Eingabe jeder Partei ist ihr Secret Share, der als Ausgabe des vorherigen Schrittes (verteilte Schlüsselerzeugung) erstellt wurde. Es gibt auch öffentliche Eingaben, die allen bekannt sind, nämlich die zu unterzeichnende Nachricht. Die Ausgabe erfolgt mit einer digitalen Signatur, und die Datenschutzbestimmungen stellen sicher, dass bei der Berechnung keine Veröffentlichung der Secret Shares auftritt.
- Verifizierung: Der Verifizierungsalgorithmus bleibt so, wie er in der klassischen Umgebung ist. Um mit einzelnen Schlüsselsignaturen kompatibel zu sein, sollte jeder, der den Public Key kennt, in der Lage sein, die Signaturen zu überprüfen und zu validieren. Das ist genau das, was die Blockchain zur Validierung von Nodes tut.
Threshold Signature Scheme (TSS) ist der Name, den wir dieser Zusammensetzung aus verteilter Schlüsselgenerierung (Distributed Key Generation - DKG) und verteilter Unterzeichung (Distributed Signing) einem Schwellenwert-Signaturschema (Threshold Signature Schema) geben.
Kombination von TSS mit Blockchains
Um es näher zu erläutern, beschreiben wir zunächst kurz, wie neue Adressen im klassischen Blockchain-Design entstehen. Einfach ausgedrückt, können wir eine neue Adresse erstellen, indem wir einen Private Key generieren und dann den Public Key aus dem Private Key berechnen. Schließlich wird die Blockchain-Adresse aus dem Public Key abgeleitet.
Mit TSS hätten wir nun eine Reihe von n Parteien, die gemeinsam den Public Key berechnen und jeweils einen Secret Share des Private Keys halten (die einzelnen Shares werden den anderen Parteien nicht mitgeteilt). Aus dem Public Key können wir die Adresse auf die gleiche Weise wie im traditionellen System ableiten, wodurch die Blockchain agnostisch wird, wie die Adresse generiert wird. Der Vorteil ist, dass der Private Key kein Single Point of Failure mehr ist, da jede Partei nur noch einen Teil davon besitzt.
Das Gleiche kann beim Signieren von Transaktionen getan werden. In diesem Fall führen wir anstelle einer Einzelsignatur mit ihrem Private Key eine verteilte Signaturgenerierung zwischen mehreren Parteien durch. So kann jede Partei eine gültige Signatur vorlegen, solange genügend von ihnen ehrlich handeln. Erneut sind wir von der lokalen Berechnung (Single Point of Failure) zu einer interaktiven übergegangen.
Es ist wichtig zu erwähnen, dass die verteilte Schlüsselerzeugung so erfolgen kann, dass verschiedene Arten von Zugriffsstrukturen möglich sind: Die allgemeine “t von n” Einstellung wird in der Lage sein, bis zu t beliebige Ausfälle bei Private Key Operationen zu überstehen, ohne die Sicherheit zu beeinträchtigen.
TSS vs. Multisig
Anders ausgedrückt, versuchen sowohl Multisig als auch TSS im Wesentlichen, ähnliche Ziele zu erreichen, aber TSS verwendet Kryptographie off-chain, während Multisig on-chain geschieht. Die Blockchain benötigt jedoch eine Möglichkeit, Multisig zu kodieren, was den Datenschutz beeinträchtigen kann, da die Zugriffsstruktur (Anzahl der Unterzeichner) auf der Blockchain sichtbar ist. Die Kosten einer Multisig-Transaktion sind höher, da die Informationen über die verschiedenen Unterzeichner auch auf der Blockchain kommuniziert werden müssen.
In TSS werden die Daten der Unterzeichner in eine normal aussehende Transaktion umgewandelt, was die Kosten senkt und den Datenschutz gewährleistet. Andererseits kann Multisig nicht interaktiv sein, was den Aufwand erspart, eine komplexe Kommunikationsschicht zwischen den verschiedenen Unterzeichnern zu betreiben.
TSS vs. Shamir Secret Sharing Schema
Das Shamir Secret Sharing Schema (SSSS) bietet eine Möglichkeit, den Private Key auf eine verteilte Weise zu speichern, so dass der Private Key, während er sich im Ruhezustand befindet, an mehreren Orten gespeichert wird. Es gibt zwei Unterschiede zwischen SSSS und TSS:
Schlüsselgenerierung: Im SSSS gibt es eine einzige Person genannt der “Dealer”, der für die Generierung der Private Key Secret Shares verantwortlich ist. Das bedeutet, dass zum Zeitpunkt der Schlüsselgenerierung der Private Key an einem einzigen Ort generiert und dann vom Dealer an die verschiedenen Standorte verteilt wird. Im TSS gibt es keinen Dealer, da seine Rolle so verteilt ist, dass sich der vollständige Private Key nie an einem einzigen Ort befindet.
Signieren: Im SSSS müssen die Parteien den vollständigen Private Key rekonstruieren, um zu signieren, was wiederum zu einem Single Point of Failure führt, wenn eine Signatur benötigt wird. Im TSS erfolgt die Signierung auf verteilte Weise, ohne dass die Secret Shares jemals rekonstruiert werden.
Wie wir sehen können, befindet sich im TSS der Private Key (der die Sicherheit des Systems darstellt) während seiner gesamten Lebensdauer nie an einem einzigen Ort.
Threshold Wallets
In einer Threshold Wallet sind die Dinge komplexer. Obwohl es möglich ist, eine HD-Struktur zu erzeugen, muss ihre Erzeugung verteilt berechnet werden, wie ein anderes MPC-Protokoll. Die Parteien müssen gemeinsam entscheiden, was der nächste Schlüssel ist, der verwendet werden soll. Mit anderen Worten, jede Partei wird eine eigene Seed Phrase haben. Die Seed-Phrasen werden separat generiert und nie kombiniert, so dass eine einzelne Partei nicht die Private Keys aus ihrem Seed ableiten kann.
TSS-basierte Wallets haben auch ein nettes Sicherheitsmerkmal, nämlich die Möglichkeit der Private Key Rotation, ohne die entsprechenden Public Keys und Blockchain-Adressen zu ändern. Private Key Rotation, auch bekannt als proaktives Secret Sharing, ist ein weiteres MPC-Protokoll, das die Secret Shares als Eingabe nimmt und einen neuen Satz von Secret Shares ausgibt. Die alten Secret Shares können gelöscht und die neuen auf die gleiche Weise verwendet werden.
Eine solche Struktur fügt der Sicherheit eine zeitliche Dimension hinzu, was bedeutet, dass sich ein Angreifer gleichzeitig an mehreren Stellen befinden muss, um eine Threshold Wallet anzugreifen. Die Kombination der Secret Shares vor und nach der Rotation gibt dem Angreifer keinen zusätzlichen Vorteil, wenn er eine Signatur fälschen will.
Ein Nachteil dieser Art von Wallet ist, dass das Fehlen einer Seed Phrase sie inkompatibel mit Single-Key-Wallet-Systemen macht. Daher ist es wichtig zu überlegen, welche Parteien die Secret Shares besitzen werden.
Es gibt einige mögliche Architekturen:
Outsourcing TSS: Der Benutzer lässt “n” Server die Berechnung in seinem Auftrag durchführen. Effektives Outsourcing der Schlüsselgenerierung, -verwaltung und -signierung an Dienstleister, die nicht die Eigentümer der Vermögenswerte sind, sondern eine Sicherheitsebene als Gegenleistung für eine gewisse Vergütung bereitstellen.
Verwendung mehrerer Geräte: Der Benutzer führt das TSS zwischen den Geräten aus, die er besitzt. Zum Beispiel - eine Partei wird ein IoT-Gerät sein, eine andere Partei wird das Smartphone des Benutzers sein, eine andere Partei sein Laptop, und so weiter.
Hybrid: TSS wird so laufen, dass einige Parteien von externen Dienstanbietern kontrolliert werden und andere auf benutzereigenen Geräten.
Die erste Methode entlastet die Benutzer-Client-Seite von der aufwändigen TSS-Berechnung. Andererseits können die Dienstleister kooperieren (wir gehen davon aus, dass nicht genug von ihnen gleichzeitig angegriffen werden, aber in der Praxis wäre es möglich) und die Vermögenswerte des Benutzers stehlen.
Die zweite Methode gibt dem Benutzer die volle Kontrolle, macht es aber schwierig, Transaktionen durchzuführen, da Sie mehrere Geräte benötigen, um online zu gehen und mit der TSS-Berechnung zu arbeiten.
Die dritte Option gilt als die beste Kombination beider Möglichkeiten, da sie dem Benutzer eine einfache und schnelle Möglichkeit bietet, Transaktionen durchzuführen, ohne jedoch zu risikieren, dass Transaktionen ohne die Autorisierung des Benutzers durchgeführt werden können.
TSS und Smart Contracts
Risiken
Positiv zu vermerken ist, dass bestehende und neue Implementierungen durch eine Zunahme der qualitativen Beiträge, Peer Reviews, Audits und algorithmische Leistungssteigerungen verbessert werden.
Fazit
In diesem Artikel stellten wir die Grundlagen des Schwellenwert-Signaturschemas (TSS) vor, das ein faszinierendes kryptographisches Grundmodell ist, das das Potenzial hat, die Art und Weise, wie wir Blockchain verwenden, erheblich zu verändern.
Weiterführende Literatur: