内容概要
2022年6月24日,由Layer1公链Harmony开发的,以太坊与Harmony间的资产跨链桥Horizon遭到攻击,损失金额约为1亿美元。
这到底是怎么回事?
虽然黑客攻击发生的当天就能断定属于“公证人私钥被盗”,既然贵客点开,不妨来展开聊聊,放心,有少数硬核源码但全篇讲白话,通俗易懂!
跨链桥分类与技术原理
Horizon合约审计报告解读
被盗原因复盘分析与总结
1、跨链桥技术原理
跨链,顾名思义是不同区块链之间资产信息如何转移的问题,也称之为互操作性,而目前有超50种跨链解决方案,其方案定义是多种多样的。
《来自iosg-跨链桥方案一览,谁能汇聚多链流动性》
1.1、跨链方案有哪些?
概括来讲,要实现资产价值在另一条链上恒定,有两种大路径按”价格”锚定和按”物理”锚定
乍一听复杂,其实按价格锚定就是在各公链上的USDT这种稳定币,他与美元1:1锚定,因此也属于跨链资产的一种。
抛开各类稳定币更直观一种跨链方案则是物理锚定,即流动性总量是恒定的,其方案也很多,咱们重点讲公证人模式。
公证人模式依据”公证人是谁“有三种区分:
交易所做担保型:比如币安提币,各种买卖均在中心化交易所进行,提币才兑现
流动性池桥接型:比如bridge.connext,o3swap
Velo实验室副董事Beam:解读Velo收购Interstellar背后布局:金色财经报道,3月17日下午16:00,金色财经与欧易OKEx联合举办“金色财经对话Beam:解读Velo收购Interstellar背后布局“,邀请Velo 实验室副董事长 Tridbodi Arunanondchai(Beam)作为嘉宾讲述背后故事。
在直播中,Beam表示,Velo的目标是建立一个赋能传统银行商业并将其与最新的中心化和去中心化商业相链接的桥梁。
在谈及本次收购的原因时,Beam解释道,Velo与Stellar有着共同的目标和愿景,并且双方在能力上互相补充互相赋能。Interstellar团队在提供更快、更低廉以及更稳定的给予Stellar网络的跨境支付方案中有着极深厚的经验。因此彼此的融合是一个非常自然的选择。这次合并将使其成为行业里更强、更有影响力的团队。[2021/3/18 18:56:33]
合约锁定铸造型:各类官方桥通用方案polygon/arbitrum/avax/celer,以及今天的主角harmony
锁定铸造型由于产生的是包装代币,因此往往是各公链具有一定公信力的官方桥才采用。
以上均各有优缺,或是怕交易所跑路,或是流动性枯竭,或是公证人私钥被盗,目前并没有完美实现不可能三角的跨链方案出现。
如下图是o3swap的流动性总量和交易量趋势,近半年已然跌去90%,或许是因为去年8月的质押资产被盗案导致不断式微吧。
《流动性总量与交易量,来自o3swap官网》
动态 | BafeEx解读:欧洲央行对欧元稳定币态度较为乐观:1月3日,欧洲央行市场基础设施和支付总监Ulrich Bindseil发布了央行欧元稳定币CBDC工作总结。BafeEx交易所分析师Zoy表示,从文章来看,欧洲央行对欧元稳定币CBDC持较为乐观的态度,注意不是极度乐观。欧洲央行主要担心:1.金融脱媒(Disintermediation),储户和机构通过这种方式藏匿和转移欧元资产,规避欧洲央行监管;2.无法应对危机时期的银行的系统性建导(Facilitation)问题,即CBDC相对来说更难被央行调控。BafeEx分析师Zoy强调,CBDC的双层利率系统也许可以应对上述两个问题,CBDC得以顺利发行的可能性在逐渐提高。[2020/1/4]
1.2、Horizon桥的跨链原理
Harmony开发的Horizon桥是非常标准的公证人锁定铸造型。
为何锁定铸造可以被信任呢?
是由于区块链上的合约具有不可更改特性,如果不留后门的话,甚至一旦部署将无任何方式可以影响他的运作,正如无聊猿官方自己将所有权限转入0地址,放弃所有权后,无任何方式可以进一步铸造出新的猴子,其流动性总量将被锁死。
同理的,不同公链之间虽然合约不同,但如果在以太坊上用合约锁住10个ETH,在另一条公链上也以同样有公信力的合约,来释放10个wETH,这样一来其实全局上流动性是固定的,只要wETH可以随时转回以太坊并兑换得到ETH,那wETH就可以被认为是具有了ETH的等同价值。
因此其核心的操作就是
Lock-and-Mint:A链锁定代币流动性+B链发行等量的可流通包装代币
Burn-and-Release:B链销毁包装代币+A链解锁等量基础代币的流动性
声音 | 证券日报:应正视区块链信息服务备案编号的作用 不可过度解读:据证券日报4月2日报道,日前,国家互联网信息办公室官网发布公告,披露第一批共197个境内区块链信息服务名称及备案编号。值得注意的是,“备案编号”并不能看做是给区块链披上合法的“黄马甲”,应正确认识“备案编号”的作用。网信办表示,备案仅是对主体区块链信息服务相关情况的登记,不代表对其机构、产品和服务的认可,并强调,任何机构和个人不得用于任何商业目的。[2019/4/2]
公证人:负责发现A链Lock锁定事件后,去B链Mint铸造出锚定代币,转入目标地址。
Horizon桥的流程示意图,来自官方github
有锁定自然衡量各个跨链桥规模的最佳方式就是TVL,可以显著看到6.24之后,Horizon的TVL瞬间跌入谷底,当安全事故来临再多的TVL也就如流水一般,蜂拥而至也一哄而散。
Horizon链桥TVL图,来自dune
2、Horizon桥的合约审计报告解读
一次事故对很多Web3项目而言,做不到100%安全就基本等于0的价值,因此为了检查合约的安全性,一般会测试模拟多种攻击场景,通过checklist进行安全审查,以确保合约安全
开发或许几天而已,但要足够可靠则流程多且昂贵
今晚8点袁煜明将做客《金色讲堂》 深入解读“什么是区块链思维”:今晚20:00,火币区块链应用研究院院长袁煜明将做客《金色讲堂》深入解读“什么是区块链思维”。袁煜明将从股份制的种种弊端出发对区块链的出现给行业所带来的改变进行一一讲解。同时,袁煜明还会对区块链机制目前所存在的问题进行全方位的解读。详情请关注今晚8:00的《金色讲堂》。[2018/4/10]
审计报告的核心信息是:风险名称、漏洞描述、风险等级、安全建议、修复状态及审计结果等
而Horizon桥的合约审计报告是老牌审计公司PeckShield进行的,发现了5个漏洞风险
2.1、中低风险点1-兼容不足
是不是很难想象区区3行代码都能有bug?
其实锁定token的逻辑很简单,就是用户制定金额和目标地址,在授权代扣权限后,合约将USDT转入此合约锁定,并发出一个locked事件,让链下的公证人可以得知资产已经被锁定了。
但PeckShield审计发现LockToken锁定函数对通缩型token是不兼容的,用户传入的amount如果是100,自然Locked事件发出的是成功锁定100个
但是如果是”通缩型“的token呢?进行safeTransferFrom的过程中amount变少了怎么办?这就会出现锁仓额低于B链释放额的风险
可看前文:你买的NFT到底是什么?
《金色讲堂》今晚开讲 蔡维德将多角度为用户解读区块链行业:4月8日晚8:00国家特聘区块链专家蔡维德将在《金色讲堂》中对区块链发展方向进行深入解读,本次课程主题为“2018风向变了,区块链正式启航”。蔡教授将从监管、Token等方面对区块链进行全方位解读,详情请关注晚上8:00的《金色讲堂》。[2018/4/8]
标准协议中都会以虚函数为钩子的方法,在转移前后增加逻辑,有些token则可能在这里_beforeTokenTransfer增加交易损耗,从而控制流通量实现通缩。
当然harmony最后肯定是修改优化了,采用转移前后两次读取balance的方法来算出实际锁定额。
2.2、中低风险点2-异常锁定
还是这段代码,是不是很难想象区区3行代码不仅有BUG,而且有2个!
可看前文:你买的NFT到底是什么?
为了安全的Mint,其实标准协议是禁止向0地址mint的,如果lockToken的时候目的转入地址recipient填写为0地址,则会B链上铸造失败,造成锁入此合约但无跨链效果,如果此金库合约没有预留合适的转出方法则会永久锁定。
2.3、高风险点
铸造解锁等函数的调用者为单签账户
在原先程序里,Mint铸造资产unlock解锁释放,都是只能指定公证人进行。
这也正是本次中招的原因,harmony是最终将公证人改了多签钱包,但只不过只改成3个,其中2个私钥被盗就可以横行无忌。
PeckShield对Horizon桥的审计报告
怎么说呢,你说他改了吧总觉得有些敷衍,甚至黑客盗出资产的时候,harmony桥依旧在运作中,意味着他的私钥甚至是明文保存被黑客拷贝走的
3、黑客盗取过程
通过合约审计报告的解读可以发现,原来跨链公证人的权限如此之大,只有他可以进行铸造和释放,而黑客事件发生的时候,看他交易操作就能分辨出来被盗原因
区块链浏览器使用指南见:当我们在看Etherscan的时候,到底在看什么?
3.1、关键信息
攻击者钱包
wallet1:0x0d043128146654C7683Fbf30ac98D7B2285DeD00
wallet2:0x9E91ae672E7f7330Fc6B9bAb9C259BD94Cd08715
wallet3:0x58f4baccb411acef70a5f6dd174af7854fc48fa9
跨链桥相关地址
MultiSigWallet:0x715cdda5e9ad30a0ced14940f9997ee611496de6
ETH的金库地址:0xF9Fb1c508Ff49F78b60d3A96dea99Fa5d7F3A8A6
ERC20金库地址:0x2dccdb493827e15a5dc8f8b72147e6c4a5620857
被盗公证人地址:0x812d8622c6f3c45959439e7ede3c580da06f8f25
3.2、盗取过程分析
盗取13100个Ether,详情见交易Link
执行的是确认某个交易ID
公证人确认->等待确认的公证人数量达标->解锁金库资产转入目标地址
在多签合约合约代码里逻辑可以看出,这个函数会进行notConfirmed判断,因此只有系统之前设置过的公证人地址可以调用
后续会执行executeTransaction方法,再调用isConfirmed方法做判断,如果认证这笔交易的管理员数量达到2位,就会内部调用EthManager合约的unlockEth方法,最终将ETH发送至攻击者钱包。
至此很明显,除了私钥被盗,如此简单明了的合约不会有什么特别的犯错可能性了。
顺道看了下现在跨链桥的ETH金库的余额还有94个Eth,ERC20的金库还有30W刀的各类代币
4、思考总结
4.1、盗者会如何?
虽然马上harmony开出了100W美金,提出黑客归还资产并承诺不追究责任,但即使黑客归还且官方不追究也会有其他社会团队做公诉,因此黑客的最佳路线只有想尽一切办法为被盗资产脱敏。
截至6月29日,攻击者已将大约35,000个以太坊转移到TornadoCash,这是一种常见的混币器,虽然区块链是账本公开,任何交易均可被追踪,但是混币器犹如为100个人集合交易,并不能准确得出哪笔资金最终落到哪个人手里。
4.2、如何更安全?
harmony对多签的实现是每笔投票均上链,或许是出于成本的考虑所以他的公证人只有3位,当初的降本优化造成了满盘皆输
要优化可采用分布式托管的方法,托管给MPC(Multi-PartyComputation)公证人网络,不超过一定比例的节点同时作恶即可保证安全
即使公证人稀少也可以参考雪崩桥采用的SGX可信计算技术
AvalancheBridge:用英特尔SGX保护跨链资产
本质上还是对安全重要性的淡漠,在跨链桥的开源代码中写的执行计划,2年前就实现了可用的链桥,却迟迟不进一步优化。
引用:
iosg-跨链桥方案一览,谁能汇聚多链流动性
Horizon桥官方GIT:https://github.com/harmony-one/ethhmy-bridge
Horizon链桥TVL图:https://dune.com/queries/118245
盗取交易Link:
https://etherscan.io/tx/0x27981c7289c372e601c9475e5b5466310be18ed10b59d1ac840145f6e7804c97
《PeckShield对Horizon桥的审计报告》
https://docs.harmony.one/home/general/bridges/horizon-bridge/audit
《AvalancheBridge:用英特尔SGX保护跨链资产》
https://medium.com/avalancheavax/avalanche-bridge-secure-cross-chain-asset-transfers-using-intel-sgx-b04f5a4c7ad1
Tether需要在本月进行资本重组;Tether削减商业票据,提振USDT背后的国债;在其稳定币短暂失去与美元1:1挂钩的一周后,Tether的2022年第一季度保证报告显示.
毋庸置疑,如果给出一套激励措施,大多数人都会以相当理性的方式行事。重点是知道一个人的动机是什么,知道哪些变化会以一种可预测的方式推动行动。但往往,大众的选择会产生意想不到的结果.
据最新消息,截至6月6日,SUN.io上的2pool(USDD/USDT)LP矿池质押价值已突破4亿美元,APY高达21.84%.
据最新消息,6月21日,SUN.io上的2pool(USDD/USDT)矿池APY最高达45.49%,为全网最高。加入SUN.io2pool稳定币挖矿,即可享受丰厚的USDD+SUN双币奖励.
今天来聊聊StETH/ETH的事情,也就是交易对流动性即将耗尽。顾名思义,stETH是ETH上的质押版本,其目的就是为了保护合并后的ETH安全.
数字不会说谎。加密市场从2013年的17亿增加到今天的1.02万亿,经历了巨幅的成长,这在任何其他资产类别中所无法想像的。这些年来,越来越多的人一直在寻找最热门、最新的资产类别.