重放

重放

听说1W个BCH不安全?好像是媒体过度解读了

攻略45qu 发表了文章 • 2018-11-18 17:44 • 来自相关话题

争吵、分歧、意见不合,

各种偏见交织在人生中的每一丝纤维之中。

————伍尔夫《到灯塔去》



BCH硬分叉引发的种种质疑和争议,不亚于币圈核爆炸。

11月16日凌晨,虽然BCH在第556767个区块高度完成硬分叉,分成了BCH ABC和BCH SV两条链,但这场世纪之战并没有因此落下帷幕,反而愈演愈烈。

今日,有媒体将矛头指向BCH存在重大安全威胁,这对于熊市本就如履薄冰的“观战者”们无异于又一颗深水炸弹。

根据PeckShield态势感知平台数据显示,BCH硬分叉后的当天,共有341068笔重放交易同时存在于ABC和SV两条链上,涉及10080个BCH。

更有国外用户爆料称,在交易过程中遭到了小额重放攻击损失。

BCH开发团队第一时间接受45区(ID:block-45)采访时否认这样的指控,称设计了input污染法和构造特有操作码交易两种方法来防止重放攻击,钱包和交易所安全交易可以选择input污染法。

这无疑是一场被专业名词占领的争论,令“观战者”更加如堕云雾。


被质疑的重放攻击是什么?

澄清中提到的input污染法又是什么?

BCH究竟安全吗?


1 质疑


重放攻击是黑客常用的一种攻击方式,在计算机世界,是指攻击者重复发送一个目的主机已经接受过的信息来达到欺骗目的。

我们可以这样生动理解。

想象一下,某个商店发放了限量的二维码优惠券,只要出示优惠券扫码,即能享受优惠。但这个商店却没有辨别某张券是否被扫过的能力,这时,是不是有人就会利用这个漏洞,重复使用同一张券?

现在,“这家商店”来到了区块链世界。

以BCH为例,即便分叉成两条链,但ABC链和SV链仍然共享着分叉时点以前的相同区块数据,这也是为什么分叉后,用户会凭空拥有了另一条链上的资产。

但同样的原因也会导致资产的凭空流失。质疑者们认为,如果在ABC链上发生了分叉前的老资产的转移,那么,这条交易信息有可能会被攻击者放到SV链上广播。

而分叉后的两条链又是完全独立的,因此SV链并不认为这笔交易已经被记录过,相反会认为完全合法,交易同样会被SV链的矿工打包到区块中,造成SV链上的资产损失。

如果客户端升级时加入了重放攻击保护,就可以避免这类情况发生,但此次BCH客户端升级,双方都没有加入重放攻击保护,这也正是安全漏洞之说的由来。


2 回应


面对这种质疑,今天,BCH社区开发团队对45区(ID:block-45)表示:“交易所和钱包并没有开放充提,所以交易的人是知道的,应该没有问题。大量的交易是因为分叉当晚CSW制造了粉尘交易。”

开发团队还表示:“可以肯定的是,并没有发生大量的重放现象,是极少见的,全世界都知道BCH在算力战,能够有这种行为的用户都可以确定币是安全的。”

而对于这次BCH硬分叉面临的重放攻击,该团队称仍然有防范措施,可以通过input污染法和构造特有操作码交易两种方法来防范。对于钱包和交易所来说,可以选择Input污染法。

一位圈内技术人士对45区(ID:block-45)解读,input污染法中的“input”指的是交易输入。一个BCH的交易结构中,有交易输入和交易输出。

“交易输入就是资金的来源,它引用的是之前已有交易的输出,而交易输出指的是资金的去向,即资金转给了谁。”他这样解释。

“如果矿工在验证交易时,发现交易输入所引用的交易是非法时,那么这条交易自然也会因资金“来路不正”而被认为是非法的。”

据45区(ID:block-45)了解,input污染法正是利用了这一点。

BCH分叉后,ABC和SV两条链新产生的区块数据独立,因此,ABC链上新发行的币,即产生的coinbase交易,在本链上被认为是合法的,但是在SV链上是非法的。

BCH社区开发团队表示,input污染法可以将本链上的coinbase交易划分出大量的小额交易输出,用户通过交易所或者钱包提取ABC链上的资产时,可以构造一笔交易,将新产生的小额输出也作为这笔交易输入,构造在其中。

如此一来,这条交易信息即便在SV链上重新广播时,矿工会因为存在的这笔非法小额输入而认为整笔交易非法,相当于这笔交易被污染了,“污染源”就是这些小额输入。

这样,也就完成了链上资产的永远分离,避免了资产损失。

在回应者眼中,此次安全质疑完全是媒体过度解读的结果。

BCH当下成为万众瞩目的聚焦中心,这场战役造成的波波“余震”恐怕还会继续。 查看全部
bch.jpg


争吵、分歧、意见不合,

各种偏见交织在人生中的每一丝纤维之中。

————伍尔夫《到灯塔去》




BCH硬分叉引发的种种质疑和争议,不亚于币圈核爆炸。

11月16日凌晨,虽然BCH在第556767个区块高度完成硬分叉,分成了BCH ABC和BCH SV两条链,但这场世纪之战并没有因此落下帷幕,反而愈演愈烈。

今日,有媒体将矛头指向BCH存在重大安全威胁,这对于熊市本就如履薄冰的“观战者”们无异于又一颗深水炸弹。

