1. Die Grundidee der Bitcoin-Blockchain
10
Der Bitcoin-Blockchain liegt eine verblüffend einfache Idee zugrunde: Kann man nicht eine bestimmte Anzahl von Einheiten (Bitcoins) schaffen und für diese ein digitales Register (ein Buch, einen Ledger) führen, in das für jeden Bitcoin (und seine Untereinheiten) alle zugehörigen Transaktionen notiert werden, sodass immer klar ist, wer gerade wie viele Bitcoin besitzt?
11
Dieser Grundidee fügte Nakamoto noch eine Reihe von zusätzlichen Anforderungen hinzu:
1. Der Ledger soll in hohem Maße sicher sein, damit sich in ihm signifikante Werte speichern lassen.
2. Nicht eine zentrale Stelle soll den Ledger führen, sondern die Beteiligten sollen gemeinschaftlich die Führung und Sicherung des Ledgers übernehmen.
3. Wie beim Bargeld sollen anonyme Zahlungen möglich sein.
12
Es kann angenommen werden, dass die Grundidee eines von der Zivilgesellschaft (oder einer Untergruppe) geschaffenen und betriebenen Währungssystems stark durch die offensichtlichen Schwierigkeiten und Limitationen der Geschäfts- und Notenbanken in der Finanzkriese 2008/2009 befeuert wurde.
13
Die wesentlichen Designkriterien der Bitcoin-Blockchain lassen sich aus den oben genannten Anforderungen ableiten:
14
Zur Sicherheit des Ledgers trägt vor allem bei, dass dieser nicht an einer Stelle, sondern im Netzwerk der Bitcoin-Knoten („Bitcoin Nodes“ oder oft auch einfach „Nodes“) hochgradig redundant geführt wird: derzeit existiert der Bitcoin-Ledger (identisch) auf mehreren tausend Knoten.
15
Bemerkung: Ursprünglich war intendiert, dass jeder Nutzer der Bitcoin-Blockchain auch einen Knoten betreiben sollte – somit die Idee eines von Nutzern selbst betriebenen Systems verwirklichend. Dieser Ansatz wurde aber mittlerweile aufgegeben: die meisten Nutzer der Bitcoin-Blockchain interagieren mit ihr über Dienstleister (z.B. über Wallet-Provider – siehe Rn. 167ff.).
b) Unveränderlichkeit/Block-für-Block-Ansatz
16
Die massive Redundanz der Knoten schützt vor Datenverlust und Manipulation. Sie ist aber auch die Ursache einer wesentlichen Herausforderung: Wie kann die Gleichheit und Integrität einer solch großen Anzahl von Ledger-Instanzen sichergestellt werden?
17
Das hierzu wesentliche Lösungselement ist der (für die Blockchain namensgebende) Ansatz, den Datenbestand als Verkettung von Blöcken darzustellen und zwar so, dass das Netzwerk der Knoten eine Übereinstimmung nur hinsichtlich des jeweils neuen Blocks (bestehend aus den neu zu speichernden Transaktionen) erzielen muss und die vorausgehenden Blöcke als unveränderlich anzusehen sind.
18
Blöcke fassen die Transaktionen, die innerhalb der sog. Blockzeit (bei Bitcoin: 10 Minuten) auftreten zusammen. Ein Bitcoin-Block enthält typischerweise ca. zweitausend Transaktionen, die in Summe ca. 1 Megabyte Datenvolumen ausmachen (1 Megabyte ist die Obergrenze der Block-Size). Naturgemäß ist es viel einfacher, im Netzwerk Einigkeit für die 1 Megabyte neue Daten zu erzielen als über den ganzen Datenbestand der Bitcoin-Blockchain (derzeit bei ca. 300 Gigabyte).
19
Die Unveränderlichkeit bestehender Blöcke wird wie folgt „erzwungen“: Jeder Block (außer dem erstem Block, dem sog. Genesis-Block) enthält als Teil seines Datenbestands einen Fingerabdruck des vorausgehenden Blocks. Technisch gesehen ist der Fingerabdruck als sog. Hash-Wert des Vorgängerblocks implementiert. Eine Änderung eines Blocks führte somit unweigerlich zu einem Mismatch mit seinem im Nachfolgeblock gespeicherten Fingerabdruck. Die auf den Knoten laufende Software würde einen solchen Datenbestand sofort als nicht integer erkennen und aussortieren.
c) Public-Private-Key-Kryptographie
20
Bitcoin nutzt – so wie alle anderen wichtigen Kryptowährungen auch – bestimmte kryptographische Verfahren, um Transaktionen zu sichern. Hierbei kommen die folgenden Elemente zum Einsatz:
– private Schlüssel (Private Keys),
– öffentliche Schlüssel (Public Keys),
– Bitcoin-Adressen (auch Wallet-Adressen oder Bitcoin-Wallet-Adressen genannt),
– digitale Signaturen.
21
In der Bitcoin-Blockchain wird die Gültigkeit von Transaktionen (und somit die Möglichkeit, über Bitcoin zu verfügen) durch digitale Schlüssel, Bitcoin-Adressen und digitale Signaturen nachgewiesen.
22
Die genannten Entitäten hängen wie folgt zusammen:
– Der Private Key entspricht einer Zufallszahl (mit 256 Byte Länge), die der Nutzer selbst wählen (oder besser noch: mit bestimmten Tools erzeugen) kann.
– Der Public Key wird aus dem Private Key durch Anwenden einer Falltür-Funktion3 errechnet. Die Falltür-Funktion stellt sicher, dass der Aufwand, den private Key aus dem Public Key „zurückzurechnen“ astronomisch hoch wäre. Der Public Key wird erst in dem Moment benötigt (und somit auch erst sichtbar), wenn ein Nutzer über empfangene Bitcoin verfügen möchte (s.u.).
– Die Information, die der Sender zur Kennzeichnung des Adressaten wirklich benötigt, ist die Bitcoin-Adresse des Empfängers. Diese wird wieder durch Anwenden eines falltürartigen4 Ansatzes aus dem Public Key ermittelt.
– Mit der digitalen Signatur (die aus den Transaktionsdaten und dem Private Key errechnet wird) kann ein Nutzer über die an seine Adresse gesendeten Bitcoin verfügen, da er dem Bitcoin-Netzwerk gegenüber nachweisen kann, dass er über den zur entsprechenden Bitcoin-Adresse zugehörigen Private Key verfügt – und zwar ohne, dass er den Private Key explizit zeigen muss (sichtbar wird nur die digitale Signatur).
23
Die digitalen Schlüssel und die Bitcoin-Adressen eines Benutzers sind also völlig unabhängig von der Bitcoin-Blockchain und können vom Benutzer ohne Bezugnahme auf die Blockchain erzeugt und verwaltet werden. Dies muss aus Sicherheitsgründen natürlich auch so sein.
24
Auch wenn der „Block-für-Block-Mechanismus“ den Gegenstand des Konsenses unter den Knoten auf die neuen Transaktionen reduziert (und somit deutlich vereinfacht), muss dieser Konsens zeitnah, effizient, fair und zuverlässig erreicht werden.
25
Zunächst muss geklärt werden, dass die Transaktionen, die in den nächsten Block Eingang finden sollen
– echte und erlaubte Transaktionen aus dem Netzwerk sind und
– den Regeln des Protokolls entsprechen.
26
Diese Überprüfung leistet die Knotensoftware, indem sie u.a. die oben erwähnten Signaturen der Transaktionen verifiziert.
27
Des Weiteren muss verhindert werden, dass einzelne Knoten das Netzwerk mit neuen Blöcken überschwemmen (spammen) oder alternative Versionen der Blockchain (sog. „Forks“/Abzweigungen) erzeugen. So könnte beispielsweise ein Teilnehmer das Interesse haben, eine Version der Blockchain zu erzeugen, bei der er bestimmte in der Vergangenheit liegende Transaktionen gar nicht getätigt hätte (was ihm ein sog. „Double Spending“ – ein doppeltes Ausgeben – von Bitcoins ermöglichen würde).
28
Das in der Bitcoin-Blockchain zur Vermeidung solcher Aktionen implementierte Verfahren ist der sog. Proof-of-Work. Er stellt sicher, dass beim Festschreiben eines neuen Blocks eine signifikante Rechenarbeit geleistet werden muss. Im Detail funktioniert das Verfahren bei der Bitcoin-Blockchain wie folgt:
29
Die Knoten stehen untereinander im Wettbewerb, wer von ihnen den nächsten Block für verbindlich erklären und somit der Blockchain hinzufügen kann. Damit sich dieser Wettbewerb lohnt, erhält der Knoten, der den Wettbewerb gewinnt, neu geschöpfte Bitcoin – derzeit 6,25 Bitcoin (ca. 70k US-Dollar) pro Block.
Читать дальше