Warum wurde der Schnorr-Code von Bitcoin Core entfernt?

Ich habe nach der Schnorr-Implementierung in Bitcoin Core gesucht und war überrascht zu sehen, dass sie im November 2016 entfernt wurde (commit e06e878fd7dcc99825025fa99aedb86bc7d5c29f). Warum wurde der Quellcode vollständig aus Bitcoin Core entfernt? Wurde es in ein anderes Entwicklungsrepo verschoben?

Antworten (1)

Die Schnorr-Implementierung war nie in Bitcoin Core. Vielmehr befindet es sich in der libsecp256k1-Bibliothek, die ein Unterbaum in Bitcoin Core ist. Der Commit, auf den Sie verweisen, ist tatsächlich ein Commit in dieser Bibliothek, der im Commit-Verlauf von Core erscheint, da der Unterbaum in Core regelmäßig mit dem Upstream-Quellcode von libsecp256k1 aktualisiert wird.

Der Grund für die Entfernung wird in der Pull-Anforderung erläutert, die sie entfernt hat :

Dieses Modul implementierte ein naives benutzerdefiniertes Schnorr-Signaturschema, obwohl bei seinem Ansatz seitdem mehrere Fehler entdeckt wurden (mangelnde Verpflichtung zu öffentlichen Schlüsseln, Fähigkeit für Dritte, Signaturen an verwandte Schlüssel anzupassen, und eine Multisigning-API, die anfällig für Abbruchangriffe ist, Angriffe neu starten, die einen privaten Schlüssel an Mitunterzeichner weitergeben).

Ich habe an einem besseren Schema gearbeitet, aber ich glaube nicht, dass dies vorgelagert sein sollte, bis es gründlicher überprüft wurde. Die Leute nahmen an, dass die Aufnahme in das Repository ein Zeichen dafür war, dass es endgültig war, also entferne ich es, um Verwirrung zu vermeiden.

Gibt es einen Einblick in die Entwicklung von Bitcoin Core Schnorr oder wird dies privat durchgeführt? Da Schnorr eine Antwort auf die Bitcoin-Skalierbarkeit ist, ist es seltsam zu sehen, dass kein Code auf den Kern übertragen wird.
Schnorr-Signaturen (insbesondere die Schnorr-Signaturaggregation) sind derzeit völlig experimentell und werden von einigen Bitcoin Core-Mitwirkenden privat bearbeitet. Es ist derzeit nicht etwas, woran Core als Ganzes arbeitet (wenn so etwas überhaupt passieren könnte). Die Implementierung der Schnorr-Signaturaggregation erfordert auch einen Fork, der auch einen BIP und viele andere Dinge erfordern würde. Keines davon existiert noch, da die kryptografischen Details des Schnorr-Signaturmaterials noch nicht einmal vollständig sind. Thins, die WIP sind, werden niemals an Core gebunden, bis sie vollständig sind.
" und wird von einigen Bitcoin Core-Mitwirkenden privat bearbeitet" ... Es wird öffentlich gearbeitet, in anderen Pull-Requests im Repository. (Es gibt auch private Arbeiten, z. B. unsere wissenschaftlichen Veröffentlichungen darüber, aber die Protokollentwicklung ist öffentlich.) Einige von uns sind ein bisschen empfindlich, wenn unsere Arbeit genommen und betrügerisch als die von jemand anderem beworben wird, besonders seit dies kürzlich passiert ist, aber wir immer noch lieber in der Öffentlichkeit arbeiten.