Twins:使 BFT 系统变得稳健
密码学与安全
2022-01-17 v2
摘要
本文提出 Twins,一个拜占庭攻击的自动化单元测试生成器。Twins 实现了三类拜占庭行为:(i) 领导者歧义,(ii) 双重投票,以及 (iii) 丢失内部状态例如遗忘守护已投票值的“锁”。为了模拟拜占庭节点的有趣攻击,它实例化该节点的孪生副本而非一个,赋予两个孪生体相同的身份和网络凭证。对系统其余部分而言,这些孪生体与一个以“可疑”方式行为的单一节点无法区分。Twins 可以系统地大规模生成拜占庭攻击场景,以受控方式执行它们,并检查其行为。Twins 场景迭代协议轮次并改变节点间的通信模式。Twins 在 DiemBFT 的生产环境中运行,每天可执行 4400 万个 Twins 生成的场景。尽管所考察的系统未显现错误,但为验证 Twins 自身实现而有意注入的微妙安全性漏洞在数分钟内即被暴露。Twins 可防止开发人员在更新代码库、引入新特性或执行日常维护任务时正确性发生回归。Twins 仅需在 DiemBFT 上包裹一个轻量封装,因此我们设想其他系统也可使用它。基于该思想,对一个新攻击及若干针对其他 BFT 协议的已知攻击被具体化为 Twins 场景。在所有情况下,目标协议在少于十几个协议轮次内即被破坏,因此 Twins 方法暴露问题是现实的。
引用
@article{arxiv.2004.10617,
title = {Twins: BFT Systems Made Robust},
author = {Shehar Bano and Alberto Sonnino and Andrey Chursin and Dmitri Perelman and Zekun Li and Avery Ching and Dahlia Malkhi},
journal= {arXiv preprint arXiv:2004.10617},
year = {2022}
}