根据PeckShield态势感知平台数据显示,BCH硬分叉后的当天,共有341068笔重放交易同时存在于ABC和SV两条链上,涉及10080个BCH。

更有国外用户爆料称,在交易过程中遭到了小额重放攻击损失。

BCH开发团队第一时间接受45区(ID:block-45)采访时否认这样的指控,称设计了input污染法和构造特有操作码交易两种方法来防止重放攻击,钱包和交易所安全交易可以选择input污染法。

这无疑是一场被专业名词占领的争论,令“观战者”更加如堕云雾。


被质疑的重放攻击是什么?

澄清中提到的input污染法又是什么?

BCH究竟安全吗?



1 质疑


重放攻击是黑客常用的一种攻击方式,在计算机世界,是指攻击者重复发送一个目的主机已经接受过的信息来达到欺骗目的。

我们可以这样生动理解。

想象一下,某个商店发放了限量的二维码优惠券,只要出示优惠券扫码,即能享受优惠。但这个商店却没有辨别某张券是否被扫过的能力,这时,是不是有人就会利用这个漏洞,重复使用同一张券?

现在,“这家商店”来到了区块链世界。

以BCH为例,即便分叉成两条链,但ABC链和SV链仍然共享着分叉时点以前的相同区块数据,这也是为什么分叉后,用户会凭空拥有了另一条链上的资产。

但同样的原因也会导致资产的凭空流失。质疑者们认为,如果在ABC链上发生了分叉前的老资产的转移,那么,这条交易信息有可能会被攻击者放到SV链上广播。

而分叉后的两条链又是完全独立的,因此SV链并不认为这笔交易已经被记录过,相反会认为完全合法,交易同样会被SV链的矿工打包到区块中,造成SV链上的资产损失。

如果客户端升级时加入了重放攻击保护,就可以避免这类情况发生,但此次BCH客户端升级,双方都没有加入重放攻击保护,这也正是安全漏洞之说的由来。


2 回应


面对这种质疑,今天,BCH社区开发团队对45区(ID:block-45)表示:“交易所和钱包并没有开放充提,所以交易的人是知道的,应该没有问题。大量的交易是因为分叉当晚CSW制造了粉尘交易。”

开发团队还表示:“可以肯定的是,并没有发生大量的重放现象,是极少见的,全世界都知道BCH在算力战,能够有这种行为的用户都可以确定币是安全的。”

而对于这次BCH硬分叉面临的重放攻击,该团队称仍然有防范措施,可以通过input污染法和构造特有操作码交易两种方法来防范。对于钱包和交易所来说,可以选择Input污染法。

一位圈内技术人士对45区(ID:block-45)解读,input污染法中的“input”指的是交易输入。一个BCH的交易结构中,有交易输入和交易输出。

“交易输入就是资金的来源,它引用的是之前已有交易的输出,而交易输出指的是资金的去向,即资金转给了谁。”他这样解释。

“如果矿工在验证交易时,发现交易输入所引用的交易是非法时,那么这条交易自然也会因资金“来路不正”而被认为是非法的。”

据45区(ID:block-45)了解,input污染法正是利用了这一点。

BCH分叉后,ABC和SV两条链新产生的区块数据独立,因此,ABC链上新发行的币,即产生的coinbase交易,在本链上被认为是合法的,但是在SV链上是非法的。

BCH社区开发团队表示,input污染法可以将本链上的coinbase交易划分出大量的小额交易输出,用户通过交易所或者钱包提取ABC链上的资产时,可以构造一笔交易,将新产生的小额输出也作为这笔交易输入,构造在其中。

如此一来,这条交易信息即便在SV链上重新广播时,矿工会因为存在的这笔非法小额输入而认为整笔交易非法,相当于这笔交易被污染了,“污染源”就是这些小额输入。

这样,也就完成了链上资产的永远分离,避免了资产损失。

在回应者眼中,此次安全质疑完全是媒体过度解读的结果。

BCH当下成为万众瞩目的聚焦中心,这场战役造成的波波“余震”恐怕还会继续。

BCH 分叉后的钱包解决方案

攻略slowmist 发表了文章 • 2018-11-18 10:10 • 来自相关话题

昨天凌晨 BCH 分叉为两条链:BCH 和 BCHSV,我们持续做着相关风险监测,也注意到相关交易所/钱包暂停了充提。由于分叉后的两条链没做重放保护,可能导致一条链上发起的交易,在另一条链上做重放攻击,造成相关对象的财产损失(依实际攻击场景而定)。

在无重放保护的情况下,分离这两种链上资产的方法,目前社区的解决方法主要有如下两个:


1. input 污染法


原理是引入了一笔非法交易的输出作为输入,那么这笔非法交易的输入将会使得这笔交易也会变为非法。

例如:

