Sichere Transaktionen Blockchain – eine Einführung in die Konzepte

Von Richard Paul Hudson *

Anbieter zum Thema

Bitcoin, Ethereum und Smart Contracts – ohne Blockchain-Technologien wären all diese spannenden Projekte undenkbar. Doch wie sind die Blockketten aufgebaut und was verbirgt sich noch alles dahinter?

Blockchain ist ein recht einfaches Modell, doch die jeweiligen Implementierungen sind sehr unterschiedlich und können sehr speziell ausfallen.
Blockchain ist ein recht einfaches Modell, doch die jeweiligen Implementierungen sind sehr unterschiedlich und können sehr speziell ausfallen.
(© apoint - stock.adobe.com)

Die Blockchain-Idee wurde 1991 erstmals vorgestellt. Es handelt sich um eine Kette aufeinanderfolgender Informationen, die stetig fortgeschrieben wird. Die Informationen sind zu Blöcken zusammengefasst, die nach und nach aus den anfallenden Daten erzeugt werden.

Aus jedem Block errechnet eine Hashfunktion einen Hashwert, der wiederum am Anfang des nächsten Blocks eingefügt wird. Um die Integrität der Kette nachzuweisen, müssen lediglich die Hashwerte für die einzelnen Blöcke erneut berechnet und der erzeugte Finalwert mit dem veröffentlichten Wert verglichen werden. Manipulationen der Kette fallen folglich sofort bei der Prüfung auf.

Wie die Blockchain in der Praxis aussieht, das unterscheidet sich je nach Implementierung – und der Kombination aus Techniken und Methodiken im Zusammenspiel mit der Blockchain. Daher werden im Folgenden Kryptowährungen und Smart Contracts sowie die Sicherheit der Systemarchitektur behandelt.

Energiehunger und digitale Goldgräber

2008 beschrieb „Satoshi Nakamoto“, ein bisher nicht identifizierter Autor, wie sich die Blockchain-Idee einsetzen lässt, um eine dezentrale und anonyme Währung ins Leben zu rufen und zu verwalten. Der Name dieser Währung lautet Bitcoin.

Im Bitcoin-System pflegen Rechner auf der ganzen Welt identische Kopien derselben Blockchain, in der sämtliche Finanztransaktionen auf Basis dieser Währung festgehalten sind. Sobald eine Bitcoin-Überweisung erfolgt, wird sie per Peer-to-Peer verbreitet, um sie in der weltweit bekannten Blockchain zu speichern.

Aus den veröffentlichten Überweisungsnachweisen kann jeder einen neuen Block erzeugen und wiederum veröffentlichen, sodass die Blockchain fortwährend verlängert wird. Wer die Blockchain fortschreiben will, muss ein kryptographisches Rätsel lösen: Das Rätsel legt fest, dass der Hashwert am Anfang eines Blocks mit einer definierten Zahl von Nullen beginnen muss. Einen solchen Hashwert findet nur, wer den Überweisungsinformationen im neuen Block der Kette einen passenden Code hinzufügt.

Die Suche nach einem entsprechenden Code nennt sich schürfen oder „minen“ (vom Englischen „to mine“). Dies ist absichtlich sehr aufwändig gestaltet, erfordert den Einsatz enormer Energiemengen und ist dadurch wie das Vorbild des Bergbaus sehr ressourcenhungrig. Allein im Jahr 2014 wurde weltweit durch Mining so viel Strom benötigt, dass Irland damit komplett hätte versorgt werden können. Als automatische und im System eingebaute Belohnung erhält der erfolgreiche Schürfer eines Blocks neue Bitcoins. Wer einen Block schafft, prägt somit zugleich neue Münzen.

Ethereum und Smart Contracts

Bitcoin ist nicht die einzige Kryptowährung, die auf Blockchain basiert. Eine Handvoll der Altcoins (alternativen Münzen) haben es geschafft, die Bitcoin-Idee aufzugreifen und deutlich zu erweitern. Besonders herauszuheben ist dabei Ethereum, eine Währung, die für Entwickler interessanter sein dürfte als Bitcoin, bietet sie doch die Möglichkeit, Smart Contracts zu erstellen und mehr als nur einfache Skripte einzusetzen.

Smart Contracts laufen als eine Ethereum-eigene Art von Virtual Machine Code und werden meist in der Sprache Solidity geschrieben. Andere mögliche Sprachen sind etwa Serpent und LLL, die jedoch nicht mehr sehr geläufig sind. Die Vorteile gegenüber Bitcoin-Skripten und Metadaten: neben der Turing-Vollständigkeit der Ethereum-Programmiersprachen können Smart Contracts zustandsbezogen arbeiten, also Variablen zwischen den Transaktionen speichern, und den Wert ihres eigenen Ether-Kontos abfragen (Value Visibility).

Ethereum senkt zudem die Schreibverzögerung der Informationen im Vergleich zu Bitcoin erheblich. Erzeugen die Miner im Bitcoin-System nur etwa alle zehn Minuten einen neuen Block, fügen die Ethereum-Schürfer alle zwölf Sekunden einen neuen Block zur Kette hinzu.

Außerdem führt Ethereum ein Account-Konzept hinzu. Accounts lassen sich mit dem Bitcoin-Äquivalent Ether aufladen. Ein spezifischer Account – der sogenannte Zero-Account – wird aufgerufen, um einen Smart Contract zu erzeugen. Dieser Smart Contract verfügt dann über die Menge Ether, die mit der Transaktion übertragen werden sollte und kann automatisiert durch externe Ereignisse ausgelöst werden.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Tritt etwa eine spezifische Situation ein und gilt der Smart Contract als erfüllt, dann wird typischerweise das Guthaben an einen vordefinierten Account überwiesen. Es gibt jedoch auch Smart Contracts ohne Geld, die etwa Nachrichten an andere Smart Contracts überstellen und eine Reaktion auslösen.

Offenheit und Angriffe

Die Kryptowährungen benötigen einen Schutz vor solchen Angriffen, bei denen sich ein Teilnehmer als eine große Menge unterschiedlicher Teilnehmer ausgibt und damit die auf Konsens basierte Integrität des dezentralen Netzwerks gefährden würde. Wie kann das funktionieren? Eine mögliche Lösung des Problems ist im Strombedarf zu finden.

Bei Bitcoin müssen Miner Strom einsetzen, um an der Infrastruktur teilzunehmen – und ein Individuum kann niemals über so viele Strom- und Rechenressourcen verfügen, um mehr als die Hälfte aller Miner der Welt zu imitieren. Dieser Ansatz nennt sich Proof of Work.

Im Fall von Ethereum planen die Erfinder ein neues Modell, das an den Eigennutz der Teilnehmer appelliert. Demnach würde das Recht zur Münzprägung durch eine Zahlung bestehender Ethereum-Münzen (Ether) erkauft. Dieses Modell basiert auf der Annahme, dass kein Investor die Integrität eines Systems gefährden will, in das er selbst investiert hat – dies würde den Wert der gesamten Währung und damit sein Kapital aufs Spiel setzen.

Für Unternehmen sind stattdessen Permissioned Blockchains wie die Open-Source-Plattform Tendermint reizvoll, weil Unternehmen weder Proof-Of-Work noch Proof-Of-Stake benötigen. Die Knoten der Infrastruktur sind bekannt, authentifiziert und rechenschaftspflichtig. In einer solchen privaten Blockchain müssen sich die Systemnutzer typischerweise authentifizieren. Dies ist aber nicht zwingend notwendig. Es sind auch Konstellationen denkbar, in denen nur ausgewählte und bekannte Teilnehmer eine Infrastruktur anbieten, die dennoch von jedermann verwendet werden darf.

Betrug und Integrität

Interessant ist ebenso die Fähigkeit der Kryptowährungs-Systeme, ihre globale Integrität auch dann beizubehalten, wenn sich einzelne Knoten nicht verhalten wie erwartet. Wenn etwa ein Schürfer an einer Bitcoin-Transaktion als Überweisender teilnimmt, ohne sie in den Block aufzunehmen, den er gerade erzeugt – weil er die Münzen behalten will – bleibt das für den Empfänger der Zahlung ohne Auswirkung. Warum? Ein anderer Miner wird die Transaktion einfach in seinen Block aufnehmen und damit im Netzwerk bekanntmachen.

Hinzu kommt, dass eine betrügerische Transaktion, etwa eine Überweisung bereits ausgegebener Münzen, den gesamten Block unbrauchbar macht. Eine Kettenversion, die diesen Block beinhaltet, wird somit invalidiert. So ist sichergestellt, dass Miner großen Wert darauf legen, Transaktionen auf ihre Richtigkeit zu prüfen. Denn wenn sie auf Basis falscher Informationen schürfen, prägen sie eventuell ungültige Münzen.

Fazit: Umfangreiche Auswahl, spannende Projekte

Entwickler, die sich mit der Blockchain auseinandersetzen wollen, sollten sich zunächst eine Übersicht über die verschiedenen Architekturmodelle, Sprachen und Eigenschaften verschaffen, die im Umfeld von Blockchain zum Einsatz kommen. Kryptowährungen und Smart Contracts sind dabei zurzeit wahrscheinlich die am stärksten verfolgten Teile, die sich mit der Blockchain beziehungsweise den ihr innewohnenden Technologien einsetzen lassen.

Blockchain ist ein recht einfaches Modell, doch die jeweiligen Implementierungen sind sehr unterschiedlich und können sehr speziell ausfallen. Je nach Einsatzzweck müssen die Implementierungen also passend zugeschnitten werden. Es lohnt sich daher ein Blick in Branchen, die bereits mit Blockchain experimentieren – etwa die Finanz- und Versicherungsbranche. Wer sich für Smart Contracts interessiert, sollte sich in die Sprache Solidity einarbeiten.

* Richard Paul Hudson ist Lead IT Consultant bei msg.

(ID:44785111)