Alex Wearn
Sep 12, 2018 · 11 min read

***UPDATE (Jan 10, 2019): AURA staking is now live! Please find instructions on how to get started here or on GitHub.

We are happy to announce that the development of our AURA staking software is in full swing, with the alpha version slated for release in the next few months. This will be the first consumer-facing iteration of the technology that will ultimately form Aurora’s fully-decentralized architecture, allowing those who stake AURA and run various unique nodes to be rewarded with the fees collected by IDEX and all future Aurora products.

To set expectations upfront, the path to full-decentralization will not happen overnight. The purpose of the alpha release is to begin operations on a public network, gather real-world data, and use it to optimize the design of subsequent components, or “Tiers” of the network. We are embarking into new territory when it comes to decentralized architecture and staking mechanics, and it will take time to work out all of the unknowns while maintaining the performance you have come to expect from IDEX.

We understand that our community was excited to see staking live by Q3 as estimated on our original roadmap. While we were extremely close to accomplishing this goal, it is likely that AURA staking will now begin in Q4. That said, we hope that after reading our plans to fully-decentralize IDEX, you will appreciate the complexity of what we are building and why it is best that we take additional time to deploy this network using a measured and conservative approach.

***Disclaimer: Due to the complex and ever-changing nature of blockchain technology, all information in this post is subject to change as the infrastructure is built and optimized. However, our dedication to decentralizing IDEX and allowing our community to share in and guide our continued success is unwavering.

***TL;DR: (Located at the bottom of the post)

The Path to Fully-Decentralizing IDEX

IDEX achieved early success with its hybrid-decentralized architecture, combining the speed of centralized trading and the security of the blockchain.

As a quick refresher, the IDEX smart contract handles all fund custody and trade settlement, while the off-chain infrastructure serves clients the order book, real-time balances, and trade history. This off-chain infrastructure is also responsible for validating matched trades and submitting them to the Ethereum network for processing. It is this hybrid design that enables a “real-time” trading experience, insulating users from the drawbacks of using a smart contract for operations, such as gas costs, race conditions, and more.

The current “hybrid” decentralized architecture of IDEX

AURA Staking Goals

Our goal with AURA staking is to decentralize IDEX’s current off-chain components while realizing the following benefits:

  • Increasing resistance to DDOS attack and hacks by replacing a central server with a network of node operators
  • Improving transparency by providing an open source client that allows anyone to verify the fairness of its trading operations
  • Incorporating the community (traders, market makers, investors) into the operations of IDEX, harnessing the network effect made possible through economic incentives. This process will be as inclusive as possible, allowing those with both a small and large stake to participate
  • Maintaining the real-time trading experience that has been so instrumental in our current success

Off-chain Architecture: A Separation of Powers

When we began working on this project, we were looking for solutions that would allow us to create a “network of IDEXs”. However, if you require every node in a highly-decentralized network to perform and validate every function you end up right back where you started — with a blockchain.

The real insights began to unfold when we instead began thinking about IDEX as a combination of various functions that work together to communicate with the on-chain smart contract and enable a fully decentralized trading experience. Our thinking has evolved to where we view the decentralized IDEX as consisting of three primary components:

  1. Orderbook and Trade Engine — Existing orders (and off-chain balances) must be served to users so that they can match against trades while adhering to rules around price/time priority
  2. Transaction Arbiter — Matched and validated trades must be submitted to the blockchain in the correct order for mining
  3. Trade History — Users need to be able to view and analyze what has happened in the past in order to make informed trading decisions

AURA Staking Tiers: A Detailed Overview

It is along these three distinct “Tiers” that we will develop and release the decentralized version of IDEX from least difficult (Tier 3) to most (Tier 1). This compartmentalization will allow us to approach the roll-out in stages, making it easier to test and reduce the risk associated with the transition. Since each process has unique speed/latency requirements, each staking tier will have different AURA and computing requirements. As such, the payouts and penalties will vary accordingly to keep incentives properly aligned.

A brief overview of the various AURA staking tiers

Tier 3: Trade History

Tier 3 (Trade History) will be the first to be released. Currently, all trade data is fed to clients directly from the IDEX server. Users must trust that the data being served to them is an accurate representation of the trade history.

