论文标题

双胞胎:BFT系统变得强大

Twins: BFT Systems Made Robust

论文作者

Bano, Shehar, Sonnino, Alberto, Chursin, Andrey, Perelman, Dmitri, Li, Zekun, Ching, Avery, Malkhi, Dahlia

论文摘要

本文介绍了双胞胎,这是拜占庭式攻击的自动单位测试生成器。双胞胎实现了三种类型的拜占庭行为:(i)领导者模棱两可,(ii)双重投票,(iii)失去内部状态,例如忘记“锁定”守护投票价值。为了模仿拜占庭节点的有趣攻击,它实例化了节点的双副本,而不是一个副本,这给双胞胎都具有相同的身份和网络凭据。对于系统的其余部分,双胞胎与以“可疑”方式行事的单个节点看上去没有区别。双胞胎可以系统地生成拜占庭式攻击方案,以受控方式执行并检查其行为。双胞胎场景在协议回合上迭代,并改变节点之间的通信模式。双胞胎在Diembft内的生产环境中运行,每天可以执行4400万双胞胎生成的场景。尽管手头的系统没有显示出错误,但故意注射的细微安全错误是为了验证双胞胎本身的实施,在几分钟之内暴露了。双胞胎可以防止开发人员在更新代码库,引入新功能或执行例程维护任务时回归正确性。双胞胎只需要在Diembft上薄的包装器,因此我们设想使用其他系统。在这个想法的基础上,一场新的攻击和对其他BFT协议的几次已知攻击被认为是双胞胎方案。在所有情况下,目标协议在少于十二个协议回合中破裂,因此双胞胎方法暴露问题是现实的。

This paper presents Twins, an automated unit test generator of Byzantine attacks. Twins implements three types of Byzantine behaviors: (i) leader equivocation, (ii) double voting, and (iii) losing internal state such as forgetting 'locks' guarding voted values. To emulate interesting attacks by a Byzantine node, it instantiates twin copies of the node instead of one, giving both twins the same identities and network credentials. To the rest of the system, the twins appear indistinguishable from a single node behaving in a 'questionable' manner. Twins can systematically generate Byzantine attack scenarios at scale, execute them in a controlled manner, and examine their behavior. Twins scenarios iterate over protocol rounds and vary the communication patterns among nodes. Twins runs in a production setting within DiemBFT where it can execute 44M Twins-generated scenarios daily. Whereas the system at hand did not manifest errors, subtle safety bugs that were deliberately injected for the purpose of validating the implementation of Twins itself were exposed within minutes. Twins can prevent developers from regressing correctness when updating the codebase, introducing new features, or performing routine maintenance tasks. Twins only requires a thin wrapper over DiemBFT, we thus envision other systems using it. Building on this idea, one new attack and several known attacks against other BFT protocols were materialized as Twins scenarios. In all cases, the target protocols break within fewer than a dozen protocol rounds, hence it is realistic for the Twins approach to expose the problems.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源