主页 > imtoken钱包网址 > 比特币(包括BTC和BCH)的零确认安全吗?

比特币(包括BTC和BCH)的零确认安全吗?

imtoken钱包网址 2023-02-25 06:26:27

第0章简介

比特币的零确认允许在几秒钟内完成支付。 如果能够实现安全的零确认,对于BTC和BCH的用户体验将是质的飞跃。 相对而言,绝大多数BTC粉丝拒绝零确认,而BCH支持者则热衷于开发零确认的安全性。

本文分析了零确认的安全性。

第一章什么是双花?

说零确认不安全意味着零确认的交易可能是双花的。 要了解其安全性,第一步是明确定义双花的概念。

因为它是数字货币,数据可以复制,这就让一个数字资产可以被重复使用,这就是双花。 简单来说,双花就是将一笔钱花两次,甚至多次。 注意“双花”的概念,重要的是“花”的动作,而这个动作能否成功并不是定义“双花”的关键,只要“花”同一个数字资产即可” twice or more 第二次,即“双花”。 两次“消费”行为是否收到了购买的商品,即是否成功欺骗了交易对方,则另当别论。 这分为双花成功和双花失败。

下面为了描述方便,将发起双花攻击的人称为骗子。

以下是一个典型的双花场景。

骗子用比特币购买数字产品,比如以0.01 BCH的价格购买电子书,数字产品不需要物流。 他先发了0.01BCH到店里,我们称这个交易为tx1; 然后他同时向他的一个地址发送了相同的 0.01BCH,我们称此交易为 tx2(我们先不管他是怎么做到的,下面会解释)。 店主用机器检测交易tx1,觉得没有问题,于是店家的机器人直接送货,还给骗子发了电子书。 但是因为事务tx1和事务tx2冲突,所以只能打包一个。 如果交易tx2最终被打包,交易tx1将失效。 在这种情况下,骗子成功地双花了 0.01BCH,因为他买了这本书,拿回了自己的 0.01BCH。

零确认双花攻击的策略如下:

第一步,骗子利用同一个UTXO构造了两笔交易tx1和tx2,tx1是支付给商家的,tx2的收款地址是自己的。

手机免费挖币app_免费挖币BTC网站_免费挖币的水龙头

第二步,商户检测到tx1后,零确认发货,比如不需要物流的电子产品。

第三步,骗子引诱矿工打包tx2。 Tx1 将失效。 这时候双花就成功了,骗子收到了商品,拿回了自己的币。

在 BTC 和 BCH 上,零确认时有发生。 著名博彩网站 SatoshiDICE(中本聪骰子)因接受零确认交易而被双花。

当区块链浏览器检测到双花交易时,一般会将其标记出来,如下图所示。

免费挖币BTC网站_手机免费挖币app_免费挖币的水龙头

本质上,区块链的发明就是为了解决双花问题。 例如,比特币区块链处理双花交易的结果是,最后可能只有一笔合法的交易被确认,而另一笔将被丢弃。

第二章 非计算用户双花零确认交易

零确认交易发起双花理论上分为两类,一类是普通用户发起的双花; 二是矿池发起的双花。

先说第一种。 欺诈可以在网络上物理位置相距很远的两个位置构建两个相互冲突的交易。 在中国播出。 中国和美国的网络有时间差。 骗子利用在美国广播的交易tx1从美国商店购买电子书,而在中国广播的交易发送到他自己的地址。 商家在美国看到交易后立马发货,没想到在国内直播的交易最后还是被打包了,商家被骗了。

免费挖币的水龙头_免费挖币BTC网站_手机免费挖币app

为了提高此类诈骗的成功率,通常会配合手续费策略。 比如发送给商户的交易tx1手续费很低,交易规模很大,手续费率低于1聪/字节。 但是,诈骗者发送给自己的交易tx2费用高于市场价值。 这种情况下,矿工会优先打包tx2,双花成功率高。

由于 BTC/BCH 节点现在有最低费用限制,低于 1 聪/字节的交易将不会在许多节点上为您广播。 因此,诈骗者为了提高成功率会使用的另一种辅助手段就是使用RBF交易。 诈骗者会将tx2设置为RBF交易,然后在tx1和tx2都发送完后,对tx2增加更高的手续费。 ,引诱矿工先打包tx2。 请注意,BCH 不能使用 RBF。

这种双花零确认交易攻击其实非常容易防御。 第一种方法是商店可以设置最低交易限额。 例如低于 1 聪/字节的交易将拒绝零确认,当增加到 1 确认时才认为是安全的。 第二种方法是商户延迟几秒后,至少使用两个区块链浏览器检测是否有冲突交易,如果发现有冲突交易,则暂停交易等待确认。

目前BTC和BCH的生态也对此类双花攻击做了一定的防御。 例如,区块链浏览器会收集双花交易并提醒用户注意。 大多数节点钱包也会拒绝广播费用过低的交易,但并非所有钱包都会。

一般来说,非计算用户很难进行零确认交易的双花。 商家只要对比特币有基本的了解,就可以抵御它。

第三章算力用户双花和零确认交易

第二种针对零确认交易的双花攻击是由矿池发起的。 骗子本身就有算力。

对于上述第一类用户发起的双花攻击,有两个关键点。 一是防止商家发现冲突交易; 二是引诱矿工先打包tx2。 如果矿池本身就是骗子,那么这两点很容易做到。

矿池中双花和零确认的过程是这样的。 骗子先构造tx1和tx2,tx1的手续费很低。 将tx1发送给商家购买电子书,而tx2是隐藏的,不广播,只存放在自己矿池的内存池中。 因为tx1的手续费太低,矿工不想打包。 而tx2是隐藏的,所以区块链浏览器不可能发现冲突交易,商家也不可能发现。 一旦商家发货,骗子就会将tx2打包到他挖出的区块中,广播这个区块。 这时全网所有节点都会发现tx1不合法,直接取消。 商家将无法收到硬币。

