This update provides development highlights since the official announcement of Chain (referred to as “Chain” below) in Dec 2018. Topics covered include:

  • Rationale for selecting Tendermint as the consensus engine for the Chain prototype;
  • Plans for Chain code open-sourcing and a new bounty program, and
  • Feedback on the first Chain Consultation Paper about staking mechanisms.

Consensus Engine

In the Chain Technical Whitepaper, we mentioned “Council Nodes run a BFT (Byzantine fault-tolerant) consensus protocol, which resolves the final order of transaction sequences.” Upon further research and testing, we decided to choose Tendermint as the consensus engine for the first Chain prototype. In this section, we explain our rationale and what Tendermint brings.

As mentioned in the Technical Whitepaper, Chain is designed to satisfy major Design Axioms (DA). One high-priority axiom is DA2: Highly Scalable & Fast, targeting latency/confirmation time below 1 second and throughput comparable with centralized payment providers. This axiom has implications for the choice of the consensus engine.

First, DA2 means probabilistic mechanisms (e.g., Nakamoto-style consensus) are less desirable. Under such mechanisms, one needs to wait up to several minutes to accumulate a certain number of confirmations, and thus achieve some level of confidence in the transaction.

Therefore, we turn to consensus mechanisms more akin to the “traditional” BFT systems, with a rich history of decades of research. Under such mechanisms, low-latency is better ensured as 1-block finality is offered by default. Tendermint falls into this category of consensus mechanisms. It was chosen as the consensus engine for the Chain prototype for the following, additional reasons:

  • Performance in testing: In an attempt to replicate high transaction throughputs of Tendermint mentioned (see the Cosmos Whitepaper), we deployed Tendermint in different settings and tested its performance (using the built-in “tm-bench” tool). Depending on the configuration, we obtained throughputs of hundreds of TPS. (Note that we only tested Tendermint in isolation, and did not include code from Chain. This article mentions how one may tune the Tendermint configuration to reach similar test results as mentioned in the original Ethan Buchman’s thesis for Tendermint.)
  • Robustly-tested implementation: An earlier version of Tendermint was rigorously tested by (see Jepsen’s analysis on Temdermine 0.10.2). This sets it apart from newly proposed algorithms that are yet to be tested under various cases.
  • Track record of adoption: Tendermint has been in continuous development since 2014, and has been adopted by several high-profile projects (see List of projects in Cosmos & Tendermint Ecosystem).
  • Backed by formal research: Tendermint has been analyzed by researchers, both on its assumptions on the system model, and the properties it verifies (see “Correctness and Fairness of Tendermint-core Blockchains” by Amoussou-Guenou et al.).
  • Broad use cases: Unlike some blockchain systems that are confined to consortium networks, Tendermint caters to both permissioned and public networks (see the Cosmos Game of Stakes effort).
  • Flexibility: Tendermint has a fairly modular architecture, and offers flexibility on which and how applications are developed on top of it.

Going forward, we will continue to monitor consensus research for ideas/ implementations that could be applicable to Chain. We will also be updating the Chain Technical Whitepaper accordingly.

Apart from consensus engine, we are also exploring other topics related to the Chain prototype, such as transaction binary serialization formats and signature schemes. We will share more on select topics in future Chain Dev Updates.

As we develop Chain, the team is also working in parallel to bring Pay live. For its initial launch, Pay will start as a payment gateway solution focusing on online merchants, and customers using the Wallet & Card App. As the development of Chain progresses and matures, Pay will incrementally switch its infrastructure to Chain in the future.


Aligned with the decentralized vision of Chain, and to encourage continuous development in the blockchain space, we have decided to open-source the core code base for Chain.

First open-source code release: Shortly after the early use cases for Chain will be finalized, we expect to release preliminary prototype code. We encourage experimentation and contribution to its development.

Open-source project bounty: We are offering ~10 ETH worth of bounties on issues related to select open-source projects. Please check out the full list of our bounties on BountySource, with bounties on issues such as:

(Note: Since Chain is mainly written in Rust, these bounties are on Rust-relevant libraries and projects. If you are a Rust developer or interested in learning about Rust, you are more than welcome to contribute your ideas.)

