Fastcrypto, die in Sui verwendete Kryptografiebibliothek, hat viele Geschwindigkeitsrekorde gebrochen, und unsere Arbeit an Benchmarks und Sicherheitsanalysen hat zahlreiche Sicherheitslücken behoben und gleichzeitig durch die Identifizierung neuartiger Optimierungstricks die Tür für Innovationen geöffnet.

Ein Artikel mit dem Titel „Fastcrypto: Pioneering Cryptography Via Continuous Benchmarking“, der kürzlich beim Benchmarking-Workshop der International Conference on Performance Engineering (ICPE) am Imperial College in London vorgestellt wurde, beschreibt unser kontinuierliches und systematisches Benchmarking kryptografischer Funktionen in der Fastcrypto-Bibliothek.

Die Präsentation war Teil einer Sitzung mit dem Titel „Innovationen bei Leistungstests: Strategien und Technologien“ im Workshop „Lasttests und Benchmarking von Softwaresystemen“. Die Konferenz zog Gäste aus Wissenschaft und Industrie an, darunter Vertreter von MongoDB und Amazon, die im selben Workshop auch Vorträge hielten.

Wir haben das systematische und kontinuierliche Benchmarking der Fastcrypto-Bibliothek hervorgehoben, einer Sammlung kryptografischer Funktionen wie digitaler Signaturen, Hash-Funktionen und Zero-Knowledge-Beweise. In Fastcrypto werden alle Funktionen bei der Veröffentlichung und auf Anfrage kontinuierlich getestet und die Ergebnisse online veröffentlicht. Ähnliche Funktionen können leicht verglichen werden und wir pflegen die historischen Daten, um die Leistung im Laufe der Zeit verfolgen zu können.

In der Präsentation wurde betont, dass diese Benchmarks zu fundierteren Entscheidungen bei der Entwicklung von Fastcrypto und Sui beigetragen haben, indem sie die Auswahl von Abhängigkeiten und die Nutzung beeinflussten und die Konzentration der Entwicklerressourcen optimierten.

Qualifizierte Entscheidungsfindung durch Benchmarks

Eine Fallstudie aus dem Papier befasste sich mit der Herausforderung, ein Signaturschema für Validierer in Sui auszuwählen. Damit ein Benutzer eine Transaktion an Sui übermitteln kann, muss die Transaktion von einem Quorum von Validierern signiert und zu einem Transaktionszertifikat zusammengefasst werden. Bei ungefähr 100 Validierern und einem gleichmäßig verteilten Anteil besteht ein Quorum aus 67 Validierern, was bedeutet, dass jeder Validierer 67 Signaturen pro Transaktion überprüfen muss.

Mit dem BLS-Signaturschema können mehrere Signaturen wie eine einzige Signatur verifiziert werden, es ist jedoch viel langsamer als Alternativen wie EdDSA. Detaillierte Benchmarks haben ergeben, dass der Break-Even-Punkt zwischen diesen beiden Schemata bei 40 bis 45 Signaturen liegt. Daher ist die Verwendung von BLS für Sui effizienter und wird heute tatsächlich verwendet.

Ein Benchmarking der Signaturschemata von EdDSA und BLS ergab einen Break-Even-Punkt bei 40 bis 45 gebündelten Signaturen. Dies zeigt, dass BLS mit Suis Validator-Pool eine leistungsfähige Wahl ist.

„Man sollte sich auch Sorgen machen, wenn die Software plötzlich viel schneller ist“

Die Präsentation zeigte auch, wie Benchmarks unerwartetes Softwareverhalten aufdecken können. Ein Beispiel betraf Bibliotheken, die das EdDSA-Signaturschema implementierten, das davon ausging, dass der öffentliche Schlüssel zwischengespeichert und als Eingabe für die Signaturfunktion bereitgestellt werden sollte. Wenn ein falscher öffentlicher Schlüssel bereitgestellt wurde, konnte dies zur Extraktion des privaten Schlüssels führen (wie in unserem GitHub ed25519-unsafe-libs gezeigt).

Dieses Problem wurde festgestellt, weil einige Bibliotheken ungewöhnlich schnell arbeiteten, indem sie die Ableitung des öffentlichen Schlüssels umgingen und den möglicherweise falschen Schlüssel als Argument verwendeten. Obwohl Benchmarks oft darauf abzielen, Software zu beschleunigen, „sollten Sie sich auch Sorgen machen, wenn die Software plötzlich viel schneller ist“, wie ein Teilnehmer des Workshops bemerkte.