Kryptowährungen verstehen, selbst kreieren

Blockchain-Technologien im Detail

16.06.2017 von Thomas Kaltofen
Dieser Artikel betrachtet Ausprägungen von Blockchains, es werden Mining-Prinzipien diskutiert und die Erstellung einer eigenen Kryptowährung beschrieben.

Während in den bisher erschienenen Artikel Grundlagen und Use Cases vorgestellt wurden, soll dieser Beitrag technische Details der Blockchain erläutern. Abschließend soll in diesen Artikel erklärt werden, wie man selbst eine eigene Kryptowährung entwirft und implementiert.

Die Bitcoin Blockchain nutzt das Proof-of-Work-Prinzip. Dabei werden die Miner für das Erstellen und die Verschlüsselung einens neuen Blockes mit Bitcoins belohnt. Größter Nachteil ist der große Energiehunger. Andere Prinzipien wie Proof of Stake sind wesentlich umweltfreundlicher ("Green Mining").
Foto: FabreGov - shutterstock.com

Was ist eine Blockchain?

Die Blockchain ist eine neuartige Technik zum Speichern von Daten. Sie erlaubt das sichere Management von Informationen jeglicher Art. Elementare Einheiten dieser Technologie sind Transaktionen, die verifiziert, validiert und zu Blöcken zusammengefasst werden. Diese Blöcke werden anschließen verkettet und die Datenbank wächst somit linear weiter.

Die Blockchain hat das Potential, große Teile der Wirtschaft umzuwälzen und neu zu ordnen. Die Blockchain Datenbank kann als absolut manipulationssicher angesehen werden, da die Blöcke mit einer Hash-Funktion aufwendig verschlüsselt werden und Kopien der Datei im Internet verbreitet werden.

Arten von Blockchains

Im Prinzip unterscheidet man Blockchains zwischen einer privaten und einer öffentlichen Variante, wobei es noch die Konsortium-Blockchain als Mischform gibt. Dieser Abschnitt erläutert die Arten und geht kurz auf die jeweiligen Vorteile ein.

Öffentliche Blockchains (Public Blockchains)

Eine öffentliche Blockchain ist ein offenes System, bei dem jeder Teilnehmer in der Welt die Daten einsehen, Transaktionen ausführen und deren Richtigkeit nachvollziehen und anderweitig an dem Konsensprozess (englisch consensus process) teilnehmen kann.

Der Konsensprozess bestimmt, welche Blöcke zu der Kette angefügt werden und was deren aktueller Zustand ist. Öffentliche Blockchains sind durch Krypto-Ökonomie (englisch cryptoeconomics) gesichert, dabei handelt es sich um eine Kombination aus wirtschaftlichen Anreizen und kryptografischen Verschlüsselungsmethoden. Diese Mechanismen sind unter anderem bekannt als "Proof of Work", "Proof of Stake". Die verschiedenen Mining-Prinzipien werden in diesen Artikel vorgestellt. Diese Mechanismen folgen den allgemeinen Grundsatz, dass das Ausmaß, in dem jemand im Konsensprozess Einfluss nehmen kann, proportional zur Menge der wirtschaftlichen Ressourcen ist, die sie tragen können. Diese Blockketten gelten generell als "vollständig dezentralisiert".

Konsortium-Blockchains (Consortium Blockchains)

Die Konsortium-Blockchain ist eine Blockchain, bei welcher der Konsensprozess durch einen vorgewählten Satz von Knoten gesteuert wird. Ein Konsortium ist ein Unternehmenszusammenschluss mehrerer rechtlich und wirtschaftlich selbständig bleibender Unternehmen zur Durchführung eines vereinbarten Geschäftszwecks.

Für die Blockchain kann man sich zum Beispiel ein Konsortium von 15 Finanzinstituten vorstellen. Jeder dieser Teilnehmer betreibt einen oder mehrere Knoten. Das Recht, die Blockchain zu lesen, kann als öffentlich deklariert oder auf bestimmte Teilnehmer beschränkt werden. Ferner gibt es auch sogenannte Hybrid-Routen, die auch als Wurzelhashes der Blöcke bezeichnet werden. Diese Blockchains werden auch als "teilweise dezentralisiert" betitelt.

Private Blockchains (Fully Private Blockchains)

Als Alternative zu den öffentlichen Blockchains wurden verschiedene Blockchains geschaffen, bei denen die Transaktionen durch vertrauenswürdige Instanzen validiert werden. Dies kann auch dadurch erreicht werden, dass der Zugriff auf die Blockchain selbst auf eine kleinere Zahl vertrauenswürdige Benutzer eingeschränkt wird. Solche Blockchains werden als private Blockchains bezeichnet und ermöglichen die Vergabe von Zugriffsrechten auf die Blockchain.

Vergleich Öffentliche/Private/Konsortium-Blockchain

Öffentliche Blockchain

Konsortium-Blockchain

Private Blockchain

Sicherheit

Proof of Work/Proof of Stake

durch Satz von Knoten gesteuert

vorab festgelegte Nutzer

Zugriff

offener Schreib- und Lesezugriff

vom Konsortium gesteuert

Berechtigungsvergabe für Schreib- oder Lesezugriff

Geschwindigkeit

langsam

schneller

sehr schnell

Identität

anonym/pseudonym

anonym oder öffentlich

bekannte Identitäten

Blockbildung in der Blockchain - Das Mining

Das Mining (deutsch Schürfen) bezeichnet die Produktion des Blockes. Es ist ein wesentlicher Schritt in der Abwicklung des Blockchain-Prozesses. Das Mining ersetzt die zentrale Institution (etwa eine Zentralbank), die sonst neue Einheiten einer Währung ausgibt. Die gängigste Technik, die auch bei der Kryptowährung Bitcoin angewandt wird, ist das sogenannte "Proof of Work". Dabei muss der Miner ein schwieriges, mathematisches Rätsel lösen um zum Zug zu kommen. Dabei konkurrieren verschiedene Miner miteinander.

Wer das Rätsel zuerst gelöst hat, kommt zum Zug und erhält für seinen Dienst eine Gebühr in Form von Bitcoins. Für diese Technik werden enorme Rechenleistungen benötigt, was mit einem immensen Stromverbrauch einhergeht. Im Folgenden werden weitere Techniken besprochen.

Proof of Work (PoW)

Mit Bitcoin, das die Blockchain-Technologie populär gemacht hat, wurde der sog. "Proof of Work"-Algorithmus (PoW) entwickelt. Da es sich bei Bitcoin um eine öffentliche Blockchain mit sich gegenseitig nicht bekannten Teilnehmern handelt, bestehen hohe Anforderungen an die Sicherheit und Funktionsfähigkeit des Algorithmus. Prinzipiell kann jeder Teilnehmer im Bitcoin-Netzwerk an der Blockerzeugung mitwirken. Das PoW-Konzept ist dabei so konstruiert, dass ungefähr alle zehn Minuten irgendein Teilnehmer des Systems die in dieser Zeit bei ihm angelangten Transaktionen zu einem nicht mehr veränderbaren Block zusammenfasst. Dieser wird dann an alle verteilt und ist schließlich Teil der kollektiven Blockchain. Der Empfänger einer Transaktion muss also so lange warten, bis er einen Block bekommt, der die Transaktion enthält. Dann ist sie beglaubigt.

Die Funktionsweise von Blockchain
Blockchain
Blockchain wird in den kommenden Jahren zur Schlüsseltechnologie in der IT werden.
(1) Transaktion
Die Transaktion ist die elementare Grundeinheit der Blockchain. Zwei Parteien tauschen Informationen miteinander aus. Dies kann der Transfer von Geld oder Vermögenswerten, der Abschluss eines Vertrags, eine Krankenakte oder eine Urkunde sein, die digital gespeichert wurde. Transaktionen funktionieren im Prinzip wie das Versenden von E-Mails.
(2) Verifizierung
Die Verifizierung prüft, ob eine Partei die entsprechenden Rechte für die Transaktion hat. Die Prüfung erfolgt augenblicklich oder es wird in eine Warteschlange geschrieben, die die Prüfung später durchführt. An dieser Stelle werden Knoten, also Computer oder Server im Netzwerk, eingebunden und die Transaktion verifiziert.
(3) Struktur
Die Transaktionen werden zu Blöcken zusammengefasst, wobei diese mit einer Hash-Funktion als Bit-Nummer verschlüsselt werden. Die Blöcke können durch die Zuweisung des Hash-Wertes eindeutig identifiziert werden. Ein Block enthält einen Header, eine Referenz auf den vorhergehenden Block und eine Gruppe von Transaktionen. Die Abfolge der verlinkten Hashes erzeugt eine sichere und unabhängige Kette.
(4) Validierung
Bevor die Blöcke erzeugt werden, müssen die Informationen validiert werden. Das am meisten verbreitete Konzept für die Validierung von Open-Source-Blockchains ist das „Proof of Work“-Prinzip. Dieses Verfahren stellt in der Regel die Lösung einer schweren mathematischen Aufgabe durch den Nutzer beziehungsweise dessen Computer dar.
(5) Blockchain Mining
Der Begriff Mining stammt aus der Bergbau und meint das „Schürfen“. Bei diesem Vorgang wird der Block erzeugt und gehasht. Um zum Zug zu kommen, müssen die Miner ein mathematisches Rätsel lösen. Wer als Erstes die Lösung hat, wird als Miner akzeptiert. Der Miner erhält für seine Arbeit ein Honorar in Form von Kryptowährung (Bitcoin).
(6) Die Kette
Nachdem die Blöcke validiert wurden und der Miner seine Arbeit verrichtet hat, werden die Kopien der Blöcke im Netzwerk an die Knoten verteilt. Jeder Knoten fügt den Block an der Kette in unveränderlicher und unmanipulierbarer Weise an.
(7) Verteidigung
Wenn ein unehrlicher Miner versucht, einen Block in der Kette zu ändern, so werden auch die Hash-Werte des Blockes und der nachfolgenden Blöcke geändert. Die anderen Knoten werden diese Manipulation erkennen und den Block von der Hauptkette ausschließen.

Um die Teilnehmer des Bitcoin-Systems zum Erzeugen der Blöcke zu bewegen, wird für jeden Block, der Bestandteil der Blockchain wird, eine Belohnung in Form einer festgelegten Anzahl an Bitcoins gewährt. Diese Bitcoins werden zu genau diesem Zeitpunkt erschaffen. Derjenige, der zuerst einen Block erzeugt, bekommt als Einziger die Belohnung. Zusätzlich erhält der Miner die in den Transaktionen enthaltenen Transaktionsgebühren. Der Algorithmus passt sich den Schwierigkeitsgrad automatisch an die am Mining beteiligte Rechenleistung an. Je mehr Teilnehmer also an dem Mining teilnehmen beziehungsweise je stärker deren Rechenleistung ist, desto schwieriger wird die Aufgabe. Größter Kritikpunkt am PoW ist der immense Stromverbrauch, da enorme Rechenleistungen nötig sind um das Rätsel zu lösen.

Proof of Stake (PoS)

Die Stimmgewalt eines Miners im Proof-of-Work folgt aus seiner Rechenleistung, da diese die Wahrscheinlichkeit der Blockgenerierung im Netzwerk und somit auch seinen Einfluss bestimmt. Die grundlegende Idee des Proof of Stake (PoS) ist die Entkoppelung der Stimmgewalt eines Miners von seiner Rechenleistung, hin zur Gewichtung anhand der Anzahl der sich in seinem Besitz befindenden Coins.

Hier hängt die Wahrscheinlichkeit für die Erzeugung eines Blocks durch einen Teilnehmer von dessen wertmäßigem Anteil am Netzwerk ab, das heißt dem Anteil seines Vermögens in der jeweiligen virtuellen Währung am Gesamtvermögen. Der durch den PoW entstehende Rechenaufwand und die damit verbundenen Ressourcen wird somit eingespart. Ein weiterer Vorteil sind die kürzeren Blockerzeugungszyklen. Untersuchungen zeigen jedoch, dass mit diesem Ansatz im Vergleich zu PoW andere und zum Teil gravierende Problembereiche hinsichtlich der Sicherheit der Blockchain einhergehen.

Die bei der Blockgenerierung als Belohnung geschaffenen Coins und einbehaltene Transaktionsgebühren werden zufällig und periodisch über die Coin-Besitzer ausgeschüttet, wobei die Ausschüttungswahrscheinlichkeit eines Teilnehmers anhand der kumulierten Wertigkeit der von ihm repräsentierten Coins und der Dauer der Verfügungsgewalt über eben diese ermittelt wird. Als Schutz vor Manipulation wird nun anders als beim PoW nicht die Rechenleistung, sondern das Vermögen herangezogen. Ein Angreifer muss mehr als die Hälfte des Gesamtvermögens besitzen, um mit ausreichend hoher Wahrscheinlichkeit eine gültige parallele Chain führen zu können.

Proof of Activity (PoA)

Mit dem Proof of Activity wird die Idee einer hybriden Blockchain weiter verfolgt, indem zur gleichen Zeit PoW und PoS Blöcke gesucht werden. Der Idee ist bisher noch keine Umsetzung gefolgt, allerdings bietet die angestrebte Art der Block-Generierung Vorteile hingegen einer reinen PoW- oder PoS-Methodik.

So wird zunächst ein PoW mit vorgegebener Komplexität gesucht und nach erfolgreicher Suche ins Netzwerk gesendet. Der Block gilt dann als vollwertig, wenn eine vordefinierte Anzahl der N zufälligen Besitzer den Block mit ihrem jeweiligen Private Key signiert haben. Die Belohnung für die Blockgenerierung wird zwischen dem Proof-of-Activity-Miner und den signierenden Teilnehmern aufgeteilt. Somit wird zum einen die Arbeit belohnt und zum anderen eine Art Verzinsung des Guthabens gewährleistet. Die im Verfahren inbegriffene Mehrfachprüfung eines Blocks erschwert zusätzlich eine Manipulation der Blockchain.

Proof of Burn (PoB)

Das PoB ist eine weitere stromsparende Alternative zum Proof of Work. Bei diesem Prinzip muss man Coins zerstören, also an eine Adresse ohne benutzbaren Private Key senden, um später Coins "minen" zu können. PoB versucht nun, ohne unnötigen Ressourcenverbrauch in der abgeschlossenen Welt eine Kryptowährung zu "simulieren". Wer bei PoB minen will, muss Coins zerstören und bekommt je nach Höhe des "verbrannten" Betrags eine Art Punktewert zugewiesen, den man mit der Hashrate eines Miners vergleichen kann.

Der Einsatz von PoB ist, bedingt durch das vorausgesetzte digitale Umlaufvermögen, nur in Verbindung mit einem Mining-Verfahren möglich. So muss zunächst Vermögen geschürft werden, um dann verbrannt werden zu können. Ein Angriff auf eine PoB-basierte Kryptowährung ist für den Angreifer sehr riskant, da er mehr als die Hälfte aller verbrannten Coins stellen muss, wodurch sein eingesetztes Vermögen anders als bei PoS basierten Währungen bei Misserfolg unwiederbringlich verloren ist.

Proof of Capacity (PoC)

Dem Namen entsprechend setzt der PoC anstelle von Rechenleistung auf Speichergröße. Das Mining-Prinzip des PoC sieht vor, dass Miner Datensegmente (Plots) generieren und auf einer Festplatte speichern.

Neben der angestrebten erhöhten Energieeffizienz soll somit auch der Schutz vor Bot-Netzen gewährleistet werden. Die Gefah, dass Rechnerressourcen mihilfe eines Trojaners gestohlen werden, wird so effizient verhindert. Der Speicherplatzbedarf durch das Verfahren ist so groß, dass eine Infizierung durch einen Terabyte-großen Trojaner schwerlich unbemerkt bleibt.

Wie erstelle ich eine eigene Kryptowährung?

Mit zunehmender Digitalisierung nimmt auch die Bedeutung und Bekanntheit der Kryptowährungen zu. Es gibt etwa 3.000 verschiedene Kryptowährungen, die Währungen werden zunehmend als Zahlungsmittel akzeptiert. Aber auch im Darknet fungieren die digitalen Währungen als Zahlungsmittel. Bitcoin ist die bekannteste und wertvollste Währung mit einer Marktkapitalisierung von zirka 10 Milliarden US-Dollar. Das 2015 gestartete Ethereum liegt mit 1,5 Milliarden US-Dollar auf dem zweiten Platz. Doch wie viel technisches Know-how erfordert es, in den Handel mit den digitalen Währungen einzusteigen?

Um den Vorgang zu beginnen muss die aktuellste Version der Ethereum Wallet (= Ethereum-Brieftasche) installiert werden. Dieses Programm ist eine Multi-Plattform-Anwendung, die es ermöglicht mit auf Ether beziehungsweise Ethereum basierenden Währungen zu handeln. Ferner kann das Erstellen und Ausführen von Verträgen realisiert werden. Im nächsten Schritt wird ein Ethereum-Account erstellt. Die meisten Verträge kosten weniger als ein Zehntel eines US-Cent. Soll das Programm nur getestet werden, empfiehlt es sich ein Testnetzwerk auszuwählen und das Mining zu beginnen. Innerhalb weniger Minuten haben sich genügend Ether angesammelt, um die Vorgänge zu testen.

Ein Problem im Testnetzwerk besteht darin, dass der Vertrag nicht bestätigt wird. Der Vorgang zeigt in Arbeit an, nachdem ergebnislos versucht wurde, den Vertrag zu erstellen. Der Account hat schließlich 0 Ether sollte aber eigentlich mehr als 3.000 besitzen. Die Lösung des Problems liegt darin, dass sich in einem privaten Testnetz kein Mining realisieren lässt und somit keine Transaktionen dem Peer-to-Peer Netzwerk zugeführt werden.

Das Programm Ethereum Wallet erlaubt nur ein Basis-Mining, für eigene Implementierungen muss auf ein reales Netzwerk zugegriffen werden. Dazu benötigt der Nutzer weitere Programme.

Der oft benutzte AlethOne Miner ist ein einfaches Programm mit zwei Funktionen. Bei einer Methode wird das Mining gestartet und die zweite Funktion dient der Belohnung des Miners. Unter diesem Link finden Sie eine Sammlung von verfügbaren Ethereum-Programmen, die hauptsächlich in C++ verfasst sind. Wenn man Smart Contracts in einem realen Netzwerk erstellt, benötigt der Teilnehmer einige Ether. Sie können die Ether von einem Teilnehmer bekommen oder gegen Bitcoins tauschen. Soll der Tausch mittels Bitcoins realisiert werden, so kann das betrugssichere "btcrelay-Projekt" empfohlen werden.

Um einen Vertrag zu erstellen, muss ein Token erzeugt werden. Tokens können im Ethereum jedes vertretbare handelbare Gut sein: Münzen, Treuepunkte, Goldzertifikate, Schuldscheine, Spielgegenstände und so weiter. Bei allen Token sind grundlegende Funktionen üblicherweise implementiert, dies bedeutet das der Token sofort in der Ethereum Wallet kompatibel ist. Denn bei den anderen Clients oder Contracts wird derselbe Standard eingehalten.

Um ein effektives Mining zu realisieren, muss eine Schätzung über den Rechenaufwand des Vertrages erstellt werden und man kann entscheiden, wie viel Ether man bereit ist zu bezahlen. Ether, der nicht benötigt wurde, wird wieder an den Nutzer zurückgeschickt. Bei der Erstellung muss der Nutzer ein sicheres Passwort hinterlegen und nach einigen Sekunden kann die Transaktion aufgegeben werden.

In dem Hauptkonto ist hinterlegt, dass der Nutzer 100 Prozent der gerade erstellten Anteile besitzt. Um Teilnehmern Geld zu senden wählt man aus, welche Währung man senden möchten (entweder Ether oder die neu Erstellte). Schließlich fügt man die Adresse des Teilnehmers ein und führt die Transaktion aus.

Unmittelbar nach der Übermittlung der Daten an den Teilnehmer wird der Nutzer noch nicht den gesamten Betrag in seiner Brieftasche einsehen können. Dies liegt daran, dass die Brieftasche nur Token berücksichtigt, die sie kennt. Somit muss der Teilnehmer diesen Token manuell hinzufügen. In der Folge muss mit Hilfe des Clients ein Vertrag erstellt werden. Da das Vertragswerk wenig komplex ist, kann einfach die Adresse kopiert und das Regelwerk erstellt werden. Jetzt fügt man den entsprechenden Token ein und führt die Beobachtungsfunktion (watch Token) aus. Nun werden der Token-Name, das Symbol und die Dezimalzahl eingefügt. Nun kann man beobachten, wie sich die Balance zwischen dem Token verschiebt und man kann nun die Token an alle anderen Personen senden.

Nun hat der Nutzer einen eigenen Krypto-Token. Tokens selbst können benutzt werden für einen Wertaustausch auf lokalen Gemeinschaften. Darüber hinaus gibt es auch Möglichkeiten, sie gegen Arbeitsstunden oder Punkte in Treueprogrammen zu tauschen.

Der Schwierigkeitsgrad für die Erstellung einer eigenen Kryptowährung hält sich in Grenzen und ist auch für technisch nicht affine Menschen durchführbar. In nur wenigen Schritten ist die Software eingerichtet und man kann beginnen mit dem Handeln und Minen. Ein Vorteil von den Kryptowährungen ist, dass sie unabhängig von Banken, staatlichen Währungen und Zahlungsdienstleistern sind. Jedoch gibt es auch negative Ereignisse, das jüngste Beispiel ist der Trojaner Locky. Dieser verschlüsselt die Festplatte und sie wird nur entschlüsselt gegen eine Zahlung von 0,5 Bitcoin. Wäre dieses Ereignis auch ohne Kryptowährungen möglich gewesen? Wenn man das Ziel hat, durch das Mining Geld zu verdienen, kann dies nur im realen Netzwerk geschehen. Das Mining wird aber immer unattraktiver, denn durch die steigende Difficulty (=der Schwierigkeitsgrad des kryptografischen Rätsels) benötigt man immer bessere und schnellere Hardware. Somit fällt der Gewinn immer niedriger aus.

Zusammenfassung

Der hier vorliegende Artikel hat den technischen Rahmen der Blockchain-Technologie umrissen. Zuerst wurde zwischen öffentlicher, privater und Konsortium-Blockchains unterschieden. Im Folgenden wurden verschiedene Mining-Techniken vorgestellt. "State of the Art" ist das Proof of Work, wobei die potentiellen Miner ein schweres mathematisches Rätsel lösen muss. Hauptnachteil bei diesem Prinzip ist der immense Stromverbrauch, was zur Entwicklung andere Mining-Prinzipien motivierte. Abschließend wurde noch ein Blick in die Kryptowährungen geworfen und die Möglichkeit für die Erstellung einer eignen Währung aufgezeigt. (haf)