Verification of customizable blockchain consensus rule using a formal method
This paper proposes a formal approach for verifying a customizable consensus rule used in a blockchain protocol. Hyperledger Fabric supports an application-specific, customizable consensus rule called endorsement policy to support diverse blockchain applications. However, this makes it difficult to ensure the properties such as Byzantine fault tolerance.The proposed method has the following features: (i) A dedicated model format is defined to enable a user to concisely describe the requirements characteristic to a blockchain network. (ii) The number of states of a model is reduced by (ii-a) eliminating the behavior of the platform from the model, (ii-b) describing the state space constraints in linear arithmetic, and (ii-c) applying an SMT (satisfiability modulo theory) solver. This paper demonstrates that the method supports the modeling of a collusion by nodes governed by a same organization, which is a typical threat when participating organizations do not trust each other. Also, the verification time is measured to find that the method is scalable to approximately 100 nodes.