Blockchain

 

Die Blockchain ist eine unaufhaltbare Revolution und eine der größten Erfindungen, seit es das Internet gibt. Diese gleicht einer gigantischen, fälschungssicheren Datenbank, mit einer sich kontinuierlich erweiternden Liste an Datensätzen, genannt „Blöcke“, welche mittels kryptografischer Verfahren miteinander verkettet sind. Immer größere Unternehmen und namhafte Firmen fangen an, die Blockchain für sich zu nutzen, sowie Projekte auf dieser zu entwickeln. Das erste erfolgreiche Projekt auf eben dieser Blockchain war der mittlerweile bekannte Bitcoin. Eine digitale Währung, die völlig dezentralisiert funktioniert. Das bedeutet ohne jegliche Finanz-Institution, z. B. einem Bankinstitut, einer Zentralbank, einer Regierung oder jeglicher Mittelsmänner.

 

Eine Blockchain ist eine kontinuierlich erweiterbare Liste von Datensätzen, genannt „Blöcke“, welche mittels kryptographischer Verfahren miteinander verkettet sind. Jeder Block enthält dabei typischerweise einen kryptographisch sicheren Hash(Streuwert) des vorhergehenden Blocks, einen Zeitstempel und Transaktionsdaten. Der Begriff Blockchain wird allgemeiner für ein Konzept genutzt, mit dem ein Buchführungssystem dezentral geführt werden kann und dennoch ein Konsens über den richtigen Zustand der Buchführung erzielt wird, auch wenn viele Teilnehmer an der Buchführung beteiligt sind. Dieses Konzept wird als Distributed-Ledger-Technologie (dezentral geführte Kontobuchtechnologie) oder DLT bezeichnet. Worüber in dem Buchführungssystem Buch geführt 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 zerstören, die bereits bestätigt wurden.

Andere Teilnehmer der dezentralen Buchführung, die noch Kenntnis der späteren Transaktionen haben, würden eine manipulierte Kopie der Blockchain ganz einfach daran erkennen, dass sie Inkonsistenzen in den Berechnungen aufweist.
Das Verfahren der kryptografischen Verkettung in einem dezentral geführten Buchführungssystem ist die technische Basis für Kryptowährungen, kann aber darüber hinaus in verteilten Systemen zur Verbesserung bzw. Vereinfachung der Transaktionssicherheit im Vergleich zu zentralen Systemen beitragen.
Die Funktionsweise ähnelt dem Journal der Buchführung. Es wird daher auch als „Internet der Werte“ (Internet of Value) bezeichnet. Eine Blockchain ermöglicht es, dass in einem dezentralen Netzwerk eine Einigkeit zwischen den Knoten erzielt werden kann.
Die älteste noch in Betrieb befindliche Blockchain ist die der Kryptowährung Bitcoin.
Das Konzept der Blockchain als verteiltes Datenbankmanagementsystem wurde erstmals 2008 von Satoshi Nakamoto im White Paper zu Bitcoin beschrieben. Im Jahr darauf veröffentlichte er die erste Implementierung der Bitcoin-Software und startete dadurch die erste öffentlich verteilte Blockchain.

Eigenschaften der Blockchain

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 Capacity, 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.

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 von Bitcoin ist die älteste Blockchain. Sie startete im Januar 2009, hatte Anfang Dezember 2017 eine Größe von ca. 144,5 GB und lag am 9. Dezember 2017 auf ca. 11.900 Knoten redundant und öffentlich zugriffsbereit vor.

Anwendungsbeispiel Auditing

Beim Auditing 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. Eine dezentrale Speicherung der Blockchain gewährleistet jedoch eine relativ sichere Verwahrung des Audit-Trails.
Da einerseits vertrauliche Informationen gespeichert werden und andererseits kein Element der Blockchain gelöscht werden kann, ohne diese ungültig zu machen, kommt zudem eine Verschlüsselung der einzelnen Einträge zum Einsatz. Anstatt die Einträge aus der Blockchain zu löschen, kann dann der kryptographische Schlüssel gelöscht werden, um die Daten dauerhaft unlesbar zu machen.
Da die Implementierung von Blockchains und einer passenden kryptographischen Infrastruktur derzeit (Stand Mai 2018) mangels einfach zu verwendender Implementierungen sehr aufwändig und teuer 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, welche unter den Sarbanes-Oxley Act oder ähnlichen Richtlinien fallen.

Wie stellt die Blockchain den Konsens sicher?

Мining ist ein Prozess der Aufzeichnung der Transaktionen mit Kryptocoins in der Blockchain, die allgemein einsehbare Datenbank mit allen Operationen von Kryptocoins. Die Knoten des Netzes verwenden die Blockchain, um die reellen Transaktionen von den Versuchen zu unterscheiden, ein und dieselben Mittel mehrfach zu transferieren. Das Hauptziel von Mining ist der Konsens zwischen den Knoten des Netzes, um Transaktionen zu bestätigen und zu legitimieren. Zusätzlich ist Mining eine Option um für die Lösung bestimmter kryptographischer mathematischer Aufgaben den geminten Coin und die Transaktionsgebühren als Belohnung zu erhalten. Dieser Prozess erfordert bis dato viele Ressourcen und ist sehr kompliziert, da die Anzahl der Blöcke, ständig steigt.

Technischer Hintergrund

Während dem Mining führt der Computer eine kryptographische Hashfunktion aus. Den sogenannten Block Header. Für jeden neuen Hash benutzt die Mining-Software eine andere zufällig generierte Zahl für den Block-Header. Diese Nummer wird Nonce genannt. Abhängig von der Nonce und allem anderem, das im Block enthalten ist, erstellt die Hashfunktion einen Hash z.B. wie diesen:
93ef6f358fbb998c60802496863052290d4c63735b7fe5bdaac821de96a53a9a
Dieser Hash ist eine ziemlich lange Nummer. (Es ist eine Hexadezimalzahl. Das heisst die Buchstaben A-F sind die Nummern 10-15). Um das Mining schwierig zu machen gibt es noch die Ziel-Schwierigkeit. Um einen gültigen Block zu erstellen muss der Miner einen Hash finden, der kleiner als die Ziel-Schwierigkeit ist. Sagen wir zum Beispiel die Ziel-Schwierigkeit beträgt:
1000000000000000000000000000000000000000000000000000000000000000
Jede Nummer, die mit einer 0 beginnt, wäre somit kleiner als die Ziel-Schwierigkeit. z.B.:
0787a6fd6e0782f7f8058fbef45f5c17fe89086ad4e78a1520d06505acb4522f
Wenn wir nun die Ziel-Schwierigkeit auf
0100000000000000000000000000000000000000000000000000000000000000
reduzieren, brauchen wir nun zwei Nullen am Anfang, um kleiner als sie zu sein:
00db27957bd0ba06a5af9e6c81226d74312a7028cf9a08fa125e49f15cae4979

Weil die Ziel-Schwierigkeit eine so lange Zahl ist, benutzt man üblicherweise eine kleinere Nummer um die Ziel-Schwierigkeit anzugeben. Diese Nummer wird Mining-Schwierigkeit genannt. Die Mining-Schwierigkeit stellt dar, wie viel schwieriger es ist, den aktuellen Block gegenüber dem Ersten zu erstellen. Eine Schwierigkeit von 70000 bedeutet, dass der aktuelle Block 70.000 mal mehr Arbeit benötigt, als Satoshi Nakamoto benötigte, um den ersten Block zu erstellen.
Die Schwierigkeit wird alle 2016 Blöcke angepasst. Das Netzwerk versucht, die Schwierigkeit so anzupassen, dass es mit der Leistung des gesamten Netzwerks ungefähr 14 Tage dauert um 2016 Blöcke herzustellen. Deshalb steigt, wenn die Leistung des Netzwerks zunimmt, parallel der Schwierigkeitsgrad.
Die Welt des Minings befindet sich gerade im Übergang zur Anwendungsspezifisch integrierten Schaltung (Application Specific Integrated Circuit ASIC). Ein ASIC ist ein Chip mit einer elektronischen Schaltung, der nur für eine ganz bestimmte Arbeit hergestellt wird. Anders als FPGA's können ASIC's keine anderen Arbeiten ausführen. Ein ASIC, das für das Minen von Bitcoins gebaut wurde, kann und wird immer nur Bitcoins minen.
Der Stromverbrauch ist im Verhältnis zur Hashrate der wichtigste Faktor eines ASIC-Miners. Es ist sehr wahrscheinlich, dass ein ASIC-Gerät, das heute gekauft wird in zwei Jahren noch genügend energieeffizient ist und sein Ertrag die Stromkosten übertrifft. Der Ertrag jedoch wird auch von den Währungskursen bestimmt. Man kann aber in der Regel sagen: Je höher die Energieeffizienz, desto höher der Ertrag.

Die Ethereum Blockchain

Ethereum ist ein verteiltes System im Bereich der Finanztechnologie, welches das Anlegen, Verwalten und Ausführen von dezentralen Programmen bzw. Kontrakten (Smart Contracts) in einer eigenen Blockchain anbietet. Es stellt damit einen Gegenentwurf zur klassischen Client-Server-Architektur dar.
Ethereum verwendet die interne Kryptowährung Ether (abgekürzt mit ETH) als Zahlungsmittel für Transaktionsverarbeitungen, welche durch teilnehmende Computer abgewickelt werden.
Ether ist Stand Juli 2018 nach Bitcoin die Kryptowährung mit der zweitgrößten Marktkapitalisierung.

Technik

Ethereum basiert, wie auch Bitcoin, auf der Blockchain-Technologie. Im Unterschied zu Bitcoin ist Ethereum jedoch keine reine Kryptowährung, sondern auch eine Plattform für sogenannte Dapps (DistributedApps), die aus Smart Contracts bestehen. Für Smart Contracts gibt es eine Vielzahl von Anwendungen, unter anderem E-Voting-Systeme, virtuelle Organisationen, Identitätsmanagement und Crowdfunding.
Ethereum ist ein verteiltes System, dessen Teilnehmer (Ethereum Accounts oder Contracts) das Ethereum-eigene Peer-to-Peer-Netzwerk nutzen, um Daten ohne einen zentralen Server auszutauschen. Alle Teilnehmer arbeiten mit einer gemeinsamen Datenbasis, der Ethereum-Blockchain. Um teilzunehmen, bedarf es eines Ethereum-Clients, der sich vor der Verwendung mit dem Netzwerk synchronisiert, also jede seit der letzten Synchronisation in der Blockchain dokumentierte Transaktion herunterlädt und überprüft. Für die initiale Synchronisation gibt es bei einigen Clients einen Schnellmodus, bei dem nicht die komplette Blockchain heruntergeladen werden muss. Als Wallets dienen Ethereum Wallet, Mist, MyEtherWallet, Parity, sowie Exodus (Multi-Asset Wallet für verschiedene Kryptowährungen).
Erstellt wird Ethereum momentan noch durch einen sogenannten Proof-of-Work-Algorithmus, welcher im Laufe der Entwicklungsphasen jedoch durch einen Proof-of-Stake-Algorithmus ersetzt werden soll.
Ethereum besteht aus einer Reihe von Komponenten bzw. Konzepten, die ineinander verzahnt sind.

Peer to Peer Netzwerk

Die Vorteile von Kryptowährungen ergeben sich zu einem signifikanten Teil aus der dezentralen Peer-to-Peer-Architektur ohne zentraler Instanz und gleichberechtigter Knoten. Dieser Ansatz kommt bei sämtlichen Bausteinen des Systems zur Anwendung, z.B. bei der Datenspeicherung, Datenverifizierung, Datenveröffentlichung bzw. -verbreitung und Datenübertragung.
Zwischen den Knoten (=Bitcoin-Clients) besteht kein Vertrauen und jeder Knoten prüft selbstständig nach dem Bitcoin-Protokoll, ob durchgehende Transaktionen valide sind. Wenn ein neuer Knoten dem Netzwerk beitritt, werden zuerst über DNS-Server, die freiwillig von Teilnehmern betrieben werden, Verbindungen zu anderen Bitcoin-Clients gesucht. Dieser Vorgang wird auch Bootstrapping genannt und findet bei allen P2P-Systemen statt. Durch Routing-Algorithmen werden anschließend Verbindungen zu anderen Knoten aufgebaut. Ein Verlassen des Netzwerkes ist explizit nicht möglich. Knoten, die nicht mehr verbunden sind, werden nach einiger Zeit vom Routing-Algorithmus erkannt und aus der Liste von Knoten entfernt. Die Anzahl eingehender sowie ausgehender Verbindungen von/zu anderen Bitcoin-Knoten kann in den meisten Bitcoin-Clients festgelegt werden. Die Standardanzahl von eingehenden Verbindungen ist auf 8 festgelegt (Bitcoin-Core-Client). Der Durchschnitt von Verbindungen bei Knoten, die auch ausgehende Verbindungen akzeptieren, liegt bei 32. Im Bitcoin-Protokoll ist geregelt, wie die Knoten untereinander Transaktionen und Blöcke austauschen. Transaktionen und Blöcke werden nur weitergeleitet, wenn sie als valide verifiziert wurden. Invalide Transaktionen oder Blöcke werden ignoriert und verworfen.

Arten von Knoten / Nodes, die über TCP/IP im P2P-Netz erreichbar sind

Nodes

Ein Node ist ein Computer, der Teil des Ethereum-Netzwerkes ist. Dieser speichert entweder eine unvollständige (Light Client) oder vollständige (Full Node) Kopie der Blockchain und schreibt diese permanent fort.

Full Node

Full Nodes (oder Full Clients) speichern die gesamte Blockchain lokal und erlauben auf diese Weise die eigenständige Signatur von Transaktionen. Die Clients implementieren das gesamte Bitcoin-Protokoll und führen Aktionen selbstständig aus. Ein Beispiel dafür ist der Bitcoin-Core-Client. Die Setup-/ Downloadzeit sowie die CPU-Auslastung ist signifikant höher als bei Light Weight Nodes.

Light Weight Node

Diese Art von Knoten verwenden Full Nodes als Server, um Transaktionen durchzuführen. Solche Knoten werden z.B. auf mobilen Geräten verwendet, da diese weniger leistungsfähig sind und oft eine geringe Bandbreite aufweisen. Der Nachteil ist hierbei, dass den Servern in gewissen Dingen (z.B. Fehlermeldungen) vertraut werden muss. Die Bitcoins können aber nicht gestohlen werden oder sind in anderer Art und Weise unsicher, da die privaten Schlüssel vom Benutzer des Clients verwaltet wird.

Kryptographie

Zentrale Funktionsweisen von Kryptowährungen beruhen auf kryptographischen Hashfunktionen, der Public-Key-Kryptographie und digitalen Signaturen. Die Sicherheit dieser Verfahren ist mathematisch belegt und beruht auf NP-vollständigen Problemen, die nicht effizient gelöst werden können (z.B. Primfaktorenzerlegung).

Hashfunktionen

Eine Hashfunktion ist eine Einwegfunktion m à H(m), bei der H(m) keinen Rückschluss auf m zulässt. Ein gleicher Wert von m erzeugt immer den gleichen Hashwert. Unterschiedene Werte von m erzeugen praktisch immer unterschiedliche Hashwerte. Die Länge des erzeugten Hashwertes ist dabei durch das eingesetzte Hashverfahren bestimmt und ist unabhängig vom Eingabewert. Bei der Generierung von Bitcoin-Adressen werden die Hashfunktionen SHA-256 (Secure Hashing Algorithm) und RIPEMD-160 verwendet.SHA-256 ist Teil des SHA-2 Standards und gilt allgemein als sicherer Algorithmus. Die Länge des Hashwertes beträgt 256 Bits.

Smart Contracts

Smart Contracts sind Programme, die automatisch ausgeführt werden, sobald eine in dem Contract festgelegte Summe in Ether überwiesen wurde. Damit ist keine (manuelle) Überprüfung eines Zahlungseingangs mehr erforderlich, denn die Überweisung startet direkt die im Programm festgelegte Gegenleistung.
Jede Transaktion wird innerhalb der gesamten Blockchain – also auf allen mit dem Netzwerk verbundenen Geräten – gespeichert. Das dezentrale Konzept der Blockchain prüft die Integrität der gesamten Datenbank permanent.
Die Smart Contracts werden meist in der für Ethereum eigens entwickelten Programmiersprache Solidity geschrieben. Sie werden dann in Bytecode übersetzt und auf der Ethereum Virtual Machine (EVM) ausgeführt. Eine virtuelle Maschine kapselt grundsätzlich eine Client-Umgebung von der Host-Umgebung, also den anderen Anwendungen auf einem Computer, ab.

Die Kryptowährung der Ethereum Blockchain

Ether ist die „Währung“ des Ethereum-Netzwerkes. Das Netzwerk erlaubt es jedoch, beliebige weitere Währungen – so genannte Token – zu erzeugen, welche dann für Ether gehandelt werden können.

Decentralized Autonomous Organization DAO

Eine Decentralized Autonomous Organization DAO, (deutsch: dezentrale autonome Organisation) ist eine Organisation, deren Managementstruktur und -regeln digital und unveränderbar durch einen Smart Contract festgeschrieben werden, diese dezentral (hier durch das Ethereum-Netzwerk) ausgeführt werden und daher ohne konventionelle Entscheidungsgremien wie einen Vorstand auskommt.
The DAO ist die bekannteste DAO, die bisher im Ethereum-Blockchain implementiert wurde. Grob zusammengefasst besteht die Aufgabe von The DAO darin, Ether durch Verkauf von Stimmberechtigungsanteilen einzunehmen, ein Entscheidungsgremium über die Verwendung des gesammelten Ethers abzuhalten und das gesammelte Ether zu überweisen. Es handelt sich also im Prinzip um eine autonome und automatisierte Investmentfirma. The DAO wurde im April 2016 in die Blockchain hochgeladen. Die DAO-Token, die zur Stimmabgabe für die in The DAO getroffenen Entscheidungen berechtigen, können auf diversen Kryptobörsen gehandelt werden.
Am 17. Juni 2016 hat ein Unbekannter durch einen Fehler im Smart Contract von The DAO 3,6 Millionen Ether unbrauchbar gemacht. Diese waren zum damaligen Zeitpunkt mehr als 65 Millionen Euro wert. Eine harte Abspaltung (englisch: hard fork), die den Angriff rückgängig macht, war in der Community sehr umstritten, wurde dann aber in einer Abstimmung beschlossen. Durch diese harte Abspaltung wurden der angreifenden DAO die Ether entzogen; daraus entstanden zwei Blockchains, von denen die ursprüngliche als Ethereum Classic (ETC) weitergeführt wird.

 
Anmelden