Poca founder Gavin Wood's new work: Polkadot, Substrate and Ethereum

Author: Gavin Wood

Translation: KIKO

Source: PolkaWorld

Editor's Note: The original title is "Polkadot, Substrate, and Ethereum"

 

Since the publication of the Polkadot paper three years ago, we know that building a bridge with the Ethereum ecosystem to help expand the functionality of both parties will be one of the key points of the network, and this has not changed. Of course, “Ether Square” means many different things in various contexts, and its meaning largely depends on intention and strictness. No matter how the word is used, "Ethereum" will at least not refer to the current "ETH main network", which should be rarely debated. However, some would assert that “Ethernet” means excluding any other networks, even those that are “official” approved.

In other cases, it includes officially approved (according to the owner of the Ethereum trademark) follow-up project/network/branch, such as Shasper. Some of them also include “non-normative” branches, such as the original “classic” chain under the Ethereum flag, but some people object to this claim. People such as the Ethereum Enterprise Alliance industry group or the Ethereum development group generally believe that “Ether Square” is a broader concept. Includes technologies based on or compatible with Ethereum's Original Execution Engine (EVM) and its associated developer tools, such as Ethermint, Hyperledger Burrow, and various Parity-PoA networks, to name a few.

Regardless of how Ethereum is defined, Parity is as committed as ever to supporting and bridging Ethereum to Substrate and Polkadot. While we are making Substrate and its associated smart contract infrastructure the most powerful and convenient framework for creating new blockchains and dApps in the world, we absolutely understand that many people like the Ethereum ecosystem. Created, whether based on the main network or in a larger development community. We will do our best to support the establishment and interconnection of these teams.

Our commitment involves three different projects , and I would like to take some time to explain: the Poca/Ethernet Public Network Bridge in Substrate, Substrate/Parity-Ethernet-PoA Bridge and Ethereum-compliant EVM Smart Contract Execution Module.

Polkadot / Ethereum Public Bridge

The first is basically part of the software assumed in the original Polkadot paper of 2016. The idea was to build a smart contract on the Ethereum mainline, which is in sync with Polkadot's Grandpa finality gadget, a Polkaadot "ultra-light client." This promotes a very common level of interoperability, mainly for the original tokens of the Ethereum chain and pre-existing contracts, which provide some key functions that are not available in Polkadot. Technically, this smart contract can analyze new blocks (especially blocks containing messages sent to Ethereum) and forward them to the Ethereum chain . The Polkadot parallel chain will include Ethereum's “light client”, which will be able to check its PoW consensus system and interpret smart contract receipts to forward Ethereum messages to the Polkadot network.

There are some obstacles to achieving these. The main obstacle is that the price of non-local tokens on the main website of Taifang is too high . There have been some early efforts to create such an infrastructure (such as ChainX). However, to be functional and there is no additional certifier/Staking economy, this will require additional support from Polkadot, especially requiring its certifier to provide a final proof in the format inherent in Ethereum. The Web3 Foundation is actively researching and designating this design, and can provide grants to teams that want to pursue results (including but not limited to Parity Technologies).

Substrate/Parity-Ethernet-PoA Bridge

But for some projects, Polkadot/Ethernet's interoperability is less important because they will not be deployed to the main network anyway (due to scalability issues). Although not deployed on the Ethereum (1.0) mainline, these projects are expected to be highly compatible with the Ethereum ecosystem, including active communities, developer tools, support and documentation, and a wide range of available service providers. Many factors. After all, the network is in a coveted position, where “no one blames you for choosing to write your contract at Ethereum”, we are very respectful and proud of our participation in this creative process.

