Was ist Cosmos IBC? Eine Einführung in Inter-Blockchain Communication

Was ist Cosmos IBC?
Cosmos IBC ist ein Protokoll, mit dem einzelne Blockchains sicher Nachrichten miteinander austauschen können. IBC steht für Inter-Blockchain Communication und ist im Cosmos-Ökosystem entstanden. Deshalb hörst du oft den Namen Cosmos IBC, aber das Design ist nicht nur für Cosmos SDK-Blockchains gedacht.
Einfach gesagt ist IBC ein gemeinsamer Satz von Regeln für Blockchains, die miteinander kommunizieren wollen. Das Protokoll legt fest, wie eine Nachricht gesendet wird, wie die empfangende Blockchain prüft, ob die Nachricht echt ist, und in welcher Reihenfolge Nachrichten verarbeitet werden. Du kannst IBC dabei als eine Art Kommunikationsstandard für Blockchains sehen, ähnlich wie die EVM innerhalb von Ethereum eine Standardumgebung für die Ausführung von Smart Contracts bietet.
IBC ist also keine Blockchain, kein zentraler Hub und auch nicht nur eine Brücke für Tokens. Ein Token-Transfer ist zwar ein bekannter Anwendungsfall, aber IBC kann auch andere Arten von Nachrichten weitergeben. Denk zum Beispiel an Anweisungen für die Kontoverwaltung auf einer anderen Blockchain.
Wichtig zu wissen: Der Inhalt einer IBC-Nachricht wird von der Anwendung bestimmt, die sie sendet und empfängt. IBC sorgt vor allem für den Transport und die Kontrolle darum herum. Du kannst es dir als zuverlässiges Zustellsystem vorstellen, während die Anwendung bestimmt, was im Paket steckt und was damit passieren soll.
Die ursprüngliche Struktur heißt IBC v1. Dabei richten zwei Blockchains zuerst eine Connection und danach Channels ein, bevor Anwendungen Nachrichten austauschen können. IBC v2 ist die neueste Version des Designs und soll das mit direkterer Kommunikation zwischen Clients vereinfachen. Die Standards für v2 sind noch als Draft gekennzeichnet.
Wichtigste Erkenntnisse
- IBC steht für Inter-Blockchain Communication und ermöglicht es einzelnen Blockchains, Nachrichten auszutauschen.
- Cosmos IBC ist keine Blockchain und kein zentraler Hub, sondern ein Interoperabilitätsprotokoll.
- IBC kann für weit mehr genutzt werden als nur für Token-Transfers.
- IBC v1 arbeitet mit Connections und Channels zwischen zwei Blockchains.
- IBC v2 ist die neueste Iteration, aber die Spezifikationen sind noch als Draft vermerkt.
Wie funktioniert Cosmos IBC?
Cosmos IBC funktioniert dadurch, dass beide Blockchains sich mit einem eigenen On-Chain-Lichtclient gegenseitig prüfen. Ein Lichtclient ist ein kleiner Bestandteil auf einer Blockchain, der Informationen von einer anderen Blockchain verfolgen und kryptografische Beweise prüfen kann.
Das klingt technisch, aber die Idee ist ziemlich logisch. Blockchain A muss nicht blind glauben, was Blockchain B oder ein Relayer sagt. Blockchain A speichert Informationen, mit denen sie nachvollziehen kann, ob eine Nachricht tatsächlich im Zustand von Blockchain B enthalten ist.
Bei IBC v1 richten zwei Blockchains zuerst eine Connection ein. Das ist eine kontrollierte Verbindung, mit der beide Blockchains festlegen, mit welchem Netzwerk sie kommunizieren.
Der Aufbau einer solchen Connection erfolgt in vier Schritten. ConnectionOpenInit startet die Verbindung, ConnectionOpenTry lässt die andere Blockchain reagieren, ConnectionOpenAck bestätigt, dass die Daten stimmen, und ConnectionOpenConfirm schließt die Verbindung ab. So prüfen beide Blockchains Schritt für Schritt, dass sie mit dem richtigen Gegenüber verbunden sind.
Auf einer Connection können mehrere Channels laufen. Ein Channel ist ein spezifischer Kommunikationskanal zwischen zwei Anwendungen auf verschiedenen Blockchains. Anwendungen binden sich dabei an einen eindeutigen Port. Du kannst dir einen Port als festen Anlaufpunkt einer Anwendung vorstellen und einen Channel als die vereinbarte Route zur Anwendung auf der anderen Seite.
Wie gelangt eine Nachricht dann von A nach B?
-
Die Anwendung erstellt ein Packet Die sendende Anwendung erstellt ein Packet. Das ist einfach gesagt ein kleines Paket mit Daten, zum Beispiel eine Anweisung, Tokens zu senden.
-
Die Quell-Blockchain legt ein Commitment fest Die Blockchain, von der das Packet ausgeht, schreibt ein Packet-Commitment in ihren eigenen State. Das ist ein kryptografischer Beweis dafür, dass das Packet dort festgehalten wurde.
-
Ein Relayer überträgt Packet und Beweis Ein Relayer liest das Packet und den dazugehörigen Beweis aus und reicht beides bei der empfangenden Blockchain ein.
-
Die empfangende Blockchain prüft alles Der Lichtclient prüft den kryptografischen Beweis. Stimmt der Beweis, kann die empfangende Anwendung das Packet verarbeiten.
-
Meist kommt eine Bestätigung zurück Nach der Verarbeitung schreibt die empfangende Anwendung oft ein Acknowledgement. Das ist eine Empfangs- oder Ergebnisnachricht. Ein Relayer kann diesen Beweis zurück zu der Blockchain bringen, auf der das Packet begonnen hat.
Packets haben auch ein Time-out. Kommt ein Packet nicht rechtzeitig an, kann die Quell-Blockchain die Time-out-Behandlung starten, aber nur mit einem Beweis aus dem State der Ziel-Blockchain. Nur keine Antwort zu erhalten reicht also nicht aus, um einen Transfer einfach zurückzudrehen.
Beispiel: Stell dir vor, du sendest über IBC Tokens von Blockchain A zu Blockchain B. Blockchain A hält fest, dass die Nachricht gesendet wurde. Danach bringt ein Relayer die Nachricht zusammen mit dem Beweis zu Blockchain B. Sobald Blockchain B geprüft hat, dass der Beweis stimmt, wird der Transfer verarbeitet und eine Bestätigung kann zurück an Blockchain A gesendet werden.
IBC v2 will diese Struktur vereinfachen. Statt mehrerer technischer Schritte, um zwei Blockchains miteinander zu verbinden, soll v2 Nachrichten direkter zwischen beiden Netzwerken senden. Dieser Ansatz ist noch nicht überall Standard, weil die wichtigsten Standards für IBC v2 noch in Entwicklung sind.
Welche Rolle spielen Relayer innerhalb von Cosmos IBC?
Relayer sind die Zusteller von IBC-Nachrichten zwischen Blockchains. Sie beobachten Blockchains und leiten Nachrichten an die andere Blockchain weiter.
Blockchain A und Blockchain B senden IBC-Nachrichten nämlich nicht direkt aneinander. Ein Relayer sieht zum Beispiel, dass auf Blockchain A eine neue Nachricht bereitliegt, und bringt sie zusammen mit dem Beweis, dass die Nachricht echt ist, zu Blockchain B.
Der Relayer entscheidet nicht selbst, ob eine Nachricht gültig ist. Das prüft Blockchain B selbst. Dadurch muss Blockchain B dem Relayer nicht einfach vertrauen.
Relayer leiten nicht nur neue Nachrichten weiter. Sie können auch eine Bestätigung an die ursprüngliche Blockchain zurücksenden. Wenn eine Nachricht nicht rechtzeitig verarbeitet wird, können sie außerdem weitergeben, dass die Frist abgelaufen ist.
Grundsätzlich kann jeder als Relayer arbeiten. IBC hat keine zentrale Partei, die verpflichtend alle Nachrichten weiterleiten muss. Ein Relayer kann sich auch dafür entscheiden, nur bestimmte Arten von Nachrichten oder bestimmte Verbindungen zu unterstützen.
Es muss allerdings mindestens ein aktiver Relayer vorhanden sein, damit Nachrichten weitergeleitet werden. Ein Relayer kann eine gültige Nachricht normalerweise nicht fälschen, aber wenn kein Relayer aktiv ist, kann eine Nachricht hängen bleiben.
IBC hat kein festes System, mit dem Relayer immer bezahlt werden. Wie sie vergütet werden, kann daher je nach Blockchain oder Anwendung unterschiedlich sein.
Welche Blockchains können Cosmos IBC nutzen?
Grundsätzlich kann jede Blockchain IBC nutzen, solange sie die nötigen Komponenten unterstützt, um Nachrichten zu senden und zu prüfen. Dafür müssen Blockchains nicht dieselbe Technik oder denselben Konsensmechanismus verwenden.
Um eine andere Blockchain prüfen zu können, verwendet IBC einen sogenannten Light Client. Welcher Light Client nötig ist, hängt von der Blockchain ab, mit der eine Verbindung hergestellt wird. Cosmos-Blockchains nutzen zum Beispiel oft einen Light Client für CometBFT, während es auch andere Arten für andere Anwendungsfälle gibt.
Dass eine Blockchain IBC unterstützt, bedeutet nicht automatisch, dass sie direkt mit jeder anderen IBC-Blockchain kommunizieren kann. Beide Blockchains müssen sich technisch gegenseitig prüfen können, und es muss einen Relayer geben, der die Nachrichten zwischen beiden Netzwerken weiterleitet. Bei IBC v1 muss außerdem zuerst eine Verbindung zwischen beiden Blockchains aufgebaut werden.
IBC-Unterstützung bedeutet auch nicht, dass jede Funktion automatisch verfügbar ist. Zwei Blockchains können zum Beispiel zwar miteinander verbunden sein, während Token-Transfers, NFT-Transfers oder andere IBC-Funktionen auf dieser Verbindung noch nicht aktiviert sind.
Die Go-Version von IBC wird von vielen Blockchains innerhalb des IBC-Ökosystems genutzt. Daneben gibt es auch Lösungen unter anderem für Solidity/EVM und Solana, auch wenn sich die technische Funktionsweise und Sicherheit je nach Integration unterscheiden können.
Wofür wird Cosmos IBC genutzt?
Cosmos IBC wird genutzt, um verschiedene Arten von Cross-Chain-Nachrichten zu senden, nicht nur Tokens. Die Anwendungen auf beiden Seiten bestimmen selbst, wie sie die Daten in einem Packet aufbauen und verarbeiten.
Die bekannteste Anwendung ist ICS-20, der Standard für Transfers fungibler Tokens. Fungibel bedeutet, dass jede Einheit untereinander gleich ist, also etwa ein Token gegen einen anderen Token derselben Art austauschbar ist.
Bei so einem Transfer bleibt der Weg und die Herkunft des Tokens als Denomination Trace erhalten. Dadurch kann Software nachvollziehen, woher eine IBC-Tokenrepräsentation stammt und über welchen Weg sie gekommen ist.
IBC kann auch für Interchain Accounts über ICS-27 genutzt werden. Damit kann eine Controller-Blockchain Transaktionsanweisungen an ein Konto auf einer Host-Blockchain senden. Die Host-Blockchain prüft die Anweisungen und führt nur aus, was erlaubt ist.
Außerdem gibt es ICS-721 für NFT-Transfers. Verlässt ein NFT die ursprüngliche Blockchain, wird es dort in Escrow gelegt. Auf der empfangenden Blockchain entsteht dann ein passender Voucher. Geht das NFT zurück, passiert das Gegenteil.
Es gibt auch einen Standard für Cross-Chain-Queries, ICS-31. Dabei kann eine Blockchain Informationen bei einer anderen Blockchain abfragen, und ein Relayer bringt die Antwort mit Beweis zurück. Dieser Standard ist noch als Draft gekennzeichnet und daher nicht automatisch überall verfügbar.
Schließlich gibt es Interchain Security. Damit können Cosmos-Blockchains sich gegenseitig Proof-of-Stake-Sicherheit ausleihen. Das ist eine separate IBC-Anwendung und kein Standardbestandteil jeder IBC-Verbindung.
Was sind die Vorteile von Cosmos IBC?
Der größte Vorteil von Cosmos IBC ist, dass Blockchains miteinander kommunizieren können, ohne ihre eigenen Regeln oder ihren Konsensmechanismus aufzugeben. Jede Blockchain bleibt also eigenständig, kann aber trotzdem Nachrichten mit anderen Blockchains austauschen.
Ein weiterer starker Punkt ist die Verifikation. Die empfangende Blockchain prüft Packet Commitments und Acknowledgements mit kryptografischen Beweisen über ihren Lichtclient. Der Relayer liefert die Daten an, muss aber nicht die Partei sein, der du bei der Gültigkeit vertraust.
Außerdem ist IBC modular aufgebaut. Dieselbe Basisschicht kann für verschiedene Anwendungen genutzt werden, zum Beispiel für:
- Transfers fungibler Tokens;
- NFT-Transfers;
- Cross-Chain-Transaktionen über Interchain Accounts;
- andere Anwendungen, die Nachrichten zwischen Blockchains senden wollen.
IBC hat keinen verpflichtenden zentralen Hub oder exklusiven Relay-Operator. Dadurch ist permissionless Relaying möglich: Verschiedene Parteien können Relayer betreiben und Packets verarbeiten.
Auch Channels bieten Flexibilität bei der Verarbeitung von Nachrichten. Ein Channel kann geordnet arbeiten, sodass Packets in einer festen Reihenfolge ankommen müssen, oder ungeordnet. Mit Acknowledgements und Time-outs erhalten Anwendungen außerdem eine feste Methode, um ein empfangenes, fehlgeschlagenes oder abgelaufenes Packet zu behandeln.
Eine Connection kann mehrere Channels tragen. Dadurch müssen verschiedene Anwendungen zwischen denselben zwei Blockchains nicht jedes Mal eine vollständige Connection neu aufbauen.
Was sind die Nachteile von Cosmos IBC?
Cosmos IBC hat auch Nachteile, vor allem in Bezug auf Verfügbarkeit, technische Komplexität und die Sicherheit der verbundenen Blockchains. IBC ermöglicht Cross-Chain-Kommunikation, fügt aber auch zusätzliche Schritte im Vergleich zu einer normalen lokalen Transaktion hinzu.
Die erste Abhängigkeit sind die Relayer. Ohne mindestens einen korrekten und aktiven Relayer können Packets, Acknowledgements und Client-Updates verzögert werden oder ganz hängen bleiben. Das bedeutet nicht automatisch, dass jemand Tokens stehlen kann, aber dein Transfer kann dann möglicherweise nicht abgeschlossen werden.
Die Sicherheit einer IBC-Connection hängt auch von den Lichtclients und der Konsenssicherheit beider Blockchains ab. Wenn eine bösartige Validatorengruppe den Trust Threshold eines Lichtclients überschreitet, kann die Connection unsicher werden.
Ein Lichtclient kann außerdem unbrauchbar werden. Zum Beispiel wenn die verfolgte Blockchain stoppt, wenn Updates zu lange ausbleiben oder wenn der Client nach erkanntem Fehlverhalten einfriert. In der grundlegenden IBC- und ICS-20-Logik können Assets in einem betroffenen Channel dann dauerhaft feststecken, wenn es keinen Wiederherstellungsmechanismus gibt.
Cross-Chain-Verarbeitung kostet auch mehr Zeit und oft mehr Transaktionsgebühren. Ein normaler Ablauf kann aus dem Senden eines Packets, dem Empfang auf der anderen Blockchain, dem Zurücksenden eines Acknowledgements und manchmal einem Time-out-Verfahren bestehen. Das sind mehrere Aktionen auf zwei verschiedenen Blockchains.
Die technische Einrichtung ist nicht gerade einfach. Lichtclients, Connections, Channels, Anwendungs-Module und Relayer müssen gut zusammenarbeiten. Ein Fehler bei Konfiguration, Integration oder Wartung kann Probleme verursachen.
Time-outs sind ebenfalls komplizierter, als sie auf den ersten Blick wirken. Gibt es eine vollständige Netzwerkpartition, kann die Quell-Blockchain nicht allein aus dem Ausbleiben einer Antwort schließen, dass das Packet nie ausgeführt wurde. Die Ziel-Blockchain muss erreichbar sein, um den nötigen Beweis zu liefern.
In einer privaten Testumgebung wurden außerdem unter anderem Verzögerungen bei Bestätigungen, RPC-Engpässe und Concurrent-Processing-Probleme bei Relayern beobachtet. Solche Ergebnisse hängen von der verwendeten Umgebung und Implementierung ab, zeigen aber, dass Relaying in der Praxis technische Grenzen erreichen kann.
Fazit
Cosmos IBC ist ein Protokoll, mit dem eigenständige Blockchains kontrolliert Nachrichten austauschen können. Es geht also um weit mehr als nur um das Senden von Tokens: IBC kann auch für NFT-Transfers, Interchain Accounts und andere Cross-Chain-Anwendungen dienen.
Der Kern ist, dass Blockchains sich über Lichtclients und kryptografische Beweise gegenseitig prüfen können. Relayer bringen die Nachrichten hin und her, entscheiden aber nicht selbst, ob eine Nachricht gültig ist. Gleichzeitig bleiben aktive Relayer, eine gute Konfiguration und die Sicherheit beider Blockchains entscheidend.
Für Krypto macht IBC es möglich, Anwendungen auf verschiedenen Blockchains besser miteinander arbeiten zu lassen. Es ist keine magische Lösung ohne Risiken, aber ein wichtiger Baustein für eine stärker vernetzte Blockchain-Welt.