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?
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).
Nika Kuraschwili
Nika Kuraschwili
Pieter Wuille