Was war der beabsichtigte Vorteil des Abschneidens des Ziels?

Ich denke darüber nach, wie der Zielwert auf den SHA-256-Hash des Block-Headers gekürzt und später mit ihm verglichen wird.

Angesichts dessen

The maximum target (lowest possible difficulty) is
0x00000000FFFF0000000000000000000000000000000000000000000000000000
and the current target is
0x00000000000004985C0000000000000000000000000000000000000000000000
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (4bits * 32 = 128)  
                                  This part is always zero due to truncation                              

Frage:

  • Ist es nur dazu da, das Codieren und Auswerten zu erleichtern?
  • Macht dies den Mining-Betrieb schneller (effizientere Vergleiche)?
  • Sind die Wirkungsgrade des vorherigen Bullet-Endian-spezifisch?
  • Gibt es statistische Vor- oder Nachteile, wenn es nicht Null ist? (Teilweise einfacher, einen Block zu finden?)

Ich habe keine nachdenkliche Erklärung dafür gesehen, warum die Entscheidung getroffen wurde, und ich möchte nichts von mir selbst ableiten.

Antworten (1)

Ich vermute, dass das Ziel abgeschnitten ist, damit es nicht zu viel Platz in der Blockchain verbraucht.

Die Blockchain speichert eine kompakte Form des Ziels in einem „Bits“-Feld, das 4 Bytes breit ist. Dies sind (deutlich) weniger als 32 Bytes (256 Bits), die einen SHA256-Hash darstellen.

Zum Kontext:

  • Die Platzersparnis beträgt genau 28 Byte pro Block.

  • Am 28.02.13, eine Blockanzahl von 223693, das sind 6.263.404 Bytes oder ungefähr 6 MB, die mit dieser Optimierung eingespart wurden. Diese Datenoptimierung gilt für Data-on-Disk und das, was von Poolbetreibern an Miner gesendet wird