手机免费挖币app_免费挖币的水龙头_免费挖币BTC网站

防御此类双花攻击只能依靠其他矿池的配合。

澳本聪CSW提出了一种防御此类双花攻击的方法,因为欺诈构造的tx2交易不会被广播,所以直接挖到欺诈矿池的区块会被其他矿池发现。 如果其他矿池将这个包含延迟交易(tx2)的区块隔离出来,那么这个欺诈矿池的这个区块就白挖了,12.5BTC/BCH的损失会非常惨烈。 具体设置可以是矿池会直接隔离在一定时间内,比如10秒内没有出现,但是被包含在最新区块中的交易(tx2)。 高海拔采矿。

如果执行这种隔离策略的算力超过51%,基本上没有矿池敢发起这种隐藏交易(tx2)来攻击零确认交易。

这种防御方式是强制广播所有的交易,即使是算力节点自己构造的交易也需要广播。 二是要求各大矿池在全球部署足够多的节点来收集交易。 现在的BCH网站肯定不行,更不用说BTC网络了。 我自己还不确定这是否是一个好方法。

目前BCH网络上已经有矿池声明会实现该方法。

在BTC网络上,没有矿池声称可以解决此类问题。 毕竟整个BTC生态都不重视零确认的安全性。

第四章零确认双花攻击服务防御——亚特兰蒂斯

BCH网络生态非常重视零确认安全。 有这样一个项目叫做亚特兰蒂斯,它在全球部署了很多比特币现金节点服务器来检测双花交易。 即检测上一节中描述的冲突的tx1和tx2。 只要检测到,就会提醒用户交易可能被双花。

亚特兰蒂斯项目提供API服务,任何商户都可以通过该服务获取交易双花的概率。 在该项目的保护下,商户可以在3-5秒后接受零确认付款。

免费挖币BTC网站_手机免费挖币app_免费挖币的水龙头

这个防御服务可以杜绝第一类双花攻击,但是不能防止算力双花,因为双花算力的tx2交易在打包之前根本不会广播,不可能被检测到。

第五章:提高零确认交易安全性的方法——弱区块

挖矿就是用矿机计算一个随机数。 当计算出的随机数小于系统设定的目标值时,挖矿成功,挖出一个区块。 例如,当前BCH网络系统设计的目标值是前16个零。 如果一个矿工计算出一个有 17 个前导零的随机数,他就挖到了一个区块。 现在我们将这样的块定义为“强块”。

如果把“强块”的目标值调低,比如调到当前值的1/8,也就是前面2个0就够了。 如果矿工计算出的随机值小于“1/8目标值”,则定义为挖弱块。 这样一个强块包含8个弱块。

强区块有区块奖励,12.5个币(BTC/BCH)。 但是,弱区块没有区块奖励,但是弱区块可以打包交易,带走交易手续费。 也就是说免费挖币BTC网站,矿工只获得挖弱区块的手续费。

如果所有矿工都参与挖弱区块,可以提高零确认的安全性。 为什么? 因为弱块的设置相当于减少出块间隔时间,商家可以根据tx1是否被打包成弱块来决定是否出货。 只要打包成弱块,交易就会被识别弱块的矿工认可。 只要这些矿工中的任何一个挖到了一个强块,交易就一定会被包含在强块中间。

现在弱块技术还没有发展起来,只是一种理论技术。

第六章 51%攻击与零确认交易攻击的区别

许多人将 51% 攻击与零确认双花攻击混淆,但实际上它们是两种不同的东西。

免费挖币的水龙头_手机免费挖币app_免费挖币BTC网站

51%攻击是对已确认交易的逆转攻击,而零确认双花是对未打包交易的逆转攻击。

51%攻击只能由矿工发起,并且只能由持有51%以上算力的矿工发起。 攻击原理如下:

第一步,骗子构造tx1支付给商家,tx1被区块高度x打包,得到1个确认,商家发货。

第二步,诈骗者使用同一个UTXO构造tx2,接收地址是自己的。

第三步,诈骗者利用自己的算力在区块高度(x-1)上进行挖矿,并将tx2打包到自己新挖出的区块中。 此时其他算力矿工正在x高度挖矿。

因为骗子有算力优势,在他连续挖出2个区块甚至更多区块后,而其他算力的矿工只挖了0个区块免费挖币BTC网站,此时骗子算力的链高为( X-1+2),其他算力的高度还是x。 这时候其他矿工挖出来的链会重组,其他矿工的算力会自动切到骗子的高度(x-1+2)区块上挖。 此时打包tx1的区块被隔离,tx1无效,tx2为合法交易。

因为 tx1 得到的确认越多,骗子在 (x-1) 高度挖掘的区块就越多才能成功发起攻击,所以 tx1 更安全。 而我们认为只要达到6次确认,交易就永远无法逆转。 比特币白皮书详细描述了 51% 攻击的可能性。 在第 11 章中,结论是成功的概率太低。

在比特币的历史上,重组了 24 个区块,但那是一个软件错误,而不是 51% 攻击。

第七章结论

安全的零确认交易很重要,但它们有多重要? 假设BCH网络最终让整个生态都接受零确认是安全的,那么即使所有BCH矿池同时销毁,对所有用户来说也无所谓。 交易可以发送到下一个,确认只需要等待矿工恢复生产。

如果零确认能够真正安全,那将是去中心化的最大胜利,因为这是一个绝对坚不可摧的网络。

另请阅读: