SightSteeple: Agreeing to Disagree with Functional Blockchain Consensus
Classical and contemporary distributed consensus protocols, may they be for binary agreement, state machine replication, or blockchain consensus, require all protocol participants in a peer-to-peer system to agree on exactly the same information as part of the consensus payload. Although this model of consensus is extensively studied, and is useful for most consensus based decentralized applications, it falls short of defining correct distributed systems which mandate participant credential based privileged visibility into the consensus payload, through the consensus protocol itself. We introduce a new paradigm for distributed consensus, called functional blockchain consensus. Functional blockchain consensus allows each blockchain protocol participant to agree on some distinct sub-information of the list of transactions, as a function of the credentials of the participant in the blockchain system, instead of agreeing on the entire list of transactions. We motivate two adversary models, one with a standard crash-fault adversary and another with a novel rational-fault adversary, to compromise functional blockchain consensus. We then present two versions of a blockchain protocol called SightSteeple, that achieves functional blockchain consensus in the said fault models. SightSteeple relies on a novel combination of standard blockchain consensus and functional encryption, among other primitives, to achieve its goals of correctness. Finally, we discuss practical uses of functional blockchain consensus based asymmetric distributed ledgers, and motivate off-shoot constructions that can result from this new consensus paradigm.
READ FULL TEXT