Counter Stake Weekly Update #9

Hey @everyone

We hope everyone is doing alright, safe & sound.

We recently announced the Stage 2 of Counter Stake — Matic’s incentivized testnet program.

Stage 2 is where we want our network to be “stress-tested” thoroughly. What this basically means is that we will be encouraging validators to:

  • Test the network for resilience against explicit exploits that take down the network
  • Try to successfully execute an economic attack and find bugs in the system/code

Overview

  • Initiating Stage 2
  • Stage 2 Documentation rollout
  • Launching CS-2007 with upgrades and fixes from the previous testnets

Initiating Stage 2

After concluding Stage 1 and distributing the rewards to all the winners, we initiated Stage 2 on the ongoing testnet, i.e. CS-2006. We started the next stage with the same set of validators as Stage 1 and continued running the network uninterrupted. We wanted our folks in the community to read and understand more about our core components such as Heimdall and Bor etc.

Here is the our detailed blog post about Stage 2 - https://blog.matic.network/announcing-counter-stake-stage-2-the-grand-staking-league-full-details-matic-network/

Stage 2 Documentation

Before last week, we were preparing the documentation for Stage 2. This would not only help people get a better understanding and deeper look into how the components at Matic work, but also would prepare them in understanding on how to perform attacks correctly.

Here is some of the updated sections on our Docs

Getting an overview

What is Matic: [https://docs.matic.network/docs/validate/basics/what-is-matic
Understanding the Architecture: https://docs.matic.network/docs/validate/validator/architecture/
Overview on Heimdall: https://docs.matic.today/docs/validate/validator/heimdall-chain
Overview on Bor: https://docs.matic.today/docs/validate/validator/bor-chainSpecs 1

In order to understand the granular information about core components such as Heimdall, Bor, and Contracts you can head over to the link below. You can navigate to the specs with these links:

Heimdall: https://docs.matic.network/docs/contribute/heimdall/overview 3Bor: https://docs.matic.network/docs/contribute/bor/overview 1Contracts: https://docs.matic.network/docs/contribute/contracts/stakingmanager 3

For a detailed post on all the updated documents, you can read our forum post here: https://forum.matic.network/t/counter-stake-stage-2-documentation/417

Launching CS-2007

We successfully launched CS-2007 after several internal tests for the side-channel implementation. Here is an overview of the issue that led us to implement the Side-channel:

There is a known issue in the network node code for a circular dependency between Heimdall and Bor. Simply speaking, there can be instances when Heimdall reads data from Bor but does not get it due to failed network calls - and vice versa with Bor reading data from Heimdall.

Sidechannel Implementation

Currently, Heimdall (Cosmos SDK proxy app) queries Bor (Matic chain) or Ethereum to fetch data that is relevant to the consensus mechanism. It adds invalid transactions if it is unable to reach various chains in a given time. With a side-channel mechanism, each node can validate and add a signature over each transaction’s data without any constraints.

The goal is to use Tendermint’s underlying gossip protocol and block life-cycle to achieve 2/3+ majority votes over each message without storing a history of the state. This is a parallel system to the ABCI app which runs through Cosmos-SDK.

Our latest testnet CS-2007 comes with the Side-channel implementation and many more fixes with respect to the Network and the Staking Dashboard.

We have already invited more than 100 validators to join our latest testnet, CS-2007

Things to look forward to

  • Initiating Attacks on Stage 2
  • Dashboard updates for CS 2007
  • Mainnet - Genesis creation