Kapitel 1. Die Ursprünge der Blockchain-Technologie
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Der Begriff Blockchain mag für Uneingeweihte geheimnisvoll oder sogar beängstigend klingen. Seine wörtliche Bedeutung - eineKette von Informationsblöcken - istvielleicht die einfachste Art, Blockchain zu erklären. Aber wozu ist sie da? Warum braucht jemand eine Blockchain?
Um die Antwort zu finden, müssen wir in eine frühere Zeit zurückblicken, genauer gesagt in die Anfangszeit des Internets. Im Internet geht es um die Speicherung und Verteilung von Informationen an eine große Anzahl von Menschen. Die Blockchain verfolgt ein ähnliches Ziel und baut auf früheren Experimenten auf, die nach Möglichkeiten suchten, diese Verteilung zu verbessern.
Elektronische Systeme und Vertrauen
Bevor Blockchain, Kryptowährung oder die Systeme, die sie nutzen, jemals Realität werden konnten, musste das Internet auf zuverlässige und verteilte Weise existieren und von vielen Menschen genutzt werden. In seinen Anfängen in den 1960er Jahren war das Internet ein einfaches, relativ kleines Netzwerk, das vor allem von Universitätsforschern und der US-Regierung für den digitalen Informationsaustausch genutzt wurde.
Im Laufe der Zeit machten die frühen Internetpioniere das System immer benutzerfreundlicher. Die größten Auswirkungen hatte die Entwicklung von TCP/IP, das einen Standard für die Kommunikation etablierte, HTTP, das das Surfen im Internet ermöglichte, und SMTP, das elektronische Post verschickte. Diese Protokolle machten das Internet nicht nur für Forscher/innen, sondern für alle zugänglich, und zwar auf immer mehr Geräten, darunter Computer und später auch Tablets und Smartphones.
Die Entwicklung des Internets hat das Leben für immer verändert: Unglaublich viele Informationen und Dienstleistungen sind jetzt für jedermann zugänglich, vieles davon kostenlos. Für die Nutzung der meisten Online-Produkte und -Dienstleistungen ist jedoch eine Person oder Einrichtung erforderlich, die als vertrauenswürdiger "Gatekeeper" fungiert, also ein Dritter. Diese Systeme erfordern zwei Arten von Vertrauen:
- Intermediäres Vertrauen
- Man verlässt sich darauf, dass eine dritte Partei rationale und faire Entscheidungen trifft.
- Emissionstreuhand
- Eine dritte Partei ist darauf angewiesen, die Sicherheit eines Wertes zu gewährleisten.
Finanztransaktionen sind ein wichtiger Bereich, in dem man sich auf dieses Vertrauen verlassen kann, da das meiste Geld digital geworden ist. Aus verschiedenen Gründen ist die Verwendung von Papiergeld oder staatlich ausgegebenem Bargeld rückläufig - die Menschen nutzen heute mehr denn je elektronische Finanzinstrumente wie Debit- und Kreditkarten. In einigen Ländern, wie z. B. Schweden, sind die Zahlungssysteme fast vollständig elektronisch, wobei die meisten Kunden Smartphones und Karten an der Kasse benutzen. Doch während für die Verbraucher/innen die Verlagerung der Zahlungsschnittstellen von physisch zu digital ein relativ neuer Trend ist, sind die Systeme, die diese Abrechnung ermöglichen, schon lange elektronisch. Obwohl Bargeld für die meisten Menschen immer noch leicht zugänglich ist, ist das Geld weitgehend von Papier und Münzen zu bloßen Zahlen in einem Computersystem geworden, ohne dass es viele Menschen überhaupt bemerken.
Wenn Werte von physischen Gegenständen in eine Datenbank übertragen werden, muss zwischen den verschiedenen Beteiligten ein gewisses Vertrauen bestehen. Riesige Zahlungsunternehmen auf der ganzen Welt wurden auf der Grundlage der Idee gegründet, dass Menschen, die Werte digital speichern, diesen Marken vertrauen können. Vertrauen war jedoch nicht immer ein verlässlicher Faktor im Finanzwesen. Die Finanzkrise von 2008 ließ die Menschen innehalten und viele begannen zu denken, dass blindes Vertrauen in Finanzinstitutionen vielleicht doch nicht das ist, was es zu sein scheint.
Tipp
Blockchain ist ein Versuch, verlorenes Vertrauen wiederherzustellen. Sie nutzt Technologie - insbesondere Kryptografie - um das Vertrauen in eine dritte Partei zu automatisieren und zu stärken.
Bitcoin war das erste funktionierende System, das eine Blockchain verwendete. Doch bevor es Bitcoin gab, haben mehrere Vorgänger versucht, ähnliche Konzepte zu entwickeln - und sind damit gescheitert. Einer der Hauptgründe für ihr Scheitern war die Unfähigkeit, ein wirklich verteiltes System im Internet aufzubauen.
Verteilt versus zentralisiert versus dezentralisiert
Das Internet ist heute eine Mischung aus zentralisierten und verteilten Anwendungen, obwohl es als verteilte Technologie konzipiert wurde. Anstatt eine zentralisierte Struktur mit einem einzigen Ausfallpunkt aufzubauen, wollten die frühen Internet-Architekten ein widerstandsfähigeres System schaffen. Die Idee für ein verteiltes Internet entstand aus dem (vom Militär inspirierten) Ziel, sicherzustellen, dass bei einem Angriff auf einen Teil des Systems dieser immer noch funktioniert, wenn er richtig verteilt ist.
Bei einem Fahrradrad (siehe Abbildung 1-1) sind viele Speichen mit einer einzigen Nabe (der Achse) verbunden. Diese Konstruktion ermöglicht einen verteilten Ansatz - wenn einige Speichen kaputt sind, kann das Rad immer noch funktionieren. Verteilt bedeutet, dass kein einziger Ausfallpunkt ein ganzes System zum Einsturz bringen kann, wie z. B. das Computernetzwerk, das die ersten Versionen des Internets versorgte.
Das frühe Internet, wie es vor Jahrzehnten konzipiert wurde, wurde verteilt, um das Netzwerk vor jeder Art von Störung zu schützen, und dieses System hat sich bis zum heutigen Tag bewährt. In jüngerer Zeit haben zentralisierte Unternehmen wie Google, Facebook, Apple und Amazon das Internet weitgehend dominiert. Einige hoffen, dass die dezentrale Natur der Blockchain-Technologie dazu beitragen könnte, die Dominanz dieser wenigen mächtigen Unternehmen im Internet zu verringern, indem sie den einzelnen Nutzern mehr Kontrolle gibt - ein Thema, das später in diesem Buch behandelt wird.
Im Bereich der Informatik ist ein verteiltes System ein System, bei dem die Verarbeitung nicht nur auf einem Computer stattfindet. Vielmehr werden die Berechnungen auf eine Reihe von Rechenressourcen verteilt. Diese Systeme kommunizieren miteinander über eine Art von Nachrichtenaustausch. Abbildung 1-2 veranschaulicht einige unterschiedliche Netzwerkdesigns. Ein verteiltes System zeichnet sich durch Dezentralisierung aus, da der Ausfall einer einzelnen Einheit (oder eines Knotens) nicht den Ausfall des gesamten Netzwerks bedeutet. Das gemeinsame Ziel ist es, die Rechenleistung zu nutzen, um gemeinsam eine Aufgabe zu bewältigen, indem die Verantwortung auf viele Computer verteilt wird. Durch die Dezentralisierung ändert sich jedoch das Konzept der gemeinsamen Ziele und der Nachrichtenübermittlung. In einem vollständig dezentralisierten System arbeitet ein bestimmter Knotenpunkt nicht unbedingt mit jedem anderen Knotenpunkt zusammen, um sein Ziel zu erreichen, und die Entscheidungsfindung erfolgt durch eine Form des Konsenses, anstatt dass die Verantwortung in den Händen einer einzelnen Einheit liegt.
Die Abbildungen 1-3 bis 1-5 veranschaulichen die Unterschiede zwischen zentralen, verteilten und dezentralen Systemen in Form von Datenbanken, die Informationen speichern.
Bitcoin-Vorgänger
Die Allgegenwart des Internets hat disruptiv und viele Branchen verändert. Um nur einige Beispiele zu nennen: In den letzten Jahrzehnten hat Wikipedia Enzyklopädien mehr oder weniger ersetzt, Craigslist hat den Platz von Zeitungskleinanzeigen eingenommen und Google Maps hat gedruckte Atlanten weitgehend überflüssig gemacht.
Dennoch konnte die Finanzbranche den turbulenten Veränderungen durch das Internet eine ganze Weile widerstehen. Vor 2009, als Bitcoin auf den Markt kam, hatte sich die Kontrolle über das Geld nicht viel verändert, abgesehen von der Umstellung der Nutzer/innen von analoger (physischer Währung und Scheckbüchern) auf digitales (elektronisches Banking). Aufgrund dieser Umstellung war die Idee des digitalen Geldes ein vertrautes Konzept, aber die Kontrolle war immer noch zentralisiert.
Viele Vor-Bitcoin-Konzepte wurden ausprobiert, bevor sie schließlich aus verschiedenen Gründen fehlschlugen, aber das letztendliche Ziel war immer dasselbe: mehr finanzielle Souveränität oder eine bessere Kontrolle der Nutzer über ihr Geld. Ein Blick auf einige der frühen Fehlschläge kann die Gründe für die wachsende Popularität von Bitcoin deutlicher machen.
DigiCash
DigiCash wurde 1989 von David Chaum gegründet und war ein Unternehmen, das anonyme digitale Zahlungen im Internet ermöglichte. Chaum ist der Erfinder der Blindsignatur-Technologie, die den Einsatz von Kryptografie zum Schutz der Privatsphäre bei Online-Zahlungen vorsah. Die Kryptografie nutzt auf Verschlüsselung basierende Mathematik, um sensible Informationen zu verschleiern, und wird seit langem von Regierungen weltweit als Kommunikationsmittel eingesetzt. In Kapitel 2 werden Kryptografie und Verschlüsselung etwas ausführlicher behandelt.
Die Plattform DigiCash hatte ihre eigene Währung, die sogenannten Cyberbucks. Wer sich für den Dienst anmeldete, erhielt 100 Dollar in Cyberbucks, die oft auch als Token oder Münzen bezeichnet wurden. Das Unternehmen leistete Pionierarbeit bei der Entwicklung von sicheren Chipkarten mit Mikrochip, ähnlich dem System, das heute in den meisten Kreditkarten verwendet wird. Es war auch ein Vorreiter in Bezug auf das Konzept einer digitalen Geldbörse zur Speicherung von Werten - indiesem Fall von Cyberbucks.
Einige Banken, darunter die Deutsche Bank, haben DigiCash-Systeme getestet. Eine Handvoll Händler meldete sich ebenfalls, um Cyberbucks zu akzeptieren, darunter der Buchverlag Encyclopaedia Britannica. In den 1990er Jahren war der Handel im Internet noch sehr neu, und aufgrund von Betrugsbedenken zögerten die meisten Menschen, Kreditkarten im Internet zu benutzen, geschweige denn ein völlig neues Zahlungssystem einzuführen. Viele datenschutzbewusste Nutzerinnen und Nutzer begannen jedoch, Cyberbucks zu verwenden, und entwickelten sogar einen Mailinglisten-Marktplatz, der eine Zeit lang in Betrieb war. Aufgrund des Mangels an Händlern konnte sich das System jedoch nie durchsetzen, und DigiCash meldete 1998 schließlich Konkurs an.
E-Gold
E-Gold war ein digitales Wertaufbewahrungsmittel, das 1996 eingeführt wurde und mit echten Edelmetalleinheiten unterlegt war. Das von einem Unternehmen namens Gold & Silver Reserve betriebene E-Gold ermöglichte sofortige Überweisungen zwischen seinen Nutzern über das Internet. Alles auf der Plattform wurde in Einheiten von Gold oder anderen Edelmetallen ausgedrückt. Im Jahr 2006 gab es bereits über 3,5 Millionen E-Gold-Konten. Zu dieser Zeit wickelte das Unternehmen täglich ein Volumen von 5,9 Millionen Dollar ab.
Mit Stückelungen bis zu einem Zehntausendstel Gramm Gold war die Plattform die erste, die das Konzept der Kleinstzahlungen oder der Überweisung winziger Wertbeträge im Internet einführte. Für die damalige Zeit innovativ, bot E-Gold Entwicklern auch eine API, die es anderen ermöglichte, zusätzliche Dienste auf der Plattform zu entwickeln. Händler akzeptierten E-Gold als Zahlungsmittel neben Kreditkarten in Online-Warenkörben. Die Unterstützung für mobile Zahlungen wurde 1999 eingeführt.
E-Gold war in den 1990er und frühen 2000er Jahren technologisch genial, was seine Funktionen anging. Allerdings war das System von Anfang an mit Problemen behaftet, die schließlich zu seinem Untergang führten. Als zentralisiertes System hatte es keinen Mechanismus, um Konten mit der Identität einer Person zu verknüpfen. Daher wurde die Plattform für schändliche Zwecke genutzt, um Geldwäsche, Online-Betrug und andere illegale Aktivitäten zu ermöglichen. Die US-Regierung schloss E-Gold 2008, beschlagnahmte das Vermögen und führte ein Rücknahmesystem für Kontoinhaber ein.
Hashcash
Erfunden von Adam Back im Jahr 1997, führte Hashcash die Idee ein, die Gültigkeit digitaler Gelder mit Hilfe von Proof-of-Work zu verifizieren , einschließlich des Konzepts von Geld, das ausschließlich im Internet existiert. Proof-of-Work bedeutet, dass Computer eine überprüfbare, rechenintensive Leistung erbringen müssen, damit elektronisches Geld überhaupt einen Wert hat(in Kapitel 2 wird dies näher erläutert). Hashcash nutzt Kryptografie, um den Proof-of-Work zu ermöglichen, und Back schlug vor, dafür einen Algorithmus namens SHA1 zu verwenden.
In seinem ursprünglichen Vorschlag für Hashcash verwies Back auf DigiCash und stellte die Idee auf, dass eine Gebühr oder ein "Porto" für E-Mails mit digitalisierter Währung Spam reduzieren könnte. Durch die Verwendung eines Hashes oder einer Funktion, die von einem Computer verarbeitet werden muss, würde Hashcash eine wirtschaftliche Gebühr erheben, die Spam in E-Mail-Systemen einschränken würde. Für digitale Währungen würde das Konzept der Hashes das so genannte "Double Spend"-Problem lösen , bei dem eine digitale Einheit wie eine Datei kopiert und somit mehr als einmal ausgegeben werden kann. Computer machen es schließlich leicht, Dateien zu duplizieren; jeder kann eine Bilddatei kopieren und sie immer wieder reproduzieren. Die Verwendung von Hashing soll diese Möglichkeit bei digitalem Geld einschränken, indem es durch Proof-of-Work, also Rechenleistung, einen Preis auferlegt.
Obwohl Hashcash in E-Mail-Systemen von Microsoft und dem Open-Source-Softwareanbieter Apache getestet wurde, kam es nie zum Einsatz. Vom Konzept her war Hashcash ein großartiges Beispiel dafür, wie man die digitale Knappheit einführen kann, die für internetbasiertes Geld erforderlich ist, aber die Technologie selbst war nicht wirklich eine gute Form der digitalen Währung.
B-Geld
Das 1998 von Wei Dai vorgeschlagene B-Money ( ) stellte das Konzept vor, die Computerwissenschaft zu nutzen, um die Geldschöpfung außerhalb staatlicher Systeme zu erleichtern. Wie Hashcash schlug B-Money vor, dass digitales Geld durch Berechnungen oder Proof-of-Work erzeugt werden kann. Ähnlich wie Adam Back schlug Wei vor, dass die Kosten für die Schaffung von digitalem Geld anhand der Computerleistung berechnet werden könnten, die für die Geldschöpfung benötigt wird. Der Preis dieses digitalen Geldes würde sich an einem Korb realer Vermögenswerte wie Gold und anderen Rohstoffen orientieren und in seiner Menge begrenzt sein, um es vor Inflation oder Wertverlust zu schützen.
B-Money entwickelte die Idee, Transaktionen an ein Netzwerk zu senden. Wenn zum Beispiel eine Partei eine andere bezahlen möchte, wird eine Nachricht an das Netzwerk gesendet, in der es heißt: "Person 1 sendet $X an Person 2". Das System wäre über ein System von digitalen Verträgen durchsetzbar. Diese Verträge würden theoretisch zur Beilegung von Streitigkeiten verwendet werden, ähnlich wie Kreditkartenunternehmen mit Problemen wie Betrug umgehen. Dieses System würde Kryptographie anstelle eines zentralen Systems für die Zahlungen und die Durchsetzung von Verträgen verwenden, so dass die Nutzer/innen des Netzwerks anonym bleiben könnten; eine Identität wäre nicht erforderlich.
Das Konzept von B-Money vereint eine Reihe von Komponenten des digitalen Geldes. Es nutzte die Idee von Verträgen, um einem anonymen und verteilten System Ordnung zu verleihen. Und es führte das Konzept des Proof-of-Work ein, um Geld zu schaffen. Allerdings war B-Money hauptsächlich eine theoretische Übung von Wei. Sein Ziel war es, das Konzept eines nicht-staatlichen Geldes zu erforschen, das nicht durch eine kontrollierte Geldmenge inflationiert werden kann.
Bit Gold
Die Idee hinter Bitgold wurde 2005 von dem Informatiker Nick Szabo entwickelt, um die Knappheit von Edelmetallen in die digitale Welt zu übertragen. Szabo wies darauf hin, dass Materialien wie Gold zwar einen Wert haben, aber aufgrund ihrer Seltenheit und der Fixkosten für den Abbau und den Transport nur sehr schwer zu fälschen sind. Er wollte den Wert des Goldes in eine digitale Form bringen.
Szabos Idee entstand nach dem Aufkommen von E-Gold, das Gold zur Sicherung digitaler Werte verwendete. Sein Entwurf verwendete jedoch eine Art "Client-Puzzle-Funktion" für den Proof-of-Work. Das System schlug vor, einen "Challenge String" zu verwenden, der auf dem Computer eines Nutzers erstellt und dann sicher mit einem Zeitstempel versehen wird, und zwar auf verteilte Weise. Dieser wird dann an ein "verteiltes Eigentumsregister" übermittelt, um einen digitalen Eigentumsnachweis zu erbringen.
Wie die meisten von Szabos Ideen war auch Bitgold hauptsächlich eine intellektuelle Übung. Szabo hatte mit Bitgold eindeutig eine vertrauenslose Version von E-Gold im Sinn.
Das Bitcoin-Experiment
Im Jahr 2008 verließ sich die Welt bereits auf das Internet als verteilte Einheit für eine große Anzahl von Diensten. Mit elektronischen Karten und GPS-Apps nutzten die Menschen das Internet, um von A nach B zu kommen. E-Mail, SMS, Skype, WhatsApp und andere Kommunikations-Apps ermöglichten fast sofortige Verbindungen mit Freunden und Familie in nah und fern.
Außerdem kauften die Menschen immer mehr Waren und Dienstleistungen online und nicht mehr in Geschäften. Kredit- und Debitkarten wurden zu beliebten Zahlungsmitteln, ebenso wie PayPal und andere Dienste. Wie im vorigen Abschnitt erwähnt, wünschten sich viele jedoch immer noch eine fälschungssichere, verteilte Methode, um Werte über das Internet zu übertragen - und erstaunlicherweise war diese noch immer nicht erfunden worden.
Die Finanzkrise 2008
Zu Beginn des Jahres 2006 brummte die Weltwirtschaft vor sich hin. Es war eine Zeit des Wirtschaftswachstums, aber in diesem Jahr zeigten sich erste Risse im Finanzsystem. Auf dem US-Immobilienmarkt kam es zum ersten Mal zu einem Wertverfall, da die Regeln für die Kreditvergabe so locker geworden waren, dass viele Kreditnehmer ihre Verpflichtungen nicht mehr erfüllen konnten.
Dies führte dazu, dass die Banken in Bedrängnis gerieten, weil sie Hypotheken und andere wackelige Kredite in private Wertpapiere zerhackt hatten, die wie Aktien oder Anleihen unter den Finanzinstituten gehandelt und gehalten wurden. Als sich viele dieser Wertpapiere als wertlos herausstellten, brach das Finanzsystem zusammen und die Regierungen auf der ganzen Welt mussten Geld in das System pumpen, um die Weltwirtschaft zu retten.
In den USA waren die modernen Immobilienblasen durch die Anhebung der Zinssätze durch die Federal Reserve kontrollierbar, wie Abbildung 1-6 zeigt. Die Krise von 2008 konnte jedoch nicht kontrolliert werden, was wohl an der mangelnden Transparenz des Finanzsystems lag.
Warum ist dieser Teil der Finanzgeschichte für die Diskussion über Bitcoin so wichtig? Denn obwohl viele der Konzepte und Technologien, die Bitcoin zugrunde liegen, bereits 2008 existierten, hatte noch niemand alle Teile früherer E-Geld-Konzepte zusammengefügt, um ein System zu schaffen, das digitales Vertrauen und Transparenz ermöglicht.
Das Whitepaper
Auf 18. August 2008 wurde die Domain bitcoin.org registriert. Am 31. Oktober 2008 wurde ein Whitepaper veröffentlicht, das von einer Person oder einer Gruppe unter dem Pseudonym Satoshi Nakamoto verfasst und auf zahlreichen Mailinglisten für Softwareentwickler/innen verbreitet wurde. Unter dem Titel "Bitcoin: A Peer-to-Peer Electronic Cash System" (Bitcoin: Ein elektronisches Peer-to-Peer-Bargeldsystem) enthielt das Papier einen detaillierten Vorschlag zur Schaffung eines Wertesystems, das nur im Internet existiert. Ziel war es, eine digitale Währung zu schaffen, die ohne Verbindung zu einer Bank oder einer Zentralregierung funktioniert, und ein transparenteres Finanzsystem aufzubauen, das verhindern kann, dass sich die katastrophalen Ereignisse der Finanzkrise jemals wiederholen.
Der Bitcoin-Vorschlag enthielt eine Reihe von Ideen aus den Vorgängersystemen. Dazu gehören:
-
Sichere digitale Transaktionen, wie die von Nick Szabo skizzierten Smart Contracts
-
Verwendung von Kryptographie zur Sicherung von Transaktionen, wie bei DigiCash
-
Die theoretische Möglichkeit, kleine Beträge von gesichertem Wert zu versenden, wie es bei E-Gold der Fall war
-
Die Schöpfung von Geld außerhalb staatlicher Systeme, wie B-Money es vorgeschlagen hatte
-
Verwendung von Proof-of-Work zur Überprüfung der Gültigkeit digitaler Gelder, wie es bei Hashcash vorgesehen ist
In dem Whitepaper wurden auch mehrere Konzepte vorgestellt, die für viele Menschen neu waren, darunter:
- Doppelte Ausgaben
- Das Risiko, dass eine Währungseinheit durch gefälschte Duplikation mehr als einmal ausgegeben wird.
- Proof-of-work
- Ein mathematisches Problem, das mit Hilfe von Rechenleistung gelöst werden muss.
- Hashes
- Es wird eine Ausgabe mit fester Länge erzeugt, so dass Daten unterschiedlicher Größe und Reihenfolge organisiert werden können.
- Nonces
- Eine Zufallszahl wird verwendet, um sicherzustellen, dass eine bestimmte Kommunikation nur einmal verwendet werden kann.
Einführung in den Zeitstempel-Server
Neben der Verwendung von Proof-of-Work zur Sicherung des Bitcoin-Netzwerks schlug Satoshi ein Zeitstempelsystem vor, um Transaktionen zu verifizieren, ähnlich wie bei Dateisystemen und Datenbanken. Wenn man die Informationen, die bei einer Transaktion erzeugt werden, durch einen Hash-Algorithmus laufen lässt, entsteht eine feste Folge von Zahlen und Buchstaben, die als Hash bekannt ist. Für Bitcoin schlug Satoshi den SHA-256-Algorithmus vor, der in der Kryptografie weit verbreitet ist.
Hier ist ein Beispiel:
keccak256("hello") = 1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8
Hier ist das wieder mit einer kleinen Änderung:
keccak256("hello1") = 57c65f1718e8297f4048beff2419e134656b7a856872b27ad77846e395f13ffe
Die Verwendung eines Hashes zum Speichern von Informationen ist auch wichtig, wenn es darum geht, große Mengen an Informationen zu erhalten. Wie in diesem Beispiel zu sehen ist, geben verschiedene Eingaben eine eindeutige Zeichenkette mit fester Länge aus, wenn sie gehasht werden. Das macht es einfacher, auf gespeicherte Daten zu verweisen, die über einen Hash abgerufen werden können.
Speichern von Daten in einer Kette von Blöcken
Bei dem Modell, das auf einer Münzanstalt basiert, verwendet eine Regierung oder eine zentrale Behörde die üblichen Buchhaltungspraktiken, um die Transaktionen zu verfolgen. Im Bitcoin-Whitepaper wird das Konzept der Verfolgung von Transaktionen mithilfe einer Kette von Signaturen oder Hashes vorgestellt. Diese sind nach Zeitblöcken in chronologischer Reihenfolge geordnet.
Mit diesem System wird im Wesentlichen eine Rechnungseinheit geschaffen, die keine einzelne Instanz benötigt, um die Transaktionen zu verfolgen. Stattdessen nutzt die Blockkette oder Blockchain kryptografisches mathematisches Vertrauen, um die Transaktionen in einem digitalen System zu verfolgen. Das Netzwerk benötigt keine komplexe Struktur, da es ein Peer-to-Peer-System verwendet, um diese Blockketten zu verifizieren und zu veröffentlichen. Im Grunde genommen braucht es eine verteilte Datenstruktur für die Speicherung und ein Protokoll für ein Nachrichtensystem, das ein öffentliches Netzwerk im Internet bildet. Wie in Kapitel 2 näher erläutert, besteht eine Blockchain aus mehreren Blöcken mit Transaktionen, die durch Hashes miteinander verbunden sind. Obwohl viele Blockchains frei im Internet verfügbar sind, sind einige Blockchains nicht öffentlich - vor allem diejenigen, die in einigen Geschäftsbereichen verwendet werden (siehe Kapitel 9).
Das ist die Herausforderung, die Bitcoin lösen wollte: Wie können mehrere Parteien, die sich nicht kennen und einander nicht vertrauen, zusammenarbeiten? Bitcoin löst diese Herausforderung, indem es ein globales Hauptbuch führt, in dem alle Beteiligten sich darüber einig sind, welche Transaktionen gültig sind und bearbeitet werden sollten. Die Bitcoin-Blockchain ist das globale Hauptbuch, bei dem sich alle Parteien im Bitcoin-Netzwerk einig sind, dass es gültig und korrekt ist. Bei Unstimmigkeiten kann es zu einer Gabelung der Kette und der Erstellung eines neuen Stammes kommen, ein Thema, das in Kapitel 3 behandelt wird.
Hinweis
In einem Zahlungsnetzwerk ist ein Ledger ein sich ständig änderndes Dokument. Jedes Mal, wenn jemand eine Transaktion senden will, wird dem Ledger eine neue Datenzeile hinzugefügt. Bei Bitcoin wird etwa alle 10 Minuten ein neuer Block mit Transaktionen zu dem hinzugefügt, was man als Ledger bezeichnen kann.
Im Folgenden findest du wichtige Eigenschaften eines jeden Bitcoin-Blocks:
- Block Hash
- Ein eindeutiger Bezeichner für den Block. Der Block-Hash wird aus Eingabedaten generiert, die eine Momentaufnahme des aktuellen Zustands der Blockchain innerhalb von 256 Bit Daten darstellen. Dieser Schnappschuss ist wie eine technische Version einer Bilanz für die gesamte Bitcoin-Blockchain. Ein Bitcoin-Block enthält nicht seinen eigenen Blockhash, sondern den Hash des vorherigen Blocks, auf dem er aufbaut, was die Verkettung der Blöcke ermöglicht. Ein Block-Hash kann durch Hashing des Block-Headers ermittelt werden.
- Coinbase Transaktion
- Dies ist die erste Transaktion eines jeden neuen Blocks, der im Netzwerk geschürft wird. Sie fügt dem Vorrat neue Bitcoin hinzu, die dem Miner, der den Block zur Kette hinzufügt, als Belohnung gegeben werden. Auf die Miner wird in Kapitel 2 näher eingegangen.
- Blockhöhe Nummer
- Diese Zahl gibt an, wie viele Blöcke zwischen dem aktuellen Block und dem ersten Block in der Kette (auch bekannt als Genesis-Block) liegen.
- Merkle-Wurzel
- Dies ist ein Hash, der den Nachweis der Gültigkeit der Blockchain ermöglicht(in Kapitel 2 wird mehr über Merkle-Wurzeln erzählt).
Hinweis
Der Name eines Blockchain-Systems wird in der Regel als Eigenname verwendet, während die Rechnungseinheit ein normales Substantiv ist. So wird ein Kryptowährungsnetzwerk groß geschrieben ("Alice liebt die dezentralen Aspekte von Bitcoin"), aber eine Kryptowährungseinheit wird kleingeschrieben ("Alice hat zwei Bitcoin (oder Bitcoins) an Bob geschickt").
Abbildung 1-7 zeigt einen Bitcoin-Block.
Abbildung 1-8 veranschaulicht , warum es schwer wäre, eine vergangene Transaktion zu ändern.
Bitcoin zum Leben erwecken
Das ursprüngliche Bitcoin-Konzept , das 2008 in dem Whitepaper vorgestellt wurde, brachte Technologien aus den Bereichen Kryptografie, Datenschutz und verteiltes Rechnen zusammen, um Finanzplattformen neu zu überdenken. Es blieb jedoch noch viel zu tun, um diese Ideen in die Tat umzusetzen. Glücklicherweise glaubten einige Programmierer/innen, die sich der Open-Source-Software und den Idealen von Bitcoin verschrieben hatten, an sein Potenzial. Die nächste Aufgabe bestand darin, das Netzwerk zum Leben zu erwecken, und dafür waren die Bemühungen einiger früher Pioniere erforderlich.
Überzeugende Komponenten
Open-Source-Software bedeutet, dass sie nicht urheberrechtlich geschützt ist - jeder Entwickler kann den Quellcode einsehen und ihn verändern. Kryptowährungsnetzwerke wie Bitcoin sind nicht nur Open Source, sondern haben auch drei wichtige Komponenten, die sie einzigartig attraktiv machen:
- Wert
- Eine Rechnungseinheit, bitcoin (oft als BTC bezeichnet), wird verwendet, um Transaktionen im Hauptbuch, auch bekannt als Bitcoin-Blockchain, aufzuzeichnen.
- Vertrieb
- Wie im Bitcoin-Whitepaper beschrieben, verwendet das Bitcoin-Netzwerk dezentralisierte Knotenpunkte, um die Transaktionen aufzuzeichnen.
- Konsens
- Die Miner im Bitcoin-Netzwerk verwenden gemeinsam Proof-of-Work, um die Sicherheit und Stabilität dieser verteilten Aufzeichnung von Transaktionen zu gewährleisten.
Diese vier Komponenten zusammen machten Bitcoin besonders attraktiv für eine kleine Gruppe entschlossener Entwickler/innen, die gemeinsam ein belastbares und sicheres Modell für die Speicherung von Werten im Internet schaffen wollten. Obwohl Bitcoin nicht frei von Fehlern ist, gilt er als weitaus besser als frühere Versuche, eine vollständig digitale und verteilte Speicherung von Werten zu erreichen.
Einen Konsens erreichen
Am 3. Januar 2009 "schürfte" Satoshi Nakamoto die ersten 50 Bitcoins und nutzte die Rechenleistung, um den ersten Bitcoin-Block zu erstellen. Dieser erste Block in der Bitcoin-Blockchain, auch bekannt als Genesis-Block, bezog sich auf die Finanzkrise als Grund dafür, das Netzwerk ins Leben zu rufen. In der Coinbase, der Eingabe des Transaktionsinhalts, enthält der Genesis-Block diese Information:
The Times 03/Jan/2009 Chancellor on brink of second bailout for banks
Bitcoin ist ein verteiltes Netzwerk, was bedeutet, dass Menschen gebraucht wurden, die als Miner im System agieren. Also entwickelte Satoshi den ersten Bitcoin-Client. Der Client ermöglichte es den Nutzern, Nodes zu betreiben und Bitcoin-Blöcke zu schürfen. "Wenn du einen Knoten laufen lassen kannst, der eingehende Verbindungen akzeptiert, hilfst du dem Netzwerk sehr", schrieb Satoshi in der Nachricht, in der er die Software mit dem Titel "Bitcoin v0.1 released - P2P e-cash" veröffentlichte.
Eine Blockchain ist ein lebendiges, sich ständig aktualisierendes Dokument. Im Laufe der Zeit werden mehr und mehr Transaktionen hinzugefügt. Nutzer/innen eines zentralisierten Zahlungsnetzwerks wie PayPal vertrauen darauf, dass die zentrale Behörde das Hauptbuch mit neuen Transaktionen aktualisiert, wenn die Zeit vergeht. In einem dezentralen Zahlungsnetzwerk wie Bitcoin gibt es jedoch keine zentrale Behörde, sondern Tausende von anonymen Minern, die das Netzwerk betreiben.
Wem sollten die Nutzer also vertrauen, dass die Bitcoin-Blockchain mit einem neuen Block von Transaktionen aktualisiert wird? Um dieses Vertrauen zu gewinnen, muss ein Konsens erreicht werden. Es ist ein Prozess, den alle Miner, die das Netzwerk betreiben, für die folgenden zwei Zwecke nutzen:
- Block Entdeckung
- Um zu vereinbaren, welcher Miner das Recht erhält, einen Block von Transaktionen hinzuzufügen.
- Validierung von Transaktionen
- Zuzustimmen, dass die in diesem neuen Block enthaltenen Transaktionen rechtmäßig sind.
Die meisten Blockchains, die für Kryptowährungen verwendet werden, verfolgen einen von zwei Ansätzen, um einen Konsens zu erreichen(in Kapitel 2 werden diese näher erläutert):
-
Proof-of-work
-
Proof-of-Stake
Unternehmens-Blockchains verwenden andere Konsensmethoden, die in Kapitel 9 behandelt werden.
Kryptographie mit öffentlichem/privatem Schlüssel
Bitcoin verwendet die public/private key Kryptografie, um die Gültigkeit einer Transaktion zu beweisen. Private Schlüssel werden in Bitcoin verwendet, um Bitcoin-Transaktionen digital zu signieren. Auf diese Weise beweist der Besitzer einer Bitcoin-Adresse dem Netzwerk, dass er der rechtmäßige Besitzer dieser Adresse ist. Private Schlüssel autorisieren eine Transaktion. Sie werden geheim gehalten, ähnlich wie Passwörter.
Öffentliche Schlüssel werden in Bitcoin nur verwendet, um eine Bitcoin-Adresse zu generieren. Die Adresse ist im Wesentlichen eine komprimierte Version des öffentlichen Schlüssels, was sie etwas leichter lesbar macht. Eine Bitcoin-Adresse ist ein Wert, der öffentlich mit jedermann geteilt werden kann, normalerweise wenn man jemanden bittet, Bitcoin zu senden. In diesem Sinne ist sie ein bisschen wie eine E-Mail-Adresse.
Schlüssel generieren
Ein privater Schlüssel ist eine 256-Bit-Zahl, die nach dem Zufallsprinzip ausgewählt wird. Private Schlüssel werden fast immer im hexadezimalen Format angegeben. Der private Schlüssel wird von einem Computer generiert - die meisten Programmiersprachen verfügen über eine Funktion zur Zufallsgenerierung einer Zahl.
Ein privater Schlüssel kann mit einem öffentlichen Schlüssel gepaart werden, um Transaktionen im Bitcoin-Netzwerk durchzuführen. Ohne einen privaten Schlüssel ist es nahezu unmöglich, dies zu tun (mehr dazu in Kapitel 2). In der Kryptografie kann ein öffentlicher Schlüssel erzeugt werden, indem der private Schlüssel durch eine secp256k1-Funktion des Elliptic Curve Digital Signature Algorithm (ECDSA) geleitet wird. Ein Hash des öffentlichen Schlüssels wird dann erzeugt, indem der öffentliche Schlüssel durch die kryptografischen Funktionen SHA256 und RIPEMD160 geleitet wird. Die Bitcoin-Adresse wird generiert, indem zuerst 00 zum Hash des öffentlichen Schlüssels hinzugefügt wird und dieser Wert dann durch eine Base58Check-Funktion läuft. Abbildung 1-9 veranschaulicht dies.
Manche Leute benutzen einen Bitcoin-Client, der eine Option hat, um eine Adresse zu generieren, die bestimmten Regeln folgt:
-
Beginnt mit 1, 3, oder bc1
-
Der Rest des Strings ist zwischen 25-34 Zeichen lang
-
Gültige Zeichen sind 0-9, A-Z, und a-z
-
Die meisten Adressen enthalten kein l (Kleinbuchstabe L), I (Großbuchstabe i), O (Großbuchstabe o) oder 0 (Null), um visuelle Mehrdeutigkeiten zu vermeiden
Eine Alternative ist https://www.bitaddress.org, eine Website, die anhand der Mausbewegung eines Nutzers eine zufällige Adresse generiert; allerdings müssen die Nutzer darauf vertrauen, dass die Eigentümer der Website ihre privaten Schlüssel nicht aufzeichnen. Die meisten Menschen generieren eine neue Bitcoin-Adresse über eine Börse wie Coinbase, die dies mit ihrer internen Software für sie erledigt.
Transaktionen generieren
Bitcoin-Transaktionen folgen einer einzigartigen Art der Abrechnung, die UTXO genannt wird, was für unspent transaction output steht. Eine Transaktion ist im Grunde eine Liste von Eingängen und eine Liste von Ausgängen. Jeder Input identifiziert eine Bitcoin-Adresse, die als Geldquelle fungiert, sowie eine unverbrauchte Transaktion, die diese Adresse in der Vergangenheit erhalten hat. Sie enthält außerdem eine digitale Unterschrift, die beweist, dass der Besitzer dieser Adresse die Transaktion genehmigt hat. Jede Ausgabe identifiziert die Bitcoin-Adresse, die das Geld erhält, und den Betrag, den diese Adresse erhält.
Wir werden im nächsten Kapitel über die Struktur einer Bitcoin-Transaktion sprechen und all diese Konzepte genauer erläutern.
Eine frühe Anfälligkeit
Als neues Protokoll hatte Bitcoin anfangs mit einigen Problemen zu kämpfen. Es war nicht einfach zu benutzen, deshalb haben nicht viele Leute den Bitcoin-Client heruntergeladen. Einige der ersten Befürworter von Bitcoin waren diejenigen, die bereits einige der verwendeten Konzepte vorgeschlagen hatten. Dazu gehörten Wei Dai, der B-Money vorschlug, und Nick Szabo, dessen Bitgold-Konzept zu einer Menge Entwicklungen zur Sicherung von Transaktionen führte. Ein weiterer früher Bitcoin-Befürworter war Hal Finney, der die erste Bitcoin-Transaktion von Satoshi Nakamoto erhielt.
Weniger als zwei Jahre nach der Gründung von Bitcoin wurde eine große Sicherheitslücke gefunden. Am 6. August 2010 bemerkte ein Mitglied der Community eine ungewöhnlich große Ausgabetransaktion und postete darüber in einem beliebten Message Board. "Der 'value out' in diesem Block #74638 ist ziemlich seltsam", schrieb der Entwickler Jeff Garzik, da jemand versucht hatte, 91.979.000.000 aus dem Nichts zu schaffen. Beispiel 1-1 zeigt die Transaktion.
Beispiel 1-1. Eine abnorm große Bitcoin-Transaktion
CBlock(hash=0000000000790ab3, ver=1, hashPrevBlock=0000000000606865, hashMerkleR oot=618eba, nTime=1281891957, nBits=1c00800e, nNonce=28192719, vtx=2) CTransaction(hash=012cd8, ver=1, vin.size=1, vout.size=1, nLockTime=0) CTxIn(COutPoint(000000, -1), coinbase 040e80001c028f00) CTxOut(nValue=50.51000000, scriptPubKey=0x4F4BA55D1580F8C3A8A2C7) CTransaction(hash=1d5e51, ver=1, vin.size=1, vout.size=2, nLockTime=0) CTxIn(COutPoint(237fe8, 0), scriptSig=0xA87C02384E1F184B79C6AC) CTxOut(nValue=92233720368.54275808, scriptPubKey=OP_DUP OP_HASH160 0xB7A7) CTxOut(nValue=92233720368.54275808, scriptPubKey=OP_DUP OP_HASH160 0x1512) vMerkleTree: 012cd8 1d5e51 618eba
Die Schwachstelle wurde daraufhin gepatcht und die Blockchain wurde "geforkt", um die Kette auseinanderzuziehen (mehr zu Forks in Kapitel 3). Der Fork sollte sicherstellen, dass die Blockchain die fehlerhafte Transaktion nicht widerspiegelt. Bis heute ist die 2010 entdeckte Schwachstelle die größte Sicherheitslücke in der Geschichte von Bitcoin und ein Beweis für die wachsende Stärke der Kryptowährungsgemeinschaft.
Adoption
Satoshis Verschwinden wird oft dafür verantwortlich gemacht, dass Bitcoin zu einer vollständig dezentralisierten Einheit wurde. Das liegt daran, dass der Schöpfer nicht mehr Teil des Systems ist, anders als bei Ethereum und anderen Blockchains, die dazu neigen, der Richtung ihrer Schöpfer und effektiven Führer zu folgen.
Es ist vielleicht kein Zufall, dass Bitcoin zum Zeitpunkt des Verschwindens gerade richtig in Fahrt kam. Die Gemeinschaft wuchs stetig. Der Informatiker Gavin Andresen, der nach Satoshis Abgang eine führende Rolle übernahm, entwickelte einen "Bitcoin-Hahn", der kleine Mengen an BTC ausgab, in der Hoffnung, die Akzeptanz zu erhöhen. Andresen hielt vor der CIA einen Vortrag über Bitcoin und wurde Chefwissenschaftler der inzwischen aufgelösten Bitcoin Foundation, einer frühen gemeinnützigen Organisation, die sich der Kryptowährung widmete.
Am 22. Mai 2010 soll der Programmierer Laszlo Hanyecz die erste Transaktion für eine Ware oder Dienstleistung mit Bitcoin getätigt haben. Er zahlte 10.000 BTC (damals etwa 25 Dollar) für die Lieferung von zwei Pizzen. Das Datum wird in der Community als Bitcoin Pizza Day gefeiert.
Im Juli 2010 begann Mt. Gox, eine Plattform, die ursprünglich vom Entwickler Jed McCaleb für den Tausch von Magic: The Gathering-Sammelkarten geschaffen wurde, den Tausch von Bitcoins anzubieten. Das Konzept des Umtauschs von Bitcoins in traditionelle Währungen gewann an Fahrt und heizte die Spekulationen und den anschließenden Preisanstieg an.
Zusammenfassung
Bitcoin war für die Entstehung der Blockchain-Technologie von grundlegender Bedeutung. Die technologischen Konzepte, auf denen sie basiert, und ihr Wachstum sind jedoch weder aus dem Nichts entstanden, noch geschahen sie über Nacht. Die meisten großartigen Ideen entstehen nicht in einem Vakuum. Das war bei Bitcoin nicht der Fall und bei Blockchain auch nicht.
Der derzeitige Reifegrad von Bitcoin beruht auf einer Reihe von Technologien, für deren Entwicklung engagierte Softwareentwickler/innen Jahrzehnte brauchten, und diese kollektive Anstrengung hat die Blockchain-Technologie dorthin gebracht, wo sie heute ist. Der Open-Source-Charakter von Bitcoin und die Community, die sich um ihn herum gebildet hat, haben ebenfalls zu seiner frühen Verbreitung beigetragen. Die grundlegenden Aspekte von Kryptowährungen stammen von Bitcoin - wir werden sie im nächsten Kapitel untersuchen.
Get Blockchain beherrschen now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.