Die Welt der "Cryptos": Blockchains und das Web3

Die Blockchain: Blöcke, Token und Adressen

Folgend wird das Konzept einer Blockchain schematisch eingeführt. Die präsentierten, hier vereinfacht dargestellten, Mechanismen sind grundlegend für die Funktionalität real existierender Blockchains, jedoch hier nur insoweit beschrieben, als für ein grundlegendes Verständnis erforderlich ist.


Ein einzelner Block kann als einfacher Zettel mit wohldefiniertem und strukturiertem Inhalt verstanden werden: In der Kopfzeile (Header) findet man die sogenannte Blockzeit, die Vergleichbar mit der Seitennummer einer Buchseite ist, sowie einen Fingerabdruck (Hash) des vorangehenden Zettels, also des Blocks vorheriger Blockzeit. Auf dem Rest der Seite sind die verschiedenen Daten der einzelnen Token notiert. Exemplarisch ist dies für MATIC und DAI veranschaulicht.

Jeder Token verfügt über einen Speicherplatz, in dem notiert ist, wer wieviel der jeweiligen Token besitzt: Eine Auflistung der Kontostände, als Balances bezeichnet. Dazu kommen aufrufbare Funktionen, die sich von Token zu Token unterscheiden können, wobei gewisse Standardfunktionen den meisten Token gemein sind: Eine Funktion, mittels der der Kontostand einer gegebenen Adresse (vergleichbar mit einer Kontonummer) ermittelt werden kann und eine weitere, die es ermöglicht, Zahlungen, also Token-Transfers zu tätigen. Ebenso wird jedem Token ein Name, wie auch ein Symbol, ein meist drei bis fünf Zeichen langes Kürzel, gegeben. Darüber hinaus kann jeder Token noch beliebige andere Funktionalitäten implementieren, die auch mit anderen Token über deren Funktionen interagieren können. Diese Interoperabilität ermöglicht die Programmierung von dezentralen Marktplätzen, demokratischen Abstimmungen und vielem mehr.
Ein einzelner Block ist demnach eine Auflistung der Kontostände aller Token, sowie sämtlicher relevanter Eigenschaften der Token - man spricht von Zuständen: ein Block ist die Auflistung aller aktuellen Zustände aller Token der jeweiligen Blockchain.


Bei den Adressen handelt es sich um alphanumerische Codes, die einem Benutzer ("Kontoinhaber") zugeordnet sind, beispielsweise 0x1BE2a117E255e147c56021224d11e13E79121Be1. Die Funktionalität eines Tokens ist meistens in Relation zur Adresse des jeweiligen Benutzer definiert: so kann beispielsweise jeder Benutzer nur Token transferieren, die einer von ihm selbst kontrollierten Adresse zugeordnet sind. Auch jedem Token ist eine Adresse zugeordnet: Adressen hängen mit Speicherstellen auf dem Block zusammen. Wenn man bei der Verwendung von Token diese meist über ihr Symbol bezeichnet, empfiehlt es sich, auch die jeweilige Adresse des Token zu beachten um (teils verlustreiche) Fehler zu vermeiden.


Eine Interaktion mit der Blockchain, bei der eine Zustandsänderung verursacht wird, wird als Transaktion bezeichnet. Der Transfer eines Tokens stellt eine solche dar: Transferiert der Benutzer von "Adresse 1" fünf Token zu "Adresse 2", muss der Kontostand von "Adresse 1" um Fünf reduziert und der von "Adresse 2" um Fünf erhöht werden (Hierbei wird natürlich vorausgesetzt, dass auf "Adresse 1" vor dem Transfer auch zumindest Fünf Token vorhanden sind.). Bei jeder Zustandsänderung der Blockchain wird überprüft, ob sie durch eine dazu berechtigte Adresse verursacht wurde. Nach dieser Transaktion hat sich der Zustand der Blockchain geändert: ein neuer Block mit den neuen Kontoständen wird erzeugt: ein neuer Zettel wird über den vorherigen gelegt. Die dabei entstehende Abfolge an Blöcken - der Stapel an Zetteln - wird als Blockchain bezeichnet:


Das Erzeugen neuer Blöcke wird als Validieren oder Schürfen (Minen) bezeichnet. Dabei wird die Gültigkeit des neuen Blocks verifiziert: Beispielsweise wird überprüft, ob der im Header des neuen Blocks angegebene Hash einem gültigen vorherigen Block entspricht. Ist dem nicht so, wird der neue Block verworfen und die Blockchain auf den zuletzt als gültig akzeptierten Block zurückgesetzt. So wird sichergestellt, dass jede Zustandsänderung von einem zuvor als gültig akzeptierten Zustand ausgeht. Bei der Zustandsänderung selbst wird überprüft, ob sie durch eine dazu berechtigte Adresse verursacht wurde. Ist dem nicht so, wird der neue Block verworfen. Hierbei ist anhand kryptografischer Methoden festgelegt, wer berechtigt ist und wer nicht - wir betrachten nun zwei "Zutaten" - elliptische Verschlüsselung und Hashing:

  • Jeder von einem Benutzer kontrollierbaren Adresse sind zwei Schlüssel zugeordnet: der öffentliche Schlüssel (public key) und der private Schlüssel (private key). Wird ein Text oder beliebiger Datensatz mit einem der zwei Schlüssel verschlüsselt, so kann er mit dem anderen wieder entschlüsselt werden. Dieses elliptische Verschlüsselungsverfahren kommt auch beim Absichern der Kommunikation zu Webseiten mittels SSL ("Https") zum Einsatz: die zu verschickende Nachricht wird erst mit dem public key des Empfängers verschlüsselt und dann die verschlüsselte Nachricht verschickt. Nur der Empfänger mit dem dazu passenden private key kann sie nun entschlüsseln.
  • Bei der Verifikation eines Blockes ist noch ein weiteres Verfahren nötig, dass als hashing bezeichnet wird: Ein Hash ist so etwas wie ein Fingerabdruck beliebigen Inhaltes. Beim Hashing wird aus einem gegeben Text beliebiger Länge ein alphanumerischer Code fixer Länge erzeugt. Ethereum-artige Blockchains nutzen den Keccak-256 Hashing Algorithmus. Der Hash des Textes "Hello World." ist "6ac466601079053c254ab4f5750b05b5e881997738ed1d6dd3db2f8917ab8563". Ändern wird nur ein Zeichen und Hashen "Hello World!", so ergibt sich "3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0.". Die kleinste Änderung am Eingabetext bewirkt eine große Änderung des Hashs.

Diese Zwei "Zutaten" kommen bei der Verifikation von Zustandsänderungen beispielsweise wie folgt zum Einsatz:

Von gegebener Adresse wird eine Zustandsänderung verfasst. Diese Zustandsänderung wird nun gehasht und mit dem zur Adresse gehörigen private key verschlüsselt. Sowohl die verfasste Zustandsänderung als auch der verschlüsselte Hash (dies wird als Signatur bezeichnet) wird nun an einen Validator oder Miner geschickt (broadcasted). Dieser entschlüsselt nun den übergeben Hash mit dem zur Adresse gehörigen public key und erzeugt von der geforderten Zustandsänderung einen Hash: Nur wenn erzeugter und entschlüsselter Hash gleich sind ist die Transaktion valide und der Block wird akzeptiert. Darüber hinaus wird verifiziert, dass die Addresse berechtigt ist, die für die Zustandsänderung relevanten Funktionen auszuführen. Jeder akzeptierte Block wird an alle dem Validator oder Miner bekannten "Kollegen" geschickt, sodass das gesamte Netzwerk über den aktuellen Zustand der Blockchain verfügt.


Der Validierungsprozess ist aufgrund seiner Transparenz von jedem überprüfbar: Jeder Versuch einer Manipulation der Blöcke kann von jedem mit entsprechender Software bemerkt werden und fällt spätestens dem nächsten unkorrumpierten Validator auf der daraufhin ein Zurücksetzen der Blockchain auf den letzten validen Block auslöst. Die Sicherheit des Systems hängt davon ab, dass nicht der selbe Validator zu viele Blöcke hintereinander validiert, daher ist es im Interesse der Blockchain, über eine ausreichende Anzahl an unabhängigen Validatoren zu verfügen.


Das Verfahren geht aufgrund der Komplexität der kryptografischen Algorithmen und der Synchronisierungsverfahren mit hohem Aufwand einher, den man den Validatoren und Minern abverlangt. Zur Bezahlung für die von ihnen eingebrachte Leistung verfügt jede Blockchain über einen nativen Token, bzw. Coin: Auf Ethereum ist dies Ether, auf Polygon MATIC, auf PolkaDot DOT. Bei jeder eingebrachten Transaktion ist in diesem nativen Zahlungsmittel eine Gebühr an den Validator, bzw. Miner zu entrichten um ihn für seine Arbeit zu belohnen:


Das Wallet

Bei herkömmlichem Bargeld beinhaltet die Geldböres (Wallet) das Zahlungsmittel in Form von Münzen und Scheinen. Bei Blockchains ist dies nicht der Fall: Kein Token befindet sich im Wallet, lediglich das Schlüsselpaar aus privatem und öffentlichem Schlüssel ist darin, meist in verschlüsselter Form, verwahrt und wird für das Signieren von Transaktionen verwendet. Wallets gibt es in verschiedenster Form:

Bei Paper Wallets handelt es sich tatsächlich nur um einen Papierzettel, auf dem beide Schlüssel notiert sind. Sie erlauben zwar, als sogenanntes kaltes Wallet die sichere Verwahrung von Token, nicht jedoch deren Nutzung: Dazu ist ein heißes Wallet nötig, also eines, dass direkt zum Signieren von Transaktionen verwendet werden kann. Derartige Wallets können als Hardware Wallet, wie beispielsweise das Ledger Wallet, als Browser Addon, wie beispielsweise Metamask oder als Handy App, wie beispielsweise MEW, verfügbar sein. Wie Web-Browser eine Tür ins "normale" Internet, das Web2, darstellen, erlauben Wallets die Nutzung des Web3 indem sie die Verwendung von dezentralisierten Applikationen (DApps) ermöglichen. Es gibt Wallets, die mit mehreren Blockchains kompatibel sind, sowie Blockchain-spezifische Wallets.

Anstelle des Privaten Schlüssel wird oft ein Mnemonic angegeben: eine fixe Anzahl aufeinander folgender Wörter, die den privaten Schlüssel kodieren. Weder dieser Mnemonic, noch der Private Schlüssel sollten je in falsche Hände kommen - sie ermöglichen völlige Kontrolle des Wallets.

Smart Contracts

Die Funktionalität der Blockchain, bzw. der darauf implementierten Token beruht auf Algorithmen, die in der Blockchain hinterlegt sind. Diese werden oft als Smart Contracts bezeichnet. Es handelt sich dabei um Programme, die bestimmte Schnittstellen - also Funktionen - zur Verfügung stellen, mit denen Benutzer oder andere Kontrakte vermittels ihrer Adressen interagieren können. Die zuvor eingeführten Funktionen balanceOf(address) und transfer(receiver, amount) sind Beispiele hierfür. Jedem Token entspricht ein Smart Contract der dessen Funktionalität implementiert. Auf EVM-kompatiblen, also Ethereum-artigen, Blockchains werden Smart Contracts mittels der Programmiersprache Solidity erstellt, in anderen kommen Rust oder Variationen von C++, bzw. Javascript zum Einsatz.

Smart Contracts können nahezu beliebig komplex werden und weit über einfache Token hinausgehende Funktionalitäten implementieren, doch ist ihnen eine Einschränkung gegeben: Blockchains stellen geschlossene Systeme dar. Die Interaktion von verschiedenen Smart Contracts setzt an sich voraus, dass diese auf der selben Blockchain implementiert sind. Daher ist, beispielsweise, Bitcoin nicht auf Ethereum nutzbar und Ether nicht auf Bitcoin. Um dieses Hindernis zu umgehen, wird ein bestimmter Mechanismen mittels sogenannter Brücken-Kontrakten aufgebaut.

Verschiedene Arten von Token

