Wir wollen hier einige technische Aspekte der Bitcoin-Technologie hervorheben:
# Blockchain
Die Blockchain ist die grundlegenden Datenstruktur worauf Bitcoin – und mittlerweile viele andere Kryptowährungen basieren.
# Verkettungsprinzip
Eine Blockchain ist eine verkettete Folge von Datenblöcken, die über die Zeit weiter fortgeschrieben wird.
# dezentrale Speicherung
Eine Blockchain wird nicht zentral gespeichert, sondern als verteiltes Register geführt. Alle Beteiligten speichern eine eigene Kopie und schreiben diese fort.
# Konsensmechanismus
Es muss sichergestellt werden, dass alle Beteiligten die selbe Kette besitzen. Deshalb werden zuerst Vorschläge für neue Blöcke erarbeitet. Dies geschieht durch sogenannte Validatoren (die bei Bitcoin Miner genannt werden). Dann müssen sich die Beteiligten einigen, welcher vorgeschlagene Block tatsächlich in die Kette eingefügt wird.
# Manipulationssicherheit
Kryptographische Verfahren stellen sicher, dass die Blockchain nicht nachträglich geändert werden kann. Die Kette der Blöcke ist somit unveränderbar, fälschungs- und manipulationssicher. 👉 Hash
# Transparenz/Vertraulichkeit
Die auf der Blockchain gespeicherten Daten sind von allen Beteiligten einsehbar. Sie sind deshalb aber nicht unbedingt auch für alle lesbar, denn Inhalte können verschlüsselt abgespeichert werden. 👉 Verschlüsselung
# Nichtabstreitbarkeit
Durch die Nutzung digitaler Signaturen sind Informationen in der Blockchain speicherbar, die fälschungssicher nachweisen, dass Teilnehmer unabstreitbar bestimmte Daten hinterlegt haben, etwa Beträge überwiesen haben. 👉 Signatur
# Bitcoin
Die Parade-Anwendung der Blockchain - und auch die erste weit verbreitete – ist die Kryptowährung Bitcoin.
# Proof-of-Work
Beim Konsens-Verfahren von Bitcoin kommt der sogenannte «Proof-of-Work» zum Einsatz: Die «Miner» müssen sich anstrengen, um Bitcoins zu finden! Dazu wird ein mathematisches Rätsel gelöst, das nur durch einen immensen Aufwand – ohne Trick – gelöst werden kann.
Bei Bitcoin wird für den neuen Block ein bestimmter Hashwert gesucht, einer der mit einer bestimmten Anzahl Nullen beginnt. Damit das möglich ist, wird eine sogenannte Nonce benötigt, ein Wert, der von den Minern gesucht werden muss, so dass der Hashwert eben diese Bedingung erfüllt.
Gehasht werden der Hash des vorherigen Blocks, die Daten des neuen Blocks und eben diese beliebige Nonce. Nur die Nonce kann vom Miner festgelegt werden, die restlichen Daten sind durch den vorherigen Block und die neuen Transaktionen gegeben.
Die Miner versuchen also so schnell wie möglich viele Nonces auszuprobieren. Wer als erstes eine Nonce findet, womit der Hashwert die Bedingung erfüllt, kann diesen Block abschliessen und erhält als Belohnung Bitcoins.
# Longest-Chain-Rule
Die Longest-Chain-Rule besagt, dass die längste Blockchain die korrekte ist. Ist also ein Miner erfolgreich und schliesst einen neuen Block korrekt ab, so können die anderen Miner diesen Block überprüfen (Transaktionen und korrekter Hashwert), anschliessend übernehmen sie diesen Block und arbeiten an einem neuen.
Gültig ist immer die längste Kette – im untenstehenden Bild vom Anfangsknoten (grün) aus schwarz dargestellt:
Wenn jemand versucht die Kette zu teilen, dann tritt er gegen alle anderen an und seine Kette wird bald verworfen werden, da die anderen schneller sind und somit die längere Kette haben. Diese wird also von den aufrichtigen Minern übernommen und die andere Kette «verwaist».
# Beispiel
Im untenstehenden interaktiven Beispiel kannst du selbst für eine Blockchain Daten setzen und Hash-Werte «minen»:
Aufgabe
- Fülle den 1. Block mit beliebigen Daten
- Gib von Hand eine Nonce ein und guck dir den Hashwert an
- erfüllt dieser die Konsens-Bedingung?
- Mit dem 1x-Button kannst du eine zufällige Nonce generieren
- erfüllt diese die Konsens-Bedingung?
- mit dem auto-Button kannst du deinen Browser minen lassen – es werden so lange zufällige Nonces berechnet, bis der Konsens erfüllt ist
- Jetzt wo du einen gültigen Hash-Wert hast (grünes Feld), kannst du mit dem +-Button einen neuen Block anfügen
- Wiederhole diesen Vorgang bis du eine Kette von 4-5 Blöcken hast die alle gültig sind
- Versuche nun beim 2. Block Daten abzuändern
- was geschieht?
- was müsste man machen, damit die Blockchain wieder gültig wird?