IoTeX Mainnet — Staking/Voting & The Grand Design


Hello, IoTeX community! We are quickly approaching the IoTeX Mainnet launch and Delegates election. To get you familiar with the voting process, we will have another blog post coming soon with step-by-step instructions for voters! But first, we explain the design and rationale of IoTeX’s staking and voting process in this blog post.

The Grand Design of the IoTeX Network

While we are extremely focused on launching the Mainnet and IoTeX root chain, we are always thinking ahead about the bigger picture of IoTeX Network for the next 5–10 years. Our long-term design employs Separation of Powers, a term coined by Charles-Louis de Secondat, which states that political authority should be divided into legislative, executive and judicial powers. Inspired by this concept, the grand vision for IoTeX utilizes four layers with unique roles.

IoTeX Architecture Layers

  • Governance layer, instantiated by the Gravity Chain (i.e., no one can see it but it governs everything in the universe), is the layer that acts as a decentralized government for the IoTeX network. It uses a liveness-oriented consensus scheme (e.g., PoS variant) to facilitate tasks such as staking, voting, slashing, protocol-related proposals, and more. It is a critical component required to ensure high reliability, throughput, and transparency, and will be launched in Q3/Q4 2019.
  • Orchestration layer, instantiated by the Root Chain, is the general manager and coordinator for all subchains. It is powered by our safety-oriented Roll-DPoS consensus mechanism and aims for high throughput and reliability. This orchestration layer (i.e., the root chain) will be launched in Q1 2019 (i.e., Mainnet Alpha)
  • Operational layer, instantiated by various subchains, is the concrete unit that handles business logic related to specific use cases/applications. (e.g., supply chain, smart city, data exchanges) In IoTeX’s design, subchains share the same pool of Delegates as the root chain, so anyone can spin up a subchain as effortlessly and securely as spinning up an EC2 instance on AWS Cloud. The first IoTeX subchain (codename: Avo Chain) is expected to be launched in Q2/Q3 2019, which will be focused on privacy.
  • Execution layer, is an optional layer for specific subchains. For example, Avo Chain Delegates (i.e., block producers) will have to offload privacy-preserving computation tasks to certain devices for execution

Staking/Voting on DPoS Blockchains is Risky

Many DPoS blockchains (e.g., EOS, Lisk) manage staking/voting on its core operational layer blockchain, which is somewhat risky. Staking/voting is a special type of governance task, which we believe should not be grouped with operational tasks. For example, elected Delegates, as a vested interest group, may disregard staking/voting transactions in the block production process to mitigate being de-elected (i.e., conflict of interest). Furthermore, elected Delegates may enforce protocol upgrades (by upgrading their software without consent from other users) that are not favorable to the rest of the ecosystem.

IoTeX believes deeply in decentralized governance; therefore, tasks such as staking/voting should happen outside of the operational layer. But what are we gonna do before our governance layer (Gravity Chain) is ready? The answer is simple — use Ethereum as the governance layer, for now, as our circulating IOTX token (ERC20) is already compatible with Ethereum!

Staking/Voting on Ethereum

Ethereum is a liveness-oriented blockchain that has moderate performance and high reliability, which is suitable for playing the role of the governance layer until the gravity chain is ready. After a few months, the staking/voting and other governance processes will be fully migrated to our Gravity Chain. So, how will the interaction between IoTeX and Ethereum work essentially?

  1. To stake/vote, users send the current ERC20 token to a smart contract deployed on Ethereum.
  2. IoTeX blockchain nodes (running iotex-core software) will periodically pull the state of this contract (call it a “rank feed”) from Ethereum to determine the Delegates and respective rankings for the current and next epochs.
  3. Rewards for Delegates are based on the rank feed and will be distributed on the IoTeX blockchain in the IoTeX native token (not ERC20). The native token will be used to run transactions and execute smart contracts on the IoTeX blockchain.

To facilitate the conversion of native tokens to ERC20 and vice versa, we have prepared a two-way token swap service. ERC20 tokens, which will remain to trade on exchanges, can be swapped for native tokens (1:1 swap) to run transactions on IoTeX blockchain. Native tokens, which will be given as Delegate rewards, can be effortlessly swapped for ERC20 tokens to stake/vote or trade on exchanges.

Staking/Voting Process

To streamline the staking/voting process, we have developed an easy-to-use web tool on the IoTeX website. The webtool is integrated with MetaMask and the Ethereum voting smart contract for clean user experience. Please note the IOTX you wish to stake must be transferred to the webtool wallet and a small gas fee in ETH is required to vote.

We will provide a step-by-step video of the voting process, as well as a comprehensive Voter’s Handbook in the coming week. Until then, be sure to participate in our upcoming Community Reward Programs to familiarize yourself with the voting process / webtool and earn points!