# Blockchain

Eine Blockchain (auch Block Chain, englisch für Blockkette) ist eine kontinuierlich erweiterbare Liste von Datensätzen in einzelnen Blöcken. Neue Blöcke werden nach einem Konsensverfahren erstellt und mittels kryptographischer Verfahren an eine bestehende Kette angehängt. Jeder Block enthält dabei typischerweise einen kryptographisch sicheren Hash (Streuwert) des vorhergehenden Blocks, einen Zeitstempel und Transaktionsdaten.
Eine Blockchain ist ein Beispiel einer Distributed-Ledger-Technologie (dezentral geführte Kontobuchtechnologie) oder DLT und ähnelt in der Funktionsweise dem Journal der Buchführung. Die Blockchain wird auch als „Internet der Werte“ (Internet of values) bezeichnet und legt die technische Basis für Kryptowährungen wie Bitcoin.
Eine Blockchain kann in der Buchführung genutzt werden, wenn Einigkeit auf den aktuellen und fehlerfreien Zustand in einem dezentralen Netzwerk mit vielen Teilnehmern hergestellt werden muss (siehe auch: Byzantinischer Fehler). Was dokumentiert wird, ist für den Begriff der Blockchain unerheblich. Entscheidend ist, dass spätere Transaktionen auf früheren Transaktionen aufbauen und diese als richtig bestätigen, indem sie die Kenntnis der früheren Transaktionen beweisen. Damit wird es unmöglich gemacht, Existenz oder Inhalt der früheren Transaktionen zu manipulieren oder zu tilgen, ohne gleichzeitig alle späteren Transaktionen ebenfalls zu ändern. Andere Teilnehmer der dezentralen Buchführung erkennen eine Manipulation der Blockchain dann an der Inkonsistenz der Blöcke.

## Geschichte

Erste Grundlagen zur kryptografisch abgesicherten Verkettung einzelner Blöcke wurden 1991 von Stuart Haber und W. Scott Stornetta, 1996 von Ross J. Anderson und 1998 von Bruce Schneier und John Kelsey beschrieben. 1998 arbeitete auch Nick Szabo an einem Mechanismus für eine dezentralisierte digitale Währung, die er „Bit Gold“ nannte. Im Jahr 2000 entwickelte Stefan Konst eine allgemeine Theorie zu kryptografisch abgesicherten Verkettungen und leitete daraus verschiedene Lösungen zur Umsetzung ab.
Das Konzept der Blockchain als verteiltes Datenbankmanagementsystem wurde erstmals 2008 von einer Person oder Personengruppe unter dem Pseudonym Satoshi Nakamoto im White Paper zu Bitcoin beschrieben. Im Jahr darauf veröffentlichte „Satoshi Nakamoto“ die erste Implementierung der Bitcoin-Software und startete dadurch die erste öffentlich verteilte Blockchain.

## Eigenschaften
### Verkettungsprinzip

    Eine Blockchain ist eine verkettete Folge von Datenblöcken, die über die Zeit weiter fortgeschrieben wird.

### Dezentrale Speicherung

    Eine Blockchain wird nicht zentral gespeichert, sondern als verteiltes Register geführt. Alle Beteiligten speichern eine eigene Kopie und schreiben diese fort.

### Konsensmechanismus

    Es muss sichergestellt werden, dass eine bei allen Beteiligten identische Kette entsteht. Hierfür müssen zuerst Vorschläge für neue Blöcke erarbeitet werden. Dies geschieht durch Validatoren (die bei Bitcoin „Miner“ genannt werden). Dann müssen sich die Beteiligten einigen, welcher vorgeschlagene Block tatsächlich in die Kette eingefügt wird. Dies erfolgt durch ein sogenanntes Konsensprotokoll, ein algorithmisches Verfahren zur Abstimmung.

### Manipulationssicherheit

    Durch kryptographische Verfahren wird sichergestellt, dass die Blockchain nicht nachträglich geändert werden kann. Die Kette der Blöcke ist somit unveränderbar, fälschungs- und manipulationssicher.

### Transparenz/Vertraulichkeit

    Die auf der Blockchain gespeicherten Daten sind von allen Beteiligten einsehbar. Sie sind deshalb aber nicht unbedingt auch für alle sinnvoll lesbar, denn Inhalte können verschlüsselt abgespeichert werden. Blockchains erlauben so eine flexible Ausgestaltung des Vertraulichkeitsgrads.

### Nichtabstreitbarkeit

    Durch die Nutzung digitaler Signaturen sind Informationen in der Blockchain speicherbar, die fälschungssicher nachweisen, dass Teilnehmer unabstreitbar bestimmte Daten hinterlegt haben, etwa Transaktionen angestoßen haben.

## Konsensverfahren

Neue Blöcke werden über ein Konsensverfahren geschaffen und anschließend an die Blockchain angehängt. Das populärste Konsensverfahren ist hierbei die Proof-of-Work-Methode; es bestehen jedoch zahlreiche andere Formen, Konsens herzustellen (Proof of Stake, Proof of Space, Proof of Burn, Proof of Activity). Durch die aufeinander aufbauende Speicherung von Daten in einer Blockchain können diese nicht nachträglich geändert werden, ohne die Integrität des Gesamtsystems zu beschädigen. Hierdurch wird die Manipulation von Daten erheblich erschwert. Der dezentrale Konsensmechanismus ersetzt die Notwendigkeit einer vertrauenswürdigen dritten Instanz zur Integritätsbestätigung von Transaktionen.

### Proof of Work

Der Proof-of-Work stellt einen Arbeitsnachweis, z. B. die Lösung einer mathematischen Aufgabe, dar. Das Ergebnis kann hingegen ohne großen Aufwand nachgeprüft werden. Mit diesem Verfahren wird das übermäßige Erzeugen von neuen Blöcken eingeschränkt, indem Rechenarbeit erbracht werden muss.

### Proof of Stake

Der Proof of Stake stellt einen Nachweis des Anteils am Netzwerk dar. Der Anteil bzw. der „Stake“ jedes Teilnehmers wird aus Teilnahmedauer und/oder Vermögen ermittelt und fließt in eine gewichtete Zufallsauswahl ein. Ein deterministischer Algorithmus wählt aus dieser Zahl den Knoten aus, der einen neuen Block hinzufügt.

## Skalierbarkeit

Insbesondere bei der Anwendung als Kryptowährung gibt es in der Praxis Einschränkungen im Zeitverhalten sowie im Kommunikations- und Speicherbedarf. Wer die Glaubwürdigkeit einer Transaktion oder eines Kontostands selbst überprüfen möchte, muss die aktuelle Blockchain bis zurück zum Genesis-Block kennen. Dazu muss jeder Teilnehmer eine vollständige Kopie der bisherigen Buchhaltung speichern. Der immense Speicherbedarf könnte dann mit Archiv-Servern realisiert werden, die als einzige die gesamte Blockchain speichern. Darauf aufbauend arbeiten voll validierende Server, indem sie initial die Blockchain aus den Archivservern laden, aber im Betrieb nur mit einem Teil davon arbeiten. Sie übernehmen die eigentliche Last der anfallenden Buchungen. Teilnehmer könnten dann Software zur vereinfachten Überprüfung von Zahlungen betreiben und von den Servern nur Teilinformationen empfangen.
Die limitierte Rate zur Erzeugung neuer Blöcke und der Indeterminismus des Konsensverfahrens können zu unvorhersehbar langen Bestätigungszeiten führen. Im Proof-of-Work-Verfahren führen Schwankungen der tatsächlich betriebenen Rechenleistung und die dem Prinzip immanente Streuung zu Wartezeiten der Transaktions-Bestätigungen einem Vielfachen des Erwartungswertes. Durch das Anpassen des Schwierigkeitsgrads in hoher Frequenz können diese Schwankungen gering gehalten werden.

### Teilbare Blöcke

Wenn in jedem Block der Hashwert über den vollständigen Vorgänger gespeichert wird, benötigt man jeweils auch den vollständigen Block, um die Lückenlosigkeit der Kette zu überprüfen. Man benötigt also die gesamte Buchhaltung, auch wenn man nicht an jeder einzelnen Buchung interessiert ist. Um das zu verhindern, werden Hash-Bäume eingesetzt. Anstatt einen Hashwert über den gesamten Block zu bestimmen, kann man auch Hashwerte einzelner Transaktionen errechnen und diese als Hash-Baum organisieren. An der Wurzel des Baumes erhält man damit wieder einen Hashwert, der alle Transaktionen zusammenfassend absichert. Damit kann ein Block-Header erstellt werden, der nur noch den Hashwert des Vorgängers, den Nonce und den Wurzel-Hashwert des eigenen Baums enthält.
Der einzelne Block wird dadurch zwar größer, aber die Lückenlosigkeit der Kette lässt sich jetzt allein anhand der vergleichsweise kleinen Block-Header überprüfen. Diese Header lassen sich also bequem speichern und sind in ihrem Speicherbedarf nicht von der Anzahl der durchgeführten Transaktionen abhängig.
Die Blockchain ist damit eine Reihe von Hashbäumen, bei denen zunächst nur die Wurzel und deren Verkettung von Interesse sind. Möchte eine SPV-Anwendung eine einzelne Transaktion überprüfen, so benötigt sie nur den dafür relevanten Teilbaum, um den Hashwert der Transaktion anhand der Werte dieses Teilbaums bis zur Wurzel überprüfen zu können. Dem voll validierenden Server oder den Archiv-Servern, von dem der Teilbaum bezogen wird, muss nicht vertraut werden. Der Teilbaum stellt mit seinen Hashwerten die überprüfbare Verbindung zwischen der einzelnen Transaktion und dem Block-Header des Blocks, in dem sie gebucht wurde, dar. Dieses Verfahren erlaubt es mit sehr geringem Aufwand, die Gültigkeit einer Buchung zu kontrollieren, ohne die restliche Buchhaltung zu kennen.
Die relativ kleinen Block-Header sind mit ein Grund dafür, dass spezialisierte Hardware extrem effizient für das Mining im Proof of Work eingesetzt werden kann. Es wird für jeden neuen Nonce nur der Hashwert des kleinen Block-Header und nicht des gesamten Blocks berechnet. Der Speicherbedarf ist also sehr gering. Genau das versuchen neuere Hashfunktionen wie scrypt zu vermeiden, indem sie den Speicherbedarf künstlich erhöhen und damit den Einfluss spezieller Hardware auf z. B. die Währung reduzieren.

## Anwendungsbeispiele
### Bitcoin

Bei Bitcoin besteht eine Blockchain aus einer Reihe von Datenblöcken, in denen jeweils eine oder mehrere Transaktionen zusammengefasst und mit einer Prüfsumme versehen sind, d. h., sie werden jeweils paarweise zu einem Hash-Baum zusammengefasst. Die Wurzel des Baumes (auch Merkle-Root, bzw. Top-Hash genannt) wird dann im zugehörigen Header gespeichert. Der gesamte Header wird dann ebenfalls gehasht; dieser Wert wird im nachfolgenden Header abgespeichert. So wird sichergestellt, dass keine Transaktion verändert werden kann, ohne den zugehörigen Header und alle nachfolgenden Blöcke ebenfalls zu ändern.
Die Blockchain in Bitcoin wird durch eine Gemeinschaft von anonymen Knoten im Netzwerk betrieben, die sicherstellen, dass jeder Block einen erheblichen Arbeitsaufwand erfordert, um zu beweisen, dass er korrekt erstellt wurde. Dies verhindert, dass unzuverlässige Knoten vergangene Blöcke ändern und erfordert, dass sie härter arbeiten als ehrliche Knoten, die nur neue Blöcke hinzufügen möchten. Da die Blöcke miteinander verkettet sind, wird es unmöglich, Transaktionen in einem Block zu ändern, ohne auch alle nachfolgenden Blöcke zu ändern. Dies erhöht die Kosten für die Änderung eines bestimmten Blocks mit jedem weiteren hinzugefügten Block. In Bitcoin wird ein Arbeitsnachweis (Proof of Work) verwendet, um die Sicherheit der Blockchain zu gewährleisten. Dabei wird die scheinbar zufällige Natur kryptographischer Hashes ausgenutzt. Ein Hash-Algorithmus wandelt beliebige Daten in eine einzigartige, scheinbar zufällige Zeichenfolge um. Wenn die Daten auch nur geringfügig geändert werden, ändert sich die gesamte Zeichenfolge. Dadurch ist es unmöglich, die Daten so zu ändern, dass die Zeichenfolge vorhersehbar wird. Der Arbeitsnachweis erfordert, dass ein Knoten eine bestimmte Rechenleistung aufwendet, um einen Block hinzuzufügen. Dies ist notwendig, um das Netzwerk vor Angriffen zu schützen und sicherzustellen, dass neue Blöcke nur von vertrauenswürdigen Knoten hinzugefügt werden.
Die Blockchain von Bitcoin ist die älteste Blockchain. Sie startete im Januar 2009, hatte am 19. Februar 2023 eine Größe von ca. 457 GB, lag auf ca. 1548 Knoten redundant und öffentlich zugriffsbereit vor und verfügte über eine Marktkapitalisierung von 477 Mrd. US$.

### Auditing

Beim Auditing in der Informationstechnik geht es darum, sicherheitskritische Operationen von Softwareprozessen aufzuzeichnen. Dies betrifft insbesondere den Zugriff auf und die Veränderung von vertraulichen oder kritischen Informationen. Das Auditing eignet sich hierbei deshalb für eine Blockchain, weil es relativ geringe Datenmengen produziert und gleichzeitig hohe Sicherheitsanforderungen aufweist.
Eine Blockchain kann hierbei das Audit-Log (auch als Audit-Trail bezeichnet) vor Veränderung schützen. Zudem sollten die einzelnen Einträge mit einer digitalen Signatur versehen werden, um die Echtheit zu gewährleisten. Ein dezentraler Konsensmechanismus, wie bei Bitcoin, wird nicht zwingend benötigt.
Da einerseits vertrauliche Informationen gespeichert werden und andererseits kein Element der Blockchain gelöscht werden kann, ohne diese ungültig zu machen, kann zudem eine Verschlüsselung der einzelnen Einträge erfolgen. Da die Implementierung von Blockchains derzeit (Stand Mai 2017) mangels einfach zu verwendender Implementierungen sehr aufwändig ist, empfiehlt sich der Einsatz nur für besonders schützenswerte Informationen.
Einsatzbeispiele sind das Auditing bei Systemen für medizinische Informationen (z. B. Elektronische Gesundheitsakte), Verträgen und Geldtransaktionen mit hohem finanziellen Wert, militärischen Geheimnissen, der Gesetzgebung und der elektronischen Stimmabgabe, dem Sicherheitsmanagement kritischer Anlagen oder Daten von Großunternehmen, die unter den Sarbanes-Oxley Act oder ähnliche Richtlinien fallen.
Wie im Juli 2018 bekannt wurde, testen die vier Wirtschaftsprüfungsgesellschaften Deloitte, KPMG, PricewaterhouseCoopers International und Ernst & Young einen Blockchain-Dienst zur Prüfung der Zwischenberichte von Aktiengesellschaften. Ziel ist es, den Wirtschaftsprüfungsunternehmen die Möglichkeit zu geben, die Geschäftsvorgänge durch eine nachvollziehbare und manipulationssichere Datenkette auf dezentrale Weise zu verfolgen, wodurch der Bestätigungsprozess optimiert und automatisiert wird.
Dazu entwickelt und betreibt ChainSecurity automatisierte Scan-Programme für smarte Verträge. Anbieter solcher smarten Verträge können sich von der Firma auditieren und somit die Sicherheit ihrer Verträge garantieren lassen. Chainsecurity ist somit vergleichbar einem TÜV für smarte Verträge und wurde im Jahr 2017 von dem ETH-Professor Martin Vechev und den ehemaligen ETH-Doktoranden Hubert Ritzdorf und Petar Tsankov gegründet. Es verfolgt das Ziel die Blockchain-Technologien sicherer zu machen.

## Unterschiedliche Sichtweisen auf die Blockchain-Technologie

Die verschiedenen Disziplinen können die Blockchain-Technologie aus sehr unterschiedlichen Blickwinkeln betrachten und bewerten.
Für einen Informatiker produziert die Blockchain-Technologie eine einfache Datenstruktur, die Blockchain, die Daten als Transaktionen in einzelnen Blöcken verkettet und in einem verteilten Peer-to-Peer-Netz redundant verwaltet. Die Alternative wäre eine konventionelle Datenbank, die kontinuierlich von allen Teilnehmern repliziert wird.
Für die Cyber-Sicherheitsexperten hat die Blockchain-Technologie den Vorteil, dass die Daten als Transaktionen in den einzelnen Blöcken manipulationssicher gespeichert werden können, das heißt, die Teilnehmer der Blockchain sind in der Lage, die Echtheit, den Ursprung und die Unversehrtheit der gespeicherten Daten (Transaktionen) zu überprüfen. Die Alternative wäre hier zum Beispiel ein PKI-System als zentraler Vertrauensdienstanbieter.
Für den Anwendungsdesigner bedeutet die Nutzung der Blockchain-Technologie eine vertrauenswürdige Zusammenarbeit zwischen verschiedenen Organisationen, ohne die Einbindung einer zentralen Instanz, eines PKI-Systems, Notars usw. Die Alternative könnte hier ein kostenintensiver Treuhänder sein, der die Zusammenarbeit und Eigentumsübertragung zwischen den verschiedenen Organisationen verwaltet und verifiziert. Da die Blockchain-Technologie dies automatisiert macht, werden durch die vertrauenswürdige Zusammenarbeit die Prozesse auch sehr viel schneller und effektiver.
   „Die Grundidee des Kerbstocks ist äusserst einfach: Bei dieser genauso primitiven wie raffinierten Technik werden zwei Stöcke nebeneinandergelegt und quer eingeritzt, wobei jede Kerbe einer Schuld entspricht. Der Gläubiger nimmt einen Stock, der Schuldner den anderen. Der Gläubiger wird keine Kerbe hinzufügen und der Schuldner keine beseitigen können, da der Vergleich der zwei Stöcke die Fälschung sofort offenbaren würde. Ziemlich einfach, oder? Eine uralte, aber auch höchst moderne Technik. Denn die Blockchain – diese Erfindung, die uns als die grösste Neuheit unserer Zeit erscheint – ist nichts anderes als ein weltweites, auf unzählige Computer ausgeweitetes Kerbholz. Anstelle eines von zwei Personen geteilten Zählstabs haben wir es mit einer Spur zu tun, die auf möglichst vielen Festplatten gespeichert wird, damit das Hinzufügen oder Löschen von Spuren (Blöcken) verhindert wird.“

## Kritik / Beurteilungen

Von Expertenseite wird der Nutzen der Blockchaintechnologie, im Vergleich zu herkömmlichen Verfahren, nicht durchgängig positiv beurteilt. Kritisiert werden am häufigsten die geringe Effizienz der langen Datenketten und der hohe Energieverbrauch bei dem für das Erzeugen eines neuen gültigen Blocks häufig eingesetzten Verfahren Proof-of-Work. Neben technischer Kritik von Entwicklerseite warnen auch Fachleute aus der Wirtschafts- und Finanzwelt vor Euphorie für eine „Lösung“, der das Problem fehle. Die deutsche Expertenkommission Forschung und Innovation sieht in ihrem Gutachten 2019 in der Blockchain-Technologie „hohe Nutzenpotenziale für Unternehmen, Bevölkerung und Verwaltung“. Mögliche Anwendungen liegen unter anderem in internationalen Lieferketten und im Stromhandel.
Der Experte für Kryptographie und Computersicherheit Bruce Schneier warnt vor falschem Vertrauen in Blockchain und dem Mangel an Anwendungsfällen. Er sehe bis jetzt keinen Einsatzzweck für die Blockchain.
   „Jedes Unternehmen, das heute auf die Blockchain setzt, könnte eigentlich auf sie verzichten. Niemand hatte jemals ein Problem, für das die Blockchain eine Lösung ist. Stattdessen nehmen die Leute die Technologie und machen sich auf die Suche nach Problemen.“