Wir sind stolz darauf, dass es PIVX als erster gelungen ist, Bulletproofs im Zerocoin-Protokoll zu implementieren. Die Implementierung wurde auf dem GitHub von PIVX publiziert. Es wurde von den PIVX-Entwicklern Random Zebra und Furszy ins Leben gerufen; die Kryptographie wurde von Mary Maller und Jonathan Bootle beigesteuert. Sie haben die Signatur des “Knowledge-Algorithmus” entscheidend verbessert um die Größe von Proofs signifikant zu verkleinern. Dadurch reduziert sich die Größe der Zerocoin-Transaktionen und der Blockchain und die Bestätigungszeiten haben sich ebenfalls verbessert. Auditoren sind herzlich eingeladen, den Code zu überprüfen. Ab dem Update 3.2 der Core-Wallet kann die Implementierung auf unserem Testnet getestet werden.
Warum ist das relevant?

Das Hauptziel des Projektes war es, die Effizienz und Skalierbarkeit des Zerocoin-Protokolls zu verbessern. Im Speziellen war unser Ziel die sogenannten “Communication Costs” zu reduzieren (die Menge an Daten die in jeder Session ausgetauscht werden müssen und die letztendlich in der Blockchain gespeichert werden). Eine Transaktion via Zerocoin benötigt rund 20 kB Speicher. Neben anderen Daten beinhaltet eine Transaktion zwei “Zero-Knowledge-Proofs” (Der “Accumulator”-Nachweis der ungefähr 5 kB groß ist und die Seriennummer der Signatur, die ungefähr 14 kB groß ist. Wir haben an letzterem gearbeitet. Wir sind das Problem, welches als “Arithmetic Circuit” bekannt ist, angegangen. “Arithmetic Circuits” sind Methoden um Probleme der Komplexitätstheorie zu erklären. In der kryptographischen Literatur gibt es eine Vielzahl von Zero-Knowledge-Algorithmen, welche eine Lösung für Arithmetic Circuits darstellen. Wir haben uns dazu entschlossen Bulletproofs also Lösung einzusetzen, weil diese sehr effizient sind. Bulletproofs wurde von Bootle, Cerulli, Chaidos, Groth und Petit entwickelt und von Bunz, Bootle, Boneh, Poelstra und Maxwell weiterentwickelt. Auf der Website von Standford heißt es:

“Bulletproofs sind kurze, nicht-interaktive Zero-Knowledge-Proofs, die kein auf Vertrauen basiertes System benötigen. Ein Bulletproof kann dazu eingesetzt werden um eine bestätigende Instanz davon zu überzeugen, dass der verschlüsselte Text richtig formatiert ist. Zum Beispiel ein Nachweis dafür, dass sich eine verschlüsselte Nummer in einer vorgegebenen Bandbreite befindet, ohne die Nummer selbst preiszugeben. Im Gegensatz zu SNARKs benötigen Bulletproofs kein System das auf Vertrauen basiert. Allerdings benötigt die Verifikation eines Bulletproofs mehr Zeit als bei SNARK. Bulletproofs sollen Transaktionen in Bitcoin und anderen Kryptowährungen geheim und gleichzeitig effizient machen.“

Bulletproofs haben eine Vielzahl an Anwendungen in kryptographischen Protokollen wie z.B. bei vertraulichen Smart-Contracts und im allgemeinen als Ersatz für Sigma-Protokolle. Unserem Wissen nach ist dies die erste und bisher einzige Anwendung von Bulletproofs als Teil des Zerocoin-Protokolls. Mit dieser Technologie war es uns möglich, die Größe der Signaturen von 14 kB auf ungefähr 4 kB zu reduzieren (das entspricht einer Reduktion der “Communication Cost” von 71%). Die gesamte Transaktionsgröße wurde damit fast um die Hälfte reduziert (auf ungefähr 10 kB).** Dabei können wir die Leistung beibehalten, teilweise sogar leicht verbessern (die Zeit, die benötigt wird um eine Ausgabe zu produzieren und zu verifizieren).

Bulletproofs und Zerocoin auf unserem öffentlichen GITHUB

** Mit der nächsten Version werden sich diese Zahlen wahrscheinlich ändern.

Weitere Innovationen von PIVX

%d Bloggern gefällt das: