剖析BCH硬分叉:采用“钱包分离法”彻底根除重放攻击风险
摘要: 由于 BCH 分叉为 ABC 和 SV 后,两条新分叉后的支链,地址、私钥、签名规则、交易格式都相同,因此存在被重放攻击的风险。
(图片来自Cryptovest)
北京时间10月16日,自02:16块高度556767起,以比特大陆和蚂蚁矿池为首的BCH ABC 阵营(代表人物吴忌寒)和以 CoinGeek 及 nChain 为首的 BCH SV阵营(代表人物 Craig Steve Wright,即澳本聪)正式宣告分家,分叉为 BCH ABC 和 BCH SV 两条独立的公链。
这场被业界广泛关注的 BCH 分叉算力之战,并没有出现一开始假想的51%算力攻击,双方在算力、出块速度上你追我赶,各自独立运行,暂时 ABC 链保持领先,SV 紧追其后。表面上看似波澜不惊,实则却暗流涌动。由于 BCH 分叉为 ABC 和 SV 后,两条新分叉后的支链,地址、私钥、签名规则、交易格式都相同,因此存在被重放攻击的风险。
何为重放攻击,简而言之是指,A 在 ABC 公链上向 B 发出了一个交易请求(把ABC 转给 B ),B 可以在 SV 链上重放 A 发出的请求(索取与 ABC 等量的SV),结果是,A 只向 B 发出了一次交易请求(转出 ABC ),B 却可以同时获得属于 A 的两份资产(ABC+SV),这样以来,B(攻击者)就非法侵占了A原本预期转账之外的额外资产,造成A在数字资产上的损失。
在此前区块链历史上的多次硬分叉,都存在因缺乏重放保护功能而出现的重放攻击事件,此次 BCH 硬分叉后,外网也已经报道出现了重放攻击个例。
据区块链安全公司 PeckShield 态势感知平台数据显示:11月16日,即 BCH 硬分叉后的当天,BCH ABC 和 BCH SV 两条链上存在341,068笔重放交易;11月18日,在受到不明巨量粉尘攻击的影响下,BCH ABC 和 BCH SV 两条链上的重放交易数高达1,409,055次,达到了百万级。图一为 BCH ABC 和 SV 链上硬分叉后,每小时被重放的交易次数。
然而,在如此巨量重放交易存在的情况下,ABC 和 SV 公链并没有出台全链层面的重放保护功能,来保障用户资产不受重放攻击的威胁。且各大交易所开始逐渐恢复 BCH 交易和存取币,而任何交易行为都存在潜在被重放攻击的可能。
当务之急,在重放保护功能出台前,交易所和一般用户该如何保障自身的数字资产不受侵害呢?
(图一:BCH ABC 和 SV 链上硬分叉后每小时被重放的交易次数)
PeckShield 安全人员经过周密分析并实测认为:可采用“钱包分离法”来解除风险,也就是用户应该将 ABC 和 SV 资产分离到不同钱包地址,具体操作有以下三种:
1. 无掺加地址分离:在 ABC 和 SV 链上分别生成一个不同的地址,然后把原BCH 地址中 ABC 和 SV 币分别转到这两个地址中。这两个交易确认成功后,新地址中的数字资产就不会再遭受重放攻击。据了解,有些 SV 节点在把 SV 的交易重放到 ABC 链上,所以我们建议先发起 ABC 链的交易,确认后再发起SV链交易。
2. 掺加 Input 疫苗:在发起一个 ABC/SV 交易时,在 input 中加入一个只存在于ABC/SV 链的小额 UTXO,使得这个交易在另一个链上是非法交易,无法重放。这个小额的 UTXO 可以由第三方服务商生成转发给用户,也可以自己产生。
3. 掺加特殊 OP Code:ABC 链和 SV 链都有独有的 OP code,所以可以把它们加入交易中,达到 类似于第二种方法的效果。在 ABC 链的交易中可以加入 OP_CHECKDATASIG,SV 链可以加 OP_MUL。
PeckShield 认为只要彻底做到钱包分离,且分离过程不受干扰,就可以确保资产不再受重放攻击困扰。当然,为了强化各个处理方法的高效、牢靠,可以组合叠加使用。PeckShield 建议一般 BCH 持有者可以采用简单容易操作的第二种方法。对于交易所而言,因存在更大规模的交易量和复杂地址,可以叠加使用第一种+第二种或第一种+第三种方法来确保安全。PeckShield 也已和各大交易所建立联系,并尝试用各类有效方法,帮助用户解除存在的重放攻击风险。
(作者:PeckShield,内容来自链得得内容开放平台“得得号”;本文仅代表作者观点,不代表链得得官方立场)
评论(0)
Oh! no
您是否确认要删除该条评论吗?