Wishing to improve the security of the Everscale network, while keeping it fast and decentralized enough, Mitya Goroshevsky described the SMFT consensus protocol, his vision of solving several problems of the original Nikolai Durov protocol.
The problems SMFT is trying to solve:
๐ดSecurity of block generation in tracks and finality: validators can release an incorrect block if 2/3+1 of them conspire
๐ดFixing screwed up state: Nikolai Durov suggested using vertical blocks to fix contracts, but their implementation is complicated and requires changes not only in node software, but in other parts of the network as well
๐ดProblems in DeFi: lack of finality can cause problems for many DeFi services, such as bridges, and fixing through vertical blocks will no longer be possible
How SMFT solves these problems with verifiers:๐ขBlocks must collect 50% + 1 BLS signatures of the entire workchain to be included in the master, which guarantees their availability
๐ขVerifiers verify blocks and send ACK or NACK to the masterchain
๐ขIn case of NACK, the block is checked by the whole masterchain, and invalid blocks lead to a slash of validators who signed it, sent an ACK, or went silent
๐ขEvery N blocks, validators must reveal their keys to determine which blocks they should have checked
๐ขIf a block takes a long time to verify, the verifiers send a timeout, and if several timeouts are set, the block is verified by the masterchain. This allows you to determine the required number of verifiers for each block and eliminate the chance of an attack
๐ขSMFT also offers simplification of BFT in a validation session or abandonment of it in favor of selecting a random block maker verified by verifiers to speed up block release
Overall, SMFT is an Everscale innovation that raises the fault tolerance bar to 50% (vs. 33% consensus BFT), which is the maximum level of security in decentralized systems.