昨天,BitMEXResearch在推特上发布消息称,他们的ForkMonitor在比特币区块链上花费了双倍的钱。可以理解的是,“双花”这个词让人们在社交媒体上忧心忡忡,所以我很快想解释一下到底发生了什么,以及这对比特币意味着什么。
陈旧的区块
在中本聪共识中,所有节点都会自动切换到最重的有效链。这允许他们将自己的本地分类账状态与其他所有人的状态同步。
有时,两个矿池几乎在同一时间找到一个新区块,并且这些区块具有相同的累积难度。然后,一些节点切换到一个区块,其他节点切换到第二个区块。在很短的一段时间内,比特币网络就会出现分叉。但是很奇怪的是,一旦找到下一个区块,分叉就会解决。
例如,假设一些矿工在666833-1区块进行挖矿,而另一些矿工在666833-2区块挖矿。一旦其中一个发现了666834区块,这个区块链将会有更高的累积难度,所有仍然在666833-1上的节点将会自动放弃其区块链并切换到新的规范区块链。
比特币矿企Compute North在9月22日宣布破产之日向高管支付了300万美元工资和奖金:11月3日消息,比特币矿企Compute North在9月22日宣布破产之日向高管支付了300万美元和奖金。文件显示,该公司向联合创始人、前首席执行官Dave Perrill支付了61.3万美元的工资和奖金。前首席财务官Tad Piper在离开公司三个月后得到54.1万美元,总裁Edward Drake Harvey III和首席商务官Kyle Wenzel各得到约50万美元,前首席技术官Nelu Mihai得到34万美元,首席法律官Jason Stokes得到32.5万美元,新任首席财务官Harold Coulby得到约25万美元。
该文件还显示Compute North与一系列至少部分由佩里尔拥有的公司业务往来,这些公司在过去一年中收到了约35万美元的租赁办公空间和服务的款项。[2022/11/3 12:14:22]
这正是比特币网络中发生的情况,因为SlushPool和F2Pool同时发现了区块666833。在币安的矿池发现666834区块和F2Pool的区块变得陈旧之后,双方的关系破裂。
现在陈旧的区块相对频繁地出现,完全不需要担心。但是可疑的“双花”呢?
什么是双花?
双花有两种流行的定义,一种是技术性支出,一种是实用性支出。
从技术上讲,当某方收到的付款首先包含在区块链中,然后在以后被删除时,就会发生双花。只有当包含该交易本身已过时时,才会发生这种情况。
笔记软件 Roam Research 已用 2% 的资产投资比特币:笔记软件 Roam Research 联合创始人 Conor 发推表示,公司已用 2% 的资产投资比特币。Conor 还表示,比特币在资产负债表中是用于对冲风险,而不是利润来源。去年 7 月份,当粉丝问该平台何时参与比特币时,该平台还回复称暂不支持比特币。[2021/3/14 18:44:07]
此外,新的区块链不包含T1是不够的,否则它仍可能包含在下一个区块中。在两次花费中,T1的一个输入必须由冲突的交易T2花费。由于输入已花费在T2中,因此T1就变成无效,并从网络中删除。
我们称其为双花,不是因为用户被双重花费了,而是因为交易的输入已经被双重花费了。但实际上,如果T1>T2是否实际上将代币的所有权从一个用户更改为另一个用户也很重要。
换句话说,T1代币的接收者不得不发送其他资金或产品作为交换。下面是一个真实发生的例子:
1.攻击者在交易所购买了100万美元的ETC。
2.他们把ETC换成100万美元的比特币,然后提现。
3.然后,攻击者通过创建竞争性交易T2,在交易上花费双倍的费用。在该交易T2中,攻击者将最初用于交易的相同代币花回自己手中。
4.攻击者现在拥有100万美元的ETC和100万美元的比特币。交易所的空头比特币为100万美元。
第三步相当于退回支票,这在比特币网络中极其困难。反转T1需要反转T1之上的所有区块,这将要求攻击者控制大量的哈希率。所以这种攻击只能由矿工或者像NiceHash这样的市场上租用哈希算力的人来执行。
比特币期现价差到达历史峰值13.95%:金色财经报道,据同伴客数据显示,12月17日比特币年化期现价差为13.95%,较前一日上升2.26%,市场情绪指数为“牛市”。
指数参考:>20 % 极度牛市;10%~20% 牛市;5%~10% 乐观;2%~5% 谨慎乐观;0~2% 谨慎;-5%~0 谨慎悲观;-10%~-5% 悲观;-20%~-10%熊市;<-20%:极度熊市。[2020/12/17 15:29:01]
请注意,最大的代币都不能用这种方式攻击。如果有人从Nicehash租借了所有的SHA256哈希算力,那将是比特币当前哈希率的0.4%。
基本上所有的双花事件,包括最近的事件,都是完全无害的。即使是大型矿工故意孤立了包含T1的区块,只要接收者遵循共同确认的经验法则,他们就无法通过攻击获利。在这种情况下,我们仅看到在不同时间确认了冲突的T1和T2。
正如我们现在看到的,比特币用户有充分的理由广播这种冲突的交易。
取代您的交易
每当用户将交易广播到网络时,他们就会参与第一次价格拍卖。通过在交易中附加费用,他们希望矿工将其纳入一个区块。理性的矿工倾向于支付最高的交易来填满他们的区块,因为这给了他们最大的利润。
但是与常规拍卖不同,区块空间市场有一个怪癖:如果出价没有赢得它所竞标的区块空间,它不会被撤回,而是自动进入下一次拍卖。如果出价太低,无法包含在内,则交易会长期停滞不前,那将是一个大问题。
数据:全球比特币ATM安装总数达10355台:CoinATMRadar统计数据显示,9月1日以来,全球共新安装了694台比特币ATM。截止9月26日,比特币ATM机在全球的部署数量已达10355台。[2020/9/27]
因此,用户需要一种方法来提高已经发布的交易的费用。一个有用的副作用是,用户可以降低交易费用费率,因为他们总是可以选择以后提高费用。这使得区块空间拍卖更加有效。
最后,为了关闭支付渠道,可能需要增加费用。不合作的关闭有严格的截止日期,由于费用不足而错过这个截止日期可能会导致用户资金的损失。
用户可以通过三种方式进行交易:
父母为孩子付钱。交易加速器。按费用替换。
如果发送者支付的费用不够,则“父母为孩子付费”可以接收用户加快交易速度。为此,他广播一种辅助交易,该交易使用未确认交易的输出作为输入,并支付比平常更高的费用。如果矿工希望从子交易中获得费用,而子交易的有效性取决于包含的父交易,那么他现在被激励将两个交易包含在内。
交易加速器是链下市场,用于确认在链上市场支付费用不足的交易。这些通常由矿池提供,有并以免费和付费的形式存在。用户可以将他们的交易ID粘贴到加速器中,然后矿池将以更高的优先级包含它。由于不需要签名,因此发送方和接收方以及任何人都可以使用它们。
按费用替换允许用户创建一个替换交易,该交易至少花费一个与被卡住交易相同的输入,但需要支付额外的费用。
声音 | BitPay首席商务官:比特币是品牌快速获得新客户最便宜的方式:BitPay首席商务官Sonny Singh表示,比特币是品牌快速获得新客户最便宜的方式。市值高达8000亿美元的整个加密社区都会知道这些品牌。这些公司在线销售的5%到10%可能是通过比特币完成的,在这5%到10%中,近60%的客户将是新客户。(福布斯)[2019/8/30]
除了在卡住的交易上增加费用外,交易替换对于像迭代付款批量处理之类的用例非常有用。虽然常规批量处理将许多支付合并到同一笔交易中,然后再发布,但同样可以先发布交易,然后在交易广播之后,但在一个矿工将其包含在区块之前,通过添加更多的输入和输出来迭代该交易。
有问题的交易
回到实际的问题上,在区块666833-1、666833-2和666834中到底发生了什么?
正如比特币工程师和研究员0xB10C在此图中所示,一个用户广播了三次竞争的交易,与前一次相比,每一项都更新了费率。
第一个收费标准是1sat/b,这太低了,不能包含在区块中。因此,大约23小时后,她决定使用RBF替换该交易,并收取9.4sat/b的较高费用。请注意,Alice此时已经等待了几乎一整天,在她广播替换交易之前,她的交易仍未进行。但是,新的费率仍然太低,所以她在三个小时后又用更高的费率代替了它。
这一分析后来也得到了BitMEXResearch的证实。
那是双花吗?
我们确定用户可以在交易被确认之前使用RBF替换交易。由于用户试图取消先前卡住的交易并将其发回给自己,因此更新后的交易通常具有与第一个交易不同的输出。这几乎肯定是Alice的替代交易2和3所发生的情况。
因此,交易的不同版本可以同时在网络中浮动。当矿工包含两个冲突的交易时,先前包含的交易可能变得无效。这使得它最初看起来像是双花。
虽然理论上讲,比特币网络可能出现双花,但这通常不是一个严重的问题。以下是一些您感到惊慌时有用的启发方法:
无效交易的价值在数千万到数亿美元之间。考虑到这样的双花可能会严重损害比特币的声誉和市场价值,并且矿工使用的硬件价值数百亿美元,这是矿工实现“跳票”获利的最低成本。相比之下,今天的交易价格约为25美元。
交易所或其他大型实体如果不等待更合理数量的确认,就不会接受如此大的交易作为最终交易。因此,攻击者无法通过替换单个区块来退回支票,他们可能必须替换10个以上的区块。这就要求现有的大多数矿工相互勾结,同时冒着破坏他们在挖矿硬件上的投资。
像许多辩论一样,这归结为对“双花”一词的定义。今天我提供了其中两个原因,其中一个是技术性的,指的是INPUT的双重支出,而不是另一个用户。输入双花显然已经发生,但对其他用户没有任何影响。
从实际意义上说,双倍支出就像是在向另一位用户付款后退还支票。我们可以非常肯定地说这是有几个原因的。
其他更有可能的解释的存在,例如用户使他们自己的交易无效。我们没有其他可能导致有害的双重支出的因素,例如,更大的无效交易和大量的陈旧区块。
由于媒体很快就会注意到“双花”之类的术语,所以我认为当启发式方法没有一个指向有害意义上的双花时,我们应该谨慎使用。相反,我建议说“交易已经失效”,这具有更广泛的含义,包括用户可能故意取消交易的许多方式。
Alice想做什么?
因此,我们已经确定这肯定不是矿工故意用更高难度的区块链替换一个区块链以退回一张非常大的支票的双花。它没有矿工的参与,只是一个陈旧的区块。
然而,许多人仍对Alice发表的不同交易的性质感到好奇。她为什么要取代原来的交易?这是否是尝试“零配置”的商人花双倍的钱吗?
我们可以立即排除后者,因为在初始交易和第一个替换交易之间几乎经过了整整一天。但探索Alice把代币花给了谁还是很有趣的。虽然我们不知道谁分别控制输出,但我们可以使用一些启发方法来解决这个难题。
1.输入可以忽略,因为我们知道输入必须由用户控制。
2.具有一个输出的交易几乎总是内部转账。您很少在钱包中输入正确的钱来支付给其他人。
3.具有两个输出的交易通常会支付给第三方,其余的费用返还给用户。
把难题拼凑起来,我们可以看到交易2和交易3都只有一个输出,这意味着Alice可能控制这些输出。交易1与交易3共享一个输出,因此同样适用于交易3。
这只剩下交易1的第二个输出3JaLvP了。要回答这个问题,我们需要绕一小段路。为什么费用较低的交易获胜?Slushpool讨厌钱吗?
答案是否定的,Slushpool的行为完全符合预期。原因是Alice或她的对手使用了我们之前讨论过的另一种技术CPFP来确认交易。
换句话说,她进行了一个以前未知的第四个交易,其中包括交易a13c2bd…的滞留输出作为同一区块中的唯一输入。
正如我们在这里看到的,新的交易支付了更高的费用率,足以支付这两笔交易。因为包含交易1290376...的条件是包含交易a13c2bd...,因此Slushpool必须同时包含这两者。
通过从3JaLvP中支出资金,我们可以非常确定地知道,这些资金确实达到了他们的目标目的地,实际上并没有被重复使用。我们知道这一点是因为只有控制3JaLvP的私钥的人才能签署最终得到确认的CPFP交易。
Alice试图发送给第三方Bob的可能性很小,Bob已经厌倦了等待钱到来。所以他用CPFP把未经确认的输出给了她。但这可能是Alice用自己的钱包汇款或尝试不同的方式来提高交易费用。
因此,我们可以得出结论,所有的输出确实是由Alice控制。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。