Wie funktioniert die Blockchain?

Die ultimative Einführung zum Thema Blockchain

0 1

Wenn Sie in der letzten Zeit nicht gerade hinterm Mond gelebt haben, haben Sie bestimmt schon einmal etwas von Bitcoin und Blockchain gehört. Schließlich sind Bitcoins und die Blockchain die Megatrends der Gegenwart, und in der Computerwelt gehören die beiden Begriffe zweifellos zu den Wörtern des Jahres. Selbst Leute, die bislang nichts mit Kryptowährungen zu tun hatten und auch nicht verstanden, worum es dabei geht, reden darüber.

Meine technisch weniger bewanderten Freunde stehen eher auf verlorenem Posten, wenn es um neuartige Technologien wie diese geht, und nerven mich deswegen schon seit Wochen damit, ihnen doch zu erklären, wie das Ganze funktioniert. Ich bin sicher: Tausenden von Internet-Nutzern in aller Welt wird es genauso gehen.

Als einer der ersten Anwender der Bitcoin-Technologie habe ich nun einmal versucht, den folgenden Beitrag in normalem Umgangs-Deutsch zu verfassen, so dass jeder diesen höchst interessanten technologischen Ansatz verstehen kann.

Die Blockchain: Wozu brauchen wir etwas derart Kompliziertes?

„Für jedes komplexe Problem gibt es eine Lösung, die genauso einfach wie einleuchtend ist – leider ist sie meistens dann auch falsch.“ – H. L. Mencken

Entgegen vieler anderer Ansätze, die gewöhnlich damit beginnen zu versuchen zu definieren, was eine Blockchain ist, möchte ich zunächst einmal das Problem darstellen, welches man mit einer Blockchain lösen kann.

Nehmen wir einmal an, wir hätten einen besten Freund namens Johannes. Johannes ist nach Amerika verreist und ruft uns eines Tages aus dem Urlaub an mit der Nachricht: „Hey Kumpel, ich brauche dringend Geld. Ich bin total pleite.“

Nett, wie wir sind, wollen wir Johannes natürlich helfen und sagen: „Klar, bekommst Du“. Einige Nebensächlichkeiten später 😉 beenden wir das Telefonat.

[Bildtext]

Johannes: „Hey Kumpel, ich brauche dringend Geld. Ich bin total pleite.“

Du: „Klar, bekommst Du.“

[Ende Bildtext]

Nach dem Gespräch rufen Sie Ihren Bankberater an und sagen ihm „Bitte überweisen Sie 1.000 EUR von meinem Konto auf das Konto von Johannes.“

Der Bankberater antwortet Ihnen „Wird gemacht!“

Das, was wir landläufig „Überweisung“ nennen, heißt fachsprachlich auch „Transaktion“. Im folgenden werden wir hauptsächlich den Begriff „Transaktion“ nutzen. Der Bankberater geht dann in die elektronische Verwaltung Ihres Kontos und überprüft zunächst einmal, ob Sie genug Geld haben, um Johannes 1.000 EUR zukommen zu lassen. Weil Sie finanziell gut gestellt sind, ist das kein Problem für Sie. Der Bankberater trägt etwa folgendes in das Transaktions-Register ein:

[Bildtext]

26.06.2017 11:00 Uhr

Sie ——————– Johannes 1.000 EUR

[Ende Bildtext]

Das Transaktions-Register

Bemerkung: Das Beispiel stammt absichtlich nicht aus dem Computerbereich, damit die Dinge einfach und verständlich bleiben.

Nach der Transaktion rufen Sie Johannes zurück und teilen ihm mit: „Hab das Geld überwiesen. Nächstes Mal, wenn Du zum Geldautomaten gehst, kannst Du die 1.000 EUR, die ich Dir gerade überwiesen habe, abheben.“

[Bildtext]

Sie: „Hab’s abgeschickt.“

Johannes: „Dankeschön!“

