Kryptogeld wirklich verstehen - Das ist die Blockchain
TL:DR Konsequent dezentrales Design bringt Herausforderungen mit sich, die Bitcoin mithilfe der Blockchain löst. Auf dem Weg, das im Detail zu verstehen, geht es um Konzepte wie difficulty, proof-of-work und mining.
Hallo, ich bin Dirk. Dies ist eine Fortsetzung des Artikels Ein dezentrales Netzwerk aus der Serie “Kryptogeld wirklich verstehen”. Weitere relevante Artikel sind unten verlinkt.
Ach, machst du neuerdings die Einführung?
Deine Artikel brauchen mehr Struktur
Ok, äh, Danke! Manchmal hab ich Angst, ich werde weggesperrt, wegen Schizophrenie.
Quatsch, das ist alles im Rahmen künstlerischer Freiheit. Wiederhol doch bitte für unsere Leser, wo wir im letzten Artikel stehengeblieben sind
Geht los! Bitcoin ist ein dezentrales Netzwerk aus gleichberechtigten Nodes. Prinzipiell kann jeder zu so einem Node werden, indem er die Software Bitcoin Core herunterlädt und 24/7 auf seinem PC laufen lässt. Prakti sch ist das nicht notwendig und auch nicht empfehlenswert. Jeder Node weiß über alle Bitcoin-Transaktion Bescheid und speichert die Blockchain, das ist Bitcoins distributed ledger.
Außerdem überprüft jeder Node die Korrektheit jeder Transaktion und stellt somit sicher, …
- … dass niemand mehr Coins ausgeben kann, als er besitzt,
- … dass niemand anderer Leute Coins ausgeben kann
- … und dass ich meine Coins nicht gleichzeitig mehrmals ausgeben kann.
Ja, nur dass du meintest, das reicht irgendwie noch nicht
Richtig. Eben weil jeder Hanswurst Node werden kann und dann im Netzwerk mitmischt, können die Nodes sich untereinander nicht vertrauen. In einem verteilten Netzwerk entstehen leicht Inkonsistenzen und wir brauchen also einen Mechanismus, der einen Konsens unter den Nodes herstellt, selbst dann wenn ein böswilliger Angreifer zielgerichtet das Netzwerk angreift.
Was ist die Motivation eines solchen Angreifers?
Als Angreifer könnte ich versuchen, entgegen der obigen Regeln mir “illegal” zu mehr Coins zu verhelfen oder andere Leute um ihre Coins zu erleichtern. Nicht zuletzt könnte auch jemand einfach versuchen, das Gesamtprojekt Bitcoin zu vernichten. Ich muss da an Chinas Kapitalverkehrskontrollen denken, die von Bitcoin unterwandert werden, oder die Währungsdominanz des US-Dollar, von der nicht alle Menschen profitieren.
Bleib unpolitisch, sonst verdirbst du es dir mit deinen Lesern, die an der technischen Innovation interessiert sind - ohne Verschwörungstheorien
Wie du meinst. Heute soll es darum gehen, wie Bitcoins Blockchain diese Herausforderung löst, und wir widmen uns direkt dem schwierigsten Problem.
Das Double-Spending-Problem
Das Problem heißt double spending und geht so:
lch habe einen Betrag von 30 BTC gespart und kaufe mir davon einen Ferrari. Der Autohändler sieht in seinem Wallet sofort, dass ich eine entsprechende Transaktion an seine Adresse getätigt hat, weil sich die Information unter den Nodes in Europa schnell verbreitet. Er glaubt also, die Bezahlung ist in Ordnung und beglückwünscht mich zu meiner Kaufentscheidung.
lch habe aber außerdem zeitgleich an meine Nodes in China und Südamerika eine weitere, widersprüchliche Transaktion geschickt, die mit der ersten identisch ist, nur dass die Zieladresse eine komplett andere ist. In dieser zweiten Transaktion schicke ich dieselben 30 BTC an eine Adresse, die in meinem Besitz ist.
lch habe also meine Coins zwei Mal ausgegeben (deshalb heißt es double spending). Einige Nodes glauben, die 30 BTC gehören dem Autohändler, andere Nodes glauben, sie gehören immer noch mir. Wenn ich mit dem Auto vom Hof fahre, will der Autohändler aber Gewissheit haben, dass die 30 BTC ihm und nur ihm gehören.
Ich sehe, dass das ein Problem ist, aber warum ist das das “schwierigste Problem”?
Double Spending ist deshalb so hinterfotzig, weil beide widersprüchlichen Transaktion für sich genommen gültig sind und ich trotzdem betrügen kann. Es gibt nicht einmal ein objektives Kriterium, welche der beiden Transaktion die “richtige” ist.
lch werde jetzt Schritt für Schritt Bitcoins Blockchain erklären und am Schluss wird klar, warum damit das Double-Spending-Problem gelöst ist.
Die Blockchain Schritt für Schritt
Zuallererst werden Transaktionen nicht einzeln verifiziert, sondern in sogenannte Blöcke
zusammengefasst. Jeder Node lauscht also im Netzwerk nach unbestätigten Transaktionen (engl. unconfirmed transactions) und versucht, aus diesen einen Block zu generieren. Nodes, die sich bei der Blockerzeugung beteiligen, werden Miner genannt.
Das Generieren von Blöcken ist ein Wettbewerb unter den Minern und wird belohnt. Derjenige Miner, der einen gültigen Block erzeugt, darf sich selber den sogenannten block reward in Bitcoin gutschreiben, zur Zeit immerhin 12,5 BTC. Daher erklärt sich auch der Name: Miner = Bergarbeiter. Miner bauen gewissermaßen Bitcoins ab.
Außerdem erhält der Miner die Transaktionsentgelte, die in jeder Transaktion drinstecken. Die Blockerzeugung ist nicht einfach und obwohl alle Miner gleichzeitig versuchen, den nächsten Block zu generieren, wird im Schnitt alle 10 Minuten nur ein Block gefunden
Da die Transaktionen prinzipiell aufeinander aufbauen (Hans schickt was an Gabi, Gabi schickt was an Klaus), bauen auch die Blöcke aufeinander auf. lm header von Block 324 steht drin, dass der vorhergehende Block die Nummer 877 hatte.
Difficulty und Proof-of-Work
Ich kann bei allem folgen außer hier: Du sagst: “Die Blockerzeugung ist nicht einfach”. Was soll den daran schwer sein, die Transaktionen zusammenzufassen?
Die Wahrheit ist, Blockerzeugung wird künstlich schwer gemacht. Das ist ein Teil des Blockchain-Designs. Wie schwer es genau ist, einen neuen Block zu generieren, wird über einen Parameter geregelt, der im jeweils letzten Block vorgegeben ist: die difficulty. Je höher die difficulty ist, desto mehr Rechenleistung ist dazu nötig.
Wer es genau verstehen will: In dem Artikel Von privaten Schlüsseln, Unterschriften und Adressen hab ich erklärt, was eine Hash-Funktion ist. Die Miner müssen nun folgendes Rätsel lösen: der Hash von dem Block-Header muss kleiner sein als der Kehrwert der difficulty (multipliziert mit einer Konstanten). Da die Ergebnisse einer Hash-Funktion pseudo-zufällig sind, bleibt dem Miner nichts anderes übrig, als auszuprobieren und zu schauen, welcher Wert rauskommt. Für den Fall, dass es nicht klappt, gibt es die Nonce: Eine Zahl im Block-Header, die keinerlei Bedeutung hat, aber variiert werden kann, damit der Hash des Block-Headers einen neuen Wert annimmt. Die Miner machen also nichts anderes, als Nonces durchzuprobieren und Hashes zu berechnen, bis das difficulty-Kriterium erfüllt ist.
Das erfolgreiche Generieren eines Blocks bei gegebener difficulty wird proof-of-work genannt, der “Nachweis von Arbeit” - bzw. in diesem Fall eben geleistete Rechenpower.
Na Klasse, statt einzelner Transaktionen haben wir jetzt Blöcke. Und meine CPU läuft heiß, wenn ich versuche Blöcke zu generieren. Was ist damit jetzt gewonnen?
Die Blöcke, von denen es im Schnitt alle zehn Minuten einen neuen gibt, sind der Takt des Netzwerks. Eine Transaktion, die es in einen Block schafft, wurde verifiziert und ist in Ordnung.
Der Fork in der Blockchain
Der Double-Spending-Angriff funktioniert aber zunächst immer noch. Im Beispiel oben
hatte der Angreifer an die Nodes in Europa eine Transaktion gesendet - nennen wir sie
Transaktion 1a - und an die nodes in China und Südamerika eine andere - nennen wir sie Transaktion 1b.
Nun ist durchaus wahrscheinlich, dass ein europäischer Node einen gültigen Block mit der
Transaktion 1a generiert, block 216, und ein chinesischer Node einen mit Transaktion 1b, block 899. Unabhängig voneinander sind beide Blöcke gültig. Was passiert also mit unserer Blockchain?
Wir haben einen fork, auch genannt Verzweigung. Als ehrlicher Node stehe ich jetzt vor einem Konflikt. lch kann jetzt entweder basierend auf chain 1 versuchen neue Blöcke zu generieren oder basierend auf chain 2.
Mal ganz langsam bitte. Ich bin Miner. Ich will einen neuen Block generieren. Ich brauch dazu den letzten gültigen Block. Mir stehen aber zwei zur Auswahl, einer aus Europa und einer aus China.
Alles richtig. Das Bitcoin-Protokoll sieht für die ehrlichen Miner jetzt die folgende Regel vor.
Ehrlich währt am längsten ...
Ich generiere Blöcke immer für diejenige chain, in die am meisten proof-of-work geflossen ist. Das ist in der Regel einfach die chain mit den meisten Blöcken, also die längste chain.
… und das Netzwerk konvergiert
Weil aber die große Mehrheit der Rechenpower von ehrlichen Minern kommt, bleibt ganz
schnell nur eine chain übrig. Das Netzwerk konvergiert nach einem fork auf eine Blockchain. Der böse Hacker kann seine Miner weiterhin auf dem schwachen fork arbeiten lassen allerdings bringt ihm das wenig. Er kann sich nicht einmal über den block reward freuen, weil der in der dominanten chain an ganz andere Miner ausbezahlt wird. Und die Geschichte wird von den Siegern geschrieben.
Bitte keine Politik. Schließe jetzt lieber den Bogen und erklär mir, wie jetzt der Autohändler an seine Bitcoins für den Ferrari kommt
Problem: gelöst
Zurück zum Autohändler also: Wenn ich also 30 BTC empfange und ganz sicher gehen will, dass die auch bei mir landen - trotz böser Hacker-Attacken - dann muss ich einfach nur ein paar Blöcke abwarten.
Ein Hacker, der sehr viel Rechenpower hat, kann vielleicht erreichen, dass die Transaktion 1a für die Zeit von ein, zwei Blöcken (= 10 bis 20 Minuten) gültig aussieht und dann plötzlich verschwindet. Mit jedem weiteren Block sinkt die Wahrscheinlichkeit aber drastisch, dass noch ein fork irgendwo am Leben ist.
Da ein Angreifer, der mehr als 50% der Rechenpower des Netzwerks kontrolliert, prinzipiell in der Lage wäre, beliebige forks am Leben zu erhalten, spricht man in so einem Fall von der 50%-Attacke. Gegen einen Einzelnen, der mehr als 50% der Rechenpower kontrolliert, wären die ehrlichen Miner machtlos und Bitcoin wäre nicht mehr sicher. Gegen eine 50%-Attacke gibt es keine Lösung, außer dass es teuer bis unmöglich ist, 50% der Rechenpower des Bitcoin-Netzwerks für einen Angriff zu kontrollieren.
Praktisch hat sich etabliert: Wer ganz sicher gehen will, wartet sechs Blöcke nach einer
Transaktion ab, auch genannt: sechs Bestätigungen oder confirmations. Diese Eigenschaft des dezentralen Netzwerks, innerhalb eines Zeitraums zu konvergieren, ist die zentrale Innovation von Bitcoin.
Im nächsten Teil geht es um die Konsequenzen dieses Wettbewerbs der Miner. Neben positiven Aspekten wie der Sicherheit gegen hypothetische Versuche der NSA, Bitcoin zu dominieren, gibt es auch negative Aspekte wie den Stromverbrauch und Zentralisierung der Rechenpower. Außerdem gibt es alternative Coins, die auf Bitcoins Konzepten aufbauen und versuchen es besser hinzukriegen
Sehr richtig, Dirk!
Liebe Leser
Wer bis hierhin alles verstanden hat, hat es fast geschafft. Die Blockchain ist ein Meilenstein in der Geschichte des Internets und die Funktionsweise muss kein von Experten gehütetes Geheimnis sein.
Wenn noch Dinge unklar sind, helfe ich gerne weiter. Also stellt eure Fragen in den Kommentaren!
Ältere Artikel aus der Serie Kryptogeld verstehen
- Kevin lernt Bitcoin - Die Grundlagen
- Bitcoins kaufen - Über Bitcoin-Börsen
- Bitcoins sicher aufbewahren - Über Bitcoin-Wallets
- Kryptogeld wirklich verstehen - Von privaten Schlüsseln, Unterschriften und Adressen
- Kevin macht Krypto-Trading - Vermeide die typischen Fehler eines Anfängers
- Kryptogeld wirklich verstehen - Bitcoins dezentrales Netzwerk
Congratulations for winning an additional 10% Upvote
https://steemit.com/steemit/@twinner/today-i-learned-that-steemit-com-can-encrypt-memos-this-enables-secure-p2p-messaging-between-all-steemit-accounts
Danke. Du hast Talent, finde ich.
wieder einmal klasse erklärt, lieber @gustave! resteeme ich mir. vielen dank. lg
Und danke zurück!
Deine Artikel sind wirklich klasse, hab ich direkt mal Resteemed!
Danke dafür
Sehr guter und verständlicher Beitrag. Blockchain super erklärt und die eigentlich schwierige Thematik immer wieder schön aufgelockert :)
Wow, richtig gut erklärt. Danke dir! Sehr wertvoll!
Danke!
Sehr guter Beitrag und ich hoffe es werden noch viele folgen.
new | hot | trending | promoted
deutscher steemit chat
happy steemit wünscht
asmr-austria (Christian)
Danke für den Support!
Mehr zum Thema findest du hier: https://wissen.fun/was-ist-eine-blockchain/
Hello sir
Would you like to join this company program?
Company name is x-traders.
Belize Base Registered company.
100% legit company.
New lunching company program .
$20 SIGN UP BONUS.
7 level deep referrals commission.
LEVELS OF CAREER LEADER 11.
Last levels of this company is chairman
BIG MATCHING BONUS.
Life long time passive income.
Big earning plan
Life changing program.
If you join this company then you can change your life. Trust me. If you want to more details then click link below. Read more details and after that join this company program.
More details https://x-traders.com/?ref=12025064