原文标题:《跨链桥为什么这么多事故?》
原文作者:0xScope团队
近期频发的跨链安全问题吸引市场的广泛关注,本文希望从产品设计的角度入手,给读者讲述为什么这个赛道的产品安全问题这么多。需要声明的是,文章中所指出的问题并不是每个项目都会存在的,大部分问题在设计时都已经有了相关的应对策略,本文的目的主要还是希望更多人可以理解这个赛道的复杂程度。
文章的撰写逻辑是:先讲清楚通用的跨链桥都是怎么设计的,加深读者对跨链桥的理解,再总结这些跨链桥可能会遇到的安全问题。
之前的研报实际上已经向大家阐述过几种不同类型的信息跨链方案,不论最终的呈现是什么样的,从产品设计的角度来说,只有侧链(广义上的侧链,在文中讲 rollup 也归纳为侧链,别杠),哈希时间锁定,公证人这三种机制。
这三种方案中侧链方案的安全性最高,比如各种不同的 rollup 和 polkadot 的平行链。主链和侧链之间共享安全性。
但是侧链方案一般要求原链和目标链同构,这样一来可适用的场景就要少得多。这也是为什么 V 神认为赞同多链,但不认可跨链的原因所在,因为无法共享安全性的跨链方案实在是问题太多了。
这种方案号称是点对点的最去中心化的异构跨链方案,但是成本较高,用户等待时间过长,导致当前的采用率并不高。且当我们依然需要一个第三方充当换币中间节点时,也需要一个所谓的中间共识层去满足安全性和去中心化的要求。
这是当前最常用的异构跨链桥方案,市场上的大多数产品基本都同根同源,从产品设计的角度来说几乎没有区别。主要的区别可能集中在信息校验的方式步骤,公证人的共识算法,托管钱包的签名算法等。从使用体验和安全性上的差别也都不太大。因此,从安全的角度来说,所面临的安全风险也是有很多共性的。
IPFS创始人发布Filecoin整体规划:拟打造跨链桥、构建和以太坊虚拟机的兼容性等:9月21日消息,在由万向区块链实验室主办的第八届区块链全球峰会上,IPFS创始人Juan Benet发布题为《Filecoin整体规划》的主旨演讲,Filecoin整体规划分为3个阶段:1.搭建世界上最大的去中心化存储网络;2.上传人类各种数据,并且开发大规模的数据的载入管道;3.将数据和计算相结合。
Filecoin已实现第一阶段并正在关注第二阶段,Filecoin正通过几个大的项目,来实现这个阶段的目标。今年年初全网大概有20pb的数据使用,而现在已升至185pb。此外,在第三阶段,Filecoin计划将在明年第一季度为Filecoin虚拟机引入可编程性从现在到明年的第一季度,Filecoin将会推出一系列的测试网,让很多团队可以基于测试网进行构建。Filecoin也在构建和以太坊虚拟机的兼容性,也就是说开发者可以直接调用以太坊FVM的合约,不需要做任何的变更,最多是改变一下部署路径,就可以去部署。Filecoin还有一个非常重要的维度,就是打造与其他区块链连接的跨链桥。[2022/9/21 7:11:14]
本文将着重总结和分析公证人机制的跨链桥所面临的一些具有共性的安全风险。
在了解公证人机制所面临的各类风险之前,我们需要先了解这种类型的方案从产品的角度来看,主要是什么样的设计逻辑。
这种方案从设计哲学的角度来说其实非常简单。当我们面向异构资产跨链的需求,最直观的方案其实是「映射」。映射的意思是当用户 A 将 ETH 从以太坊跨到 Fantom 上时。我们并不需要将资产实际转移,或者在 Fantom 上重新发行(这也做不到)。而是先将用户 A 的 ETH 存到一个不能移动的地址,然后根据存在这个地址中用户 A 的 ETH 数量,再在 Fantom 上发行对应的 1:1 的映射资产。映射资产代表了以太坊原链上那些 ETH 的使用权。因为有 1:1 的锚定,Fantom 上的用户也认可这个资产的价值。
DeFi期权协议Lyra宣布整合跨链桥HopProtocol:2月24日消息,DeFi期权协议Lyra宣布已将跨链桥HopProtocol整合入Lyra交易dApp,现用户已可以实现在dApp内将ETH从以太坊主网转到Optimism。Lyra表示将继续通过与Hop集成,尽快支持与Arbitrum和Polygon等其他L2的桥接,以及实现Stablecoin的桥接。[2022/2/24 10:13:05]
这里面会存在很多问题,其中最大的问题是多签钱包的管理问题,因为 ETH 从以太坊跨到 Fantom 上是充币,而如果用户 A 还想跨回来那就会涉及到提币的问题。
充币和提币的去中心化和安全性就成为了最大的难点。
1:谁来管钱?
2:谁来发起?
3:谁来监听交易?
4:怎么确认确实有用户转钱进来了?
5:怎么确认用户的钱确实是用户本人想提出去?
6:怎么防止重放攻击?
7:发起失败的交易怎么再次提交?
8:多签管理者作恶怎么办?
9:宕机怎么办?
不敢想,越想感觉越复杂。跨链桥的技术不仅仅涉及到多签,还涉及到资产发行,跨链监听,异步验证,甚至需要发行一个独立的中间共识层(一条新链)。
因此为了进一步简化用户的理解难度,我将整个跨链的流程分为充币和提币两个部分进行讲解。以帮助大家更进一步了解:
1:充币
Layer2互操作性协议Connext 与跨链协议Nomad 将在Cosmos生态链Evmos部署跨链桥:2月15日消息,Cosmos生态链Evmos宣布,Layer2互操作性协议Connext与跨链协议Nomad将把二者的跨链部署到Evmos。借助Nomad和Connext,机构和用户将能够在以太坊和Evmos生态系统之间进行交易和调用数据,这次部署将允许以太坊和其他EVM链的ERC-20代币在Evmo上可用,随后可以通过IBC在整个Cosmos生态系统中可用。[2022/2/15 9:52:47]
先声明一下,下图所画的流程只是我自己经过推演后的设计方案,没有经过仔细的论证,目的是为了探究设计逻辑中所可能出现的安全问题,并不可以作为成型的方案去采用,全是瞎扯。
如图所示:一笔从原链到目标链的充币交易原则上会包含这些步骤:
(1)用户充值到托管地址
(2)监听器监听到这笔交易后由 BP(共识节点也是多签管理员)发起交易
(3)合约验证 BP 签名的正确性
(4)是否有通过节点容错机制
(5)如果没有打回去,如果有的话根据映射地址的关系为目标链地址充值
(6)BP 确认这笔充值交易
(7)通过拜占庭后将映射代币转给用户在目标链上的地址
需要特别注意的是,这个流程旨在讨论通用的异构跨链,所以相比于 anyswap 等方案增加了一步在中间共识层上让用户绑定地址关系的步骤。这主要是不同异构链交易附带信息的方式不一样,为了统一处理,干脆先让用户绑定好映射关系。
YFI创始人AC:Fantom将向使用过Polygon等6个跨链桥的用户发送FTM代币:8月30日,YFI创始人Andre Cronje发推表示,智能合约平台Fantom将向使用过Anyswap桥、Polygon桥、Avalanche桥、Xdai桥、Ren Protocol桥及Connext桥的用户发送FTM代币,可用于支付费用。将于本周晚些时候进行快照。[2021/8/30 22:47:24]
如果处理的都是 EVM 链的交易则不需要这步,直接在发起交易时附带目标链地址即可。
回到正题:从上述的流程中可以看出,从第二步开始,就会遇到各类的逻辑验证问题,和不同情况下的处理问题。
主要的验证逻辑包括:
(1)监听到交易后对发起资产映射和转出到用户 A 的目标链交易的验证
(2)目标链交易的发起以及交易结果的验证
当然除了我流程中所画的验证逻辑之外,还应该包括对假币充值问题的校验,以及调用不同 token 时所需做的特殊处理问题。为了在后续更好的总结可能会出现的安全隐患,我们先继续来理解提币的流程。
2:提币
提币所演示的流程是目标链映射资产换回原链资产的逻辑,需要特别注意的是,当前很多代币都发现了多个链的版本,也就是说很多代币都在多个链上拥有原生代币。因此,一些桥的项目往往会设立资产池。在资金池充足的情况下,让用户感受不到 anyDAI 这样的映射资产的存在,而是直接换成目标链版本的 token,但这并不影响整体的逻辑。所以,分析继续:
Bluehelix Bridge(BBS)跨链桥Web页面正式上线:官方消息,Bluehelix Bridge(BBS)跨链桥Web页面正式上线,用户在成功链接钱包后,即可进行便捷安全的跨链操作。
据了解,Bluehelix?Bridge跨链桥目前已支持包Tron Network、DOGE、Heco、BSC等多条公链,以及 BTC、USDC、DAI、DOGE 等15种原生跨链资产,并且即将接入Cosmos、Solana等公链。
Bluehelix Bridge是基于MPC而非智能合约部署封装或发行任何新资产的去中心化跨链桥。其通过三层节点模型为高性能资产跨链的金融场景打造的密码学安全的去中心化私钥管理,支持任意资产的跨链流通,充分保障链上资产的安全。[2021/8/23 22:31:47]
如图所示:一笔从目标链提币到原链的交易流程如下:
(1)用户发起交易(转等量的映射资产到目标链上的托管钱包)
(2)验证 BP 身份,由某个 BP 发起提币请求
(3)确认提币权限和签名
(4)通过拜占庭后完成请求在原链提币,把钱从原链的托管钱包里转出来到用户 A
(5)如果这中间因为节点验证出错或者宕机等问题还要回滚重新发起
从上述流程可以看出,这里面涉及的主要验证逻辑有:
(1)发起和签名权限的验证
(2)问题出现后的容错机制
1:设计逻辑上的安全问题
较为仔细的了解了跨链桥的设计后,我们可以发现在设计逻辑上跨链桥面临的挑战非常多,总结一下主要包含三个方面的问题(相关的被盗案例标注在问题最后)
(1)?充币
a)?充币合约权限漏洞,导致充进去的钱直接被转走。这是一个几乎所有合约项目都会遇到的愚蠢的问题,
b)?假币充值问题,某些项目未对跨链 Token 的真实性做验证,导致 fakeTOKEN?->?realTOKEN(anyswap),说实话这个也有点蠢。
c)?假币充值问题,ETH 等原生资产不同于 ERC20 合约,很多攻击都是由于对 ETH 特殊处理不当,导致 fakeETH?->?realETH,这也是为什么 WETH 等 wrapped 资产流行的原因。(thorchain)
d)?不同的 Token 虽然都是 ERC20 标准,但具体的实现方式不一样,或者额外有别的逻辑(rebase,fallback 等),开发者没有在适配时做好调研,像(WETH、PERI、OMT、WBNB、MATIC、AVAX) 等在转账完成后还会去调用 sender 自定义的 fallback 函数做额外的操作,增加了跨链桥判断的复杂性?(anyswap?2022.1.18)
(2)?跨链消息转移
在 a 链充币完成后,到 b 链资产到账前,跨链桥的处理像是一个独立的区块链系统,即需要一个共识机制,一般用 dpos,以下都是假设用 dpos 的情况下需要考虑的问题,但我怀疑所有的节点都是项目方的,首先就具有中心化风险。
a)?充币消息监听,谁来第一个发起跨链处理提案,随机?还是轮流?还是按照中间共识层的出块顺序?
b)?多个公证人如何验证充币的正确性,倘若数据源都来自 infura 等数据提供商,则 infura 是一个单点风险,最稳妥的是各自维护节点,这样成本巨大。
c)?如何确认跨链处理完了(b 上到账了),没处理完有几种情况:
i.?跨链桥没有发起处理
ii.?跨链桥发起处理了,但是验证&共识没有通过
iii.?跨链桥验证通过,但没有在 b 链上发起交易
iv.?b 链上有交易,但失败了(资金不够或者别的情况)
(3)多重签名验证问题
问题多发的重灾区,大多数都是代码逻辑问题
a)?3/5 签名,我随便构造不在多签列表里的签名,也算+1(chainswap)。
b)?中心化问题,名义上是多签,其实掌握在项目方手中,巨大的中心化风险。
c)?签名验证方法,不同链上的开发模式不一样,导致开发者在对接的时候难免会有遗漏,wormhole 例子: solana 上的验证签名函数是系统合约里的一个函数, 正常应该去调用系统合约,系统合约的地址应该写死在代码里, 他们这里把系统合约地址是当做参数传进来的, 黑客提币时传了个假的系统合约地址,就绕过了验签,顺利把币提走。
(4)?退款
a)?如同(2)-c 中讨论的,跨链状态有很多种可能,在任何情况下都需要给用户提供一个退款的方式,比如 anyswap 在充币时会先在源链上给用户发 anyToken,然后再在目标链上给用户发 anyToken,然后把源链的 anyToken?burn 掉,这样的目的就是不管问题出在哪,用户都可以通过持有 anyToken 表示自己持有的资产。这个过程中有 3 条链(源、目标、跨链桥)和 4 个资产(源链和目标链上的原始 Token/anyToken),非常容易出现代码逻辑的问题。
b)?Thorchain 在 2021.7.23 爆出的漏洞,黑客利用代码逻辑问题,构造了一笔巨额假充值,跨链桥无法处理,就进入了退款逻辑,导致黑客拿到巨额退款。
2:其他的安全风险
但是通过逻辑流程所能展示的问题只是业务逻辑上的问题,并不是全部。
从安全的角度出发,我们还应该考虑另外三个方面的风险:
(1)系统性的风险
比如原链的充币一开始成功,后来回滚了,这是一个巨大的问题,v 神讨论过,资产从 Solana 跨到 Ethereum,跨链完成后 solana 回滚,则用户资产翻倍,没有任何解法。
但比如 rollup 这种和 Ethereum 共享安全性的 layer2,就不会有这种问题。
(2)前端的风险
a)?伪造的网址,比如 oxdao.fi 0xdao.fi oxdai.fi 等。
b)?Xss 攻击,即跨站脚本攻击,是一种代码注入攻击,比如www.xxxx.finance/?params=hackerscode12345, 虽然网址确实是官方网址,但是网址中携带了黑客的代码,如果前端开发没有注意防止 xss,则这段代码会在页面上执行,导致用户对黑客的转账交易授权签名,因此不要打开来历不明的链接。
c)?Cors 跨站服务攻击,在严格的同源策略中,浏览器只允许加载来自本站点的内容,即www.xxxx.finance站点显示的所有内容、调用的接口,都应该来自于 xxxx.finance 域名下,但目前绝大多数项目,都允许跨站调用,即 xxxx 前端可以调用 quickswap 的接口,反之亦然,这给开发上带来了便利,但也带来了风险:
假如我访问了 xxxx.finance,在浏览器缓存里存入了一些敏感数据,然后我访问了一个恶意网址,如果 xxxx 的同源策略没有限制,则这个恶意网址可以随意获取 xxxx 存在缓存中的数据。
(3)额外功能的风险
有些跨链桥项目,不止提供资产跨链,还提供跨链合约调用,这就带来了额外的复杂性。
攻击者在 a 链发起一笔对 b 链上 x 合约的调用,跨链桥不管 x 合约是啥就直接调用了,没想到 x 合约是跨链桥在 b 链上的多签合约,这笔调用是将多签账户改为攻击者自己的地址,执行成功后,黑客可以随意支配跨链桥在 b 链上的资金了(poly?network)。
1:本报告的目的在于帮助用户较为明确的理解跨链桥的安全风险所在,并非恶意的渲染跨链桥有多容易遭受攻击。
2:公证人机制的跨链桥方案至少从目前来看是体验最好,适用范围最广且成本最低的方案。并且任何产品都会经历从伤痕累累到成熟的过程,区块链产品所遭受的攻击往往都是「逻辑问题」。这些问题随着时间的推移和经验的增加一定会越来越好。
关于以太坊2.0我们已经聊过很多,从PoW同PoS的差异,到合并后矿工的归宿,都或多或少有所涉及。而近期,以太坊合并升级日被曝出(预计为9月19日),另一个问题也开始频繁进入人们的视线——即以太坊分叉问题.
1900/1/1 0:00:00Nova Labs 的物联网网络是加密货币世界中最伟大的成就之一。接下来,它正在追求一个更加大胆的目标:为 5G、WiFi、VPN、CDN 和其他网络提供基础设施.
1900/1/1 0:00:00作者:郭海惟 专栏介绍 在《web3:一场概念游戏》,我们讨论了将“可拥有”当作web3新技术愿景的核心,实际上是一种违背常识的荒谬文字游戏.
1900/1/1 0:00:001.DeFi代币总市值:501.28亿美元 DeFi总市值 数据来源:coingecko2.过去24小时去中心化交易所的交易量46.07亿美元 过去24小时去中心化交易所的交易量 数据来源:coingecko3.
1900/1/1 0:00:00在高科技企业云集的硅谷之地,“PayPal黑帮”已成为不可忽视的一股力量,在2002年被eBay收购后,虽然PayPal大部分早期员工都已“另辟江山”,但他们仍保持着密切联系.
1900/1/1 0:00:00Web3社区的未来,将基于钱包 来自:mirror 作者:Mirror开发团队0x9651 Web3内容平台Mirror在7月27日宣布推出Web3订阅服务,这项新功能允许读者使用钱包订阅任何在Mirror发布的最新内容.
1900/1/1 0:00:00