当前位置: 首页 > news >正文

从BNB遭黑客攻击(跨链桥BSC Token Hub遭到攻击),看公链中心化问题

文章目录

  • 从BNB遭黑客攻击(跨链桥BSC Token Hub遭到攻击),看公链中心化问题
    • 事件背景
      • 攻击过程
      • tendermint/iavl - tendermint官方多版本merkle树库实现
      • 官方修复
    • 从BSC被攻击看公链中心化问题
    • 参考

从BNB遭黑客攻击(跨链桥BSC Token Hub遭到攻击),看公链中心化问题

事件背景

2022年国庆节的最后一天(10月7日),赵长鹏推特发文称,跨链桥BSC Token Hub遭到攻击,导致了更多BNB被盗。币安已经要求所有验证者暂停BSC,BSC停链之前被跨链转移的资金规模据官方估计是7000-8000万美元(有分析称,攻击者已将约8950万美元攻击所得资金转移至其他链,约58%的资金转移至以太坊,约33%转移至Fantom,约4.5%转移至Arbitrum。Tether研究员Eden Au表示,攻击者通过跨链桥、借贷和互换其他资产。Tether已将地址列入黑名单。)。

总结:BNB遭黑客攻击(跨链桥BSC Token Hub遭到攻击),链上首次出块被叫停~

链上数据显示,BNB Chain BSC Token Hub(代币中心)系统合约被分两次提取200万枚BNB,约合5.6亿美元。
币安创始人赵长鹏对外表示,目前的损失约1亿美元。
在这里插入图片描述
Paradigm研究员samczsun分析,攻击者伪造了信息,通过了BSC跨链桥的验证,使跨链桥向攻击者地址发送了200万枚BNB。

BSC公链早期冠名Binance(币安)Smart Chain,币安曾参与币安链和币安智能链BSC,前者在2019年4月上线,曾主要开设去中心化交易所Binance Dex;后者在2020年9月上线,支持智能合约编写功能。2022年2月,币安发布消息,原币安智能链(BSC)将更名为BNB Chain。

BSC作为公开的智能合约链,外部项目均可在其上开发,大量项目与币安无关。

BSC Token Hub is the bridge between BNB Beacon Chain (BEP2) and BNB Chain (BEP20 or BSC).
BSC Token Hub是BNB信标链(BEP2)和BNB Chain(BEP20或BSC)之间的跨链桥。

总结:
1,攻击方式:BSC跨链桥的验证方式存在漏洞,攻击者通过伪造信息盗取200万枚BNB
2,当前情况:目前暂时拔网线,理论上目前BSC上跑出去eth和ftm链上的差不多1亿美金。
3,处理方式:已拔网线。
4,节点升级,恢复,最新修复版本v1.1.15

攻击过程

bsc链官方源码: https://github.com/bnb-chain/bsc

BNBChain 遭攻击超5亿美金:时间轴梳理与原因解析
参考URL: https://www.163.com/dy/article/HJ2T8JFC05248UCQ.html

北京时间 2022 年 10 月 7 号 00:55 分黑客于区块高度 21955968 通过调用合约 0x0000000000000000000000000000000000001006(BSC: Relayer Hub) 缴纳 100 BNB 注册成为 Relayer。

02:26 分黑客于区块高度 21957793 通过调用合约 0x0000000000000000000000000000000000002000(BSC: Cross Chain) 发起攻击,攻击获利 100 万 BNB。

04:43 分黑客于区块高度 21960470 通过调用合约 0x0000000000000000000000000000000000002000(BSC: Cross Chain) 再度发起攻击,攻击再次获利 100 万 BNB。

黑客从 BNB Chain Token Hub 系统合约分两次共获取(凭空铸造)了 200 万枚 BNB,并将其中 90 万枚 BNB 在 BNB Chain 上借贷协议 Venus 进行抵押,借出 6250 万 BUSD、5000 万 USDT、3500 万 USDC。

关于BSC被攻击:

  1. 源头发生在BNB官方桥,其中一笔交易 https://bscscan.com/tx/0xebf83628ba893d35b496121fb8201666b8e09f3cbadf0e269162baa72efe3b8b…
  2. 黑客凭空在BSC链上铸造了数百万BNB
  3. 通过Stargate / Venus / Pancakeswap / … 兑换成各种资产,然后跨链到其他网络混合资金洗钱
  4. BSC节点已全部暂停,但已跨链出的资产属于黑客绝对控制状态