[Ende Bildtext]

Doch was ist nun tatsächlich passiert? Sie und Johannes haben die Bank als Treuhänder verwendet, um den Geldtransfer durchzuführen. Das kann man sich daran klarmachen, dass eine reale Versendung von Geld niemals stattgefunden hat. Alles, was es für die „Versendung“ gebraucht hat, war ein Eintrag im Transaktions-Register. Oder, besser gesagt, in einem Register, auf das weder Sie noch Johannes Zugriff hatten oder es irgendwie hätten manipulieren können.

Und genau da liegt das grundlegende Problem der gegenwärtigen Systeme.

Um eine vertrauenswürdige Verbindung zwischen Ihnen und Johannes aufzubauen, verlassen Sie und Johannes sich auf die Dienstleistung von Dritten.

Seit Jahrzehnten hängen unsere Transaktionen von zwischengeschalteten Dritten ab. Jetzt können Sie sich natürlich fragen, warum das Sich-auf-einen-Mittelsmann-verlassen ein Problem darstellen sollte.

Das Problem besteht in erster Linie darin, dass es von solchen „Mittelsmännern“, oder Treuhändern, bislang nur sehr wenige gibt. Die geringe Anzahl macht sie angreifbar. Es braucht sich meist nur eine einzelne Person oder Organisation gesetzeswidrig zu verhalten, vorsätzlich oder fahrlässig, und das gesamte Treuhänder-System ist in Gefahr.

  • Was passiert, wenn das Transaktions-Register einem Feuer zum Opfer fällt?
  • Was passiert, wenn der Bankberater statt 1.000 EUR fälschlicherweise 1.500 EUR notiert hat?
  • Was passiert, wenn er das absichtlich getan hat?

Seit Jahren legen wir all unsere Eier in ein und denselben Korb – in den eines Fremden.

Gibt es ein System, mit dem man Geld überweisen kann, ohne dabei von Banken abhängig zu sein?

Um diese Frage zu beantworten, müssen wir noch ein wenig tiefer in die Materie einsteigen und präzisere Fragen stellen (schließlich führen nur bessere Fragen zu besseren Antworten).

Was steckt eigentlich genau hinter dem Denkkonzept „Geld überweisen“? Es ist nur ein Eintrag im Transaktions-Register. Die bessere Frage wäre demnach:
Gibt es eine Möglichkeit, ein Register zwischen Geldversender und Geldempfänger zu verwalten, anstatt dass dies jemand Drittes für uns tut?

Diese Frage lohnt es sich zu erörtern. Und Sie ahnen bereits richtig, was die Antwort ist: Die Blockchain ist die Antwort.

Können Sie mir noch folgen? Ganz bestimmt. Gut. Denn jetzt, wo verschiedene Fragen in unseren Köpfen auftauchen, werden wir lernen, wie das verteilte Transaktions-Register funktioniert.
Also, wie läuft das mit der Blockchain?

Eine Blockchain setzt voraus, dass es genügend Leute geben muss, die sich nicht in Abhängigkeit Dritter begeben wollen. Dann und nur dann kann diese Gruppe ein verteilte Transaktions-Register aufbauen und pflegen.

„Wenn sich die Bitcoins durchsetzen, sollte man davon einige haben. Wenn das genug so Leute so sehen, so wird das eine sich selbst erfüllende Prophezeiung.“ – Satoshi Nakamoto (2009)

Wieviele sind nun aber genug? Antwort: Mindestens drei. Für unser Beispiel gehen wir von zehn Personen aus, die die sich nicht in Abhängigkeit Dritter begeben wollen. In Gegenseitigkeit verfügen diese zehn jederzeit über Details über die Bankdaten der jeweils anderen – ohne dass sie die Identität der anderen kennen würden.

[Bildtext]

Person 1

Person 2

Person 3

Person 4

Person 5

Person 6

Person 7

Person 8

Person 9

