Kapitel 1. Grundlegende Konzepte der Blockchain

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Es ist wichtig zu verstehen, dass Blockchain für die meisten kein einfaches Konzept ist, ohne ein solides Verständnis ihres Ursprungs, ihrer Kernkomponenten und ihrer Architektur sowie der Debatten rund um Blockchain zu haben. Für Blockchain gibt es viele leicht unterschiedliche Definitionen, die teilweise sehr dogmatische Meinungen hervorrufen, was viele verwirrt, wenn sie zum ersten Mal mit Blockchain arbeiten. Diese Verwirrung entsteht, weil Blockchain nichts Greifbares ist, das man anfassen oder sehen kann. Stattdessen ist es ein Konzept, das aus Algorithmen, Technologie und neuen Ideen für den Austausch von wirtschaftlichen Werten entstanden ist.

In diesem Kapitel werden wir uns mit den grundlegenden Konzepten der Blockchain befassen, indem wir zunächst einen kurzen Überblick über ihren Ursprung geben. Diese Hintergrundinformationen helfen dir zu verstehen, warum es für Blockchain keine einheitliche und allgemein akzeptierte Definition gibt.

Im Anschluss an unsere Diskussion über den Ursprung der Blockchain werden wir kurz auf einige Kernkomponenten eingehen. Dann werden wir uns mit der Architektur befassen, gefolgt von den unterstützenden Technologien und Konzepten.

Bei unserem Blick auf die Kernkomponenten beginnen wir mit dem dezentralen Netzwerk. Dann gehen wir auf die Kryptografie ein. Man kann die Kryptografie als die geheime Soße der Blockchain bezeichnen, denn sie macht die Blockchain erst möglich. Ohne Kryptografie gäbe es keinen Nutzen für die Blockchain. Als Nächstes besprechen wir die Implementierung des Ledgers. Der Ledger ist die Speicherung oder Datenbank der Blockchain. Er speichert den Zustand, der durch die letzte bestätigte Transaktion entstanden ist, sowie die Historie seit dem Beginn der Erstellung des Ledgers.

Als Nächstes besprechen wir den Konsens, ein Protokoll zur "Einigung" zwischen den Knotenpunkten, das Herzstück der Blockchain. Der Konsens stellt ein sicheres Mittel dar, um Transaktionen abzuschließen, ohne sich auf die traditionellen Vermittler in herkömmlichen Transaktionssystemen zu verlassen. Zum Schluss gehen wir auf Smart Contracts ein. Die Fähigkeit der Blockchain, komplexe Transaktionen durchzuführen, ist eine direkte Folge des Einsatzes von Smart Contracts. Du kannst dir Smart Contracts als Softwareprogramme vorstellen.

Dieses Kapitel hilft dir, Folgendes zu verstehen:

  • Die Architektur und die Kernkomponenten der Blockchain

  • Wie Ledger-Datenbanken und Weltzustandsdatenbanken in der Blockchain funktionieren

  • Die Rolle der Kryptografie (wie öffentliche/private Schlüssel oder Hash-Funktionen) in der Blockchain

  • Die beliebtesten Konsensalgorithmen in der Blockchain

  • Wie intelligente Verträge in einem Blockchain-System funktionieren

Was ist Blockchain?

Nach der allgemein anerkannten Definition ist die Blockchain ein Teilbereich der Distributed Ledger Technology (DLT). Wenn man auf DLT herunterbricht, erhält man ein verteiltes Netzwerk aus Peer-to-Peer-Knoten, also Computern, die zusammen ein verteiltes Netzwerk bilden(Abbildung 1-1). Jeder Knoten verarbeitet Transaktionen, die von Kunden eingereicht werden. Diese Transaktionen werden in einer replizierten Datenbank auf allen Knotenpunkten festgehalten - dem Ledger. Dieses Hauptbuch ist unveränderlich, und die Datensätze sind in Blöcken gruppiert.

Types of networks
Abbildung 1-1. Arten von Netzwerken

Jeder Knotenpunkt verwaltet eine Kopie dieses unveränderlichen Hauptbuchs, das in der Regel als Datei oder Datenbank implementiert ist, die nur Anhänge enthält. Blockchain basiert auf digitalen Signaturen und einem Konsens, um Datensätze zu bestätigen. Die meisten DLTs verwenden keinen Konsens; stattdessen benötigen DLTs nur digitale Signaturen, um Datensätze zu bestätigen. Es gibt keinen Konsens, sondern nur digital signierte Transaktionen.

Die Datensätze werden in das unveränderliche Hauptbuch übertragen. In dieser Datenbank, die nur Anhänge enthält, ist jeder Datensatz zeitlich geordnet und jeder Block von Datensätzen ist kryptografisch mit dem vorherigen Block verknüpft. Jeder Block enthält zusätzliche Metadaten sowie den Hash-Code des vorherigen Blocks und eine Reihe von Datensätzen. Die Datensätze werden in der Regel durch einen Hash-Baum, den sogenannten Merkle-Baum, dargestellt(Abbildung 1-2).

A Merkle tree
Abbildung 1-2. Ein Merkle-Baum

Das gibt dir eine allgemeine Vorstellung davon, was Blockchain ist. Wir können jedoch mehr Klarheit gewinnen, wenn wir uns ihren Ursprung, ihre Architektur und ihre Komponenten ansehen. Der Ursprung erklärt, warum die Definitionen auseinandergehen. Die Architektur der Blockchain ist am einfachsten zu verstehen, weil sie am konkretesten ist und einen ganzheitlichen Blick ermöglicht. Bei den Komponenten handelt es sich um eine Reihe von Legacy-Technologien und logischen Konzepten, von denen jedes für sich verstanden werden kann. Durch die Untersuchung der Komponenten können wir eine solide Grundlage für die Beherrschung der Fähigkeiten schaffen, die für die Entwicklung von Blockchain-Smart Contracts und Blockchain-Anwendungen erforderlich sind. Verstehe, dass die Blockchain-Technologie auf alten Technologien wie digitalen Signaturen, Peer-to-Peer-Netzwerken und jahrzehntelanger Arbeit aufbaut.

Die Blockchain ist ein synergetisches System, das entsteht, wenn sich mehrere alte Technologien zu einem einzigen, komplexen, integrierten System zusammenschließen, das die grundlegende Aufgabe der Ausführung von Transaktionen erfüllt. Viele sehen in der Blockchain eine Datenbank. Andere sehen sie als Transaktionsprozessor. Wieder andere sehen in ihr eine dezentrale Utopie, die frei von jeglicher zentraler Kontrolle ist und die Gesellschaft neu strukturieren kann. Blockchain ist all das und noch mehr. Leider kann es aufgrund dieses Paradigmas schwierig sein, das grundlegende Konzept der Blockchain zu begreifen.

Normalerweise werden neue Technologien oder Erfindungen durch einen einzigen Zweck oder eine wohlverstandene Lösung für ein Problem definiert. Das Konzept der NoSQL-Datenbanken ist zum Beispiel leicht zu verstehen. Auch Software-definierte Netzwerke lassen sich leicht vorstellen und definieren.

Viele versuchen, blockchain zu verstehen, indem sie es mit Bitcoin gleichsetzen, der Kryptowährung, die die Blockchain-Technologie nutzt. Das liegt daran, dass die Blockchain-Technologie der Mechanismus ist, der die Funktionsweise von Bitcoin ermöglicht, und daher werden beide als eins betrachtet. Du solltest verstehen, dass Bitcoin eine Anwendung ist, die die Blockchain-Technologie nutzt. Der Anwendungsfall von Bitcoin ist ein Peer-to-Peer-Finanzaustausch. Um die Blockchain zu verstehen, werden wir sie in einzelne Komponenten zerlegen. Dann kannst du sie kombinieren und dir Lösungen für Probleme ausdenken, die du lösen willst.

Ursprung der Blockchain

Die meisten Menschen datieren die Geburt der Blockchain mit dem Beginn von Bitcoin - genauer gesagt mit dem Bitcoin-Papier, das von Satoshi Nakamoto verfasst und 2008 veröffentlicht wurde. Wer ist Satoshi Nakamoto? Das weiß niemand, denn er hat sich nie öffentlich zu erkennen gegeben. Es könnte sich um eine Person, eine Gruppe, ein Unternehmen oder eine Regierungsbehörde wie die US National Security Agency (NSA) handeln. Wie auch immer, Nakamoto bleibt ein Rätsel.

Es gibt Leute, die behaupten, Nakamoto zu sein, aber ein konkreter Beweis wurde nie vorgelegt. Nakamoto bleibt also eine unbekannte Figur.

In Nakamotos Papier "Bitcoin: A Peer-to-Peer Electronic Cash System" findest du den Begriff Blockchain oder Blockkette nicht. Am ehesten findest du den Begriff " Blockkette". Du musst in die Codezeile 596 in main.h gehen, um das erste Mal den Begriff Blockchain zu finden.

Satoshi zitierte acht Papiere, darunter "How to Time-Stamp a Digital Document" von Stuart Haber und W. Scott Stornetta, das den Satz "Chain of Time-Stamps" enthält. Dies war zweifellos die Inspiration für die Verknüpfung von Transaktionsblöcken bei der Entwicklung von Bitcoin. Andere zitierte Papiere müssen das Design beeinflusst haben. Das erste war "Protocols for Public Key Cryptosystems" von Ralph C. Merkle, der für den Merkle-Baum berühmt wurde (siehe Abbildung 1-2), eine kryptografische Hash-Baum-Datenstruktur, die in der Blockchain weit verbreitet ist. Das andere Papier mit großem Einfluss war "b-money" von Wei Dai, das sicherlich bei der Entwicklung von Bitcoin, einer digitalen Kryptowährung für den Peer-to-Peer-Austausch von Werten, berücksichtigt wurde.

Die Blockchain-Revolution

Bitcoin war der Funke, der die Revolution der Blockchain entfachte, aber nicht der Treibstoff dafür. Es entstand auch eine Subkultur rund um Bitcoin mit starken Überzeugungen und einem Gefühl des Eigentums. Diese spärliche und föderierte Gemeinschaft, die durch die gemeinsame Überzeugung verbunden ist, dass "Blockchain nur erlaubnisfrei ist", machte sich Bitcoin sofort zu eigen und replizierte es in Hunderten von Inkarnationen. Einige waren identisch, andere abweichend, aber alle einten sich in einer gemeinsamen These, die die anarchistische Sicht auf eine neue Welt darstellte, die mit Bitcoin möglich ist.

Blockchain 2.0

Vor Bitcoin schrieb Adam Back, der unter für Hashcash bekannt ist, im Jahr 2002 über ein Proof-of-Work-System, das zur Verhinderung von E-Mail-Spam eingesetzt wurde. Nick Szabo entwickelte 1997 die Begriffe Smart Contracts und 2005 Bitgold, die viele als Vorläufer von Bitcoin ansehen. Bereits 1982 arbeitete David Chaum, als Erfinder des digitalen Bargelds und Erfinder der Blindsignatur bezeichnet, an elektronischem Bargeld. Das Konzept der Blockchain hat eine lange Geschichte und wurde 2013 im "Ethereum Whitepaper" von Vitalik Buterin zu dem weiterentwickelt, was wir heute als Blockchain 2.0 bezeichnen.

Vor dem Ethereum-Whitepaper gab es die Blockchain 1.0, die Bitcoin antreibt und die Blockchain-Technologie ohne das Konzept des Smart Contracts darstellt. In Blockchain 2.0 haben wir die Smart-Contract-Technologie, die Buterin in seinem Whitepaper beschrieben hat. Sie ermöglicht umfangreiche Transaktionen, die weit über die Möglichkeiten von Bitcoin, einer Plattform für den einfachen Austausch von Werten, hinausgehen. Mit der Smart-Contract-Fähigkeit ist eine intelligente, zustandsorientierte Ausführung von komplexen Transaktionen möglich. Mit Blockchain 2.0 begann die Blockchain-Revolution, die Evolution der Blockchain und die Anziehungskraft auf Unternehmen wie IBM, Intel, Oracle, Amazon, Microsoft und viele andere, wobei die Liste jeden Tag exponentiell länger wird.

Nachdem Ethereum 2015 als erste Plattform im Rahmen von Blockchain 2.0 einen Single Ledger implementiert hatte, erkannten auch die Unternehmen das Potenzial von Blockchain 2.0. Im Dezember 2015 kündigte die Linux Foundation die Gründung des Hyperledger-Projekts an.

Wir behandeln das Hyperledger-Projekt in Teil II, der zwei Kapitel enthält. Das eine befasst sich mit den Projekten und Tools, das andere mit der Architektur und den Komponenten der Hyperledger Fabric. Diese beiden Kapitel vermitteln das Wissen, das du für Teil III brauchst, in dem es um die Entwicklung, den Aufruf, die Wartung und das Testen von Smart Contracts geht. Im nächsten Abschnitt werden die vielen Komponenten der Blockchain auf einer hohen Ebene diskutiert.

Kernkomponenten der Blockchain

Die Blockchain ist keine einzelne Kompilation von Quellcode. Sie hat zwar eine gemeinsame ausführbare Datei, aber sowohl logische als auch physische Komponenten arbeiten zusammen, um eine funktionierende Blockchain zu bilden. Diese Trennung von logischen und physischen Komponenten kann zu der Verwirrung beitragen, die bei der Diskussion über die Blockchain-Technologie entsteht, ebenso wie die Tatsache, dass die Blockchain eher ein Konzept als eine Implementierung ist. Die Umsetzung des Konzepts entwickelt sich rasant weiter und wird sich weiter verändern, wenn immer mehr Technologen und Unternehmer in die Welt der Blockchain einsteigen.

Gemeinsame Komponenten bilden das zentrale Konzept der Blockchain. Die erste ist das dezentralisierte Netzwerk. Die zweite ist die Kryptographie. Drittens: ein unveränderliches Hauptbuch. Viertens der Konsens. Und fünftens: Smart Contracts. Diese fünf Elemente bilden die Kernkomponenten, die du brauchst, um das Konzept der Blockchain zu erstellen. Die Art und Weise, wie sie umgesetzt werden, wird sich mit der Entwicklung neuer Methoden und Algorithmen im Laufe der Zeit weiterentwickeln.

Die Komponenten, für die du dich entscheidest, prägen deine Blockchain-Landschaft und schaffen ein reichhaltiges Ökosystem mit innovativen Lösungen für neue und bestehende Probleme. Es gibt keine Regeln.

Dezentrales Netzwerk

Eine Blockchain verwendet ein dezentrales Netzwerk (wie in Abbildung 1-1 dargestellt). Öffentliche Blockchains erlauben es jedem, daran teilzunehmen, während private Blockchains eine Mitgliedschaft erzwingen, und nur Parteien mit einer gültigen Mitgliedschaft können an der Blockchain teilnehmen.

Heute gibt es zwei allgemein anerkannte Arten von Blockchains: erlaubte und erlaubnisfreie. Bei einer Blockchain mit Berechtigung muss eine verwaltende Blockchain-Autorität die Teilnahme registrieren und die Mitgliedschaft gewähren. Die registrierte Partei kann nur Lese- oder Schreibrechte oder Lese- und Schreibrechte haben. Hyperledger Fabric ist eine private Blockchain mit Berechtigung.

Bei einer erlaubnisfreien Blockchain gibt es keine zentrale Autorität, und jeder kann teilnehmen. Sie können die Blockchain lesen und schreiben.

Das Netzwerk kann intern oder extern sein, oder eine Kombination davon. Das Netzwerk kann in sich geschlossen sein oder die ganze Welt umspannen. Wenn wir heute von Blockchain sprechen, denken wir an dezentrale Netzwerke, die aus Knotenpunkten bestehen. In jeder Diskussion, Vorlesung oder Präsentation über Blockchain wirst du erfahren, dass eine Blockchain ein dezentrales Netzwerk von Knotenpunkten haben muss. Je nach Redner und Zielgruppe wird die Botschaft auf offene, geschlossene oder hybride Netzwerke bezogen, aber sie sind immer dezentral.

Kryptografie

DieKryptografie ist das Herzstück der Blockchain. Sie ist die Kunst, Geheimnisse zu schaffen und zu bewahren. Schon in der Antike mussten die Menschen Geheimnisse schaffen und geheime Nachrichten verschicken. Heute werden komplexe mathematische Algorithmen verwendet, um Geheimnisse zu schaffen. Um die geheimen Nachrichten zu versenden, werden Protokolle verwendet, d.h. Regeln für die Verbindung und Kommunikation der Nachrichten zwischen den Parteien. Ohne Kryptografie gibt es keine Blockchain oder DLT. Die Kryptografie wird in erster Linie für Verschlüsselung, Schlüssel, Hashing, Signaturen, Integrität, Beweise und Manipulationssicherheit verwendet.

Digitale Signaturen

Digitale Signaturen verwenden asymmetrische Kryptografie, die einen privaten und einen öffentlichen Schlüssel verwendet. Die Schlüssel sind pseudozufällig generierte Bitstrings. Der private Schlüssel wird niemals preisgegeben und geheim gehalten. Der öffentliche Schlüssel hingegen wird offengelegt und an die Öffentlichkeit oder eine bestimmte Partei weitergegeben. Digitale Signieralgorithmen verwenden den privaten Schlüssel, um Text zu verschlüsseln. Der verschlüsselte Text kann nur mit dem öffentlichen Schlüssel entschlüsselt werden. Da der private und der öffentliche Schlüssel ein Paar sind, arbeiten sie zusammen und ermöglichen das Konzept der digitalen Unterschrift.

Digitale Signaturen haben drei Hauptzwecke. Der erste ist die Authentifizierung. Wenn jemand eine Blockchain-Transaktion mit einem privaten Schlüssel signiert, kann der Empfänger die Partei, die die Transaktion signiert hat, mit dem öffentlichen Schlüssel der Partei authentifizieren.

Die zweite Hauptanwendung ist die Integrität. Wenn eine Nachricht signiert ist, macht jede Veränderung der Nachricht die Signatur ungültig, und der Empfänger weiß, dass die Nachricht manipuliert wurde.

Die dritte wichtige Funktion von ist die Unleugbarkeit. Wenn eine Partei eine Transaktion unterschreibt und einreicht, kann sie später nicht behaupten, dass sie die Transaktion nicht eingereicht hat, da ihre Unterschrift auf der eingereichten Transaktion überprüft werden kann. Er kann nur behaupten, dass seine Unterschrift gestohlen wurde, aber auch das kann durch zusätzliche Signaturen, die zu dem Gerät gehören, mit dem er die Transaktion eingereicht hat, einschließlich eines Zeitstempels und möglicher Metadaten, die den Standort angeben, widerlegt werden.

Hash-Funktionen

Eine Hash-Funktion ist eine kryptografische Einwegfunktion. Die Funktion erhält Daten als Argument, führt eine kryptografische Aufgabe durch und erzeugt dann eine eindeutige Zeichenkette für die Eingabedaten. Wenn ein Bit der Eingabedaten geändert wird, ändert sich auch die Ausgabezeichenfolge. Wenn keine Bits geändert werden, erzeugt die Hash-Funktion immer dieselbe Zeichenkette.

Die Verwendung einer Hash-Funktion in der Blockchain bedeutet, dass du die Daten nicht verändern kannst, da sonst das Ergebnis nicht mit den Aufzeichnungen übereinstimmt. Durch die Verknüpfung der Hash-Ausgaben in einem Merkle-Baum können große Mengen von Datensätzen verknüpft und in einem Block gespeichert werden. Die Blöcke werden gehasht, und der Hash des vorherigen Blocks ist Teil des nächsten Blocks, wodurch eine unveränderliche Kette von Blöcken entsteht.

Der Merkle-Baum ist eine Hash-Baum-Struktur, bei der die Knoten nacheinander zusammengehasht werden, bis ein einziger Knoten entsteht. Dieser einzelne Knoten bietet die Integrität für den gesamten Baum. Die unteren Knoten können erneut gehasht und auf Datenintegrität überprüft werden.

Es gibt mehrere sichere Hash-Algorithmen, aber SHA-256 und SHA-3 sind die wichtigsten, die in der Blockchain verwendet werden.

Brieftasche

Private und öffentliche Schlüssel werden viel in Blockchains verwendet. Private Schlüssel werden verwendet, um Transaktionen zu unterzeichnen und stehen für die Geheimnisse, die du sichern und schützen willst. Du legst deine Schlüssel in einer digitalen Brieftasche ab, so wie du deine Kreditkarten in deiner physischen Brieftasche aufbewahrst. Du kannst für jede Blockchain eine eigene Brieftasche haben oder separate Brieftaschen für verschiedene Anwendungen. Wallets sind Behälter für deine Schlüssel. Sie sichern sie, verwalten sie und können die Funktion des Signierens erleichtern.

Die Funktionalität von Wallets wächst und sie werden immer ausgefeilter. Es gibt physische Wallets, die an deinen USB-Anschluss angeschlossen werden und deine Schlüssel in einer Hardware-Enklave sicher aufbewahren, und Software-Wallets, die auf deinen Computern oder in der Cloud existieren können. Im Laufe der Zeit werden die Funktionen und Merkmale der Geldbörsen weiter wachsen und sich erweitern.

Gemeinsames Hauptbuch

Das Shared Ledger stellt die Datenbank in der Blockchain dar. Es gibt kein Standardformat wie bei relationalen Datenbanken. Für das Shared Ledger der Blockchain gelten zwei feste Regeln. Erstens ist er unveränderlich, d.h. er ist fälschungssicher. Zweitens: Es ist geordnet. Die Reihenfolge richtet sich nach der Zeit.

Diese beiden Regeln machen die Blockchain so mächtig: eine zeitlich geordnete Aufzeichnung von unveränderlichen Transaktionen. Kombiniert mit Konsens und Kryptografie ergibt das Shared Ledger einen Mechanismus, der Vertrauen, Transparenz und Nachweisbarkeit bietet. In Hyperledger ist der Ledger in zwei Komponenten unterteilt: die Ledger-Datenbank und die World State Database.

Ledger-Datenbank

Die Ledger-Datenbank ist eine binäre Datei. Die Blöcke werden an die Datei angehängt. Jeder Peer hostet die Datei lokal. Die Datei kann nicht einfach gelesen werden, da sie aus Leistungsgründen in einem Binärformat vorliegt. Für die Untersuchung der Blöcke in der Datei stehen Tools und eine Anwendungsprogrammierschnittstelle (API) zur Verfügung. Durch die Erkundung der Blöcke, aus denen die Ledger-Datenbank besteht, kann jede Transaktion gelesen werden.

Datenbank der Weltstaaten

Die Weltzustandsdatenbank ist einzigartig für Hyperledger Fabric. Sie ist eine traditionelle Datenbank. Du kannst die Datenbank deiner Wahl einbinden. Hyperledger Fabric verwendet standardmäßig LevelDB und unterstützt durch die Konfiguration von CouchDB. Wenn du zu CouchDB wechselst, können Anwendungen umfangreiche Abfragen gegen die World State Database durchführen. Sie heißt Weltzustandsdatenbank, weil sie den aktuellen Stand der Blockchain zu jedem beliebigen Zeitpunkt darstellt.

Konsens

Das Konzept des Vertrauens ist das Herzstück der Blockchain. Der Konsens ist der Mechanismus, der den utopischen Aspekt der Blockchain ermöglicht, indem er unterschiedlichen Parteien die Möglichkeit gibt, Transaktionen ohne das notwendige Vertrauen zu tätigen, das in den heutigen Transaktionssystemen durch Vermittler vermittelt wird.

Man kann sich den Konsens auch so vorstellen: Jedes Mal, wenn du deine Kreditkarte benutzt, sind mehrere Vermittler beteiligt, die jeweils eine bestimmte Funktion erfüllen und eine Gebühr erheben, die du zusätzlich zum Kaufbetrag bezahlst. Du siehst die Gebühren vielleicht nicht, aber sie sind entweder implizit oder explizit in die Transaktion integriert, und du zahlst für sie. In der Blockchain übernimmt der Konsensmechanismus diese Funktion des Vertrauens, ohne dass es Zwischenhändler gibt.

Für den Konsens gibt es viele Implementierungen. Jede ist so konzipiert, dass sie Vertrauen auf der Grundlage einer Wahrscheinlichkeit bietet. Diese Wahrscheinlichkeit ist eine Funktion der Zustimmung. Eine vollständige Einigung ist schwer zu erreichen und erfordert viel Zeit und Ressourcen, während eine teilweise Einigung schneller ist und weniger Ressourcen erfordert, aber riskant ist. Wie viel Risiko tolerierbar ist, hängt von der Blockchain-Governance ab und bestimmt die Eigenschaften des Konsensmechanismus, mit dem die Einigung erzielt wird. Selten, wenn überhaupt, kann die Wahrscheinlichkeit einer Einigung 1 oder 100% betragen, und oft sind weniger als 100% akzeptabel.

Es gibt viele Konsensalgorithmen, und es werden ständig neue Algorithmen entwickelt. Du solltest vier davon kennen: Arbeitsnachweis, Einsatznachweis, praktische byzantinische Fehlertoleranz und Nachweis der verstrichenen Zeit.

PoW

Proof of Work(PoW) ist ein Konsensalgorithmus, der in Bitcoin und Ethereum verwendet wird (Ethereum geht zu Proof of Stake über). Bei diesem Konsensalgorithmus wird Energie durch das Lösen eines kryptografischen Rätsels verbraucht. Die Energie wird durch die Hash-Rate dargestellt, d.h. die Anzahl der pro Sekunde erzeugten Hashes. Um einen Hash zu erzeugen, wird eine endliche Menge an Energie benötigt. Diese Energie ist der Strom, der für die Erzeugung eines Hashes benötigt wird. Je mehr Hashes erzeugt werden, desto mehr Energie wird benötigt. Die Energiekosten sind entscheidend für die Anzahl der Hashes, die erzeugt werden können. Das Rätsel besteht darin, eine Eingabe zu finden, die eine Hash-Zahl mit einer bestimmten Anzahl von führenden Nullen ergibt. Die Komplexität oder durchschnittliche Lösungszeit wird durch die Anzahl der führenden Nullen bestimmt.

Bei Bitcoin wird die Anzahl der führenden Nullen so angepasst, dass die Lösungszeit bei etwa 10 Minuten liegt. Je nachdem, wie viele Miner am Hashing beteiligt sind, variiert diese Zahl nach oben oder unten. Dieses Konsensmodell ist energieabhängig, denn die Miner, die die meiste Energie aufwenden, haben eine höhere Chance, die siegreiche Eingabe zu finden und werden daher mit Bitcoin belohnt und dürfen den aktuellen Block übertragen.

PoS

Proof of Stake(PoS) ist ein Konsens Algorithmus, der sowohl von der Zufallsgenerierung als auch von der Beteiligung an der Blockchain abhängt. Es gibt mehrere PoS-Algorithmen, aber die meisten verwenden Routinen zur Generierung einer Zufallszahl aus bestimmten Kriterien wie der Menge der gehaltenen Münzen oder dem Alter der gehaltenen Münzen. Die niedrigste oder höchste generierte Zufallszahl gewinnt und darf den aktuellen Block übertragen und erhält eine Belohnung. Sobald ein Akteur gewinnt, wird sein Einsatzkriterium auf Null zurückgesetzt; damit scheidet er für die nächste Runde aus.

PBFT

Practical Byzantine Fault Tolerance(PBFT) ist ein Konsensalgorithmus, der auf das Jahr 1999 zurückgeht. PBFT ist ein Leader-basierter Non-Forking-Algorithmus. Er setzt voraus, dass alle Knotenpunkte mit allen anderen Knotenpunkten verbunden sind. Alle Knoten sind bekannt, und der Algorithmus lässt keine zufälligen Knoten zu, die der Peering-Gruppe beitreten. Der Algorithmus unterstützt den Ausfall von bis zu einem Drittel der Knotenpunkte. Solange nicht mehr als ein Drittel der Knoten ausfällt, kann ein Konsens erreicht werden.

PoET

Proof of elapsed time(PoET) ist ein Konsensalgorithmus, der eine vertrauenswürdige Ausführungsumgebung (TEE) verwendet. Bei diesem Algorithmus werden zufällige Peers ausgewählt, die Anfragen mit einer vorher festgelegten Rate ausführen. Die ausgewählten Peers nehmen eine exponentiell verteilte Zufallsvariable. Sie warten die Zeit ab, die durch die Stichprobe bestimmt wird, und der Peer mit der kleinsten Stichprobe gewinnt die Wahl und darf den Block übertragen.

Smart Contracts

Blockchain-Anwendungen werden in einen Client, einen Smart Contract und eine Blockchain unterteilt. Der Client ist das Frontend, mit dem ein Nutzer, entweder ein Mensch oder eine Maschine, interagiert, um Transaktionen zu unterzeichnen und einzureichen. Die Übermittlung geht an einen bestimmten Knoten oder Peer, der die Transaktionen annimmt und an den Smart Contract weiterleitet. Der Smart Contract führt die Transaktion in Abstimmung mit der Blockchain aus. Diese Interaktion zwischen dem Smart Contract und der Blockchain beinhaltet eine API, die der Smart Contract nutzt, um bestimmte Funktionen der Blockchain auszuführen (z. B. Lesen oder Einfügen).

Ein Smart Contract kann nicht viele Funktionen auf der Blockchain ausführen, da die Blockchain ein unveränderliches Hauptbuch ist. Ein Smart Contract kann Daten hinzufügen oder lesen, aber das Aktualisieren von Daten ist eigentlich eine Funktion zum Hinzufügen von Daten, die den aktuellen Zustand ändert. Er kann keine Daten löschen, auch wenn er eine API zum Löschen von Daten ausführen kann. Das Löschen ist eine Änderung des Zustands. Diese Löschung würde dazu führen, dass ein Lesevorgang keine Daten zurückgibt, aber die Daten sind vorhanden.

Die Daten können mit einer speziellen Anwendung, dem Blockchain-Explorer, geprüft werden. Dieses spezielle Programm liest den unveränderlichen Ledger auf der untersten Ebene, indem es die Datenstruktur der Blöcke durchforstet und die aufgezeichneten Daten liest. Ein Smart Contract kann dies ebenfalls tun, aber das wäre kein typischer Anwendungsfall.

Ein Smart Contract wird am besten verwendet, um den aktuellen Status zu lesen, Logik auf dem Status auszuführen und den Status zu aktualisieren (hinzuzufügen). Erinnere dich: Das Blockchain-Ledger ist eine unveränderliche, verknüpfte Liste mit aufgezeichneten Daten. Diese Daten stellen den Status dar. Die Blockchain ist also ein laufendes Hauptbuch der Zustandsübergänge, ein Journal mit unveränderlichen Aufzeichnungen. Das ist extrem mächtig. Die Clients des Smart Contracts übernehmen in der Regel die Logik auf der Anwendungsebene und stellen die UX dar. Clients dienen nicht nur als Schnittstelle zum Smart Contract, sondern stellen in vielerlei Hinsicht die Anwendung für den Nutzer dar.

Das Wichtigste am Smart Contract ist, dass er nicht wirklich intelligent ist. Er befindet sich zwischen dem Kunden und der Blockchain. Das ist auch gut so, denn du willst nicht, dass der Smart Contract zu viel arbeitet.

Du willst nicht viele Roundtrips zwischen dem Client und dem Ledger machen - zum Beispiel tausend Lesevorgänge, um eine Liste zu füllen. Du willst den Smart Contract anweisen, tausend Zustände zu lesen und sie an deinen Client zu senden. Dadurch wird nur ein einziger Aufruf des Smart Contracts ausgeführt, eine teure Ressource, und der Smart Contract kann möglicherweise den Ledger in großen Mengen lesen.

Die typische Schnittstelle ist asynchron, also behalte das im Hinterkopf und nutze deine Callbacks effektiv. Versuche, dem Nutzer den Eindruck zu vermitteln, dass eine Menge Arbeit geleistet wird, obwohl die Blockchain in Wirklichkeit eine Schildkröte ist und kein Kaninchen wie die Datenbanken, mit denen wir aufgewachsen sind. Smart Contracts sind mächtige Instrumente; sie können für oder gegen dich arbeiten, wenn du sie richtig einsetzt. Als Entwickler von Smart Contracts solltest du immer deinen Kunden im Auge behalten und ihn mit der effizientesten API unterstützen, die auf dem basiert, was wir besprochen haben.

Blockchain Architektur

Die Architektur einer Blockchain besteht aus einem dezentralen und verteilten Netzwerk von Knotenpunkten. Jeder Knoten hostet eine Kopie von , dem unveränderlichen Hauptbuch. Das unveränderliche Hauptbuch ist ein kryptografisch verknüpfter Satz von Blöcken, die nur angehängt werden können. Die Knotenpunkte führen Transaktionen und Konsens aus, um Blöcke zum Ledger hinzuzufügen. Die Kunden unterzeichnen die Transaktionen und übermitteln sie an die Knotenpunkte. Die Knoten leiten die geprüften Transaktionen zur Ausführung an die Smart Contracts weiter. Die ausgeführten Transaktionen werden geordnet und in Blöcke eingeordnet. Die Blöcke werden an die Blockchain angehängt. Der Kern einer Blockchain besteht aus Blöcken, Ketten und einem Netzwerk.

Knotenpunkte

Computer werden aufgrund ihrer Rolle beim Aufbau des verteilten Netzwerks als Knotenpunkte bezeichnet. Sie können virtuelle Maschinen in der Cloud sein, die von physischen Servern gehostet werden. Sie können Laptops sein, die an verteilten Netzwerken teilnehmen. Sie können Geräte aus dem Internet der Dinge sein, die in dezentralen industriellen Netzwerken arbeiten. Sie können sogar intelligente Glühbirnen sein. Knotenpunkt ist ein allgemeiner Begriff für einen Endpunkt in einem Netzwerk. Das Netzwerk kann drahtgebunden oder drahtlos sein. Ein anderer Name für einen Knoten ist Peer, wie in Peer-to-Peer-Netzwerken, die für dezentrale Anwendungen konzipiert sind.

Für die Blockchain Hyperledger Fabric werden dir beide Begriffe begegnen. In der Hyperledger Fabric steht der Begriff Peer für einen Rechenknoten, der die Bestätigung und Verpflichtung von Transaktionen durchführt und ein unveränderliches Hauptbuch hostet. In Bitcoin sind die Nodes Miner, die wie die Hyperledger Fabric-Peers Transaktionen in das Hauptbuch übertragen.

Blöcke

Blöcke enthalten die Aufzeichnungen der eingereichten und bestätigten Transaktionen. Jeder Block enthält außerdem eine Kopfzeile, einen Zeitstempel und den Hash des vorherigen Blocks. Der erste Block, der Genesis-Block, enthält zusätzliche Informationen, die die Blockchain beschreiben, z. B. Richtlinien. Bei einer genehmigten Blockchain wie Hyperledger Fabric enthält der Genesis-Block eine Liste der Mitgliedsorganisationen und ihrer Zertifikate sowie Informationen über die Anzahl der Organisationen, die Transaktionen genehmigen müssen. Außerdem enthält er die Identität des Bestellers, der für die Bestellung der Transaktion und die Erstellung der Blöcke verantwortlich ist, die die Peers an die Blockchain anhängen.

Der Block enthält zusätzliche Daten , die dazu dienen, die Blöcke miteinander zu verknüpfen und die Integrität zu gewährleisten, damit die im Block enthaltenen Daten nicht verfälscht werden können. Die Blöcke sind miteinander verknüpft, und diese Verknüpfung der Blöcke ist für den Begriff Blockchain verantwortlich.

Die Kryptografie wird verwendet, um die Datenstruktur und die Verknüpfung der Blockchain zu erstellen und zu erhalten. Der Block ist durch den Einsatz von Kryptografie fälschungssicher.

Die Blöcke bilden zusammen das unveränderliche Hauptbuch und werden von vielen auch als Blockchain-Datenbank bezeichnet. Blöcke werden an den zuletzt erstellten Block angehängt. Mit der Zeit entsteht durch dieses Anhängen eine große Datenstruktur, die verwaltet werden muss. Es werden auch andere Datenstrukturen verwendet, wie z. B. Graphen, die nicht linear sind und netzwerkartige Datenstrukturen bilden. Die Daten einer Transaktion werden nicht immer in einem Block gespeichert, sondern können auch in einem traditionellen Datenspeicher wie Dateien oder in einer bestehenden Datenbank gespeichert werden.

Ketten

Ketten sind eine verknüpfte Liste von Blöcken. Sie sind unveränderlich und können nur angehängt werden. Eine Blockchain-Architektur kann eine oder mehrere Ketten haben. Ketten können auf eine unendliche Länge bzw. Anzahl von Blöcken anwachsen. Dies kann durch Beschneidung verhindert oder gesteuert werden, aber die Beschneidung hat Nebenwirkungen, die das Vertrauen in das Blockchain-Netzwerk verringern und die Möglichkeit nehmen, die gesamte Kette zu untersuchen und zu überprüfen. Dies kann die Integrität der Kette beeinträchtigen.

Kanäle

Jede Blockchain in der Hyperledger Fabric wird als Channel bezeichnet. Dabei handelt es sich um einen Zusammenschluss von Organisationen, die zusammenarbeiten, um Transaktionen durchzuführen, die sich auf einen bestimmten Zweck beziehen. Organisationen in Hyperledger Fabric können zu mehreren Channels gehören. Bitcoin und Ethereum verwenden eine einzige Hauptblockchain und mehrere Blockchains für Testzwecke.

Unterstützende Technologie und Konzepte

Neben den Komponenten (dezentrales Netzwerk, Kryptografie, unveränderliches Ledger, Konsens und Smart Contracts) musst du viele Konzepte und unterstützende Technologien verstehen oder zumindest kennen, um eine solide Grundlage für das Verständnis von Blockchain zu schaffen. Im Folgenden stellen wir dir diese Konzepte und Technologien vor, damit du dich im Laufe deiner Blockchain-Reise weiterbilden und dein Wissen erweitern kannst.

DLT

Die Distributed-Ledger-Technologie ist die Mutter der Blockchain. Bei DLT werden nur digitale Signaturen und kein Konsens verwendet, weil man Skalierung und hohen Durchsatz will. Es ist der Konsens, der die hohe Latenzzeit und die Grenzen der Skalierbarkeit der Blockchain verursacht. Aus diesem Grund sind DLTs wie Corda im Finanz- und Versicherungssektor so beliebt. Wenn die Beteiligten einander halbwegs vertrauen, wie im Versicherungs- und Bankensektor, kannst du Abhilfemaßnahmen erzwingen, indem du dich auf digitale Signaturen verlässt. Wenn du aber einen Vertrauensmechanismus brauchst, um die Integrität zwischen den Teilnehmern durchzusetzen, wie z. B. in Lieferketten, dann brauchst du Blockchain, weil der Konsensmechanismus diese Sicherheit und dieses Vertrauen bietet.

Dezentralisierung

Blockchain ist eine dezentralisierte Technologie. Das Hauptbuch wird von einem Netzwerk von Peer-to-Peer-Knoten gehostet, die das dezentrale Netzwerk bilden. Die Abschaffung eines zentralen Kontrollpunktes macht das Konzept der Dezentralisierung aus. Die Fähigkeit, die Kontrolle an alle Knotenpunkte zu delegieren, die zusammenarbeiten, um das Ziel des Netzwerks zu erreichen, verleiht der Blockchain ihre Stärke. Diese delegierte Kontrolle und Zusammenarbeit ermöglicht es, einen Konsens zu erzielen, ohne dass eine zentrale Autorität das Ergebnis beeinflusst.

Peer-to-Peer

Blockchain-Netzwerke sind Peer-to-Peer-Netzwerke. Das Netzwerk ist dezentral aufgebaut. In einem dezentralisierten Netzwerk gibt es keine zentrale Kontrolle, und jeder Peer (oder Knoten) ist mit einem oder mehreren Peers (oder Knoten) im Netzwerk verbunden. Die Peers arbeiten zusammen, um Nachrichten im Netzwerk zu versenden und weiterzuleiten. Die Verwendung von Peer-freundlichen Protokollen wie Gossip ermöglicht die schnelle Replikation von Nachrichten zwischen zahlreichen Peers in einem Netzwerk. So können Millionen von Peers Nachrichten innerhalb von Sekunden empfangen. Ein dezentrales Peer-to-Peer-Netzwerk ermöglicht es, Kopien eines Blockchain-Hauptbuchs zu führen.

Unveränderlichkeit

Das Konzept der Unveränderbarkeit, d.h. der Unveränderbarkeit und der Manipulationssicherheit, ist für Blockchain von entscheidender Bedeutung, denn es ist die wichtigste Eigenschaft des Hauptbuchs. Das Konzept und die Umsetzung der Unveränderbarkeit schaffen Vertrauen. Das Wissen, dass zeitlich geordnete Transaktionen unveränderbar sind, ermöglicht es den Parteien, Vertrauen und Endgültigkeit zu schaffen.

Identität

Blockchain und Smart Contracts brauchen Identitäten, um zu funktionieren. Identitäten repräsentieren die Entitäten (Menschen und Maschinen), die an der Ausführung von Smart-Contract-Transaktionen und der Verwaltung der Blockchain teilnehmen. Bei Unternehmens-Blockchains registrieren Organisationen, die Mitglieder sind, Identitäten, die sie vertreten und Transaktionen im Namen der Organisation durchführen. Den Identitäten werden private und öffentliche Schlüssel für die digitale Unterzeichnung und die Verschlüsselung von Daten zugewiesen. Die digitalen Signaturen authentifizieren die Identitäten und ermächtigen sie zur Durchführung von Transaktionen.

Konten

Das Konzept der Konten in blockchain ermöglicht es uns, eine Vielzahl von Rollen zu übernehmen und eine Vielzahl von Funktionen für eine einzige Identität auszuführen. Ein Konto ist ein Datensatz mit Attributen, die bestimmte Rechte für den Zugang und die Berechtigung zur Durchführung von Transaktionen mit Vermögenswerten definieren, die dem Konto gehören oder von ihm verwaltet werden. Rollen werden erstellt und einem Konto zugewiesen. Die Rolle definiert eine Reihe von Rechten, die einem Konto zugeordnet sind. Identitäten erhalten eine Rolle, die es der Identität erlaubt, Aktionen für das Konto durchzuführen, die durch eine Rolle erlaubt sind. Das bedeutet, dass wir nicht für jedes Konto, das Transaktionen auf einer Blockchain durchführen darf, eine Identität erstellen und verwalten müssen. Konten ermöglichen es uns, die Rollen und Berechtigungen für eine oder mehrere Identitäten aufzuteilen. Konten können verschiedene Formen von Status haben und als vertrauenswürdige Einheit auf der Blockchain Transaktionen durchführen.

SDK

Ein Software Development Kit(SDK) wird verwendet, um Software für eine Blockchain zu integrieren oder zu entwickeln. Die meisten Entwickler/innen sind mit dieser Komponente vertraut, da viele Anwendungen ein SDK anbieten, um Software für ihre Anwendung zu entwickeln. Bei Blockchain ist das nicht anders. Die meisten Blockchain-Plattformen bieten ein oder mehrere SDKs an, die jeweils auf eine Programmiersprache und eine bestimmte Komponente der Plattform ausgerichtet sind. Für Hyperledger Fabric gibt es mehrere SDKs, darunter JavaScript, Java und Go, um Fabric-Blockchain-Anwendungen zu entwickeln.

API

Eine Anwendungsprogrammierschnittstelle(API) ist ein Softwarevertrag zwischen der Anwendung und dem Client, ausgedrückt als eine Sammlung von Methoden oder Funktionen. Die API kann mit einem SDK oder als RESTful-Schnittstelle implementiert werden. Sie definiert die verfügbaren Funktionen, die du ausführen kannst. Manche APIs haben Hunderte von Methoden oder Funktionen, die du aufrufen kannst, um eine Vielzahl von Transaktionen auszuführen. Andere haben vielleicht weniger als ein Dutzend und zielen auf eine sehr enge und spezifische Gruppe von Anwendungsfunktionen ab.

Die API ist die zwischengeschaltete Schnittstelle zwischen dem Kunden und der Anwendung. Sie muss gut verwaltet werden und die kontinuierliche Entwicklung des Lebenszyklus der Anwendung unterstützen. Die Versionskontrolle wird häufig eingesetzt, um die Migration zu neuen oder veralteten Funktionen zu erleichtern und zu kontrollieren.

Blockchain ist eine Anwendung und hat eine API. Es ist die API, die Smart Contracts einbetten und den Kunden zur Verfügung stellen. Die eingebettete API und die offengelegte API sind nicht derselbe Vermittler. Die exponierte API ist für die Kunden der Smart-Contract-Einrichtung der Blockchain gedacht, während die eingebettete API ein interner Vertrag zwischen der Smart-Contract-Einrichtung und der Kern-Blockchain-Software ist, die für den Betrieb des Knotens oder Peers verantwortlich ist. Die Smart-Contract-Einrichtung kann von dem Knoten oder Peer gehostet werden, muss es aber nicht.

Transaktionen

Kunden reichen Transaktionen ein. Diese Transaktionen werden von den Knoten (Peers) bearbeitet und, wenn sie akzeptiert werden, in einem Block gespeichert, der an die Blockkette (oder Blockchain) angehängt wird. Transaktionen können alles Mögliche sein, von einer Datenaktualisierung über einen Vermögenswert bis hin zur Bezahlung einer Dienstleistung oder dem Kauf eines Produkts. Sie können einfach die Aufzeichnung von Informationen sein, die einen bekannten Zustand oder die Ausführung einer Aktion darstellen. Transaktionen können von menschlichen oder maschinellen Clients ausgehen. Transaktionen in der Blockchain sind immer mit einem Zeitstempel versehen und geordnet. Sie sind unveränderlich und können nicht verfälscht werden. Transaktionen werden mit einem privaten Schlüssel signiert, wenn sie zur Verarbeitung eingereicht werden, und können je nach Blockchain-Zulassung für die Transaktionseinreichung authentifiziert werden.

Anreize

Anreize werden in der Blockchain selten diskutiert und das behindert den Erfolg vieler Blockchain-Projekte. Ein starker Anreiz ist notwendig, um das Verhalten zu erzeugen, das für den Erfolg von Blockchain erforderlich ist. Die Miner von Bitcoin wissen, was ein Anreiz ist, denn das ist es, was sie zum Mining antreibt. Deshalb führen sie Transaktionen für ihre Kunden durch und sorgen für die unveränderliche und vertrauenswürdige Blockchain, die den Austausch von Werten ermöglicht, den die Kunden gegen eine geringe Gebühr durchführen wollen. Ihr Anreiz ist eine Belohnung, wenn sie ein kryptografisches Rätsel lösen können. Die Belohnung ist ein beträchtlicher Geldbetrag in Bitcoin.

Für Blockchains in Unternehmen gab es bisher wenig oder gar keine Anreize wie bei Bitcoin oder Ethereum. Das Fehlen von Anreizen war einer der Hauptgründe dafür, dass so viele Projekte fehlschlugen. Ohne einen starken Anreiz haben externe Partner wenig Grund, sich für die Veränderung ihrer gewachsenen Geschäftsprozesse zu begeistern. Sie sehen nur zusätzliche Kosten und Risiken. Die finanzielle Modellierung reicht nicht aus, um sie davon zu überzeugen, dass dies eine bessere und effizientere Art ist, die Geschäftsprozesse auszuführen.

Datenschutz

Die Geheimhaltung von Daten und der Identität der an einer Transaktion Beteiligten ist ein wichtiges Anliegen der Blockchain. Die Möglichkeit, Daten selektiv offenzulegen und mit Daten zu arbeiten, die nicht offengelegt werden können, ist entscheidend für den Fortschritt der Blockchain. Wenn mehrere Parteien Transaktionen durchführen und Informationen austauschen müssen, sollten sie sich an den Datenschutz halten. Wenn bestimmte Parteien Daten benötigen, um ihren Teil einer komplexen Transaktion durchzuführen, müssen diese Daten ebenfalls geheim gehalten werden.

Eine Schwäche der Blockchain war bis vor kurzem die Unfähigkeit, verschiedene Ebenen der Privatsphäre in komplexen Transaktionen zu mischen. Hyperledger Fabric v2 unterstützt die Möglichkeit, Transaktionen mit privaten Daten durchzuführen. Innerhalb von Hyperledger wird an Zero-Knowledge-Proofs (ZKPs) gearbeitet. Diese Kryptografie ermöglicht es, Fakten zu beweisen, ohne die Quellen offenzulegen, die zur Ermittlung einer Tatsache verwendet wurden. Stell dir vor, du kannst ein Alter nachweisen, ohne die Unterlagen vorzulegen, die das Alter belegen. Das ist sehr mächtig, denn es ermöglicht Transaktionen, die die Privatsphäre der an der Transaktion beteiligten Parteien schützen. Da die Blockchain ein verknüpftes Hauptbuch ist und die Schlüssel für Parteien oder Adressen stehen können, ist es möglich, Profile zu erstellen, die so viele Informationen preisgeben, dass die Privatsphäre, die eine Partei zu besitzen glaubt, einschränken könnte. Das ist bei Bitcoin und Ethereum der Fall.

Staat

Blockchain hat eine Geschichte, aber sie ist der Zustand, den wir uns am häufigsten wünschen. Die Blockchain ist ein unveränderliches Hauptbuch der Zustandsübergänge im Laufe der Zeit und dafür wurde sie entwickelt. Aber wenn wir die Blockchain einsetzen, stellen wir fest, dass es der aktuelle Zustand ist, der ihre Macht offenbart. Wir glauben an den Status, weil wir wissen, dass er hart erarbeitet wurde und einen Spießrutenlauf der Validierung und kryptografischen Überprüfung durchlaufen hat. Wir genießen das Wissen, dass er fälschungssicher ist, was dem Status noch mehr Wert verleiht.

Aber der Zustand ist nicht die Geschichte. Die Blockchain verfügt über die Historie, aber wir stellen fest, dass der Zugriff auf diese Historie teuer ist und die Blockchain nicht wirklich gut ist - zumindest nicht im großen Maßstab. Denn im großen Maßstab geht es nur darum, den Status zu erfassen, einen Konsens zu erreichen und ihn zu bestätigen. Wir haben gelernt, den Status frisch und zwischengespeichert zu halten und die Historie in einer traditionellen Datenbank zu speichern. Wenn wir die Historie beweisen müssen, können wir den Ledger durchlaufen und die Historie beweisen. Aber Geschichte ist Geschichte. Der Zustand ist das, was zählt. Du triffst deine Entscheidung auf der Grundlage des Zustands. Der Status kann ein fortlaufender Datensatz sein, z. B. die bisherigen Verkäufe. Du musst diese Berichte nicht ausführen, um den Status zu erhalten.

Das ist eine große Veränderung und ein enormer Produktivitätsschub. Blockchain wird die Welt verändern, denn die Welt wird den aktuellen Stand kennen, und zwar jetzt und nicht erst morgen oder am Ende der Woche oder des Quartals. Die Fähigkeit, einen genauen und vertrauenswürdigen Status aufrechtzuerhalten, ist ein mächtiges Werkzeug, das von Smart-Contract-Entwicklern genutzt werden kann, um Entscheidungsträger - egal ob Mensch oder Maschine - zu stärken.

Turing komplett

Die Hinzufügung des Konzepts von Turing complete zur Blockchain war ein Wendepunkt für die Abgrenzung der Blockchain von Bitcoin. Es machte Blockchain zu einer intelligenten Transaktionsmaschine für das 21. Intelligente Verträge müssen Turing-komplett und deterministisch sein, um endgültig zu sein. Da sie deterministisch sind, können sie dezentralisiert und skaliert werden. Turing-Vollständigkeit und Determinismus ermöglichen es Konsensmechanismen, die Funktion von Vermittlern zu übernehmen und eine Einigung über den Zustand und die Endgültigkeit zu erzielen.

Gas

Ethereum verwendet das Konzept von Gas. Das bedeutet, dass du für das Rechnen bezahlst und die Gebühren für das Rechnen auf nach den von dir ausgeführten Anweisungen berechnet werden. Dieses Konzept ist nicht neu: Mainframes verlangen von ihren Nutzern Rechenleistung und berechnen die Gebühren auf Basis der CPU-Zeit. In der Welt des Internets ist es ein expliziter Kostenfaktor. Wir alle zahlen Gebühren für die Datenverarbeitung, aber wir können sie nicht quantifizieren, weil es so viele Ebenen des Zugangs und der verwendeten Ressourcen gibt. Dem Gasmodell am nächsten kommt der Cloud-Computing-Dienst von Amazon Web Services (AWS), der nach Ressource und Nutzungszeit abrechnet. AWS ist viel gröber als das granulare Kostenmodell von Ethereum.

Die Volatilität von Ether und allen Kryptowährungen ist problematisch, wenn du versuchst, Anwendungen auf der Ethereum-Plattform zu budgetieren und zu starten. Bei AWS ist die Währung der Dollar, sodass du eine vernünftige Erwartung an deine langfristigen Kosten für den Start und die Budgetierung der für den Betrieb deiner Anwendung erforderlichen Ressourcen hast. Deine Kosten schwanken nicht von Tag zu Tag, geschweige denn von Minute zu Minute, wie bei Ethereum.

Zusätzlich zu den Opportunitätskosten nutzt du eine gemeinsam genutzte Ressource und stehst damit in direkter Konkurrenz zu anderen, die ihre Anwendung ausführen wollen und mehr für die Gelegenheit bezahlen. Das kann dazu führen, dass du deine Transaktionen gar nicht oder nicht innerhalb der für dein Ziel erforderlichen Zeit ausführen kannst.

Wertmarken

Die meisten werden Token mit Kryptowährung gleichsetzen, aber sie entwickeln sich weiter und werden sich immer weiter von den Bitcoin- und Altcoin-Gemeinschaften entfernen. Ein Token ist ein digitaler Gutschein, der getauscht werden kann. Token können in verschiedene Typen eingeteilt werden.

Der erste ist die Kryptowährung, der erste Blockchain-Token. Krypto-Token gibt es schon lange und sie wurden für verschiedene Zwecke wie Identität und Metadaten verwendet. Der neueste Token, ein Derivat der Kryptowährung, wird Stable Coin genannt. Er wird als Stable Coin bezeichnet, weil sein Token-Wert so gestaltet ist, dass er dem Token-Wert eines anderen Tokens, einer Währung oder eines Vermögenswertes entspricht, der keine großen Wertschwankungen aufweist. Der Begriff " gebunden" steht für dieses Wertverhältnis zwischen der stabilen Münze und dem anderen Token, der Währung oder dem Vermögenswert, den die stabile Münze im Wert widerspiegeln soll. Stabile Münzen, die an den US-Dollar gekoppelt sind, werden zum Beispiel mit einem Dollar plus oder minus einer sehr geringen Wertänderung in der Größenordnung von Hundertsteln oder Tausendsteln eines Dollars zu jedem Zeitpunkt bewertet. Stable Coins wurden von Goldman Sachs und Circle gefördert, um Stabilität in Kryptowährungen zu schaffen und etablierten Unternehmen eine Möglichkeit zu bieten, Kryptowährungen zu entdecken.

Krypto-Token werden in der Welt der Blockchain als Kryptowährung, Sicherheits-Token und Utility-Token klassifiziert. Es gibt noch eine Reihe anderer Bezeichnungen, aber du solltest dich auf Sicherheits- und Utility-Token konzentrieren.

Wertpapier-Token werden an Investoren über verschiedene Wege verkauft, darunter Initial Coin Offerings (ICOs) und Security Token Offerings (STOs). Security Token gelten als Wertpapiere, die von der US Securities and Exchange Commission (SEC) reguliert werden. Daher kannst du sie nicht verkaufen (ausgeben), ohne dich bei der SEC zu registrieren. Sie werden nicht anders behandelt als Aktien.

Utility-Token sind so etwas wie das Gas von Ethereum. Das sind Token, die du verkaufen kannst, die aber nicht den Hauch einer Investition haben. Die Blockchain verwendet Utility Tokens als internes Betriebsmittel. Die Erstellung und der Versuch, Utility-Token zu verkaufen, ist riskant. Du solltest mit Rechtsexperten sprechen und einen No-Action-Letter der SEC beantragen. Dazu musst du einen detaillierten Plan einreichen, in dem du erklärst, wie du die Utility Token verwenden wirst. Einige Unternehmen haben einen No-Action-Letter von der SEC erhalten und dienen als Vorbild dafür, was die SEC unter Utility Token versteht. Utility Token haben keinen Wertzuwachs und können im Wert sinken, aber mit ihrem Kauf ist keine Belohnung verbunden. Sie entsprechen normalerweise einem Dollar und können für einen Dollar eingelöst werden. Ein Treuhandkonto verwahrt das Geld, das für den Utility Token eingetauscht wird.

Token sind eine spannende Möglichkeit für Innovationen bei der Entwicklung von Smart Contracts und der Nutzung der Blockchain. Sie können intelligent sein, einen Wert haben und Vermögenswerte und Rechte darstellen.

On-Chain

Wenn wir Arbeit auf der Blockchain ausführen, wird dies als On-Chain bezeichnet. Wenn wir Daten auf der Blockchain speichern, werden sie als On-Chain-Daten bezeichnet. Sei vorsichtig, wenn du entscheidest, welche Daten du auf der Blockchain speicherst, denn die Blockchain ist in ihrer heutigen Form nicht als Datenlager geeignet. Du solltest Transaktionsdaten off-chain speichern (wird im Folgenden erklärt). Wenn du schnell eine große Anzahl von Transaktionen durchführen willst, solltest du die Ausführung der Transaktionen außerhalb der Kette in Betracht ziehen.

Off-Chain

Die Möglichkeit, Arbeit von der Blockchain zu verschieben und außerhalb der Blockchain auszuführen, wird als Off-Chain bezeichnet. Sobald die Arbeit außerhalb der Blockchain erledigt ist, wird das Ergebnis wieder in die Blockchain verschoben, um per Konsens in die Blockchain übertragen zu werden. Das ist sinnvoll, wenn du 10.000 schnelle Transaktionen durchführen willst, die du zu einer einzigen Transaktion zusammenfasst und diese dann zurück auf die Blockchain verschiebst, um sie dem Konsens zu unterwerfen und in die Blockchain zu übertragen. Die Off-Chain-Transaktionen können auf einer so genannten Side-Chain ( ) aufgezeichnet werden, vielleicht auch über einen DLT zur schnellen Ausführung. Der Merkle-Baum der Transaktionen (siehe Abbildung 1-1) wird zu einer einzigen Transaktion zusammengefasst und zur Konsensfindung und Übergabe an die primäre Blockchain auf die On-Chain gestellt.

Skalierbarkeit

Die Skalierbarkeit ist eines der größten Probleme von blockchain. Blockchain arbeitet mit einem Konsensverfahren, das eine Latenzzeit bei der Verarbeitung von Transaktionen verursacht. Eine Einigung zu erzielen, worum es beim Konsens geht, braucht Zeit. Zeit ist das, was du eliminieren musst, wenn du skalieren willst. Einen Konsens kann man nicht massenhaft erreichen. Es wird viel geforscht und entwickelt, um dieses Problem zu lösen.

Der Finanz- und der Versicherungssektor haben sich entschieden, nur DLT zu verwenden, die, wie bereits erwähnt, nicht auf Konsens basiert. Sie können dies tun, weil ihre Sektoren als stark regulierte Branchen ein Element des Vertrauens in sich tragen. In Branchen wie der Lieferkette muss Vertrauen zwischen den Parteien bestehen. Dieses Vertrauen wurde durch Vermittler geschaffen. Der Einsatz von Vermittlern ist mit erheblichen Kosten verbunden, sowohl in Dollar als auch in Effizienz. Das Versprechen und die Anziehungskraft von Blockchain besteht darin, den Bedarf an Vermittlern durch die Verwendung von Konsens zu eliminieren oder stark zu reduzieren. Die Skalierbarkeit ist ein Problembereich, den alle Blockchain-Projekte bei der Entwicklung ihrer Anwendungen berücksichtigen müssen.

Kryptowährung

Bitcoin ist eine Kryptowährung oder ein digitaler Vermögenswert, der als Geld verwendet werden kann. Es gibt Hunderte von Kryptowährungen. Du kannst dir Kryptowährungen als digitales Bargeld vorstellen. Das war die Inspiration für ihr Design, aber dieses Design hat gefehlt. Stattdessen ist sie zu einem Vermögenswert wie Gold geworden, mit einer treuen Anhängerschaft und einem Marktplatz für den täglichen Handel mit schwankenden Kursen.

Nur wenige Anbieter akzeptieren die Kryptowährung wegen ihrer Unbeständigkeit. Fiat-Geld, die Währung, die von Zentralbanken wie der Federal Reserve ausgegeben wird, ist größtenteils stabil. Auch sie kann starken Schwankungen unterliegen, ist aber nicht so unbeständig wie Kryptowährungen.

Die meisten nutzen Kryptowährungen als risikoreiche langfristige Investition in der Hoffnung, dass sie an Wert gewinnen, oder als Handelsinstrument, um von der Volatilität zu profitieren. Die Zentralbanken erwägen nun, in die Ausgabe von Kryptowährungen einzusteigen und den Begriff " digitales Bargeld" zu übernehmen, da es viele Vorteile für grenzüberschreitende Zahlungen und die Handelsfinanzierung bietet.

Kryptowährung wird durch Blockchain-Technologie und DLT unterstützt. Durch den Einsatz von Kryptowährungen und Blockchain können Zentralbanken und Regierungen den Verkehr und die Verwendung von Kryptowährungen ausweiten und kontrollieren, was sie mit Bargeld nicht tun können.

Enklaven

Wenn du eine Transaktion unterschreiben musst, musst du deinen privaten Schlüssel verwenden. Jedes Mal, wenn du auf deinen privaten Schlüssel zugreifst, bist du offen für Angriffe und Ereignisse, die deinen privaten Schlüssel zerstören, beschädigen oder stehlen können. Wenn deinem privaten Schlüssel etwas zustößt, sind alle Daten, für die du ihn benötigst, verloren. Es kann sein, dass es keine Möglichkeit gibt, deinen privaten Schlüssel wiederzuerlangen, und somit ist das Gut oder der Zugang für immer verloren.

Du speicherst deine Schlüssel und alles andere Digitale in einer Enklave, die du zum Signieren von Transaktionen für dich nutzt. Enklaven gibt es in zwei Formen: Hardware und Software. Sie sind wie private Tresore, die nur mit einem geheimen Passwort oder einem komplizierten Ritual betreten werden können. Die Verwendung einer Enklave verhindert, dass der Schlüssel offengelegt wird und schützt ihn somit. Enklaven können auch ihre eigenen Transaktionen durchführen, so dass sie zur Ausführung von Routinen verwendet werden können, die du geheim halten willst.

Die Quorum-Blockchain von J.P. Morgan, ein modifizierter Klon von Ethereum, nutzt eine Enklave, um ihre kryptografischen Funktionen auszuführen, und bietet damit ein Sicherheitsniveau, das von einem regulierten Finanzinstitut garantiert wird. Die Hyperledger Sawtooth-Blockchain verwendet Intels Software Guard Extensions (SGX), eine Hardware-Enklave. Sawtooth nutzt die Enklave für die Ausführung einer sicheren Version des PoET-Konsensalgorithmus.

Orakel

Wenn eine Blockchain externe Daten oder eine Überprüfung von intern übermittelten oder generierten Daten benötigt, wendet sie sich an ein Orakel. Das ist eine API, eine Schnittstelle oder eine Website, die nach Informationen durchsucht werden kann.

Ein Smart Contract, der z. B. eine Wettanwendung, eine Gold-Futures-Anwendung oder eine Kreditanwendung ist, benötigt externe Informationen. Die Wettanwendung muss wissen, wer gestern Abend das Spiel gewonnen hat, also durchsucht sie die Sportseite von USA Today oder eine kostenpflichtige Website, die Sportergebnisse anbietet, nach dem Ergebnis des Spiels. Die Anwendung für Goldtermingeschäfte greift auf das Wall Street Journal oder eine kostenpflichtige Maklerseite zu, um den aktuellen Goldpreis zu erfahren. Die Kreditanwendung greift auf eine Website zu, die aktuelle Zinssätze veröffentlicht.

Orakel können auch andere Smart Contracts sein. Die Idee hinter dem Orakel ist, dass es eine externe Quelle für gültige, vertrauenswürdige Informationen ist.

DApps

Dezentrale Anwendungen( DApps) sind auf Smart Contracts basierende Anwendungen, die unter die gleiche Art von Anwendungen anbieten, die auch im Internet zu finden sind, von Spielen bis hin zu Finanzanwendungen. Im Gegensatz zu Webanwendungen sind DApps gebührenpflichtig. Obwohl es viele DApps gibt, haben nur wenige einen großen Erfolg erzielt, mit Ausnahme einiger weniger, die für den Handel mit virtuellen Gütern genutzt werden. Am beliebtesten sind DApps für Glücksspiele, die in den Vereinigten Staaten nicht erlaubt sind. DApps leiden unter der Benutzerfreundlichkeit und den Gebühren, die für ihren Betrieb anfallen.

DApps sind noch nicht in den Unternehmensbereich vorgedrungen, könnten aber in dem Maße auftauchen und sich verändern, wie Unternehmen die Blockchain übernehmen und eine hybride Allzweck-Blockchain auf den Markt kommt und sich verbreiten wird. Eine hybride Blockchain umspannt den Unternehmens- und den öffentlichen Raum und ist nach einem föderalen Designmuster aufgebaut. Heute gibt es noch keine.

Virtuelle Maschine

Wenn wir in der Blockchain von einer virtuellen Maschine(VM) sprechen, meinen wir damit die Smart Contract Engines. Die erste virtuelle Blockchain-Maschine war die Ethereum Virtual Machine (EVM), die die Blockchain 2.0 begründet hat. Seitdem ist sie von anderen Blockchains geklont, erweitert und verbessert worden. Die VM führt den Smart Contract aus.

Gabel

Wenn sich eine Blockchain aus irgendeinem Grund aufspaltet, entsteht ein Fork, also eine auseinanderlaufende Kette von Blöcken, die zwei Versionen der Blockchain erzeugt. Dies kann als negatives oder positives Ereignis betrachtet werden. Wenn alle Teilnehmer/innen der Abspaltung zustimmen und sie verwaltet wird, ist sie positiv. Dies kann passieren, wenn ein Update erforderlich ist, ein schwerwiegender Fehler in der Blockchain-Software gefunden wurde oder ein fehlerhaftes Ereignis stattgefunden hat und eine Korrektur erforderlich ist.

Governance

Wie du eine Blockchain verwaltest und kontrollierst, wird durch das Governance-Modell oder die Funktion bestimmt. Governance ist wichtig für den Betrieb der Blockchain, und ohne sie wird eine Blockchain nicht lange halten. Sie braucht Governance, um den Lebenszyklus zu verwalten, der Upgrades, Ausfälle, Teilnehmerregeln und betriebliche Einschränkungen umfasst.

Genesis

Der erste Block in einem Hauptbuch ist genannt Genesis-Block. Dieser spezielle Block markiert den Beginn der Blockchain. Er enthält zusätzliche Daten, die nur für den Genesis-Block benötigt werden, wie z. B. Metadaten, die bestimmte Merkmale und Eigenschaften des Ledgers beschreiben.

Kunden

Die Transaktionen werden von den Kunden auf der Blockchain eingereicht. Die Kunden signieren ihre Transaktion mit ihrem privaten Schlüssel (oder ihren privaten Schlüsseln) und senden die signierten Transaktionen an einen Blockchain-Knoten. Die Knoten vervielfältigen dann die empfangenen Transaktionen, indem sie sie an bekannte Knoten senden. Die Kunden können Wallets hosten, in denen sie ihre Schlüssel aufbewahren und die Quittungen der Transaktionen sicher aufbewahren.

Zusammenfassung

Dieses Kapitel enthält viele Informationen, die dir helfen, das Konzept der Blockchain zu verstehen. Wir begannen mit einer Diskussion über den Ursprung von Blockchain. Dann haben wir einige allgemeine Komponenten der Blockchain besprochen, gefolgt von ihrer Architektur, dem Shared Ledger, der Kryptografie, dem Konsens und den Smart Contracts. Wir haben die Diskussion auf einem hohen Niveau gehalten, damit du dir die grundlegenden Konzepte aneignen und deine eigene Interpretation auf der Grundlage des vermittelten Wissens formulieren konntest. Wir hoffen, dass du dich im Laufe deiner Blockchain-Reise und bei der Entwicklung von Smart Contracts mit den einzelnen Punkten näher beschäftigst.

In Teil II werden wir das Hyperledger-Projekt und die Tools besprechen, gefolgt von der Architektur und den Komponenten von Hyperledger Fabric, um dir das nötige Wissen für Teil III zu vermitteln, in dem wir die Entwicklung von Smart Contracts mit Hyperledger Fabric behandeln.

Get Hands-On Smart Contract Entwicklung mit Hyperledger Fabric V2 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.