COS:Cosmos联合创始人:一个密码学漏洞引发的币安跨链桥攻击

原文作者:Cosmos 联合创始人Ethan Buchman

关于币安黑客事件的一些想法。Binance是Cosmos软件的最大用户,他们运营着一个价值数百亿美元的平台,但没有对核心软件做出有意义的贡献或参与。从这里发生的事情中,我们可以学到很多。

你可能看到了 samczsun 的优秀推文贴展示了这个问题。https://twitter.com/samczsun/status/1578167198203289600 让我们尝试补充一些有关情况的详细信息。

一个官方防御补丁已发布在这里:https://forum.cosmos.network/t/cosmos-sdk-security-advisory-dragonfruit/7614

基于Cosmos的Umee推出首个IBC价格预言机:金色财经报道,Umee是一个基于Cosmos的借款和借贷平台,该公司周四宣布,还有几周时间就会推出Cosmos的区块链间通信(IBC)协议的第一个价格预言机服务。称为Orion的价格预言机将由Umee区块链的验证器提供,该验证器运行的软件将自动从一组中心化交易所,加上Osmosis dex中提取定价数据。[2022/7/7 1:58:12]

友情提醒:如果你发现 Cosmos 软件存在潜在漏洞,请遵循我们负责任的披露流程:

https://github.com/cosmos/cosmos-sdk/blob/main/SECURITY.md

问题的症结在于黑客能够伪造一个默克尔证明(merkle proof),这不应该是可实现的 - 默克尔证明应该是高度安全的。区块链轻客户端(以及 IBC)建立在默克尔证明(merkle proof)之上,因此正确处理它们很重要。

Cosmos生态L1网络Juno宣布主网重新上线:4月8日消息,4 月 8 日,据官方消息,Cosmos 生态 L1 网络 Juno 现已重新启动,补丁增添成功并达成共识,正在开始出块。同时 Lupercalia 升级已完成。

此前报道,Cosmos 生态 L1 网络 Juno 在社交媒体上发文表示,其主网已于区块高度 2578108 位置停止出块,目前团队正在调查并收集相关证据,将在得出结论后公布本次事件具体原因。[2022/4/8 14:12:06]

默克尔证明是数据存储中存在某些键值对的密码学证明, 我们可以称之为“包含证明”。很多区块链将其数据存储在一棵默克尔树(merkle tree)中,以便可以生成证明某些数据包含在树中的证明。

默克尔证明在 IBC 中被大量使用,例如,一个区块链可以证明它有一个指向另一个区块链的数据包。当然,如果你可以证明某些数据在树中,但实际上并没有,那将是一个大问题。而这就是在 Binance 身上发生的事。

Cocos-BCX公布首批38家海内外主网生态合伙人名单:3月26日,下一代游戏数字经济平台Cocos-BCX公布首批海内外38家主网生态合伙人名单,分别为DappReview,纯白矩阵,CocosABC,COCOS集成终端,Cobo,比特派,慢雾区安全节点,泰肯星球,链玩堂,DappOS,boom.game,CardMaker,IMCOCOS,可可狮部落,陀螺财经,DAPPX ,HICOCOS,CocosX,DAppChaser,野花说 COCOS,FansCOCOS,GBAC,比特魔方,HelloPool,COCOS 微博战队,ABA,SP Expansion Machine,Cryptoblarabi,COCOS小天使社区,艾文社区,SSSnodes 超节点,PANDA 社区,TokenHODL,鸿蒙资本社区,星际社区,小目标社区, Cocos-BCX Sri Lanka和Coin-net.com。[2020/3/26]

Cosmos 链使用一种称为 IAVL 的默克尔树,它位于 IAVL 存储库中。它附有一首关于默克尔树有多棒的诗。IAVL 是一个自定义的默克尔化平衡二叉搜索树,它类似于以太坊的帕特里夏树(patricia trie)。

动态 | Cosmos背后开发公司Tendermint进行重组:Cosmos开发公司TendermintInc宣布进行重组,跨链通信协议IBC(InterBlockchainCommunication)的开发团队和TendermintCore团队将从TendermintInc分拆出去,设立一家总部在柏林的独立公司。分拆之后,TendermintInc的重心将放在Cosmos社区建设、CosmosSDK和Cosmos生态项目Virgo的开发和运营上。(链闻)[2020/2/20]

https://github.com/cosmos/iavl/blob/master/POEM

每个区块链开发人员在接触这些结构的架构和算法时,都不得不陷入默克尔树的疯狂之中。

IAVL 存储库公开了一个 API,用于使用一个“RangeProof”对象构建和验证证明。一个范围证明(Range Proof)用于证明某些范围的 key 在默克尔树中并列存在。