Die Folgende Klassifizierung verschiedener Token-Arten ist nicht zwangsläufig allgemeingültig und eher technisch motiviert. Es gibt andere Klassifizierungen die anstelle der technischen eine rechtliche Grundlage heranziehen. Hier soll lediglich ein erster, grober Überblick über die verschiedenen Systeme gegeben sein, wobei die Abgrenzungen oft nicht eindeutig sind da beliebige Mischformen existieren. Da eine Unterscheidung zwischen Token und Coin zusehends schwieriger wird, betrachten wir diese Begriffe als Synonym.

Das Blockchain-native Zahlungsmittel

Das Blockchain-native Zahlungsmittel ergibt sich aus der Funktionalität der Blockchain und wird benötigt, um die Validatoren oder Miner für ihre Leistung zu bezahlen. Es ermöglicht daher die Nutzung der Blockchain indem es das Einbringen von Transaktionen erlaubt. Es wird von keiner zentralen Autorität - wie beispielsweise einer Zentralbank - kontrolliert, sondern ist über die grundlegenden Konsensus-Algorithmen der jeweiligen Blockchain dezentral organisiert. Beispiele hierfür sind: Bitcoin (BTC), Ethereum (ETH), Polygon Matic (MATIC), Avalanche (AVAX), PolkaDot (DOT), Cosmos Atom (ATOM), Solana (SOL), Ada Cardano (ADA), VeChain (VET), Dash (DASH).

Liquiditäts-Token

Auf Blockchains gibt es verschiedene Finanzwerkzeuge, die kaum ein direktes Pendant in der klassischen Wirtschaft haben, sondern Mischformen von Gemeinschaftsunternehmen, Aktien und beliebigen Gesellschaftsformen entsprechen. Ein großer Teil davon hat mit der Liquiditätsprovision zu tun: Hierbei bringt ein Investor in ein dezentrales Systeme einen oder mehrere Token ein, die für die Funktionalität des Systems benötigt werden und erhält dafür Token, die das von ihm eingebrachte Kapital repräsentieren. Folgend seien zwei Beispiele präsentiert:

Dezentrale Marktplätze (DEXs) erlauben das Umtauschen ("swappen") von Token. Sie sind vergleichbar mit einer Wechselstube ohne einen eindeutigen Besitzer, bzw. Betreiber: jeder kann sich am DEX beteiligen, indem er die am Markt handelbaren Token einbringt und dafür Token bekommt, die den dadurch erworbenen Anteil repräsentieren. Im DEX eingehobenen Wechselgebühren werden Anteilsmäßig den Liquiditäts-Token-Besitzern angerechnet. Das eingebrachte Kapital wird hier auf (oft nicht-triviale Weise) den Preisschwankungen der am Markt handelbaren Token ausgesetzt. Sobald man einen Liquiditäts-Token einlöst, bekommt die Anteile an den diversen Token im Marktplatz inklusive des Anteils an den eingehobenen Wechselgebühren ausbezahlt. Beispiele hierfür sind die Token, die man bekommt wenn man ein Liquiditätspool eröffnet oder sich an einem bestehenden beteiligt. Dies ist beispielsweise über UniSwap, Curve oder Balancer möglich.

Eine weitere Form von Liquiditätspool ermöglicht die Vergabe von Krediten. Hierbei stellt man dem Pool entsprechende Token zur Verfügung und erlaubt damit, dass diese als Kredit vergeben werden dürfen. Die Token, die man für das Einbringen von Kapital ins Pool erhält entsprechen Vermögensanteilen und die anhand Kreditvergabe eingenommenen Zinsen werden anteilsmäßig nach Vermögensanteilen aufgeteilt. Als Beispiel hierzu möge Aave dienen.

Liquiditäts-Token ermöglichen also, am Profit operativer Geschäfte von dezentralen Unternehmungen Teil zu haben, jedoch auch einen Teil des Risikos zu tragen.

Governance-Token

Bei vielen dezentralen Systemen gibt es Parameter, die justiert werden können oder es gilt, Entscheidungen bezüglich des operativen Geschäftes zu treffen. Die Kontrolle über derartige Systeme wird nicht einer zentralen, korrumpierbaren Autorität überlassen, sondern demokratisch auf die Anteilhaber am System aufgeteilt. Hierzu wird ein Token eingeführt, der bei entsprechenden Abstimmungen als Stimmgewicht fungiert.

