主页 > imtoken国内版 > 如果我对刚刚发起的比特币转账感到后悔并想立即恢复,我该怎么办?巧用“双花”

如果我对刚刚发起的比特币转账感到后悔并想立即恢复,我该怎么办?巧用“双花”

imtoken国内版 2023-03-23 06:24:40

640?wx_fmt=gif

福利:在公众号对话框回复福利,即可领取零基础课程福利! 66个名额,先到先得!

7 月 24 日,Bitcoin Core 开发者 Jonas Schnelli 在推特上愤怒地询问为什么 BitPay 拒绝了他的订单,因为他在 adafruit 上的购买不成功。

640?wx_fmt=png

“@BitPay 我刚刚从@adafruit 下了订单,你们这些白痴为什么拒绝我的 RBF 交易。两天之内,他们没有告诉我为什么,直到我上门问我在哪里买的东西。你们太恶心了!”

BitPay 是一家成立于 2011 年的成熟比特币支付处理器。另一家支付处理器 Flowee The Hub 在 Twitter 上回应:

640?wx_fmt=png

“让我弄清楚这是怎么发生的,我猜是的。你发起了一个比特币支付交易,上面写着“我以后会为双花支付更高的费用”,所以该交易被服务提供商拒绝为不良交易想法你是个戏剧女王(意思是一个人大惊小怪,吸引所有人的注意力)……”

比特币,一个由比特币社区成员运营的 Twitter 账户,也做了 Jonas Schnelli 所做的充满讽刺的事:

640?wx_fmt=png

“你们这些核心开发者,这些年来你们所做的就是让比特币越来越不可用。当像 BitPay 这样的公司在处理你们造成的混乱时又开始抱怨时。你们期待什么? "

比特币核心开发者 Jonas Schnelli 真的没有 zuo no die 还是隐藏了其他东西? 要解释这个问题,我们得先介绍一下什么是RBF交易。

比特币如何确认交易_比特币转账40多确认_比特币交易确认时间

01

什么是 RBF 交易

我们知道,在打包一个区块时,矿工会优先打包费用较高的交易,这就是为什么在使用钱包转账时,如果交易转账手续费设置得很低,那么交易的时间是确认会延长。

如果手续费设置得太低,很有可能交易要等一个星期,矿工帮你打包。在此期间,比特币就相当于卡在了矿工的记忆里。在池中(内存池是矿工存储网络中收到的未打包交易的地方),有什么办法可以挽救过低的设定费?

答案是肯定的。 RBF 是另一位比特币核心开发者 Peter Todd 提出的解决方案之一。 RBF 是 Replace-By-Fee 的缩写,可以通过支付更高的手续费来替换之前发送的相同的未打包交易。由于手续费太低,第一笔交易设置得太低,躺在内存池里无法激起矿工打包的欲望。第二个事务可以通过 RBF 发起。本次交易转入的比特币与第一笔交易相同。 ,但通过支付更高的费用,您可以替换旧的未打包的第一笔交易。

例如:

1、大白转账1比特币给小黑,并向矿工支付0.001比特币的手续费。由于大白和小黑并不急于交易被矿工打包,所以大白的手续费不高。

2、然而几个小时后,小黑发现自己给花北的还款快到期了,急着要用这笔钱,大白把1比特转给了自己。币还没被矿工打包,有些着急,开始催大白。

3、大白深深体会到“支付宝是成熟的软件,还是学不会自己付账”的痛苦!于是发起了另一笔交易。本次交易转入的 1 个比特币与之前发起的相同,支付地址和收款地址也与第一次交易中设置的相同,但这次通过 RBF 支付更高的费用:0.003BTC。

4、然后这笔交易成功吸引了矿工的注意,并因支付高额手续费而打包。

比特币转账40多确认_比特币交易确认时间_比特币如何确认交易

(P.S.这里写的手续费只是一个例子,实际情况下,一笔交易设置多少手续费可以在白话区块链官网的宝箱里查看。)

根据 Money Mongers 的一篇文章,比特币有 4 种 RBF 模式:

640?wx_fmt=png

▲ 图片来源:The Money Mongers

1、Full RBF:只要支付足够的费用,就可以无条件地允许新交易替代旧交易。

2、可选(Opt-in)RBF:只有在旧事务明确声明允许被替换时,才能执行替换操作。声明是通过 BIP 125 定义的“序列”字段完成的。可选 RBF 的一个缺点是用户必须提前知道他们何时可能想要替换交易。因此,即使用户不需要使用此功能,可选的 RBF 也会被设置为默认模式以确保安全。

3、First-seen-safe RBF:仅当满足某些附加条件时——新交易必须支付与被替换的旧交易相同的所有交易输出——只允许用新交易替换旧交易。

4、延迟 RBF:当网络中的节点首次接收到旧交易时,如果旧交易在给定数量的块后仍被解包,则允许新交易无条件替换旧交易。

02

RBF 交易的缺点

比特币转账40多确认_比特币交易确认时间_比特币如何确认交易

怎么样,你觉得RBF的设计很人性化吗?不过这里需要注意的一点是,这种RBF的设计其实是犯了一个大忌——。

