Polkadot, Substrat und Ethereum

Seit der Veröffentlichung des Polkadot-Papiers vor drei Jahren wussten wir, dass die Überbrückung mit dem Ethereum-Ökosystem zur Erweiterung der Fähigkeiten auf beiden Seiten einer der wichtigsten Punkte des Netzwerks sein würde. Das hat sich nicht geändert. Natürlich bedeutet „Ethereum“ viele verschiedene Dinge in verschiedenen Kontexten, die weitgehend von Absicht und Strenge abhängen. Nur wenige würden argumentieren, dass sich Ethereum unabhängig von der Nutzung nicht zumindest auf das aktuelle „ETH-Mainnet“ beziehen würde. Einige würden jedoch behaupten, dass dies unter Ausschluss anderer Netzwerke bedeuten würde, selbst derjenigen, die „offiziell“ sanktioniert wurden.

In anderen Fällen umfasst es offiziell genehmigte Folgeprojekte / Netzwerke / Gabeln (gemäß dem Inhaber der Marke Ethereum) wie Shasper. Einige würden auch “nicht-kanonische” Gabeln wie die ursprüngliche “klassische” Kette unter dem Banner von Ethereum enthalten, aber es gibt diejenigen, die dagegen sind.

Einige wie die Industriegruppe Ethereum Enterprise Alliance oder wie es für Ethereum-Entwicklungsgruppen typisch ist, würden „Ethereum“ als ein viel umfassenderes Konzept betrachten. Diese Ansicht würde jede Technologie einschließen, die auf der ursprünglichen Ausführungs-Engine von Ethereum – dem EVM – und den zugehörigen Entwickler-Tools basiert oder mit dieser kompatibel ist. Ethermint, Hyperledger Burrow und verschiedene Parity-PoA-Netzwerke, um nur einige zu nennen.

In jedem Fall ist Parity nach wie vor bestrebt, „Ethereum“, wie auch immer beabsichtigt, in Substrate und Polkadot zu unterstützen und zu überbrücken. Während wir Substrate und die damit verbundene Smart-Contract-Infrastruktur als das weltweit leistungsstärkste und freudigste Framework für die Erstellung neuer Blockchains und dApps erstellen, verstehen wir absolut, dass es viele gibt, die ihr Zuhause im Ethereum-Ökosystem genießen, sei es das Mainnet oder einfach das breitere Entwicklungsgemeinschaft. Wir sind bestrebt, unser Möglichstes zu tun, um diese Teams beim Aufbau und der Verbindung zu unterstützen.

Unser Engagement umfasst drei verschiedene Projekte, für deren Erläuterung ich einige Zeit in Anspruch nehmen möchte. eine öffentliche Polkadot / Ethereum-Netzwerkbrücke, eine Substrat / Parity-Ethereum-PoA-Brücke und ein Ethereum-kompatibles EVM-Smart-Contract-Ausführungsmodul in Substrate.

Polkadot / Ethereum Öffentliche Brücke

Das erste ist im Wesentlichen die Software, die im Originalpapier von Polkadot aus dem Jahr 2016 postuliert wurde. Die Idee ist, einen intelligenten Vertrag über die Maineum-Kette von Ethereum abzuschließen, der mit Polkadots Opa-Finalitäts-Gadget synchronisiert bleibt und eine Art „Ultra“ darstellt -light-client ”für Polkadot. Dies erleichtert ein sehr allgemeines Maß an Interaktion, vor allem für das native Token der Ethereum-Kette und für bereits bestehende Verträge, die wichtige Funktionen bereitstellen, die in Polkadot sonst nicht verfügbar wären.

Technisch gesehen kann dieser intelligente Vertrag neue Blöcke analysieren (insbesondere solche, die Nachrichten für Ethereum enthalten) und diese an die Ethereum-Kette weiterleiten. Ein Polkadot-Fallschirm würde einen Ethereum-Light-Client enthalten, der in der Lage ist, sein PoW-Konsenssystem zu überprüfen, intelligente Vertragsbelege zu interpretieren und so Nachrichten von Ethereum an das Polkadot-Netzwerk weiterzuleiten.

Hier gibt es Hindernisse, vor allem den unerschwinglichen Gaspreis für nicht native Krypto im Ethereum-Mainnet. Einige frühe Anstrengungen zur Schaffung einer solchen Infrastruktur (wie ChainX) sind bereits im Gange. Um jedoch ordnungsgemäß und ohne zusätzliche Validator- / Einsatzwirtschaft zu arbeiten, muss Polkadot zusätzliche Unterstützung leisten, insbesondere, indem die Validatoren Endgültigkeitsnachweise in den für Ethereum beheimateten Formaten zur Verfügung stellen müssen. Die Web3 Foundation erforscht und spezifiziert aktiv das Design dafür und Zuschüsse stehen Teams zur Verfügung (einschließlich, aber nicht beschränkt auf Parity Technologies), die die Umsetzung des Ergebnisses fortsetzen möchten.

