Sehe ich als sehr schwer an
Ich versuchs mal.
Was ist überhaupt das Problem das gelöst werden soll? Innerhalb des Bitcoinnetzwerks soll Einigkeit darüber herschen wer wieviel Bitcoin unter Kontrolle hat. Wenn es unterschiedliche Antworten auf die Frage "wieviel Bitcoin hat 1Le5jXpxvANv3v5Vfx9FY3XZjHjRm8fvzg erhalten?" (kurz Frage A) gibt, dann ist es möglich das ich - je nach dem wem ich Frage - unterschiedlich viele Bitcoin zur Verfügung habe. Die Antwort auf Frage A muss aber immer gleich sein, egal welchen Netzwerkknoten ich frage. Wenn die Antwort unterschiedlich ausfallen sollte könnte es passieren das ich versuche bei meinem Lieblings-Kaffee-Dealer einen Kaffee zu kaufen, der aber meine Zahlung nicht akzeptiert. Alle Netzwerkknoten die er befragt hat sagen nämlich das ich gar kein Geld habe. Alle Knoten die ich befrage sagen aber ich hätte ausreichend Bitcoin zur Verfügung.
Bis Satoshi das "Proof of work (PoW)" Konzept vorgestellt hat, galt dies bei gleichberechtigten Netzwerkteilnehmern (peer to peer Netz) als ungelöst. Die Idee von PoW ist das Rechenleistung abstimmt und als Konsens akzeptiert wird was mehr als 50% des Netzwerks als korrekt erachten. Die Lösung ist das was wir von Bitcoin alle kennen: Jeder verbreitet seine Transaktionen im Netzwerk und die Miner bilden daraus Blöcke. Jetzt ist aber die Frage welcher Block ist der letzte, welcher ist der richtige. Meistens ist die Antwort darauf: die "längste Kette" entscheided. Das ist aber so nicht richtig bzw. erweckt einen falschen Eindruck. Es kommt nicht auf die Anzahl der Blöcke an, sondern auf die Menge der geleiteten Arbeit. Je höher die Difficulty eines Blocks ist desto höher ist die geleistete Arbeit. Die Difficulty passt sich zudem so an das im Schnitt nur alle 10 Minuten ein Block gefunden wird. Die Blöcke geben sozusagen den Takt des Netzwerk vor. Sie bestimmen wo wieviel Bitcoin zur Verfügung stehen und sollte es einmal zwei oder mehr alternative Ketten geben (sog. Forks) wird auf dauer nur eine davon "länger" sein, die meiste Arbeit geleistet haben und der Rest des Netzwerks wird die anderen Blöcke (sog. Orphans [engl. Weisenkinder]) verwerfen[1]. Je kürzer die angestrebte Zeit zwischen zwei Blöcken desto höher ist die Rate an Waisen. Das liegt daran das die Übertragung nicht sofort passieren kann, sondern Zeit braucht. Es wird also immer vorkommen das Rechenleistung "verschwendet" wird, weil Miner noch nichts von einem Block wissen und daher noch an einem sehr ähnlichen arbeiten.
Wäre die geleistete Arbeit nicht relevant, dann könnte sich jmd. heimlich eine Kopie die Blockchain im privaten Netzwerk heranzüchten die mit weniger Rechenleistung trotzdem länger (mehr Blöcke) ist. Dieser Angriff geht davon aus das man lokal eine niedrige Difficulty provoziert und dann in kurzer Zeit sehr viele Blöcke findet. Da die difficulty nicht nach jedem Block neu berechnet wird, wäre es möglich mehr Blöcke zu finden als der Rest des Netzwerks in der selben Zeit. Die Anzahl ist aber wie gesagt nicht relevant, sondern die aufgebrachte Rechenleistung. Wobei nicht die tatsächlich geleistete Rechenleistung relevant ist. Wenn ein Miner mit nur einem Hashversuch einen gültigen Block findet dann ist dieser bei gleicher Difficulty genau so viel Wert wie ein Block an dem sich der Rest des Netzwerks 30 Minuten abgeschuftet hat. Es ist für die Miner also auch nicht möglich diesen Wert zu fälschen.
Das alles ist im überigen auch der Grund wieso man manchmal ließt das die Blockchain die wichtige technologische Errungenschaft ist und nicht Bitcoin selbst. Bitcoin ist sozusagen nur das erste Beispiel das diese neue Technik nutzt.
Sehr alte Seite des Forums dazu -> https://bitcointalk.org/oldSiteFiles/byzantine.html
[1] https://blockchain.info/de/orphaned-blocks
Danke für die Ausführliche Antwort
Hat mir sehr geholfen