Your options as a para{chain, thread} on Polkadot

KILT Protocol
kilt-protocol
Published in
11 min readSep 27, 2019

At KILT Protocol, we’re very excited about Polkadot.

Polkadot solves some major and known issues faced by blockchain technology. It’s the promise of an interoperable and scalable blockchain network. Within Polkadot, different blockchains can safely and easily provide services to each other:

We see conservative, high-value chains similar to Bitcoin or Z-cash co-existing alongside lower-value […] test-nets […]. We see fully-encrypted […] chains operating alongside — and even providing services to — highly functional and open chains such as […] Ethereum.

Source: Polkadot whitepaper

KILT Protocol intends to become part of the Polkadot network. We believe it is an incredible opportunity. But it also is a big leap in a new ecosystem, so we need to understand our options fully.

Our findings may come in handy for our fellow blockchain builders and the Polkadot community! So we’ve decided to share them here.

We’ve gathered our findings in this piece, which has been peer-reviewed by our friends from Parity.

Parity has been contracted by Web3 Foundation to build Polkadot.

We’re focusing on answering the following question:

As a blockchain-based service or infrastructure provider willing to join the Polkadot network, what are your options?

Let’s get started!

  • 1. Definitions 💡
  • 2. A note on time ⏳
  • 3. Our context 🧬
  • 4. Your options 🎛️
  • 5. Open questions ☝️
  • Final Words, Sources and Channels

💡 1. But first, c̶o̶f̶f̶e̶e̶ definitions

Skip to the next section if you already get the gist of Polkadot essentials.

Within Polkadot, independent blockchains are called parachains. They exchange information and transactions via a core chain called the relay chain. Polkadot’s native token is the DOT.

The relay chain achieves consensus and facilitates message delivery among parachains. Note that it doesn’t deliver transactions between parachains; it has no concept of the parachain’s tokens and therefore cannot transfer them. The relay chain only sends messages, for example: “Here’s proof that I burned 500 tokens on my chain. You can now mint them on your chain.”.

Validators secure the relay chain: they stake DOTs, validate parachain proofs, and take part in consensus with other validators.

So what’s the link between the relay chain and a parachain?

Collators are in charge of this link. Collators essentially maintain parachains: they collect transactions from users and package blocks for the relay chain’s validators.

(Source)

But how exactly do you become a parachain?

To become a parachain, you need to lease a parachain slot. Slots will be assigned following an auction-based system.

Alternatively, a parachain slot can be shared among several competing resources called parathreads.

Source

As a blockchain-based service or infrastructure provider, you would join the Polkadot network either as a parachain or as a parathread. This way, you can offer your services to other parachains or parathreads (see the next section for an example).

A few more words you’ll encounter:

  • Parity Substrate is a toolbox to build blockchains. It was created with Polkadot in mind: in order to create a vibrant ecosystem of parachains, developers need tooling that makes blockchain development easier.
  • Cumulus is a library for making Substrate-based chains compatible with Polkadot. If you’ve followed along: Cumulus should include the collator implementation.
  • Bridges are special parachains that allow parachains in Polkadot to communicate with blockchains that have their own consensus mechanism, such as Ethereum.

2. A note on time

At the time of this writing (September 2019):

  • Polkadot is not live yet, but its trial network Kusama was soft-launched a few weeks ago;
  • Cumulus is under development;
  • Substrate is out and thriving.

🧬 3. Our context: why does KILT intend to be a para{chain, thread}?

Skip to the next section if you just want to see your options.

Before we move on, it’s important to describe KILT Protocol and the context of this writing. This way, you can take this with a grain of salt.

KILT Protocol is an open-source blockchain protocol. It allows users to claim attributes about themselves and to receive attestations from trusted entities. Users can be persons, organisations or even machines (e.g. ticket vending machines or artificial intelligence entities).

Core feature in the KILT Protocol: Claiming → Attestation → Verification

