Blockchain

Wie funktioniert die Blockchain?

Kryptowährungen: »Wir bekommen unheimlich viel Blockchain-Bullshit angeboten«

Freier Zugang zu allen Artikeln, Videos, Audioinhalten und Podcasts

iTunes-Abo wiederherstellen

SPIEGEL+ wird über Ihren iTunes-Account abgewickelt und mit Kaufbestätigung bezahlt. 24 Stunden vor Ablauf verlängert sich das Abo automatisch um einen Monat zum Preis von zurzeit 19,99€. In den Einstellungen Ihres iTunes-Accounts können Sie das Abo jederzeit kündigen. Um SPIEGEL+ außerhalb dieser App zu nutzen, müssen Sie das Abo direkt nach dem Kauf mit einem SPIEGEL-ID-Konto verknüpfen. Mit dem Kauf akzeptieren Sie unsere Allgemeinen Geschäftsbedingungen und Datenschutzerklärung.

So funktioniert die Blockchain

Viktor Becher

Als Grundlage von Bitcoin hat die Blockchain Schlagzeilen gemacht, sie wird als technologisches Wunder gepriesen. Was verbirgt sich dahinter, wie funktioniert die Blockchain? Bitcoin-Experte Dr. Viktor Becher erklärt das Fundament der Kryptowährungen.

Vergrößern Transaktionen über die Blockchain gelten als fälschungssicher © Fotolia/Weissblick

Wie die Blockchain entstanden ist

Es ist keine Übertreibung zu sagen, dass die Blockchain zusammen mit dem Internet eine der größten Erfindungen der Menschheit darstellt. Sie löst ein fundamentales Problem: Wie können anonyme Nutzer im Internet einander Geld schicken, ohne dass beide einem zentralen Server vertrauen müssen?

Solche Server nutzen wir alle täglich. Man nennt sie Banken.

Vertrauen ist notwendig, wenn Geld auf elektronischem Wege übertragen wird. Das ist den meisten von uns nicht bewusst, weil wir uns so sehr an unser Bankensystem gewöhnt haben. Zum Beispiel vertrauen wir unserer Bank, dass sie eine eingegangene Überweisung nicht plötzlich rückgängig macht, so dass uns Geld fehlt.

Die kryptographische Community arbeitete jahrelang an Peer-to-Peer-Währungen (Peer-to-Peer = Rechner-zu-Rechner), die ähnlich wie Bittorrent ohne zentrale Server funktionieren sollten, also ohne Banken.

Das Problem war das fehlende Vertrauen unter anonymen Nutzern: Wenn die Zahlungshistorie nicht auf einem Server liegt, sondern über viele Knoten verteilt ist (als "Knoten" bezeichnet man in der Peer-to-Peer-Welt einen einzelnen Rechner), wie kann man Knoten daran hindern, eine gefälschte Zahlungshistorie in Umlauf zu bringen?

Niemand hatte eine Lösung für dieses Dilemma. Der Traum einer dezentralen, community-bestimmten Währung schien unerreichbar.

Vergrößern Bei einer normalen Währung laufen Zahlungen über einen zentralen Server (linke Seite). Bei einer Peer-to-Peer-Währung ist das nicht nötig (rechte Seite) © Wikimedia Commons

Ein mysteriöser Hacker, der sich selbst als Satoshi Nakamoto bezeichnet und dessen Identität bis heute nicht geklärt ist, löste das Problem des fehlenden Vertrauens im Jahr 2008. Er kombinierte vorhandene Technologien wie Verschlüsselung und Hashing auf neue und innovative Weise zu einem Gesamtkunstwerk: der Blockchain. Durch ihre besondere Struktur ist die Blockchain fälschungssicher, Zahlungen können nicht rückgängig gemacht werden.

Als erste Anwendung der Blockchain rief Nakamoto eine freie Peer-to-Peer-Währung ins Leben: Bitcoin. Viele weitere Anwendungen folgten, beispielsweise Ethereum, Ripple, Litecoin, Dash und Monero.

Das steckt in der Blockchain

Die Blockchain ist eine Art und Weise, Daten zu speichern. Bei Bitcoin sind das Transaktionsdaten, also Informationen über Zahlungen: Wer hat wem wann wie viel Bitcoin gezahlt usw. Daraus lässt sich der "Kontostand" eines jeden Bitcoin-Nutzers errechnen.

