Wie kann man Zufälligkeit bei der Auswahl von Validatoren in PoS modellieren?

Ich habe hier und im Internet viel gesucht, um herauszufinden, wie die zufällige Auswahl von Validatoren in PoS funktioniert. Ich verstehe, dass es sich um eine zufällige Auswahl handelt, die auf dem Bruchteil des Einsatzes eines Validators basiert, ähnlich wie bei PoW.

In PoW können wir die Blockankunft als Besitzprozess modellieren. Wenn das Blockintervall beispielsweise 10 Sekunden beträgt, erwarten wir, dass im Durchschnitt alle 10 Sekunden ein Block erstellt wird. Sie können zwei Blöcke erhalten, bei denen die Zeit zwischen ihnen weniger als eine Sekunde beträgt (daher gedächtnisloser Prozess). Die Chance, die jeder Miner für jeden Block hat, hängt von seinem Hash-Power-Anteil ab, aber zufällig in Bezug auf die Zuweisung von Minern zu Blöcken.

Nun, wie unterscheiden sich Blockankunft und -zuweisung in PoS? von dem, was ich denke, ist das gleiche wie in PoW. Aus anderen Quellen wird die Lesezeit in Slots unterteilt, wobei jeder Slot einem Validator (z. B. deterministisch) zugewiesen wird. Aber verstehe nicht wirklich, wie sich das von PoW unterscheidet. Jede einfache englische Erklärung ist willkommen (ohne zu viele technische Details).

Antworten (1)

Ich verstehe, dass es sich um eine zufällige Auswahl handelt, die auf dem Bruchteil des Einsatzes eines Validators basiert, ähnlich wie bei PoW.

Nicht richtig. In PoW kann jeder Miner den nächsten Block minen. In PoS wird ein bestimmter Validator vom Protokoll ausgewählt, der das Recht hat, den nächsten Block zu bilden/vorzuschlagen.

Die Chance, die jeder Miner für jeden Block hat, hängt von seinem Hash-Power-Anteil ab, aber zufällig in Bezug auf die Zuweisung von Minern zu Blöcken.

Der erste Teil ist richtig, dass die Chance, die ein Miner hat, von der Hash-Power-Fraktion abhängt. Es wird jedoch kein Miner „zugewiesen“. Jeder Miner kann den nächsten Block in der Blockchain bilden, vorausgesetzt, der Block ist gültig und sein Header-Hash erfüllt die Zielanforderungen.

Wie unterscheidet sich Blockankunft und Zuweisung in PoS?

Es gibt kein in Stein gemeißeltes Protokoll, das bestimmt, wie der nächste Blockvalidator ausgewählt wird. (1) Peercoin (die erste Münze, die den PoS-Konsens zusammen mit PoW implementierte) verwendete das Münzalter (Anzahl der Münzen x Anzahl der Tage, an denen sich die Münzen in der Brieftasche befinden), um den nächsten Validator zu bestimmen. (2) Dann gibt es einen Hash-Selektor ( Ouroboros Praos-Protokoll ), in dem Sie das aktuelle Datum und die Uhrzeit nehmen, mit Ihrem privaten Schlüssel signieren und dann prüfen, ob es unter dem Schwierigkeitsziel liegt. Wenn ja, werden Sie als nächster Validator ausgewählt. (3) Es gab eine Methode, bei der die Zufälligkeit des nächsten Blocks von der Signatur des aktuellen Blocks abhängt (diese Methode ist jetzt aufgrund potenzieller Schwachstellen nicht mehr verfügbar.)

Danke für den Kommentar! Nur um den zweiten Punkt zu klären, ich meine, in PoW gibt es eine Möglichkeit, einen Miner für jeden Block auszuwählen, den Glücklichen, der die Nonce gefunden hat. Nehmen wir an, wir haben in PoS drei Validierer V1, V2 und V3, von denen jeder 1/3 des Gesamteinsatzes kontrolliert. Wann werden nun Blöcke generiert? und wer hat sie jeweils erzeugt? wenn die Schwierigkeit darin besteht, alle 10 Sekunden einen Block anzuvisieren. Sollte ähnlich wie PoW sein, wo Sie möglicherweise zwei Blöcke direkt nacheinander sehen (aber für lange Laufzeiten beträgt der Durchschnitt zwischen Blöcken 10 Sekunden). Und wird V1 auf lange Sicht 1/3 der gesamten Blöcke erstellt haben? Danke
Es gibt keine Miner-Auswahl. Einer, der die Lösung für einen gültigen Block findet, baut ihn ab. In PoS wird ein Validator ausgewählt, und er ist der einzige, der den nächsten Block vorschlagen/bilden darf (außer Ouroboros Praos-Protokoll). Beim PoS im BFT-Stil wird den Validatoren nach dem Zufallsprinzip das Recht zugewiesen, Blöcke vorzuschlagen, aber die Einigung darüber, welcher Block kanonisch ist, erfolgt durch einen mehrrundigen Prozess, bei dem jeder Validator während jeder Runde eine „Stimme“ für einen bestimmten Block sendet, und am Am Ende des Prozesses einigen sich alle (ehrlichen und Online-) Validierer dauerhaft darauf, ob ein bestimmter Block Teil der Kette ist oder nicht.
Danke es wird besser. Mir ist jedoch immer noch nicht klar, wann Blöcke generiert werden, entweder zu einem festen Zeitpunkt alle 10 Sekunden oder zu einem zufälligen Zeitpunkt (aber auf lange Sicht werden durchschnittlich 10 Sekunden erreicht, wie bei PoW). Es scheint mir, dass PoS auch von der veralteten Rate betroffen ist, z. B. wenn V1 ausgewählt wurde, um B1 (wobei auf Genesisblock Bezug genommen wird) zum Zeitpunkt = 10 zu erstellen; und B1 an andere Knoten senden, und dann wurde V2 ausgewählt, um einen Block zum Zeitpunkt = 20 zu erstellen, aber V2 hat noch nichts von B1 gehört, das von V1 gesendet wurde. In diesem Fall erstellt V2 einen Block, der auf den Genesis-Block verweist. Am Ende wird einer dieser Blöcke verworfen. Ist es wahr?
Wenn Sie die Blockzeit bei 10 Sekunden halten möchten, wählt das Protokoll den nächsten Validator bei ~10 Sekunden aus. Im Falle von Konflikten werden diese per Abstimmung gelöst. Verschiedene Prüfer setzen auf den akzeptierten Block. Der Gewinnerblock ist derjenige, der die meisten Stimmen erhält; Stimmen werden nach Anteilen gewichtet,