Schnorr kommt näher

Die Bitcoin-Entwickler träumen schon lange davon, die ECDSA-Signaturen durch Schnorr-Signaturen zu ersetzen. Ein BIP von Bitcoin-Core-Entwickler Pieter Wuille bringt sie diesem Traum ein Stückchen näher …

Ein Bitcoin Improvement Proposal (BIP) von Pieter Wuille könnte die nach SegWit nächste größere Änderung im Bitcoin-Protokoll einleiten. Dabei geht es darum, mit Schnorr-Signaturen eine Alternative zu den heute verwendeten ECDSA-Signaturen anzubieten. Viele Bitcoin-Entwickler wünschen sich das schon lange, weil die Schnorr-Signaturen einige äußerst attraktive Vorteile haben.

Detail mit großer Wirkung

Um zumindest im Ansatz zu verstehen, weshalb Schnorr-Signaturen so begehrt sind, müssen wir ein klein wenig ausholen. Bitcoin verwendet einen Elliptic Curve Signature Algorithm (ECDSA). Signaturen werden mithilfe der Koordinaten eines zufälligen Punktes auf einer bestimmten elliptischen Kurve gebildet, und um sie zu prüfen, muss man die Rechnung umdrehen und schauen, ob man auf einem passenden Punkt landet. Oder so ähnlich.

Dieses Verfahren benötigt nicht allzu viel Rechenleistung, produziert relativ kompakte Signaturen, und gilt als bewährt, da es sich seit Jahren im Einsatz bewährt. Es ist aber nicht perfekt. Die Nachteile sind vor allem, dass die Prüfung von Signaturen einige rechenintensive Operationen, wie Inversionen und Punktmultiplikationen, beinhaltet, man Signaturen nicht aggregieren kann und Signaturen inhärent mallebel sind, also “umgebogen” werden können (siehe Malleable Transaktionen).

Schnorr-Signaturen lösen diese Probleme. Das Verfahren beruht auf der Arbeit des deutschen Mathematikers Claus-Peter Schnorr, der ein Patent auf sie hielt, das 2008 ausgelaufen ist. Seitdem stehen Schnorr-Signaturen mehr und mehr im Fokus der Wissenschaft, auch wenn sie bis heute noch relativ selten in der Praxis angewandt werden. Die Methode unterscheidet sich nicht so sehr von ECDSA; sie beruht ebenfalls auf zufälligen Punkten auf einer elliptischen Kurve, verwendet diese aber ein wenig anders und ändert die Berechnungsformel ein wenig.

Das Ergebnis dieser Detail-Änderungen ist beeindruckend: Schnorr-Signaturen sind absolut nicht malleabel, können leichter verifiziert werden und sind aggregierbar.

Aggregierte, gebatchte, blinde Signaturen

Für Bitcoin haben Schnorr-Signaturen mehrere Vorteile. Pieter Wuille erklärt in seinem BIP, wofür man sie benutzen kann.

Ein großer Fortschritt wären Schwellen-Signaturen für Multisig-Transaktionen. Multisig meint, dass mehrere Parteien eine Transaktion signieren müssen, damit sie gültig ist. Bisher läuft dies so ab, dass man jede benötigte Signatur in die Transaktion schreiben muss. Wenn also eine Transaktion von sieben Parteien signiert wird, speichert man auch sieben Signaturen in der Blockchain ab. Mit Schnorr kann man ein Multisig so aufbauen, dass verschiedene Teilnehmer zusammen eine einzelne Signatur produzieren. Damit würde sich eine Multig-Transaktion genauso verhalten wie eine normale Transaktion – was unbestreitbar vorteilhaft für die Privatsphäre der User wie auch für die Skalierbarkeit der Blockchain wäre.

Weiter erklärt Wuille, dass mit Schnorr sogenannte “Adopter Signaturen” oder “skriptlose Signaturen” möglich werden. Dabei verweist der Entwickler auf die Präsentation von Andrew Poelstra zu MimbleWimble. Ebenfalls möglich werden könnten Blinde Signaturen, was meint, dass jemand eine Nachricht signiert, ohne ihren Inhalt zu kennen. Dies macht beispielsweise blinde Währungswechsel, Treuhänder, denen man nicht vertrauen muss und viele weitere Konstruktionen möglich, mit denen man die Privatsphäre von Bitcoin-Usern verbessert.