双花是指一块“钱”花了两次或更多。在比特币创始人中本聪的原始设计中,矿工需要遵循“先到先得”的规则打包交易,也就是说,如果你同时为一个比特币发起两笔交易,矿工将被包括在第一位。内存池中的这笔交易会被打包,稍慢的交易会被认为是尝试双花的非法交易,会被矿工拒绝。

所以,可以想象,在 Peter 提出 RBF 之后,这个提议遭到了很多开发者社区的反对。

推特:

“RBF 是个糟糕的主意,我不知道现在比特币网络上有多少交易在使用 RBF。不过,不确定它给比特币网络带来了什么。增加了多少复杂性,但请记住,复杂性是安全的敌人。”

Gavin Andresen 的观点实际上可以翻译成乔布斯的一句话:保持简单,保持安全。

比特币的初衷是做一个简单的货币支付系统。一旦系统增加了太多复杂的功能,其安全性就会降低。这也是比特币开发团队最初提出隔离见证+闪电网络扩容模式的原因,遭到了很多人的反对。除了一些阴谋推论之外,也是因为这种展开方式的设计过于复杂。

据外媒 CBC 报道,今年 3 月,四名加拿大出生的男子在 10 天内对比特币 ATM 进行了 112 次双花攻击,总金额超过 20 万美元。加密货币爱好者 Collin Enstad 认为,正是因为 RBF 功能,双花攻击现在如此容易,比特币不再是支付系统。

640?wx_fmt=png

对此比特币转账40多确认,RBF 的作者 Peter Todd 回应:

比特币转账40多确认_比特币交易确认时间_比特币如何确认交易

“请不要把这个锅放在RBF上,比特币不保证链上0确认交易的安全性,过去不会,以后也不会。那些声称 0-confirmed 交易是安全的,要么是无知,要么是不诚实,而这些人往往就是向你推销不安全产品的人。 “0-确认强盗”很好。

很遗憾,这篇文章没有解决比特币 ATM 运营商的一个缺陷:他们接受零确认交易,完全没有安全保障,这会让读者认为这是比特币的一个新缺陷。”

03

中本聪的倡议可以取代交易

虽然不清楚阅读这篇文章你对 RBF 有什么看法,但我想告诉你,用新交易替换旧交易并不是 Peter Todd 发明的,而是比特币的设计者 Satoshi Nakamoto 发明的。此时你可能会有点头晕。刚才不是说中本聪对矿工打包交易的设置是先到先得吗?为什么说中本聪提出新交易可以用旧交易代替?

中本聪最初设计的比特币系统有一个Locktime锁定时间设置,可以实现延迟交易打包的功能。通过 Locktime,用户可以用更新的交易替换旧交易。

Locktime的值可以分为三个等级:

1、如果Locktime的值为0,表示可以立即打包。通常,我们发送的交易的锁定时间默认设置为 0。 ;

2、如果Locktime值大于0小于5亿,Locktime代表区块高度,在指定区块高度之前无法打包交易;

3、如果Locktime值大于5亿,则为Unix epoch时间戳比特币转账40多确认,矿工必须等到指定的时间点才能打包交易。

比特币如何确认交易_比特币交易确认时间_比特币转账40多确认

例如(这里不考虑手续费):

在区块高度 10 时,大白向小黑转账 1 个比特币,并设置 Locktime 为 20 ,由于尚未达到区块高度 20,矿工不会打包此交易。

然后,小黑开始催促大白加快转账速度,大白再发起交易。本次交易转入的 1 个比特币与第一笔交易相同,但此时固定的 Locktime 为 0,此时矿工收到后会直接打包交易。

这样,第二个新事务成功替换了第一个旧事务。当区块高度达到 20 时,第一笔旧交易会发生什么?它将被矿​​工拒绝为试图双花的非法交易,并且不会进入主链。此锁定时间功能后来由比特币核心开发人员升级。

04

巧用双花,让黑客空手回家

RBF 不是没用的。国外加密货币爱好者 Igor Korsakov 在网上分享了他是如何利用 RBF 化解比特币勒索危机的。一个使用 Igor Korsakov 提供的比特币支付服务的网站遭到黑客攻击,黑客索要 2 个比特币。他们同意了黑客的要求,但设定的转账费用很低,只有0.0001BTC。

这笔交易还没有得到矿工的确认,但黑客此时可以在区块浏览器上查看交易,认为赎金在囊中。然后 Igor Korsakov 再次使用 RBF 发起另一笔交易,同样是转了 2 个比特币,但收款地址是另一个,并给了 0.1 BTC 费用,以加快这笔交易的确认。最后,第二笔交易先被矿工确认,黑客一无所获,熟鸭子就这样飞走了。

下次遇到比特币勒索,或者对自己发起的比特币交易感到后悔,想要挽回的时候,可以试试RBF交易。不管你是否支持 RBF,早在 2016 年 2 月比特币核心 0.12 就引入了 RBF 功能,生米已经煮成了非常熟的饭菜。

我们普通人应该如何应对这种情况?

其实很简单,等待交易被矿工确认,待交易明确记录在区块链上后,再进行后续操作。如果涉及的比特币数量很大,请至少等待6个区块才能确认。

消息挖掘第304期:你认为比特币的RBF功能是利大于弊还是弊大于利?为什么?欢迎在评论区分享你的看法。