IoTeX Native Staking v2 — A New Scalable, Secure, and Flexible Design

This is Part 2 of IoTeX’s Mainnet GA announcements. Throughout May 2020, we will share other components of Mainnet GA, including new tokenomics, governance, and technology. For more on Mainnet GA, visit the IoTeX Forum.

IoTeX Native Staking v2 — A New Scalable, Secure, and Flexible Design

Introduction to Native Staking v2 (nsv2)

A core part of decentralized governance in the IoTeX Network is staking, where token holders deposit (“stake”) IOTX to facilitate network operations (e.g., consensus) and governance. By staking, token holders enhance the security of the IoTeX Network and earn IOTX rewards in return. For more on staking in the IoTeX Network, see this blog.

IoTeX currently utilizes smart contracts to manage staking operations. Every staking-related action (i.e., new stake, re-stake, un-stake, withdraw) requires a smart contract call, which limits scalability and flexibility. After months of research and simulation, IoTeX is proud to announce Native Staking v2, a new transaction-based staking design that will greatly improve the flexibility, security, and scalability of IoTeX!

Native Staking v2: Design Overview

Staking is currently performed using smart contracts on both Ethereum and IoTeX Mainnet. As part of Mainnet GA, all staking data from the current Ethereum and IoTeX staking contracts (i.e., Native Staking v1 “nsv1”) will be merged to a new transaction-based staking mechanism (i.e., Native Staking v2 “nsv2”). In addition, a new staking portal will guide you through the new staking process. Voting will be cheaper, faster, and easier than ever.

In the rest of this section, we compare the design of nsv1 vs. nsv2 and provide explanations of each nsv2 feature.

a) Implementation

For nsv2, we developed a new protocol to process staking operations, which are a new type of native transaction in Mainnet GA. This means users can make new votes or update existing votes simply by sending a native transaction to IoTeX blockchain’s gRPC endpoint. No more costly and time-consuming smart contract calls!

voteBucket {Voter, Delegate, Amount, Duration, Auto-Stake, Self-Stake}

b) Bonus votes from staking duration

In nsv1, bonus votes from staking durations “decay” over time, which requires bonus votes to be re-calculated for every voter every epoch. This adds a lot of computational overhead on the blockchain and is not scalable. As such, nsv2 removes the concept of “decay” — a voter’s bonus votes remain the same throughout the defined staking period. For more details on bonus votes, see the Native Staking v2 thread on the IoTeX Forum.

c) Bonus votes from self-staking

To encourage more new Delegates and improve the security of the network, each Delegate will specify one bucket as their “master bucket” and receive an extra 6% bonus votes on any IOTX auto-staked in this bucket for more than three months (bonus % may be adjustable by network vote). In the future, this master bucket may also be eligible for slashing. For more details on bonus votes, see the Native Staking v2 thread on the IoTeX Forum.

d) Transfer buckets to another address

You asked for this feature, and we listened! In nsv2, voters can now transfer their existing buckets to another address. This provides flexibility for users that want to merge multiple staking addresses and also provides the foundation for innovative bucket lending/borrowing use cases! Voters can also now add tokens to an existing bucket.

e) Register on behalf of a Delegate

Another new feature in nsv2 is the ability to register a new Delegate on behalf of another user. This was built primarily to manage the migration of Delegate profiles, which are currently registered to Ethereum, to the IoTeX Mainnet.

Native Staking v2 will be activated as part of Mainnet GA.

Want to learn more?

For more details regarding nsv2, please see the official Native Staking v2 thread on the IoTeX Forum, which includes further details including:

  • Protocol Components: description of the various technical components of nsv2, including Protobuf, APIs, and frontend/ioctl support
  • Voting Power calculation: how stake duration, auto-stake, and self-stake impacts a voter’s voting power
  • Voting Scenarios: various examples of different staking choices and how they impact a voter’s voting power and rewards
  • Parameter Selection: technical details regarding parameter design, as well as results from various simulations
  • Migration Plan: overview of the approach to migrating nsv1 to nsv2

Also stay tuned to the official Mainnet GA forum thread for new updates!

About IoTeX

Founded as an open source platform in 2017, IoTeX is building the Internet of Trusted Things, where all physical and virtual “things” — humans, machines, businesses, and DApps — can exchange information and value at global scale. Backed by a global team of 30+ top research scientists and engineers, IoTeX combines blockchain, secure hardware, and data services innovations to empower intelligent IoT networks and machine economies. By serving as a decentralized trust fabric for IoT, IoTeX will empower the future decentralized economy by “connecting the physical world, block by block”.

Website: https://iotex.io

Twitter: https://twitter.com/iotex_io

Telegram Announcement: https://t.me/iotexchannel

Telegram Group: https://t.me/IoTeXGroup

Medium: https://medium.com/@iotex

Reddit: https://www.reddit.com/r/IoTeX

Join us: https://iotex.io/careers