Blockchains, NFTs und DAOs¶
Nachdem viele unserer Freunde und Familie immer mal wieder nach Befriffen, wie "Blockchain", "NFTs" und Anderem gefragt haben, habe ich mir gedacht ich fasse einfach mal die Grundlegenden Konzepte und Bedeutungen dieser modernen Buzzwörter in eine Sprache zusammen, die auch für die nicht-technisch Versierten Menschen verständlich ist. Wenn Sie sich auch für diese Themen interessieren, oder einfach nur einmal einen kurzen Überblick über diese Themen haben wollen, lesen Sie einfach einmal quer durch die folgenden Kapitel. Es lohnt sich einen groben Überblick über diese Dinge in der heutigen Zeit zu haben, da diese auf jeden Fall Einfluss auf unser aktuelles Geschehen - nicht nur in der IT - hat. Wir beschränken uns darauf, um diesen Text einigermaßen kurz und für alle einigermaßen verständlich zu halten.
Blockchains¶
Blockchains sind eine Möglichkeit, Daten zu speichern, sie sind eine ganz bestimmte Art von Datenbank. Herkömmliche Datenbanken laufen in der Regel auf einem (oder mehreren, aber halten wir es der Übersichtlichkeit halber einfach) Server mit Clients, die Daten speichern oder lesen möchten, die sich damit verbinden. Blockchains speichern Daten dezentral, was bedeutet, dass jeder Knoten im teilnehmenden Netzwerk alle Daten lokal hat. Wenn ein herkömmlicher Datenbankserver ausfällt, kann niemand auf die gespeicherten Daten zugreifen, dezentrale Ansätze (von denen Blockchain nur einer von vielen ist) haben dieses Problem nicht.
Das Besondere an Blockchains ist die Art und Weise, wie sie Daten organisieren: Daten werden in Blöcken abgelegt, wobei jeder Block mit seinem Vorgänger verbunden ist und die "Kette" bildet. Die besondere Eigenschaft, die Blockchains von einer älteren Idee namens Merkle Trees übernommen haben, ist, dass die Verbindung der Blöcke die Blöcke selbst unveränderlich macht. So funktioniert das.
Angenommen, Sie haben einen Block mit 10 Namen, die Sie in einer Blockchain speichern möchten. Nachdem Sie die Daten für den Block gesammelt haben (das beinhaltet seine Metadaten wie zum Beispiel wann der Block erstellt wurde und die Kennung seines Vorgängers), "hashen" Sie ihn. Hashing in der Informatik bedeutet, einen Text zu nehmen und ihn durch ein Programm zu schicken, das eine neue, normalerweise kürzere Textkette erstellt, mit der überprüft werden kann, ob der Text geändert wurde. Sehen Sie, eine Hash-Funktion erzeugt immer die gleiche Ausgabe bei gleichem Text, aber wenn Sie den Text nur ein kleines bisschen ändern, indem Sie irgendwo ein Leerzeichen hinzufügen, sieht das Ergebnis der Hash-Funktion völlig anders aus.
Ein Beispiel: Der mit sha256 (einer bekannten Hash-Funktion) gehashte String "dominic-und-jenniffer" ist bf801e68e620868426792dd510f8b753be90fb1d42ad2612b09d47bae668faf9
. Die Zeichenfolge "dominic-und-jenniffer!" mit einem hinzugefügten Ausrufezeichen Hashes zu 6d8d52389ff07487ac96b736b0aeece85e3c6ce3f8e53f95c320772b3043968e
. Kleine Änderungen im Text führen zu massiven Änderungen im Hash. Wenn also jemand den Inhalt des Blocks manipuliert, kann man es sofort sehen, und weil die Ergebnisse des Hashs so unvorhersehbar sind, ist es fast unmöglich, einen Weg zu finden – wenn Sie es verwenden eine gute Hash-Funktion. Das Generieren eines Hashs ist ebenfalls sehr schnell, sodass die Überprüfung eines Hashs auf Korrektheit sehr einfach zu bewerkstelligen ist.
Blockchains verwenden diese Hashes der Blöcke, um die Verbindungen herzustellen, die die Kette bilden: Der neueste Block verbindet sich mit seinem Vorgänger mit seinem Hash, der wiederum mit seinem Hash mit seinem Vorgänger verknüpft ist usw. Und weil Hashing so billig ist, ist es sehr einfach, dies zu garantieren Blöcke können in einer Blockchain nicht geändert werden: Da die Verbindung zum vorherigen Block der Hash ist, können Sie die Kette nicht manipulieren. Selbst wenn Sie versuchen würden, den Link auf einen anderen manipulierten Block zu verweisen, würde dies den Hash des betreffenden Blocks ändern. Dieser nette Trick macht es sehr schwierig, wenn nicht sogar unmöglich, den Inhalt einer Blockchain zu manipulieren: Wenn etwas drin ist, ist es drin, und Sie können es nicht ändern. Wahrscheinlich wissen Sie jetzt auch schon, warum Sie Daten nicht löschen können: Das Entfernen von Daten würde einen Block ändern, der die Hashes von praktisch jedem Block danach ändern müsste. Dies ist auch der Grund, warum Sie eine Transaktion niemals rückgängig machen können (weil dies einen Block ändern würde). Die einzige Möglichkeit, eine Transaktion rückgängig zu machen, besteht darin, dass der Empfänger das übertragene Objekt zurücksendet.
Das ist alles schön und gut. Viele Nicht-Blockchain-Tools verwenden das gleiche Konzept (vielleicht haben Sie von Git gehört, einem Tool, das Programmierer verwenden, um ihren Code darin zu speichern). Das Besondere an Blockchains ist, dass sie Konsistenz garantieren wollen, während sie dezentralisiert sind, das heißt: Jeder Knoten im Netzwerk hat (irgendwann) die gleichen Daten, die gleichen Blöcke. Dies ist ein schwieriges Problem, zumal Sie in einem wirklich dezentralisierten System ohne Herrscher oder Administrator niemanden haben, der Konflikte löst. Die Leute mussten sich also Strategien einfallen lassen, um innerhalb des Netzwerks einen Konsens zu erzielen.
Strategien zur Konsensbildung¶
Aufgrund dieses Konsensproblems hat die Blockchain einen Großteil ihres problematischen Rufs. Deshalb brauchen manche Blockchains so viel Energie wie ein mittelgroßes Land.
Das Problem, mit dem Blockchains konfrontiert sind, ist also ziemlich schwierig: Wie stellen Sie sicher, dass Sie eine konsistente Datenstruktur haben, wenn Sie weder einen Schiedsrichter haben noch alle Knoten sich kennen oder vertrauen? Wie können Sie das System vor Manipulationen schützen? Und ganz grundsätzlich: Wie entscheiden Sie, wer den nächsten Block erstellen darf?
Der Ansatz, den die derzeit gängigsten Blockchains (wie Bitcoin oder Ethereum) verwenden, nennt sich "Proof of Work": Um den nächsten Block in die Kette aufzunehmen, muss man ein etwas schwieriges Problem lösen, dessen Lösung jeder leicht überprüfen kann.
In Bitcoin zum Beispiel können Sie beim Erstellen eines Blocks zusätzlichen Text hinzufügen, den Sie sich wie einen "Kommentar" vorstellen können: Er ändert die im Block enthaltenen Transaktionen nicht funktional, wird jedoch bei der Berechnung des Hashs für den verwendet Block. Dieser Text/Kommentar verändert den Hash (siehe oben) massiv. Und gibt dem Chanin genügend Raum, um Rätsel zu erstellen, die komplex genug sind.
Angenommen, Sie geben den Leuten die Aufgabe, "einen Hash zu finden, der mit 123 beginnt". Selbst wenn Sie verschiedene Sätze von Transaktionen auswählen oder ihre Reihenfolge ändern, können Sie die Aufgabe möglicherweise nicht erfüllen, vielleicht finden Sie keinen Block, der diese Art von Hash erstellt. Der zusätzliche "Kommentar" gibt Ihnen genügend Spielraum, um weitere verschiedene Optionen auszuprobieren. Die Leute müssen immer noch viele Male versuchen, den richtigen Text zu erraten, um einen Block mit dieser Eigenschaft zu erstellen, aber es wird immer möglich sein.
Nachdem Sie einen Text/Kommentar gefunden haben, der die richtige Art von Hash erstellt hat, können alle anderen leicht erkennen, dass die Lösung korrekt ist, und jeder kann das Rennen zum Erstellen des nächsten Blocks beginnen. Wenn Sie schon einmal von "Mining" gehört haben, ist das genau das: Einen neuen Block an die Kette anhängen und die angehängte Belohnung erhalten. (Bei Bitcoin bekommt man ein paar Münzen "aus dem Nichts" für das Schürfen eines Blocks und Leute, die wirklich wollen, dass ihre Transaktionen schnell zu Blöcken hinzugefügt werden, können auch eine Bitcoin-Belohnung /nennen wir es nicht Bestechung!/ hinzufügen.)
Proof of Work ist also wirklich nur das schnelle Erraten von Wörtern und Zahlen. Da das Erstellen des nächsten Blocks in den meisten Ketten belohnt wird, gibt es eine Motivation, viel Kraft in das Finden zu investieren, weshalb es sinnvoll ist, je mehr ein Bitcoin wert ist, desto mehr Energie zu verbrennen, um den nächsten Block zu erstellen und mit Münzen belohnt werden.
Es gibt andere Strategien. Die andere beliebte Methode heißt "Proof of Stake" und ermöglicht es der Person, die die meisten "Token" hat (wir kommen später darauf), zu entscheiden, was der nächste Block sein wird, und ob sie diese Macht mit ihren Token missbrauchen könnte weg sein. Dieser braucht weniger Energie, hat aber andere Probleme (zum Beispiel das inhärente Machtungleichgewicht zwischen denen mit wenigen und denen mit vielen Token: Eine Person, die reich ist, wird immer in einem Konflikt mit einer Person mit weniger Token gewinnen).
Herkömmliche Datenbanken stehen dieser Herausforderung nicht gegenüber, da sich Clients anmelden und der Datenbankserver einfach – wie ein Schiedsrichter – entscheiden kann, wer seine Daten zuerst schreiben darf. Die dezentrale Architektur von Blockchains erfordert jedoch die Konsensbildung, da die "Kette" sonst in unbegrenzt viele verschiedene Blockstränge zerbrechen würde, ohne dass jemand weiß, an wessen Wahrheit sie glauben sollen. Wenn meine Kette sagt, dass ich 1000 Bitcoins habe, und Ihre sagt, dass ich null habe, haben wir ein Problem.
Grundsätzlich können Sie beliebige Daten in Blockchains speichern. Aber die meisten Blockchains, die derzeit verwendet werden, speichern Transaktionen, d. h. die Bewegung von Token oder Werten von einem Konto zu einem anderen. Reden wir über Token.
Tokens und NFTs¶
Wir wissen, wie Blockchains funktionieren, aber es ist immer noch unklar, was genau zum Beispiel ein Bitcoin ist. Lassen Sie uns hier nicht auf theoretischer Ebene auf die Wert- und Geldtheorien eingehen, sondern auf technischer Ebene.
Blöcke auf der Bitcoin-Blockchain speichern Transaktionen zwischen Konten. Ein Konto wird erstellt, indem die geheimen kryptografischen Schlüssel dafür generiert werden, und beginnt mit 0 Bitcoin. Durch das Erstellen eines neuen Blocks oder durch das Zusenden von Bitcoins ändert Ihr Konto seinen Kontostand. Bitcoins sind keine "Dinge", nicht einmal "digitale Dinge", sondern eher eine Abstraktion für das, was das Kontenbuch verfolgt. Sie "haben" einen Bitcoin, wenn Ihr Konto sagt, dass Sie >1 BC darin haben. Aber Sie konnten es nicht als Gegenstand herausnehmen, wie Sie Bargeld von Ihrer Bank bekommen könnten. Bitcoins sind nur eine erzählerische Abkürzung, um über Zahlen zu sprechen, die sich zwischen Konten bewegen.
Aber nicht alle Blockchains haben ein so einfaches Datenmodell wie Bitcoin. Ethereum zum Beispiel – die anderen großen Blockchain-Leute verwenden – hat ein Konzept namens "Smart Contracts". Der Name ist irreführend, da es sich nicht wirklich um Verträge handelt, sondern nur um Codestücke, die unter bestimmten Bedingungen ausgeführt werden. Diese Code-Bits können alle möglichen Dinge tun, sogar neue Arten von digitalen Objekten erstellen.
In gewisser Weise unterstützt die Bitcoin-Blockchain genau einen Smart Contract, und das ist Bitcoin und wie man es verschickt. Auf Ethereum können Sie neue Verträge und Funktionen erstellen, indem Sie sie in der Kette selbst bereitstellen. Sie könnten also einen neuen Token namens "Testcoin" auf der Ethereum-Blockchain erstellen, die von Ihrem Smart Contract verwaltet wird.
Die meisten Token sind sogenannte "fungible": Das heißt, es spielt keine Rolle, welchen Token Sie haben, sie sind alle gleich. Es bedeutet auch, dass Sie sie zerschneiden, Teile davon irgendwohin schicken und sie dann mit anderen Teilen aus anderen Token "zusammensetzen" können. Sie sind im Grunde wie herkömmliches Geld: Es spielt keine Rolle, welchen 10-EUR-Schein Sie haben (es sei denn, Sie haben einen als Notizblock verwendet, aber das geht hier nicht weiter) und Sie können nur 0,50 EUR Ihrer 10 EUR nehmen und verschenken.
Irgendwann haben die Leute herausgefunden, dass man Token erstellen kann, die anders sind, "nicht fungibel". Dies bedeutet, dass Sie sie nicht einfach zerschneiden können und dass es darauf ankommt, ob Sie den Token mit der Nummer 1 oder 13 haben. Dies wird meistens verwendet, um entweder ein physisches Gut oder etwas anderes darzustellen, das einzigartig sein soll: Das sind NFTs. NFTs sind etwas Besonderes, weil sie in gewisser Weise gegen eine wesentliche Wahrheit des Digitalen verstoßen: Kostenlose Reproduzierbarkeit. Nur eine Person kann eine bestimmte NFT in ihrem Konto haben, sie kann nicht vernünftigerweise geklont werden. Sie könnten ein anderes Token mit demselben Inhalt erstellen, aber es wäre ein anderes Objekt in einer Blockchain. Die Fälschung wäre im Grunde sofort sichtbar.
Ansonsten sind NFTs wie andere Token auf einer Blockchain. Sie können zwischen Konten verschoben werden und der ihnen zugrunde liegende Smart Contract kann beispielsweise erzwingen, dass sie nur verschoben werden, wenn die erforderlichen Bedingungen auf der Blockchain erfüllt sind: Die Übertragung würde beispielsweise nur ausgelöst, wenn die Zahlung durchgelaufen ist.
DAOs¶
DAOs oder "dezentralisierte autonome Organisationen" sind im Grunde Smart Contracts mit einer Mission. Wenn wir normalerweise an eine Organisation denken, denken wir an Menschen mit einem gemeinsamen Ziel und einer Reihe von Regeln, die bestimmen, wie die Organisation funktioniert. Dazu gehört normalerweise eine Form von hierarchischer Machtstruktur oder andere Formen des Treffens gemeinsamer Entscheidungen. DAOs versuchen, den Menschen aus der Gleichung herauszunehmen, indem sie im Grunde die "Code is Law"-Ideologie umsetzen.
Ein DAO ist ein intelligenter Vertrag, der Entscheidungen über etwas auf der Grundlage von Informationen und Ereignissen trifft. Eine gängige Idee ist beispielsweise, Code zu schreiben, der entscheidet, wann und wo Geld investiert wird. Menschen können ihre Token in die DAO investieren, die dann Entscheidungen über diese Gelder gemäß dem Kodex im Vertrag trifft. Aber DAOs können grundsätzlich für alles Mögliche implementiert werden.
DAOs sind relevant, weil sie zwar technologisch nur Smart Contracts sind, aber eine Form der Organisation (die man als eine Form einer sozialen Technologie betrachten könnte), die vor Blockchains nicht wirklich auf diese Weise verwendet wurde.
Dies war der grundlegende Teil der Technologie. Es gibt natürlich viel mehr Details und Blockchains mit einigen anderen Eigenschaften und Behauptungen, aber für die allgemeine Idee, denke ich, haben wir Sie abgedeckt. Versuchen wir herauszufinden, was Web3 eigentlich ist.