Calibra首席研究员:LibraBFT算法尚存在安全与活性漏洞,Twins系统可尝试解决_LIBRA:Ejection Moon

写在前面:原文作者是LibraCalibra数字货币钱包项目的首席研究员DahliaMalkhi,在这篇文章中,她介绍了Calibra团队最新研发的Twins拜占庭容错系统检测方法,以用于检测LibraBFT算法的相关安全及活性漏洞。

以下是译文:

使用拜占庭容错算法设计分布式协议并非是一件易事。

BFT模型是一个分布式系统,其中故障节点可以任意的、完全无约束的方式运行。然而,当拜占庭节点的偏离行为不可检测时,它们很可能成功地破坏了BFT协议。也就是说,最强大的拜占庭攻击实际是来自内部:攻击者发送具有正确格式的消息,并且它们与其他节点的交互似乎也遵循了协议。

欧洲央行管委诺特:确信我们可以控制加密货币稳定性风险:金色财经报道,欧洲央行管委诺特表示,加密货币的实际监管存在限制,这使得问题变得非常复杂。建议各国官方应跨国合作和协调。投资加密货币是一项高风险活动。加密货币从未在一种监管真空环境中运作过。实际上已经存在着一些规定。我们一直在强化这些规定,针对这些加密货币所进行的经济活动。这些活动在很大程度上与传统金融活动并无太大不同,而这些活动是受到监管的。这是相同的活动、相同的风险、相同的监管原则。这就是我们提出的标准的基本原则。

此外,委诺特表示,欧洲央行强调数字货币行业应该保障消费者的权益,包括隐私和数据安全。对于稳定币,欧洲央行担心的是全球范围内出现更多的区域稳定币。因此建立了一个适用于全球稳定币机制的监管制度。确信我们可以控制加密货币稳定性风险。[2023/7/18 11:02:07]

实际上,在对BFT协议的几种已知攻击中中,拜占庭节点以简单的方式偏离了正确的行为:它们表现为模棱两可、省略消息,以及删除内部状态变量等。

声音 | Calibra产品副总裁:预计Libra协会成员的数量将会增加:Calibra产品副总裁、Libra联合创始人Kevin Weil在网络峰会技术会议上对观众说:“Libra不会像社交网络那样传播开来。”“这不是几年的工作,而是几十年的工作,值得去做。” Weil似乎对其他公司有意加入Libra的前景感到乐观。他称“18个月前,这还是个想法。今天,我们有21个出色的Libra协会的成员;还有一群人希望参与其中。所以这个数字还会继续增长。” 他补充说,如果人们觉得使用Calibra不舒服也没关系,因为他们“不需要使用Facebook产品”才能使用libra。(CNBC)[2019/11/5]

Calibra的Twins解决方案

利用这种洞察力,Calibra开发了Twins,一种用于BFT测试的“重要”方法。

声音 | Facebook发言人:因美国制裁,没有计划让古巴人使用Calibra钱包:到目前为止,Libra协会可以帮助古巴提供主流的加密货币入口。尽管Facebook和WhatsApp在古巴被广泛使用,属于Libra白皮书优先考虑的无银行账户的人群,但Facebook发言人表示,由于美国的制裁,没有任何计划让古巴人可以使用Calibra钱包。 然而,金融科技领域一名监管律师表示,似乎向古巴经过审查的个人转账并不违法。但该律师称,这确实增加了Libra协会可能更愿意完全避免的监管风险。因此,Facebook发言人补充:“这并不意味着其他钱包提供商不能这么做,其他公司可以自由为Libra制作钱包,所以他们理论上可以创建一个在古巴可以使用的钱包。”(CoinDesk)[2019/7/17]

Twins系统地生成有趣的拜占庭行为,这些行为可以被有效地枚举和测试,它放弃了对协议的无趣偏离,例如发送格式错误的消息或发送不合理的消息,而诚实的接收者很容易拒绝这些消息。

动态 | Facebook Calibra图标被指剽窃在线银行Current:据CNBC报道,华尔街交易员、在线银行Current的首席执行官Stuart Sopp表示,Facebook的加密货币项目剽窃了该公司的logo。Sopp表示,他在2016年请旧金山设计公司Character为其创建了公司logo,而Character还参与了Facebook加密项目的工作。[2019/6/21]

最重要的是,没必要去开发攻击逻辑来使用Twins测试。节点执行未经修改的正确代码来攻击系统。Twins测试人员只是通过部署攻击节点的两个实例,而不是一个实例来“错误配置”系统。两个实例使用相同的标识,因此,对于系统的其余部分节点而言,“孪生”节点显示为单个“行为不正常”的节点。

关于有趣的拜占庭行为

为了演示如何覆盖有趣的拜占庭行为,让我们设计一个简单的服务:一个只有一个条目的键-值存储。我们希望键-值存储能够容忍n=3f+1台服务器中的f台拜占庭式服务器,这与解决共识所需的数量相同。

YeeCall张磊:区块链将成为下一时代的基础设施:今日,YeeCall创始人兼CEO张磊接受36氪采访,他判断区块链很可能成为下一时代的基础设施。张磊称,有价值的项目既要有技术基因和储备,也要找到重度使用场景,做好用户体验,很多人对技术需求强烈,却不太关心应用落地的具体路径。由其主导的YeeCall是一款出海的通讯工具,以其网络电话功能,方便移民、劳工和留学生跨境沟通。张磊表示,YeeCall将以跨境转账为区块链应用的核心场景,打造开放式、支持多币种,结合游戏和社交功能的IM。[2018/1/11]

为了简化任务,我们将让客户端在请求更新存储值时签署更新。因此,拜占庭服务器将无法编造非法值,因为它无法伪造客户端的签名,但它可能会用过时的值响应查询,或者它根本不会响应。

存储协议:客户端更新存储值的协议有两个阶段:第一阶段,客户端为获取最新version在3f+1台服务器中查询2f+1台服务器。在第二阶段,客户端请求3f+1服务器中的2f+1台服务器,将存储值更新至versionv+1。

让我们看一个例子。假设有四台服务器{A,B,C,D},其中C是拜占庭式的。第一个客户端连接到网络,向{A,B,C}查询当前version(为0)。客户端存储version=1的第一个值,并从{A,B,C}接收确认。第二个客户端查询{B,C,D}以获得当前version。我们说C是拜占庭式的,它可能说谎并返回version0,隐藏version1。这样就是没问题的,因为B服务器会返回version1。

查询协议:现在我们需要处理服务器的查询问题。问题是,当客户端查询服务器时,它可能会捕获未完成的更新。例如,假设到目前为止,version2只写到{A,C}。查询{A,C,D}的客户端将从C获得包含version2的响应。但是,如果客户端查询{B,C,D},由于C是拜占庭式的,并且它可能会隐藏version2,则仅返回version1。更糟糕的是,C可能会来回切换,使用version2来响应某些客户端,而对其他客户端则保持隐藏状态。

为了解决这个问题,我们将在查询协议中使用两个阶段:第一阶段,客户端为当前version查询2f+1台服务器,第二阶段将最高的version写回给2f+1台服务器。这样,假设客户端查询{A,C,D},并返回version2。那它就将version2写回给2f+1台服务器,比如{A,C,D},从而保证version2的更新已经完成。

注:由于解决键-值存储一直不是我们的重点,我们掩盖了上面的某些细节。另外,作为补充说明,在n=3f+1的情况下,解决键-值存储问题不需要客户端签名,请参阅此处的示例解决方案。

有趣场景的系统生成

注意我们在设计键-值存储时所做的一些事情:

我们创建了一些简单的场景,每个场景都有少量的服务器和少量的交换步骤;

在每个交换步骤中,我们选择f台服务器来进行排除:第一个客户端从阶段1和阶段2中排除{D},第二个客户端从阶段1中排除{A},依此类推;

我们允许拜占庭服务器C返回到旧状态并用旧值响应;

将上述内容放入一个结构化的场景中,我们通过拜占庭式服务器创建了以下一系列的交换,分区和“内部状态遗忘”:

Exchange1:client-1phase-1with{A,B,C};

Exchange2:client-1phase-2with{A,B,C};

Exchange3:client-2phase-1with{B,C,D};

Exchange4(partial):client-2phase-2with{A,C}(andcrash);

Exchange5:client-3with{B,C,D},Chasitsinternalstateerased.

Twins系统地生成类似上面的场景,并通过拜占庭节点的孪生实例模拟遗忘等行为。重要的是,对于相当小的场景,Twins可以有效地枚举上述场景,以暴露协议漏洞。

总结

使用拜占庭容错算法设计分布式协议并不容易。数十年来,研究人员一直在努力应对令人担忧的安全与活性漏洞,在某些情况下,这些漏洞需要花上数十年的时间才能够被人发现。

Twins是一种新的BFT测试方法,它覆盖了很多拜占庭式攻击,关于该方案的具体设计,读者可以看原论文。

Twins:White-GloveApproachforBFTTesting:https://arxiv.org/pdf/2004.10617.pdf

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:78ms0-5:946ms