Substrat / Parity-Ethereum-PoA-Brücke

Bei einigen Projekten ist die Interaktion zwischen Polkadot und Ethereum jedoch weniger wichtig, da sie aufgrund von Skalierbarkeitsproblemen ohnehin nicht im Mainnet bereitgestellt werden können. Obwohl diese Projekte nicht im Maineum (1.0) -Netznetz bereitgestellt werden, bevorzugen sie es dennoch, in einer Vielzahl von Faktoren, einschließlich der aktiven und lautstarken Community, Entwicklertools, Support und Dokumentation sowie der Vielzahl der verfügbaren Dienstanbieter, stark mit dem Ethereum-Ökosystem kompatibel zu bleiben . Letztendlich befindet sich das Netzwerk in der begehrten Position, in der „niemand Sie beschuldigt, Ihren Vertrag auf Ethereum geschrieben zu haben“, und dies ist etwas, das wir beide für unseren Teil seiner Gründung respektieren und stolz darauf sind.

Um diesen Ausblick zu unterstützen, werden wir ein Substrat für Parity-Ethereum-PoA Bridge einführen, das unserer bestehenden Parity Bridge sehr ähnlich ist Das ist das Herzstück der xDAI-Kette. In diesem Fall wird keine beliebige Parity Ethereum-Kette mit dem Ethereum-Mainnet verbunden, sondern eine mit einem Substratmodul (und damit auch mit Polkadot). In diesem Fall müsste die Ethereum-PoA-Kette immer noch ihre eigene Sicherheit verwalten (und macht sie auf diese Weise zu einem nicht ganz unähnlichen Wertversprechen zu Cosmos ‘Ethermint). Die Ethereum-PoA-Kette würde den schnellen Aura-Konsensalgorithmus (oder einen langsameren PBFT-basierten Konsens mit sofortiger Endgültigkeit) verwenden und von der bewährten Parity Ethereum-Codebasis profitieren, die jahrelang optimiert und optimiert wurde, zusammen mit verschiedenen zusätzlichen Funktionen auf Unternehmensebene, einschließlich Secret-Store-Integration und Vertragsstatusverschlüsselung.

Die benötigte Infrastruktur ist in diesem Fall viel einfacher: Wir führen einen speziellen Vorkompilierungsvertrag in die Parity Ethereum-Codebasis ein, mit dem ein Opa-Endgültigkeitsnachweis effizient und zustandslos validiert werden kann (wodurch das Problem nicht nativer Kryptogaskosten beseitigt wird). . Mit einem Brückenvertrag (der an das bereits vorhandene PoA-Brückensystem von Parity angepasst werden muss) und einer Blockweiterleitung (dieselbe) ist als einziges zusätzliches Modul ein Substratmodul erforderlich, das als Ethereum / Aura-PoA-Light-Client fungiert und verstehen und weiterleiten kann Mitteilungen. Die Arbeiten an diesem Projekt haben begonnen und wir erwarten einen Prototyp bis Ende des Jahres.

Dieses Projekt ermöglicht somit jeder sicheren privaten oder PoA-Ethereum-Kette, die auf Parity Ethereum basiert, vollen Zugriff auf eine Geschwister-Substratkette (als eventueller Upgrade-Pfad) oder auf die Polkadot-Community (für die Nutzung der Ressourcen von Polkadot und die Interaktion mit anderen Projekten) ).

Substrat EVM

Es gibt auch Projekte, die die Idee von Substrate und die damit verbundene Kraft und Flexibilität lieben (wie Off-Chain-Mitarbeiter, SRML, erweiterbare Transaktionen, Rust-basierte Smart Contracts, Metaprotocol-Governance) -Klicken Sie auf Upgrades und mehr), aber dennoch, die einen Upgrade-Pfad für ihre vorhandene Solidity-Codebasis benötigen, der in einigen Fällen wirklich sehr umfangreich ist. Unser eigenes WebAssembly-basiertes Substrate Contracts -Modul und seine verschiedenen Tools, einschließlich des Ink! Rust-basierten EDSL, haben wir aus zahlreichen Gründen in Angriff genommen: dem WebAssembly-Backend von LLVM bedeutet, dass viele gängige Sprachen (C, C ++, Rust, Go und andere) leicht auf Wasm ausgerichtet werden können. Durch die Vielzahl von Tools wie Interpreter und Compiler, Debugger, Bytecode-Analysatoren und Bibliotheken wird die Entwicklung erheblich verbessert, und mit Ink! Wir erhalten die Test-, Dokumentations- und Korrektheitsfunktionen der Rust Language.

