Was zur Hölle ist eine Blockchain?

1*AYDW0-nrFLlgRXQqvw5C-A

Solange du nicht unter einem Stein, hinter dem Mond oder in einer sozialistischen Diktatur lebst, hast du mit Sicherheit schon einmal von Bitcoin und der Blockchain gehört. Seit Dezember 2017 ist das Thema sogar unseren Medien bekannt und zu einem erstzunehmenden Anwärter für den Titel “Buzzword des Jahres” geworden. Sogar die Menschen, die nie eine Kryptowährung besessen haben, geschweige denn wissen, wie eine Blockchain funktioniert, sprechen über Bitcoin und das was da gerade passiert. Was fehlt, ist oft ein wirkliches Verständnis dafür, wie diese Technologie eigentlich funktioniert.

Ich werde häufig gefragt, ob ich das Thema nicht einmal ausführlich und vor allem so einfach wie möglich erklären kann. Ich bin mir sicher, es gibt tausende Menschen da draußen, denen es ähnlich geht wie meinen Freunden und Bekannten, sie wollen verstehen, wie eine Blockchain funktioniert. Ich finde, es ist an der Zeit, etwas zu schreiben, was diesen verlorenen Seelen hilft, Kryptowährungen und die Blockchain zu verstehen, in einfachem Deutsch und so verständlich wie möglich, damit jeder durchschnittliche Internetnutzer verstehen kann, worum es geht — das ist der Grund für diesen Blog.

Blockchain: Brauchen wir wirklich etwas so Kompliziertes?

“Simple things should be simple, complex things should be possible.”
– Alan Kay

Anders als die meisten anderen Artikel, die du im Internet findest, möchte ich hier nicht damit beginnen, die Blockchain zu definieren. Zunächst sollten wir verstehen, welches Problem sie eigentlich löst.

Stelle dir vor, dein bester Freund Klaus macht Urlaub in Amerika. Am 4. Tag seiner Reise ruft er dich panisch an und erklärt dir, dass er Geld braucht, er hat seins schon ausgegeben — Vegas!..
Du antwortest: “Kein Problem, ich sende dir sofort mehr” und legst auf.

Du rufst bei deiner Bank an (kein Online Banking, um die Erklärung einfach zu halten) und erklärst: “Bitte überweisen Sie 1000€ von meinem Konto auf das meines Freundes Klaus”. Die Antwort des Bankangestellten: “Machen wir, vielen Dank für Ihren Anruf”. Er öffnet dein Konto, überprüft deinen Kontostand und sieht, dass du über genug Geld verfügst, um Klaus 1000€ zu überweisen. Da du immer fleißig warst und nun ein reicher Mann bist, hast du genug. Der Bankangestellte nimmt also eine Buchung vor, die wie folgt aussieht:

Nun rufst du wieder bei Klaus in Amerika an und erzählst ihm: “Ich habe dir das Geld überwiesen, das nächste Mal wenn du zur Bank gehst, kannst du es abheben”

So weit so gut, aber was genau ist da gerade passiert? Ihr habt die Verantwortung und somit auch die Kontrolle über diese Transaktion und euer Geld im allgemeinen an die Bank abgegeben. Es hat kein wirklicher Austausch von physischen Banknoten zwischen dir und Klaus stattgefunden, alles was passiert ist, war der Eintrag in ein Register. Ein Register, dass keinem von euch beiden gehört.

Und das ist das Problem mit unserem heutigen Bankensystem.

Um Vertrauen zwischen uns Menschen zu schaffen, verlassen wir uns auf Dritte.

Seit Jahrzehnten sind wir von diesen Mittelsmännern abhängig, wenn es darum geht, uns gegenseitig zu vertrauen. Jetzt fragst du dich vielleicht: “Wo liegt überhaupt das Problem bei dieser Abhängigkeit?”

