Wie Blockchains miteinander kommunizieren


Als integrale Technologie anerkannt, untersuchen wir Cross-Chains, um besser zu verstehen, wie Blockchains miteinander kommunizieren können.

Als Blockchains zum ersten Mal erstellt wurden, wurde davon ausgegangen, dass sie eine "One Size Fits All" -Lösung bieten können, was bedeutet, dass alle Transaktionen, intelligenten Verträge oder alles andere in einer einzigen Kette ausgeführt werden. Es ist jedoch jetzt klar, dass ein solches System nicht so praktisch ist, insbesondere wenn es Skalierbarkeitsgrenzen und Innovationsbeschränkungen gibt.

Eine Kreuzkette ist die Interoperabilität zwischen zwei relativ unabhängigen Blockketten. Mit anderen Worten, es ermöglicht Blockchains, miteinander zu sprechen, da sie auf standardisierte Weise aufgebaut sind. Die kettenübergreifende Implementierung wird hauptsächlich durch Asset-Swap und Asset-Transfer repräsentiert, die sowohl ein wichtiger Bestandteil der Blockchain-Welt als auch eine wichtige Forschungsrichtung von PPIO sind. Mit Kreuzketten können die Einschränkungen einer einzelnen Kette vermieden werden. Heute werden wir die logische Struktur des Cosmos Cross-Chain-Protokolls untersuchen, einer der vielversprechendsten Cross-Chain-Plattformen.

Die Kreuzkettenwechselwirkung kann entsprechend der zugrunde liegenden Technologie in isomorphe Kreuzketten und heterogene Kreuzketten unterteilt werden. Bei isomorphen Ketten sind der Sicherheitsmechanismus, der Konsensalgorithmus, die Netzwerktopologie und die Blockgenerierungsverifizierungslogik konsistent und die kettenübergreifende Interaktion zwischen ihnen ist relativ einfach.

Andererseits ist die kettenübergreifende Wechselwirkung heterogener Ketten relativ komplex und umfasst Technologien wie den PoW-Algorithmus für Bitcoin und den PBFT-Konsensus-Algorithmus für Tendermint. Die Blockzusammensetzung und der deterministische Garantiemechanismus sind sehr unterschiedlich, daher ist ein Mechanismus für direkte kettenübergreifende Wechselwirkungen nicht einfach zu entwerfen. Die kettenübergreifende Interaktion zwischen heterogenen Ketten erfordert im Allgemeinen Nebendienstleistungen von Drittanbietern.

Auf Tendermint-Basis entwickelte Ketten können übernehmen isomorphe Kreuzketten. Das Prinzip des Asset-Transfers zwischen isomorphen Ketten im Kosmos lautet wie folgt.

Da Tendermint den PBFT + POS-Konsensalgorithmus verwendet, wird ein Block nur dann an das Netzwerk gesendet, wenn 2⁄3 Zertifizierer zustimmen. Die Validator-Informationen können überprüft werden, indem der Blockheader überprüft wird, um zu überprüfen, ob der Blockheader in einer bestimmten Kette zulässig ist. Als Beispiel entwickelt Tendermint zwei Ketten: Kette A und Kette B. Nehmen wir nun an, dass Vermögenswerte über die Kette übertragen werden müssen. Erstens registrieren sich die beiden Ketten A und B miteinander. Bei der Registrierung erkennen A und B ihre Trennung. Die Kette sendet dann die entsprechenden Genesis-Blöcke und die ChainID (zur Darstellung verschiedener Ketten) aneinander. Da der Genesis-Block die Validator-Informationen enthält, enthalten die Ketten A und B nach der Registrierung die Validator-Informationen der anderen Kette sowie die Block-Header-Informationen.

Nun müssen die Assets in A an B übertragen werden. Zuerst kann der Benutzer eine kettenübergreifende Transaktion packageTx an A senden. A führt packageTx aus, zerstört oder sperrt die zugehörigen Assets und schreibt packageTx dann in den Ausgang. Der Ausgang kann als eine Mailbox betrachtet werden, in der alle extern gemeldeten kettenübergreifenden Transaktionen abgelegt werden.

