Kann der Start von Bitcoin-Knoten sicher sein, ohne die gesamte Blockchain zu validieren?

Eine der größten Hürden für die Erhöhung der Anzahl der in Betrieb befindlichen Full Nodes sind meiner Meinung nach die Startkosten im Zusammenhang mit dem Herunterladen der Blockchain. Ein ähnliches, aber (meiner Meinung nach) weniger wichtiges Problem ist die Menge an Speicherplatz, die von der vollständigen Blockchain benötigt wird.

Beim Pruning the branchs in Merkle Tree schreibt Nick ODell: „[Bitcoin Core] wurde unter der Annahme gebaut, dass Sie alle Blöcke herunterladen und validieren.“ In Würde das Verschieben einer Transaktion von einem alten Block in einen neuen mehr Pruning zulassen? Murch schlug vor, einige Annahmen zu überprüfen, und ich denke, eine davon war meine Annahme, dass es nicht notwendig ist, die gesamte Blockchain zu analysieren. Dank Murch soll diese Frage diese Annahme ansprechen.

Antworten (2)

Full Nodes erfüllen mehrere Funktionen im Netzwerk:

  1. Validierung der Blockchain im Namen ihres Eigentümers
  2. Bereitstellen früherer Blöcke und Transaktionen für andere Knoten
  3. Weiterleiten von Transaktionen und Blöcken an andere Knoten

Wenn die Blockchain nicht unabhängig voneinander validiert wird, wird jede dieser Funktionen bis zu einem gewissen Grad geopfert.

  1. Wenn der Knoten die Blockchain nicht unabhängig validiert, verlässt sich der Eigentümer des vollständigen Knotens immer noch darauf, den Peer-Knoten zu vertrauen
  2. Wenn der Knoten vorherige Transaktionen und Blöcke nicht speichert, kann er sie nicht an andere Knoten liefern, die das Netzwerk einholen
  3. Wenn der Knoten die Blockchain nicht validiert hat, könnte er dazu verleitet werden, ungültige Transaktionen und Blöcke weiterzuleiten.

Also ja, ein Knoten kann den wichtigen Schritt des Herunterladens und Validierens der Blockchain überspringen, aber ich glaube nicht, dass ich ihn mehr als "vollständigen Knoten" betrachten würde. Es würde weder der allgemeinen Netzwerkgesundheit helfen, noch könnte ihm sein Besitzer vollständig vertrauen. An diesem Punkt würde ich vorschlagen, einfach einen SPV-Knoten zu betreiben .

Im Allgemeinen gibt es Richtlinien und Regeln bei Bitcoin. Jeder vollständige Knoten arbeitet unabhängig, um Regeln durchzusetzen, indem er jeden empfangenen Block, jede Transaktion usw. überprüft. Sobald ein empfangener Block überprüft und verifiziert wurde, aktualisiert ein vollständiger Knoten sein UTXO-Set, um den neuesten Stand in der gespeicherten Blockchain widerzuspiegeln in Erinnerung.

Was mit dem Block zu tun ist, bleibt als Grundsatzentscheidung dem Besitzer des Full Node überlassen. Als Eigentümer können Sie wählen, ob Ihr vollständiger Knoten im Prune-Modus ausgeführt werden soll. Das heißt, Sie werden alle Transaktionen los, deren UTXO ausgegeben wird, um die Speichernutzung zu entlasten, da diese Transaktionen keinen Mehrwert für die Aufrechterhaltung des aktuellen Zustands bieten. Beachten Sie, dass Ihre Richtlinienentscheidung die Fähigkeit Ihres vollständigen Knotens zur Durchsetzung der Bitcoin - Regeln nicht beeinträchtigt .

Um direkt auf Ihre Frage einzugehen. Nein. Bitcoin kann nicht sicher gestartet werden, ohne die gesamte Blockchain herunterzuladen. Als Full Node ist es Teil seiner Funktionalität, die Abfolge von Zustandsübergängen, die zum aktuellen Zustand von Bitcoins führen, unabhängig zu verifizieren. Daher verbietet ihm das Vertrauensmodell, einem UTXO-Set zu vertrauen, das von einem anderen unabhängigen Knoten gemeinsam genutzt werden kann. Natürlich kann es andere Knotenimplementierungen geben, die diese Anforderung lockern, aber mir ist keine bekannt.