Person 10

[Ende Bildtext]

1. Ein leerer Ordner

Jede der zehn Personen besitzt einen ihr zugeordneten leeren Ordner. Im weiteren Verlauf fügt jede der zehn Personen Blätter zu ihren ursprünglich leeren Ordnern hinzu. Diese Blattsammlung bilden das Transaktions-Register, in dem die Transaktionen nachgehalten werden.

2. Eine Transaktion findet statt

Jede der Personen in diesem Netzwerk ist schreibbereit, ausgestattet mit Stift und leerem Blatt und wartet. Jeder ist zu jeder Zeit bereit, Transaktionen innerhalb des Systems zu notieren.

Nehmen wir an, Person 2 möchte 10 EUR an Person 9 senden.

Um die Transaktion abzuwickeln, ruft Person 2 laut und teilt jedem mit: „Ich möchte 10 EUR an Person 9 überweisen. Bitte alle auf einem Blatt notieren!“

[Bildtext]

Person 1

Person 2 „10 EUR an Person 9“

Person 3

Person 4

Person 5

Person 6

Person 7

Person 8

Person 9

Person 10

[Ende Bildtext]

Jeder überprüft nun, ob Person 2 genug Geld hat, um 10 EUR an Person 9 zu überweisen. Ist dies der Fall, macht jeder eine entsprechende Notiz der Überweisung auf einem eigenen leeren Blatt.

[Bildtext]

26. Juni 2017 11:00 Uhr

Person 2 ——————– Person 9 10 EUR

[Ende Bildtext]

Erste Transaktion auf dem (zuvor leeren) Blatt

Damit wird die Transaktion als abgeschlossen betrachtet.

</h2>

3. Weitere Transaktionen

Im weiteren zeitlichen Verlauf werden weitere Personen die Notwendigkeit sehen, Geld an andere Leute zu senden. Jedesmal, wenn die Überweisungswilligen eine Transaktion durchführen wollen, kündigen sie das jedem anderen innerhalb des Systems an. Sobald die anderen Personen die Ankündigung hört, schreiben sie die Transaktion auf ihre Blätter.

So geht das weiter, bis keiner mehr Platz auf seinem (einstmals leeren) Blatt hat. Angenommen, ein Blatt würde Platz für zehn Eintragungen haben, wäre das Blatt jedes Teilnehmers nach zehn Transaktionen voll.

[Bildtext]

26. Juni 2017 11:00 Uhr

Person 2 ——————– Person 9 10 EUR

BLATT VOLL

[Ende Bildtext]

Das Blatt wird gefüllt

Jetzt ist es an der Zeit, das gefüllte Blatt im Ordner abzuheften und ein neues Blatt herauszunehmen. Der beschriebene Ablauf wiederholt sich dann wie oben dargestellt, beginnend mit Schritt 2

4. Abheften des vollen Blattes

Bevor wir das volle Blatt abheften und weglegen können, müssen wir es versiegeln, und zwar mit einem einzigartigen Schlüssel, den jeder aus dem Netzwerk akzeptiert. Durch die Versiegelung stellen wir sicher, dass niemand irgendeine nachträgliche Änderung an dem Dokument oder einer seiner Kopien, die jeder Teilnehmer erhält, vornehmen kann. Weder jetzt, noch morgen, noch in einem Jahr oder später. Was versiegelt ist, bleibt versiegelt. Und wenn jeder Teilnehmer dem Siegel vertraut, vertraut er auch den Inhalten der Blätter. Mit der Versiegelung steht und fällt der Erfolg des Systems.
[…für Nerds…] In der informationtechnischen Fachsprache spricht man von „Mining“ bezüglich der Versiegelung, aber der Einfachhait halber benutzen wir weiterhin den Begriff „Versiegelung“.

