Bisher musste jeder Bitcoin -Verbesserungsvorschlag (BIP), der kryptografische Primitive benötigte, das Rad neu erfinden. Jedes wurde mit einer eigenen pythonischen Implementierung der elliptischen Kurve von SecP256K1 und zugehörigen Algorithmen, die jeweils voneinander unterscheiden, gebündelt. Diese Inkonsistenzen führten stille Verbindlichkeiten ein und machten die Überprüfung von Bips unnötig kompliziert. Dieses Problem wurde kürzlich in hervorgehoben Bitcoin Optech Newsletter #348Und es ist etwas, was zumindest eine Handvoll Entwickler in der Bitcoin -Entwicklungsgemeinschaft seit langem gefühlt haben: Es sollte einen einheitlichen, wiederverwendbaren Standard für kryptografische BIP -Referenz -SECP256K1 -Code geben.
Letzte Woche machten Jonas Nick und Tim Ruffing von Blockstream Research und Sebastian Falbesoner große Fortschritte zu diesem. Als Teil ihres existierenden Chilldkg Vorschlagdas Team veröffentlichte SECP256K1LAB. Eine neue, absichtlich unsicher Python -Bibliothek für Prototyping, Experimentieren und BIP -Spezifikationen. Es ist nicht für die Produktionsanwendung (weil es nicht konstant und daher für Seitenkanalangriffe anfällig ist), aber es füllt eine kritische Lücke: Es bietet eine saubere, konsistente Referenz für die SECP256K1-Funktionalität, einschließlich BIP-340-Style-Schnorr-Signaturen, ECDH und Low-Level-Feld-/Gruppenarithmetik. Das Ziel ist einfach: Machen Sie es einfacher und sicherer, zukünftige Bips zu schreiben, indem Sie redundante, einmalige Implementierungen vermeiden. Für BIP -Autoren bedeutet dies: Weniger benutzerdefinierter Code, weniger technische Probleme und ein klarerer Pfad vom Prototyp zum Vorschlag.
> Warum nicht einfach die echte SECP256K1 -Bibliothek verwenden?
Bitcoin Core enthält bereits eine schnelle, konstante C-Bibliothek für die Kryptographie von SecP256K1. Warum verwenden BIP -Autoren das nicht einfach?
Wenn ein BIP -Autor einen Vorschlag einreicht, wird erwartet, dass sie eine Referenzimplementierung enthalten, um zu erklären, wie die Idee funktioniert. Diese Implementierungen müssen nicht in Python geschrieben werden, aber C ist oft zu niedrig für Prototypen. Python ist leichter zu lesen, leichter zu ändern und macht es klarer, was der Autor ausdrücken will. Diese Eigenschaften machen es besonders gut für Schreibspezifikationen geeignet.
Bei der Einführung einer neuen kryptografischen Idee hilft es, etwas klares, prägnantes und sicheres Experimentieren zu haben. Im Prinzip mögen Werkzeuge wie HACSPEC sind eine gute Option für formale Spezifikationen, da HACSPEC -Code auch gültiger Rost ist. In der Praxis kann HACSPEC jedoch schwierig sein, mit zu arbeiten und zu lesen, insbesondere für BIP -Leser, die mit Rost nicht vertraut sind.
Pythons Lesbarkeit macht es weiterhin zur Sprache, zu der viele Autoren zurückkehren, wenn sie erklären müssen, wie etwas funktioniert.
Warum BIP-Autoren SECP256K1 immer wieder erneut rollen
Dies begann zurück mit Bip 340 Schnorr SignaturesWenn die BIP -Autoren den ursprünglichen Referenzcode in Python schrieben, ist es einfach, der Mathematik zu folgen. Sie definierten genau, wie die Signorror-Signierung und -überprüfung unter Verwendung der Kurvenparameter von SECP256K1 durchgeführt werden. Sie mussten alles von Grund auf neu aufbauen: Feldarithmetik, Gruppenoperationen, deterministische Nonce -Generation und die Codierungsregeln. Der Python -Code war klar und lehrreich. Aber es wurde speziell auf dieses einzelne BIP zugeschnitten und nicht so konzipiert, dass sie von zukünftigen wiederverwendet werden.
Ähnlich, BIP 324 verschlüsselter P2P -TransportZusätzte Verschlüsselung, wie Bitcoin -Knoten miteinander sprechen sollten, und verwendete ein Protokoll namens Rauschen, das auf wichtigen Börsen, gemeinsam genutzten Geheimnissen und symmetrische Verschlüsselung beruht. Während es auf derselben SECP256K1 -Kurve in BIP 340 aufbaut, wurde kein der tatsächlichen Implementierungscode wiederverwendet. Die gesamte kryptografische Logik wie ECDH, Serialisierung und Handshake-Muster wurde in Python von Grund auf neu implementiert. Obwohl die zugrunde liegende Mathematik gleich ist, schreibt jeder BIP seine eigene Version der Logik. Dies führt zu doppelten Anstrengungen und führt das Potenzial für subtile Inkonsistenzen ein.
Was Secp256K1Lab eigentlich ist
SECP256K1LAB ist eine für einen Zweck gebaute Python -Bibliothek: Erhöhen Sie es einfacher, kryptografische Spezifikationen für Bitcoin zu schreiben und zu testen. Python ist bereits die beliebteste und am häufigsten verwendete Sprache für Referenzimplementierungen und Testvektoren in BIPS. Daher ist es sinnvoll, eine gemeinsame, wiederverwendbare Bibliothek zu haben. Es ist nicht für die Produktionsnutzung ausgelegt. Es ist für Prototyping gebaut, nicht für die Leistung. Es bietet eine saubere, einheitliche Schnittstelle zur Kern -SECP256K1 -Funktionalität mit lesbarem Code und minimalem Setup. Jedes Mal, wenn Sie eine Idee testen oder zeigen möchten, wie etwas funktionieren sollte, werden Sie nicht mehr selbst rollen.
Real-World-Anwendungsfall: Chilldkg
SECP256K1LAB wurde zuerst im Rahmen der Arbeiten entwickelt Chilldkgein neuer BIP -Vorschlag für die verteilte Schlüsselgeneration. Anstatt eine weitere benutzerdefinierte Python -Implementierung von SecP256K1 nur für diese eine Spezifikation zu schreiben, verwendeten die Autoren SECP256K1LAB, um alle kryptografischen Bausteine so zu verarbeiten, dass sie von anderen genutzt werden könnten. Durch die Wiederverwendung einer gemeinsam genutzten, lesbaren Codebasis ist ihre Hoffnung, dass zukünftige kryptografische Bips nicht von vorne anfangen müssen. Mit SECP256K1LAB gibt es endlich eine Grundlage, auf der neue Vorschläge gemeinsam aufbauen und sich verbessern können.
Wohin es gehen könnte
Es gibt immer noch eine offene Frage: Sollte SECP256K1LAB im BIPS -Repository leben? Es ist bereits als gemeinsame Referenz für kryptografische Vorschläge nützlich, aber es gibt eine laufende Diskussion darüber, wo es wirklich in den breiteren Bitcoin -Entwicklungsprozess gehört. Egal, ob sie als eigenständige Bibliothek bleibt oder enger in den BIP -Workflow integriert wird, eines ist klar – er schließt eine Lücke, die es seit Jahren gibt. Wenn Sie ein BIP -Autor, ein Spezifikationsprüfer oder nur neugierig auf die Verbesserung der kryptografischen Werkzeuge rund um Bitcoin sind, würden wir Ihre Eingabe lieben. Sie können sich der Diskussion über die Bitcoin-Dev-Mailingliste anschließen oder direkt zur SECP256K1LAB GitHub Repo.
Dies ist ein Gastbeitrag von Kiara Bickers. Die geäußerten Meinungen sind ganz ihre eigenen und spiegeln nicht unbedingt die von BTC INC oder Bitcoin Magazine wider.

