In der Litecoin-Quelle steht geschrieben:
static CBigNum bnProofOfWorkLimit(~uint256(0) >> 20); // Litecoin: starting difficulty is 1 / 2^12
Wie rechnet sich das? ~uint256(0) >> 20
ist 0x00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
. Hashes haben die gleiche Wahrscheinlichkeit, dass es sich um eine beliebige Zahl handelt, daher ist die Chance, einen gültigen Litecoin-Hash (dh einen, der kleiner als diese Zahl ist) zu erhalten , 0x00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
= 1 / 2^20
, nicht 1 / 2^12
. Ist das ein Tippfehler im Litecoin-Quellcode oder verstehe ich etwas falsch?
Um die Terminologie in Litecoins Wiki zu verwenden , ~uint256(0) >> 20
ist das Ziel und 1 / 2^12
(ungefähr) die Schwierigkeit. Sie können das sehen, indem Sie Folgendes in Python ausführen (oder irgendetwas, das Berechnungen mit großen Zahlen verarbeiten kann).
target = 0x00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff # or 2**236-1
diff = 0xFFFF * 2**208 / target
print(diff) # 0.00024413689970970154
print(1/2**12) # 0.000244140625
Ich glaube, die 1 / 2^20
von Ihnen berechnete Zahl ist die Wahrscheinlichkeit, dass jeder Hash erfolgreich sein wird, was nicht mit der Schwierigkeit identisch ist (obwohl sie damit zusammenhängt).
Nate Eldredge
2^32
Hashes benötigt werden, um einen Block abzubauen, und von dort aus linear skaliert wird. Diese Konvention stammt von Bitcoin, wo die Mindestschwierigkeit tatsächlich 1 ist.Schöpfer