BLOG March 6, 2018
Da Hongfei, Founder of NEO, explains with below facts to answer the questions and clarify recent confusion regarding NEO dBFT consensus mechanism, the latest block delay, as well as NEO's plan for the decentralization of consensus nodes.
Facts about NEO's consensus mechanism dBFT:
dBFT is short for delegated Byzantine Fault Tolerance. Delegation means NEO (the governance token) holders do not participate in the consensus process directly. Instead, NEO holders vote in Consensus Nodes by a special voting transaction.
Elected Consensus Nodes reach consensus block by block in a BFT style algorithm. The list of elected Consensus Nodes for the next block can be deterministically calculated from voting transactions in historical blocks including the latest block.
The number of Consensus Nodes is also set by the same voting process of NEO holders, from 7 at minimum to 1024 at maximum.
Currently NEO Council is managing almost 50% of all the NEO tokens as described in whitepaper from day 1.
NEO Council values efficiency (quick response and protocol upgrade) over decentralization (sometimes a crypto-political correctness) at this early stage. Therefore we used tokens and influences we have and voted in 7 Consensus Nodes managed by NEO Council in the past.
NEO has hundreds (if not thousands) of full nodes online at any given time, though the exact number is difficult to measure due to its peer-to-peer nature. We are happy with this level of redundancy and believe further redundancy adds little value to the network considering correspondent network/storage/computing resources needed.
When NEO's core protocol stabilizes, we expect to see one to a few dozens of Consensus Nodes to be elected by NEO holders. In 2018, we predict the number of Consensus Nodes will stay at 7 to 13.
Facts about NEO's recent delay of block producing:
The delay is not out of the reason described by the statement of Malcolm Lerider in Discord, although he is NEO's Senior R&D Manager. His statement was then misused as evidence that 1 Consensus Node failure will bring down the NEO network. It is a ridiculous and ignorant accusation and can be debunked easily. The actual reason is more complicated and we were aware of this issue and had been working on it long before the recent delay happened. Malcolm also wrote a blog to clarify this although the blog simplifies technical details quite a lot. https://medium.com/@MalcolmLerider/shoutout-to-take-responsibility-5717dc72367a
One or even two Consensus Nodes going offline or colluding maliciously will not trigger this issue because dBFT tolerates "f" (in NEO's case f=2) faulty nodes given there are "3f+1" (in NEO's case 7) Consensus Nodes. We are pretty sure the block delay is caused by a corner case lying deep in NEO's p2p protocol implementation: in some unusual scenarios, Consensus Nodes disconnect from the networks temporarily but reconnect shortly after. In such scenarios block delay is observed. We had been testing fixes for weeks on testnet and it was planned to be deployed on mainnet this week.
It is not rare to see bugs or even critical ones in software development practice. The advantage of dBFT was indeed displayed in this case because it values finality and consistency over liveness. Even if there is a bug in p2p protocol and caused network stagnation, consensus fork never happened and no transactions need to be reversed. Our design goal is not to maintain a liveness illusion at the cost of causing transactions in one fork to be abandoned -- and yes it happened with other blockchains in the history -- innocent people in an unfortunate fork got transactions abandoned and lost money in the end.
Facts about NEO's plan to decentralize Consensus Nodes:
NEO has a plan to decentralize Consensus Nodes and it was released with details at NEO DevCon 1 in San Francisco in Jan. 2018.
Many prestigious organizations volunteered to manage Consensus Nodes and NEO Council had already been working with them on testnet or in private networks. Among them are: KPN, one of the biggest telecommunication companies in Netherland; CoZ, the biggest NEO community developer's group; Fenbushi Capital/Wanxiang Blockchain Lab, the biggest and most successful blockchain evangelist and VC in China. They have a high probability to be elected on mainnet in the future.
NEO Council had been spending the reserved NEO tokens to accelerate development, reward community, and foster ecosystem. Decreasing amount of NEO held by NEO Council means decreasing voting power, and eventually all NEO tokens aka governance power will be distributed to the community.One of the goals of blockchain is to build technology-empowered trust that can be verified by anyone. Decentralization is a great path to accomplish that, but there are also other considerations and options, especially when the technology and industry are still relatively immature. NEO Council can vote in more Consensus Nodes or just hand over all the Consensus Nodes right away. However, we don't think it's a responsible action in any sense. We don't want NEO's community to be disrupted by crypto-politicians representing interest groups like happened elsewhere. I, myself am an optimistic pessimist, a pragmatic idealist. We don't just imagine how an ideal world looks like, we work out the path from where we are today to the beautiful tomorrow world. The path won't be straight. Just like what we've made clear to NEO community at the very beginning -- the process of complete decentralization takes years, not months or weeks. The road is not always smooth and broad, the sea is not always calm and unruffled, but for enterprising minds that's where the fun comes from. Let's enjoy the journey!
Above information had been publicly discussed/addressed in speaking or written form in numerous situations on social media, industry conferences, and community meetups, across different continents. We are sorry to see that FUD is spreading among those who are not aware of or agree with NEO's vision and philosophy. We hope these facts will help people to understand NEO Council's standpoint on relative issues.