动态 | Cosmos Hub 测试网 Gaia-13004 上线运行 为 Cosmos SDK v0.36.0 新版本升级做准备:Tendermint 产品经理 Jack Zampolin 在推特上表示,Cosmos Hub 测试网 Gaia-13003 已经成功升级为 Gaia-13004,目前已经上线并稳定出块,为 Cosmos SDK v0.36.0 新版本升级做准备。升级提案邀请 Cosmos 所有验证人、开发者提出建议和反馈。根据验证人 FigmentNetwork 发布的 Gaia-13004 测试网区块浏览器,目前已经有包含 FigmentNetwork、IRISnet-Bianjie 等 31 个验证人参与测试运行。Gaia 软件是 Cosmos 测试网系列名称,出自于古希腊神话的生命之母「 Gaia 大地女神」之名,旨在让验证人及用户「提前熟悉网络升级的变化」,并允许 Cosmos Hub 在不影响用户转账等功能的情况下无缝衔接至新的升级版本。[2019/7/26]

一个范围证明还可用于证明单个键值对(范围大小为 1),或证明某个键不在树中(范围大小为 2)。

IAVL 存储库将 RangeProof 对象用于所有三种证明(包含、不存在、范围内的键)。但事实证明 RangeProof 的内部工作存在一个严重漏洞。

一个证明应该由一个子叶节点和一系列内部节点组成,这些节点勾勒出从子叶到根的路径,并具有足够的信息来计算树的 merkle 根哈希并验证子叶实际上是树的一部分。

由于这是一棵二叉树,所以每个内部节点都可以有一个左分支和右分支。但是在证明中,你是在树中跟踪路径,因此内部节点应该只包含其左分支或右分支哈希。另一个是由证明中其他节点的哈希构造的。

这就是 IAVL RangeProof 的代码遇到问题的地方。IAVL RangeProof 允许填充 InnerNode 中的 Left 和 Right 字段。而这不应该发生。

攻击者基本上利用了将信息粘贴到 Right 字段中的优势,它们从未经过验证,也从未影响哈希计算,从而使验证者相信某些子叶是树的一部分。因此,他们成功地伪造了一个默克尔证明。

值得注意的是,这个问题取决于攻击者能否将子叶添加到单个证明中,因为 RangeProof 允许你一次证明多个子叶。因此,即使你的协议只希望一次证明一个 key,使用 RangeProof 也会为攻击者打开攻击面。

所以使用 RangeProof 并不是一个好主意。但是我们也可以提出一个简单的防御措施——如果任何内部节点同时填充了 Left 和 Right 字段,则预先拒绝证明。这样做应该可以解决这个问题。

虽然 RangeProof 是一个核心 Cosmos 存储库 (IAVL) 的一部分,但它实际上并未用于 Cosmos 堆栈内的区块链协议中。IAVL 树本身被所有 Cosmos SDK 链使用,但 RangeProofs 并没有。这是理解的关键!

相反,对于 IBC 中的默克尔证明,开发者按照 IBC 标准设定的更严格的流程开发了一个新规范。该规范称为 「ICS23」,它位于 IBC 规范存储库中:https://github.com/cosmos/ibc 中。

那什么是 ICS23?这是支持多种默克尔树的默克尔证明的通用标准(包括 IAVL 树)。ICS23 定义了一种用于序列化和验证默克尔证明的通用格式。

IBC 没有使用 IAVL 树的内置 RangeProof 系统,而是使用 ICS23 标准来生成和验证 IAVL 树的默克尔证明。而 ICS23 代码中并没有这个漏洞。

这不仅仅是使用不同的代码,并因此侥幸躲过一劫的问题。这代表了一种根本不同的软件工程方法。

ICS23 遵循更严格的设计流程,旨在最大限度地减少攻击面,同时仍然是通用的,这是一项艰巨的任务!作为其中的一部分,它明确地拒绝了 range proofs,ICS23 中并没有 range proofs。

因此,该漏洞本身在 ICS23 规范中是不可接受的,这是好的,IBC 的目标是使跨链通信更加安全。

当然,IBC 规范和协议可能并不完善,并将继续改进。作为一个复杂的协议和软件实现,它(IBC)甚至可能存在我们社区必须应对的尚未被发现的漏洞,安全需要一个社区。

我们都必须认真对待安全。如果发现潜在漏洞,请负责任地披露:https://github.com/cosmos/cosmos-sdk/blob/main/SECURITY.md。

如果你可以为改进软件和协议做出贡献,我们邀请您这样做!

总的来说,这次事件是一个机会,它提醒了大家在软件开发生命周期中加强安全实践的重要性,传播一些关于 IBC 是什么及其工作方式的一些认识,并邀请整个生态来帮助改进 IBC。

跨链桥黑客对我们的行业来说是一个真正的问题,如果不认真致力于更高的安全性和标准流程,它们(跨链桥)就不会变得更好。让 IBC 成为一个光辉的例子。

这里还有一个关于使用开源软件的重要教训:遵循最佳实践,保持最新状态,并向上游贡献资源!很高兴看到 binance 成为更负责任和协作的生态参与者!

金色财经Maxwell

Bankless

金色荐读

FastDaily

中国金融杂志

巴比特资讯

元宇宙之道

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

地球链

TUSDSNT:晚间必读 | 区块链和互操作性:全球化 3.0

BNB Chian是如何被攻击的?黑客盗取金额具体有多少?黑客为何又是选取跨链桥攻击?币安链本身安全吗?怎么看黑客攻击后币安链被暂停?被盗资产结局会如何?对社区有何新启示?点击阅读经验丰富的投资.

[0:15ms0-1:106ms