Laut Wiki besteht das Eingabeskript des Genesis-Blocks aus diesen Bytes:
04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73
Wir können dies wie folgt aufschlüsseln:
0x04
: drücke 4 Bytes0xffff001d
: derselbe Wert wie das "bits"-Feld des Genesis-Block-Headers0x01
: 1 Byte drücken0x04
: Drücken Sie den Wert 4Soweit ich weiß, sind die ersten beiden Werte, die auf den Stapel geschoben werden ( 0xffff001d
und 0x04
), unnötig. Natürlich auch die Kanzlerbotschaft, aber zumindest ist ihre Bedeutung etwas klarer.
Das Push bits
/ 0x04
Pattern taucht jedoch auch in anderen Blöcken auf. Zum Beispiel zeigt sich das gleiche Muster im nächsten Block (0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098).
Ich habe diese Frage gefunden , mit einer Antwort, die spekuliert:
010445 sind also tatsächlich Teil von 2 Operationen - 01 schiebt 04 auf den Stapel, 45 schiebt die Nachricht auf den Stapel. Warum push 04, schlägt mich, vielleicht war es nur ein Test, um sicherzustellen, dass etwas funktioniert? Ein interner Zähler, der von Satoshi während der Genesis-Blockerstellung verwendet wird? Da das Skript einer Münzgenerierungstransaktion wirklich bedeutungslos ist, werden wir es vielleicht nie erfahren.
Meine Fragen:
0x04
) in mehr als einem Block?Im Wiki habe ich noch ein paar Infos gefunden:
Generationen haben eine einzige Eingabe, und diese Eingabe hat einen "coinbase"-Parameter anstelle eines scriptSig. Die Daten in „coinbase“ können alles sein; es wird nicht verwendet. Bitcoin setzt dort das aktuelle Ziel im Kompaktformat und die „extraNonce“-Zahl mit beliebiger Genauigkeit, die sich jedes Mal erhöht, wenn das Nonce-Feld im Block-Header überläuft. Ausgaben können alles sein, aber Bitcoin erstellt eine genau wie eine IP-Adresstransaktion. Die Extranonce trägt dazu bei, die Domäne für die Proof-of-Work-Funktion zu erweitern. Bergleute können Nonce (4 Byte), Zeitstempel und Extranonce (2 bis 100 Byte) leicht ändern.
https://en.bitcoin.it/wiki/Transaktion
Mit anderen Worten, der erste Bitcoin-Client kopierte das „Bits“-Feld (Ziel im kompakten Format) aus dem Block-Header und verwendete es in einer Push-Datenoperation für das Coinbase-Eingabeskript. Aber ich bin mir immer noch nicht sicher, warum dies als eine gute Idee angesehen wurde.
Als nächstes schiebt eine zweite pushdata-Operation das "extranonce"-Feld. Dieses Feld wird immer dann inkrementiert, wenn das Nonce-Feld übergelaufen ist. Die Datenschutzauswirkungen dieses Systems werden hier diskutiert:
https://bitslog.wordpress.com/2013/04/17/the-well-deserved-fortune-of-satoshi-nakamoto/
Ich glaube, ich kann jetzt meine eigenen Fragen beantworten:
0x04
ist das Extranonce-Feld.
Andreas Chow