How we redesigned DPoS

Explaining TTC’s own consensus, Multi Tier BFT-DPoS

Brian Cheong
8 min readFeb 19, 2019

--

Having a well-constructed consensus is absolutely crucial for a blockchain project; as all users should be able to trust that the network will never be manipulated. A healthy token economy will only be realized if there are no trust gaps between holders. Furthermore, the governance of the consensus and the distribution method of a platforms’ coin/token must be transparent. Without a total transparency, there is no much difference between the cryptocurrency and mere company mileage points. In other words, expanding a community, and for that matter, an ecosystem, would be a challenge if decentralization and transparency are not established by the consensus.

TTC Protocol is a blockchain protocol for active social networks, or any online community. This indicates that the combined number of users from all TTC Alliance DAPPs are the actual user base of the TTC Ecosystem. As of now, the TTC Ecosystem has 30m users awaiting TTC rewards once the main network Rigi is launched.

In the very beginning, we have contemplated the option of establishing TTC Protocol on top of an already built blockchain platform such as Ethereum, EOS, and so on. However, realizing that these platforms have limitations within their consensus and will not be able to sustain an ecosystem with 30m users led us to decide to build our own blockchain platform. Over months of debating and evaluations, TTC Protocol decided to take the well-known BFT-DPoS consensus and give it a twist, calling it a “Multi Tier BFT-DPoS”.

A Fast and Reliable Foundation: DPoS

At the beginning, we considered most of the key algorithms such as PoW and PoS for the basis of our consensus. In the end, the DPoS algorithm was selected because TTC Protocol requires an efficiently performing blockchain to ensure the compatibility with DAPPs with millions of users.

In DPoS, all network nodes vote to elect delegate nodes which are responsible for block producing. A fixed number of delegate nodes are given the authority to govern the consensus by voters; and because of this aspect, it reflects a representative democracy we see in real life.

The DPoS Consensus has been used by various projects such as BitShares, EOS, and so forth. However, most DPoS models carry various problems. The complicated interface and lack of motivation for voting resulted in a low voter turnout, while the lack of interest after voting produced many invalid votes. These issues caused the collusion of block producers and the inefficient distribution of resources. Hence, TTC Protocol decided to conserve the positive aspects of the DPoS consensus but improved upon it to overcome the shortcomings the current models possess.

Improving the Voter Turnout

The TTC Blockchain has TTC Representatives who are responsible for producing blocks and evolving the consensus. TTC Representatives are rewarded block rewards for block producing, however, not only does the Representatives receive the block rewards but also their voters. When a block is produced, 61.8% of the block rewards is forwarded to the Representative, while the remaining 38.2% is divided among the voters of that Representative.

Regular TTC holders will be rewarded for voting for the right Representative, thus the voter turnout will increase naturally. But, the casted votes will only be valid for 7 days (168 hours,) which indicate that voters will have to continuously keep track of their votes to renew them.

The block rewards is provided only when the TTC Representative succeeds in producing a block. So, voters are responsible for keeping track of their voted Representative’s productivity. If the Representative is not doing a good job voter can withdraw their votes at any time.

Hence, Voting Rewards is not a dividend, which is passive income that holders are rewarded for merely staking them. In other words, TTC is not a security :p

Increasing Security and Efficiency

TTC Representatives are categorized into one of four tiers based on their ranks determined by the number of votes. Top 50 Representatives are eligible to participate in block production, and they have different chances to do so according to their tiers. 100% of Representatives in tier 1 (ranking 1 ~ 10) produce blocks in each round, while only 40% of the Representatives in tier 3 (ranking 21~30) is selected. A total of 21 Representatives produce blocks in each rounds. (10 Representatives from tier 1, 6 Representatives from tier 2, 4 Representatives from tier 3 and 1 Representative from tier 4)

With such system, we ensure that Representatives with ranking below 20 can still participate in block production at a higher chance, and can earn higher rewards. It will increase the security of the blockchain as more Representatives are eligible to participate in block production.

