Blockchain Konsensus Kryptographie

Um Bitcoin zu verstehen ist es auch notwendig andere Konsensus Algorithmen zu verstehen. Es existieren noch weitere Modelle die hier noch nicht aufgeführt sind.


 

 

Einführung



Alle reden über Blockchain(BC) doch nur wenige wissen genau was sie definiert.
Die BC ist eine sogenannte Distributet-Ledger-Technology DLT, ein Dezentralisiertes Öffentliches Buchungssystem die auf tausenden von Servern gespeichert wird. Das Bitcoin Netzwerk hat laut Blockexplorer 10.000 Knotenpunkte/Nodes, tatsächlich sind dies nur die öffenlichen, soganannte listener Nodes, die meisten Nodes benutzen "hidden services" wie Tor und lassen sich daher nicht erfassen. Die Anzahl aller Nodes im BTC Netzwerk wird auf über 100.000 geschätzt.

Im Blockexplorer sind alle "on-chain"(weder Lightning Network noch Liquid N. Tx) Transaktionen (nach Transaktions-ID "txid"), jeder Block (z.B. #1 Genesis Block) und jede Wallet nach Adresse oder Public-Key öffentlich einsehbar. Damit nun alle Knotenpunkte dieselbe Information erhalten gibt es einen Algorithmus, der als Konsensus bezeichnet wird.

Der Konsensus hat die Aufgabe den neuen Block, der vom Miner gefunden wurde im Netzwerk zu Propagieren, indem er die Informationen aller Nodes homogenisiert und damit verifiziert, wobei die längste "Kette" bevorzugt wird.
Mittlerweile gibt es einige unterschiedliche Konsensus Protokolle, der des Bitcoin nennt sich Proof of Work (POW), er hat sich seit dem ersten Öffentlichen Block dem sogenannten Genesis Block bewährt!




Proof of Work POW



Beim BTC POW entsteht ca. alle 10 min ein neuer Daten-Block, der die Daten der Transaktionen als Signaturen und Zeitstempel, sowie weitere Implementierungen enthält, wie z.B. Smart Contracts(SC) oder Sidechains. Mit den Daten aus dem neuen Block und dem Hashwert des vorherigen Blocks entsteht zusammen mit einer willkürlichen Zahl, der Nonce, eine mathematische Aufgabe, die das Ziel hat den Hash-Wert des neuen Blocks zu erzeugen. Diese Hashwert Rechner erraten den Hashwert um den neuen Blcok zu finden, sie werden als Miner (Schürfer) bezeichnet, der POW Prozess heißt mining (schürfen).

Der Hash-Wert ist ein digitaler Fingerabdruck, bei BTC mit der Eliptischen Kurven Kryptographie ECDSA und SHA256. Dieser Hash-Wert und die Nonce, muss nun erraten werden, durch einen Arbeits Nachweis - Proof of Work.
Spezialisierte Hardware (ASIC - application specific integrated circuit) erzeugen Weltweit mittlerweile mehrere Tausend Petahash pro Sekunde, mit der Anzahl der Rechnenleistung im Netzwerk steigt die Schwierigkeit, die sogenennte difficulty, einen Block zu finden.

Die difficulty ist entscheidend für die Sicherheit und fairness, da sie sich inteligent an die Leistung des Netzwerks anpasst. Die Anpassung der difficulty erfolgt alle 2016 Blöcke, eine halbierung der Blockbelohnung findet alle 210000 Blockce statt und wird als Block-halving bezeichnet. Ist ein Block abgeschlossen und der Konsens im Netzwerk hergestellt kann er nicht mehr verändert werden.

Bei POW wird stehts die längste Blockchain propagiert, was die Möglickeit einer sogenannten 51% Attacke hervorbringt, bei der ein Miner Mindestens 51% der Rechenleistung besitzt (ist theoretisch auch mit weniger als 50 % möglich), dabei kann der Miner verschiedene manipulationen durchführen, wie z.B. eine Doppelbuchung, er könnte bestimmen welche Transaktionen verifiziert werden, er kann allerdings nicht das gesamte Netzwerk mit einer Protokoll Änderung zerstören.

Eine weitere mögliche Attacke wäre die Erebus Attacke, bei der die Nodes mit falschen Informationen versorgt werden. Die Erebus Attacke kann leicht verhindert werden indem der Node über das Tor Netzwerk, eine .onion Adresse kommuniziert. Im Blockexplorer kann überprüft werden, wieviele Nodes (Knotenpunkte / Peers) im Netzwerk aktiv sind und ob sie über Tor kommunizieren.

Kritik am POW



Der Stromverbrauch liegt momentan im Frühjahr 2019 bei ca. 53 TW/h Pro Jahr. Des weiteren wird Spezielle Hardware hergestellt, die ASIC Miner, die das ziehl haben immer mehr Rechenleistung bereitzustellen. Wenn die Technologie veraltet ist, ist sie nutzlos und kann nicht für andere Anwendungen genutzt werden. Es wird also jede menge Hochwertiger Elektroschrott hergestellt, dessen Ressourcen begrenzt sind und der Umwelt erheblich schaden. Der Bitcoin folgt also einer eiskalten Kapitalistischen Logik der Profitmaximierung und Ausbeutung des Planeten. Ist der Preis für diese Technologie überhaupt zu rechtfertigen?

Wir können Technologien die ein Problem lösen natürlich miteinander verglichen: Bitcoin ist meiner Meinung nach technisch mit Second-Layer Technologien und Lightning N. etwas effizienter und sicherer, als das uns bisher bekannte Geldsystem mit seinen vielen Institutionen. Angeblich verbraucht das Weltweite Dollarsystem ca. 350 TW/h, das schürfen von Gold abgesehen von der Ökologischen Katastrophe benötigt auch etwa 370 TW/h! Bitcoin ist vielleicht noch die etwas kleinere Ökologische Katastrophe.

Gerade diese Kritik fördert aber auch erneuerbare Energien eine Studie hat festgestellt, dass 73% der mininganlagen in Regionen stehen die von Erneuerbaren Energien versorgt werden, davon wiederum sind 2/3 Wasserkraft die teilweise sonst noch nicht anderweitig genutz wird. Ein anderer Wissenschaftlicher Artikel wiederum belegt mit dem Titel "Erneuerbare Energien lösen das Nachhaltigkeitsproblem von Bitcoin nicht" er ist auf englisch erschienen und befasst sich tiefgehend mit der Thematik.


Andere Konsens verfahren :



Proof of Stake POS



Bei POS werden die Blöcke von den "stakeholdern"/"minter" verifiziert, es ist im Grunde wie eine Lotterie, wobei die Anzahl der Coins/Token entscheidend für den sogenannten "forging"/"minting" (schmieden/prägen) Prozess ist. Genau wie beim POW wird ein Hash-Wert erraten, der durch eine mathematische Aufgabe definiert ist, die z.B. so aussehen könnte:

Ω=0,5+5⋅(Anzahl der Coins)
Umso höher die Anzahl der Coins im Wallet des Minters ist, desto höher ist die Ereignismenge Ω. Der Minter muss nun ein Ergebnis finden, das im Bereich dieser Ereignismenge liegt und wird mit dem Blockreward belohnt. Die Sicherheit des Netzwerks ist gefährdet wenn 51% der coins im Besitz eines Minters sind, da er nun bestimmen kann, was in seinen geschmiedeten Block geschrieben wird. Kryptographen sind sich noch nicht einig in wieweit POS vor doublespending geschützt ist. Die Beführworter von POS behaupten dagegen, das dieses Problem gelöst sei, denn die erste POS BC existiert immernoch NEXT NXT und hatte noch keinen bekannten fall der Doppelbuchung! Der Wohl bedeutenste Vorteil des POS ist der geringe Energieverbrauch des Netzwerks, da keine großen Rechenkapazitäten benötigt werden!

Beim Delegatet Proof of Stake DPOS werden Delegierte forger/Nodes gewählt mit einem Fee (Gebühr) von meistens einem ganzen Coin/Token, der Delegierte ist dabei nicht im Besitz der Coins des Wählers. Der gewählte forger entscheidet über die Prozentuale Ausschüttung aus der Menge der geminteten Coins an die Voter/Wähler sowie das Intervall der Auszahlungen. Der POS Konsensus ist nicht Deflationär, eine gewisse Menge muss Premined werden.


Proof of Activity



Proof of activity ist eine Kombination aus Proof of Stake und Proof of Work. Die Blöcke werdern also einmal mit POW ohne transaktionen erzeugt und in diesen POW Block kommt der POS-Block der bestimmt wer den Block mit der transaktionshistorie vervollständigen darf.

Ziel ist die vorteile beider Consensus Protokolle zu nutzen und gleichzeitig die Nachteile beider Protokolle zu minimieren. Das bedeutet für die Sicherheit das für eine Attacke 51% der Hashpower und 51% der Coins nötig sind, das Verfahren spendiert der Blockchain eine zusätzliche Ebene der Dezentralisierung.

Durch die Hohe Sicherheit des Systems, kann die Rechenleistung für den POW vernachlässigt werden, wodurch der Energieverbrauch für das Netzwerk erheblich gesenkt werden kann, bzw. ist dies vollständig vom POW Blockreward und dem Wert des Coins abhängig!




Proof of Burn



Wie der Name Proof of Burn vermuten lässt, werden bei diesem Konsensalgorithmus Coins verbrannt. Verbrannte Coins sind unwiderruflich gelöscht und sind für keine Person jemals wieder zugänglich. Die Grundidee hinter dieser recht radikal wirkenden Maßnahme ist, dass der Miner die Bereitschaft zeigt kurzfristig einen Verlust in Kauf zu nehmen, um langfristig einen Gewinn zu erzielen. Denn durch das Verbrennen erhält er ein Anrecht darauf einen neuen Block generieren zu dürfen.

Wer einmal Coins verbrannt hat, erhält ein lebenslanges Recht darauf neue Blöcke generieren zu dürfen. Dabei steigt auch hier die Wahrscheinlichkeit für den nächsten Block ausgewählt zu werden mit der Anzahl der Coins, die man im Laufe der Zeit verbrannt hat. Hier zeigen sich wiederum auch parallelen zum Proof of Stake Algorithmus.

Um Coins zu verbrennen, theoretisch können das native oder auch fremde Kryptowährungen sein, werden diese an einen Eater Adresse gesendet. Die Eater Adresse ist wie in diesem Beispiel, eine zufällig Bitcoin Adresse. Sie besitzt keinen Private Key und da dieser nicht rückwärts aus der Bitcoin Adresse berechnet werden kann, ist es völlig unmöglich jemals an die Coins in dieser Adresse heranzukommen.



Proof of Capacity



Beim Proof of Capacity wird nicht mit Rechenleistung(POW) oder Coins gearbeitet sondern mit Speicherplatz. Ziel ist z.B. ein dezentralen E-mail dienst oder Cloudspeicher anzubieten. Bei Siacoin z.B. kann der eigene Speicherplatz gegen sia angeboten werden und andersrum auch angemietet werden. Miner generieren Datensegmente(Plots) und speichern diese auf ihrer ungenutzten Festplatte. Um Datenverlust und Verschlüssellung zu gewährleisten, werden beim Hochladen die Daten verschlüsselt und gestückelt, die die Miner dann speichern! Sia ist das Prominenteste und älteste Projekt, mit einer aktiven Open-Source Community und ist damit wohl auch der dezentrlisierteste d-cloud Anbiter.


Proof of Elapsed Time



Beim Proof of Elapsed Time wird eine für jeden teilnehmenden Knoten innerhalb des Netzwerks eine zufällige Zeitspanne gewählt, die dieser warten muss. Der Knoten, dessen Wartezeit kürzer ist, gewinnt den neuen Block. Dieser darf dann den neuen Block zur Blockchain hinzufügen und sendet die notwendigen Informationen an alle anderen Knoten innerhalb des Peer-to-Peer Netzwerks. Dann beginnt der Prozess wieder von vorne.

Damit der Konsens-Algorithmus wirklich funktionieren kann, sind zwei Punkte wichtig:

1. Die Wahl der Wartezeit muss zufällig sein, denn sonst könnten die Teilnehmer bewusst eine besonders kurze Zeit wählen, um ihre Chancen auf den neuen Block zu erhöhen.

2. Es muss nachvollziehbar sein, dass der Knotenbetreiber auch tatsächlich die entsprechende Wartezeit eingehalten hat.

Diese Punkte werden durch zwei Funktionen eingehalten. Zum einen sorgt die Funktion CreateTimer dafür, dass die Wartezeit zufällig zugeordnet wird. Die zweite Funktion lautet CheckTimer. Sie überprüft, ob der Nutzer die Wartezeit eingehalten hat und damit berechtigt ist den neuen Block anzuhängen.

Quellen zu Konsensus Verfahren:

dev-insider.de

Hackernoon.com

Computerwoche