Die Schnorr-Signatur ist ein 1989/1991 vom deutschen Mathematikprofessor Claus-Peter Schnorr entworfenes kryptographisches Schema für digitale Signaturen.
Digitale Signaturen sind eine grundlegende Technologie von Bitcoin und anderen digitalen Netzwerken, die Milliarden von Menschen täglich nutzen. In digital nativen Netzwerken wie Bitcoin dienen digitale Signaturen als Autorisierungs- und Beweismittel, ähnlich wie eine handschriftliche Signatur auf einem Scheck die Autorisierung zum Geldtransport impliziert oder ein Fingerabdruck auf einem Türgriff vor Gericht als Beweismittel dienen kann.
Das Bitcoin-Protokoll verwendet derzeit einen bestimmten Signaturalgorithmus, den so genannten Elliptic Curve Digital Signature Algorithm (ECDSA). In nicht allzu ferner Zukunft wird erwartet, dass ein neuer Signaturalgorithmus namens Schnorr-Signaturen ein gültiger Signaturtyp im Bitcoin-Netzwerk ist.
Schnorr-Signaturen helfen bei zwei heiklen Problemen im Bitcoin-Netzwerk: Skalierung und Datenschutz.
Schnorr-Signatur: Skalierung
Zu einem bestimmten Zeitpunkt ist im Bitcoin-Netzwerk nur so viel Kapazität für die Abwicklung von Transaktionen vorhanden. Jeder Block in der Bitcoin-Blockchain enthält die relevanten Daten, die zum Aktualisieren des Netzwerkstatus basierend auf den Absichten und Aktivitäten der Netzwerkteilnehmer erforderlich sind. In diesen Datenblöcken sind digitale Signaturen enthalten, die als Nachweis für den Geldtransport im Netzwerk dienen. Derzeit machen digitale Signaturen 20-40% der Kapazität jedes Blocks aus.
ECDSA-Signaturen bestehen normalerweise aus 72 Byte pro Signatur, wobei Schnorr-Signaturen eine maximale Länge von 64 Byte haben. Dies führt zu einer Reduzierung der Signaturgröße um ca. 12%. Die Verwendung von Schnorr-Signaturen in Transaktionen mit einfacher Signatur würde dazu beitragen, ein wenig mehr Platz für mehr Transaktionen freizugeben, jedoch nur geringfügig. Schnorr hilft in dieser Hinsicht, aber das ist nicht das, was die Bitcoin-Entwicklergemeinschaft begeistert.
Die großen Skalierungsgewinne resultieren aus dem Einsatz von Schnorr bei Transaktionen mit mehreren Signaturen. Der Schnorr-Signaturalgorithmus enthält eine mathematische Eigenschaft, die eine so genannte „Aggregation“ ermöglicht. Dies ist der Schlüssel zur Erschließung der Skalierungsvorteile von Schnorr.
Schnorr-Signatur: Privatsphäre
Die Schlüsselaggregation verbessert nicht nur die Skalierbarkeit, indem die Datenmenge, die zum Verschieben von Geldern in einem Multi-Sig-Wallet erforderlich ist, drastisch gesenkt wird, sondern verbessert auch den Datenschutz für diese Arten von Transaktionen erheblich.
Für das Bitcoin-Netzwerk sehen Multi-Sig-Setups, die vom Schnorr-Signaturalgorithmus unterstützt werden, wie ein öffentlicher Schlüssel mit einer digitalen Signatur aus, obwohl der öffentliche Schlüssel und die digitale Signatur Aggregationen aus mehreren Schlüsseln und mehreren Signaturen sind.
Im aktuellen System müssen alle öffentlichen Schlüssel, die in einem Mehrsignaturschema enthalten sind, dem Bitcoin-Netzwerk bekannt sein. Durch das Zusammenfassen dieser Schlüssel zu einem Schlüssel haben wir die Notwendigkeit des Netzwerks beseitigt, diese anderen Schlüssel zu kennen. Dies erhöht die Privatsphäre jeder Person oder Organisation im Multi-Sig-Setup. Das Netzwerk hat keine Kenntnis von den öffentlichen Schlüsseln, die zur Erstellung des aggregierten öffentlichen Schlüssels erforderlich sind, und weiß nicht, welche der Parteien die Transaktion unterzeichnet haben.
Multi-Sig
Wie der Name schon sagt, erfordern Transaktionen mit mehreren Signaturen (Multi-Sig) mehrere Signaturen, um bestimmte Bitcoin-Einheiten zu verschieben.
Zum Beispiel könnte ich ein Wallet mit mehreren Signaturen einrichten, für die zwei eindeutige digitale Signaturen aus einem möglichen Satz von drei öffentlichen Schlüsseln erforderlich sind, die zum Verschieben von Geldern berechtigt sind. Derzeit muss das Bitcoin-Netzwerk jeden der 3 öffentlichen Schlüssel kennen, die den Einheiten von Bitcoin zugeordnet sind. Darüber hinaus müssen die Teilnehmer des Multi-Sig mindestens 2 gültige ECDSA-Signaturen vorlegen, um die mit den 3 öffentlichen Schlüsseln verbundenen Beträge zu übertragen. Im Gegensatz dazu können mit dem Schnorr-Signaturalgorithmus die drei öffentlichen Schlüssel zu einem einzigen öffentlichen Schlüssel zusammengefasst werden, sodass die Gruppe nur eine digitale Signatur erstellen kann, die mehrere unabhängige Signaturen darstellt. Anstatt 3 verschiedene öffentliche Schlüssel und ein paar verschiedene Signaturen erstellen und einschließen zu müssen, müssen bei Schnorr-basierten Signaturen nicht mehr mehrere Schlüssel und Signaturen erstellt werden. Unter einem Schnorr-Signaturregime muss das Bitcoin-Netzwerk nur 1 öffentlichen Schlüssel und 1 digitale Signatur kennen und aufzeichnen, die mathematisch das gesamte Mehrfachsignaturschema darstellen.
Die Vorteile von Schnorr-Signaturen erhöhen sich mit der Anzahl der Schlüssel und Signaturen, die für den Geldtransport erforderlich sind. Schnorr macht große Multi-Sig-Setups für Benutzer und das Netzwerk gleichermaßen attraktiver. Dies reduziert die Kosten für den Umzug von Geldern für Benutzer sowie die Skalierungsprobleme, die mit der verstärkten Verwendung von Multi-Sig-Transaktionen verbunden sind.
Ein 2-aus-3-Multi-Sig-Setup, das Schnorr-Signaturen nutzt, kann die Anzahl der öffentlichen Schlüssel, die das Bitcoin-Netzwerk wissen muss, um 67% und die Anzahl der benötigten Signaturen um 50% reduzieren. Wenn wir das Multi-Sig-Schema auf 10 von 15 erweitern, können wir die Anzahl der öffentlichen Schlüssel, über die das Bitcoin-Protokoll Bescheid wissen muss, um 93% und die Anzahl der Signaturen um 90% reduzieren! Dies ist eine enorme potenzielle Datenreduzierung, die das Bitcoin-Netzwerk nachverfolgen und protokollieren muss.
Beachten Sie, dass digitale Signaturen nur einen Teil der Größe oder des Gewichts einer Transaktion ausmachen. Die oben angegebenen Zahlen sollen die dramatischen Einschnitte bei den Informationen veranschaulichen, die für die Transaktion aus einer auf Schnorr basierendem Multi-Sign-Wallet im Vergleich zu eines auf ECDSA basierenden Multi-Sig-Wallet erforderlich sind. Durch eine Reduzierung der Anzahl der Signaturen um 90% wird die GesamtTransaktionsgröße nicht um 90% reduziert, da Signaturen und Schlüssel Teil des gesamten Datensatzes sind, der einer bestimmten Transaktion zugeordnet ist.
MuSig
Es ist unklar, wann Schnorr-Signaturen als gültiger Signaturtyp in das Bitcoin-Protokoll aufgenommen werden. Ein formaler Vorschlag mit dem Namen „MuSig“ wurde bereits als mögliche Standardisierung des Schnorr-Algorithmus für die Zwecke des Bitcoin-Netzwerks angeboten.
Der MuSig-Vorschlag wurde Anfang 2018 von Yannick Seurin, Greg Maxwell und Andrew Poelstra, drei erfahrenen Bitcoin-Entwicklern, zusammengestellt. Ungefähr ein Jahr später wandelte das Team ein theoretisches Papier in verwendbaren Code um, der derzeit von der Bitcoin-Entwicklergemeinschaft ausgiebig getestet wird. Die Hoffnung der Entwickler von MuSig ist, dass der Code schließlich in Bitcoin Core, der vorherrschenden Referenzimplementierung des Bitcoin-Protokolls, integriert wird. Wann das passieren wird, ist spekulativ.
Fazit
Es gibt immer viele Ideen in der Bitcoin-Entwicklergemeinschaft, aber Schnorr-Signaturen scheinen eine der populäreren Lösungsvorschläge zu sein, die viele begeistert haben. Schnorr verbessert nicht nur die Skalierbarkeit und die Vertraulichkeit der Verwendung mehrerer Signaturen, wie oben beschrieben, sondern ermöglicht auch andere Vorschläge, die in der Bitcoin-Entwicklergemeinschaft herumschwirren, wie MAST und TapRoot. Diese Vorschläge würden den Rahmen dieses Beitrags sprengen, könnten jedoch Themen in späteren Beiträgen sein.
Ich freue mich auf die weitere Entwicklung des Bitcoin-Protokolls und werde bei jedem Schritt dabei sein, den Benutzern dabei zu helfen, das Beste aus den neuen Updates im Bitcoin-Netzwerk herauszuholen.
Mit freundlichen Grüßen