One might think that holders who voted to a low-ranked Representative will receive less rewards compared to holders who voted to a high-ranked Representative. However, because a low-ranked Representative will have less total vote count, compared to a high-ranked Representative (Ranking is based on the vote count), hence each voters will take a bigger portion of the rewards. For instance, if the Representative “A” (rank #1, tier 1) has 100 votes and the Representative “B” (rank #21, tier 3) has 40 votes, the amount of rewards per votes a holder can receive will be exactly same for each block produced.

Per the above algorithm, the Pareto efficiency is set to: 1/N1 = 0.6/N2 = 0.4/N3 = 0.05/N4. In this case, the Voting Rewards per vote will be the same no matter whom the voter votes for.

There is a key assumption to the above calculation: Every Representative has the same Productivity. As addressed earlier, the voting rewards is distributed only to a Representative (and linked voters) when the Representative successfully produces a block. In reality, each Representative will have different Productivity, affected by hardware, network stability, human errors, and so forth. This is why holders who voted to low-ranking Representatives might receive more rewards than holders who voted for high-ranking Representatives.

Continuing from the above example, if the Representative “A” (tier 1) has productivity of 97%, while the Representative “B” (tier 3) has productivity of 100%, voters of “A” will earn 3% less compared to voters of “B”. (In fact, the gap would be larger, as a failed Representative would be less likely to be chosen in the next round as a penalty). With such a system, holders will vote to a better Representative, not just one of the high ranking Representatives.

Moreover, more voters of “A” could switch its vote to “B”, resulting in “A” in lower ranking and “B” in higher ranking. As you can see, any Representative with stable high productivity can easily climb up the ladder to a higher ranking. If all holders vote logically, the system will quickly reach the status of Pareto Efficiency. (I strongly believe that people act logically when there is a direct reward related to his/her action)

The fundamental question for voters boils down to, “can the Representative consistently block produce?” and “can the Representative contribute to a stable network?” The productivity of a Representative heavily relies on technical aspects such as network speed and hardware configuration. Naturally, TTC Representatives will put in effort to maintain an optimal condition for block production. And, as block production is a continuous process, those who fail to keep up high productivity will fall behind the ranks while those who excel will rise above. In this system, personal profits are positively correlated with the betterment of the TTC Blockchain because rewards are provided based on the efficiency of the entire blockchain. Differently put, irrational behaviors such as block producers colluding with each other and ignoring poor productivity comes with a high opportunity cost.

Evolving the Consensus

Generally, a blockchain network requires a server update and/or upgrade (e.g. hardfork), to update and improve its consensus. However, in the TTC Blockchain, Representatives can initiate a proposal to optimize the consensus mechanism in aspects of:

  • Adding/removing slave networks
  • Adjusting the rewards ratio between Representatives and Voters
  • Optimizing the block production time for slave networks.
  • And much more

For a proposal to pass, it requires ⅔ of the votes. And, when the proposal is accepted, the actual change will occur online via PoA consensus without any code changes.

Representatives can initiate a proposal to optimize the consensus mechanism. This proposal goes through a public vote, meaning that everyone can see for which side each Representative is voting. Such a system enables each holder to choose the right Representative to. If a holder who voted for Representative “A” realizes that “A” is voting against the holder’s will, that holder can instantly vote to another Representative “B”. As a result, the influence of “A” will diminish while the influence of “B” will expand. Their ranking and tier could change even.

This is the same as taking away my vote on a congressman/congresswoman if he/she is trying to vote on a bill against my interest. In real life, it is nearly impossible for a voter to influence each bill happening in the Congress due to financial and social limitations. With blockchain technology, we can realize more efficient and complete indirect democracy.

Building a Blockchain for Billions

With Multi Tier BFT-DPoS Consensus with Voting Rewards, we expect the followings to happen: 1) Holders can proactively participate in and watch how the blockchain network operates, 2) Representatives will be able to represent the holders’ voice more effectively, 3) and together we will build a decentralized and autonomous blockchain network. Plus, millions of users from DAPPs integrated with TTC Rewards Engine (TReE) will add more power to the ecosystem.

Every concept written in this blog is already realized on TTC test network Merapi v.0.1.0. All the blockchain source code is available for public’s access on Github, and anyone with a smartphone can vote for Representatives on test network and receive your rewards, simply by downloading TTC Connect, a mobile wallet, from Apple App Store or Google Play Store.

I do not believe that the consensus we designed is complete or perfect. Yet, it will fix many existing problems of today and help us move forward towards the future we all dream of. Along the journey, the consensus and token economy will grow bigger and healthier, with nurture and care of every member of the networks. It is open for ideas, opinions, and healthy debates.

It requires three key components to create a mainstream blockchain project: well-designed blockchain ecosystem, user-friendly UX and actual users. At TTC Protocol, these are what we are working for.

As I said above, I welcome an open debate about our consensus or token economy in general. You can leave a comment here or join our telegram channel.

TTC Protocol Homepage : https://www.ttc.eco
TTC Protocol Ofiicial Github : https://github.com/ttceco
TTC Merapi Testnet : https://www.ttc.eco/#/testnet

--

--