Author

Topic: Problem der byzantinischen Generäle (Read 1781 times)

legendary
Activity: 881
Merit: 1006
April 12, 2015, 11:59:47 AM
#8
Wie kann man erklären wie das das Bitcoin Netzwerk löst?
Sehe ich als sehr schwer an  Embarrassed

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  Smiley
Hat mir sehr geholfen
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
April 12, 2015, 11:12:01 AM
#7
Wie kann man erklären wie das das Bitcoin Netzwerk löst?
Sehe ich als sehr schwer an  Embarrassed

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
legendary
Activity: 1022
Merit: 1004
April 12, 2015, 07:24:07 AM
#6
Na so wie ich das sehe, ist das byzantinische Problem im Fall des Bitcoin-Systems
dass z.B. ein Betrüger sich wie ein Bitcoin-Node verhält und falsche Informationen
verbreitet. Dann könnte man etwa einen Händler betrügen, indem man ihm vormacht
dass eine Ware bezahlt wurde, was aber gar nicht der Fall ist (wenn dieser Händler
zufällg seine Blockchain über den kompromittierten Node aktualisiert. Indem man
viele Nodes kompromittiert kann man diese Wahrscheinlichkeit natürlich erhöhen).

Das funktioniert aber nicht, weil dann der betrügerische Node viel Mining-Power
bräuchte. Er müsste dem Händler ja eine valide Block-Chain präsentieren, und
das kann er nicht ohne entsprechend schnell hashen zu können. Deswegen tritt
das Problem nicht auf, eben wegen dem recht cleveren proof of work-Konzept.

Vermutlich kann man das konzeptioneller verstehen (und auf andere Sachverhalte
ausserhalb der Bitcoin-Welt anwenden), wenn man sich mit Satoshis "smart contracts"
auseinandersetzt. Dahin zielt wohl der etwas kryptische Satz
 
Quote
Diese gemeinsame Konsensfindung in verteilten Netzwerken war ein ungelöstes Problem,
bevor S.N. sein Konzept des "verteilten Zeitstempelsystems" für Verträge vorstellte.
legendary
Activity: 881
Merit: 1006
April 11, 2015, 05:25:19 PM
#5
Es ist schwierig tiefgründiger zu gehen, wenn ich es selber nicht kapiere.
Der erste Text ist aus einem Buch abgeschrieben. (Bitcoin kurz & gut)
hero member
Activity: 756
Merit: 501
April 11, 2015, 05:22:44 PM
#4
äh.. ja. Danke.

Dann google ich mal nach "S.N." und "verteiltem Zeitstempelsystem"  Huh
EDIT: (Wurde nachgereicht Könntest Du bitte die Quelle angeben aus der Du kopiert hast?)

Bin ich hier wirklich der einzige, der gerade nur Bahnhof versteht?
Hielt mich eigentlich immer für ein schlaues Kerlchen...  Wink

Für mich brauchst Du nicht!!!
Aber ich denke, wenns so tiefgründig gehen soll, dann solltest Du Dir bei der Threaderöffnung
schon etwas mehr Mühe geben und auch anderen das Thema zumindest etwas näher bringen.
Nur ein Vorschlag.
legendary
Activity: 881
Merit: 1006
April 11, 2015, 05:14:24 PM
#3
Quote
Da es keine zentralen Stelle gibt, die das letzte Wort und somit die Entscheidungsgewalt hat,
muss im Bitcoin Netzwerk ein anderer Mechanismus herangezogen werden,
um sicherzustellen, dass allen Teilnehmern die gleiche Buchhaltung vorliegt
und sie sich auf diese geeinigt und als gemeinsamen Konsens akzeptiert haben.
Diese gemeinsame Konsensfindung in verteilten Netzwerken war ein ungelöstes Problem,
bevor S.N. sein Konzept des "verteilten Zeitstempelsystems" für Verträge vorstellte.  

Quote
hero member
Activity: 756
Merit: 501
April 11, 2015, 04:36:49 PM
#2
Könntest Du dazu bitte irgendwas erklären?
Ich weiß zumindest nicht, worum es bei byzantinischen Generälen geht.
Hab ich was verpasst?
legendary
Activity: 881
Merit: 1006
April 11, 2015, 04:22:08 PM
#1
Wie kann man erklären wie das das Bitcoin Netzwerk löst?
Sehe ich als sehr schwer an  Embarrassed
Jump to: