ELI5: Was ist IBC?

Dec 22 2022
Die Geburt von Bitcoin führte zu einer kambrischen Explosion von Blockchains mit unterschiedlichen Designentscheidungen und Anwendungsfällen. Während diese Distributed Ledger unterschiedlichen Zwecken dienen, existierten sie (und existieren bis zu einem gewissen Grad immer noch) als Silos mit begrenzter sinnvoller Interaktion.

Die Geburt von Bitcoin führte zu einer kambrischen Explosion von Blockchains mit unterschiedlichen Designentscheidungen und Anwendungsfällen. Während diese Distributed Ledger unterschiedlichen Zwecken dienen, existierten sie (und existieren bis zu einem gewissen Grad immer noch) als Silos mit begrenzter sinnvoller Interaktion.

Ähnlich wie beim Internet, das es verschiedenen Arten von Computern in verschiedenen Teilen der Welt ermöglicht, miteinander zu kommunizieren, ist eine ähnliche Technologie, die als Bindegewebe zwischen Blockchains fungiert, für eine echte Wertsteigerung erforderlich. Diesem Zweck dient das Protokoll Inter-Blockchain Communication (IBC).

IBC ist ein universelles Interoperabilitätsprotokoll, das es zwei verschiedenen Blockchains ermöglicht, miteinander zu kommunizieren. IBC garantiert eine zuverlässige , geordnete und authentifizierte Kommunikation.

Eine der vielleicht wichtigsten Eigenschaften von IBC ist die Vertrauensminimierung. In Blockchains ist die Eigenschaft der Vertrauensminimierung von Natur aus mit Sicherheit verbunden. Kein verteiltes System ist vollständig „trustless“. Daher läuft die Frage der Sicherheit darauf hinaus, wem oder was vertraut wird, und wie kann dieses Vertrauen verletzt werden, dh was braucht es, damit die vertrauenswürdige Entität beschädigt wird?

In diesem Sinne verwendet IBC im Gegensatz zu den meisten Brückenlösungen keine vertrauenswürdigen Drittanbieter. Dies bedeutet, dass, wenn Sie zwei bestimmten Ketten vertrauen, die von ihnen bereitgestellten Funktionen (und standardmäßig ihre Konsensmechanismen) zu verwenden, keine zusätzliche Vertrauensannahme erforderlich ist, während Sie IBC verwenden, um zwischen diesen Ketten zu interagieren.

IBC ist auch mehr als nur eine Brücke, die Token-Transfers erleichtert. Es ist ein Mehrzweck - Message -Passing-Protokoll. Das bedeutet, dass jede Form von Daten über IBC kommuniziert werden kann.

Wie funktioniert IBC?

Um zu verstehen, wie IBC funktioniert, ist es wichtig, die zwei verschiedenen Schichten von IBC zu trennen – 1) die Transportschicht und 2) die Anwendungsschicht.

High-Level-Darstellung des IBC-Paketflusses zwischen zwei Blockchains

Transportschicht

Über IBC übermittelte Nachrichten werden in Datenpaketen transportiert . Und die Transportschicht ist für den Transport , die Authentifizierung und die Bestellung dieser Datenpakete verantwortlich.

Die Transportschicht gibt nichts darüber an, was die Daten in den Paketen sein sollten oder wie sie von einer Empfangskette interpretiert werden sollten. Aus Sicht der Transportschicht sind Informationen innerhalb von Datenpaketen nur zufällige Bytes.

Die Schlüsselkomponenten der Transportschicht sind Light Clients, Relayer, Verbindungen und Kanäle.

Ein Light Client ist eine einfache Darstellung einer Blockchain. Im Gegensatz zu Full Nodes speichern Light Clients nicht die gesamte Historie aller in einer Blockchain enthaltenen Nachrichten. Sie führen auch keine Transaktionen aus. Stattdessen sind Light-Clients so konzipiert, dass sie sich mit einem vollständigen Knoten verbinden und Blockheader (eine Zusammenfassung der in einem Block enthaltenen Daten) überprüfen. Dadurch können Light-Clients in Bezug auf Speicherung und Berechnung effizient sein.

Zwei unabhängige Blockchains A und B , die über IBC interagieren, haben leichte Clients der Kontrahentenkette. Das bedeutet, dass A einen leichten Client in seiner Blockchain hat, der als leichte Darstellung der Blockchain von B fungiert . Wenn A eine bestimmte Nachricht 'X' mit B kommunizieren möchte , sendet es den Header des Blocks, in dem diese Nachricht existiert , zusammen mit einem Verpflichtungsnachweis dieser Nachricht an B. Der Verpflichtungsnachweis wird verwendet, um das Vorhandensein oder Nichtvorhandensein einer bestimmten Nachricht auf A zu verifizieren . Unter Verwendung des Blockheaders und des Beweises verifiziert B dies kryptografischA hat tatsächlich X ausgeführt . Es ist diese Verwendung von Light Clients in IBC, die es Blockchains ermöglicht, Nachrichten miteinander auszutauschen, ohne dass ein vertrauenswürdiger Dritter erforderlich ist.

Aber A und B senden diese Nachrichten/Datenpakete nicht direkt untereinander. Wenn A stattdessen eine Nachricht an B senden möchte , schreibt oder speichert es einen Hash eines Datenpakets, das die Nachricht enthält, in seiner Zustandsmaschine . Relayer , bei denen es sich um Off-Chain-Prozesse handelt, beobachten ständig solche Nachrichten. Wenn sie sehen, dass A eine für B bestimmte Nachricht in seiner Zustandsmaschine festgeschrieben hat, nehmen sie diese Nachricht einfach auf und leiten sie an B weiter . Beachten Sie, dass Relayer genehmigungsfrei sind und daher von jedem ausgeführt werden können.

Connections sind für die Verbindung von Light Clients auf zwei verschiedenen Chains verantwortlich. Und Kanäle sind Leitungen zum Übertragen von Paketen zwischen Modulen auf diesen verschiedenen Ketten. Während Verbindungen kettenspezifisch sind, sind Kanäle daher modulspezifisch. Jedes Kanalende hat eine eindeutige Kanal-ID (und eine Port-ID), die verwendet wird, um Pakete zwischen zwei Modulen genau zu leiten.

Anwendungsschicht

Die Anwendungsschicht ist das, womit Endbenutzer interagieren. Es besteht aus verschiedenen Anwendungen, die die Transportschicht verwenden, um darauf aufzubauen. Die Transportschicht gibt nicht vor, wie Datenpakete interpretiert werden müssen. Diese Rolle übernimmt die Anwendungsschicht.

IBC unterstützt eine Vielzahl von Anwendungen wie z. B. fungible/nicht fungible Token-Transfers, Cross-Chain-Oracle-Feeds, Interchain-Konten , Interchain-Abfragen, Gebühren-Middleware (um Relayer anzuregen) usw.

Beispielsweise legt die Anwendung auf IBC-Ebene für Token-Transfers – genannt Interchain Standard 20 (ICS 20) – fest, wie Datenpakete strukturiert und von empfangenden Ketten zu interpretieren sind. Bei fungiblen Token-Transfers enthalten Datenpakete Informationen über Absender, Empfänger, Betrag und Stückelung (IBC Denom). Das Denom-Feld verfolgt den Pfad, den ein bestimmter Token durchlaufen hat, um eine bestimmte Kette zu erreichen. Die Logik, wie auf die Pakete zu reagieren ist, wird ebenfalls von ICS 20 spezifiziert.

Eine einfache Analogie, die beim Verständnis von IBC hilfreich sein kann, ist die des Postzustellsystems. Wenn Sie jemandem einen Brief schicken, senden Sie ihn über einen Postdienst, der den Umschlag mit dem Brief von Ihnen abholt und ihn im Briefkasten des Empfängers deponiert. Der Empfänger öffnet dann diesen Umschlag und liest Ihren Brief. Die Transportschicht von IBC kann als Postdienst betrachtet werden. Die Post sagt Ihnen nicht, was der Inhalt des Briefes sein soll oder wie der Empfänger Ihre Nachricht interpretieren soll.

Sie wissen auch nicht, was der Inhalt des Umschlags ist. Es führt nur die Aktion aus, den Umschlag von Punkt A zu sammeln und an Punkt B zu senden. Den Umschlag selbst kann man sich als IBC-Pakete vorstellen, die von einer Kette zur anderen gesendet werden. Und auf diesem Umschlag würden Sie die Adresse des Empfängers angeben. Dies ähnelt der Art und Weise, wie IBC-Pakete Informationen darüber enthalten, wer das Paket gesendet hat (angegeben durch die Kanal-ID) und für wen es bestimmt ist (angegeben durch die Kanal-ID der Gegenpartei). Letztlich ist der Empfänger (Anwendung) dafür verantwortlich, den Umschlag (Datenpaket) zu öffnen und den Inhalt des Briefes zu interpretieren.