Stablecoins

Stablecoins sind spezielle Token, die den Preis einer anderen Kapitalform oder Ressource nachbauen und diese damit auf der Blockchain nutzbar machen. Es gibt zwei unterschiedliche Formen davon:

Bei direkt-besicherten Stablecoins wird die Kapitalform, deren Preis nachgebildet werden soll, direkt als Sicherheit hinterlegt. Dazu existiert meist eine Firma, die den entsprechenden Token betreibt und dafür Sorge trägt, dass für jeden herausgegeben Token die entsprechende Sicherheit hinterlegt wird. Die Firma fungiert hier als zentrale Autorität und ist für Verwahrung und Herausgabe hinterlegter Sicherheiten zuständig.

Bei indirekt-besicherten Stablecoins wird nicht die Kapitalform als Sicherheit hinterlegt, deren Preis nachgebildet werden soll, sondern eine andere und die Preisnachbildung beruht auf teils aufwendigen Algorithmen, die mit verschiedenen dezentralen Marktplätzen interagieren. Indirekt besicherte Stablecoins können, wenn sie nur auf der Blockchain existierende Kapitalformen (also Token) als Sicherheit akzeptieren, auch ohne zentrale Autorität auskommen.

Beispiele hierfür sind: DAI and Tether.

Equity- oder Security-Token

Diese Art der Token ist vergleichbar mit herkömmlichen Aktien oder anderen traditionellen Finanzwerkzeugen, die einem Anteil an einem Unternehmen, Projekt oder Produkt entsprechen. Sie gehen oft mit Gewinnbeteiligungen, Eigentumsanteilen sowie Stimmrechten einher und haben damit einen Überlapp mit nahezu allen zuvor genannten Token-Arten. Im Vergleich zu Liquiditäts-Token nehmen wir hier an, dass das Operative Geschäft des jeweiligen Unternehmens primäre abseits der Blockchain stattfindet. Damit stellt diese Token-Art eine Schnittstelle zwischen "onchain" und "offchain" dar.

Eine besondere Art von Equity- oder Security- Token ist durch sogenannte Wrapped Coins gegeben: Hierbei wird ein Token einer Blockchain durch einen Token auf einer anderen Blockchain nachgebildet. Ein Beispiel hierfür ist der Wrapped Bitcoin (WBTC) auf Ethereum und Polygon, der den Bitcoin (BTC) nachbildet.

Dezentrale Autonome Organisationen (DAOs)

DAOs sind das Blockchain-Äquivalent zu rechtlichen Gesellschaftsformen. Es handelt sich dabei um ein - oft nur lose zusammenhängendes - Personenkollektiv, das ein gemeinsames Ziel verfolgt. Dies kann der Betrieb eines dezentralen Systems, die Verwaltung eines Stablecoins oder die Erzeugung eines Produktes sein. Um sich zu strukturieren verwendet die DAO verschiedenste Token:

Ein oder mehrere DAO-externe Token dienen oft als Zahlungsmittel mit dem die diversen Token der DAO erworben werden können. Über die Nutzung des dabei eingenommenen Kapitals wird meist demokratisch mittels eines Governance-Token entschieden. Dieser Gorvernance-Token kann einerseits erworben oder aber durch aktives Mitwirken an der DAO verdient werden. Die Unternehmungen der DAO werden oft durch diverse Equity- oder Security- Token repräsentiert und damit dem Markt zugänglich gemacht.

Nebst den meisten Blockchains im Gesamten sind Beispiele für DAOs:

Über den Autor

Dipl.-Ing. Dr.rer.nat. Rudolf Golubich, BSc ist, von der Physik kommend, als Gründer der Hvergelmir Kooperation selbständig in der automatischen Datenverarbeitung und Informationstechnologie tätig und bietet auch Dienstleistungen im Bereich statistische Auswertungen, Datenanalysen und Studiendesign an. Innerhalb der Kooperation fungiert er als Generalist und Token-Entwickler und ist für die Analyse und Erarbeitung über den Standard hinausgehender Protokolle zuständig.