Früher war es so, dass uns der Treuhänder sein Ehrenwort gab, dass nichts, was auf die Blätter geschrieben ist, jemals nachträglich geändert wird. In einem verteilen System wie dem unseren ersetzt die Versiegelung das Ehrenwort.
Interessant! Und wie stellen wir nun die Versiegelung her?

Bevor wir lernen, wie unsere Versiegelung konkret funktioniert, müssen wir wissen, wie eine Versiegelung im Allgemeinen funktioniert. Als Voraussetzung dafür müssen wir ein Konzept verstehen, welches ich gerne bezeichne als…
Die Magische Maschine

Stellen Sie sich eine Maschine vor, die von dicken Mauern umgeben ist. Wenn Sie in die Maschine von links ein Behältnis mit etwas darin hineinstecken, kommt rechts ein Behältnis mit etwas anderem darin wieder heraus.
[…für Nerds…] Eine solche Maschine nennt man „Hash-Funktion“, aber wie versprochen – wir wollten ja nicht zu technisch werden. Deshalb bleiben wir hier beim Begriff der „Magischen Maschinen.“

[Bildtext]

Eingabe -> [Maschine] -> Ausgabe

[Ende Bildtext]

Die Magische Maschine (alias Hash-Funktion)

Stellen Sie sich vor, Sie stecken die Ziffer 4 von links in die Maschine, und es kommt rechts das Wort „dcbea“ wieder heraus.

Wie genau hat die Magische Maschine nun die Ziffer 4 in das Wort „dcbea“ verwandelt? Darauf kennt niemand die Antwort. Vielmehr noch, der Vorgang ist unumkehrbar. Das bedeutet, es ist unmöglich, aus „dcbea“ wieder in die Ziffer 4 umzuwandeln. Aber jedes Mal, wenn Sie eine 4 links in die Maschine stecken, kommt rechts „dcbea“ raus.

[Bildtext]

4 -> [Maschine] -> dcbea

[Ende Bildtext]

hash(4) == dcbea

Aus dem Wort „dcbea“ ist es unmöglich abzuleiten, was links in die Maschine gesteckt wurde. Aus „dcbea“ kann niemand die 4 zurück-ableiten. Aber jedes Mal, wenn man eine 4 links in die Maschine steckt, kommt „dcbea“ auf der rechten Seite raus.

Lassen Sie uns mal eine andere Zahl ausprobieren. Wie wär’s mit 26?

[Bildtext]

26 -> [Maschine] -> 94c8e

[Ende Bildtext]

hash(26) == 94c8e

Diesmal kam also 94c8e raus. Spannend! Die „Ausgabe-Wörter“ können also ihrerseits auch wieder Ziffern beinhalten.

Stellen wir uns also folgende Frage:
„Kann ich sagen, was ich auf der linken Seite in die Maschine stecken müsste, um auf der rechten ein Ausgabe-Wort zu erhalten, das mit drei Nullen beginnt? Also zum Beispiel 000ab oder 00098 oder 000fa oder irgendetwas in dieser Richtung.“

[Bildtext]

? -> [Maschine] -> 000..

[Ende Bildtext]

Die Eingangsdaten vorhersagen

Denken Sie kurz über die Antwort nach.

Wir sagten ja schon, dass die Maschine die Eigenschaft hat, dass wir nicht berechnen können, was wir links in die Maschine reinstecken müssen, um rechts ein bestimmtes Ergebnis herauszubekommen. Wie lautet also nun die Antwort auf unsere Frage?

Ich hätte da eine Lösungsidee. Wie wäre es, wenn wir einfach solange beliebige natürliche Zahlen links reinstecken, bis wir ein Ausgabe-Wort erhalten, das mit drei Nullen beginnt?

[Bildtext]

237 -> [Maschine] -> 82bc7

[Ende Bildtext]

[Bildtext]

9082 -> [Maschine] -> c75ae

[Ende Bildtext]

[Bildtext]

11802 -> [Maschine] -> 09aef

[Ende Bildtext]

Hineinstecken aller möglicher Zahlen

Nach einigen tausend Versuchen gelingt uns tatsächlich ein Treffer, mit drei führenden Nullen auf der rechten Seite!

[Bildtext]

72533 -> [Maschine] -> 000ca

[Ende Bildtext]

Es war also extrem schwierig, zu einem gewünschten Ausgabewort einen passenden Eingabewert zu finden. Gleichzeitig wird es jederzeit extrem leicht sein, zu überprüfen, ob das Ausgabewort zu einem gegebenen Eingabewert passt. Erinnern Sie sich? Die Maschine spuckt zu jedem gegebenen Eingabewert jedes Mal dasselbe Ausgabewort aus.

Was meinen Sie, wie schwierig ist die Antwort, wenn ich Ihnen einen Eingabewert geben, sagen wir 72533, und Sie dazu frage: „Führt dieser Eingabewert, wenn ich ihn durch die Maschine laufen lasse, zu einem Ausgabewort, das mit drei Nullen beginnt?“

Alles, was Sie jetzt tun müssen, ist, den Eingabewert durch die Maschine laufen zu lassen, und zu schauen, was auf der rechten Seite herauskommt.

Die wichtigste Eigenschaft solcher Maschinen ist es, zu einem gegebenen Ausgabewort den Eingabewert so schwierig wie möglich bestimmen zu können, andererseits aber die Überprüfung, ob ein Ausgabewort zu einem Eingabewert passt, so einfach wie möglich zu gestalten.

Wir müssen uns diese eine Eigenschaft der Magischen Maschine (auch Hash-Funktion genannt) merken:

Mache es so schwer wie möglich, zu einem gegebenen Ausgabewort den Eingabewert bestimmen zu können, andererseits mache es so einfach wie möglich zu überprüfen, ob ein Ausgabewort zu einem Eingabewert passt.
Wie benutzt man nun solche Maschinen für die Versiegelung?

Wir werden solche Maschinen benutzen, um eine Versiegelung für unsere Blätter herzustellen. Lassen Sie dafür wieder ein Gedankenexperiment machen.

Stellen Sie sich vor, ich würde Ihnen zwei Behälter geben. Der erste Behälter beinhaltet die Zahl 20893. Dann frage ich Sie „Können Sie mir sagen, welche Zahl Sie zu 20893 hinzufügen müssen, um ein Ausgabewort zu erhalten, welches mit drei Nullen beginnt?“

[Bildtext]

20893 + ? -> [Maschine] -> 000..

[Ende Bildtext]

Diese Situation ist dem vorhergehenden Gedankenexperiment recht ähnlich, denn wir haben ja bereits gelernt, dass der einzige Weg, eine solche Zahl zu finden, der ist, dass wir jede Zahl des Universums einfach ausprobieren.

Nach einigen tausend Versuchen stolpern wir über eine Zahl, sagen wir 21191, die in der Summe mit 20893 (also 21191 + 20893 = 42084) und durch die Maschine gejagt, tatsächlich unsere Erwartungen erfüllt

[Bildtext]

20893 + 21191 -> [Maschine] -> 00078

[Ende Bildtext]

In einem solchen Fall würde „21191“ dann die Versiegelung für „20893“ darstellen. Nehmen wir einmal an, es gäbe ein Blatt, auf dem der Eingabewert 20893 steht. Um dieses Blatt zu versiegeln (so dass also niemand mehr Daten darauf ändern kann), kleben wir einen Aufkleber mit dem Aufdruck „21191“ darauf. Sobald der Aufkleber mit „21191“ auf dem Blatt ist, ist dieses versiegelt.

[Bildtext]

20893

21191

[Ende Bildtext]

Die versiegelte Zahl
[…für Nerds…] Der Versiegelungs-Wert wird fachsprachlich als „Proof of Work“ bezeichnet, was bedeutet, dass dieser Wert anzeigt, dass die Berechnung desselben erfolgreich war. Wir bleiben hier aber dabei, den Wert einfach „Versiegelungs-Wert“ zu nennen.

Wenn nun irgendjemand überprüfen möchte, ob das Blatt verändert wurde, wäre alles, was er tun müsste, die Summe aus dem Inhalt des Blattes und dem Versiegelungs-Wert zu bilden (20893 + 21191) und diese Summe durch die Magische Maschine laufen zu lassen. Falls die Maschine einen Wert ausgibt, der mit drei Nullen beginnt, ist alles in Ordnung, der Inhalt des Blattes wurde nicht verändert. Falls das Ausgabewort jedoch nicht unsere Erwartungen erfüllt, könnten wir das Blatt wegwerfen, sein Inhalt wurde manipuliert, und es wäre für unsere Zwecke nutzlos.

Wir werden einen ähnlichen wie den beschriebenen Mechanismus nutzen, um alle unsere Blätter zu versiegeln und sie schließlich in unseren jeweiligen Ordnern unterzubringen.
Versiegeln des Blattes

Um unsere Blätter zu versiegeln, die die Notizen unserer Transaktionen beinhalten, müssen wir nun einen Wert finden, der angehängt an alle Transaktionen und durch die Maschine gejagt, wiederum ein Ausgabewort ergibt, welches mit drei Nullen beginnt.

[Bildtext]

[Liste der Transaktionen] + ? -> [Maschine] -> 000..

[Ende Bildtext]
Bemerkung: Ich habe den Begriff „…der mit drei Nullen beginnt…“ nur als Beispiel verwendet. Er soll lediglich das Prinzip der Hash-Funktion darstellen. In Wirklichkeit laufen die Dinge viel komplexer ab.

Nachdem unsere Magische Maschine eine Menge Zeit gebraucht und eine Menge Strom verbraucht hat, versiegelt das erhaltene Ausgabewort die komplette Seite. Sollte nun jemand versuchen, die Inhalte der Seite zu verändern, kann jeder andere sofort die Integrität der Seite mittels des Versiegelungs-Wertes überprüfen.

Nachdem wir nun wissen, wie wir eine Seite prinzipiell versiegeln können, gehen wir zurück zu dem Zeitpunkt, zu dem wir gerade die zehnte Transaktion (erinnern Sie sich – es passen ja zehn auf das Blatt) notiert haben.

Sobald jeder Teilnehmer also die zehnte Transaktion notiert hat und damit das Blatt voll ist, wird er einen Versiegelungs-Wert anfordern, um die Seite schließlich in dem passenden Ordner abzulegen. Jeder in dem Netzwerk führt die Berechnung des Versiegelungs-Wertes aus. Der erste, der den passenden Versiegelungs-Wert gefunden hat, teilt diesen unverzüglich allen anderen im Netzwerk mit.

[Bildtext]

Person 1

Person 2

Person 3

Person 4

Person 5 „Der Versiegelungs-Wert ist 912574!“

Person 6

Person 7

Person 8

Person 9

Person 10

[Ende Bildtext]

Unmittelbar nachdem ihm der Versiegelungs-Wert bekannt ist, prüft jeder einzelne Teilnehmer des Netzwerkes, ob er das geforderte Ausgabe-Wort erhält oder nicht. Falls ja, klebt jeder einen Sticker mit diesem Versiegelungs-Wert auf seine Seite und legt sie in dem passenden Ordner ab.

Doch was geschieht, falls jemand -sagen wir Person 7- bei der Prüfung ein anderes Ergebnis herausbekommt? Solche Fälle sind gar nicht so selten. Sie können folgende Ursachen haben:

  • >
  • Die Person hat die Inhalte der Transaktionen nicht richtig verstanden.
  • Die Person hat die Transaktionen nicht korrekt notiert.
  • Die Person hat versucht, beim Notieren der Transaktionen zu manipulieren, entweder zu ihren eigenen Gunsten oder zu Gunsten eines anderen im Netzwerk

Egal, worin die Ursache liegt, Person 7 hat nur eine einzige Wahl: das fehlerhafte Blatt wegzuwerfen und sich eine Kopie von jemand anderem aus dem Netzwerk zu besorgen, die sie dann in dem passenden Ordner ablegen kann. Solange Person 7 das Blatt nicht in dem Ordner ablegt, hat sie nicht die Möglichkeit, weitere Transaktionen zu notieren, sprich sie ist faktisch nicht mehr Teil des Netzwerkes.

Derjenige Versiegelungs-Wert, auf den die Mehrheit des Netzwerkes vertraut, wird der anerkannte Versiegelungs-Wert.
Doch warum sollte dann jeder einzelne Zeit darauf verwenden, die Berechnung selbst durchzuführen, wenn er doch weiß, dass jemand anders genau dasselbe tut und dann den Versiegelungs-Wert bekanntgibt? Warum sollte man nicht einfach abwarten, bis der Versiegelungs-Wert eintrifft?

Hervorragende Frage! An dieser Stelle kommen nämlich die kleinen Ansporne ins Spiel. Als Teil der Blockchain ist nämlich jeder automatisch befugt, kleine Belohnungen zu erhalten. Zum Beispiel erhält derjenige, der als erster den Versiegelungs-Wert nennt, eine kleine geldwerte Entschädigung für seine Mühe (sprich für die investierte Rechenzeit und den dafür verbrauchten Strom).

Stellen Sie sich einfach vor, dass Person 5 den Versiegelungs-Wert einer Seite berechnet. Dann bekommt Person 5 beispielsweise 1 EUR Belohnung. Mit anderen Worten, das Konto von Person 5 wird um den Wert von 1 EUR erhöht, ohne dass irgendjemand anderem etwas dafür abgezogen wird.

Und das ist genau das Prinzip von Bitcoins. Bitcoins war die erste Währung, deren Transaktionen mit Hilfe einer Blockchain (also verteilten Registern) durchgeführt wurden. Im Gegenzug, um das Prinzip weiter zu verbreiten, erhielten Teilnehmer Bitcoins als Belohnung für ihren Aufwand.

Wenn genug Teilnehmer Bitcoins besitzen, steigt der Wert der Bitcoins, was dazu führt, dass andere Leute auch Bitcoins haben wollen, was wiederum dazu führt, dass noch mehr Leute Bitcoins haben wollen…

Und jedes Mal, wenn jemand eine Seite in den passenden Ordner legt, bekommt er eine neue (leere) Seite und der ganze Vorgang beginnt von vorn – wieder und wieder.
[…für Nerds…]

Stellen Sie sich ein einzelnes Blatt als Block von Transaktionen vor und einen Ordner als Kette („Chain“) von Blättern („Blocks“). Daher der Begriff „Blockchain“ 🙂

So einfach funktioniert also eine Blockchain.

Naja, da wäre noch eine Kleinigkeit, die ich Ihnen nicht gesagt habe. Noch nicht.

Stellen Sie sich vor, es gäbe bereits fünf Seiten in den betreffenden Ordner. Jede einzelne versiegelt mit dem entsprechenden Versiegelungs-Wert. Was passiert nun, wenn ich z.B. zur zweiten Seite zurückgehe und eine Transaktion verändere, um mich selbst zu bereichern? Mit dem Versiegelungs-Wert kann -wie wir wissen- ja jeder eine Manipulation in den Transaktionen aufdecken, richtig? Was aber, wenn ich dem „vorbeuge“, einfach einen neuen Versiegelungs-Wert berechne und einen neuen Aufkleber anbringe?

Um dieser Situation zu begegnen, gibt es einen Trick, wie reale Versiegelungs-Werte berechnet werden.
Versiegelungs-Werte vor Veränderungen schützen

