dBFT 2.0–3 months, no sporks

Vitor Nazário Coelho
The Neo Pulse
Published in
2 min readAug 29, 2019

As our dear friend EdgeDLT used to say, sporks were single block hash duplications that were happening on the NEO network with the original dBFT 1.0. The origin of the term is not really known by us, thus, please correct if you have further information.

Edited: Edge just provided us with the source of that! And also gave us a review over of post.

Almost three months have already passed since the deployment of dBFT 2.0 into the Mainnet, around 3rd June. It is a great celebration time for us, because the investigations undertaken in designing a new cryptographic protected level for the dBFT consensus proved worthwhile!

In addition to the aforementioned new cryptographic layer (a commit phase triggered by a Byzantine Agreement), researchers from the of optimization, cryptography, and top-level C# developers contributed their efforts to ensure the liveness of the consensus mechanism in the most extreme cases. Thus, different recovery mechanisms and basic fault detection procedures were designed.

A mathematical programming model was even created for discretizing the consensus states, in an effort to mathematically prove the correctness of the consensus logic, https://github.com/NeoResearch/milp_bft_failures_attacks. However, such a model was not yet completed, since experimental science was demonstrated to be quicker (but not so powerful)…

On the other hand, these efforts have opened incredible paths for us to move forward, in which comprehension of partially synchronous consensus was further improved. Currently, a fully dedicated state model for the dBFT 2.0 is being implemented in C++ library, currently undergoing a testing phase and adjustments: https://github.com/NeoResearch/libbft

The library provides a promising path for state guided communication of autonomous agents, for which the literature has already presented incredible efforts in the form of complex and important mathematical proofs.

A draft of the dBFT 2.0 state machine, extracted from https://github.com/NeoResearch/yellowpaper

--

--