The bigger picture is that our system of verifiable certificates plus data sovereignty can foster a trust market: the trusted entities that attest the claims are rewarded for their work.

The even bigger picture — our long-term vision at KILT Protocol — is to use this groundwork to enable bottom-up trust and hence a whole virtual structure ecosystem. More about this in a future article — but for now let’s focus on Polkadot.

Here is why Polkadot’s vision is compelling in our case:

  1. By sharing its state through the Polkadot network, KILT Protocol would enable parachains, applications, smart contracts, and users to add legitimacy to their claims. Any parachain or parathread that needs trust could use our interoperable trust infrastructure within Polkadot. External chains could just as well use it via Polkadot bridges. Trust is a core element of exchanging services, so our use cases are numerous.
  2. Our protocol would benefit from the shared security provided by the Polkadot relay chain.
  3. KILT Protocol’s runtime is already built on Substrate — we’re early adopters! We chose Substrate for its flexibility. Since it enables forkless runtime upgrades, we went into production early and added features on the fly. Being Substrate-based has another advantage: connecting our protocol to the Polkadot network will be seamless. (Source)

🎛️ 4. Your options

Now that we’re clear on Polkadot’s main constituents and why becoming a para{chain, thread} makes sense, let’s look at your/our options.

When joining Polkadot, your options are a function of at least these two essential parameters:

  • Whether you’re a parathread or parachain;
  • How your collators are operated and incentivised.

Parameter 1: Parachain vs. Parathread

To become a parachain, you need to secure a slot upfront.

To do so, you place a deposit in DOTs. It’s locked in as long as you’re using your slot. Auctions happen periodically — every 6 months — and you can keep your slot for up to two years (Source). You get your DOTs back at the end of the lease. Yet note that locking these DOTs has an opportunity cost.

Let’s take a closer look at this deposit. How much is it worth?

Since the system is auction-based, the deposit can’t be determined with certainty. What we do know are some of the parameters that will influence the price tag of the deposit:

  • The amount of emitted DOTs;
  • The number of actors interested to join as parachains;
  • The proportion of staked DOTs.

One important point to keep in mind is that this parachain slot leasing deposit could be rather high if the competition is fierce, or rather low otherwise.

Alternatively, you can freely take part as a parathread. As a parathread, you join the network on a pay-as-you-go basis: “When a parathread wants to progress (add a block to its chain), it participates in an auction that takes place every relay chain block. The parathreads with the highest bids will be able to submit a block to the next relay chain block. All parathreads compete in this auction for their parathread to be finalized by the relay chain.” To join as a parathread, you would also need to pay a fixed registration fee. (Source)

So how do you choose?

Functionally, parathreads and parachains are similar. Both can “send messages to other para{chains, threads} through ICMP and [are] secured under the full economic security of Polkadot’s validator set.” (Source) But being a parachain enables you to have much more frequent state updates. Your state execution logic will be called per block, so your chain can progress with every block of the relay chain. What you need depends on your use case: “Take a domain name service, for example. Read requests come in large numbers, but it would be normal to update the registry on an hourly basis. DNS has no need for Polkadot’s six-second block time.” (Source)

Economically, they are very different. In a way, both parathreads and parachains are auction-based; only the time scale is different. A parachain stake auction happens every six months when securing a slot. For a parathread, a fee auction happens every block. What this means is that, as a parathread, you free yourself from the large DOT deposit required for parachains. But you also subject yourself to future fee fluctuations: “[Parathreads] compete on a per-block basis, similar to how transactions are included in Bitcoin or Ethereum. […] A similar fee market will likely develop, which means that busier times will drive the price of parathread inclusion up, while times of low activity will require lower fees.” (Source) Note that the collators will need to pay block bids in DOTs (although they can receive them in DOTs or in another token that converts to DOTs).

Another distinction is the level of guarantee. The large deposit you pay as a parachain is your key to becoming a prime actor in the network. As a parachain, you are “guaranteed inclusion as long as a parachain slot is held”. Conversely, as a parathread you can join freely through a small registration fee, but you have no guarantee that your transactions will be registered on the relay chain. (Source)