One of the unique benefits of using a smart contract is that all of this trade data is actually publicly verifiable on the Ethereum blockchain. Tier 3 staking will capitalize on this, with AURA staking nodes in the network reading the contract history and serving it directly to clients who connect to the network. Once this is in place, users are guaranteed to have accurate trade history directly from the blockchain. The process looks like this:

  1. The staking node will download all of the IDEX history directly from the blockchain, mirroring the exchange state and history in a local database.
  2. The trade history is served to the IDEX client from staking nodes rather than IDEX’s servers. Staking nodes will also provide a signed hash of this trade history for verification purposes.
  3. The IDEX client receives the trade history and displays it to the user. In addition, the client will forward the signed hash to the IDEX servers for verification.
  4. The IDEX servers verify the hashed history and credit the staker with a valid job.
  5. Stakers are rewarded in ETH proportional to their AURA stake and uptime. Stakers can claim rewards as often as they choose by requesting a signed transaction from their staking client and submitting it to the network for mining.

Tier 3: Rewards, attack vectors, and mitigation

The attack vectors on this base level are very small in comparison to that of other decentralized networks. Nodes have no say in who connects to them, making it impossible to target specific users with modified trade data. Additionally, the IDEX servers continually verify trade history data submitted by the staker, ensuring that any node serving modified trade history data will be blacklisted immediately (in future iterations, other AURA stakers will be in charge of policing each other and blacklisting bad actors).

With these factors in mind, Tier 3 will have a staking minimum of 10,000 AURA. Tier 3 will also support pooled staking so those with under 10,000 AURA can work together to operate a node.

To reduce the incentive for an attack, those staking the base layer will need to incubate their AURA in a new address for 7 days before they can participate. In the event that a staker serves invalid trade history, the wallet address will be blacklisted and clients will no longer connect to that node. The owner must then transfer the AURA to a new wallet and incubate it for 7 days before they can stake again.

This 7-day period will result in lost revenue for the staker, a cost that outweighs any benefit they could receive from serving up incorrect trade history. An additional benefit to this approach is that stakers can hold their funds in cold storage or a hardware wallet, a security benefit that is unique to AURA staking.

Tier 3 Alpha:

We expect the alpha to provide us with valuable data for use in refining the staking client. During this period, AURA stakers will be rewarded with 25% of all IDEX fees*. As there are likely to be some hiccups along the way, IDEX customers will need to opt in to using the staking network to receive trade history. All customers who opt in will receive double AURA rewards (and those with a fully incubated IDXM will receive 4x trading rewards).

*Note: Ultimately we envision the allocation of fees to be roughly 25% (Tier 3), 33% (Tier 2), and 42% (Tier 1) once the Aurora staking network is fully developed. Please note that originally we anticipated an initial 50% distribution of IDEX fees based on the assumption that all AURA staking would go live simultaneously in Q3. However, given the new strategic rollout plan and our ultimate goal of giving 100% of Aurora of fees back to node operators, we have adjusted the estimated allocations accordingly.

Tier 2: The Transaction Arbiter

The second tier of AURA staking will control the transaction arbiter, the component that submits approved trades and withdrawals to the blockchain for mining. Trade submissions must be tightly controlled to ensure that all transactions mine in the correct order and that the smart contract always stays in synch with the off-chain database. Careful coordination between the transaction arbiter and the IDEX trading engine is what enables the real-time UX.

Tier 2: How it Works:

  1. Tier 2 stakers deposit their AURA tokens into the staking contract. Depositing adds their address to the whitelist of known submitting addresses.
  2. A new address will be assigned the role of the transaction arbiter at a regular interval.
  3. The arbiter node will take approved actions (trades and withdrawals) and create and sign the corresponding Ethereum transaction.
  4. Each transaction is verified by the validator, another staker randomly chosen from the pool; the validator will also sign the transaction before submitting to the blockchain.
  5. The approved transaction is then submitted by the arbiter to the blockchain for mining.

Tier 2: Rewards, attack vectors, and mitigation

A dishonest tier-2 stake could attack the network in the following ways:

  1. Censor trades or withdrawals by failing to sign and broadcast them to the network
  2. Front-run trades by inserting themselves on the other side of a favorable trade