Ein Block enthält eine gewisse Zahl an Transaktionen, beispielsweise "A hat 0,1 Bitcoin an B gezahlt". Mit anderen Worten, mehrere Transaktionen werden zu einem Block zusammengefasst. Wenn ein Block "voll" ist, kommen die folgenden Transaktionen in den nächsten Block. Jeder Block verweist auf den vorherigen. Die Blockchain ist also eine Kette von Blöcken. Dabei spielt das Hashing eine wichtige Rolle. Ein Hash ist eine Art digitaler Fingerabdruck von Daten. Jeder Datensatz, also jede Transaktion, hat einen eigenen Fingerabdruck, der ihn von anderen Datensätzen unterscheidet.

Vergrößern Vereinfachte Darstellung der Blockchain © Wikimedia Commons

Die Transaktionen aus jedem Block werden zu einem Hash-Baum zusammengefasst. Außerdem wird jeder Block durch einen Header beschrieben. Jeder Header enthält das Hash des vorherigen Block-Headers, damit verweist er auf den entsprechenden Block. Auf diese Weise bilden die Blöcke eine Kette.

Jeder Knoten (Rechner) im Bitcoin-Netzwerk verfügt über eine Kopie der Blockchain, so dass er den "Kontostand" eines jeden Bitcoin-Nutzers sowie die gesamte Transaktionshistorie kennt. Außerdem darf jeder Knoten der Blockchain einen neuen Block hinzufügen, indem er aktuelle Transaktionen bündelt.

Doch was hindert einen Knoten daran, einen gefälschten Block oder gar eine gefälschte Blockchain in Umlauf zu bringen, mit der er sich selbst bereichert?

Hierzu hatte Satoshi Nakamoto eine einfache, aber geniale Idee: Das Hash eines jeden Block-Headers muss kleiner sein als ein bestimmter Wert. Dadurch kann ein Knoten nicht einfach das erstbeste Hash ausrechnen. Er muss mit brute force, also durch Ausprobieren, ein passendes Hash finden. Diesen Prozess nennt man Mining. Es ist so ähnlich wie Gold schürfen: Man muss schon etwas wühlen, bis man ein passendes Hash findet.

Warum die Blockchain sicher ist

Das Verfahren, dass Knoten ein Suchproblem lösen müssen, um der Blockchain einen neuen Block hinzuzufügen, bezeichnet man als Proof of Work - Arbeitsbeweis. Mit der Lösung des Suchproblems hat ein Knoten bewiesen, dass er einiges an Rechenleistung in die Suche investieren musste. Dadurch ist die Blockchain fälschungssicher . Jeder Knoten nimmt einfach an, dass die längste Blockchain im Umlauf die echte ist, alle anderen sind Fälschungen. Denn in die längste Blockchain muss logischerweise die meiste Rechenpower geflossen sein, das heißt, die meisten Knoten müssen daran mitgearbeitet haben. Diese innovative Art der Konsensfindung ist das herausragende Merkmal der Blockchain.

In der Bitcoin-Software ist der Schwierigkeitsgrad des Suchproblems so eingestellt, dass es jeweils etwa 10 Minuten dauert, bis ein neuer Block "gefunden" wird. Alle Knoten suchen fieberhaft nach einem passenden Hash für den nächsten Block. Warum? Weil derjenige Knoten, der das Suchproblem löst, eine Belohnung erhält. Diese liegt aktuell bei 12,5 Bitcoin - das sind über 10.000 Euro beim derzeitigen Wechselkurs.

Wer jetzt denkt, hier ist schnelles Geld zu holen, irrt sich. Die Rechenpower im Bitcoin-Netzwerk ist so absurd hoch, dass man eher im Lotto gewinnt als auf dem heimischen Laptop einen neuen Block zu finden. Ohne spezialisierte Hardware hat man keine Chance, im technologischen Wettrüsten der Bitcoin-Miner zu bestehen. Die Rechenleistung des Bitcoin-Netzwerks liegt bei 2,81 Trillionen Hashes pro Sekunde - Tendenz steigend .

Vergrößern Die Rechenleistung des Bitcoin-Netzwerks liegt bei 2,81 Trillionen Hashes pro Sekunde - Tendenz steigend © blockchain.info

So lange die meisten Knoten ehrlich sind, ist die Blockchain sicher. Will ein Knoten eine gefälschte Blockchain in Umlauf bringen, muss er mindestens 51 Prozent der Rechenleistung des Bitcoin-Netzwerks aufbringen. Dann kann er die anderen Knoten davon überzeugen, dass seine Fake-Blockchain die echte ist - er kann sie sozusagen überstimmen. Eine solche 51-Prozent-Attacke ist aber quasi unmöglich. Selbst wenn man die 500 stärksten Supercomputer der Welt für einen solchen Angriff rekrutieren würde, hätte man damit weniger als 0,01 Prozent der Rechenleistung des Bitcoin-Netzwerks zusammen.

Bitcoin ist erst der Anfang

Die Blockchain ist nichts anderes als eine verteilte Datenbank. In 2008 war Bitcoin die erste und einzige Anwendung dieser Technologie. Seitdem wurden viele weitere Kryptowährungen auf Grundlage von Blockchains entwickelt, beispielsweise Litecoin, Dash und Monero. Das Prinzip ist überall das gleiche: Dank einer Blockchain sind sich alle Knoten einig, wer wem wie viel Geld gezahlt hat.

Lesetipp: Bitcoin 2018 - Weltwährung mit Zukunft?

Manche Kryptowährungen bieten Funktionen, die über Bitcoin hinausgehen. So werden bei Dash und Monero Techniken eingesetzt, die es schwierig machen, Zahlungsströme zurückzuverfolgen. Damit können Nutzer ihre Privatsphäre schützen.

Blockchains können aber noch viel mehr. Ein Netzwerk namens Ethereum setzt eine Blockchain ein, welche die Ausführung von kleinen Computerprogrammen (Skripten) ermöglicht. Jeder Nutzer kann eigene Skripte in das Netzwerk laden, die auf den Knoten ausgeführt werden. Dafür zahlt der Nutzer mit der integrierten Währung Ether. So lassen sich smart contracts realisieren - intelligente Verträge. Beispielsweise kann ein Nutzer seine eigenen Aktien in den Umlauf bringen. Skripte garantieren, dass Aktienbesitzer bestimmte Rechte haben und zum Beispiel an Abstimmungen teilnehmen dürfen.

Es ist allerdings unklar, wie sicher Ethereum ist. Aufgrund der hohen Komplexität der Software ist Vorsicht geboten, es gab bereits Zwischenfälle. Gleichwohl sind manche Experten davon überzeugt, dass "intelligente" Blockchains wie die von Ethereum das Finanzsystem nachhaltig verändern werden.

Wie funktioniert die Blockchain?

Die Blockchain – ein Begriff, der schon seit einigen Jahren umhergeistert. Dinge wie Kryptowährungen aber auch NFTs und andere Innovationen basieren auf der Idee der Blockchain. Entstanden ist das Konzept gemeinsam mit dem Bitcoin – einer digitalen Kryptowährung, die ohne die Kontrolle durch Institutionen auskommt. Und obwohl die „Blockchain“ aus unserer Tech-Welt mittlerweile gar nicht mehr wegzudenken ist, wissen viele immer noch nicht, was sie sich darunter vorstellen sollen. Das ist auch nicht verwunderlich. So ganz einfach ist die Frage, wie die Blockchain eigentlich funktioniert und was genau das eigentlich ist, auch nicht beantwortet. Damit ihr aber in Zukunft wisst, wovon ihr sprecht, erklären wir euch in diesem Artikel nun ein für alle Mal, wie die Blockchain funktioniert.

Was ist die Blockchain? – Short and Simple

Zu der Frage „Was ist die Blockchain?“ haben wir bereits einen Artikel veröffentlicht. Dort geht es etwas abstrakter um die Idee der Blockchain und weniger um ihre konkrete Funktionsweise. Nichtsdestotrotz werdet ihr zwischen dem Artikel und diesem hier einige Überschneidungen finden. Die Blockchain ist eine dezentrale Datenbank mit einem ganz speziellen Mechanismus, der es möglich macht, Eigentum eindeutig zuzuweisen und Teilnehmern zuzuordnen. Dabei sind alle Teilnehmer miteinander vernetzt. Durch die Dezentralität der Blockchain wird diese Datenbank mit den Informationen über Eigentümer nicht an einem Standort gespeichert, sondern bei jedem Teilnehmer des Netzwerkes.

Die „Eigentümer“ sind letztlich Transaktionen, die zwischen Netzwerkteilnehmern hin- und hergehen und können einen unterschiedlichen Wert haben. Ein populäres Beispiel für solche Eigentümer sind Kryptowährungen aber auch Verträge zwischen Teilnehmern oder sogenannte NFTs.

Entworfen wurde das Konzept der Blockchain im Zusammenhang mit der digitalen Kryptowährung „Bitcoin“. Hier könnt ihr das ursprüngliche Paper dazu lesen.

Wie funktioniert die Blockchain?

Ziel dieses Artikels ist es, dass ihr die Blockchain wirklich versteht. Die obige Definition mag dabei sicherlich helfen, aber um sie wirklich zu verstehen, ist es am einfachsten, wenn wir uns die Blockchain „herleiten“. Diesen Ansatz habe ich mir nicht selbst ausgedacht sondern in diesem Video des YouTube-Kanals 3Blue1Brown gesehen.

But how does bitcoin actually work?

Dieses Video auf YouTube ansehen

Die wesentlichen Aspekte der Blockchain

Wenn wir uns die Blockchain und ihre Funktion detaillierter angucken, müssen wir vier wesentliche Aspekte verstehen. Zum einen werden wir in diesem Artikel ein Verständnis für das Speichern von Transaktionen entwickeln und uns anschauen, wie wir diesen Transaktionen einen Wert zuschreiben können. In diesem Atemzug werden wir auch über digitale Signaturen sprechen, mit deren Hilfe wir Transaktionen validieren können. Außerdem werden wir uns mit dem Aspekt der dezentralen Speicherung und dem Proof-of-Work-Konzept beschäftigen. Hierbei schauen wir uns auch an, warum die Idee der Blockchain in der Realität funktioniert und wie sie aus sich selbst heraus vor Fehlern oder Manipulationen geschützt sind.

Die Verwaltung von Transaktionen

Stellt euch vor, ihr und eure Freund*innen gebt euch immer wieder regelmäßig gegenseitig Geld. Um Beispielsweise euren Anteil an einer gemeinsamen Aktivität zu bezahlen. Also Freund*in A gibt Freund*in B Geld und Freund*in B wiederum gibt Freund*in C Geld und so weiter. Jeder, der schonmal mit einer Gruppe von Leuten in den Urlaub gefahren ist, weiß dass man hierbei schnell den Überblick verliert und das Bargeld hier nicht immer die beste Wahl ist. Um das Ganze zu vereinfachen, beginnt ihr also jedes Mal, wenn jemand Geld hin- und herschiebt, einen Eintrag in eine Art Logbuch zu schreiben, anstatt das Geld wirklich zu bezahlen. Dieses Logbuch wertet ihr dann nach dem gemeinsamen Urlaub aus und jeder zahlt dann das Geld, dass er gemäß den Einträgen im Logbuch schon gezahlt hat. So müsst ihr nur einmal am Ende der Zeit Geld hin- und herschieben.

So ein Logbuch könnte Ende des Urlaubs also beispielsweise so aussehen:

Freund*in A gibt Freund*in B 10 Euro

Freund*in C gibt Freund*in A 30 Euro

Schön und gut, aber dieses Logbuch hat einen Schwachpunkt: So könntet ihr euch einfach in der Nacht heimlich aus dem Bett stehlen und eine Zeile in das Logbuch eintragen, in der ihr euch von jemand anderem Geld überweisen lasst. Dort könnte also stehen

Freund*in B gibt euch 20 Euro

Am Ende des Urlaubs würde euch dann Freund*in B die 20 Euro geben. Ihr würdet ihn/sie also gepflegt übers Ohr hauen.

Transaktionen signieren

Die Frage danach, wie wir solche Transaktionen vor Manipulationen schützen, ist ein wesentlicher Bestandteil der Frage „Wie funktioniert die Blockchain?“. Um sich vor Manipulationen zu schützen, gibt es nämlich die Möglichkeit, Transaktionen in so einem Logbuch mit eindeutigen Signaturen zu versehen. Das passiert auch in der Blockchain – aber dazu später mehr.

Stellt euch also vor, dass eine Transaktion in eurem gemeinsamen Logbuch nur dann als „gültig“ erachtet wird, wenn die Person, die euch Geld gibt mit einer Unterschrift bestätigt, dass diese Transaktion auch wirklich stattgefunden hat. In dem oben genannten Fall müsste also Person B seine Unterschrift neben euren Eintrag setzen, damit ihr am Ende des Urlaubs euer Geld bekommt. Sollte Freund*in B euch aber nie Geld gegeben haben oder das gar nicht wollen, wäre er/sie ziemlich doof das zu tun.

Diese Signaturen sind zum einen nicht sonderlich fälschungssicher – immerhin könntet ihr die Unterschrift von Freund*in B ja kopieren – und besonders dann, wenn wir über ein digitales Logbuch sprechen, geht die Eindeutigkeit schnell verloren. Es muss also eine eindeutige Digitale Signatur her. Und hier kommen wir zu dem „Krypto“ im Wort „Kryptowährung“.

Digitale Signaturen

Auf der Blockchain werden also digitale Signaturen verwendet, um die „Echtheit“ von Transaktionen zu bestätigen. Du und deine Freund*innen wollen das jetzt genauso machen. Nehmen wir an, eine*r von euch war vor dem Urlaub ehrgeizig und hat eine kleine Website programmiert, auf der ihr eure Transaktionen eintragen und speichern könnt. Hier habt ihr auch die Möglichkeit, eure Transaktionen zu signieren. Alles was wir dafür brauchen sind ein geheimer und ein öffentlicher Schlüssel (secret key und public key genannt). Mithilfe einer kryptografischen Funktion, die wir hier gar nicht näher beleuchten müssen, wird eine Transaktion, die ihr vollzieht, nun signiert. Das geschieht folgendermaßen.

Die Funktion nimmt sich euren geheimen Schlüssel, den wirklich nur ihr kennt, sowie die eigentliche Nachricht „Ihr gebt Freund*in A 10 Euro“ sowie eine eindeutige ID, die dieser Transaktion zugewiesen ist. Das kann beispielsweise die Nummer der Transaktion im Logbuch sein. Ist es also die zehnte Transaktion, dann ist die ID = 10. Mithilfe des geheimen Schlüssels und der Nachricht wird nun eine Signatur erstellt. Diese Signatur ist für jede Nachricht leicht unterschiedlich und kann somit nicht einfach kopiert werden, um eine Transaktion zu fälschen. Wir erinnern uns, das war bei einer handschriftlichen Unterschrift durchaus möglich.

Euer öffentlicher Schlüssel allerdings ist jedem eurer Freunde bekannt. Mit diesem können sie die Verschlüsselung, die eure Signatur erstellt hat, umkehren und so deren Echtheit überprüfen. Dafür geben sie in die entsprechende mathematische Funktion lediglich die Nachricht, die von euch erstellte Signatur und euren öffentlichen Schlüssel ein. So können sie prüfen, ob die Transaktion auch wirklich von euch signiert wurde.

Die Zuschreibung von Werten

Ihr habt von der Blockchain mit Sicherheit im Zusammenhang von Kryptowährungen wie Bitcoin, Ethereum oder Dogecoin gehört. Das sind Währungen, die nicht physisch vorhanden sind, sondern nur auf der Blockchain existieren. Wie man so eine Kryptowährung bildet, lässt sich auch wieder mit dem Beispiel einer Freundesgruppe im Urlaub erklären. Stellt euch folgendes vor:

Ihr fahrt mit derselben Gruppe jedes Jahr in den Urlaub. Und nun kommt ihr auf eine Idee. Ihr wisst dank des eben entwickelten Systems, genau, wer wem wieviel Geld gegeben hat. Somit hat jeder in seinem digitalen Portemonnaie eine bestimmte Menge Geld. Anstatt dieses Geld nun auszuzählen und jedem mit Bargeld sein entsprechendes Geld zu geben, könntet ihr das digitale Geld ja auch einfach bis nächstes Jahr in den digitalen Brieftasche eurer Freund*innen lassen.

So könnt ihr die Schulden untereinander mit neuen Transaktionen wieder ausgleichen. Man könnte also sagen, das digitale Geld – nennen wir es statt Euro mal den V-Coin (V soll für Vacation stehen) – ist selbst zu einer Währung geworden.

Die Verknüpfung zu anderen Währungen

Jetzt bleibt nur noch ein Problem. Wenn wir also statt mit echtem Geld, mit dem V-Coin zahlen, könnten wir ja Geld aus der Luft zaubern. Auf einmal könnte Freundin*B ja sagen „Ich zahle dir 1 Mio V-Coin“ und euer Portmonee ist das vollste. Bei Kryptowährungen nennt man dieses Portmonee übrigens „Wallet“. Da ihr aber in eurem Urlaub ja aber mit zum Beispiel Euros bezahlen müsstet, muss der V-Coin irgendwie einen Gegenwert haben. Eine Möglichkeit besteht darin, sich mit den Euros in eurem echten Portmonee V-Coins zu kaufen und diese dann in euer Wallet zu legen. Jeder von euch könnte sich also zu Beginn mit 100 Euro 100 V-Coins kaufen und die könntet ihr dann untereinander nutzen, um euch gegenseitig für Dinge zu bezahlen oder Schulden auszugleichen. Am Ende könntet ihr eure V-Coins dann mit dem Geld im Topf wieder auszahlen. Falls ihr beispielsweise nächstes Jahr nicht mehr mit in den Urlaub fahren wollt.

Wie funktioniert die Blockchain denn nun?

Nun solltet ihr hoffentlich ein Verständnis für solche Transaktionen haben und auch dafür, wie wir diesen Transaktionen Wert zuschreiben, indem wir zum Beispiel eine Währung daraus machen.

Ein Problem mit einem System, wie wir es eben beschrieben haben ist aber zum Beispiel ein Vertrauensproblem. Denn eure Transaktionsdaten sind hier zentral gespeichert. Sei es nun in einem analogen Logbuch oder einer Website, die einer aus der Gruppe betreut. Die Daten sind also zentral gespeichert und damit müsst ihr wohl oder übel der Person oder Institution vertrauen, die dieses Logbuch führt. Nichts anderes tun letztlich auch Banken, wenn wir Online-Überweisungen tätigen. Die Blockchain allerdings setzt auf ein dezentrales System. Konkret bedeutet das, dass dieses Logbuch, das auch Ledger genannt wird, bei jedem der Teilnehmer gespeichert wird. Es gibt also nicht einen zentralen Ort, sondern ganz viele Orte, an denen die Transaktionen gespeichert werden. Wir von einem der Teilnehmer eine Transaktion durchgeführt, sendet er diese an alle anderen Teilnehmer, die sie dann ebenfalls in ihr Ledger eintragen.

Das allerdings bringt natürlich ein paar Probleme mit sich, die es zu lösen gilt. Wie können beispielsweise alle Teilnehmer sicher sein, dass ihr Logbuch dieselben Transaktionen enthalten, wie alle anderen? Was passiert, wenn einer der Teilnehmer eine Transaktion nicht erhält. Dann ist sein Logbuch auf einmal anders, als das der anderen Teilnehmer. Aber welches ist dann das richtige? Die Blockchain-Lösung hat für derartige Probleme eine Lösung. Und zwar basiert alles auf der Idee des Proof-of-Work.

Was ist Proof-of-work?

In der Blockchain wird prinzipiell immer dem Logbuch vertraut, in das die meiste „Arbeit“ geflossen ist. Arbeit meint in diesem Kontext „Rechenpower“. In der Blockchain speichert jeder die Transaktionen bei sich lokal. Allerdings nicht bloß als Eintrag in einem Logbuch, sondern in Blöcken. Diese Blöcke allerdings werden vorher validiert. Veranschaulichen wir das einmal und übertragen es auf unser Beispiel mit den Freund*innen im Urlaub. Angenommen Freund*in A sendet Freundin*B 10 Euro. Dann sendet sie diese Transaktion an alle Teilnehmer des Netzwerks. Jeder Teilnehmer der Blockchain hat nun die Möglichkeit zu einem sogenannten Block-Ersteller zu werden. Diese Block-Ersteller sammeln jetzt die Transaktionen und fassen sie zu einem Block aus mehreren einzelnen Transaktionen zusammen. Anschließend wird dieser Block jetzt mit ordentlich Rechenpower versehen. Dafür müssen die Block-Ersteller eine sehr rechenintensive Aufgabe lösen. Erst wenn das geschehen ist, ist ein Block valide und darf in die Blockchain integriert werden.

Das validieren von Blöcken mit einer Hash-Funktion

Es tut mir leid, aber ein ganz wenig Mathematik wird hier leider doch fällig. Aber eigentlich ist diese Rechenaufgabe, die Block-Ersteller lösen müssen, um einen Block zu validieren, gar nicht so schwer. Es gibt in der Kryptografie (auch hier wird wieder klar, warum Kryptowährungen so heißen wie sie heißen) sogenannte Hash-Funktionen. Diese sind in ihrer Funktion recht simpel. Man gibt ihnen irgendeine Botschaft – zum Beispiel die Zahl „1294027493023723“ und dann erstellen sie dafür nach bestimmten Regeln eine Ausgabe. Wichtig dabei ist, sich zu merken, dass die Hash-Funktion für jede Botschaft – also für jeden Input – immer exakt denselben Output ausgibt.

In der Blockchain wird nun die eine ganz bestimmte Hash-Funktion verwendet, nämlich die Funktion “SHA256”. Diese bekommt eine Eingabe und liefert für diese Eingabe eine ganz bestimmte Ausgabe in einer ganz bestimmten Form. Nämlich in Binärcode – also in Form von 0en und 1en (siehe Grafik). (Wieso genau hier Binärcode verwendet wird, ist für uns gar nicht so wichtig. Letztlich handelt es sich dabei einfach um eine andere Schreibweise für die dezimalen Zahlen, wie wir sie kennen.)

Die Funktion SHA256 liefert also eine Binärzahl bestehend aus Einsen und Nullen mit 256 stellen. Die Matheaufgabe, die ein Block-Ersteller lösen muss, um einen Block mit „Arbeit“ zu validieren besteht nun darin, einen Eingabewert für die Hash-Funktion zu finden, der eine bestimmte Bedingung erfüllt. Beispielsweise die Bedingung, dass der Output mit 70 Nullen starten soll. Die entstehende Binärzahl soll also erst 70-mal die 0 enthalten, bevor sie mit 1en und 0en fortgeführt wird. Das zu erreichen, funktioniert nur, indem der Block-Ersteller verschiedene Eingaben durchprobiert. Es gibt keine Möglichkeit, den nötigen Eingabewert irgendwie geschickt zu berechnen. Stattdessen muss der Block-Ersteller sehr viele verschiedenen Ziffern-Kombinationen in die Funktion eingeben, den Ausgabewert berechnen und prüfen, ob die Bedingung erfüllt wurde. Und zwar so lange, bis er einen Eingabewert gefunden hat, für den die hash-Funktion eine Ausgabe beginnend mit 70 Nullen liefert. Das kostet sehr viel Rechenleistung. Schafft es einer der Block-Ersteller, die entsprechende Zahl zu finden, validiert er den Block und sendet ihn an alle Teilnehmer.

Die Miner

Ihr habt vielleicht schon mal von sogenannten Bitcoin-Minern gehört. Das sind die eben beschriebenen Block-Ersteller. Also die Teilnehmer im Netzwerk, die fortwährend Blöcke validieren und dafür ihre Rechenleistung zur Verfügung stellen. Die allerdings brauchen einen gewissen Anreiz, um die Blöcke mit einem Proof-of-Work zu versehen. Wieso sollten sie sonst die Rechenleistung ihrer Computer zur Verfügung stellen und dafür noch die Stromkosten tragen? Dieser Anreiz besteht meistens in einem kleinen Anteil der jeweiligen Kryptowährung. So können sie also die jeweilige Währung wie Bitcoin oder Ethereum schürfen. Daher auch der Name „Miner“.

Der Aufbau der Blöcke in der Blockchain und ihre Verkettung

Die Blockchain bekommt ihren Namen durch die Verkettung dieser eben beschriebenen Blöcke. Denn diese bestehen nicht nur aus den gebündelten Transaktionen und dem „Proof of Work“-Hash, also der Nummer, für die die SHA256-Funktion eine bestimmte Bedingung erfüllt, sondern auch aus dem entsprechenden Hash-Wert des vorangegangenen Blocks. Es wird also für jeden Block ein Hash erstellt. Dieser ist in dem Block selbst enthalten. Zusätzlich enthält der Block aber auch den Hash des Vorangegangenen Blocks. So können die Blocks in eine eindeutige Reihenfolge gebracht und somit verkettet werden (siehe Grafik).

Durch diese festgelegte Aneinanderreihung entsteht eine Kette aus Blöcken oder eben eine Blockchain.

Und wie funktioniert die Blockchain jetzt?

Jetzt kennen wir also Funktionsweise und Aufbau der Blockchain. Noch einmal zusammengefasst:

Jeder Teilnehmer kann eine Transaktion vornehmen, diese signieren und sendet sie anschließend an alle anderen Teilnehmer im Netzwerk. In diesem Netzwerk kann nun jeder andere Teilnehmer zum „Miner“ werden. Miner fassen eine feste Anzahl aufeinanderfolgender Transaktionen zu einem Block zusammen. Diesen Block validieren sie, indem sie eine rechenaufwendige Aufgabe lösen. Gelingt ihnen das, senden sie den Block an alle Teilnehmer im Netzwerk, die ihn dann ihrer Blockchain hinzufügen. So weit, so gut.

Was passiert aber, wenn jetzt aber zwei unterschiedliche Versionen der Blockchain bei unterschiedlichen Teilnehmern existieren? Wie wird entschieden, welche die „richtige“ ist. Hier gehen wir nach dem Proof-of-Work-Prinzip immer von der aus, in die die meiste Arbeit (=Rechenleistung) geflossen ist. Das heißt konkret, wir entscheiden uns für die längere Kette.

Und ist das auch sicher? Was passiert bei falschen oder manipulierten Blöcken?

Tatsächlich ist dieses Prinzip sehr sicher. Es lässt sich eigentlich nicht manipulieren. Stellen wir uns mal vor, ein Teilnehmer versucht einen falschen Block einzuschleusen. Er erstellt also einen Block mit einer gefälschten Transaktion und schafft es sogar, die Signatur zu fälschen. Dann löst er wieder die Matheaufgabe, die den Block validiert und schickt diesen an alle anderen Teilnehmer. Die hängen ihn in ihre lokale Kopie der Blockchain und denken sich nichts dabei.

Dann allerdings kommt der nächste valide Block. Und der nächste und der nächste. Diese können aber ja nicht an den manipulierten Block gehängt werden. Wie wir weiter oben ja geklärt haben sind die Blöcke immer miteinander verknüpft. Ein Block enthält seinen eigenen Hash-Wert sowie den des vorherigen Blocks. Ist dieser aber manipuliert, kommt es zu einem Konflikt in der Verkettung. Schließlich ist der Block ja gefaked. Konkret heißt das: Der Hash-Wert des gefakten Blocks wird sich in keinem der folgenden Blöcke wiederfinden. Somit lassen sich die folgenden “korrekten” Blöcke nicht mit dem gefälschten Verketten.

Passiert das, Speichern die Teilnehmer in der Regel erstmal zwei alternative Versionen der Blockchain bei sich. Eine, die den falschen Block enthält und eine „richtige“, an die die weiteren korrekten Blöcke angehängt werden. Die wird natürlich mit der Zeit immer länger. Da die Blockchain nach dem Proof-of-Work-Prinzip funktioniert, wird sich schließlich automatisch für die längere der beiden Ketten entschieden. Immerhin ist in diese insgesamt mehr Rechenleistung geflossen.

So viel Rechenleistung hat doch niemand!

Ein Angreifer müsste jetzt, um seinen falschen Block weiter in Umlauf zu halten, fortwährend die folgenden Blöcke, deren Hashes auf dem falschen, vorherigen basieren, produzieren. Er müsste also Blöcke produzieren, die sich mit dem Hash seines gefälschten Blocks verketten lassen. Das hieße, er müsste eine alternative und falsche Blockchain aufrechterhalten. Das ist praktisch unmöglich!

Dafür müsste er ja schneller als alle anderen Miner im Netzwerk Blöcke erzeugen, um zu verhindern, dass es zu den oben beschriebenen Konflikten kommt. Rein rechnerisch bräuchte er dafür mindestens 50 Prozent der Gesamtrechenleistung des Netzwerks. Und selbst dann ist nicht gesagt, dass der Zufall auf der Seite des Angreifers steht. So viel Rechenleistung auf einmal zu besitzen, gestaltet sich äußerst schwierig und wird verdammt teuer.

Außerdem würde eine solche Manipulation dann auch die gesamte Kryptowährung gefährden. Denn in so einem Fall funktioniert ja das gesamte System nicht mehr. Wenn das allerdings der Fall ist, ist ja automatisch auch die Währung nichts mehr Wert, wodurch die Manipulation keinen Sinn mehr ergibt.

Damit hoffen wir, dass ihr nun verstanden habt, wie die Blockchain funktioniert!

Bilder erstellt von Moritz Stoll

Schlagwörter: bitcoin