To support this view, we will introduce a Substrate to the Parity-Ethernet-PoA bridge , which is very similar to the existing Parity bridge at the core of the xDAI chain. In this case, instead of connecting any Parity Ethereum chain to the Ethereum main network, it connects to the Substrate module (and expands to Polkadot). In this case, the Ethereum-PoA chain will still need to manage its own security (in this way it is not very different from Cosmos's Ethermint value proposition). The Ethereum-PoA chain will use the fast Aura consensus algorithm (or the slower PBFT-based “on-the-fly” consensus) and benefit from the proven Parity Ethereum code base with years of optimization and tuning capabilities. And a variety of other enterprise-level features, including secret storage integration and contract state encryption.

In this case, the required infrastructure is much simpler: we introduced a special precompiled protocol in the Parity Ethereum codebase that validates Grandpa's proof of validity (eliminating non-native generation) efficiently and statelessly. The cost of the gas of the coin). With the bridging contract (which will be adapted from the pre-existing PoA bridging system of Parity) and the block forwarder (ibid.), the only additional component required is the Substrate module that acts as an Ethereum / Aura-PoA light client and can understand and forward messages. The work of the project has begun and we expect to prototype before the end of this year.

As a result, the project will allow any Parity Ethereum-based secure private chain or PoA Ethereum chain to fully access the peer Substrate chain (as the final upgrade path) or the Polkadot community (to use Polkadot resources and interoperate with other projects).

Substrate EVM

There are also projects that like Substrate and all the features and flexibility it brings (such as off-chain workers, SRML, scalable transactions, Rust-based smart contracts, meta-protocol management, one-click upgrades, etc.), but who needs This is really important in some cases for the path to upgrade their existing Solidity codebase. Our own WebAssembly-based "Substrate Contract" module and its various tools, including Ink! . Rust-based EDSL is something we're going to do for a number of reasons: LLVM's WebAssembly backend means that many common languages ​​(C, C++, Rust, Go, and other languages) can be easily used with Wasm. Numerous tools such as interpreters and compilers, debuggers, bytecode parsers, and libraries mean that the development environment can be greatly improved, and with Ink! we also get the testing, documentation, and correctness features of the Rust language.

In addition, by abandoning the Ethereum implementation model that has been around for five years, we can both simplify and speed up the code base (by eliminating flawed or overly prudent EVM opcodes) and increase economic efficiency in the execution environment (eg, code The upload is separated from the instance deployment and introduces a deposit-based state rent). That is to say, reality shows that sometimes functionality, performance, and clarity must be compromised in terms of compatibility. To this end, we will introduce the Substrate EVM. This is a Substrate SRML module that introduces the Ethereum compatible execution environment "local" into Substrate . Essentially, this allows your Substrate chain to carry most of the Ethereum state transitions. Existing Solidity / EVM code can be deployed into this environment. Interoperability with the rest of Substrate (that is, calling other modules, transferring between other accounts and using interchain messaging) is done through a specially introduced "pre-compiled contract" API.

Think of it as the entire Ethereum blockchain in a single SRML module that can be integrated into the rest of your custom blockchain, which can be called a blockchain virtualization layer. This work has already begun and we also hope to prepare the MVP in the coming weeks.

In addition… we are also increasingly interested in supporting existing work to develop the WebAssembly backend for the Solidity compiler, which is compatible with the Substrate-Contracts execution model. If implemented correctly, this will allow existing Solidity Smart Contracts (authorized to be deployed into the Ethereum chain) to be deployed directly into the Substrate-Contracts chain. In fact, in this model, nothing prevents the same Substrate chain from having both the EVM-Contracts module (for executing the original Solidity / EVM code) and the Substrate-Contracts module (for executing Solidity / Wasm or Ink!Wasm code). The two can interoperate and even post messages to a separate Parity-Ethereum chain that is bridged, or if deployed as a parallel chain, can be spread to the broader Polkadot community, including the Ethereum main network!

Currently, we focus on developing and enhancing the final core components of Polkadot 1.0, so we can't always spend a lot of development time on these projects as we hope. That is to say, Polkadot exists because it integrates disparate projects with multiple technical assumptions. The Ethereum community is the most important developer community on the planet, with the most free thinkers and the most meaningful developments – ignoring this is a short-sighted performance. After two years of development, the core infrastructure of Polkadot and Substrate has matured, and we can really start thinking about building peripheral components and diversifying the world to make the connection chain a reality.

For more information on Polkadot and Substrate, visit the Polkadot website or the Substrate website. You can check the status of the Substrate SRML EVM module on Github PR or track the development of the Ethereum-PoA / Substrate bridge in our Github repository.