Wie treten Konsensschwachstellen auf, wenn Paritätsknoten nicht funktionieren?

Während ich mich mit Ethereum vertraut machte, fand ich mehrere Sicherheitswarnungen, die sich auf Konsensprobleme bezogen, am bemerkenswertesten diejenigen, die auftraten, weil der Geth- und der Parity-Client bestimmte Grenzfälle unterschiedlich handhabten. Ich habe jedoch auch festgestellt, dass Paritätsknoten Transaktionen nicht selbst abbauen. Wenn also zum Beispiel ein Parity-Client eine ungültige Transaktion akzeptiert, warum sollte das zu einem Fork der Blockchain führen, da die Nodes nicht wirklich selbst minen (sondern zum Beispiel Ethminer). Oder validiert der Ethminer die Blöcke nicht, der Parity-Client jedoch?

Antworten (1)

Während Sie Recht haben, dass der Ethminer oder der von Ihnen gewählte Miner das Mining selbst durchführt, nicht der Client, werden der Block und der Blockheader, auf dem das Mining durchgeführt wird , vom Client erstellt, normalerweise entweder Parity oder Geth. Das bedeutet, dass bei einem Konsensproblem Blöcke, die von einem von ihnen abgebaut werden, von dem anderen nicht akzeptiert werden.

Abgesehen davon können immer noch Konsensprobleme auftreten, wenn nur einer der Clients Blöcke baut. Wenn Parity und Geth eine Transaktion unterschiedlich verarbeiten, dann sieht Parity diesen Block als ungültig an, wenn Geth den Block abbaut, da der State Root anders sein wird. Dies ist immer noch eine Konsensfrage.

Danke! Angenommen, der Geth-Knoten schürft einen Block, dann wird die Parität diesen Block bei der Synchronisierung mit dem Netzwerk ablehnen (im Falle eines Konsensproblems)?
Richtig. Wenn Parity den neuen Block erhält, überprüft es zuerst die Mining-Arbeit und führt dann alle Transaktionen im Block in dem Zustand aus, den der Parity-Knoten hat. Dann berechnet es die Root-Hashes im Block-Header. Wenn die Root-Hashes nicht übereinstimmen, wird der Block aufgrund eines Konsensfehlers verworfen.