Announcing the AdEx Registry, ADX Staking, Part 1

Posted by AdEx Network on December 20th, 2018

Insights

NOTE: To learn more about the context here, we recommend you familiarize yourself with the AdEx protocol: https://github.com/adexnetwork/adex-protocol

The latest addition to the AdEx protocol is the Registry. Its purpose is to allow publishers and advertisers to appoint (nominate) publicly available validators for their campaigns, therefore eliminating the need for them to run their own validator nodes.

It also allows anyone who wants to run a publicly available validator (and earn validator fees) to gain exposure by staking ADX. If they misbehave (in most cases, this means to become unavailable, therefore stalling the campaign), a portion of the staked ADX will be burned and they will be temporarily delisted.

This is what guarantees the Registry is a reliable list: every validator on the Registry has skin in the game. The larger the stake is, the higher the possibility of the validator being nominated for a campaign.

Choosing validators

Each campaign maps to one OUTPACE channel, which has a validator set. While it is possible for any number of validators to be appointed, only two validators are required for a trust-minimized setup, as long as they have opposing interests. You can read more about this here: https://github.com/adexnetwork/adex-protocol#validator-consensus.

In this minimal setup:

  • The leading validator is the advertiser-side platform;
  • The following validator is the publisher-side platform.

In reality, this means that large advertisers will probably want to run their own validator node (advertiser-side platform) and appoint the second validator through the Registry.

However, once the Registry is mature enough, it will be reasonable for advertisers to nominate *both* validators from the Registry, since it will maintain separate lists for advertiser-side platforms and publisher-side platforms, therefore satisfying the condition of appointing opposing sides.

Staking and ADX economics

The ADX token originated as a fixed-supply ERC20 designed to be used in the AdEx ecosystem.

Choosing ADX as the staking token for the Registry is critical for its security: since this is ADX’s primary purpose, the implication is that most of the tokens will be staked; this makes Sybil attacks much more expensive. Furthermore, it aligns incentives: the healthier the ecosystem is, the more demand there will be to be listed on the Registry.

Bear in mind, even if you hold a trivial amount of ADX and don’t have the resources/intentions to run your own public validator, you can still stake them by nominating another public validator, therefore earning a proportionate part of their fee profit.

Implementation

For the implementation of the Registry, we chose Parity’s Substrate framework which recently reached it’s 1.0 version.

Substrate takes building blockchain systems to another level, by utilizing a highly modular approach where all the boilerplate parts come as part of the framework, and all the logic (consensus, block authoring) is up to you. It’s also compiled to WASM — so it can be easily swapped and upgraded.

This, along with the Polkadot protocol, allows us to eventually build the Registry as a “parachain”: a type of application-specific chain that benefits from the security and consensus mechanism of the Polkadot network, while being interoperable with other blockchains (including Ethereum).

Ultimately, the combination of Substate+Polkadot gives us the following benefits:

  • Scalability: Having a separate chain with a fast consensus mechanism dedicated to the Registry allows it to sustain high throughput; this is required for the underlying security of the challenge mechanisms.
  • Interoperability: Fast finality consensus mechanisms allow easy interoperability between blockchains; this lets the ADX token to be moved between Ethereum and the Registry parachain. That factor could be beneficial for OUTPACE as well, as it enables using various cryptocurrencies (e.g. BTC, Zcash) as a channel deposit.
  • Upgradability: Since all of the custom logic is represented by a state transition function defined in WASM, it’s trivial to ugprade.
  • Governance: Substrate’s Runtime Module Library (SRML) comes with various on-chain governance primitives that may serve valuable in the future.
  • Flexibility: Substrate-based systems can be deployed as Polkadot parachains or independent blockchains, as well as be adapted to serve as sidechains to Ethereum.

We’ve already started working towards this by creating adex-protocol-substrate. Currently, this repository hosts an OUTPACE implementation, and it will be updated over time to add the Registry as well.

We’ve described our experience building on Substrate here: https://hackmd.io/p_v1M8WGRyy9PggYiKA_Xw#.

Our advisor Ameen Soleimani is excited about the Substrate implementation

The road ahead

Once the AdEx dApp is updated with the new protocol, and the validator stack implementation is more mature (we estimate this will happen in February 2019), we will provide instructions for everyone on how to run their own validator nodes.

The Registry is expected to be ready around Q3 2019 in terms of specification and reference implementation. At that stage, we will also provide instructions on how to setup public validators and stake ADX to register them.

The specification for the Registry is still a work in progress, but meanwhile you can track its development here: https://github.com/AdExNetwork/adex-protocol/issues/7.


Interested in AdEx? Follow us:

Discord | Facebook | Twitter | Reddit | GitHub