Darüber hinaus können wir durch den Verzicht auf das fünf Jahre alte Ethereum-Ausführungsmodell die Codebasis vereinfachen und beschleunigen (indem wir fehlerhafte oder überbewertete EVM-Opcodes entfernen) und wirtschaftliche Effizienz einführen (wie das Trennen des Code-Uploads in eine Instanz) Bereitstellung und Einführung einer einlagenbasierten Staatsmiete) in der Ausführungsumgebung.

Die Realität schreibt jedoch vor, dass Funktionen, Leistung und Klarheit manchmal in den Hintergrund der Kompatibilität treten müssen. Dafür führen wir Substrate EVM ein. Dies ist ein Substrate SRML-Modul, das eine Ethereum-kompatible Ausführungsumgebung „nativ“ in Substrate einführt. Im Wesentlichen ermöglicht dies Ihrer Substratkette, die überwiegende Mehrheit der Ethereum-Zustandsübergangsfunktion zu hosten. Vorhandener Solidity / EVM-Code kann in dieser Umgebung bereitgestellt werden. Die Interaktion mit dem Rest des Substrats (d. H. Aufrufen anderer Module, Übertragen auf und von anderen Konten und Verwenden von Interchain-Messaging-Funktionen) erfolgt über speziell eingeführte APIs für vorkompilierte Verträge.

Stellen Sie sich das als eine ganze Ethereum-Blockchain in einem einzelnen SRML-Modul vor, das in den Rest Ihrer benutzerdefinierten Blockchain integriert werden kann. Eine Art Blockchain-Virtualisierungsschicht. Die Arbeiten dazu haben begonnen und wir erwarten auch, dass ein MVP in den kommenden Wochen fertig sein wird.

Außerdem…

Wir sind auch zunehmend daran interessiert, bestehende Bemühungen zur Entwicklung eines WebAssembly-Backends für den Solidity-Compiler zu unterstützen, das mit dem Ausführungsmodell von Substrate-Contracts kompatibel ist. Bei ordnungsgemäßer Implementierung können vorhandene Solidity-Smart-Verträge (die für die Bereitstellung in einer Ethereum-Kette erstellt wurden) direkt in einer Substrate-Contracts-Kette bereitgestellt werden.

In diesem Modell hindert nichts die gleiche Substratkette daran, sowohl ein EVM-Vertragsmodul (zur Ausführung des Ursprungs-Solidity / EVM-Codes) als auch ein Substrat-Vertragsmodul (zur Ausführung des Solidity / Wasm- oder Ink! Wasm-Codes) zu haben ). Die beiden könnten untereinander zusammenarbeiten und sogar Nachrichten an eine bestimmte Parity-Ethereum-Kette senden, die überbrückt ist, oder, wenn sie als Fallschirm eingesetzt werden, an die breitere Polkadot-Community, einschließlich des Ethereum-Mainnets!

Das Entwickeln und Härten der endgültigen Kernkomponenten von Polkadot 1.0 ist das, worauf wir uns derzeit hauptsächlich konzentrieren. Daher können wir diesen Projekten nicht immer so viel Entwicklerzeit widmen, wie wir möchten. Das heißt, Polkadots Daseinsberechtigung besteht darin, dramatisch unterschiedliche Projekte mit unterschiedlichen technischen Annahmen unter einem Dach zusammenzuführen. Die Ethereum-Community ist die führende Entwickler-Community auf dem Planeten mit den freiesten Denkern und den bedeutendsten Entwicklungen – wir wären ziemlich kurzsichtig, wenn wir das ignorieren würden. Jetzt, da nach zwei langen Jahren der Entwicklung die Kerninfrastruktur von Polkadot und Substrate ausgereift ist, können wir wirklich darüber nachdenken, die peripheren Teile zu bauen und die Welt der verschiedenen, verbundenen Ketten Wirklichkeit werden zu lassen.

Weitere Informationen zu Polkadot und Substrat finden Sie auf der Polkadot-Website oder Substrat-Website . Sie können den Status des Substrate SRML EVM-Moduls auf seinem Github PR anzeigen oder den Fortschritt der Ethereum-PoA / Substrate-Brücke verfolgen, während wir es auf dem Github-Repository .