Um die Kette B über Ereignisse in der Kette A zu informieren, wird ein Relayer benötigt. Der Relayer ist für die Weiterleitung kettenübergreifender Nachrichten vom Ausgang in Kette A zum Ausgang von Kette B verantwortlich. In dieser Situation fragt der Relayer das packageTx in der Kette A ab und erhält den Merkle Proof von packageTx. Die Informationen werden in die PostTx-Transaktion des IBC-Pakets gepackt und an Kette B gesendet, die Blockheaderinformationen abfragt, wo sich packageTx befindet. Außerdem werden die Blockheaderinformationen in die IBCUpdate-Kette Tx gepackt und an die Kette B gesendet. Beachten Sie, dass der Relayer die Transaktionskosten für das IBC-Paket PostTx und die IBCUpdate-Kette Tx zahlt.

Nachdem Kette B die Transaktion IBCPacketPostTx empfangen hat, prüft sie zunächst, ob der Blockheader in IBCUpdateChainTx über den Validator in dieser Kette Teil von Kette A ist, und überprüft dann, ob der Merkle-Beweis der kettenübergreifenden Transaktion in IBCPacketPostTx mit dem Block übereinstimmt Header-Hash in IBCUpdateChainTx. Wenn alle Prüfungen bestanden sind, beginnt die B-Kette damit, verwandte Operationen auszuführen (für Kette B bedeutet dies, verwandte Assets usw. zu generieren).

Die Cross-Chain in Cosmos wird durch das IBC-Protokoll implementiert. Die folgenden im Cosmos-Ökosystem definierten IBC-Protokollpakete: IBCRegisterChainTx, IBCUpdateChainTx, IBCPacketCreateTx, IBCPacketPostTx.

IBCRegisterChainTx

Der folgende Code wird am Anfang der Kreuzkette verwendet, um den Genesis-Block zu registrieren und zu senden. Der Validator wird es der anderen Partei geben. Dieser Code kann nur einmal ausgeführt werden. Bei mehreren Ausführungen wird ein Fehler gemeldet.

Typ IBCRegisterChainTx struct {BlockchainGenesis}Typ BlockchainGenesis struct {ChainID-ZeichenfolgeGenesis-Zeichenfolge}

IBCUpdateChainTx

Dient zum Übertragen der neuesten Blockinformationen, Blockhöhe und Blockkopfinformationen der aktuellen Kette an eine andere Kette.