黑客通过BNB官方桥凭空铸造的BNB并不属于任何机构或者个人,所以这里并没有直接的受害者…但别高兴,这不是个好事,因为这意味着,「所有BSC上的资产持有人」都是受害者!因为黑客用「假币」换走了大家的「真资产」。和这次最类似的是wormhole被黑,在Sol出现大量假ETH。

目前这次攻击源头异乎寻常,并不是单纯的跨链桥合约被攻击这么简单。因为攻击者使用的区块是一个2年前的区块https://bscscan.com/tx/0x785c11458dd14a2a607ebd03cc6a64df28f34459d52cc0a4ce35329c152a899c… 那么问题就是BSC的验证者为什么会通过验证?是BSC的交易验证机制有漏洞么?

攻击源头,黑客伪造了一笔交易骗过了链上预编译合约的IAVL树验证机制,让Binance Bridge信以为真了。

tendermint/iavl - tendermint官方多版本merkle树库实现

Merkle Tree开源项目合集
参考URL: https://zhuanlan.zhihu.com/p/109390551

Merkle树是一种可以有效验证部分数据存在于指定数据集并且未被篡改的高效的哈希树结构,作为一种底层技术广泛应用在各种区块链的实现当中,对于商品溯源、知识产权确认、区块链公证等区块链应用起着重要的作用。

merkle树开源实现,tendermint/iavl - tendermint官方多版本merkle树库实现
iavl是tendermint官方提供的多版本merkle+avl树实现,采用leveldb作为后端存储层。
官方github: https://github.com/cosmos/iavl

问题在于,BSC的Light客户端实际上并未证明IAVL。它只是序列化所有commitinfo。这是一个挑剔的漏洞。Cosmos-SDK实际上更改了此之前,然后再切换到ICS23,但BSC只是ctr+v’d此代码
github: https://github.com/cosmos/cosmos-sdk/commit/cd272d525ae2cf244c53433b6eb1e835783d7531

总结:
BNB used IAVL for verification…
@cosmoshub (and friends) use ICS23 for #IBC proof verification

官方修复

博链财经BroadChain获悉,10月7日,BNB Chain称,BNB Smart Chain(BSC)网络已经恢复运行。
网络验证者正在确认其状态,社区基础设施也正在升级。
BscScan数据显示,BNB Chain网络已恢复出块。

此前,BNB Chain称,已发布BSC V1.1.15版本,要求所有节点运营者尝试升级至该版本。

官方发布:https://twitter.com/BNBCHAIN/status/1578249467362308097
更新📢BSC验证者正在协调一个小时内带回BNB智能链(BSC),最新版本https://github.com/bnb-chain/bsc/releases/tag/tag/v1.1.1.15
节点升级,恢复,最新修复版本v1.1.15

BSC v1.1.15 is a hot fix and hard-fork release. The hard-fork height is 21962149.
In this release, several blacklist addresses are prohibited for further transactions due to the exploit.

BSC v1.1.15是一个热修复和硬分叉发布。链高度为21962149。
在此版本中,由于利用而禁止几个黑名单地址进行进一步交易。

代码主要是更新了黑名单+暂停机制。另外,Native cross-chain communication between BNB Beacon Chain and BNB Smart Chain is disabled,把桥禁用了。

从BSC被攻击看公链中心化问题

此次事件,看到有人网上这样说:

说个笑话:bsc暂停了。区块链可以被一键关机。

其实,这里我要说的是,BSC本身就是“中心化”公链,因为BSC基本是由币安的中心化节点运营,如果你想从BSC链上拿出资产,就必须要经过币安验证审核。也许这不够去中心化,但另一个角度也代表着,黑客的钱也跑不出去。

举个例子,2021年2月份,币安上的头部借贷平台Venus被空气币用质押的方式借走了价值1 亿美元的比特币及以太坊等资产,耍的好一手空手套白狼。但事情发生7个小时后,币安追回了这笔资产,目前Venus运营状况依旧良好。

很多人想当然觉得锁定在BSC上的黑客资产肯定跑不掉(理论上节点有一致共识是可以回滚交易、拉黑地址)。但是这里,有一个问题:把BSC放到一个尴尬的处境:回滚或停机意味着太中心化,不这么做则眼睁睁看着黑客卷走巨款。

其实,依据个人理解,其实都是没有真正去中心化的东西,所谓去中心化,更多目的是共识和信任,大家的对去中心化的信任支撑。其实很多人不是在意中心化,而是在意自己的资产是否自己可控、是否安全。如果谁能保证中心化不作恶,为什么大家不选择中心化的东西呢?

我们不能,一边享受着中心化的便捷与高效,一边吐槽着中心化。同时更不能使用所谓的去中心化,作为不负责任和跑路的遮羞布!

就是因为大家对中心的这种不太信任,才有了去中心化的需求。 说到底其实是信任问题- -!

去年bsc上的qubit被盗时,近亿资金的bnb和busd等待跨链,黑客等了两天,受害者们反复苦苦哀求币安东冻结黑客地址,币安义正严辞的答复:bsc是去中心化的。结果被害者眼睁睁看着自己的资金一笔笔被从容跨链转出。 今天同样的事发生,也是近亿资金,只因是币安自家的,几分钟内可以让所有节点叫停。

CZ:BSC是绝对去中心化的。(当其它项目钱被盗时)
CZ:我们已经让所有验证者暂停BSC。(当币安自己钱被盗时)

如上案例,虽然两者事件有一定区别,一个项目本身漏洞,一个底层基础设施漏洞。我们没法直接说币安做的是否正确,但是也许对于币安这种老牌的、大家比较信任的平台来说,他有能力避免第一事件进一步发展,但事不关己,高高挂起的方式(之前项目被盗,很多人请求币安找回冻结,那时候可是“去中心化”的)。或许这才是引发我们思考的主要问题,而不是bsc到底是不是去中心化的?🤡

参考

币安被盗数百亿!分秒内所有节点叫停!双标操作看呆眼!
参考URL: https://www.163.com/dy/article/HJ33EEI005530FXT.html
参考URL: https://twitter.com/icuke
参考URL: https://twitter.com/JoeAbbey/status/1578188831857074181
BNB遭黑客攻击,链上首次出块被叫停!
参考URL: https://www.163.com/dy/article/HJ3EGNHI0553XAPU.html

相关文章:

  • 【多线程实践】一、为何使用多线程三种线程创建方式利弊分析
  • LIFELONG LEARNING WITH DYNAMICALLY EXPANDABLE NETWORKS论文阅读+代码解析
  • 计算机网络——集线器与交换机
  • 用通俗易懂的方式讲解:CatBoost 算法原理及案例
  • 系统架构演变和SpringCloud的定义:
  • 后端必会的前端vue基础知识
  • VGG16 - 咖啡豆识别
  • 2022.10.7 英语背诵
  • 『Android』什么是Service
  • 【Windows核心编程+第一个内核程序】爆肝120小时整理-80%程序员最欠缺的能力,一半以上研究生毕业了还不懂?理解各种深度技术的基本功
  • 【微信小程序】事件传参与数据同步
  • Android移动应用开发之Fragment
  • 分类评估方法-召回率、ROC与AUC
  • 《高性能MySQL》第五章:创建高性能的索引
  • 【HTML】常用标签TWO~
  • 【译】理解JavaScript:new 关键字
  • co模块的前端实现
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • k8s如何管理Pod
  • learning koa2.x
  • ViewService——一种保证客户端与服务端同步的方法
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 前端性能优化——回流与重绘
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何在GitHub上创建个人博客
  • Hibernate主键生成策略及选择
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #Linux(Source Insight安装及工程建立)
  • $$$$GB2312-80区位编码表$$$$
  • (1)Android开发优化---------UI优化
  • (2)nginx 安装、启停
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (算法)N皇后问题
  • (学习日记)2024.02.29:UCOSIII第二节
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转载)从 Java 代码到 Java 堆
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Core中Emit的使用
  • .NET gRPC 和RESTful简单对比
  • .Net MVC4 上传大文件,并保存表单
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • @Pointcut 使用
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [383] 赎金信 js
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [AR]Vumark(下一代条形码)
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)