中文

区块链拜占庭容错的的形式化验证

分布式、并行与集群计算 2019-10-16 v2

摘要

为实现区块链,现在的趋势是集成非平凡的拜占庭容错共识算法,而非等待接收区块以决定最长分支的初创思路。在存在十年之后,区块链如今交易大量有价值资产,一次简单的分歧就可能导致灾难性损失。遗憾的是,区块链中使用的拜占庭共识方案至多靠“手工”证明正确,因为我们未获悉任何一个经过形式化验证。本文提出两项贡献:(i)我们通过列出区块链共识的六个漏洞(包括两个新反例)来说明问题的严重性;(ii)随后我们使用 ByMC 模型检查器形式化验证 Red Belly Blockchain 的两个拜占庭容错组件。首先,我们用 116 行代码指定一个简单的广播原语,在双核 Intel 机器上 40 秒验证完毕。接着,我们用 276 行代码指定一个区块链共识算法,在 64 核 AMD 机器上使用 MPI 于 17 分钟内验证完毕。最后我们认为,形式化验证区块链共识协议的正确性现已变得相对简单且至关重要。

关键词

引用

@article{arxiv.1909.07453,
  title  = {Formal Verification of Blockchain Byzantine Fault Tolerance},
  author = {Pierre Tholoniat and Vincent Gramoli},
  journal= {arXiv preprint arXiv:1909.07453},
  year   = {2019}
}