BCH硬分叉背后: “重放攻击”下的用户自救指南

SECBIT Labs 安比技术社区 2018-11-16 18:48

11月16日凌晨2:16分,BCH在第556767个块高度发生硬分叉,分叉大战落下帷幕,分成了BCH ABC和BCH SV两个阵营。

Image

在此次硬分叉中,BCH ABC和BCH SV双方都没有进行“重放保护”。也就是说,此次分叉后,用户资产被暴露于风险之中,且理论上,重放攻击将有可能导致任何一方发生共识崩塌和算力归零。

何为“重放攻击”

Image

传统计算机术语中,重放攻击(Replay Attacks)又称重播攻击/回放攻击,是指攻击者发送一个目的主机已接收过的数据包,来达到欺骗系统的目的,是计算机世界黑客常用的攻击方式之一。主要用于身份认证过程,以破坏认证准确性。

虽然重放攻击在任何网络过程中都有发生的风险,但在涉及金融、支付等核心的数字货币和区块链领域,这个风险显得更加严重,尤其在区块链硬分叉中,它将导致一条链上的交易在另一条链上也合法。


举个简单例子说明一下区块链中的“重放攻击”及其影响:

小A向某个不能有效识别付款(这里指不能判断是哪一笔付款)的啤酒厂买啤酒,当他把用支付宝成功付款的付款信息出示给销售员后, 销售员把啤酒给他; 然后小A又再把上次的付款信息出示给另一个销售员, 销售员又给他一份啤酒; 只要小A不断重复出示他的付款信息,就可以源源不断骗得啤酒;于啤酒厂而言就是被重放攻击了,损失了无数啤酒。

就本次BCH硬分叉来说,BCH由一条链变成了两条链,在这两条链都得到支持并持续运营的情况下,BCH ABC和BCH SV两类资产都存在。

由于没有做重放保护,分叉完了之后如果不去管它,任其自然生长,就会出现这样的情况:你在SV链上交易后,由于相同的地址、算法和交易格式,拿到ABC链上去重新广播,就有可能会被ABC链承认有效,从而进行相同的交易操作。倘若攻击者利用这一漏洞,不断在交易所进行充提BCH SV操作, 就能获取额外的BCH ABC。

可见,没有重放保护的BCH用户资产已经被暴露于风险之中,并且,一旦发生重放攻击等安全问题,社区为安全所做的共识和努力就会崩塌


还记得那年以太坊的“重放攻击”吗?

这种重放攻击的风险就曾在以太坊身上发生过。

2016年7月20日晚,以太坊在第192万个区块高度发生了硬分叉,产生了ETH chain和ETH Classic chain两条链,ETH和ETC两类代币。

这两条链上的地址、私钥算法及交易格式完全相同,导致在其中一条链上的交易在另一条链上也很可能合法。

由于事先未做预案,很多人利用这个漏洞,不断在交易所进行ETH充提操作,获取额外的ETC,于是 “重放攻击”得以在区块链世界被重新定义

目前为止,ETH和ETC的用户依然存在重放攻击的风险。因为ETH和ETC都有很好的经济量,而用户如果无法解决掉自己的操作被重放的可能,他想卖其中一个资产的同时保留另一个资产,要么自行进行分离,要么就只能在交易所的协助下才能实现了。


普通用户抗重放之策
先分离 再交易

由于BCH在没有重放保护的前提下已经发生分叉,被重放显然无法避免。

那么我们且看一下BCH升级后的两个版本:Bitcoin ABC0.18.2和Bitcoin SV 0.1。

ABC0.18.2版本主要修改是增加了两个操作码OPcode, OP_CHECKDATASIG (CDS)和OP_CHECKDATASIGVERIFY(DSV);将区块里的交易排序规则从拓扑排序(TTOR)改成了规范排序(CTOR)。

SV0.1版本主要修改是恢复了比特币早期的四个操作码OPCode,OP_MUL,OP_LSHIFT,OP_RSHIFT,OP_INVERT;删除每个脚本201个操作码的限制;提高区块大小上限到128MB。

由于双方的版本都更新了操作码,对于已持有BCH的交易所和用户而言,为避免遭受损失,在使用新的 OP code(两类币对应的客户端)进行交易操作之前,有必要对所持有的BCH ABC或BCH SV进行分离

怎么分离呢?

一个最简单有效又一劳永逸的办法是:在分裂点后100个区块(待链稳定下来),获取一些来自分叉后新产生的Coinbase交易的UTXO,发到自己的BCH钱包里,然后将所有余额一次性转入一个新地址。只需要在一条链上这么做一次,就可以彻底分离出来了。

引用只存在于一条链上的UTXO之后,即使交易被人重放到另外一条链上,也会因为交易的输入(vin)有问题而打包失败,从而避免重放攻击。

分离两种资产后,你就可以使用新的OPCode了,就不会出现因被重放而导致新OPCode在BCH链上有安全隐患的情况。

最后,安比实验室特此提醒BCH持有者和支持ABC/BSV的交易所,在分离自身或交易所用户的BSV之前,为避免重放造成损失,在交易中谨慎使用新的OPCode(尽量不要使用相关币种新版钱包新功能)。


往期回顾

Image Fomo3D 千万大奖获得者“特殊攻击技巧”最全揭露


Image 智能合约史上最大规模攻击手法曝光,盘点黑客团伙作案细节


Image 构造形式化证明,解决智能合约安全问题——你的合约亟待证明


Image 是谁控制了比特币,是你?还是钱包?——BTC地址与交易原理大剖析


本文由安比(SECBIT)实验室提供,安比实验室致力于解决区块链全生态安全问题,共建共识、可信、有序的区块链经济体。

Image


安比(SECBIT)实验室

info@secbit.io


Scan to Follow