Blockchain – Vertrauen ist gut, Kryptografie ist besser
Vertrauen – Dies ist ein Wort, welches oft von Banken in ihren Werbespots verwendet wird. Zu Recht, schließlich ist Vertrauen einer der Grundpfeiler unseres Finanzsystems. Ganz egal welches Medium man zum Transfer von Geld in Anspruch nimmt – Kreditkarte, PayPal oder der gute alte Scheck – hinter allem steht letztendlich der Transfer von Geld von einem Bankkonto auf ein anderes.
Die Einheit solcher Transaktionen ist eine Währung. Klassische Währungen unterliegen immer der Kontrolle einer zentralen Instanz – einzelne Regierungen oder zum Beispiel der Europäischen Union im Falle des Euros. Auch hier ist Vertrauen gefragt. Die Verbraucher vertrauen darauf, dass eine Währung stabil bleibt – und zum Beispiel nicht durch massives Nachdrucken von Geld abgewertet wird. Auch wenn der Euro relativ stabil ist, es gibt zahlreiche Beispiele von Hyperinflation, wodurch dieses Vertrauen der Bürger in die Stabilität ihrer Währung enttäuscht wurde.
Diese beiden Beispiele zeigen eine Stärke und gleichzeitig eine große Schwäche unseres Finanzsystems auf: Es ist zentralisiert. Eine Stärke deswegen, weil es immer eine zentrale Instanz gibt, die verantwortlich ist und Konflikte auflösen kann. Eine Schwäche, weil diese zentrale Instanz zum „Single Point of Failure“ wird. Zentralisierte Systeme haben immer ein Problem mit Machtmissbrauch. Es kann nicht unendlich viele Kontrolleure von Kontrolleuren geben. Und gegenseitige Kontrolle ist auch kein Allheilmittel – Korruption ist ein reales Problem in unserem System. Der Versuch, ein inhärent unsicheres System durch weitere unsicherere Mechanismen abzusichern, kann nur zum Scheitern verurteilt sein.
Und hier schlagen wir den Bogen zum eigentlichen Thema dieses Artikels: die Blockchain-Technologie. Vor allem bekannt durch die Kryptowährung Bitcoin, die seit Jahren immer wieder in den Medien auftaucht. Kryptowährungen versprechen etwas, das in unserem Finanzsystem undenkbar ist: Absolute Sicherheit ohne eine zentrale Kontrollinstanz. Direkte Geldtransfers (Transaktionen) ohne einen Mittelsmann – zum Beispiel einer Bank – vertrauen zu müssen. Doch wie funktioniert dies eigentlich genau?
Die kurze Antwort ist Kryptografie. Die gesamte Sicherheit von Kryptowährungen leitet sich direkt von akademisch nachgewiesen sicheren Kryptografie-Algorithmen ab.
Für die lange Antwort müssen wir auf einen wesentlichen Unterschied zu traditionellem Banking eingehen: Kryptowährungen sind dezentral. Das bedeutet, dass es keine zentrale Instanz gibt, die festlegt, welcher Kontostand der Richtige ist. Stattdessen besitzt jeder Teilnehmer in einem Blockchain Netzwerk immer die komplette Historie aller getätigten Transaktionen, aus der sich genau ableiten lässt, wer wieviel Guthaben zu Verfügung hat. Dies klingt erst mal chaotisch, woher soll man schließlich wissen, wer denn jetzt Recht hat?
Die Lösung liegt in der Struktur einer Blockchain. Wie der Name schon sagt, handelt es sich letztendlich nur um eine Kette aus Blöcken. Jeder Block beinhaltet dabei eine Menge von Transaktionen und zusätzlich den Hash des Vorgängerblocks. Der Hash eines Blocks hängt dabei von allen Daten eines Blocks ab, inklusive dem Vorgängerhash. Dies führt dazu, dass alle Blöcke voneinander abhängen – ändert sich der Hash eines Blocks am Anfang der Kette, hat dies Auswirkungen auf alle nachfolgenden Blöcke. Dies ist aber nicht ausreichend um Sicherheit zu gewährleisten.
Um den Grund dafür zu verstehen, ist ein grundlegendes Verständnis von Hashfunktionen notwendig: Eine Hashfunktion im weitesten Sinne ist eine Funktion die Eingaben von variabler Länge in Ausgaben fester Länge – sogenannte Hashes – überführt. Wichtig dabei ist, dass die Umkehrung dieser Funktion mathematisch nicht lösbar ist. Es ist also nicht möglich auf mathematischem Wege zu einem Hash den Wert zu finden, der diesen Hash produziert. Hashfunktionen werden daher auch Einwegfunktionen genannt – es gibt keinen Rückweg zum Ausgangspunkt außer ausprobieren.
Was bedeutet dies nun für unsere Blockchain? Zuerst erklärt dies, warum die Kette aus den Hashes der Blöcke keine Sicherheit garantiert: Das Neuberechnen von Hashes nach einer Änderung in einem Block ist trivial. Das Manipulieren von Transaktionen in einem bereits bestehenden Block wäre somit kein Problem. Es müssen lediglich alle nachfolgenden Blöcke neu berechnet werden. Hier kommt der eigentliche Clou der Blockchain Technologie ins Spiel: Konsensfindung in einem dezentralen Netzwerk. Letztendlich brauchen wir einen Weg, wie sich alle Teilnehmer im Netzwerk sicher sein können, dass die Version der Blockchain, die sie gerade erhalten haben, die Richtige ist. Der ursprüngliche und am weitesten verbreitete Konsensalgorithmus nennt sich „Proof of Work“.
Der Grundansatz ist es, das Hinzufügen von einem neuen Block rechenintensiv zu machen. Konkret bedeutet das: Ein Block ist nur gültig, wenn er zusätzlich zu den Transaktionsdaten noch einen „Proof of Work“ enthält. In der Regel ist dies ein Wert der, wenn man ihn zusammen mit den Transaktionendaten in eine Hashfunktion einsetzt, ein definiertes Ergebnis erzeugt. Da Hashfunktionen nicht umkehrbar sind, ist Ausprobieren aller möglichen Kombinationen die einzige Lösungsmöglichkeit. Umgekehrt ist das Verifizieren eines „Proof of Work“- Wertes trivial. Es muss lediglich eine Hashfunktion berechnet und das Ergebnis geprüft werden. Das Finden dieses Wertes wird öfter auch als lösen eines kryptografischen Puzzles bezeichnet – klassische Puzzles sind ebenfalls schwer zu lösen, aber leicht zu verifizieren.
Somit ergibt sich folgender Ablauf zum Hinzufügen eines neuen Blocks:
- Clients senden Transaktionen an das Netzwerk, die in die Blockchain aufgenommen werden sollen. Um sicherzustellen, dass die Anfrage auch wirklich vom angegebenen Absender stammt, muss die Transaktion mit einer kryptografischen Signatur versehen sein.
- Andere Teilnehmer versuchen das „Proof of Work“-Puzzle zu lösen, um einen neuen gültigen Block zu erzeugen.
- Der erste Teilnehmer der eine Lösung findet, schickt den neuen Block an das Netzwerk und darf sich selbst mit einer definierten Menge aus der Kryptowährung belohnen. Dies wird auch Mining genannt – es ist der einzige Weg neue Währungseinheiten zu erzeugen.
- Andere Teilnehmer prüfen den Block auf Gültigkeit und nehmen ihn dann in ihre eigene Version der Blockchain auf.
Durch dieses Verfahren ist praktisch ausgeschlossen, dass gültige Blöcke mit betrügerischen Transaktionen erzeugt werden können. Ein einzelner Betrüger kann statistisch gesehen das „Proof of Work“-Puzzle nie schneller als der Rest des Netzwerkes lösen. Zumal er zudem auch alle neuen Blöcke in seine falsche Version der Blockchain mit aufnehmen müsste. Da der „Proof of Work“ direkt von den Transaktionsdaten abhängt, müssen alle nachfolgenden Blöcke ja auf dem betrügerischen Block aufbauen, damit die Historie stimmt.
Dieses Verfahren bietet damit, was unser klassisches Finanzsystem nicht leisten kann:
Direkte Geldtransfers ohne einer dritten Partei vertrauen zu müssen – Die verwendeten Kryptographie-Algorithmen garantieren, dass Transfers nur mit dem Einverständnis des Absenders vorgenommen werden können.
Politische Unabhängigkeit – Keine Regierung kann die Währung nutzen, um eigene Interessen zu verfolgen, da es keine zentrale Kontrollinstanz gibt.
Anonymität – In einem Blockchain-Netzwerk werden die Teilnehmer nur durch öffentliche Schlüssel identifiziert, persönliche Daten sind nicht nötig.
Unumkehrbarkeit von Transaktionen – Blöcke, die bereits in die Blockchain aufgenommen wurden, sind nicht mehr änderbar. Man kann sich also immer sicher sein, dass der aktuelle Kontostand sich nicht nachträglich ändert.
Aber jedes System hat auch Nachteile. Im Falle von Bitcoin, der populärsten Kryptowährung, sind dies zum Beispiel:
Sehr großer Energiebedarf – Mining ist rechenintensiv. Der Strombedarf des gesamten Bitcoin Netzwerks liegt größenordnungsmäßig im Bereich von kleinen Industrienationen.
Skalierungsprobleme – Das Bitcoin Netzwerk kann pro Sekunde nur einen einstelligen Betrag von Transaktionen abwickeln, da nur ca. alle 10 Minuten ein neuer Block in die Blockchain aufgenommen wird. Dies ist für den Alltag nicht praktikabel. Zum Vergleich: Die üblichen Kreditkartenunternehmen können tausende von Transaktionen pro Sekunde abwickeln.
Proof of Work Algorithmus begünstigt Zentralisierung – Das Mining von Bitcoins ist für einzelne Teilnehmer schon lange nicht mehr rentabel. Dadurch haben sich mit der Zeit sogenannte Mining-Pools gebildet. Dies sind Gemeinschaften, die ihre Rechenleistung zusammenlegen und sich die Einnahmen entsprechend teilen. Dies hat solche Ausmaße angenommen, dass über die Hälfte des Netzwerks von wenigen Miningpools kontrolliert wird – dies widerspricht direkt dem Gedanken der Dezentralisierung.
Keine Hilfe bei Verlust des Geldes – Wenn man Zugang zu seinen Wallets (privaten Schlüsseln) verliert, ist das Geld weg. Ohne den passenden privaten Schlüssel zu einem öffentlichen Schlüssel lässt sich das Geld nicht verwenden. Eine Bank die dort aushelfen könnte, kann es in dem System nicht geben.
Bitcoin ist natürlich schon lange nicht mehr die einzige Kryptowährung. Es gibt mittlerweile viele andere Währungen, die vieles besser machen als Bitcoin.
Ein großer Unterschied ist der Konsensalgorithmus. Einige Kryptowährungen nutzen einen Algorithmus, der sich Proof of Stake nennt. Mit diesem Algorithmus ist kein rechenintensives Mining nötig um einen Konsens zu erreichen – dies geschieht stattdessen über ein Staking-System. Automatisch ausgewählte Validatoren geben dabei einen Teil ihres Geldes temporär ab, um im Gegenzug einen neuen Block in die Blockchain aufnehmen und sich eine Belohnung gutschreiben zu dürfen. Der Validator erhält sein Geld nur zurück, wenn dieser neue Block von den anderen Teilnehmern des Netzwerks als in Ordnung angenommen wird. Falls der Block nicht in Ordnung ist, ist das Geld verloren. Um Betrug finanziell unerschwinglich zu machen, ist die Belohnung daher immer kleiner als der Einsatz (Stake).
Die zweitgrößte Kryptowährungs-Plattform Ethereum wird zum Beispiel in naher Zukunft von „Proof of Work“ auf „Proof of Stake“ umsteigen, um ähnliche Skalierungsprobleme wie sie Bitcoin hat zu lösen.
Ein weiteres Feature, das zum Beispiel im Ethereum-Ökosystem sehr zentral ist, sind Smart Contracts und NFTs (non-fungible tokens). NFTs sind beliebige Tokens, die ähnlich wie Geld auf der Blockchain gespeichert werden und beliebige Objekte repräsentieren können. Smart Contracts sind letztendlich Programmcode, der in der Blockchain gespeichert ist und Interaktionen zwischen Teilnehmern in dem Netzwerk automatisiert. Dadurch lässt sich zum Beispiel das Kaufen oder Tauschen von NFTs implementieren – auch hier wieder ohne jemandem vertrauen zu müssen.
Die Möglichkeiten, die sich damit für Anwendungen eröffnen sind schier endlos. Von digitalen Gegenständen in Videospielen, über faire Monetarisierungs-Systeme auf kreativen Plattformen bis hin zur vollständigen Nachvollziehbarkeit von Lieferketten ist alles möglich. Und in Zukunft werden sich sicherlich noch viele andere spannende Anwendungsgebiete dieser Technologie eröffnen.
Softwareentwicklung