Aus dem gelben Papier ; Damit ein Block als gültig akzeptiert wird, muss eine 8-Byte-Zahl, n_rand, gefunden werden, die Gleichung 253 erfüllt:
= Blockkopf ohne n_rand und MixHash
= Schwierigkeit
= nonce
Meine Interpretation ist, dass d der Datensatz ist - ein Wert, der kryptografisch aus der Anzahl der vorherigen Blöcke abgeleitet wird. Daraus wird in der PoW
Funktion der Mixhash berechnet
Warum sind die Dataset- und MixHash-Werte erforderlich?
PoW
Wenn das Netzwerk zustimmen würde, die Funktion mit d auf 0 zu akzeptieren , wäre das System nicht immer noch kryptografisch von gültigen Zustandsübergängen abhängig, da es einen Konsens über H_ n geben muss ? Würde das System deshalb nicht noch funktionieren?
Nach meinem Verständnis ist d, wie im Gelben Papier Seite 6 gesagt, der aktuelle DAG.
Wobei Hn der Header H des neuen Blocks ist, aber ohne die Nonce- und Mix-Hash-Komponenten, d der aktuelle DAG ist, ein großer Datensatz, der zum Berechnen des Mix-Hash benötigt wird, und PoW die Proof-of-Work-Funktion ist (siehe Abschnitt 11.5): Dies wird zu einem Array ausgewertet, wobei das erste Element der Mixhash ist, um zu beweisen, dass ein korrekter DAG verwendet wurde, und das zweite Element eine Pseudozufallszahl ist, die kryptografisch von H und d abhängt. Bei einer annähernd gleichmäßigen Verteilung im Bereich [0, 2 64) ist die zu erwartende Zeit bis zur Lösungsfindung proportional zur Schwierigkeit Hd.
Der DAG ist für den Mining-Algorithmus erforderlich, um das PoW ASIC-resistent und für zukünftige Light-Clients leicht überprüfbar zu machen. Hier ist eine ausführliche Erklärung:
https://github.com/ethereum/wiki/blob/master/Dagger-Hashimoto.md
Sie können also d nicht auf 0 setzen.
Lee