The economic difference between parathreads and parachains has a notable consequence. Running as a parathread might be quite some extra work: you need to determine the right time and the right bid to write blocks on the relay chain. What’s the right frequency — or in which case do you want to request a state update on the relay chain? What is just the right bid at a certain point in time so that your block is included without paying too high of a price? These heuristics are not trivial. Think of the way fees are calculated automatically in crypto wallets. When the Polkadot network launches, such services might be readily available — or might not be. So this work might fall onto your shoulders.

Most important, this is not a one-off decision. You can switch between being a parachain and a parathread “with relatively minimal effort” (Source). Being a parathread might make the most sense at an early stage and later on you would want to become a parachain to benefit from a higher throughput.

Source

Parameter 2: Collator management

Both parachains and parathreads need collator nodes.

You can decide between:

  • Operating them yourself. Polkadot’s relay chain secures the network via validators. But if your collators are down, you won’t be able to publish any state updates. So you need to keep in mind the classic single point of failure issues.
  • Relying on third-party collators. Since collators do work you would probably need to reward them. Additionally, they impose their model on you: maybe they’d expect a certain fee and reject blocks that don’t provide it. Where are these third-party collators coming from? Not from Polkadot but most likely from external players. This is speculative: if the business opportunity is compelling enough, organisations will start offering collating-as-a-service to whoever wants to join the Polkadot network.

Non-exhaustive summary: your options

Let’s take a closer look at all our options.

Disclaimer:

  • This list is not exhaustive. Each parachain can have its own economy in Polkadot, which is great: you’re free to try different ideas for yourself. An excellent place to think of new ideas and discuss them is Parity’s parachain economics chat.
  • The information below is very fresh and subject to change.
KILT Protocol — Non-exhaustive list of options as a para{chain, thread}

Other models

We have touched on a couple of options, but there are infinite possibilities.

For example, no para{chain, thread} is required to have a token. You’re always free to have your own economy. (Source).

☝️5. Open questions

We don’t know yet how the exchange rate between TOKs (native token) and DOTs will be calculated. Should the TOK and the DOT be available in the same marketplace? Or will there be an oracle that is trusted by all validators of the relay chain?

Another point we’ve been thinking about is how to deal with a situation of token value imbalance — namely, what happens if the reward on the parathread side is too low to provide incentives to validators on the Polkadot side. You could simply play with frequency: inclusion of a parathread block candidate would only happen every X blocks. As the TOK’s value increases, the frequency of state updates on the Polkadot side can increase accordingly.

Final words

🏆 You made it — We hope you found this useful!

Are you thinking of becoming a parachain or parathread, too? Or do you need to add legitimacy and attested claims into your services?

Let’s get in touch and exchange ideas! You can find us in our community chat. We’re always looking for partners and integrators.

Are you curious about what we’re building at KILT Protocol and why we think solutions to manage trust relationships on the internet will change the world?

Check our website or our whitepaper. Get hands-on with our 101 Tutorial, or peek at our SDK and Substrate-based node runtime.

Keep in mind

At the time of this writing (September 2019), Polkadot is not yet live. A lot of the information we used here is really fresh. It stems as much from the official documentation as from discussions we had with our friends from Parity and the Polkadot community. To put it like Kusama would: No promises. This writeup might contain moving pieces. Polkadot itself will be subject to runtime upgrades or governance design changes.

In any case: we see KILT Protocol joining Polkadot as a big opportunity, and are looking forward to the next developments!

Many thanks to Parity Technologies for the collaboration on this writeup: special shoutout to Julien (@jeluard) and Joe (@joepetrowski) for sharing their highly valuable insights!

Channels

Sources

— Maud (maudnals) from KILT Protocol

--

--

KILT Protocol
kilt-protocol

KILT is a blockchain identity protocol for issuing self-sovereign, verifiable credentials. KILT is part of the Polkadot ecosystem.