Erinnern Sie sich an die Situation, wie ich Sie bat, sich zwei Behälter vorzustellen, einen befüllt mit der Zahl 20893 und den anderen leer, zu befüllen mit einer von Ihnen zu berechnenden Zahl? In der Realität existieren zur Berechnung von Versiegelungs-Werten nicht zwei Behälter, sondern drei – zwei sind bereits befüllt und der dritte wird berechnet.

Alles andere bleibt gleich: die Summe der Werte dieser drei Behälter muss, durch die Maschine gejagt, ein Ausgabewort ergeben, welches unsere Bedingungen erfüllt (in unserem Fall die drei führenden Nullen).

Wir wissen bereits, dass ein Behälter die Liste der Transaktionen enthält und der andere den Versiegelungs-Wert. Der dritte Behälter wird das Ausgabewort der Magischen Maschine für die vorangegangene Seite enthalten.

[Bildtext]

[Seite] + ? + 000.. -> [Maschine] -> 000..

[Ende Bildtext]

Mit diesem kleinen Trick stellen wir sicher, dass das Ergebnis jeder Seite auch vom Ergebnis der vorhergehenden Seite abhängt. Wenn also jemand die Inhalte einer älteren Seite ändern wollen würde, müsste er auch die Inhalte aller nachfolgenden Seiten ändern, um die Kette konsistent zu halten.

Falls also nun jemand aus dem Netzwerk, beispielsweise einer der zehn unseres Beispiel-Netzwerkes, versuchen würde, den Inhalt der Blockchain zu manipulieren, müsste er schon einige Seiten ändern mitsamt der zugehörigen Versiegelungs-Werte. Wir haben ja erfahren, wie aufwendig es ist, passende Versiegelungs-Werte zu berechnen. Ein unehrlicher Teilnehmer wird also schwerlich gegen die anderen neun aus unserem Beispiel-Netzwerk ankommen.

Was stattdessen passiert ist, dass der unehrliche Teilnehmer eine zweite Kette im Netzwerk eröffnen würde, die aber niemals eine Chance hätte, gegen die „richtige“, also die ehrliche anzukommen. Der Grund liegt einfach darin, dass die Kette, an der die neun ehrlichen Teilnehmer beteiligt sind, viel schneller wächst als die manipulierte Kette des unehrlichen Teilnehmers. Merke: die längste Kette ist auch immer die ehrliche Kette.

[Bildtext]

000.. -> 000..

000.. -> 000.. -> 000.. -> 000.. -> 000.. -> 000..

000.. -> 000.. -> 000..

[Ende Bildtext]

Die längste Kette ist die ehrliche Kette

Als ich erwähnte, dass ein unehrlicher Teilnehmer nicht gegen neun ehrliche ankommt, hat’s da bei Ihnen im Kopf geklingelt?
Was also, wenn nicht es nur einen, sondern sechs unehrliche Teilnehmer gibt?

In diesem Fall versagt das Sicherheitssystem zugegebenermaßen. Man spricht man von einem „51%-Angriff“. Wenn die Mehrheit der Teilnehmer unehrlich wird und den Rest des Netzwerkes zu hintergehen versucht, greift das Sicherheitssystem einfach nicht mehr.

Diese, und nur diese Situation kann eine Blockchain zum Zusammenbruch bringen – theoretisch. Wenngleich ein solches Szenario höchst unwahrscheinlich erscheint, ist es doch wichtig, alle Schwachstellen des Systems zu kennen. Das System baut ganz einfach darauf, dass die Mehrheit seiner Benutzer stets ehrlich ist.

So, das war das, was ich Ihnen zum Thema Blockchains erklären wollte. Sollten Sie also demnächst mal jemanden treffen, der Sie fragt „Was zum Teufel ist eigentlich diese Blockchain“, wissen Sie ja nun, wo er nachschauen kann 😉

You might also like More from author

Leave A Reply

Your email address will not be published.