Das Problem ist, dass diese Mittelsmänner mehr oder weniger alleine sind. Jeder Mensch hat 1, 2 vielleicht 3 Banken, mit denen er interagiert und in ganz Deutschland gibt es eine Handvoll Großbanken. Will man Chaos in dieser Gesellschaft auslösen, muss nur eine dieser Banken korrupt werden, einen großen Fehler begehen oder anderweitig böswillig handeln.

  1. Was passiert, wenn das Register mit deiner Überweisung an Klaus einem Feuer zum Opfer fällt?
  2. Was, wenn der Bankangestellte 100 statt 1000€ aufgeschrieben hätte?
  3. Was, wenn er das mit Absicht getan hat?

Wir legen alle unsere Eier in einen Korb und dieser Korb gehört auch noch jemand anderem, das ist unser derzeitiges Bankensystem

Gibt es ein System, das es uns erlaubt, Geld zu überweisen, ohne dass wir dafür eine Bank brauchen? Um diese Frage zu beantworten, sollten wir vielleicht etwas tiefer graben und eine bessere Frage stellen. Denke jetzt mal kurz darüber nach, was das Überweisen von Geld überhaupt bedeutet, was dieser Prozess eigentlich ist? Wie wir gerade bereits festgestellt haben, eigentlich nur ein Eintrag in ein Register. Die bessere Frage also wäre:
Gibt es eine Möglichkeit, dieses Register (Hauptbuch) für uns selbst zu verwalten, anstatt durch einen Mittelsmann oder eine Bank?

Dieser Frage lohnt es sich nachzugehen, aber ich bin mir sicher, du hast die Antwort schon erraten. Die Blockchain ist die Antwort auf diese Frage. Sie stellt eine Möglichkeit dar, das Hauptbuch selbst zu pflegen und zu kontrollieren, anstatt diese Verantwortung und Macht an Andere abzugeben.

Ich hoffe du hast noch nicht abgeschaltet und in deinem Kopf sind schon einige Fragen aufgetaucht, denn im nächsten Schritt werden wir uns anschauen, wie dieses dezentrale (nicht von einer zentralen Einheit kontrollierte) Hauptbuch funktioniert.

Erzähl mir wie das funktioniert!

Eine Grundvoraussetzung ist, dass es genügend Menschen geben muss, die sich nicht mehr auf das Wohlwollen und korrekte Handeln Dritter verlassen wollen. Nur dann schafft es diese Gruppe, das Hauptbuch aufrecht zu erhalten.

“It might make sense just to get some Bitcoin in case it catches on. If enough people think the same way, that becomes a self-fulfilling prophecy.”

– Satoshi Nakamoto in 2009

Aber wieviele sind “genügend”? Mindestens Drei müssen es schon sein. Für unser Beispiel stellen wir uns mal vor, 10 Menschen wollen Banken und Mittelsmännern den Rücken kehren. Sie stimmen zu, dass jeder den Kontostand des anderen zu jederzeit kennt, ohne seine/ihre Identität zu kennen.

Ein leerer Ordner

Jeder der 10 Teilnehmer hat einen leeren Ordner und ein leeres Blatt Papier vor sich. Wenn wir weiter voranschreiten, wird jeder der 10 Netzwerkteilnehmer neue Transaktionen zu seinem Papier und später zum Ordner hinzufügen. Und diese Aufzeichnungen bilden schlussendlich das Register, welches alle Transaktionen der Gruppe abbildet.

Die erste Transaktion

Alle 10 Mitglieder des Netzwerks sitzen nun da, einen Stift in der Hand und ein leeres Blatt Papier vor sich, bereit, jede Transaktion, die innerhalb des Netzwerks stattfindet aufzuschreiben.
#4 möchte nun 10€ an #8 schicken. Damit das passieren kann, teilt sie allen anderen rufend mit: “Ich möchte 10€ an #8 überweisen, also macht euch alle bitte eine Notiz von dieser Transaktion”.

Nun schaut jeder nach, ob #4 genug Geld auf ihrem Konto hat, um 10€ an #8 zu verschicken. Ist dies der Fall, macht sich jeder eine Notiz auf das leere Blatt Papier und die Transaktion wird als “ausgeführt” angesehen.

Weitere Transaktionen

