Was passiert, wenn sich die Sperrzeit auf 5 Sekunden ändert?

Bezogen auf dies und das .

Der Schwierigkeitsanpassungsalgorithmus lautet:

block_diff = parent_diff + parent_diff // 2048 * max(1 - (block_timestamp - parent_timestamp) // 10, -99) + int(2**((block.number // 100000) - 2))

wobei // der ganzzahlige Divisionsoperator ist, z. 6 // 2 = 3, 7 // 2 = 3, 8 // 2 = 4.

Soweit ich weiß, wurde ein Schwellenwert von 10 Sekunden gewählt, um die Blockzeit im Bereich von 10 bis 20 Sekunden zu halten. Außerdem ist der Quellcode hier verfügbar . //10Kann ich also den Algorithmus ändern (vielleicht in ändern //5) und ein Blockchain-Netzwerk erstellen, das 5 secondseinen Block bestätigt? Ist das erreichbar? Ich hatte gehofft, durch diesen Blogbeitrag eine Antwort auf diese Frage zu erhalten, konnte aber die genauen Nachteile dabei nicht herausfinden.

PS: Grundsätzlich habe ich eine Anwendung, die auf einer privaten Blockchain läuft, die weniger Blockbestätigungszeit benötigt. Ich habe die Blockchain mit geringer Schwierigkeit ( 0x400) gestartet, aber sie hat sich im Laufe der Zeit erhöht, um eine durchschnittliche Blockzeit von 15 Sekunden beizubehalten. Also suche ich nach einem Weg, um zu verhindern, dass diese Schwierigkeit zunimmt. Ist dies ohne Kompromisse bei der Sicherheit möglich?

Ich verwende geth-1.4.9

Antworten (1)

Eine zu berücksichtigende Sache wäre die Waisenrate , auf die in den Kommentaren zu dem von Ihnen verlinkten Thread angespielt wird.

Je niedriger Sie den Schwierigkeitsgrad einstellen, desto kürzer ist die Blockzeit, die Sie anstreben.

Je niedriger jedoch die Schwierigkeit, desto größer ist die Chance, dass mehrere Miner den Block gleichzeitig lösen und die Kette sich verzweigt. Dies führt letztendlich dazu, dass die Blöcke in einem der Forks verwaist sind, weshalb Ethereum (mit seiner 15-Sekunden-Blockzeit) bereits das GHOST-Protokoll (oder eine eingeschränkte Version davon) verwendet. Sie müssten experimentieren, um zu sehen, ob die Kettenumordnungen Ihrem Netzwerk Probleme bereiten würden.

Beachten Sie, dass der Algorithmus, mit dem Sie verknüpft sind, die Änderungen enthält, die für die Schwierigkeitsbombe vorgenommen wurden, was bedeutet, dass die Schwierigkeit mit der Blocknummer zunimmt .

... int(2**((block.number // 100000) - 2)) <---- this part

Das Ziel ist es, das Mining letztendlich (effektiv) unmöglich zu machen und den Weg für den Umstieg auf PoS zu ebnen. Vermutlich möchten Sie den Algorithmus so verwenden, wie er vor diesen Änderungen war .

Kennen Sie eine Plattform, auf der ich Simulationen ausführen und mit verkürzten Blockzeiten experimentieren kann?