TL;DR
Die Blockchains, die Sie kennen und lieben, haben eine ziemlich starre Struktur. Als Entwickler haben Sie dadurch zwei Möglichkeiten: Anwendungen in einer restriktiven Umgebung erstellen oder den Code teilen und Ihre eigene Kette erstellen. Allerdings ist es nicht so einfach, eine eigene Kette zu erstellen – Sie müssen auch ein Netzwerk gründen und herausfinden, welchen Konsensmechanismus Sie verwenden möchten.
Tendermint ist eine Open-Source-Software zum Starten von Blockchains, mit der Sie Anwendungen in jeder Sprache schreiben können. Besser noch: Sie können mit anderen Blockchains kommunizieren.
Einführung
Das Erstellen eines Kryptowährungs- oder Blockchain-Netzwerks erfordert viel mehr Aufwand als nur das Initialisieren einer Datenbank. Es erfordert ein ausgewogenes Verhältnis von Anreizen und Kompromissen zwischen Sicherheit, Dezentralisierung und Skalierbarkeit.
Es überrascht nicht, dass Teams, die die stärksten Blockchain-Ökosysteme aufbauen möchten, eine Reihe unterschiedlicher Ansätze untersucht haben. In diesem Artikel werfen wir einen Blick auf einen solchen Ansatz: Tendermint.
Was Sie über Tendermint wissen müssen
Vieles von Tendermint wird Ihnen bekannt vorkommen, wenn Sie sich ein wenig mit Blockchains auskennen. Lassen Sie uns einige Schlüsselkonzepte noch einmal zusammenfassen, bevor wir näher darauf eingehen.
Blockchain-Architektur verstehen
Tendermint ist eine Art Blockchain-Stack. Andererseits gilt das auch für Dinge wie Bitcoin und Ethereum. Denken Sie daran, es geht nicht nur um die Blockchain-Datenbank selbst, sondern auch um das Peer-to-Peer-Netzwerk von Knoten, wie sie interagieren und um die unterhaltsamen Dinge, die Sie mit Transaktionen und Smart Contracts machen können. Das Ziel besteht hier darin, dass sich alle auf einen Zustand einigen (z. B. einen Schnappschuss der Datenbank), auch wenn sie niemandem vertrauen.
Die großen Blockchains von heute haben sich zum größten Teil das Geheimnis ausgedacht, das dies ermöglicht. Sie stützen sich jedoch häufig auf eine monolithische Architektur: ein Software-Engineering-Konzept, das bedeutet, dass Komponenten miteinander verbunden und voneinander abhängig sind. Man konnte nicht einfach ein Stück davon nehmen und es an etwas anderes anschließen.
Monolithische Architektur ist nicht gut, wenn Sie Flexibilität wünschen. Im umgekehrten Modelltyp (mit modularer Architektur) können Sie einzelne Komponenten optimieren, ohne befürchten zu müssen, dass etwas kaputt geht. Bei einer monolithischen Struktur müssen Sie sicherstellen, dass jede Komponente kompatibel bleibt, wenn Sie eine einzelne aktualisieren.
Nachdem wir diesen Unterschied nun verstanden haben, können wir etwas mehr über das Tendermint-Protokoll sprechen.
Byzantinische Fehlertoleranz (BFT)
Sie wissen vielleicht, dass die große Innovation bei Bitcoin darin bestand, dass es das Problem der byzantinischen Generäle löste. Wir gehen nicht näher auf das Problem ein (lesen Sie bei Interesse unseren Artikel über byzantinische Fehlertoleranz). Sie müssen lediglich wissen, dass es ein Szenario beschreibt, in dem Teilnehmer in einer verteilten Umgebung kommunizieren müssen.
Diese Teilnehmer wissen nicht, ob andere lügen oder ob die zwischen ihnen gesendeten Nachrichten geändert werden. Ein System gilt als byzantinische Fehlertoleranz (BFT), wenn sich die Teilnehmer auf eine Reihe von Fakten einigen können, auch wenn diese Probleme vorhanden sind.
In einer dezentralen Umgebung ist es natürlich entscheidend, dies richtig zu machen. Kryptowährungen, die nicht byzantinisch fehlertolerant sind, funktionieren nicht wirklich – man bräuchte eine Art zentralisierte Parteienkoordinierung, was ihren Zweck zunichte macht. Wie viele digitale Währungen umgeht Bitcoin dieses Problem, indem es einen Proof of Work (PoW)-Konsensalgorithmus verwendet.
Die drei Schichten einer Blockchain
Wir kennen also den Unterschied zwischen monolithischer und modularer Architektur und wissen, dass dezentrale Kryptowährungsnetzwerke byzantinische Fehlertoleranz aufweisen müssen. Erwähnen wir die Schichten, die wir normalerweise in einer Blockchain sehen: die Anwendungsschicht, die Konsensschicht und die Netzwerkschicht.
Auf der Konsens- und Netzwerkebene sprechen Netzwerkknoten miteinander und versuchen, sich auf eine Reihe von Fakten zu einigen. Auf der Anwendungsebene können Sie Dinge selbst erledigen – denken Sie an dezentrale Anwendungen und Smart Contracts in Ethereum oder benutzerdefinierte Transaktionen in Bitcoin.
➟ Möchten Sie mit der Kryptowährung beginnen? Kaufen Sie Bitcoin (BTC) auf Binance!
Tendermint-Kern
Zunächst eine kurze Erläuterung der Terminologie. Wir werden die Begriffe „Tendermint“ und „Tendermint Core“ hier synonym verwenden, da wir uns nur auf die Technologie konzentrieren.
Allerdings ist Tendermint der Name des Unternehmens (gegründet von Jae Kwon, dem Entwickler, der das ursprüngliche Whitepaper geschrieben hat), während Tendermint Core die eigentliche Software ist, an der das Unternehmen arbeitet. Genauer gesagt besteht die Software aus zwei Hauptkomponenten: ihrer zentralen Konsens-Engine (Tendermint Core) und ihrer Anwendungsschnittstelle (ABCI).
Tendermint Core ist ein System, das Fehlertoleranz erreicht. Im Wesentlichen handelt es sich um einen großen, verteilten Computer, der allen zur gleichen Zeit den gleichen Zustand anzeigt. Solange mindestens zwei Drittel der Teilnehmer ehrlich sind, klappt alles reibungslos. Aber das ist so ziemlich jede Blockchain, oder? Was macht es so besonders?
Erstens handelt es sich bei dem verwendeten Konsensmechanismus um einen Proof of Stake (PoS). Für jede Periode wird ein zufälliger Knoten aus einem Validator-Set ausgewählt. Dieser Knoten muss dann den nächsten Block vorschlagen (in einem sogenannten Round-Robin-System). Wenn die anderen Validatoren damit zufrieden sind, wird der neue Block hinzugefügt und die Kette aktualisiert. Die Endgültigkeit ist sofort gegeben – anders als bei Bitcoin oder Ethereum müssen Sie nicht auf Bestätigungen warten, um sicherzustellen, dass Ihre Transaktion gültig ist.
Aber warten Sie, es gibt noch mehr! Die Architektur von Tendermint Core ist modular aufgebaut, wobei die Anwendungsschicht von der Konsens- und Netzwerkschicht getrennt ist. Im Klartext bedeutet das, dass Sie Ihre eigene Anwendungsschicht in den Stack einbinden können. Sie müssen sich keine Sorgen über lästige Anreize oder Konsensalgorithmen machen.
Vielleicht ist das für den Endbenutzer nicht allzu aufregend. Aber für Entwickler bedeutet die Möglichkeit, ein vorhandenes Framework zu nutzen, dass sie direkt mit der Entwicklung von Anwendungen beginnen können, ohne ein ganzes Netzwerk booten zu müssen. Daten aus der Blockchain können an die integrierte Schicht weitergeleitet werden, sodass Entwickler Software in jeder Sprache schreiben können.
Die Magie geschieht mit etwas namens Application Blockchain Interface oder einfach ABCI. Stellen Sie sich das wie die GPIO-Pins vor, die Sie auf einem Raspberry Pi-Computer erhalten. Daran können Sie verschiedenste Komponenten von Drittanbietern anschließen, von LEDs bis hin zu aufwändigen Sprinkleranlagen für Ihre Pflanzen. In ähnlicher Weise definiert der ABCI die Grenze zwischen der Blockchain und den darauf laufenden Anwendungen.
Was ist das Tolle an Tendermint Core?
Die Trennung der Anwendungsschnittstelle und des Konsensmechanismus ermöglicht eine größere Flexibilität für eine Reihe dezentraler Anwendungen, beliebige Programmiersprachen in ihre Geschäftslogik zu integrieren.
Um ein konkretes Beispiel dafür zu finden, was getan werden kann, müssen Sie sich nur Ethermint ansehen: ein Projekt, das die Ethereum-Codebasis übernahm, den Proof-of-Work-Mechanismus entfernte und die virtuelle Maschine von Ethereum auf Tendermint aufbaute.
Dadurch wurden einige interessante Dinge möglich. Erstens könnten Ethereum-Entwickler ihre Smart Contracts problemlos auf die neue Engine portieren oder neue Verträge in der Solidity-Sprache schreiben. Neben der Bereitstellung der Ethereum-Funktionalität fungiert Ethermint auch als Proof of Stake Ethereum und gibt uns einen Einblick, wie eine Casper-Implementierung in Ethereum 2.0 aussehen könnte.
Blockchain-Interoperabilität
Das Versprechen eines „Internets der Blockchains“ ist es, was viele zu Tendermint-basierten Protokollen hinzieht. Interoperabilität ist eine lang erwartete Ergänzung im Bereich der Kryptowährungen, da sie bedeutet, dass Hunderte einzelner Blockchains kreuzkompatibel werden.
Derzeit wurde viel Arbeit in das Cosmos SDK gesteckt, ein Open-Source-Framework, das es jedem ermöglicht, eine anwendungsspezifische öffentliche oder private Blockchain zu erstellen. Diese Blockchains können dann über den sogenannten Cosmos Hub in das größere Cosmos-Netzwerk eingebunden werden, wo sie mit anderen kommunizieren können.
Mit dem Cosmos SDK wurden zahlreiche beliebte Projekte erstellt, darunter BNB Smart Chain (BSC), KAVA, Band Protocol, Terra und IRISnet.
Abschließende Gedanken
Als Blockchain-Engine hat Tendermint die Aufmerksamkeit zahlreicher Interessengruppen im Bereich der Kryptowährungen auf sich gezogen, von Entwicklern bis hin zu Endbenutzern.
Wenn die Software weiterhin an Bedeutung gewinnt, könnte sie durchaus als Rückgrat für ein Internet der Blockchains dienen. Wie wir gesehen haben, wurden bereits eine Handvoll Projekte mit dem Cosmos SDK gestartet, um diese Vision zu verwirklichen.