Private Blockchains: Validierung

Ich bin Softwareentwickler und habe einige Fragen zu privaten Blockchains. Ich hätte gerne technische Antworten, da ich versuche, Blockchain auf Codeebene zu verstehen. Ich werde ein Problem schreiben, und es ist alles um Ideen zu bekommen :)

Das ist also der Kontext:

Wir haben eine private Blockchain, in der Blöcke von einem bestimmten Knotentyp hinzugefügt werden (nennen wir sie Validatoren). Die Validatoren sind diejenigen, die der Kette Blöcke hinzufügen dürfen: Sie verifizieren natürlich die Blöcke, indem sie einige Regeln anwenden.

Wir haben auch die regulären Knoten (sie können keine Blöcke hinzufügen, aber sie können ihre Kette an andere Knoten senden, wenn der x-Knoten dies erfordert).

Knoten A hat einen Block (x) geändert und Knoten B hat Block X an Knoten A angefordert. Knoten A sendet seinen Block an Knoten B, aber dieser gerade gesendete Block ist ein ungültiger Block, da er geändert wurde.

Wie kann Knoten B bestätigen, dass Block x ein ungültiger Block ist (da es für Knoten A gültig ist, woher weiß Knoten B, dass es sich um einen ungültigen Block handelt): Wir haben eine 50-50, wer hat dann die Wahrheit?

Würde Knoten B viele Beispiele von Block X benötigen, damit Knoten B entscheiden kann, ob der Block gültig ist?: 10 Beispiele wurden von Knoten B empfangen, 9 von diesen 10 Beispielen haben denselben Hash (Y) , aber der Hash, der unterschiedlich ist (block x von Node A) ist die Minderheit, also wäre der gewinnende Hash (gewinnender Block) Y

Brauchen wir einen Wahlprozess, bei dem die Validierungsknoten entscheiden, welcher Block gültig ist?

Wie würden wir dieses Problem nach Ihrem Wissen lösen?

Ich denke, das Problem, das ich gerade geschrieben habe, heißt The byzantine fault problem (ich bin mir nicht sicher, aber nach dem, was ich gelesen habe, scheint es so zu sein). Ich würde mich freuen, Antworten von Ihnen zu hören und auch Ideen!.

HINWEIS: DAS PROBLEM, das ich gerade beschrieben habe, hat nichts mit irgendeiner Blockchain irgendeiner Kryptowährung zu tun. Das von mir beschriebene Problem bezieht sich nur auf die Blockchain-Technologie selbst und darauf basierende Anwendungen.

Antworten (1)

Wie kann Knoten B bestätigen, dass Block x ein ungültiger Block ist?

Auf einer sehr einfachen Ebene: Eine Blockchain ist eine Hash-verknüpfte Liste. Jeder Block verweist auf den Hash des vorangehenden Blocks, sodass jede Änderung an einem früheren Block offensichtlich ist, da der Hash dieses Blocks nicht mehr Teil der längsten Kette ist.

Die Situation ist jedoch schwieriger für einen neuen Knoten, der die Geschichte zum ersten Mal hört, oder während einer Zeit, in der es zwei gültige konkurrierende Kettenspitzen gibt. Welche Kettenspitze gilt als gültig?

Bitcoin verwendet Proof-of-Work, um zu entscheiden, welche Kette gültig ist: diejenige, die die meiste Arbeit angesammelt hat (oft als „die längste Kette“ bezeichnet). Sie können die geleistete Arbeit nicht vortäuschen, und so ist es der Wettbewerb unter den Minern, der die Geschichte des Netzwerks vor Manipulationen schützt.

Ohne ein objektives Maß (dh Energie, die zum Erstellen eines PoW aufgewendet wird) kann es sehr schwierig werden, die gültige Kette im Fall einer Kettenteilung zu bestimmen. Sie könnten ein Abstimmungssystem erstellen, aber ein solches System beruht auf subjektiven Messungen und ist daher für Netzwerkteilnehmer möglicherweise spielbarer.

Wenn es um eine Blockchain geht, bei der es kein Mining gibt, sondern nur eine Reihe von Knoten, die dafür verantwortlich sind, die Korrektheit der Blockchain am Leben zu erhalten, welche Art und Weise wäre Ihrer Meinung nach gut, um die oben genannten Probleme zu lösen? Danke schön!