Contribution to open-source projects: In the spirit of fostering continuous development, we have been contributing to external open-source projects that we use at for some time, e.g., see some of our contributions to:

Consultation Paper Feedback

Summary response
The team would like to take this opportunity to thank the community for all your feedback on the Chain staking mechanisms. To summarize, we’ve grouped our responses into the following categories:

Chain Participant Roles

Feedback: One of the key concerns is that one node type with the highest reward payout for the same CRO Token amount staked will outlive other nodes.

Our approach: Firstly, it is important to clarify that general members of the public will be able to participate in the Chain network primarily through 2 types of nodes: Community Node and Council Node.

Community Node [Staking requirement: 1,000 CRO]: Chain enables customers and merchants who would like to transact directly, or any participants who would like to scrutinize the network, to set up Community Nodes with the ability to read data on the network and settle for one-self.

Council Node [Staking requirement: 50,000,000 CRO]: Council Nodes perform critical validation and settlement functions in the Chain, including ordering transactions, executing transaction settlement, and rewarding CRO to network participants.

Other key actors/nodes of the network requires a very unique set of asset, skill-set and connectivity:

  • Customer Acquirer: actors who can bring significant number of customers to the network (e.g., crypto wallets);
  • Merchant Acquirer: actors who can bring significant number of merchants to the network (e.g., payment service provider);
  • Settlement Agent: actors who can convert at scale CRO to currencies deemed stable and perform payout to merchants.

On one side, Community Nodes can use the network free of charge but receive limited incentives to perform actions on the network.  On the other side, Council Nodes have a higher entry staking requirement, but performs network critical functions and receive significant rewards for providing this service.

In our path to Augmented Decentralization, we propose to make the Council Nodes more accessible to the general public, and enable participants to attach their CRO to a Council Node, and get a pro-rated rewards based on their contribution. We will discuss this in more details in the next topic: “Community Rewards” how this mechanism could work in practice.

Community Rewards

Feedback: Rewards should commensurate with the amount of CRO Tokens staked.

Our approach: It is in our best interest to reward community members accordingly if they wish to support the Chain project and stake more CRO Tokens.

We have been exploring efficient ways to reward contributors, on-chain, as well as through additional incentives on the Wallet & Card App (off-chain) for each transaction processed.

We propose that any community members will be able to stake any amount of CRO to a Council Node  (above minimum amount of 10,000 CRO) and receive a prorated share of the rewards from that Council Node (minus node operating costs).

We propose to split each Council Node into 100 seats, each seat requiring 500,000 CRO staked to be activated (1/100th of the total staking requirement for a Council Node).

We will introduce with partners and in our Wallet App the ability to stake any amount of CRO to Council Node’s seat. When a 500,000 CRO tranche is fully staked, all members of that tranche will be able to enjoy the rewards generated by the Council Node (once activated on the network).

You will be able to “Get a Seat at the Council”!

We propose to provide a 12% return per year on the CRO staked on a Council Node hosted by or affiliate partners, in preparation for the mainnet launch. These rewards will get adjusted over time based on the total reward pool available, the number of Council Nodes and the amount processed each year.

We will provide more details to the community on this in our next updates.

Go-to-market Strategy & Partnerships

Feedback: There is a need for more visibility in the progress of Chain, both on implementation and partnership front.

Our approach: We will be releasing new features under Chain and Pay as we move forward. Integration with other platforms, including e-commerce and billing, is definitely in the pipeline for Pay. These will be announced as soon as they materialize!

We have already signed several agreements with merchants and ecosystem partners for Chain and Pay, and we’ll be progressively announcing these as well as upcoming partnerships in the coming months.  The team is also putting in consideration for a directory page where we would list some of our merchants/partners.

We’ll continue to work hard on Chain and Pay, bearing in mind the community’s suggestions, and we’ll seek to provide more clarity as we pin down the design and implementation.

Thank you for your interest and support.

Please click here to view the team’s response to the full list of Chain Consultation Paper Ideas and Questions.