Mit der Zeit wollen auch die Anderen im Netzwerk untereinander Geld verschicken. Wann immer sie eine Transaktion durchführen wollen, kündigen sie diese so an, dass alle Anderen es mitbekommen. Sobald eine Person von der Transaktion hört, notiert sie sich diese auf ihrem/seinem Blatt Papier. Dieses Vorgehen setzt sich so lange fort, bis keiner mehr Platz auf seinem Papier hat. Nehmen wir einmal an, eine Seite Papier hat Platz für die Erfassung von 10 Transaktionen, sind diese 10 Transaktionen abgewickelt, ist das Blatt voll.

Jetzt kommt der leere Ordner ins Spiel, denn das erste vollgeschrieben Blatt wird nun dort abgeheftet und der Prozess von Schritt 2 abwärts, wiederholt sich mit jeder weiteren Transaktion.

Das Wegheften der Seite

Bevor wir das Papier in unsere Ordner legen können, müssen wir es versiegeln, mit einem Schlüssel, dem jeder der Gruppe zustimmt. Durch diese Versiegelung gehen wir sicher, dass niemand diese Aufzeichnungen verändern oder manipulieren kann, nicht heute, nicht morgen, noch nicht einmal nach einem Jahr ist das möglich.

Einmal im Ordner, wird das Blatt Papier immer dort bleiben, versiegelt. Der Clou an der Sache ist: Wenn jeder dem Siegel vertraut, vertraut auch jeder dem Inhalt des Papiers, das er schützt. Dieses Versiegeln ist der Kernpunkt der gesamten Methode.

Anmerkung: Dieses Versiegeln wird als Mining bezeichnet, der Einfachheit halber bleiben wir aber vorerst bei dem Begriff.

Der Mittelsmann war immer derjenige, der uns die Sicherheit gegeben hat, dass das, was dort im Register steht, niemals verändert werden kann. In einem dezentralen System wie dem unseren, übernimmt diese Aufgabe das Siegel.

Spannend! Aber wie wird die Seite denn überhaupt versiegelt?

Bevor wir lernen, wie wir die Seite versiegeln, müssen wir uns erstmal anschauen, wie dieses Siegel im allgemeinen funktioniert. Voraussetzung dafür ist, dass du Bescheid weißt, über etwas, dass ich hier die Zauber Maschine nenne.

Zauber Maschine

Stelle dir eine Maschine vor, in die du auf der einen Seite eine Box hineingibst und die Maschine dann auf der anderen Seite eine Box mit verändertem Inhalt ausspuckt.

Anmerkung: Diese Maschine wird als Hash Function bezeichnet, aber wir wollten ja nicht zu technisch werden, deshalb bleiben wir mal bei “Zauber Maschine”

Stellen wir uns mal vor, du gibst auf der einen Seite die Zahl 5 hinein, die Maschine spuckt auf der anderen Seite das Wort: “ducbao”aus. Wie hat sie das gemacht? Keiner weiß es. Viel wichtiger ist es zu wissen, dass dieser Prozess unwiderruflich ist.

Alles was wir haben ist das Wort “ducbao”. Es ist unmöglich herauszufinden, mit was die Maschine gefüttert wurde, um dieses Wort zu produzieren (für einen Außenstehenden), aber jedes Mal wenn wir eine 5 hineingeben, gibt sie uns den gleichen Output: “ducbao”

Geben wir nun mal eine andere Zahl in die Maschine, wir nehmen die 32.
Wir bekommen “12d66f” auf der anderen Seite heraus. Also können diese Wörter auch Zahlen enthalten.

Kannst du mir nun sagen, was ich in die linke Seite der Maschine hineingeben muss, damit ich rechts ein Wort herausbekomme, das mit drei Nullen beginnt? (z.B. 000jf, 00077, 0006u)

Denke mal einen Moment über die Frage nach.

Ich habe dir erzählt, dass wir auf Basis dessen, was auf der rechten Seite aus der Maschine heraus kommt, nicht ermitteln können, was auf der linken Seite eingegeben wurde. Wie sollen wir also die Frage beantworten können?

Ganz einfach: Warum probieren wir nicht jede uns bekannte Zahl aus, eine nach der anderen, bis wir ein Wort finden, welches mit mit 3 Nullen beginnt.

Gehen wir optimistisch an die Sache heran, haben wir nach ein paar tausend Versuchen bestimmt eine Zahl gefunden, die unseren Ansprüchen entspricht.

Es war extrem schwierig den Input basierend auf dem Output zu berechnen. Auf der anderen Seite ist es sehr leicht, zu verifizieren, ob der Input, den benötigten Output widerspiegelt.
Erinnere dich: Die Maschine spuckt jedes mal den selben Output aus, wenn der Input der gleiche ist.

Was meinst du, wie schwierig ist die Antwort auf meine Frage: “Kannst du mir sagen, was ich in die linke Seite der Maschine hineingeben muss, damit ich rechts ein Wort herausbekomme, das mit drei Nullen beginnt?” Wenn ich dir eine Zahl vorgebe, sagen wir mal die 69523. Alles was du jetzt noch tun musst, ist die Zahl in die Maschine einzugeben. Das ist alles.

Merke dir diese Tatsache bis zum Ende des Artikels:

Wenn du nur den Output kennst, ist es extrem schwierig, den Input zu berechnen, kennst du hingegen Input und Output, ist es sehr einfach zu verifizieren, ob dieser Input zum letztendlichen Output führt.

Wie kann diese Maschine nun unser Blatt Papier versiegeln?

Wie immer beginnen wir mit einer erfundenen Situation. Stelle dir vor, ich gebe dir zwei Boxen. Die erste Box enthält die Zahl 30749. Dann frage ich dich, ob du mir eine Zahl nennen kannst, die, wenn sie wir sie zu der ersten Zahl (30749) addieren und in die Maschine hineingeben, ein Wort ergibt, das mit 3 Nullen beginnt?

Dies ist eine Situation, sehr ähnlich zu unserem ersten Beispiel, in dem wir gelernt haben, dass der einzige Weg um eine solche Zahl herauszufinden, das Probieren aller uns bekannter Zahlen ist.

Nach ein paar tausend Versuchen stoßen wir auf eine passende Zahl, sagen wir mal 18892, welche auf unsere 30749 addiert (18892 + 30749 = 49641) und in die Maschine eingegeben, einen Output mit 3 Nullen am Anfang generiert.

In diesem Fall wird die Zahl 18892 nun zum Siegel für unsere erste Zahl, 30749. Nehmen wir an, wir haben eine Seite in unserem Ordner, der die Zahl 30749 trägt, um diese Seite zu versiegeln (damit niemand ihren Inhalt verändern kann), versehen wir sie nun mit einem Badge, das die Zahl 18892 trägt. Sobald das getan ist, ist die Seite versiegelt.

Anmerkung: Die Ermittlung Siegelnummer wird “Proof of Work” genannt. Was bedeutet, dass ein gewisser Aufwand in die Ermittlung dieser Zahl geflossen ist.

Wenn jemand nun überprüfen möchte, ob die Seite verändert oder manipuliert wurde, wäre alles was er tun müsste, den Inhalt der Seite, gemeinsam mit der Siegelnummer in die Magic Maschine einzugeben. Wenn die Maschine ein Wort mit 3 Nullen am Anfang ausspuckt, wurde die Seite nicht angerührt und ist unverändert.

Endlich können wir unsere Seite versiegeln

Um die Aufzeichnungen unserer 10 Rebellen und ihrer Transaktionen zu versiegeln, müssen wir also eine Zahl finden, die an die Liste der Transaktionen angehangen und durch die Maschine geschickt, ein Wort mit 3 Nullen am Anfang generiert.

Anmerkung: Der Einfachheit halber habe ich mich hier auf das “Wort mit 3 Nullen” festgelegt, es soll als vereinfachtes Beispiel für die Funktionsweise von Hashing Funktionen dienen. Die echten Anforderungen und Herausforderungen sind wesentlich komplexer als dieses Beispiel.

Ist diese Zahl durch den Einsatz von Zeit und Elektrizität (Proof of Work) generiert, wird die Seite mit Hilfe der Nummer versiegelt. Durch diese Nummer kann nun jeder der Netzwerkteilnehmer, zu jeder Zeit, verifizieren, dass die Seite nicht verändert wurde.

Jetzt wo wir wissen, wie dieser Vorgang funktioniert, können wir einen Schritt zurück gehen und uns anschauen, was unsere 10 Testpersonen machen, wenn sie die erste Seite (mit 10 Transaktionen) gefüllt haben und kein Platz für eine weitere Transaktion bleibt. Sie beginnen sofort mit der Kalkulation der Siegelnummer, damit das Papier in dem Ordner abgeheftet werden kann. Jeder Netzwerkteilnehmer führt diese Kalkulation durch, wer als erster die Lösung findet, teilt das der Gruppe mit.

Sobald die Anderen die Nummer hören, verifizieren sie diese mit Hilfe der Zauber Maschine, ergibt dieser Test das erwünschte Ergebnis (Wort mit 3 Nullen am Anfang), versieht jeder seine Seite mit der Siegelnummer und heftet sie in seinem Ordner ab.

Was aber passiert, wenn ein anderer Teilnehmer des Netzwerks, sagen wir mal #3, behauptet, die Nummer würde nicht den gewünschten Output erzeugen. Gründe hierfür könnten sein:

  1. Er hat sich bei der Verkündung einer Transaktion verhört.
  2. Er hat sich beim Aufschreiben der Transaktion verschrieben und falsche Daten notiert.
  3. Er hat versucht, die Anderen zu betrügen, sei es für seinen eigenen Vorteil oder den eines anderen Teilnehmers der Gruppe.

Der Grund spielt allerdings eine untergeordnete Rolle, #3 hat keine andere Wahl, als seine Seite zu verwerfen und die korrekte Version von einem der anderen Teilnehmer zu kopieren, damit er sie in seinen Ordner legen darf. Geschieht dies nicht, kann er keine neuen Transaktionen durchführen und wird von Netzwerk ausgeschlossen.

Die Siegelnummer auf die die Mehrheit sich einigt, wird zur offiziellen Siegelnummer

Aber warum sollten die Teilnehmer Ressourcen und Zeit darauf verwenden, diese Nummer zu berechnen? Warum warten sie nicht einfach darauf, dass ein Anderer diese Aufgabe erledigt?

An dieser Stelle kommen Anreize und Belohnungen ins Spiel. Jeder Teilnehmer einer Blockchain ist berechtig, Belohnungen zu erhalten. Der Erste, der die Siegelnummer herausfindet, gewinnt somit auch etwas Geld, für seine Mühen.

Stell dir das Ganze so vor: #1 berechnet als erster die Siegelnummer, er bekommt dafür eine kleine Belohnung, sagen wir mal 1€, welcher aus dem Nichts entsteht (So wie das bei Fiat Währungen nun mal so ist, aber das ist nochmal ein ganz anderes Thema). Anders gesagt, sein Konto wächst um 1€ an, während sich der Kontostand der Anderen nicht verringert.

So ist Bitcoin entstanden. Als erste Währung, die über eine Blockchain verschickt wurde und dessen Nutzer, durch die Auszahlung von Bitcoins, dafür belohnt wurden, dieses Netzwerk aus dezentralen Hauptbüchern zu pflegen und aufrecht zu erhalten.

Wenn nun alle 10 Teilnehmer der Gruppe die identischen Seiten in ihren Ordnern abgeheftet haben, nehmen sie eine neue, leere Seite hervor und wiederholen den Vorgang, immer und immer wieder.

Stelle dir jede einzelne Seite als einen Block aus Transaktionen vor und den Ordner als eine Art Kette aus diesen Blöcken, so erhält du eine Blockchain.

Das ist das Grundprinzip einer Blockchain!

Es fehlt eine kleine Sache, die ich noch nicht erwähnt habe.

Stell dir vor, es liegen bereits 5 Seiten in dem Ordner, alle versiegelt durch eine Nummer. Was passiert nun, wenn ich die zweite Seite nochmal herausnehme, um eine Transaktion zu meinem Vorteil zu verändern? Die Siegelnummer sollte doch jedem erlauben, diese Unstimmigkeit aufzudecken oder? Was passiert, wenn ich nun auch noch eine neue Siegelnummer für diese Seite berechne und sie damit versehe.

