Dave Hudson ist Vice President Software Architecture bei der Firma Peernova und Designer von Betriebssystemen, Netzwerkstacks, Compiler und Datenbanken. Er analysiert Bitcoin und "Cryptoledger-Systeme" auf seinem Blog Hashingit. com.

In diesem Artikel schaut Hudson auf Satosis Whitepaper zurück, um herauszufinden, was eine Blockchain ist, was sie nicht ist und was sie sein könnte ...

Wenn wir uns dem Jahr 2016 nähern, scheint es endlose Diskussionen darüber zu geben "Blockchain". Dieser Begriff wird immer häufiger sogar im Mainstream-Journalismus zitiert, während im FinTech-Bereich allein eine ganze Reihe von Möchtegern-Anbietern und Möchtegern-Nutzern behauptet, dass "Blockchain" eine Vielzahl von Anwendungen revolutionieren wird.

Dieser jetzt übliche Gebrauch legt nahe, dass es etwas genau Definiertes und gut Verstandenes sein muss, aber dies scheint eher eine Frage des Mantras als des Verständnisses zu sein.

Die Echokammern des Internets widerspiegeln viele Meinungen, aber Versuche, eine genaue Bedeutung zu finden, scheinen einen bestürzenden Mangel an Übereinstimmung zu finden. Um etwas mehr als Marketing-Übertreibung zu sein, brauchen wir wirklich die Antworten einige Fragen.

Was ist das? Was ist es nicht? Was könnte es sein? Kann es etwas sein, das uns erlaubt, neue und dauerhafte Systeme zu bauen? Kurz gesagt, was ist die Essenz von Blockchain?

Das Satoshi-Whitepaper

Fast jede Diskussion über Blockchains beginnt mit dem Satoshi-Whitepaper, aber gerade diese Grundlage versetzt uns auf den Weg der Verwirrung. Weder die Begriffe 'Blockchain' noch 'Block Chain' erscheinen dort; es gibt 67 Verwendungen von "Block" und 27 von "Kette", aber Null von "Blockkette" oder "Blockchain". Aber abgesehen davon, lassen Sie uns sehen, wohin dieser Ursprung uns führt.

Das Whitepaper ist kurz; es ist nur neun Seiten lang. Die erste Erwähnung von "Block" und "Kette" beginnt am Ende von Seite 2, Abschnitt 3, wo es einen grundlegenden Zeitstempel-Server gibt. Zuvor beschreibt das Whitepaper eine Reihe von Design-Zielen, die mit dem Bitcoin-Design in Verbindung stehen, wie beispielsweise die Möglichkeit, zwei Parteien Transaktionen zu ermöglichen, ohne einer dritten Partei vertrauen zu müssen.

Die Angabe der Entwurfsziele ist von grundlegender Bedeutung. Sie legen den Grundstein für eine Implementierung, um die Ziele zu erreichen, bei denen die Eigenschaften übereinander liegen, aber es ist informativ, was jede neue Ebene tut.

Auf der Suche nach der Natur einer Blockchain müssen wir vorsichtig sein, nach Dingen zu suchen, die ihre Attribute sind, und nicht Merkmale dieser ersten Implementierung.

Transaktionen

Abschnitt 1 des Whitepapers ist eine Einleitung, und mit Abschnitt 2 sehen wir etwas wirklich Substanzielles. Abschnitt 2 stellt eine Szene für eine digitale Münze dar, aber sie wird als eine Kette von Transaktionen beschrieben, in der die "Münze" neuen Besitzern zugewiesen wird.Die Münze ist wirklich eine Metapher für eine Transaktionsgeschichte verknüpfter Transaktionen.

Interessanterweise beschreibt Abschnitt 2 auch, wie ein zentralisiertes System dies eigentlich nicht tun muss.

Blöcke und Ketten

