Читать книгу Mysterium Blockchain - Wolfgang Dirnberger - Страница 19
ALLES NUR BANANE IV
ОглавлениеDu und ich sitzen auf einer Wiese und genießen den Tag. Die Sonne scheint und ich zeige dir eine virtuelle Banane des Graffiti-Künstlers Banksy auf meinem Smartphone. Du fragst mich freundlich um die Banane und ich gebe dir die Banane gerne. Nun hast Du die Banane und ich habe keine mehr.
Wirklich?
Um festzustellen, was es mit dieser Banane auf sich hat und um aktiv bei diesem Bananen-Netzwerk „mitzumachen“ (das „wozu“ klären wir später), brauchst Du nur ein Teilnehmer des Bananen-Netzwerks zu werden, indem Du dir eine Applikation, ein kleines Programm auf deinem Computer oder dein Smartphone lädst. Diese App nennt man Wallet, was meiner Meinung nach ein bisschen irreführend ist. Wallet bedeutet Geldbörse und in meiner „Geldbörse“, in meiner Wallet, habe ich kein Geld, auch kein virtuelles. Und auch keine Bananen.
Eine Wallet ist mehr eine Art Schlüsselbund, als eine Geldbörse. Damit kannst Du dir ein asymmetrisches Schlüsselpaar generieren, mit dem Du nun am Netzwerk teilnimmst. Mit dieser Applikation, der Wallet, verwaltest Du nicht deine Bananen oder dein Geld, sondern Du verwaltest dein virtuelles Schließfach. An diesem Schließfach hängt der Schlüssel (der öffentliche) für alle zugänglich und wenn jemand eine virtuelle Information (Banane) in dieses virtuelle Schließfach „legt“ und mit dem daran „hängenden“ öffentlichen Schlüssel verschlüsselt, kann im Anschluss daran nur mehr der Besitzer des dazugehörenden privaten Schlüssels die Information sehen, lesen, erkennen, bearbeiten und im Falle von Werten (Bananen) in ein anderes Schließfach (mit anderen öffentlichen Schlüssel) „legen“.
Für die visuellen Leser und Leserinnen könnte folgendes innere Bild helfen. Stell dir vor, Du stehst am Bahnhof vor einer riesigen Wand mit Schließfächern. Jedes dieser Spezialschließfächer besteht aus zwei Kammern, mit zwei Türchen. An jedem oberen Türchen eines jeden Doppelkammer-Schließfachs hängt der Schlüssel zum Aufsperren. Gibst Du etwas hinein, fällt das durch eine Art doppelten Boden und landet in der unteren Kammer. Diese untere Kammer hat auch ein Türchen, nur hängt da kein Schlüssel. Wer „Etwas“ hineinlegt, kann das „Etwas“ nie wieder herausnehmen. Nur wer den „privaten“ Schlüssel dieser „privaten“ Kammer hat, kann über das „Etwas“ weiter verfügen.
Damit unsere Geschichte nicht abdriftet, beschränke ich mich aktuell auf das Wesentliche und mache erst im Anschluss einfache Beispiele. Multisignatur-Adressen, Hardware-Wallets, Cold-Storage, Storage mit Staking, genauere Beschreibungen von Blöcken, Transaktionen, Hash, Hashraten, Schwierigkeit, Mempool, Preise, Gebühren lasse ich im Moment alles weg. Du bist immer noch da? Gratuliere, Du hälst dich gut! Wenn Du verstehen möchtest, warum ein einziges „Etwas“ wie zum Beispiel Bitcoin, in den letzten 10 Jahren zwischen Null und fast 20.000,– USD Wert hatte und ein einziger dieser Bitcoins in Zukunft zwischen Null und hunderttausenden oder vielleicht sogar Millionen Wert haben könnte, warum unsere Bananen zwischen Null und Millionen Wert haben könnten, warum Tausende von Projekten scheitern werden und Tausende sich durchsetzen werden, solltest Du auch hierbleiben. Wir gehen da jetzt gemeinsam durch!
Unser Künstler hat sich schlussendlich virtuelle Bananen ausgedacht, mit einem dazugehörendem Regelwerk. Er ist derart begeistert von seiner Bananenidee, dass er nun gleich starten möchte.
Kleine Bemerkung dazwischen: sollte sich jemand von euch über die Bananen mokieren: es gibt auch virtuelle Katzen (besser gesagt eine virtuelle Katzendatei), mit denen man virtuell „züchten“ kann! Über 170.000,– USD wurden für so eine virtuelle Katze bereits bezahlt (besser das Zugriffs-Recht an diese Katze)! Es gibt auch virtuelle Karikaturen von bekannten Politikern, Künstlern und „Celebrities“ für 10.000,– USD, also ihr seid mit den Bananen noch gut bedient!
Nun möchte der Künstler die Initiative starten, in dem er den ersten Block mit der ersten Transaktion schafft, den Genesisblock. Die Software, auf welcher das Projekt läuft, nennt der Künstler BANANA CORE. Core steht für Herz. Die Software, auf der Bitcoin läuft, nennt sich Bitcoin Core – ist nur Zufall ;). Die Software funktioniert ähnlich wie unsere Datenbankverwaltungssoftware aus dem T-Shirt-Beispiel. Sie ist „open source“, frei zugänglich und nutzt peer to peer Technik (P2P). Entweder bist Du ein Nutzer von BitTorrent oder Du hast vielleicht schon einmal im Internet Musik oder Filme geklaut (oder davon gehört), dann ist dir P2P bekannt. Wenn Du ein braver Netflix- und Spotify-Nutzer bist und dir P2P nichts sagt, brauchst Du nur zu wissen, dass P2P-Systeme ohne Zentralserver auskommen. Das Netzwerk bilden Du und ich und alle anderen, die mitmachen. Wir kommunizieren direkt miteinander, oder besser gesagt, unsere Computer kommunizieren direkt. Bei Netflix oder Spotify kommunizierst Du mit einem zentralistischem System. Zentral, dezentral.
Was aber ist nun ein Block? Und wie beginnt so eine Blockchain zu laufen? Im Falle von Bitcoin gibt es zum Zeitpunkt des Schreibens dieser Zeilen um die 616.000 Blöcke (02/20), fein säuberlich aufgereiht, von Block Null (Genesisblock) zu Block 1, Block 2, Block 3, Block 4 und so munter weiter. Unser Satoshi (sie, er, die Gruppe) saß am 03.01.2009 um 18:15:05 am Computer und schuf den Genesis-Block. Mit der Nummer Null. Und einer Transaktion. Daraus sind bis heute Anfang 2020 Millionen Adressen und hunderttausende Blöcke entstanden! Warum?
Nach dem Häckseln und dem Schlüsselpaar brauchen wir nun zum weiteren Verständnis die sogenannten Blockchain-Explorer oder Block-Explorer. Das sind nichts anderes als Internetseiten, wo Du und jede(r) die/der will, immer in Echtzeit, alle Daten und Transaktionen einer Blockchain, der Blockkette, abfragen kann. Die öffentliche Einsicht in alle Transaktionen jeder Bananendatei oder der Bitcoindatei ist jederzeit für jeden gegeben und immer bis auf den Ursprung zurück verfolgbar, der Geburt, dem Urknall, dem Big Bang. Das gilt aber nicht nur für unsere Bananen-Blockchain oder Bitcoin Blockchain, das gilt für alle anderen Blockchain-Projekte.
Da eine Blockchain nichts anderes ist als eine geteilte und verteilte (distributed) Datenbank, hilft wie bei traditionellen Datenbanken ein Blick in die Struktur oder ein Blick in einen Block, um das Konstrukt zu verstehen.
Öffne einmal in deinem Browser eine der vielen Bitcoin Blockchain-Explorer, wie beispielsweise blockchain.info oder blockchain.com. Hier kann man neben verschiedenen Statistiken auch alle Details über alle je geschaffenen Blöcke und alle je durchgeführten Transaktionen in der Bitcoin Blockchain finden. Um die Sensation begreifen zu können, klick doch auf eine Blocknummer unter Blöcke und Höhe und sieh dir die hunderten Transaktionen an. Geh zurück und klicke auf Transaktionen. Im Sekundentakt Transaktionen. Seit dem Genesisblock tausende und abertausende, ach was sage ich, Millionen von Transaktionen, in allen Details, mit Zeitstempel, von wo, wohin, wieviel, jede Transaktion gehasht, unwiderruflich für die Ewigkeit gespeichert. Wenn man sich durch die Statistiken der Blockchain-Explorer, Blockchain-Tracker oder Blockchain-Scanner klickt, wird einem der Beginn eines neuen Zeitalters bewusst. Ich hatte richtig Gänsehaut, als mir das erste Mal die ganze Tragweite des Systems „Blockchain“ bewusst wurde. Was wäre, wenn seit Beginn der Zivilisation alle Geldflüsse lückenlos dokumentiert worden wären? Wenn von der Erschaffung des Geldes bis zum heutigen Tag alle wirtschaftlichen Transaktionen in Echtzeit aktualisiert worden wären? Ich wage zu behaupten, wir wären eine völlig andere Gesellschaft. Ist schon die Geldschöpfung für viele ein Mysterium, doch richtig kompliziert wird es bei Finanzinstrumenten wie Derivaten, CDOs, CFDs, Futures, Optionen, Swaps und für was sind eigentlich Hebel gut? Wenn alle Transaktionen transparent wären, von der ersten Sekunde an, wären wir so, wie wir sind? Wenn in Zukunft jedes neu geschaffene Objekt, vom Abbau des Rohstoffs, über Herstellung bis zur Distribution, jeder einzelne Schritt nachvollziehbar als Transaktion auf einer Blockchain für die Ewigkeit gespeichert ist, werden wir uns verändern? Vielleicht kannst Du nun nachvollziehen, warum nicht alle von Blockchain begeistert sind.
Die Block-Kette besteht wie gesagt aus Blöcken. Ein Block ist eine Informationseinheit, nummeriert und aufgereiht in einer Kette. Ein Block ist in verschiedene Bereiche unterteilt. Es gibt einen Kopfbereich oder Header, einen Bereich mit Metadaten sowie einen Bereich für die Transaktionen. In einem Block kann zum Beispiel nur eine Transaktion stehen (wie bei Bitcoin Block 1 bis 180) oder hunderte oder tausende Transaktionen. Zur Erinnerung für die Beginner: eine Transaktion ist nichts anderes wie: heute am Tage „xy“, zur Uhrzeit „blabla“ gebe ich dir eine ganze Banane, von meinem Schließfach-Nummer „so-und-so“, in dein Schließfach-Nummer „so-und-anders“.
Transaktionen bestehen aus einem oder mehreren sendenden Adressen und empfangenden Adressen, immer dargestellt als Hashes. In einem Blockchain-Tracker sind alle diese Adressen und Transaktionen „Links“. Man kann sich durchklicken und somit direkt im Browser nachvollziehen, wer, wem, was, wann „überwiesen“ „gesendet“ oder „zugewiesen“ hat.
Auffällig ist die jeweils erste Transaktion eines Blocks. Hier steht in der Regel die Meldung „Keine Eingänge – neu generierte Münzen“.
Man nennt das auch Coinbase-Transaktion, dabei handelt es sich um eine Sendung des Block Rewards (der Belohnung) für den Miner. Es werden dabei keine Coins von/nach transferiert, sondern neue Coins geschaffen, generiert, geschöpft (im nächsten Abschnitt „Bergarbeiter“ gehe ich sofort näher auf die Miner ein).
Auch Transaktionen verfügen über Datenfelder wie Blocknummer, Datum, Größe oder Anzahl der Ein- und Ausgangskonten sowie Hashes von sich selbst und der vorangegangen beziehungsweise folgenden Transaktion. Bei der Betrachtung der technischen Grundstruktur von Blöcken einer Blockchain kommt mir immer wieder in den Sinn, auch Blockchain kocht nur mit Wasser. Wer versteht, wie Datenbanken funktionieren, versteht auch die Arbeitsweise von Blockchain-Datenbanken sehr schnell. Die durchschnittliche Anzahl an Transaktionen in einem Block der Bitcoin Blockchain ist im Jahr 2020 ungefähr zwischen 1.500 und 2.500 Einträge pro Block (mit einigen Ausreißern nach oben oder unten).
Die Block-Informationen sind Daten wie Erstellungsdatum, Größe oder Anzahl der Transaktionen und die Hashes, die wiederum für die Integrität der Datenbank sorgen. Da im aktuellen Block immer der Hash des vorherigen Blocks mit verarbeitet wird, ist die Integrität der Kette gesichert. Es kann kein Block-Hash geändert werden, ohne den Block davor und natürlich alle nachfolgende Blöcke zu verändern. Warum?
Einfach erklärt, wenn ein Block fertig ist, wird er durch den Fleischwolf gedreht und das Ergebnis ist ein Hash. Dieser Hash bleibt auf immer und ewig gleich, sofern alle Blöcke vorher gleich bleiben. Warum?
Tja, machen wir doch einmal gemeinsam einen Versuch. Das könnte das große AHA-Erlebnis sein:
Öffne in deinem Browser einen SHA256 Generator. Wir haben ja schon mit dem Wort „Mensch“ damit ein wenig herumgespielt. Wenn Du nun in deinen geöffneten SHA256 Generator
Block 100
(Achtung: das „B“ von Block groß geschrieben und zwischen dem Wort Block und der Zahl 100 einmal Leertaste bitte)
eintippst, bekommst Du folgenden Hash:
53fa7f9669eb0f33f016f4c5cb8db99796a2abee4143467d456e1a7cac4cc7a2
„Block 100“ ist nur ein Platzhalter für alle Informationen in diesem Block. Wir könnten auch anstatt „Block 100“ alle Informationen detailliert eingeben, wie Du sie im Block-Explorer betrachten konntest:
Das ist der Block Nummer 100, erstellt am Sonntag den 07.01.2019 um 14:30 Uhr, der Block beinhaltet 218 Transaktionen, welche ich hier aufliste: Transaktion Nummer eins, durchgeführt am 07.01.2019 um 14:25:15, eine Banane von der Adresse so-und-so zur Adresse so-und-anders, und so weiter, denn nun folgt die genaue Beschreibung aller 218 Transaktionen in diesem Block … alle Transaktionen in allen Details.
Am Ende steht immer ein Hash mit 64 Stellen, egal ob es sich um eine Transaktion mit allen Details oder tausende Transaktionen mit allen Details handelt.
Jetzt kopier dir einmal diesen Hash von „Block 100“:
53fa7f9669eb0f33f016f4c5cb8db99796a2abee4143467d456e1a7cac4cc7a2 und füge diesen Hash in den SHA256 Generator in das Eingabefeld ein. Achtung: achte darauf, dass Du einen SHA256 Generator verwendest, der Kleinbuchstaben und nicht Großbuchstaben erzeugt, denn wenn wir nun den Hash hashen – kein Druckfehler, der Hash wird gehasht – ist es sehr wohl relevant, ob Klein- oder Großbuchstaben verwendet werden.
Bevor Du nun aber den Hash zu einem Hash verarbeitest (würde natürlich auch funktionieren, aber wir wollen etwas anderes), schreibe in einer neuen Zeile
Block 101 (wieder B von Block groß geschrieben und zwischen dem Wort Block und der Zahl 101 ein Leerzeichen)
Im Eingabefeld des SHA2566 Generators steht nun somit:
53fa7f9669eb0f33f016f4c5cb8db99796a2abee4143467d456e1a7cac4cc7a2
Block 101
Wie bereits vorher ist Block 101 nur der Platzhalter für alle Informationen womöglich tausenden, mit allen Details in diesem Block. Nun wird der Hash des Blocks 100 mit „Block 101“ gehasht.
Das Ergebnis sollte so aussehen:
862b1744be8440f534f9090f917526ffe261ea0b05af347ef7de708a61c542aa Nun kannst Du diesen neuen Hash wieder in das Eingabefeld deines SHA256 Generators einfügen und darunter in einer neuen Zeile
Block 102
eingeben. Dann wird der Hash mit den Informationen des Block 102 gehasht und es gibt wieder einen neuen Hash. Uns so weiter.
Wenn nun in dieser Kette, welche hunderttausende von Blöcken umfassen kann, mit wiederum Millionen Transaktionen, mit wiederum Millionen von Detailinformationen einmal eine klitzekleine Information geändert wird, sei es nur ein Beistrich, ändern sich alle Hashes danach.
Du kannst das ja gerne mit deiner Blockchain machen, nur ist dann deine Blockchain im Vergleich mit den tausenden Blockchains im Netzwerk verschieden. Du fliegst sofort auf, sofern Du nicht mehr als 51 % der Teilnehmer, also 51 % der Blockchains, also 51 % der Datenbanken, somit Millionen von Datenbanken, genauso wie deine, binnen Sekunden „veränderst“ ?!?!
Warum eine solche „Attacke“ an eine Blockchain so unmöglich ist, wird ein wenig später noch genauer beschrieben. Zuvor müssen wir uns noch mit den „Bergarbeitern“, den Minern und deren Rolle beschäftigen.