Wie wurde der magische Netzwerk-ID-Wert ausgewählt?

Nachrichten im Bitcoin-Netzwerk werden durch den magischen Wert 0xD9B4BEF9 und im Testnetz durch 0xDAB5BFFA identifiziert. Warum wurden diese Werte gewählt?

Überprüfen Sie auch diese Antwort.

Antworten (2)

main.cpp trägt diesen Kommentar:

// The message start string is designed to be unlikely to occur in normal data.
// The characters are rarely used upper ascii, not valid as UTF-8, and produce
// a large 4-byte int at any alignment.
unsigned char pchMessageStart[4] = { 0xf9, 0xbe, 0xb4, 0xd9 };
Siehe eigentlich auch diese Antwort.
Ich finde die Begründung des Codekommentars interessant. Ich glaube, dass die Wahrscheinlichkeit, dass diese Bytes in normalen Daten vorkommen, irrelevant ist, es sei denn, Sie streamen die Blöcke. Da Bitcoin mit TCP kommuniziert, macht es keinen Sinn. Kann jemand mehr Licht ins Dunkel bringen?
@karask Es könnte bedeuten, dass Bitcoin selbst von einem großen Unternehmen oder einer Regierung entworfen wurde (jemand mit den Mitteln, Pakete zu beobachten, die in großen Mengen über das Netzwerk gehen.) Das ist der einzige Kontext, in dem es wahrscheinlich ohnehin gestreamt wird.

Sie wurde gewählt, weil sie eine Primzahl ist und weil 4190024921 die Hypotenuse eines primitiven pythagoreischen Tripels ist: 4190024921^2 = 2924728880^2 + 3000378279^2

Bearbeiten: Beachten Sie, dass Sie die Byte-Reihenfolge berücksichtigen müssen. Das TCP-Protokoll erfordert, dass die Nummer in Big-Endian codiert ist. 0xf9beb4d9 (klein) = 0xd9b4bef9 (groß)

Weitere Informationen dazu finden Sie unter https://stackoverflow.com/a/13514942 .

Woher wissen Sie, dass es aus diesem Grund ausgewählt wurde?
@NickODell Er weiß es, weil er entweder Satoshi oder ein Gelehrter ist. Andernfalls hat er die Nummer einfach in WA wolframalpha.com/input/?i=4190024921 eingefügt . Ich lasse Sie entscheiden, welches Szenario am wahrscheinlichsten ist.
@DenisM ;) Satoshi stand auf Zahlen, also war ich mir ziemlich sicher, dass es eine interessante Eigenschaft hatte, und tatsächlich, WA zur Rettung. :)
@DenisM Warum nicht beides? Oder alle drei? Bitcoin/Botcoin =::= Ying/Yang