Typ IBCUpdateChainTx struct {Header tm.HeaderCommit tm.Commit// TODO: NextValidators}

IBCPacketCreateTx

Wenn die Kette das Transaktionspaket erhält, führt sie kettenübergreifende Transaktionen durch und stellt relevante Informationen in den Ausgang.

Typ IBCPacketCreateTx struct {Paket}Typ Packet struct {SrcChainID-ZeichenfolgeDstChainID-ZeichenfolgeSequenz uint64Geben Sie string // redundant ein, da Type () eine Methode für Payload ist.Nutzlast Nutzlast}

IBCPacketPostTx

Dieses Paket enthält den Merkle-Proof nach Ausführung der kettenübergreifenden Transaktion, der vom Relayer an eine andere Kette gesendet wird.

Typ IBCPacketPostTx struct {FromChainID string // Die unmittelbare Quelle des Pakets, nicht immer Packet.SrcChainIDFromChainHeight uint64 // Die Blockhöhe, in der Packet festgeschrieben wurde, um Proof zu überprüfenPaketBeweis * merkle.IAVLProof // Merkle 证明}

# Plugin

Dem obigen Protokoll können wir entnehmen, dass diese Protokollpakete tatsächlich eine Transaktion sind. Tendermint hat ein Plug-In-Modul, um unsere Erweiterung zu erleichtern. Wir können die Schnittstelle im Plugin implementieren und kettenübergreifende Transaktionen mit den IBC-Plugins durchführen.

Typ Plugin Schnittstelle {// Name dieses Plugins sollte kurz sein.Name () Zeichenfolge// Führen Sie eine Transaktion von ABCI DeliverTx ausRunTx (speichere KVStore, ctx CallContext, txBytes []Byte) (res abci.Result)// Andere ABCI-Message-HandlerSetOption (KVStore, Schlüssel, Wertzeichenfolge speichern) (Protokollzeichenfolge)InitChain (KVStore speichern, vals []* abci.Validator)BeginBlock (KVStore, Hash speichern) []Byte, Header * abci.Header)EndBlock (KVStore speichern, Höhe uint64) abci.ResponseEndBlock}

Der obige Code ist die Definition der Plugin-Schnittstelle. Es ist zu erkennen, dass das Plugin der ABCI-Schnittstelle sehr ähnlich ist, sodass die IBC-Transaktion bei deliverTx an das Plugin übergeben wird.

// ABCI :: DeliverTxfunc (app * BaseApp) DeliverTx (txBytes []Byte) (res abci.Result) {// Exec txSchalter tx: = tx. (Typ) {case * types.SendTx:// 执行 正常 交 交case * types.AppTx:// 执行 Plugin 中 的 交易plugin: = pgz.GetByName (tx.Name)res = plugin.RunTx (cache, ctx, tx.Data)Rückgabe resStandard:return abci.ErrBaseEncodingError.SetLog ("Unbekannter TX-Typ")}Rückgabe res}

Wie können Ketten, die POW-Konsensus-Algorithmen wie Bitcoin und Ethereum verwenden, mit dem IBC-Protokoll von Tendermint kettenübergreifend arbeiten? Aufgrund des in diesen Ketten verwendeten POW-Algorithmus können wir die Blöcke dieser Ketten nicht über den Validator überprüfen. Wir können Merkle-Beweise auch nicht verwenden, um die Legitimität von kettenübergreifenden Transaktionen in diesen Ketten zu beweisen. Darüber hinaus sind die vom POW-Konsensus-Algorithmus generierten Blöcke wahrscheinlich endgültig und können zurückgesetzt werden. Wir müssen sicherstellen, dass kettenübergreifende Transaktionen wirklich endgültig sind und nicht rückgängig gemacht werden.

Basierend auf den obigen Überlegungen verwenden wir das PegZone-Schema, um eine heterogene Kreuzverkettung durchzuführen. PegZone selbst ist eine von Tendermint entwickelte Proxy-Kette, die den Status der ursprünglichen Kette in Echtzeit verfolgt und einen Sicherheitsschwellenwert festlegt, der darauf wartet, dass der ursprüngliche Kettenblock wächst. Wenn die Anzahl den Sicherheitsschwellenwert erreicht, wird davon ausgegangen, dass der ursprüngliche Kettenstatus eine Pseudo-Echtzeit-Endgültigkeit aufweist (geringe Rollback-Wahrscheinlichkeit). Dies entspricht dem Prinzip der Light Client Wallet-Überprüfung. Beispielsweise wird der Bitcoin-Sicherheitsschwellenwert normalerweise auf 6 festgelegt, während der ETF-Sicherheitsschwellenwert auf 20 oder 100 festgelegt werden kann. PegZone selbst ist in Echtzeit endgültig und kann über IBC mit dem Cosmos Hub verbunden werden, um die kettenübergreifende Verbindung herzustellen.

In der folgenden Abbildung wird PegZone oder Peggy neben Ethereum als Beispiel für die Verkettung verwendet.

Wie aus dem obigen Bild ersichtlich, kann PegZone in fünf Teile unterteilt werden:

  • Smart Contract: Die Rolle der Vermögensverwaltung bei der Aufbewahrung von Token in Ethereum und Cosmos. Es bietet hauptsächlich vier Methoden: Sperren, Entsperren, Minzen und Brennen.
  • Zeuge: Es handelt sich um einen vollständigen Ethereum-Knoten, der das Ereignis des Ethereum-Vertrags überwacht und darauf wartet, dass 100 Blöcke generiert werden. Der gekapselte Witness Tx wird an PegZone gesendet, um die Statusänderung in der Ethereum-Blockchain zu beweisen.
  • PegZone: PegZone ist eine Tendermint-basierte Blockchain, die Benutzerkontoinformationen verwaltet, die Übertragung von Assets zwischen Benutzern ermöglicht und Transaktionsabfragen bereitstellt.
  • Unterzeichner: Secp256k1 wird zum Signieren von Transaktionen verwendet, damit Signaturen durch intelligente Verträge effizient validiert werden können. Dies entspricht dem Satz öffentlicher Prüfer-Schlüssel von Smart-Verträgen.
  • Relayer: Der Übermittler ist für alle Transaktionsweiterleitungen verantwortlich. Diese Rolle leitet den signierten SignTx an den Smart-Vertrag weiter.

In der Cross-Chain-Demo für Basecoin in Cosmos sind zwei Ketten, Kette A und Kette B, miteinander vernetzt und senden IBC Register Chain Tx zur Registrierung aneinander. Beim Überqueren der Kette werden IBC-Protokollpakete direkt gesendet, um den kettenübergreifenden Betrieb von Assets durchzuführen. Diese direkte Verbindung hat jedoch ein Problem. Wenn die Anzahl der Zonen (die einer unabhängigen Blockchain entsprechen), auf die im Netzwerk zugegriffen wird, zunimmt, nimmt die Anzahl der Verbindungen in quadratischer Reihenfolge zu, wenn die Kommunikation direkt implementiert wird. Nehmen Sie als Beispiel 100 mit dem Netzwerk verbundene Zonen. Wenn jede Zone direkt eine IBC-Verbindung herstellen muss, benötigt das Netzwerk n (n-1) / 2 = 4950 Kommunikationsverbindungen. Ein derart schnelles Wachstum wird das Netzwerk offensichtlich überfordern.

Das Konzept des Hubs kann das Problem in Bezug auf dieses Problem lösen. Im Cosmos-Ökosystem registrieren sich alle Zonen und senden IBC-Pakete an den Hub.

Hubs verwalten viele Zonen. Alle Zonen müssen sich bei einem Hub registrieren. Der Hub verfolgt den Status jeder Zone. Jede Zone meldet alle neuen Blockinformationen, die sie erzeugt, an den Hub. Gleichzeitig muss jede Zone den Status des Hubs synchronisieren. Anstatt direkt zwischen Zonen zu kommunizieren, kommuniziert jede Zone indirekt, indem sie IBC an den Hub sendet.

Wenn eine Zone eine IBC-Verbindung zum Hub herstellt, kann sie automatisch auf andere mit dem Hub verbundene Zonen zugreifen. Dies bedeutet, dass eine Zone keine Verbindung zu anderen Zonen herstellen muss.

Wenn eine Zone Token von einer anderen Zone empfängt, die mit dem Hub verbunden ist, muss sie nur dem Hub und dieser Zone vertrauen, nicht allen anderen Zonen im Netzwerk.

Unsere zweite Studie von Cosmos befasste sich mit dem Architekturdesign ihrer kettenübergreifenden Plattform, der Unterstützung der Modularisierung zum Aufbau isomorpher Ketten und der Unterstützung des Andockens externer heterogener Ketten über die Brücke. Wir haben uns auch das größte Merkmal des Cosmos-Systems angesehen, nämlich, dass alle Ketten im Cosmos-System isomorphe Ketten sind und den kettenübergreifenden Fluss von Assets bequemer unterstützen können. Alle Zonen nutzen eine Reihe von Netzwerkprotokollen, Konsensmechanismen und Datenspeichermethoden gemeinsam und können neue Zonenblockketten über API-Schnittstellen modularisieren.

Derzeit befinden sich kettenübergreifende Projekte in der Explorationsphase, und die Förderung von kettenübergreifenden Projekten in der Zukunft hängt von einer erheblichen Landung von Blockchain-Anwendungen ab. Die Notwendigkeit für kettenübergreifende Transaktionen hängt von der Verwendung von Blockchain-Anwendungen ab und basiert auf der Verwendung von Funktionen und Rechten, die durch das Zertifikat dargestellt werden, und nicht nur auf Transaktionen wie Asset-Ketten, kettenübergreifende Prädiktoren, Asset-Aufbewahrungsszenarien und letztendlich die Einrichtung eines Vertriebsnetzes, um die Inseln der digitalen Vermögenswerte zu verbinden. Zukünftig kann PPIO Assets in anderen Ketten verwenden, um Speicher und Bandbreite zu bezahlen, Datenassets zu realisieren und diese Assets durch kettenübergreifende Technologie auszutauschen.

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

Werbung: Immobilienmakler HeidelbergMakler Heidelberg

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close