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?
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.
Janus Troelsen