Given that the arbiter has the authority to submit authorized trades for processing, this form of staking will only be released once IDEX is mining ALL cancels on chain, where the users themselves submit the cancel directly to the blockchain to be mined (current design uses periodic “batch” cancels). In any case, it is important that the arbiter broadcasts the authorized trades immediately and according to the instructions of the rest of the network.

To ensure compliance, the arbiter’s actions will be monitored by another Tier 2 staker randomly selected from the pool. If the arbiter attempts to cheat the system, the second stake will catch them, blocking the transaction from broadcasting and resulting in the loss of AURA for the arbiter. In the event that both the arbiter and the monitor are compromised, the tx would go through but they would both lose their AURA stake.

The design of Tier 2 staking is such that there is no situation in which a dishonest Tier 2 can cheat the system and realize a gain greater than the AURA lost as punishment. Because Tier 2 stakers risk AURA confiscation, the Tier 2 rewards have a higher payout. Tier 2 staking will also have a higher AURA minimum than Tier 3. The exact amount has yet to be determined but will ensure that a dishonest staker loses AURA more valuable than what they can gain from cheating the system.

Tier 1: Distributed Orderbook

The last tier of staking is the Distributed Orderbook. Stakers on Tier 1 will run a masternode that hosts the orderbook, tracks the real-time balances of users, matches orders, and verifies signed transactions before passing them to the transaction arbiter. Additionally, Tier 1 is responsible for serving the off-chain (yet to be mined) trade history to IDEX clients.

Designing the Distributed Orderbook is an exercise in trade-offs. A fully on-chain orderbook introduces too much latency, leading to issues such as order collisions which degrade the UX. One potential solution is to employ the use of masternodes, with a total of 20 to 50 nodes operating the Tier 1 processes. The masternode structure will ensure sufficient decentralization to secure the network while also minimizing the impact on the UX.

Tier 1 stakers will have the highest minimum AURA requirement. This AURA must be locked in a contract so that the network can confiscate their stake in the event they attempt to cheat the system. For the work they provide to the network, Tier 1 stakers will receive the highest payout. More information about Tier 1 will be released as development work progresses.

Governance of AURA Staking

Given the multitude of factors that go into properly balancing the AURA staking network, it will require a governance system that allows users to vote on important changes that help ensure the long-term viability of the network.

Initially these changes will be made internally at regular intervals based on the data we are collecting through the various stages of development. However, the governance of the network will ultimately be given entirely to those staking it, allowing all participants to propose and vote on changes.

TL;DR — A Quick AURA Staking Review

Here is a quick recap of main points covered above:

  • AURA staking nodes will be rolled out in stages along 3 staking “Tiers” — each decentralizing unique IDEX exchange functions. They will be released in the following order: Tier 3 (Trade History) → Tier 2 (Transaction Arbiter) → Tier 1 (Distributed Orderbook).
  • The alpha AURA staking software will most likely be released in Q4, allowing users to begin running Tier 3 (Trade History) staking nodes. Users running these Tier 3 nodes will be collectively rewarded with 25% of all IDEX trading fees — claimable in ETH proportional to AURA stake and uptime. The minimum staking requirement for a Tier 3 node is 10,000 AURA.
  • Ultimately we envision the allocation of fees to be roughly 25% to Tier 3 (Trade History), 33% to Tier 2 (Transaction Arbiter), and 42% to Tier 1 (Distributed Orderbook) once the AURA staking network is fully developed. Please note that originally we anticipated an initial 50% distribution of IDEX fees based on the assumption that all AURA staking would go live simultaneously. However, given the new strategic rollout plan and our ultimate goal of giving 100% of Aurora of fees back to node operators, we have adjusted the estimated allocations accordingly.
  • Network changes will be made internally at regular intervals to start, but in the end all governance will be handed to those staking and running the network.

Stay tuned for more!

~The Aurora/IDEX Team


Join the conversation and stay current on all the exciting developments of Aurora.

IDEX

#1 DEX on Ethereum

Alex Wearn

Written by

IDEX

IDEX

#1 DEX on Ethereum

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade