宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > ADA > 正文

跨链再被盗 产品角度深层解析跨链赛道设计逻辑

作者:

时间:1900/1/1 0:00:00

近期频发的跨链安全问题吸引市场的广泛关注,本文希望从产品设计的角度入手,给读者讲述为什么这个赛道的产品安全问题这么多。需要声明的是,文章中所指出的问题并不是每个项目都会存在的,大部分问题在设计时都已经有了相关的应对策略,目的主要还是希望更多人可以理解这个赛道的复杂程度。

让我们带你先了解通用的跨链桥都是怎么设计的,再告知这些跨链桥可能会遇到的安全问题。(推特/img/2022812171413/0.jpg" />

设计的难点

这里面会存在很多问题,其中最大的问题是多签钱包的管理问题,因为ETH从以太坊跨到Fantom上是充币,而如果用户A还想跨回来那就会涉及到提币的问题。

THORChain 发布路线图:将分 5 个阶段推出跨链聚合器:3月16日消息,去中心化跨链交易协议 THORChain 发布路线图,即将分阶段推出跨链聚合器、重新设计前端以及单边质押 vTHOR 。

据悉,THORChain 表示其聚合器将分 5 个阶段启动:

V1:实现以太坊长尾资产和 THORChain 上的原生资产(BTC、DOGE、LUNA、UST、BNB 等)之间跨链聚合;

V2:实现与 Terra 生态 AMM 交易所 Astroport 和 Terraswap 集成的 Terra 聚合器;

V3:聚合更多 EVM L1 和 L2 链(Avalanche、Fantom、Polygon、Arbitrum 等) ;

V4:聚合 Solana 长尾资产;

V5:聚合 IBC 资产。

此外,vTHOR THORSwap 聚合器将通过引入从交易费用中增值的 vTHOR(单边质押)来释放自己的激励机制,协议收入的 75% 将分配给 vTHOR 持有者,而不是收取交易费用。[2022/3/16 13:59:20]

充币和提币的去中心化和安全性就成为了最大的难点。

谁来管钱?

谁来发起?

谁来监听交易?

怎么确认确实有用户转钱进来了?

怎么确认用户的钱确实是用户本人想提出去?

怎么防止重放攻击?

发起失败的交易怎么再次提交?

多签管理者作恶怎么办?

宕机怎么办?

不敢想,越想感觉越复杂。跨链桥的技术不仅仅涉及到多签,还涉及到资产发行,跨链监听,异步验证,甚至需要发行一个独立的中间共识层(一条新链)。

Jump Crypto宣布已投入12万枚以太坊用于恢复Wormhole跨链桥资金:金色财经报道,Jump Crypto 宣布已投入 12 万枚以太坊以弥补 Wormhole 被盗损失,支持 Wormhole 继续发展。Jump Crypto 称相信多链的前景以及相信 Wormhole 是未来必不可少的基础设施,因此将继续支持 Wormhole,帮助其持续发展。

此前报道,跨链协议 Wormhole 于 2 月 3 日遭黑客攻击,经 Wormhole 官方确认,本次攻击事件中损失达 12 万枚 ETH。[2022/2/4 9:30:30]

因此为了进一步简化用户的理解难度,我将整个跨链的流程分为充币和提币两个部分进行讲解。以帮助大家更进一步了解。

充币

先声明一下,下图所画的流程只是我自己经过推演后的设计方案,没有经过仔细的论证,目的是为了探究设计逻辑中所可能出现的安全问题,并不可以作为成型的方案去采用,全是瞎扯。

如图所示:一笔从原链到目标链的充币交易原则上会包含这些步骤。

用户充值到托管地址

监听器监听到这笔交易后由BP(共识节点也是多签管理员)发起交易

合约验证BP签名的正确性

是否有通过节点容错机制

如果没有打回去,如果有的话根据映射地址的关系为目标链地址充值

BP确认这笔充值交易

通过拜占庭后将映射代币转给用户在目标链上的地址

Kava Labs公布跨链货币市场Harvest.io的提案:Kava Labs正式公布关于新产品“Harvest”的提案。Harvest.io是全球首个跨链货币市场。通过Harvest平台,用户可以用BTC、XRP、BNB、BUSD、KAVA和USDX等资产进行借贷和挖矿赚取收益。Harvest第一个版本提交时,会支持BTC、BNB、BUSD、USDX的供应方存币和HARD激励措施。第二个版本将为这些资产提供借贷功能以及针对贷方的借贷激励,并扩大HARD链上治理的范围。

根据发展路线图, 9月21日,Harvest v1测试网内部测试以及外部审计。10月15日,Harvest v1将随着Kava-4主网上线,HARD分配启动;BTC、BNB、HARD&USDX的流动性提供和HARD激励开始。12月30日,Harvest v2扩展Harvest治理。

HARD代币最大供应量为2亿,分配如下:对流动性提供者和借贷用户的激励(40%)、基金会(25%)、Kava Stakers(20%)、团队(10%),IEO(5%)。(Kava中文社区)[2020/9/19]

需要特别注意的是,这个流程旨在讨论通用的异构跨链,所以相比于anyswap等方案增加了一步在中间共识层上让用户绑定地址关系的步骤。这主要是不同异构链交易附带信息的方式不一样,为了统一处理,干脆先让用户绑定好映射关系。

如果处理的都是EVM链的交易则不需要这步,直接在发起交易时附带目标链地址即可。

回到正题,从上述的流程中可以看出,从第二步开始,就会遇到各类的逻辑验证问题,和不同情况下的处理问题。

主要的验证逻辑包括:

监听到交易后对发起资产映射和转出到用户A的目标链交易的验证

跨链DeFi协议Kava总锁定资产近2千万美元:据官方公告,跨链DeFi协议Kava CDP借贷平台已经达到了当前的抵押与借贷限额,锁定了1,000,000 BNB铸造了4,000,000 USDX。目前Kava锁定的资产总价值(TVL)为19,438,542美元。

Kava是一个支持多资产抵押的跨链DeFi协议,支持主流数字资产的抵押及稳定币贷款服务。[2020/7/27]

目标链交易的发起以及交易结果的验证

当然除了我流程中所画的验证逻辑之外,还应该包括对假币充值问题的校验,以及调用不同token时所需做的特殊处理问题。

为了在后续更好的总结可能会出现的安全隐患,我们先继续来理解提币的流程。

提币

提币所演示的流程是目标链映射资产换回原链资产的逻辑,需要特别注意的是,当前很多代币都发现了多个链的版本,也就是说很多代币都在多个链上拥有原生代币。因此,一些桥的项目往往会设立资产池。在资金池充足的情况下,让用户感受不到anyDAI这样的映射资产的存在,而是直接换成目标链版本的token,但这并不影响整体的逻辑。所以,分析继续.

如图所示,一笔从目标链提币到原链的交易流程如下:

用户发起交易(转等量的映射资产到目标链上的托管钱包)

验证BP身份,由某个BP发起提币请求

确认提币权限和签名

通过拜占庭后完成请求在原链提币,把钱从原链的托管钱包里转出来到用户A

如果这中间因为节点验证出错或者宕机等问题还要回滚重新发起

从上述流程可以看出,这里面涉及的主要验证逻辑有:

发起和签名权限的验证

问题出现后的容错机制

设计逻辑上的安全问题

较为仔细的了解了跨链桥的设计后,我们可以发现在设计逻辑上跨链桥面临的挑战非常多,总结一下主要包含三个方面的问题(相关的被盗案例标注在问题最后)

充币合约权限漏洞,导致充进去的钱直接被转走。这是一个几乎所有合约项目都会遇到的愚蠢的问题,

假币充值问题,某些项目未对跨链Token的真实性做验证,导致fakeTOKEN -> realTOKEN(anyswap),说实话这个也有点蠢。

假币充值问题,ETH等原生资产不同于ERC20合约,很多攻击都是由于对ETH特殊处理不当, 导致fakeETH -> realETH,这也是为什么WETH等wrapped资产流行的原因。(thorchain)

不同的Token虽然都是ERC20标准,但具体的实现方式不一样,或者额外有别的逻辑(rebase,fallback等),开发者没有在适配时做好调研,像(WETH、PERI、OMT、WBNB、MATIC、AVAX)等在转账完成后还会去调用sender自定义的fallback函数做额外的操作,增加了跨链桥判断的复杂性?(anyswap?2022.1.18)

跨链消息转移

在a链充币完成后,到b链资产到账前,跨链桥的处理像是一个独立的区块链系统,即需要一个共识机制,一般用dpos,以下都是假设用dpos的情况下需要考虑的问题,但我怀疑所有的节点都是项目方的,首先就具有中心化风险。

a)?充币消息监听,谁来第一个发起跨链处理提案,随机?还是轮流?还是按照中间共识层的出块顺序?

b)?多个公证人如何验证充币的正确性,倘若数据源都来自infura等数据提供商,则infura是一个单点风险,最稳妥的是各自维护节点,这样成本巨大。

c)?如何确认跨链处理完了(b到账了),没处理完有几种情况.

i.?跨链桥没有发起处理

ii.?跨链桥发起处理了,但是验证&共识没有通过

iii.?跨链桥验证通过,但没有在b链上发起交易

iv.?b链上有交易,但失败了(资金不够或者别的情况)

多重签名验证问题

问题多发的重灾区,大多数都是代码逻辑问题

3/5签名,我随便构造不在多签列表里的签名,也算+1(chainswap)。

中心化问题,名义上是多签,其实掌握在项目方手中,巨大的中心化风险

签名验证方法,不同链上的开发模式不一样,导致开发者在对接的时候难免会有遗漏,wormhole例子: solana上的验证签名函数是系统合约里的一个函数, 正常应该去调用系统合约,系统合约的地址应该写死在代码里, 他们这里把系统合约地址是当做参数传进来的, 黑客提币时传了个假的系统合约地址,就绕过了验签,顺利把币提走。

退款

a)?如同(2)-c中讨论的,跨链状态有很多种可能,在任何情况下都需要给用户提供一个退款的方式,比如anyswap在充币时会先在源链上给用户发anyToken,然后再在目标链上给用户发anyToken,然后把源链的anyToken burn掉,这样的目的就是不管问题出在哪,用户都可以通过持有anyToken表示自己持有的资产。这个过程中有3条链(源、目标、跨链桥)和4个资产(源链和目标链上的原始Token/anyToken),非常容易出现代码逻辑的问题。

b) Thorchain在2021.7.23爆出的漏洞,黑客利用代码逻辑问题,构造了一笔巨额假充值,跨链桥无法处理,就进入了退款逻辑,导致黑客拿到巨额退款。

其他的安全风险

但是通过逻辑流程所能展示的问题只是业务逻辑上的问题,并不是全部。

从安全的角度出发,我们还应该考虑另外三个方面的风险

系统性的风险

比如原链的充币一开始成功,后来回滚了,这是一个巨大的问题,v神讨论过,资产从Solana跨到Ethereum,跨链完成后solana回滚,则用户资产翻倍,没有任何解法。

但比如rollup这种和Ethereum共享安全性的layer2,就不会有这种问题。

前端的风险

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存在缓存中的数据。

额外功能的风险

有些跨链桥项目,不止提供资产跨链,还提供跨链合约调用,这就带来了额外的复杂性。

攻击者在a链发起一笔对b链上x合约的调用,跨链桥不管x合约是啥就直接调用了,没想到x合约是跨链桥在b链上的多签合约,这笔调用是将多签账户改为攻击者自己的地址,执行成功后,黑客可以随意支配跨链桥在b链上的资金了(poly network)。

1.本报告的目的在于帮助用户较为明确的理解跨链桥的安全风险所在,并非恶意的渲染跨链桥有多容易遭受攻击。

2.公证人机制的跨链桥方案至少从目前来看是体验最好,适用范围最广且成本最低的方案。并且任何产品都会经历从伤痕累累到成熟的过程,区块链产品所遭受的攻击往往都是“逻辑问题”。这些问题随着时间的推移和经验的增加一定会越来越好。

作者:0xOar

出品:Seer Labs

标签:TOKENTOKAVATOKETRAMSV1 TokenhaiwelltokenAVA价格ASIX Token

ADA热门资讯
从OpenSea遭钓鱼攻击浅析区块链黑客攻击手法

上月,国外知名NFT交易市场OpenSea遭遇了一场黑客攻击,攻击者窃取了大量NFT并售出套利,失窃的NFT涵盖BAYC、BAKC、MAYC、Azuki、Cool Cats、Doodles、Mfers等多种知名高价值系列.

1900/1/1 0:00:00
一场战争 扯掉了Web 3和NFT的遮羞布

2 月 24 日,俄罗斯和乌克兰的军事冲突正式爆发,在过去的一周里,俄罗斯除了要面对现实世界中军事和金融上的压力,还有来自互联网世界的「炮火」.

1900/1/1 0:00:00
Convex为何能超越MakerDAO:成为第二大DeFi项目

据 Footprint Analytics 统计,Curve 和 Convex 的 TVL 分别在 11 月和 12 月 双双超越曾经 DeFi 第一的 Aave.

1900/1/1 0:00:00
Web3创业者需要注意哪些?项目如何评估?

编译本文的主要目的: 从零到一建立一个创业项目,首先除了要验证关键假设和需求外,还需要面对如何打开市场,进行冷启动.

1900/1/1 0:00:00
什么是加密领域的成功领导?

虽然我之前曾表示不愿意在我的写作中探索领导力的实际概念,但与更聪明的朋友的对话总是让我开始思考——所以我们汇聚在这里。领导力是一个难以确定的问题,我不会依赖一些字典定义,甚至不会依赖强有力的历史例子(有很多这样的例子).

1900/1/1 0:00:00
晚间必读5篇 | 值得关注的Web3社交项目

1.金色观察 | 值得关注的Web3社交项目web2时代,作为内容生产者的用户无法分享其带给平台的价值,一直被人们诟病。而web3时代将改变这一点.

1900/1/1 0:00:00