Wofür kann IBC verwendet werden?

Abgesehen von fungiblen Token-Transfers umfassen zwei weitere Anwendungen auf IBC-Ebene Interchain-Konten und Interchain-Sicherheit .

Interchain-Konten erleichtern die Interaktion von Kette zu Kette und bleiben dabei auf einer einzigen Schnittstelle. Dies bedeutet effektiv, dass alle Aktionen wie Transfers, Staking oder Abstimmungen über Governance-Vorschläge, die auf B (als „Host-Kette“ bezeichnet) durchgeführt werden können, von A (als „Controller-Kette“ bezeichnet) ausgeführt werden können. Interchain-Konten erhöhen die Zusammensetzbarkeit innerhalb der Interchain erheblich, indem sie die Benutzererfahrung verbessern.

Interchain Security ist die Version der Shared Security des Cosmos Ecosystems. Es ermöglicht einer Blockchain, Sicherheit von einer anderen Kette in vollständiger Opt-in-Weise zu leasen. Dies ist besonders nützlich für neue Ketten, die sich dafür entscheiden können, die Sicherheit eines bereits etablierten Netzwerks wie des Cosmos Hub zu nutzen. Interchain Security beseitigt die Notwendigkeit für Chains, ihren eigenen Validator-Satz zu booten.

Der Umfang der Anwendungen, die mit IBC als Kernprimitiv durchgeführt werden können, wächst ständig. Kettenübergreifende NFT-Übertragungen und Interchain-Abfragen (bei denen eine Kette den Status einer anderen Kette lesen kann) werden derzeit entwickelt und werden bald produktionsbereit sein.

Welches Problem löst IBC?

In einem Satz löst IBC das Problem von Blockchains, die als Silos mit begrenzter Interaktion existieren. Die Interoperabilität zwischen Blockchains ist für eine maximale Wertschöpfung erforderlich.

Jede Blockchain ist auf einen oder mehrere spezialisierte Anwendungsfälle ausgerichtet. Wenn diese Anwendungsfälle nicht über mehrere Blockchains hinweg genutzt werden können, wird ihre Nützlichkeit stark beeinträchtigt. Der Durchbruch, den das Internet gebracht hat, besteht darin, dass Informationen problemlos über verschiedene Teile der Welt fließen können. Ebenso muss der Nutzen verschiedener Blockchains über mehrere Plattformen hinweg frei zugänglich sein.

Beispielsweise möchten Benutzer möglicherweise Stablecoins aus einer Blockchain verwenden, um Erträge über einen Liquiditätspool (LP) an einer dezentralen Börse (DEX) zu generieren, die auf einer anderen Blockchain existiert. Oder sie möchten vielleicht die Datenschutzeigenschaften nutzen, die eine andere Blockchain bietet. Die Interoperabilität zwischen Ketten ist erforderlich, um diese Anwendungsfälle und mehr zu realisieren.

IBC löst nicht nur das Problem der Interoperabilität, sondern auf eine vertrauensminimierte, sichere, erweiterbare und universelle Weise.

Wie kann ich als Anwendungsentwickler IBC nutzen?

Die modulare Natur des Cosmos SDK verhindert, dass sich Entwickler mit einigen der Abstraktionsebenen wie Light Clients, Verbindungen, Proof-Verifizierung usw. befassen müssen. Für Entwickler sind die relevantesten Anforderungen und Funktionen, mit denen sie sich vertraut machen müssen, Channels und Ports . Ausführlichere Informationen zu IBC finden Sie in unserem Entwicklerportal .

Wenn Sie Ihre Blockchain mit dem Cosmos SDK erstellen, werden die notwendigen Schritte zum Aktivieren von IBC für ein SDK-Modul hier beschrieben . Sie können sich auch beim Interchain Builders Program, einer ICF-Initiative, bewerben, um Unterstützung beim Bauen in Cosmos zu erhalten.

Über den Autor: Dieser Beitrag wurde von Adi Ravi Raj , IBC Protocol Analyst bei der Interchain GmbH, verfasst.