Schnorr-Batch-Validierungsgeschwindigkeitsstatistik

In dieser Frage Was sind die Vorteile von Schnorr gegenüber ECDSA? Ich sehe in der Antwort von Pieter Wuille den folgenden Kommentar zur Batch-Validierung von Schnorr-Signaturen: „Verbesserung der Verifizierungsgeschwindigkeit durch gleichzeitige Unterstützung der Batch-Validierung aller Signaturen in einem Block (für einen Bruchteil der Geschwindigkeit, mit der sie einzeln validiert werden).“

Wenn man sich jedoch dieses Diagramm ansieht (ursprünglich in BIP 340, aber seitdem entfernt ), scheint es, dass die Einsparungen tatsächlich näher an einem Faktor von log(n) liegen. Mit anderen Worten, bei etwa 10.000 Unterschriften beträgt die Zeitersparnis etwa das 2,5-fache. Ich weiß, dass das technisch gesehen ein Bruchteil ist, aber es schien, dass die Implikation darin bestand, dass die Verbesserung dramatischer war. Gibt es etwas, das ich vermisse? Was ist außerdem die tatsächliche Zeit in Taktzyklen, die ein Ausgangspunkt für eine Signaturüberprüfung durch Schnorr war? Danke dir.

Antworten (1)

Beschleunigung in gut optimierten kryptografischen Funktionen sind schwer zu bekommen. In libsecp256k1 feiern wir normalerweise eine algorithmische Beschleunigung von 4 %. Zahlen in der Größenordnung von 2x sind für die Verwendung in Bitcoin angemessen, obwohl größere in Zukunft beim anfänglichen Blockdownload möglich sein könnten, da viel größere Chargen verwendet werden könnten.

Eine einzelne Validierung auf einem einzelnen Kern einer schnellen Desktop-CPU dauert etwa 50 Mikrosekunden.

Eine weitere relevante Frage/Antwort ist die Chargenvalidierung von Schnorr

Danke dir. Ich möchte diesen Punkt definitiv nicht bestreiten, 2 oder 2,5X sind große Neuigkeiten, ich wollte nur sichergehen, dass ich nichts verpasse.