Funktionsweise -------------- Allgemein ~~~~~~~~~ .. index:: Blockchain; Funktionsweise; Allgemein Blockchain: - dezentralisiertes, verteiltes Register (engl. *Ledger*) - enthält digitale Datensätze, Ereignisse oder Transaktionen - in chronologischer Reihenfolge - für alle Teilnehmer nachvollziehbar - in Datenblöcken gespeichert („**Block**“) - nahezu unveränderbar miteinander verkettet („**Chain**“) Eine Blockchain kann als Protokoll für den Austausch von Werten, statt nur Informationen, beschrieben werden. [Blockchain-Wikipedia]_ [Blockchain-Bundesnetzagentur]_ [Blockchain-HSLU]_ [Blockchain-IBM]_ [Blockchain-Videos]_ [Blockchain-Computerwoche]_ .. container:: admonition **Akteure** .. index:: Blockchain; Funktionsweise; Akteure Mitgliedern in Blockchain-Netzwerken können grundsätzlich drei unterschiedliche Gruppen von Akteuren zugeordnet werden, welche jeweils unterschiedliche Aufgaben und Funktionen übernehmen: a) Teilnehmer - transaktionsberechtige Nutzer eines Blockchain-Netzwerks - erbringen in der Regel keine Rechenleistung - müssen keine Transaktionshistorien speichern b) Nodes - Übernahme bestimmter Prüfaufgaben (ausreichendes Guthaben?, Signaturen authentisch?, korrekte Hash-Werte?, ...) - Speichern dazu die Historie aller bisher im Netzwerk getätigten Transaktionen - Nicht besonders rechenintensiv - in der Regel nicht entlohnt (Anreize sind z.B.: Das Einsehen der gesamten Transaktionshistorie, Aktive Aufrechterhaltung der Integrität der Blockchain) c) Miner - Bildung neuer Blöcke in einer Blockchain (i.d.R. durch Ermittlung von Hash-Werten) - können grundsätzlich auch Transaktionen auslösen - eigentlicher Anreiz: monetäre Entlohnung für die Blockbildung + möglicherweise Transaktionsgebühr (i.d.R. Kryptowährung) In der Bitcoin-Blockchain: +------------+---------------+----------------+ | Akteur | Anzahl (2017) | Anzahl (2022) | +============+===============+================+ | Teilnehmer | ~ 15 Milionen | ~ 80 Millionen | +------------+---------------+----------------+ | Miner | ~ 100.000 | k.A. | +------------+---------------+----------------+ | Nodes | ~ 10.000 | ~ 15.000 | +------------+---------------+----------------+ [Blockchain-Bundesnetzagentur]_ [Blockchain-BDEW]_ [Blockchain-Stats]_ Blöcke ~~~~~~ .. index:: Blockchain; Funktionsweise; Blöcke, Blockchain-Block, Nonce Ein Block der Blockchain beinhaltet die zu sichernden Daten, meist ein zugehöriger Zeitstempel, sowie der Hash des Vorgängerblocks. Aus diesen Werten, sowie einer, für die Validierung des Blocks zu erratende, Nonce (*Number only used once*) wird der Hash des aktuellen Blocks errechnet, welcher ebenfalls mit gespeichert wird. Dieser Hash-Wert ist einzigartig und kann als digitaler Fingerabdruck des Blocks angesehen werden. .. figure:: /blockchain/funktionsweise/Blockchain-Block.png Blockchain-Block [Blockchain-Demo]_ Durch die Sicherung des Vorgänger-Hashes werden die Blöcke eindeutig in eine nicht unaufwändig veränderbare Reihe verkettet. Der erste, ursprüngliche Block, wird als *Genesis Block* bezeichnet, und hat als Wert des Vorgänger-Hashes einen fiktiven "Startwert". .. figure:: /blockchain/funktionsweise/Blockchain-Hashes.png Blockchain-Verkettung durch Sicherung des Vorgänger-Hashes [Blockchain-Videos]_ Ein Block kann nicht rückwirkend geändert werden, ohne dass alle nachfolgenden Blöcke geändert werden müssen. Wird ein vorhergegangener Block manipuliert, so ändert sich dessen errechneter Hash-Wert, wodurch er und, aufgrund der Verkettung, auch alle folgenden Blöcke invalid werden. Somit lässt sich sagen, dass ein Block umso sicherer ist, je mehr Blöcke auf diesen folgen. Der *Genesis Block* ist somit der am schwierigsten zu manipulierende Block. Durch die Nutzung der Hashwerte wird es den Teilnehmern ermöglicht, Transaktionen unabhängig und relativ kostengünstig zu überprüfen und zu kontrollieren. .. figure:: /blockchain/funktionsweise/Blockchain-Hashes-Fehler.png Abweichung der Blockchain-Hashes nach Manipulation [Blockchain-Videos]_ [Blockchain-Demo]_ [Blockchain-Videos]_ [Blockchain-Bundesnetzagentur]_ [Blockchain-Computerwoche]_ Verteilung ~~~~~~~~~~ .. index:: Blockchain; Funktionsweise; Verteilung Die Blockchain ist die bekannteste Ausprägung der *Distributed-Ledger-Technologien* und wird so über ein Peer-to-Peer-Netzwerk verteilt verwaltet. Dabei besitzt jeder Teilnehmer eine Kopie der Blockchain. Um die Einheitlichkeit, sowie die Validität der Blockchain-Daten zu garantieren, muss ein Konsens beim hinzufügen neuer Blöcke an die bestehende Kette gefunden werden. .. figure:: /blockchain/funktionsweise/Blockchain-Konsens.png Konsens nötig bei verteilter, redundanter Speicherung [Blockchain-Videos]_ [Blockchain-Wikipedia]_ [Blockchain-Demo]_ [Blockchain-Bundesnetzagentur]_ [Blockchain-Videos]_ [Blockchain-Computerwoche]_ Konsensmechanismen ~~~~~~~~~~~~~~~~~~ .. index:: Blockchain; Funktionsweise; Konsensmechanismen Zur Konsensfindung zur Erstellung und Anfügung, neuer Blöcke noch nicht validierter Transaktionen, an die Blockchain, werden verschiedene Mechanismen genutzt: a) Proof-of-Work Da das reine Berechnen neuer Hashwerte für einen manipulierten und dessen folgenden Blöcke, auch bei sehr vielen Blöcken, schnell zu bewerkstelligen ist, soll diese Berechnung verzögert werden. Dazu wird der "Proof-of-Work" genutzt: - Konkurrenz darum als erstes die Lösung eines kryptographischen Rätsels zu finden - **Versuch den korrekten Hash-Wert des neuen Blockes zu finden** (siehe Blöcke_) - Dieser Hash muss **unterhalb eines definierten Schwellwerts** liegen. (z.B. erste vier Ziffern '0') - Schwellwert umgekehrt proportional zur Schwierigkeit / Dauer - Generierung eines passenden Hash-Werts durch Variabilität der Nonce - Hash-Wert kann nur durch **rechenintensives Ausprobieren vieler verschiedener Nonces** gefunden werden. - Sobald ein passender Hash-Wert ermittelt wurde, wird der **Block, inklusive Nonce und Hashwert, zur Überprüfung an das Netzwerk** gesendet. - Zur Überprüfung muss lediglich der Block, inklusive der Nonce gehasht werden und mit dem angegeben Hash-Wert verglichen werden. - Bei einem **Konsens im Netzwerk über die Korrektheit des Hash-Werts**, so kann der Block mit dem bestätigten Hash-Wert **an die bisherige Blockchain angefügt** werden. b) Proof-of-Stake Aufgrund der hohen benötigten Rechenleistung, sowie der limitierten Transaktionsgeschwindigkeit, werden oft, insbesondere bei konsortialen und privaten Blockchains, andere Konsensmechanismen genutzt. So wird beispielsweise der "Proof-of-Stake" genutzt: - **Wahl von Mitglieder** des Blockchain-Netzwerks **zur Bildung neuer Blöcke** **(größeres Vermögen -> wahrscheinlicher gewählt)** - Annahme, dass wohlhabende Teilnehmer ein hohes Interesse am Fortbestand und Integrität der Blockchain haben. - Haften mit ihrem eingesetzten Vermögen für die Korrektheit der Blockbildung. - **Setzt Vertrauenswürdigkeit voraus** -> das **Lösen des kryptographischen Rätsels kann deutlich einfacher ausgestaltet werden** - Die Bildung neuer Blöcke ist deshalb **wesentlich schneller und ressourcenschonender** als beim Proof-of-Work. - **Geringere Sicherheit** wegen nötigem Vertrauen in gewählte Akteure c) Proof-of-Authority Besonders bei privaten Blockchains kommt auch das Konsensverfahren "Proof-of-Authority" zur Anwendung: - **einzelne Teilnehmer**, denen die Verwaltung des Blockchain-Netzwerks obliegt, **werden für die Blockbildung bestimmt** - deutlich **schneller und ressourcenschonender** als der Proof-of-Stake - **setzt** allerdings ein **sehr hohes Vertrauen** in die blockbildenden Teilnehmer **voraus** [Blockchain-Wikipedia]_ [Blockchain-Demo]_ [Blockchain-Bundesnetzagentur]_ [Bitcoin-Proof-of-Work]_ [Blockchain-HSLU]_ [Blockchain-Videos]_ [Blockchain-Computerwoche]_ Digitale Signatur ~~~~~~~~~~~~~~~~~ .. index:: Blockchain; Funktionsweise; Digitale Signatur Um sicher zu stellen, dass Transaktionen auch nur von autorisierten Personen ausgeführt werden, wird ein asymmetrisches Kryptosystem (*Public-Key*) zur digitalen Signierung genutzt. Dabei wird der Hash der Nachricht mit einem privaten Schlüssel (*private key*) verschlüsselt, wodurch man eine digitale Signatur erhält. Diese kann, nach der Entschlüsselung mithilfe des passenden öffentlichen Schlüssel (*public key*), mit dem Hash der erhaltenen Daten verglichen werden, um die **nichtabstreitbare** **Urheberschaft** und **Integrität** der Daten zu prüfen. .. figure:: /blockchain/funktionsweise/Digital-Signature.svg Digitale Signatur Von Bananenfalter🍌🦋 - Eigenes Werk, CC0, https://commons.wikimedia.org/w/index.php?curid=17500025 [Blockchain-Wikipedia]_ [Blockchain-Demo]_ [Blockchain-Bundesnetzagentur]_ [Digital-Signature-Wikipedia]_ [Digital-Signature-Videos]_ Blockchain-Varianten ~~~~~~~~~~~~~~~~~~~~ .. index:: Blockchain; Funktionsweise; Blockchain-Varianten Blockchain-Varianten lassen sich durch Ausgestaltung der Zugangsberechtigungen unterscheiden. So lassen sie sich grundsätzlich in öffentlich zugängliche (public blockchains bzw. permissionless blockchains) und geschlossene Blockchains (private bzw. permissioned blockchains) unterteilen. Eine Mischform hieraus stellen konsortiale Blockchains dar. **Vergleich öffentliche, private, konsortiale Blockchains** (siehe [Blockchain-Bundesnetzagentur]_ Seite 15 - Tabelle 1) +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ | | Öffentlich | Privat | Konsortial | +=======================+================================+===========================================+================================+ | Zugang | Offen zugänglich | Nur für zugelassene Teilnehmer | Nur für zugelassene Teilnehmer | +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ | Personenbezug | Pseudonyme Nutzung | Herstellbar | Herstellbar | +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ | Bildung neuer Blöcke | Dezentral durch | Zentral durch einzelne Instanz | Je nach Ausgestaltung | | | Ressourceneinsatz der Miner | | | +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ | Konsensmechanismus | i. d. R. Proof-of-Work, | i. d. R. Proof-of-Stake | Je nach Ausgestaltung | | | z. T. auch Proof-of-Stake | oder Proof-of-Authority | | +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ | (IT)-Sicherheit | Sehr hoch, | Eingriffe durch zentralen Akteur möglich, | Je nach Ausgestaltung | | | kein SinglePoint-of-Failure, | SinglePoint-of-Failure | | | | Manipulationen kaum möglich | | | +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ | Energieverbrauch | Hoch (beim Proof-of-Work) | Tendenziell niedrig | Je nach Ausgestaltung | +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ | Transparenz | Hoch durch offene | Nur für ausgewählten Teilnehmerkreis | Nur für ausgewählten | | | Transaktionshistorie | | Teilnehmerkreis | +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ | Systemänderungen | Niedrige Flexibilität | Hohe Flexibilität | i. d. R. Konsens im Konsortium | | | | | notwendig | +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ | Änderungen an bereits | Nicht möglich | Möglich durch zentrale Instanz | Möglich (z. B. durch | | durchgeführten | | | Mehrheitsbeschluss) | | Transaktionen | | | | +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ | Geschwindigkeit der | Gering (beim Proof-of-Work) | Tendenziell schnell | Tendenziell schneller | | Transaktionen | | | als bei öffentlichen | | | | | Blockchains | +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ | Kryptowährung | i. d. R. als Anreizmechanismus | Optional | Optional | | | zur Bildung neuer Blöcke | | | | | notwendig | | | +-----------------------+--------------------------------+-------------------------------------------+--------------------------------+ [Blockchain-Bundesnetzagentur]_ [Blockchain-Wikipedia]_ [Blockchain-Computerwoche]_