Bei Bitcoin ist die Wahrscheinlichkeit, einen Block auf dem X-ten Hash zu entdecken, gleich 1 wie auf dem Y-ten Hash. Damit ist die Entdeckungswahrscheinlichkeit stochastisch unabhängig .
Gibt es Proof-of-Work-Algorithmen, die stochastisch abhängig sind ? Bergleute, die einen verwenden, haben vielleicht keine Ahnung, wie nahe sie einer Entdeckung sind, aber sie würden wissen, dass sie "näher kommen".
Lesen Sie weiter, wenn Sie eine schnelle und schmutzige Beschreibung wünschen, warum ich denke, dass ein solcher Algorithmus interessant sein könnte:
Eine Folge der stochastischen Unabhängigkeit von Bitcoin ist, dass, wenn ein Miner einen Block entdeckt, keiner der anderen konkurrierenden Miner „näher dran“ ist, denselben Block wiederzuentdecken (mit einem anderen, aber gültigen Hash, der auch die Schwierigkeit erfüllt). Es ist natürlich nur natürlich, dass Bitcoin keinen Anreiz/Belohnung für die Wiederentdeckung von Blöcken bietet, da dieser Arbeitsnachweis besser für den Versuch ausgegeben wird, den neuesten Block zu entdecken. Leider hat ein Angreifer mit genügend Hashing-Power und Zeit gute Chancen, die Konkurrenz mehrmals hintereinander zu schlagen; Aus diesem Grund heißt es, dass Sie zur Sicherheit auf 6 Bestätigungen warten müssen, was einer Wartezeit von einer Stunde für die Transaktion entspricht. Wir könnten sagen, dass in Bitcoin Bestätigungen seriell sind .
Im Gegensatz dazu könnte ein stochastisch abhängiger Arbeitsnachweis eine effiziente Implementierung von parallel ermöglichenBestätigungen; Dadurch wird die Transaktionswartezeit stark reduziert, da erwartet werden kann, dass Wiederentdeckungen kurz nach der ersten Entdeckung eines Blocks folgen. Nehmen Sie an, eine Kryptowährung verwendet solche Beweise, um nicht nur die erste Entdeckung eines Blocks zu belohnen, sondern auch das erste X seiner Wiederentdeckungen. Der Zahlungsempfänger muss dann nur noch überprüfen, ob die Transaktion in allen Entdeckungen des Blocks (oder zumindest in einem ausreichend hohen Prozentsatz davon) aufgeführt ist. Die Menge an Hash-Leistung, die ein Angreifer für Wiederentdeckungen benötigt, sollte im Idealfall dieselbe sein wie bei der ursprünglichen Entdeckung (linear ansteigend). Diese Wiederentdeckungs-Hashes könnten auf die gleiche Weise wie Transaktionen aufgezeichnet werden, indem sie gegen eine Gebühr/Belohnung in einen untergeordneten Block aufgenommen werden.
1 Tatsächlich erhöht sich die Wahrscheinlichkeit ganz leicht, wenn noch keine Blöcke entdeckt wurden und nur ein festes Minimum an Bits geändert wird, beispielsweise wenn nur das Nonce-Feld erhöht wird; aber der Unterschied ist so gering, dass er keine Rolle spielt, angesichts der astronomischen Anzahl möglicher Hashes, die der aktuellen Schwierigkeit gerecht werden.
Gibt es Proof-of-Work-Algorithmen, die stochastisch abhängig sind?
Ja. Eine andere Idee ähnlich der, die Nick beschrieben hat:
Fügen Sie am Ende jeder Transaktion zusätzliche 8 Bytes hinzu, wenn Sie den Merkle-Baum erstellen, in einem Feld namens nEffort
. Das nBits
Feld in der Kopfzeile beschreibt den Gesamtarbeitsaufwand, der (im Durchschnitt) am Block durchgeführt werden muss. Teilen Sie diese Arbeit durch die Anzahl der Transaktionen im Block auf, und dann können Sie jede Transaktion einzeln abbauen, indem Sie sie ändern, nEffort
bis das Blatt des Merkle-Baums auf einen ausreichend niedrigen Wert gehasht ist. Beachten Sie, dass dies keine Transaktions-IDs ersetzt, es wäre im Wesentlichen nur ein zusätzliches Feld jedes Blattelements des Merkle-Baums.
Um die Arbeit zu überprüfen, stellen Sie sicher, dass jedes Blatt des Merkle-Baums den Parameter „difficulty/Number_of_transactions“ erfüllt.
Die Nachteile davon:
Es ist wahrscheinlich keine gute Idee, aber es ist eine andere Möglichkeit, einen stochastisch abhängigen Arbeitsnachweis zu erbringen.
Bergleute, die einen verwenden, haben vielleicht keine Ahnung, wie nah sie einer Entdeckung sind, aber sie würden wissen, dass sie "näher kommen".
Ja, das ist möglich.
Anstatt einen Blockkopf mit Schwierigkeit A zu fordern, könnten Sie 16 Blockköpfe mit Schwierigkeit A/16 fordern. Dies würde es ermöglichen, herauszufinden, wie weit Sie in dem Prozess fortgeschritten sind.
Im Gegensatz dazu könnte ein stochastisch abhängiger Arbeitsnachweis eine effiziente Implementierung paralleler Bestätigungen ermöglichen; Dadurch wird die Transaktionswartezeit stark reduziert, da erwartet werden kann, dass Wiederentdeckungen kurz nach der ersten Entdeckung eines Blocks folgen. Nehmen Sie an, eine Kryptowährung verwendet solche Beweise, um nicht nur die erste Entdeckung eines Blocks zu belohnen, sondern auch das erste X seiner Wiederentdeckungen.
Das ist auch möglich. Sie könnten dies tun, indem Sie jeden Block in Bitcoin 1 oder mehr Eltern haben. Sie benötigen eine Art Wegregel, um zu entscheiden, welche Transaktionen in einem Zusammenführungsblock beibehalten werden sollen (da einige unweigerlich in Konflikt geraten würden).
Morsecoder