Speichern vollständige Knoten den vollständigen Merkle-Baum oder generieren sie ihn beim Erstellen eines Merkle-Proofs neu?

Ich verstehe, wofür die Merkle-Wurzel ist. Und ich verstehe, dass Blöcke den Merkle-Baum nicht speichern.

Frage 1) Gibt es einen Ort, an dem die kompletten Merkle-Bäume aufbewahrt werden? Ich meine nicht die Merkle-Root-Hashes, da ich weiß, dass sie sich in den Block-Headern befinden.

Frage 2) Angenommen, ein Full Node beginnt damit, einem Light Node zu beweisen, dass sich eine bestimmte Transaktion in Block J befindet. Wie sendet der Full Node den Merkle-Zweig an den Light Node? Durchläuft es die Transaktionen erneut, um die Hashes zu erhalten, und sendet dann die inneren Knoten-Hashes der Transaktionen, oder haben vollständige Knoten bereits den vollständigen Merkle-Baum (ganzer Baum und jeder interne Hash) irgendwo gespeichert?

Antworten (1)

Bitcoin Core wird in seiner BIP37-Implementierung die Merkle-Beweise im laufenden Betrieb berechnen. Es speichert die Merkle-Bäume der Blöcke nirgendwo (nur seine Wurzel wird gespeichert).

Danke Pieter. Ich möchte etwas hinzufügen. Merkle-Wurzeln werden verwendet, um Operationen von n auf logn zu reduzieren. Sieht so aus, als ob für einen vollständigen Knoten die Anzahl der Operationen immer noch n ist. Es wird für leichte Knoten auf logn reduziert, da der vollständige Knoten nur einen Pfad des Merkle-Baums anstelle des gesamten Merkle-Baums sendet. Stimmen Sie allem zu, was ich gerade gesagt habe?
Irgendwelche Anmerkungen zu meiner letzten Antwort? Vielen Dank im Voraus.
@Nika Das ist richtig, obwohl es wirklich die einzige Option ist. BIP37 verwendet Bloom-Filter, um auszuwählen, welche Transaktionen interessant sind, was nicht etwas ist, wofür wir einen Index für eine schnelle Suche erstellen können. Folglich muss der antwortende Knoten sowieso den gesamten Block durchlaufen, um festzustellen, welche Transaktionen für den Client interessant sind. Das Erstellen des Merkle-Baums und das Antworten mit den Pfaden der passenden Transaktion sind im Vergleich dazu geringe Kosten.