Blockchains and consensus protocols: Snake oil warning
Abstract
A blockchain is a public ledger for recording transactions, maintained by many nodes without central authority through a distributed cryptographic protocol. All nodes validate the information to be appended to the blockchain, and a consensus protocol ensures that the nodes agree on a unique order in which entries are appended. Consensus protocols for tolerating Byzantine faults have received renewed attention because they also address blockchain systems. However, amid the current hype around blockchains, cryptocurrencies, fintech startups, and novel consensus mechanisms, it is sometimes overlooked that assessing and gaining confidence in the resilience of a protocol is a difficult task. We argue that developing consensus protocols is similar to engineering cryptographic systems, and that blockchain developers should look towards the established experience in cryptography and security with building trustworthy systems. Otherwise, it might be dangerous to entrust financial value to new protocols. Public discussion, expert reviews, broad validation, and standards recommendations should be employed, following the established practice in cryptography and security.