Um das Problem zu vermeiden und zu verhindern, dass jemand vorherige Seiten (Blöcke) manipuliert und mit einer neuen Nummer versiegelt, enthält der Vorgang der Berechnung einen kleinen Kniff.

Wie kann die Manipulation der Siegelnummern verhindert werden?

Erinnere dich daran, dass ich dir von den zwei Boxen erzählt habe, die ich dir gegeben habe, eine davon enthielt die Zahl 30749, die andere war leer und ihr Inhalt musste von dir berechnet werden. In der Realität enthält eine Blockchain sogar drei dieser Boxen, zwei verfügen über Zahlen und eine ist leer. Die Inhalte dieser Boxen werden zusammengefügt und in die Maschine eingegeben, das Ergebnis, das auf der rechten Seite der Maschine ausgespuckt wird, muss die Anforderungen erfüllen.

Was sind diese zusätzlichen Zahlen? Wir wissen bereits, dass eine der Boxen die Transaktionen enthält, und eine weitere Box wird die Siegelnummer enthalten. Die dritte Box speichert den gesamten Output der Magic Maschine für die vorherige Seite (Block).

Durch diesen kleinen Trick haben wir sicher gestellt, dass jede neue Seite einen direkten Bezug bzw. eine direkte Abhängigkeit zur vorherigen Seite hat. Wenn nun jemand den Inhalt einer vorherigen Seite verändern will, muss er ebenfalls die Siegelnummern aller Seiten, die auf die veränderte Seite folgen, neu berechnen.

Wenn eine Person aus der Gruppe der 10 Netzwerkteilnehmer, versuchen sollte, die Anderen zu betrügen und den Inhalt der Blockchain (Ordner mit Seiten und Transaktionen) abzuändern, müsste er etliche Seiten bearbeiten und für all diese Seiten neue Siegelnummern berechnen. Wir wissen bereits, wie aufwendig diese Berechnung ist, deshalb kann ein unehrlicher Teilnehmer niemals gegen 9 ehrliche Teilnehmer eines Netzwerks gewinnen.

Was passieren würde, wenn der Betrüger eine Seite im Ordner verändert, ist die Entstehung einer neuen Kette in diesem Netzwerk, allerdings würde diese neue Kette niemals an die ursprüngliche Kette herankommen und von den anderen Teilnehmern akzeptiert werden. Die Bemühungen einer einzelnen Person können niemals die geballte Geschwindigkeit und Sicherheit der anderen Neun überbieten. Somit wird garantiert, dass die längste Ketten des Netzwerks auch die ehrlichste ist.

Mit Sicherheit denkst du dir jetzt gerade so etwas wie: “Schon klar, einer alleine hat keine Chance gegen die anderen neun, aber…”

Was, wenn anstatt einem Einzelnen, 6 Leute unehrlich werden?

In diesem Fall hat das System versagt und fällt buchstäblich auf die Schnauze. Dieser Vorgang wird als “51% Attacke” bezeichnet. Wenn sich die Mehrheit der Personen in einem Netzwerk dazu entschließt, die Anderen zu betrügen, verfehlt das System seinen Zweck. Diese 51% Attacken, sehe ich als einzigen Grund dafür, warum eine Blockchain versagen könnte.

Die Wahrscheinlichkeit für so einen Zwischenfall sind sehr sehr gering, trotzdem solltest du, neben all den Vorteilen, auch die verwundbaren Stellen dieser Technologie kennen. Die Blockchain ist auf der Annahme aufgebaut, dass die Mehrheit der Menschen immer ehrlich handeln werden.

Das soll es erstmal gewesen sein an dieser Stelle. Ich hoffe der Beitrag war hilfreich auf deinem Weg, die Blockchain zu verstehen.

Solltest du mal auf Jemanden stoßen, der sich fragt: “Was zur Hölle ist eine Blockchain?”, dann weißt du jetzt, wohin du ihn schicken kannst.

Speicher dir den Link zu diesem Artikel. Kennst du jemanden, für den dieser Artikel hilfreich wäre? Teile ihn jetzt.

Oder lade dir hier das PDF herunter

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

Bloggen auf WordPress.com.

Nach oben ↑