Förderjahr 2022 / Stipendien Call #17 / ProjektID: 6321 / Projekt: Automated Verification of Game-Theoretic Security Properties for Decentralized Protocols
Bitcoin, Kryptowährungen, Blockchain… diese Begriffe sind in aller Munde. Die meisten Menschen haben eine sehr starke Meinung dazu. Überspitzt formuliert sehen einige darin die Lösung all ihrer Probleme, andere die Ursache. Viele ignorieren das Thema komplett. Was jedoch einen Großteil dieser Menschen verbindet, ist, dass sie sich ihre Meinung häufig auf der Basis anderer Meinungen gebildet haben. Viele trauen es sich vielleicht nicht zu sich selbst mit den Grundlagen eines vermeintlich so hochkomplexen Themas zu beschäftigen, haben schlicht nicht die Zeit oder das Interesse. In diesem Blog Post möchte ich das ändern und versuche zu erklären was Blockchain Technologie ist, wie sie funktionert und wofür man sie verwenden kann.
Was ist Blockchain?
Eine Blockchain ist eigentlich ein ganz banales Konzept. Es ist tatsächlich eine Kette von Blöcken, wie in der untenstehenden Skizze dargestellt. In so einem Block gibt es drei Felder: Hash, Inhalt und Freifeld. Schauen wir uns den Block #22 genauer an. Das wichtigste Feld ist der Inhalt. Es enthält die eigentliche Nachricht, die man speichern möchte. In Block #22 ist diese Nachricht “HOLA”. Das Feld Hash enthält das Ergebnis einer sehr mühsamen und langwierigen Berechnung auf Basis des vorhergehenden Blocks #21. Dieser Zusammenhang ist durch den Pfeil zwischen Block #21 und Block #22 angedeutet. Das dritte Feld Freifeld ist für die eigentliche Blockchain irrelevant, aber in vielen Anwendungen wichtig. Es wird später näher beschrieben.
Die folgende “sehr mühsame und langwierige Berechnung” wurde in der obigen Skizze verwendet, um den Hash-Wert zu bekommen: (Die Berechnung eines echten Hashes ist um ein Vielfaches komplexer.) Zur Veranschaulichung wird die Berechnung des Hash-Wertes des Blocks #21, der im Feld Hash in Block #22 steht, erklärt.
-
Man berechnet zuerst den Wert des Inhaltsfelds “HI”, indem man jedem Buchstaben seine Stelle im Alphabet zuordnet (H=8, I=9), und reiht diese Zahlen dann aneinander (HI=89).
-
Im zweiten Schritt addiert man die Ziffernsumme des Hash-Feldes (29592, also 2+9+5+9+2=27) und die beliebige Zahl im Freifeld dazu (27+89+7=123).
-
Dieser Wert ist dann der Hash-Wert des Blocks #21, der in den nächsten Block (#22) geschrieben wird.
Auf die gleiche Weise wurden auch die Hash-Felder in den Blöcken #21 und #23 bestimmt. Durch diese Vorgehensweise werden die Blöcke untrennbar miteinander verbunden und es entsteht eine Kette.
Wie funktioniert Blockchain?
Eine berechtigte Frage an dieser Stelle wäre: ”Warum macht man das so umständlich? Man könnte ja einfach die Nummer des alten Blocks in das Hash-Feld schreiben.” Das ist zwar möglich, allerdings erfüllt diese mühsame Berechnung eine wichtige Funktion: Sie schützt die Blockchain vor Betrug. Angenommen jemand möchte die Blockchain manipulieren, das heißt zum Beispiel den Wert “HI” in Block #21 durch “AUF WIEDERSEHEN” ersetzen, dann müsste diese Person jeden einzelnen Hash-Wert der darauffolgenden Blöcke ändern und alle anderen Parteien davon überzeugen, dass der Hash-Wert des letzten Blocks, den alle bei sich lokal speichern, falsch ist. Das ist ein sehr unwahrscheinliches Szenario und damit werden die Inhalte einer Blockchain betrugssicher.
Wofür wird sie angewendet?
Blockchains können immer angewendet werden, wenn Daten unveränderbar gespeichert werden sollen. Die bekannteste Anwendung sind im Moment Kryptowährungen, wie z.B. Bitcoin. Bei Kryptowährungen übernimmt die Blockchain die Aufgabe der Dokumentation von Geldtransfer. Dafür ist sie eine gute Kandidatin, weil sie betrugssicher und unveränderbar ist. Das heißt, sobald genug Überweisungen stattgefunden haben, gibt es einen neuen Block, der festhält welche Partei welcher anderen welchen Betrag zukommen hat lassen.
Kryptowährungen kommen ohne eine vertrauenswürdige Institution (z.B. Bank) aus. Daher muss sichergestellt werden, dass nur korrekte Daten in den nächsten Block aufgenommen werden. Um das zu bewerkstelligen hat man sich folgenden Mechanismus ausgedacht: Jemand, der einen neuen Block erstellen will, muss davor eine schwierige Aufgabe lösen und wird anschließend dafür belohnt. Solche Personen die neue Blocks erstellen, nennt man “Miners”, also “(Gold-)Schürfer”. Bei der schwierigen Aufgabe kommt nun das Freifeld ins Spiel. Die Aufgabe eines Miners ist es nämlich das Freifeld so zu wählen, dass der entstehende Hash-Wert eine bestimmte Form hat (z.B. auf 111 endet). Allerdings müssen die anderen Nutzer*innen den neuen Block als korrekt akzeptieren, bevor er gültig wird. Dadurch haben Miners keine Motivation falsche Daten in einen neuen Block zu schreiben. Denn in diesem Fall hätten sie Resourcen (Stromkosten!) verschwendet, ohne die Belohnung kassieren zu können.
In traditionellen Kryptowährungen verbraucht das eine enorme Menge an Energie. Kryptowährungen stehen dafür oft in der Kritik. Es gibt bereits einige Kryptowährungen, die andere Lösungen verwenden.
Falls Ihr Interesse geweckt wurde, gibt es hier Links zu tollen Erklärvideos der Universität Princeton (in englischer Sprache).