Abstract

Mixed-integer mathematical programming has been widely used to model and solve challenging optimization problems. One interesting feature of this technique is the ability to prove the optimality of the achieved solution, for many practical scenarios where a linear programming model can be devised. This paper explores its use to model very strong Byzantine adversaries, in the context of distributed consensus systems. In particular, we apply the proposed technique to find challenging adversarial conditions on a state-of-the-art blockchain consensus: the Neo dBFT. Neo Blockchain has been using the dBFT algorithm since its foundation, but, due to the complexity of the algorithm, it is challenging to devise definitive algebraic proofs that guarantee safety/liveness of the system (and adjust for every change proposed by the community). Core developers have to manually devise and explore possible adversarial attacks scenarios as an exhaustive task. The proposed multi-objective model is intended to assist the search of possible faulty scenario, which includes three objective functions that can be combined as a maximization problem for testing one-block finality or a minimization problem for ensuring liveness. Automated graphics help developers to visually observe attack conditions and to quickly find a solution. This paper proposes an exact adversarial model that explores current limits for practical blockchain consensus applications such as dBFT, with ideas that can also be extended to other decentralized ledger technologies.

Highlights

  • Mixed-Integer Linear Programming (MILP) is considered by George Dantzig, one of its creators, to be an art as much as it is science [1], due to its ability to find optimal solutions for challenging optimization problems

  • We consider an application over the Neo Blockchain consensus, Delegated Byzantine Fault Tolerance (dBFT), which was inspired by the classical algorithm Practical Byzantine Fault Tolerance (PBFT)

  • Both PBFT and dBFT require that the number of Byzantine agents to be limited to f, from a set of N = 3 f + 1 consensus nodes

Read more

Summary

Introduction

Mixed-Integer Linear Programming (MILP) is considered by George Dantzig, one of its creators, to be an art as much as it is science [1], due to its ability to find optimal solutions for challenging optimization problems. Neo project [10] gave its first steps (under the name Antshares) towards the design of a Turing-complete blockchain with One Block Finality (1BF) consensus, without relying on a computationally expensive PoW This consensus system was named Delegated Byzantine Fault Tolerance (dBFT), adding network voting mechanisms over the groundbreaking work of Castro and Liskov [11], the Practical Byzantine Fault Tolerance (PBFT). Future Internet 2020, 12, 185 of dBFT (named dBFT 1.0) included only two of the three phases from PBFT, which allowed rare (but inconvenient) scenarios where more than one block is proposed (due to severe delays and timing issues) This situation required nodes to be reset after several weeks of operation, since following a “bad path” in the blockchain ( called spork) would lock that node forever (no fork is possible in a 1BF consensus).

Background and Related Work
Phase I—PrepareRequest
Phase II—PrepareResponse
Phase III—Commit
View Change
Formulation for the dBFT Consensus
Sets and General Parameters
Auxiliary and Decision Variables
Model Constraints and Blockchain Operational Requirements
Time Zero Constraints
IsPrimary Constraints
Honest Nodes Constraints
Objective Function and Auxiliary Variables Calculation
Computational Experiments
Problem Instance Generation
Exploring Minimization and Maximization Optimization Directions
Initial Experiments with Cbc and Gurobi
Graphical Visualization
Ensuring Packages Delivery
Detected Problem Solving Limitations
Conclusions and Future Works
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call