Bitte helfen Sie mir, die Vertrauensannahmen in den folgenden drei Fällen zu verstehen und zu unterscheiden. Erläutern Sie bitte insbesondere die möglichen Angriffe (wenn auch völlig theoretisch) und vertrauen Sie darauf, die Funktionalität zu erhalten.
Fall 1: Bitcoin Core vor 0,14 ohne angenommene Gültigkeit und wo jeder Knoten eine vollständige Signaturüberprüfung durchführt.
Fall 2: Bitcoin Core 0.14 mit den angenommenen gültigen Blöcken mit übersprungener Signaturvalidierung für Blöcke vor der Veröffentlichung. Das bedeutet, dass die Blocksignaturen korrekt sind, weil Bitcoin-Core-Entwickler darauf signiert haben.
Fall 3: (Hypothetisch): Bitcoin Core 0.14 mit UTXO-Set, das den Snapshot der UTXO-Datenbank enthält. Dies würde auf ähnliche Weise wie angenommen-gültig erfolgen. Dies würde die komplette IBD überspringen und für Quickstart-beschnittene Knoten wirklich nützlich sein.
Ich hätte gerne Antworten auf die folgenden 2 Fragen:
Q1) Was sind die möglichen Angriffe (wenn auch völlig theoretisch), die in Fall 2 möglich sind, aber nicht in Fall 1. Bitte erläutern Sie die Änderung des Sicherheitsmodells, die erforderlich ist, um von Fall 1 zu Fall 2 zu wechseln.
F2) Was sind die möglichen Angriffe (wenn auch völlig theoretisch), die in Fall 3 möglich sind, aber nicht in Fall 2. Mir scheint, dass das Sicherheitsmodell in Fall 3 dasselbe ist wie das in Fall 2. Wenn ich Kernentwicklern mit Signatur vertraue -Validierung, könnte genauso gut darauf vertrauen, dass sie das richtige UTXO-Set geben.
Q1) Was sind die möglichen Angriffe (wenn auch völlig theoretisch), die in Fall 2 möglich sind, aber nicht in Fall 1. Bitte erläutern Sie die Änderung des Sicherheitsmodells, die erforderlich ist, um von Fall 1 zu Fall 2 zu wechseln.
Keiner. Wenn es zufällig eine Verzweigung gibt, die dazu führt, dass sich der angenommene gültige Block nicht mehr in der längsten Kette befindet, werden Sie weiterhin alle Signaturen in der längsten Kette validieren. Wenn Ihnen jemand eine „gefälschte“ Blockchain geben würde, die den angenommenen gültigen Block nicht enthält, würden Sie denselben Validierungsprozess durchführen wie ohne den angenommenen gültigen Block. Angenommen, gültig ändert die Sicherheitsannahmen nicht, da der angenommene gültige Block nicht in der Blockchain sein muss, anders als bei Checkpoints.
F2) Was sind die möglichen Angriffe (wenn auch völlig theoretisch), die in Fall 3 möglich sind, aber nicht in Fall 2. Mir scheint, dass das Sicherheitsmodell in Fall 3 dasselbe ist wie das in Fall 2. Wenn ich Kernentwicklern mit Signatur vertraue -Validierung, könnte genauso gut darauf vertrauen, dass sie das richtige UTXO-Set geben.
Nein, Fall 3 hat völlig andere Sicherheitsannahmen als gültig anzunehmen. Sie vertrauen darauf, dass die Core-Entwickler Ihnen das richtige UTXO-Set zur Verfügung stellen, und Sie vertrauen darauf, dass Sie beim Start die richtige Blockchain verwenden. Wenn Sie gültig annehmen, vertrauen Sie nicht oder gehen davon aus, dass Sie die richtige Blockchain verwenden, validieren Sie immer noch fast alles. Selbst wenn der angenommene gültige Block falsch ist, können und werden Sie mit „als gültig annehmen“ immer noch die richtige Blockchain verwenden und genauso viel Signaturvalidierung durchführen, um auf der richtigen Blockchain zu sein wie Software ohne als gültig annehmen.
Pieter Wuille
sanket1729
Pieter Wuille
BT
BT