Stepan Snigirev, ein Quantenphysiker, der in die Bitcoin-Entwicklung einsteigt, hat kürzlich einen erhellenden Artikel über Schnorr-Signaturen geschrieben. Dabei erklärt er auch, wie viel Rechenarbeit Schnorr-Signaturen sparen können: Während die Verifizierung von einem Block mit 1000 ECDSA-Signaturen erfordert, dass man 1000 Inversionen und 2000 Punkt-Multiplikationen, insgesamt etwa 3000 schwierige Operationen, berechnet, sind mit Schnorr lediglich sehr einfache Punktadditionjen und 1001 Punkt-Multiplikationen notwendig. Die Computer sparen sich insgesamt also rund ein Drittel an Arbeit. Hardware-Wallets oder “kleine” Nodes werden hierfür dankbar sein.

Es gibt auch noch die Idee, um mit Schnorr die Signaturen einer Transaktion zu aggregieren. Bisher braucht eine Transaktion je Input eine Signatur, was bei Transaktionen, die aus vielen “Münzen” (Inputs) bestehen, eine Menge an Blockchain-Speicher und Rechenleistung benötigt. Mit Schnorr wäre es wohl auch möglich, diese Signaturen zu einer Signatur zusammenzufassen (“batching”), was eine große Menge an Speicher sparen und ein massiver Schritt zu einer höheren Kapazität sein würde. Dies ist eines der spannendsten Features von Schnorr.

Vorerst nur ein Standard und noch keine Integration

Bei der Ankündigung des BIPs in der Mailing-Liste der Entwickler versucht Pieter Wuille, allzu hohe Erwartungen zu dämpfen. “Es ist einfach nur ein Entwurf einer Spezifizierung des Signatur-Verfahrens selbst. Es berührt keine Konsens-Regeln, Aggregierung oder irgendeine andere Integration in Bitcoin.” Wuille versucht lediglich, einen Standard des Signaturverfahrens zu etablieren, was ein erster Schritt für die Integration in Bitcoin selbst ist.

Die Inhalte des Vorschlags sind daher auch noch weit von der Anwendung entfernt und dürften für Nicht-Kryptographen relativ trocken und langweilig sein. Denn Schnorr ist weniger ein konkreter Algorithmus, als ein Bündel von Methoden. Es gibt verschiedene Varianten, das Verfahren einzusetzen, und nicht jede ist für jeden Zweck gleich gut geeignet. Wuille versucht daher, die Varianten zu finden, die für Bitcoin am besten geeignet sind. Dabei versucht er, künftige Anwendungen – etwa das “Batching” von Signaturen, die Implementierung geplanter Skriptbefehle – vorwegzunehmen und zwischen verschiedenen Tradeoffs (etwa zwischen Effizienz und Kompaktheit) die richtige Entscheidung zu treffen.

Wenn sich die technische Community auf einen solchen Standard einigt, erklärt Wuille Coindesk, kann man damit beginnen, an der Integration zu arbeiten. Diese wird dann vermutlich eine Änderung der Konsens-Regeln per Softfork beinhalten, welche Schnorr mehr oder weniger in SegWit integriert. Noch weiter wird der Weg dahin sein, Schnorr in die Wallets zu bringen und Signaturen zu batchen. Diesen Teil von Schnorr, der vielleicht am aufregendsten ist, will Wuille bewusst weiter nach hinten verzögern, weil es noch so viele spannende Ideen gibt, die Skripte von Bitcoin zu verbessern – etwa MAST, Taproot und mehr – welche alle die konkrete Implementierung des Batchings berühren.

Stepan Snigirev wendet noch ein, dass auch die Bildung von Multisig-Adressen mit den Schwellensignaturen von Schnorr mit einem Nachteil daher kommt. So gibt es zum einen einige Angriffe, die zwar verhindert werden können, was aber die Angelegenheit etwas verkompliziert. Zum anderen erfordern die Schwellensignaturen, dass sich alle Beteiligten bei der Zeichnung der Transaktion nicht nur einmal absprechen, wie bisher, sondern zweimal. Dies wäre vom Standpunkt der User-Experience ein ziemlich großer Rückschritt.

Allerdings schmälert dies nicht die vielen Vorteile, die Schnorr mit sich bringt. Es ist ein Baustein für zahlreiche weitere Verbesserungen von Bitcoin, die bisher noch nicht einmal vollständig erahnt werden können. Insbesondere für die Privatsphäre der User könnten Anwendungen auf Basis von Schnorr-Signaturen einen großen Beitrag leisten. Pieter Wuilles BIP stellt nun einen wichtigen Schritt hin, um diesen Baustein Wirklichkeit werden zu lassen.

Original source: https://bitcoinblog.de/2018/07/16/schnorr-kommt-naeher/

Enter your Email Address