Freitag, 16. November 2018

Blockchain

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.