一笔交易广播到了 BCHSV 链中,引用了非法交易(在 BCH 合法,在 BCHSV 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCHSV 链承认,那么这笔交易就被重放免疫了;对应的,一笔交易广播到了 BCH 链中,引用了非法交易(在 BCHSV 合法,在 BCH 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCH 链承认,那么这笔交易就被重放免疫了。


2. 构造特有操作码交易


两条链的共识是有差别的,如果出构造一个本链合法,对方链上不合法的交易也可以进行分离,本次分叉双方的共识差别也体现在操作码上,可以在 BCH 链中,构造含有 OP_CHECKDATASIG 的输出,那么该笔交易在 BCH 上是合法的,但在 BCHSV 上是不合法的;同理在 BCHSV 链中,构造含有 OP_MUL 的输出,那么该笔交易在 BCHSV 上是合法的,但在 BCH 上是不合法的。

结合社区的方式及交易所相关工程实践经验,我们推荐使用第 1 种 input 污染法,但这需要有分叉后的 BCH 或 BCHSV 的 coinbase 交易(创币交易) UTXO 作为污染源,从这个 coinbase 交易中可以划分大量的小额 output,在用户提现时,可以将这些小额的 output 作为新交易的 input 之一来构建提现交易,从而较方便地完成分离。

另外,从工程实践上,我们也建议充提币的确认数可以适当提高,虽然目前来看两条分叉链未发生明显的攻击情况。

对于普通用户来说,等着先,不着急。


相关资料:

可行的钱包重放免疫实现方法:

https://bch.club/index.php?app=team&mod=Forum&act=detail&topic_id=685&team_id=1


哥白尼团队提供的开源工具,有效分离 BCH 和 BCHSV 两条链:

https://github.com/copernet/tools/tree/master/hardfork 查看全部
bch.jpg

昨天凌晨 BCH 分叉为两条链:BCH 和 BCHSV,我们持续做着相关风险监测,也注意到相关交易所/钱包暂停了充提。由于分叉后的两条链没做重放保护,可能导致一条链上发起的交易,在另一条链上做重放攻击,造成相关对象的财产损失(依实际攻击场景而定)。

在无重放保护的情况下,分离这两种链上资产的方法,目前社区的解决方法主要有如下两个:


1. input 污染法


原理是引入了一笔非法交易的输出作为输入,那么这笔非法交易的输入将会使得这笔交易也会变为非法。

例如:

一笔交易广播到了 BCHSV 链中,引用了非法交易(在 BCH 合法,在 BCHSV 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCHSV 链承认,那么这笔交易就被重放免疫了;对应的,一笔交易广播到了 BCH 链中,引用了非法交易(在 BCHSV 合法,在 BCH 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCH 链承认,那么这笔交易就被重放免疫了。


2. 构造特有操作码交易


两条链的共识是有差别的,如果出构造一个本链合法,对方链上不合法的交易也可以进行分离,本次分叉双方的共识差别也体现在操作码上,可以在 BCH 链中,构造含有 OP_CHECKDATASIG 的输出,那么该笔交易在 BCH 上是合法的,但在 BCHSV 上是不合法的;同理在 BCHSV 链中,构造含有 OP_MUL 的输出,那么该笔交易在 BCHSV 上是合法的,但在 BCH 上是不合法的。

结合社区的方式及交易所相关工程实践经验,我们推荐使用第 1 种 input 污染法,但这需要有分叉后的 BCH 或 BCHSV 的 coinbase 交易(创币交易) UTXO 作为污染源,从这个 coinbase 交易中可以划分大量的小额 output,在用户提现时,可以将这些小额的 output 作为新交易的 input 之一来构建提现交易,从而较方便地完成分离。

另外,从工程实践上,我们也建议充提币的确认数可以适当提高,虽然目前来看两条分叉链未发生明显的攻击情况。

对于普通用户来说,等着先,不着急。


相关资料:

可行的钱包重放免疫实现方法:

https://bch.club/index.php?app=team&mod=Forum&act=detail&topic_id=685&team_id=1


哥白尼团队提供的开源工具,有效分离 BCH 和 BCHSV 两条链:

https://github.com/copernet/tools/tree/master/hardfork

听说1W个BCH不安全?好像是媒体过度解读了

攻略45qu 发表了文章 • 2018-11-18 17:44 • 来自相关话题

争吵、分歧、意见不合,

各种偏见交织在人生中的每一丝纤维之中。

————伍尔夫《到灯塔去》



BCH硬分叉引发的种种质疑和争议,不亚于币圈核爆炸。

11月16日凌晨,虽然BCH在第556767个区块高度完成硬分叉,分成了BCH ABC和BCH SV两条链,但这场世纪之战并没有因此落下帷幕,反而愈演愈烈。

今日,有媒体将矛头指向BCH存在重大安全威胁,这对于熊市本就如履薄冰的“观战者”们无异于又一颗深水炸弹。

根据PeckShield态势感知平台数据显示,BCH硬分叉后的当天,共有341068笔重放交易同时存在于ABC和SV两条链上,涉及10080个BCH。

更有国外用户爆料称,在交易过程中遭到了小额重放攻击损失。

BCH开发团队第一时间接受45区(ID:block-45)采访时否认这样的指控,称设计了input污染法和构造特有操作码交易两种方法来防止重放攻击,钱包和交易所安全交易可以选择input污染法。

这无疑是一场被专业名词占领的争论,令“观战者”更加如堕云雾。


被质疑的重放攻击是什么?

澄清中提到的input污染法又是什么?

BCH究竟安全吗?


1 质疑


重放攻击是黑客常用的一种攻击方式,在计算机世界,是指攻击者重复发送一个目的主机已经接受过的信息来达到欺骗目的。

我们可以这样生动理解。

想象一下,某个商店发放了限量的二维码优惠券,只要出示优惠券扫码,即能享受优惠。但这个商店却没有辨别某张券是否被扫过的能力,这时,是不是有人就会利用这个漏洞,重复使用同一张券?

现在,“这家商店”来到了区块链世界。

以BCH为例,即便分叉成两条链,但ABC链和SV链仍然共享着分叉时点以前的相同区块数据,这也是为什么分叉后,用户会凭空拥有了另一条链上的资产。

但同样的原因也会导致资产的凭空流失。质疑者们认为,如果在ABC链上发生了分叉前的老资产的转移,那么,这条交易信息有可能会被攻击者放到SV链上广播。

而分叉后的两条链又是完全独立的,因此SV链并不认为这笔交易已经被记录过,相反会认为完全合法,交易同样会被SV链的矿工打包到区块中,造成SV链上的资产损失。

如果客户端升级时加入了重放攻击保护,就可以避免这类情况发生,但此次BCH客户端升级,双方都没有加入重放攻击保护,这也正是安全漏洞之说的由来。


2 回应


面对这种质疑,今天,BCH社区开发团队对45区(ID:block-45)表示:“交易所和钱包并没有开放充提,所以交易的人是知道的,应该没有问题。大量的交易是因为分叉当晚CSW制造了粉尘交易。”

开发团队还表示:“可以肯定的是,并没有发生大量的重放现象,是极少见的,全世界都知道BCH在算力战,能够有这种行为的用户都可以确定币是安全的。”

而对于这次BCH硬分叉面临的重放攻击,该团队称仍然有防范措施,可以通过input污染法和构造特有操作码交易两种方法来防范。对于钱包和交易所来说,可以选择Input污染法。

一位圈内技术人士对45区(ID:block-45)解读,input污染法中的“input”指的是交易输入。一个BCH的交易结构中,有交易输入和交易输出。

“交易输入就是资金的来源,它引用的是之前已有交易的输出,而交易输出指的是资金的去向,即资金转给了谁。”他这样解释。

“如果矿工在验证交易时,发现交易输入所引用的交易是非法时,那么这条交易自然也会因资金“来路不正”而被认为是非法的。”

据45区(ID:block-45)了解,input污染法正是利用了这一点。

BCH分叉后,ABC和SV两条链新产生的区块数据独立,因此,ABC链上新发行的币,即产生的coinbase交易,在本链上被认为是合法的,但是在SV链上是非法的。

BCH社区开发团队表示,input污染法可以将本链上的coinbase交易划分出大量的小额交易输出,用户通过交易所或者钱包提取ABC链上的资产时,可以构造一笔交易,将新产生的小额输出也作为这笔交易输入,构造在其中。

如此一来,这条交易信息即便在SV链上重新广播时,矿工会因为存在的这笔非法小额输入而认为整笔交易非法,相当于这笔交易被污染了,“污染源”就是这些小额输入。

这样,也就完成了链上资产的永远分离,避免了资产损失。

在回应者眼中,此次安全质疑完全是媒体过度解读的结果。

BCH当下成为万众瞩目的聚焦中心,这场战役造成的波波“余震”恐怕还会继续。 查看全部
bch.jpg


争吵、分歧、意见不合,

各种偏见交织在人生中的每一丝纤维之中。

————伍尔夫《到灯塔去》




BCH硬分叉引发的种种质疑和争议,不亚于币圈核爆炸。

11月16日凌晨,虽然BCH在第556767个区块高度完成硬分叉,分成了BCH ABC和BCH SV两条链,但这场世纪之战并没有因此落下帷幕,反而愈演愈烈。

今日,有媒体将矛头指向BCH存在重大安全威胁,这对于熊市本就如履薄冰的“观战者”们无异于又一颗深水炸弹。

根据PeckShield态势感知平台数据显示,BCH硬分叉后的当天,共有341068笔重放交易同时存在于ABC和SV两条链上,涉及10080个BCH。

更有国外用户爆料称,在交易过程中遭到了小额重放攻击损失。

BCH开发团队第一时间接受45区(ID:block-45)采访时否认这样的指控,称设计了input污染法和构造特有操作码交易两种方法来防止重放攻击,钱包和交易所安全交易可以选择input污染法。

这无疑是一场被专业名词占领的争论,令“观战者”更加如堕云雾。


被质疑的重放攻击是什么?

澄清中提到的input污染法又是什么?

BCH究竟安全吗?



1 质疑


重放攻击是黑客常用的一种攻击方式,在计算机世界,是指攻击者重复发送一个目的主机已经接受过的信息来达到欺骗目的。

我们可以这样生动理解。

想象一下,某个商店发放了限量的二维码优惠券,只要出示优惠券扫码,即能享受优惠。但这个商店却没有辨别某张券是否被扫过的能力,这时,是不是有人就会利用这个漏洞,重复使用同一张券?

现在,“这家商店”来到了区块链世界。

以BCH为例,即便分叉成两条链,但ABC链和SV链仍然共享着分叉时点以前的相同区块数据,这也是为什么分叉后,用户会凭空拥有了另一条链上的资产。

但同样的原因也会导致资产的凭空流失。质疑者们认为,如果在ABC链上发生了分叉前的老资产的转移,那么,这条交易信息有可能会被攻击者放到SV链上广播。

而分叉后的两条链又是完全独立的,因此SV链并不认为这笔交易已经被记录过,相反会认为完全合法,交易同样会被SV链的矿工打包到区块中,造成SV链上的资产损失。

如果客户端升级时加入了重放攻击保护,就可以避免这类情况发生,但此次BCH客户端升级,双方都没有加入重放攻击保护,这也正是安全漏洞之说的由来。


2 回应


面对这种质疑,今天,BCH社区开发团队对45区(ID:block-45)表示:“交易所和钱包并没有开放充提,所以交易的人是知道的,应该没有问题。大量的交易是因为分叉当晚CSW制造了粉尘交易。”

开发团队还表示:“可以肯定的是,并没有发生大量的重放现象,是极少见的,全世界都知道BCH在算力战,能够有这种行为的用户都可以确定币是安全的。”

而对于这次BCH硬分叉面临的重放攻击,该团队称仍然有防范措施,可以通过input污染法和构造特有操作码交易两种方法来防范。对于钱包和交易所来说,可以选择Input污染法。

一位圈内技术人士对45区(ID:block-45)解读,input污染法中的“input”指的是交易输入。一个BCH的交易结构中,有交易输入和交易输出。

“交易输入就是资金的来源,它引用的是之前已有交易的输出,而交易输出指的是资金的去向,即资金转给了谁。”他这样解释。

“如果矿工在验证交易时,发现交易输入所引用的交易是非法时,那么这条交易自然也会因资金“来路不正”而被认为是非法的。”

据45区(ID:block-45)了解,input污染法正是利用了这一点。

BCH分叉后,ABC和SV两条链新产生的区块数据独立,因此,ABC链上新发行的币,即产生的coinbase交易,在本链上被认为是合法的,但是在SV链上是非法的。

BCH社区开发团队表示,input污染法可以将本链上的coinbase交易划分出大量的小额交易输出,用户通过交易所或者钱包提取ABC链上的资产时,可以构造一笔交易,将新产生的小额输出也作为这笔交易输入,构造在其中。

如此一来,这条交易信息即便在SV链上重新广播时,矿工会因为存在的这笔非法小额输入而认为整笔交易非法,相当于这笔交易被污染了,“污染源”就是这些小额输入。

这样,也就完成了链上资产的永远分离,避免了资产损失。

在回应者眼中,此次安全质疑完全是媒体过度解读的结果。

BCH当下成为万众瞩目的聚焦中心,这场战役造成的波波“余震”恐怕还会继续。

BCH 分叉后的钱包解决方案

攻略slowmist 发表了文章 • 2018-11-18 10:10 • 来自相关话题

昨天凌晨 BCH 分叉为两条链:BCH 和 BCHSV,我们持续做着相关风险监测,也注意到相关交易所/钱包暂停了充提。由于分叉后的两条链没做重放保护,可能导致一条链上发起的交易,在另一条链上做重放攻击,造成相关对象的财产损失(依实际攻击场景而定)。

在无重放保护的情况下,分离这两种链上资产的方法,目前社区的解决方法主要有如下两个:


1. input 污染法


原理是引入了一笔非法交易的输出作为输入,那么这笔非法交易的输入将会使得这笔交易也会变为非法。

例如:

一笔交易广播到了 BCHSV 链中,引用了非法交易(在 BCH 合法,在 BCHSV 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCHSV 链承认,那么这笔交易就被重放免疫了;对应的,一笔交易广播到了 BCH 链中,引用了非法交易(在 BCHSV 合法,在 BCH 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCH 链承认,那么这笔交易就被重放免疫了。


2. 构造特有操作码交易


两条链的共识是有差别的,如果出构造一个本链合法,对方链上不合法的交易也可以进行分离,本次分叉双方的共识差别也体现在操作码上,可以在 BCH 链中,构造含有 OP_CHECKDATASIG 的输出,那么该笔交易在 BCH 上是合法的,但在 BCHSV 上是不合法的;同理在 BCHSV 链中,构造含有 OP_MUL 的输出,那么该笔交易在 BCHSV 上是合法的,但在 BCH 上是不合法的。

结合社区的方式及交易所相关工程实践经验,我们推荐使用第 1 种 input 污染法,但这需要有分叉后的 BCH 或 BCHSV 的 coinbase 交易(创币交易) UTXO 作为污染源,从这个 coinbase 交易中可以划分大量的小额 output,在用户提现时,可以将这些小额的 output 作为新交易的 input 之一来构建提现交易,从而较方便地完成分离。

另外,从工程实践上,我们也建议充提币的确认数可以适当提高,虽然目前来看两条分叉链未发生明显的攻击情况。

对于普通用户来说,等着先,不着急。


相关资料:

可行的钱包重放免疫实现方法:

https://bch.club/index.php?app=team&mod=Forum&act=detail&topic_id=685&team_id=1


哥白尼团队提供的开源工具,有效分离 BCH 和 BCHSV 两条链:

https://github.com/copernet/tools/tree/master/hardfork 查看全部
bch.jpg

昨天凌晨 BCH 分叉为两条链:BCH 和 BCHSV,我们持续做着相关风险监测,也注意到相关交易所/钱包暂停了充提。由于分叉后的两条链没做重放保护,可能导致一条链上发起的交易,在另一条链上做重放攻击,造成相关对象的财产损失(依实际攻击场景而定)。

在无重放保护的情况下,分离这两种链上资产的方法,目前社区的解决方法主要有如下两个:


1. input 污染法


原理是引入了一笔非法交易的输出作为输入,那么这笔非法交易的输入将会使得这笔交易也会变为非法。

例如:

一笔交易广播到了 BCHSV 链中,引用了非法交易(在 BCH 合法,在 BCHSV 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCHSV 链承认,那么这笔交易就被重放免疫了;对应的,一笔交易广播到了 BCH 链中,引用了非法交易(在 BCHSV 合法,在 BCH 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCH 链承认,那么这笔交易就被重放免疫了。


2. 构造特有操作码交易


两条链的共识是有差别的,如果出构造一个本链合法,对方链上不合法的交易也可以进行分离,本次分叉双方的共识差别也体现在操作码上,可以在 BCH 链中,构造含有 OP_CHECKDATASIG 的输出,那么该笔交易在 BCH 上是合法的,但在 BCHSV 上是不合法的;同理在 BCHSV 链中,构造含有 OP_MUL 的输出,那么该笔交易在 BCHSV 上是合法的,但在 BCH 上是不合法的。

结合社区的方式及交易所相关工程实践经验,我们推荐使用第 1 种 input 污染法,但这需要有分叉后的 BCH 或 BCHSV 的 coinbase 交易(创币交易) UTXO 作为污染源,从这个 coinbase 交易中可以划分大量的小额 output,在用户提现时,可以将这些小额的 output 作为新交易的 input 之一来构建提现交易,从而较方便地完成分离。

另外,从工程实践上,我们也建议充提币的确认数可以适当提高,虽然目前来看两条分叉链未发生明显的攻击情况。

对于普通用户来说,等着先,不着急。


相关资料:

可行的钱包重放免疫实现方法:

https://bch.club/index.php?app=team&mod=Forum&act=detail&topic_id=685&team_id=1


哥白尼团队提供的开源工具,有效分离 BCH 和 BCHSV 两条链:

https://github.com/copernet/tools/tree/master/hardfork

听说1W个BCH不安全?好像是媒体过度解读了

攻略45qu 发表了文章 • 2018-11-18 17:44 • 来自相关话题

争吵、分歧、意见不合,

各种偏见交织在人生中的每一丝纤维之中。

————伍尔夫《到灯塔去》



BCH硬分叉引发的种种质疑和争议,不亚于币圈核爆炸。

11月16日凌晨,虽然BCH在第556767个区块高度完成硬分叉,分成了BCH ABC和BCH SV两条链,但这场世纪之战并没有因此落下帷幕,反而愈演愈烈。

今日,有媒体将矛头指向BCH存在重大安全威胁,这对于熊市本就如履薄冰的“观战者”们无异于又一颗深水炸弹。

根据PeckShield态势感知平台数据显示,BCH硬分叉后的当天,共有341068笔重放交易同时存在于ABC和SV两条链上,涉及10080个BCH。

更有国外用户爆料称,在交易过程中遭到了小额重放攻击损失。

BCH开发团队第一时间接受45区(ID:block-45)采访时否认这样的指控,称设计了input污染法和构造特有操作码交易两种方法来防止重放攻击,钱包和交易所安全交易可以选择input污染法。

这无疑是一场被专业名词占领的争论,令“观战者”更加如堕云雾。


被质疑的重放攻击是什么?

澄清中提到的input污染法又是什么?

BCH究竟安全吗?


1 质疑


重放攻击是黑客常用的一种攻击方式,在计算机世界,是指攻击者重复发送一个目的主机已经接受过的信息来达到欺骗目的。

我们可以这样生动理解。

想象一下,某个商店发放了限量的二维码优惠券,只要出示优惠券扫码,即能享受优惠。但这个商店却没有辨别某张券是否被扫过的能力,这时,是不是有人就会利用这个漏洞,重复使用同一张券?

现在,“这家商店”来到了区块链世界。

以BCH为例,即便分叉成两条链,但ABC链和SV链仍然共享着分叉时点以前的相同区块数据,这也是为什么分叉后,用户会凭空拥有了另一条链上的资产。

但同样的原因也会导致资产的凭空流失。质疑者们认为,如果在ABC链上发生了分叉前的老资产的转移,那么,这条交易信息有可能会被攻击者放到SV链上广播。

而分叉后的两条链又是完全独立的,因此SV链并不认为这笔交易已经被记录过,相反会认为完全合法,交易同样会被SV链的矿工打包到区块中,造成SV链上的资产损失。

如果客户端升级时加入了重放攻击保护,就可以避免这类情况发生,但此次BCH客户端升级,双方都没有加入重放攻击保护,这也正是安全漏洞之说的由来。


2 回应


面对这种质疑,今天,BCH社区开发团队对45区(ID:block-45)表示:“交易所和钱包并没有开放充提,所以交易的人是知道的,应该没有问题。大量的交易是因为分叉当晚CSW制造了粉尘交易。”

开发团队还表示:“可以肯定的是,并没有发生大量的重放现象,是极少见的,全世界都知道BCH在算力战,能够有这种行为的用户都可以确定币是安全的。”

而对于这次BCH硬分叉面临的重放攻击,该团队称仍然有防范措施,可以通过input污染法和构造特有操作码交易两种方法来防范。对于钱包和交易所来说,可以选择Input污染法。

一位圈内技术人士对45区(ID:block-45)解读,input污染法中的“input”指的是交易输入。一个BCH的交易结构中,有交易输入和交易输出。

“交易输入就是资金的来源,它引用的是之前已有交易的输出,而交易输出指的是资金的去向,即资金转给了谁。”他这样解释。

“如果矿工在验证交易时,发现交易输入所引用的交易是非法时,那么这条交易自然也会因资金“来路不正”而被认为是非法的。”

据45区(ID:block-45)了解,input污染法正是利用了这一点。

BCH分叉后,ABC和SV两条链新产生的区块数据独立,因此,ABC链上新发行的币,即产生的coinbase交易,在本链上被认为是合法的,但是在SV链上是非法的。

BCH社区开发团队表示,input污染法可以将本链上的coinbase交易划分出大量的小额交易输出,用户通过交易所或者钱包提取ABC链上的资产时,可以构造一笔交易,将新产生的小额输出也作为这笔交易输入,构造在其中。

如此一来,这条交易信息即便在SV链上重新广播时,矿工会因为存在的这笔非法小额输入而认为整笔交易非法,相当于这笔交易被污染了,“污染源”就是这些小额输入。

这样,也就完成了链上资产的永远分离,避免了资产损失。

在回应者眼中,此次安全质疑完全是媒体过度解读的结果。

BCH当下成为万众瞩目的聚焦中心,这场战役造成的波波“余震”恐怕还会继续。 查看全部
bch.jpg


争吵、分歧、意见不合,

各种偏见交织在人生中的每一丝纤维之中。

————伍尔夫《到灯塔去》




BCH硬分叉引发的种种质疑和争议,不亚于币圈核爆炸。

11月16日凌晨,虽然BCH在第556767个区块高度完成硬分叉,分成了BCH ABC和BCH SV两条链,但这场世纪之战并没有因此落下帷幕,反而愈演愈烈。

今日,有媒体将矛头指向BCH存在重大安全威胁,这对于熊市本就如履薄冰的“观战者”们无异于又一颗深水炸弹。

根据PeckShield态势感知平台数据显示,BCH硬分叉后的当天,共有341068笔重放交易同时存在于ABC和SV两条链上,涉及10080个BCH。

更有国外用户爆料称,在交易过程中遭到了小额重放攻击损失。

BCH开发团队第一时间接受45区(ID:block-45)采访时否认这样的指控,称设计了input污染法和构造特有操作码交易两种方法来防止重放攻击,钱包和交易所安全交易可以选择input污染法。

这无疑是一场被专业名词占领的争论,令“观战者”更加如堕云雾。


被质疑的重放攻击是什么?

澄清中提到的input污染法又是什么?

BCH究竟安全吗?



1 质疑


重放攻击是黑客常用的一种攻击方式,在计算机世界,是指攻击者重复发送一个目的主机已经接受过的信息来达到欺骗目的。

我们可以这样生动理解。

想象一下,某个商店发放了限量的二维码优惠券,只要出示优惠券扫码,即能享受优惠。但这个商店却没有辨别某张券是否被扫过的能力,这时,是不是有人就会利用这个漏洞,重复使用同一张券?

现在,“这家商店”来到了区块链世界。

以BCH为例,即便分叉成两条链,但ABC链和SV链仍然共享着分叉时点以前的相同区块数据,这也是为什么分叉后,用户会凭空拥有了另一条链上的资产。

但同样的原因也会导致资产的凭空流失。质疑者们认为,如果在ABC链上发生了分叉前的老资产的转移,那么,这条交易信息有可能会被攻击者放到SV链上广播。

而分叉后的两条链又是完全独立的,因此SV链并不认为这笔交易已经被记录过,相反会认为完全合法,交易同样会被SV链的矿工打包到区块中,造成SV链上的资产损失。

如果客户端升级时加入了重放攻击保护,就可以避免这类情况发生,但此次BCH客户端升级,双方都没有加入重放攻击保护,这也正是安全漏洞之说的由来。


2 回应


面对这种质疑,今天,BCH社区开发团队对45区(ID:block-45)表示:“交易所和钱包并没有开放充提,所以交易的人是知道的,应该没有问题。大量的交易是因为分叉当晚CSW制造了粉尘交易。”

开发团队还表示:“可以肯定的是,并没有发生大量的重放现象,是极少见的,全世界都知道BCH在算力战,能够有这种行为的用户都可以确定币是安全的。”

而对于这次BCH硬分叉面临的重放攻击,该团队称仍然有防范措施,可以通过input污染法和构造特有操作码交易两种方法来防范。对于钱包和交易所来说,可以选择Input污染法。

一位圈内技术人士对45区(ID:block-45)解读,input污染法中的“input”指的是交易输入。一个BCH的交易结构中,有交易输入和交易输出。

“交易输入就是资金的来源,它引用的是之前已有交易的输出,而交易输出指的是资金的去向,即资金转给了谁。”他这样解释。

“如果矿工在验证交易时,发现交易输入所引用的交易是非法时,那么这条交易自然也会因资金“来路不正”而被认为是非法的。”

据45区(ID:block-45)了解,input污染法正是利用了这一点。

BCH分叉后,ABC和SV两条链新产生的区块数据独立,因此,ABC链上新发行的币,即产生的coinbase交易,在本链上被认为是合法的,但是在SV链上是非法的。

BCH社区开发团队表示,input污染法可以将本链上的coinbase交易划分出大量的小额交易输出,用户通过交易所或者钱包提取ABC链上的资产时,可以构造一笔交易,将新产生的小额输出也作为这笔交易输入,构造在其中。

如此一来,这条交易信息即便在SV链上重新广播时,矿工会因为存在的这笔非法小额输入而认为整笔交易非法,相当于这笔交易被污染了,“污染源”就是这些小额输入。

这样,也就完成了链上资产的永远分离,避免了资产损失。

在回应者眼中,此次安全质疑完全是媒体过度解读的结果。

BCH当下成为万众瞩目的聚焦中心,这场战役造成的波波“余震”恐怕还会继续。

BCH 分叉后的钱包解决方案

攻略slowmist 发表了文章 • 2018-11-18 10:10 • 来自相关话题

昨天凌晨 BCH 分叉为两条链:BCH 和 BCHSV,我们持续做着相关风险监测,也注意到相关交易所/钱包暂停了充提。由于分叉后的两条链没做重放保护,可能导致一条链上发起的交易,在另一条链上做重放攻击,造成相关对象的财产损失(依实际攻击场景而定)。

在无重放保护的情况下,分离这两种链上资产的方法,目前社区的解决方法主要有如下两个:


1. input 污染法


原理是引入了一笔非法交易的输出作为输入,那么这笔非法交易的输入将会使得这笔交易也会变为非法。

例如:

一笔交易广播到了 BCHSV 链中,引用了非法交易(在 BCH 合法,在 BCHSV 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCHSV 链承认,那么这笔交易就被重放免疫了;对应的,一笔交易广播到了 BCH 链中,引用了非法交易(在 BCHSV 合法,在 BCH 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCH 链承认,那么这笔交易就被重放免疫了。


2. 构造特有操作码交易


两条链的共识是有差别的,如果出构造一个本链合法,对方链上不合法的交易也可以进行分离,本次分叉双方的共识差别也体现在操作码上,可以在 BCH 链中,构造含有 OP_CHECKDATASIG 的输出,那么该笔交易在 BCH 上是合法的,但在 BCHSV 上是不合法的;同理在 BCHSV 链中,构造含有 OP_MUL 的输出,那么该笔交易在 BCHSV 上是合法的,但在 BCH 上是不合法的。

结合社区的方式及交易所相关工程实践经验,我们推荐使用第 1 种 input 污染法,但这需要有分叉后的 BCH 或 BCHSV 的 coinbase 交易(创币交易) UTXO 作为污染源,从这个 coinbase 交易中可以划分大量的小额 output,在用户提现时,可以将这些小额的 output 作为新交易的 input 之一来构建提现交易,从而较方便地完成分离。

另外,从工程实践上,我们也建议充提币的确认数可以适当提高,虽然目前来看两条分叉链未发生明显的攻击情况。

对于普通用户来说,等着先,不着急。


相关资料:

可行的钱包重放免疫实现方法:

https://bch.club/index.php?app=team&mod=Forum&act=detail&topic_id=685&team_id=1


哥白尼团队提供的开源工具,有效分离 BCH 和 BCHSV 两条链:

https://github.com/copernet/tools/tree/master/hardfork 查看全部
bch.jpg

昨天凌晨 BCH 分叉为两条链:BCH 和 BCHSV,我们持续做着相关风险监测,也注意到相关交易所/钱包暂停了充提。由于分叉后的两条链没做重放保护,可能导致一条链上发起的交易,在另一条链上做重放攻击,造成相关对象的财产损失(依实际攻击场景而定)。

在无重放保护的情况下,分离这两种链上资产的方法,目前社区的解决方法主要有如下两个:


1. input 污染法


原理是引入了一笔非法交易的输出作为输入,那么这笔非法交易的输入将会使得这笔交易也会变为非法。

例如:

一笔交易广播到了 BCHSV 链中,引用了非法交易(在 BCH 合法,在 BCHSV 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCHSV 链承认,那么这笔交易就被重放免疫了;对应的,一笔交易广播到了 BCH 链中,引用了非法交易(在 BCHSV 合法,在 BCH 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCH 链承认,那么这笔交易就被重放免疫了。


2. 构造特有操作码交易


两条链的共识是有差别的,如果出构造一个本链合法,对方链上不合法的交易也可以进行分离,本次分叉双方的共识差别也体现在操作码上,可以在 BCH 链中,构造含有 OP_CHECKDATASIG 的输出,那么该笔交易在 BCH 上是合法的,但在 BCHSV 上是不合法的;同理在 BCHSV 链中,构造含有 OP_MUL 的输出,那么该笔交易在 BCHSV 上是合法的,但在 BCH 上是不合法的。

结合社区的方式及交易所相关工程实践经验,我们推荐使用第 1 种 input 污染法,但这需要有分叉后的 BCH 或 BCHSV 的 coinbase 交易(创币交易) UTXO 作为污染源,从这个 coinbase 交易中可以划分大量的小额 output,在用户提现时,可以将这些小额的 output 作为新交易的 input 之一来构建提现交易,从而较方便地完成分离。

另外,从工程实践上,我们也建议充提币的确认数可以适当提高,虽然目前来看两条分叉链未发生明显的攻击情况。

对于普通用户来说,等着先,不着急。


相关资料:

可行的钱包重放免疫实现方法:

https://bch.club/index.php?app=team&mod=Forum&act=detail&topic_id=685&team_id=1


哥白尼团队提供的开源工具,有效分离 BCH 和 BCHSV 两条链:

https://github.com/copernet/tools/tree/master/hardfork