Mir ist nicht klar, warum wir Transaktions-Hashes nicht einfach in einem Block-Header speichern können, anstatt die Merkle-Root zu speichern. Ich verstehe, dass das Speichern von Transaktions-Hashes die Größe eines Block-Headers leicht erhöht. Der Transaktionsverifizierungsprozess wird jedoch stark vereinfacht, da man den Merkle-Baum nicht berechnen muss. In diesem Fall kann man eine Transaktion verifizieren, indem man einfach nach diesem Transaktions-Hash im Header sucht.
Noman Aslam
Das Speichern des Hashs jeder Transaktion im Blockheader könnte den Blockheader viel größer machen, als er derzeit ist. Im Moment beträgt der gesamte Header 80 Bytes, und die tx Merkle-Root umfasst 32 Bytes davon. Sie können eine beliebige Anzahl von Transaktionen in einen 32-Byte-Merkle-Root hashen, sodass dies sehr gut als kryptografisch sichere Komprimierungstechnik funktioniert.
Ich kann mir einige Auswirkungen größerer Blockheader vorstellen:
Es gibt wahrscheinlich noch mehr, Sie können diese Liste gerne erweitern.
Ich verstehe, dass das Speichern von Transaktions-Hashes die Größe eines Block-Headers leicht erhöht.
Das ist eine Untertreibung. Laut dieser Antwort beträgt die Mindesttransaktionsgröße 60 Bytes. Ein Block voll davon würde den txhash-Teil des Block-Headers auf 560 kb statt 32 Bytes machen, wie es derzeit der Fall ist.
Pieter Wuille
Chytrik
Pieter Wuille
Chytrik