Validiert Bitcoin Core standardmäßig Signaturen?

Es gab kürzlich Behauptungen, dass Bitcoin Core die Signaturen in einem Block nicht standardmäßig validiert. Wenn das stimmt, kann Bitcoin Core dann überhaupt behaupten, ein Full Node zu sein?

bitcoin.stackexchange.com/questions/1797/what-are-checkpoints Blöcke vor dem letzten Checkpoint werden optional nicht validiert.
@MCCCS Die dort akzeptierte Antwort ist heutzutage eigentlich falsch. Checkpoints gibt es nicht mehr.
@Jannes Sie existieren noch, aber seit 2014 sind keine neuen mehr hinzugekommen.
@PieterWuille Das macht Sinn. Ich stehe korrigiert. Ich schätze, sie sind immer noch da, weil sie jetzt Teil des Konsenses sind? Ich nehme an, sie sind nicht mehr der Hauptentscheidungsfaktor (ob eine Signaturvalidierung durchgeführt werden soll oder nicht) mit der Standardeinstellung annehmenvalid und annehmenvalid=0 ? Danke schön.

Antworten (1)

Bitcoin Core validiert alle Signaturen nach einem bestimmten Punkt und kann so konfiguriert werden, dass alle Signaturen im Verlauf validiert werden, falls dies gewünscht wird.

Die assumevalidFunktion deaktiviert die Signaturvalidierung nur für Blöcke vor einem bestimmten konfigurierten Block, der für jede Version aktualisiert wird. Dieser Block ist in der Regel mehrere (zehn)tausend Blöcke tief, wenn die Veröffentlichung tatsächlich erfolgt. Bei jedem Block, der ein Vorfahre dieses bestimmten Blocks ist (und dieser Block befindet sich in der Hauptkette), werden die Signaturen nicht überprüft. Alle nachfolgenden Blöcke werden signiert. Dies bedeutet, dass nach der Synchronisierung Ihres Knotens alle neuen Blöcke die Signaturen überprüfen lassen.

Darüber hinaus ist dies assumevalidkein Kontrollpunkt und funktioniert auch nicht auf Blockhöhen. Wenn es aus irgendeinem Grund eine Neuorganisation gab, die den assumevalidBlock aus der Hauptkette entfernte, würden alle Signaturen in der Blockchain validiert. Es handelt sich lediglich um eine Optimierung und hat keinen Einfluss auf die Sicherheit Ihres Knotens.

Kann Bitcoin Core überhaupt behaupten, ein Full Node zu sein?

Ja, es gehört mehr dazu, ein vollständiger Knoten zu sein, als Signaturen zu validieren. Zur Validierung gehört mehr als nur Signaturen. Bitcoin Core überprüft immer noch das PoW, ob die ausgegebenen Ausgaben vorhanden waren usw.

Wie funktionierten die Dinge, bevor „assumvalid“ 2017 eingeführt wurde: github.com/bitcoin/bitcoin/pull/9484 ? Ich denke, das Überspringen der Signaturvalidierung wurde immer noch durchgeführt, also existierte dies von Anfang an?
Vor der Annahme von Gültigkeit wurden Signaturprüfungen nur für Vorfahren der Checkpoint-Blöcke übersprungen. Zwischen dem Hinzufügen des letzten Checkpoints und dem Hinzufügen von Acceptvalid wurden die Signaturen dieser Blöcke nach dem Checkpoint immer validiert.