Mit Abschnitt 3 sehen wir die Essenz des Entwurfsmusters, das die Basis einer Blockchain am besten beschreibt. Es wird als etwas angegeben, das aus einer Reihe inkrementeller Datenblöcke konstruiert wird, von denen jeder durch einen kryptografischen Hash-Wert über seinen Inhalt identifiziert werden kann. Darüber hinaus enthält jeder Block den kryptografischen Hash seines Vorgängerblocks, um den Aufbau einer Kette sicherzustellen.

Die Block-Hashes werden als eine Form von weithin bezeugten Beweisen veröffentlicht, die zeigen, dass sowohl die Blockdaten als auch der Vorgänger-Hash vorhanden sind. Das Ändern der Vorgänger- oder anderer Daten innerhalb des Blocks würde zu einer anderen Hash-Signatur für den Block führen, die nicht mit der weit verbreiteten Ansicht übereinstimmt.

Diese Eigenschaften sind alle grundlegend, und ohne sie können wir nichts Interessantes konstruieren. Interessant ist jedoch, was an dieser Stelle nicht als notwendig bezeichnet wird. Es gibt keine Erwähnung von Münzen, keine Erwähnung von Peer-to-Peer-Netzwerken, keine Erwähnung von Bergbau usw. Stattdessen wird vorgeschlagen, dass Veröffentlichungs-Hashes in einer weit verbreiteten Form ausreichen würden, wobei die beiden Beispiele in einer Publikation veröffentlicht werden Zeitung oder Veröffentlichung über das Usenet.

Während wir einige explizite Merkmale sehen, führen diese zu einigen impliziten:

Die Veröffentlichung der Hashes ist bedeutungslos, wenn dieselben Hashes nicht unabhängig von einem externen Beobachter neu berechnet werden können, dem nur die Daten von den Blöcken in der Kette gegeben werden . Diese Eigenschaft ermöglicht es den Beobachtern, dem Urheber der Blockkette nicht zu vertrauen. stattdessen können sie historische Hashes für sich selbst vergleichen.

Die Neuberechnung der Hashes erfordert, dass der Algorithmus, nach dem die Blöcke erzeugt werden, deterministisch und gut spezifiziert ist. Ohne diese kann unser externer Beobachter die Hashes nicht neu berechnen.

Peer-to-Peer-Operationen aktivieren

Im nächsten Abschnitt 4 des Whitepapers wird über den Arbeitsnachweis gesprochen. Die erste Zeile ist interessant: "Um einen Distributed Timestamp Server auf Peer-to-Peer (P2P) Basis zu implementieren, müssen wir ein Proof-of-Work System verwenden, ähnlich wie Adam Back's Hashcash". Proof-of-Work ist nicht erforderlich, um eine Blockchain zu erstellen, nur um die Peer-to-Peer-Implementierung des Timestamp-Servers zu ermöglichen.

Nachfolgende Kryptowährungsentwürfe haben gezeigt, dass es möglicherweise auch andere Ansätze gibt, die auch hier verwendet werden können (zB: Formen des Proof-of-Pfahl oder Hybride von beiden), aber wenn wir mit einem Client-Server-Ansatz zufrieden sind Diese sind tatsächlich notwendig.

Das soll nicht heißen, dass der Arbeitsbeweis möglicherweise keine anderen Anwendungen mit einem Blockchain-Design hat, aber keiner scheint für unsere Suche grundlegend zu sein.

Netzwerk und darüber hinaus

Abschnitt 5 beschreibt die Implementierungsmerkmale des Bitcoin-Netzwerks. Nichts erweitert hier explizit das Konzept dessen, was eine Blockchain ist oder erfordern könnte.In der Tat bieten weder die Abschnitte 6, 7, 8, 9, 10, 11 oder 12 (der letzte Abschnitt) neue Ideen darüber, was eine Blockchain sein könnte.

Antworten auf unsere Fragen

Wenn das Satoshi White Paper der Ursprung des Blockchain-Designs ist, bleibt uns eine ziemlich dünne Definition übrig, aber vielleicht ist das der aufschlussreichste Aspekt. Es wird sehr explizit über bestimmte Design-Entscheidungen und ihren Zweck gesprochen, was zu der Erkenntnis führt, dass viele der Behauptungen über "Blockchains" eher eine Frage der Implementierung als der Architektur sein können.

Lassen Sie uns dann einige spezifische Fragen stellen!

Muss eine Blockchain Münzen haben?

Es gibt eine interessante Diskussion im Weißbuch über die Notwendigkeit, denjenigen Anreize zu bieten, die dem P2P-Netzwerk Sicherheit bieten, um ehrlich zu bleiben und um "Münzen" in das System einzuführen, aber die Diskussion ist eindeutig im Kontext des P2P-Netzwerks. Das Konzept der Münzen selbst wird mit einer vertrauenswürdigen "Minze" als unnötig bezeichnet.

Eine vertrauenswürdige Münze ist in einer Kryptowährung nicht wünschenswert, aber es scheint keine Notwendigkeit für Münzen zu geben, wenn wir eine Kette von kryptographisch verknüpften Blöcken konstruieren möchten. Es gibt eine interessante Frage zum Thema Vertrauen, aber wir werden später darauf zurückkommen.

Muss eine Blockchain Smart Contracts implementieren?

Aus der Sicht des Weißbuchs erscheint dies unwahrscheinlich. Das Wort "Vertrag" erscheint nirgendwo.

Könnte eine Blockchain intelligente Verträge ermöglichen? Ja, natürlich, aber es könnte auch viele andere Dinge ermöglichen.

Muss eine Blockchain programmierbar sein?

Wieder scheint die Antwort nein zu sein. Weder die Wörter "Programm" noch "Skript" erscheinen im Weißbuch.

Eine Blockchain muss von einem oder mehreren unabhängigen Beobachtern interpretiert werden können, daher ist sie eindeutig aus einer oder mehreren wohldefinierten Datenstrukturen aufgebaut. Die Blockdatenstruktur muss einen vorherigen Blockhash enthalten, und der kryptografische Hash des Blocks muss auf eine sehr spezifische Art und Weise ausgeführt werden, aber keines von diesen erfordert, dass die Datenstruktur irgendeine Vorstellung von ausführbarem Code enthält.

Kann eine Blockchain irgendeine Form von Programmcode enthalten? Dies ist eine Implementierungsfrage und die Antwort ist ja. Bitcoin enthält eine eingeschränkte Skriptsprache, und andere Systeme wie Ethereum haben anschließend versucht, komplexere Programmiermodelle zu unterstützen.

Die Wahl, solche Konzepte zu unterstützen, scheint eher zweckdienlich oder ehrgeizigere Designziele zu sein, aber es scheint, dass eine Blockchain nicht mehr "programmierbar" sein muss als irgendeine andere Linked-List-Datenstruktur.

Ist eine Blockchain eine Datenbank?

Noch einmal scheint die Antwort nein zu sein. Wie zuvor erscheint das Wort "Datenbank" nicht im Weißbuch.

Eine Blockchain ist im Kern eine spezielle Art von Datenstruktur. Die Blöcke innerhalb der Kette enthalten Daten, machen dies jedoch nicht zu einer Datenbank. Im besten Fall repräsentieren die Blöcke das Transaktionslog einer bestimmten Datenbankimplementierung.

Ebenso gibt es keine Semantik für die Abfrage einer Blockchain, genauso wenig wie eine verknüpfte Liste abgefragt wird.Eine spezifische Implementierung könnte Abfragen von beiden zulassen, aber die Implementierung definiert die Sache selbst nicht.

Als Vergleichspunkt sind die IP-Pakete für die TCP-Pakete, die diesen Artikel enthalten, als Datenstrukturen in einer Reihe von IETF (Internet Engineering Task Force) RFC-Dokumenten (Request For Comments) definiert. Die Dokumente beschreiben die Form der Pakete und ihr Verhalten beim Transport. Empfänger dieser Pakete sind in der Lage, ihre Gültigkeit unabhängig von einem Teil der Netzwerkimplementierung zwischen ihnen und dem Urheber selbst zu bestimmen.

Eine Implementierung eines Routers / einer Firewall kann eine Funktion zum Erfassen dieser Pakete bereitstellen, so dass sie später analysiert werden können, und kann Datenbankabfragen dieser Pakete anbieten, aber es gibt nichts in der Art eines IP-Pakets, das es zu einem Datenbank, noch gibt es etwas in den RFCs, das anders vermuten würde. Implementierungsmerkmale und Spezifikation sind sehr unterschiedliche Dinge.

Ist eine Blockchain vertrauenslos?

Die Antwort hier ist auch nicht, aber das liegt daran, dass die Frage zu weit gefasst ist. Eine Blockchain ermöglicht es uns, weniger Vertrauen zu erfordern als viele traditionelle Systeme, aber jede Implementierung erfordert noch ein gewisses Maß an Vertrauen.

Ein Empfänger von Blockdaten muss darauf vertrauen, dass er geliefert wurde, ohne von einem Intermediär kompromittiert zu werden. Die P2P-Verteilung von Blöcken in Bitcoin und ähnlichen Netzwerken versucht, das Vertrauen in Peers zu minimieren, aber selbst dieses Modell weist potenzielle Fehlerpunkte auf. Hier sind ein paar:

  • Wir vertrauen darauf, dass die Blockchain-Software, die wir ausführen, nicht zur Lieferung gefälschter Daten kompromittiert wurde.
  • Wir vertrauen darauf, dass das Betriebssystem, unter dem unsere Blockchain-Software läuft, nicht gefälscht wurde
  • Wir vertrauen darauf, dass die Netzwerkprozessoren, die die Verbindung zu unserem System herstellen, nicht durch gefälschte Daten gefährdet sind.

"In Code, dem wir vertrauen" ist ein interessantes Mantra, aber mehr als 30 Jahre Malware, Spyware usw. zeigen uns, dass dies eine sehr umstrittene Strategie ist.

Ein Blockchain-Design macht Fälschungen für einen Gegner schwieriger und macht versehentliche Fehler dramatisch weniger wahrscheinlich. Wir sind in der Lage "zu vertrauen, aber zu verifizieren" (innerhalb der Grenzen), aber dies ist immer noch eine signifikante Verbesserung gegenüber blindem Vertrauen. Am wichtigsten ist, dass keine dieser vertrauensminimierenden Eigenschaften Aspekte des P2P-Netzwerkdesigns sind, sondern stattdessen für die Blockcodierung von Bedeutung sind.

Muss eine Blockchain nicht genehmigt werden oder kann sie nicht erlaubt sein?

Eine Blockchain ist nur eine Datenstruktur, also macht die Frage wirklich keinen Sinn. Wer eine Datenstruktur lesen oder schreiben kann, ist eine ganz andere Frage.

Lassen Sie uns für einen Moment diese subtile Unterscheidung ignorieren und so tun, als ob die Frage einen Sinn ergeben könnte. Betrachten wir den Fall von Bitcoin; Wer schreibt die Blockchain?

Die Antwort ist, dass Minenarbeiter (genauer gesagt, Blockhersteller wie ein Mining-Pool-Betreiber, nicht diejenigen, die nur Blöcke hacken) neue Blöcke schreiben können.Transaktoren im Netzwerk können Kandidatentransaktionen bereitstellen, die in Blöcken enthalten sein sollen. Dies garantiert jedoch nicht, dass Blöcke diese Transaktionen enthalten. Mit Bitcoin reden wir darüber, dass es "nicht erlaubt" ist, weil niemand die ausdrückliche Erlaubnis benötigt, Blocker zu werden.

Wenn wir jedoch andere mögliche Anwendungen eines Blockchain-Designs in Betracht ziehen, gibt es oft einen sehr gut definierten Satz von Teilnehmern, von denen wir gerne Blockdaten schreiben könnten. In vielen Fällen kann dies sogar ein einzelner Teilnehmer sein.

Eine Kritik an solchen möglichen Verwendungen einer Blockchain ist, dass dies nicht besser ist als eine Datenbank, aber eine herkömmliche Datenbank ist etwas, in das blindes Vertrauen gesetzt werden muss. Sein innerer Zustand ist in der Regel unerkennbar. Selbst in seinen einfachsten Anwendungen kann eine Blockchain zumindest ein Mittel bereitstellen, um den Zustand eines solchen Systems zu verifizieren, und zwar auf eine Weise, die die Validierung von Historien ermöglicht. Dies ist jedoch nur der Anfang der Möglichkeiten!

Ist eine Blockchain das Internet des Geldes (oder des Internets von irgendetwas anderem)?

Realistisch, nein oder zumindest nicht für sich allein.

Als wir uns "keine Datenbank" angeschaut haben, haben wir auch angesprochen, warum diese Behauptung keinen Sinn ergibt. Oberflächlich erscheint das Argument verführerisch. Der Gedanke ist, dass wir auf einer Blockchain eine Menge Technologie aufbauen können, so wie ein Netzwerkstapel geschichtet ist.

Es gibt viele Probleme mit dieser Aussage, aber die offensichtliche ist, dass eine Blockchain nur eine Datenstruktur ist. Es ist ein guter Kandidat für die Übertragung von Informationen über das Internet, ermöglicht aber nichts an sich.

Die Trennung der Blockchain von einem Transport einer Blockchain lässt jedoch hoffen, dass Blockchains zuverlässigere Finanzanwendungen über das Internet ermöglichen. Eine klare Trennung ermöglicht auch das Experimentieren auf jeder Ebene des Systemdesigns und dies ist eine Schlüsseleigenschaft, die das Internet so erfolgreich gemacht hat.

Mit dem Internet können Kandidaten für alle Schichten des Netzwerkstapels getestet, ersetzt oder modifiziert werden, so dass die besten Designs gewonnen werden können. In ähnlicher Weise hat der auf Standards basierende Ansatz es ermöglicht, dass verschiedene Implementierungen zusammenarbeiten, ohne zu verhindern, dass kommerzielle Vorteile gesucht und monetarisiert werden.

Im Fall von Blockchains haben wir bereits festgestellt, dass externe Beobachter unterstützt werden müssen, und dies erfordert ein gewisses Maß an Interoperabilität.

Letzte Gedanken

Wir haben uns angesehen, was eine Blockchain sein könnte oder was nicht, und vielleicht ein paar Hinweise darauf bekommen, was sie möglicherweise ermöglichen würde. Die Technologie, die Bitcoin untermauert, kann verwendet werden, um viele Dinge zu bauen, und Bitcoins Vermächtnis sollte nicht nur Bitcoin selbst sein - es hat die Lebensfähigkeit von etwas viel Grundlegenderem gezeigt.

Die Debatte darüber, was eine Blockchain ausmacht, wird hier nicht enden, aber wir müssen die Diskussion voranbringen und wir müssen uns dem Drang widersetzen, es nur als weiteres Marketing-Schlagwort zuzulassen.

Um dies zu erreichen, brauchen wir sowohl eine klare Terminologie als auch eine vernünftige Verwendung.Wir müssen vermeiden, dass viele verschiedene Ideen miteinander verschmolzen werden, und wir brauchen Technologieansprüche, die realistisch und erreichbar sind. Wenn wir scheitern, wird der Begriff "Blockchain" schließlich bedeutungslos und muss ersetzt werden. Das scheint das falsche Ergebnis zu sein.

Wenn uns das gelingt, ist die Idee einer Blockchain nicht das Ende der Geschichte. Stattdessen wird es seinen Platz als eine Schicht einnehmen, auf der bessere und immer nützlichere Systeme gebaut werden können.

Dieser Artikel wurde mit Genehmigung von Hashingit erneut veröffentlicht. com. Sie können Dave auf Twitter unter @hashingitcom folgen.

Bild über Shutterstock