Unter dem Pseudonym Satoshi
Nakamoto wurde 2008 ein Whitepaper zur Blockchain veröffentlicht. 2009
wurde der Code für Bitcoin veröffentlicht.
Grundlegende Idee ist die sichere
Weitergabe von Werten (in Form von Informationen) in einem Umfeld ohne
vertrauensstiftende Intermediäre. Dabei werden die einzelnen Transaktionen
digital signiert und fälschungssicher zu aufeinander folgenden Blöcken
gebündelt. Durch ein implizites Konsens-Verfahren wird jeder Block der
Blockchain vom dezentralen Netzwerk bestätigt. Das Netzwerk besteht aus
sogenannten full nodes und Minern, die üblicherweise auch full nodes sind.
Jeder full node erstellt gemäß den vorgegebenen Regeln seine eigene Blockchain
auf Basis der von den Minern erstellten Blöcke.
Ein kryptografischer Hash ist ein digitaler Fingerabdruck einer
Information, der eindeutig, leicht zu berechnen, aber in sinnvoller Zeit nicht umkehrbar
ist.
Jede Transaktion in Bitcoin enthält Metadaten, wie den Hash der
Transaktion als Referenz und die mit dem public/private Key-Verfahren erstellte
digitale Signatur, sowie ein Array
aus Inputs und ein Array aus Outputs. Die Summe der Inputs muss kleiner oder
gleich der Summe der Outputs sein. Differenzen gehen als Transaktionsgebühr an den Miner, der diese Transaktion in einem
Block veröffentlicht. Der public key (bzw. sein Hash) ist gleichzeitig die
Adresse des Teilnehmers.
In einem Block werden die Transaktionen in der Struktur eines Merkle-Baums
abgelegt. Dabei sind die Transaktionen die Blätter des Baumes, die paarweise über
Hashs soweit zusammengefasst werden, dass ein Hash die fälschungssichere Wurzel
des Baumes bildet. Der Header eines Blockes enthält neben dieser Wurzel u.a.
einen Hashzeiger zum Header des Vorgängerblocks, wodurch die Blockchain
gebildet wird. Außerdem enthält er die Lösung „nonce“ des Mining-Puzzles.
Neue Blöcke werden von Minern gebildet, die damit die
Buchhaltung der Blockchain vornehmen. Sie sichern mit ihrer Arbeit die
fälschungssichere Verknüpfung der Blöcke in der Blockchain. Im Proof-of-work ist ein Mining Puzzle zu
lösen, das vom Netzwerk leicht verifiziert werden kann, aber nur durch
Ausprobieren zu lösen ist. Der Miner muss den Wert „nonce“ (von „number used
once“) finden, der in Verbindung mit anderen spezifischen Daten des Blocks und
dem Hash des Vorgängerblocks einen Hash kleiner einem gewissen Zielwert ergibt.
Jede nachträgliche Veränderung innerhalb eines Blocks erfordert dadurch die
Neukalkulation dieses Blocks und aller darauf folgenden Blöcke um wieder eine
korrekte Blockchain zu erhalten.
Der Zielwert des Mining Puzzles wird
in regelmäßigen Abständen (alle 2.016 Blöcke, ca. 2 Wochen) vom Gesamt-Netzwerk
angepasst, um eine durchschnittliche Zeit von 10 Minuten für die Bildung eines
neuen Blockes zu gewährleisten und auf Veränderungen im Netzwerk und
Hardware-Entwicklungen reagieren zu können. Da das Mining-Puzzle nur durch
Ausprobieren gelöst werden kann, ist die Wahrscheinlichkeit, einen neuen Block
zu erstellen, abhängig vom Anteil an der Rechenkapazität des Netzwerks und eine
beherrschende Stellung wird unverhältnismäßig teuer.
Damit Miner diesen Aufwand
treiben, enthält jeder Block als erste Transaktion die coinbase-Transaktion,
die dem Miner einen bestimmten Betrag an Bitcoin (zu Beginn 50 Bitcoin)
überträgt. Der Betrag halbiert sich alle 210.000 Blöcke (ca. 4 Jahre), bis in
2140 die maximale Zahl von 21 Millionen Bitcoin erreicht ist.
Andere Kryptowährungen verwenden
teilweise andere Mining Puzzles, wie proof-of-stake
(Anteilsbezogen) oder proof-of-Authority
(ausgewählte vertrauensvolle Knoten bilden den nächsten Block).
Die Korrektheit der Blockchain
wird durch einen impliziten Konsens
sichergestellt:
Jeder Knoten speichert alle
Transaktionen und seine Sicht der Blockchain. Bei der Verteilung eines neuen
Blockes wird geprüft, ob alle Transaktionen innerhalb des Blockes valide sind
und das Mining-Puzzle korrekt gelöst ist. Valide Transaktionen und Blöcke
werden im Netzwerk weiterverteilt und die Blöcke in die individuelle Blockchain
übernommen. Gibt es zwei korrekte Blöcke, die auf demselben Ausgangsblock
basieren, werden beide Blockketten behalten. Neue Blöcke werden von den Minern
immer auf der längsten Kette gebildet, weil hierin die meiste Rechenarbeit
steckt und damit die Mehrheit des Netzwerkes dainter steht. Nebenketten
verwaisen so schnell wieder. Die Transaktionen dieser Nebenketten gelten in der
Hauptkette als offen und werden normal integriert.
Durch dieses Verfahren müssten
bei rückwirkenden Änderungen in der Blockchain alle Blöcke von dort aus neu
berechnet werden und die aktuell längste Kette der Blockchain eingeholt werden.
Je weiter die Transaktion zurückliegt, umso aufwändiger wäre dieser Prozess.
Innerhalb der Bitcoin-Blockchain können Transaktionen nach sechs folgenden
Blöcken als sicher durchgeführt gelten.
Änderungen des zugrundeliegenden
Blockchain-Protokolls können zu Forks (Aufteilungen) führen, wenn nicht alle
Knoten die neuen Regeln übernehmen. Bei einer Soft Fork werden die Regeln strenger gefasst, so dass es bei einer
Kette der Blockchain bleibt. Bei einer Hard
Fork werden die Regeln gelockert (beispielsweise die höhere Blocksize in
Bitcoin Cash), so dass es zu einer dauerhaften Trennung der Blockchain in zwei
Ketten kommt, da Knoten die das neue Protokoll nicht anwenden, die
entsprechenden Blöcke nicht akzeptieren.
Ein großer Nachteil von Bitcoin ist
die relaitv geringe Skalierbarkeit durch die durchschnittlichen
Block-Erzeugungszeiten von 10 Minuten und den Aufand der Verteilung aller
Informationen im gesamten Netzwerk. Mit dem Lightning
Netzwerk soll hier eine schnellere Alternative angeboten werden: es handelt
sich um ein auf der Bitcoin-Blockchain aufsetzendes Netzwerk von
vorfinanzierten Bezahlkanälen. Einzelne Knoten verbuchen in der
Bitcoin-Blockchain einen Betrag, den sie im Lightning-Netzwerk verfügbar haben
wollen. Innerhalb des Lightning-Netzwerks werden Transaktionen dann nur
zwischen zwei Knoten abgehandelt, ohne sie an das restliche Netzwerk
weiterzugeben. Das sichert eine erheblich höhere Transaktionsgeschwindigkeit und
geringere Transaktionsgebühren. Es handelt sich aber durchgängig um valide
Bitcoin-Transaktionen, es ist kein Vertrauen in die Partner notwendig.
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.