金色观察|1月20日真出现了BTC双花吗?一文读懂双花问题
1月20日真出现了BTC双花吗?一文读懂双花问题
1月20日,BitMEX Research发推称,他们的ForkMonitor在BTC区块链上监测到了一次双花。“双花”这个词在社交媒体出现,引发了许多人的担心,这都是可以理解的,所以我很快就想解释一下到底发生了什么,以及“双花”对BTC意味着什么。
陈腐区块
根据中本聪共识,所有节点会自动更新到最长的有效链。这让它们将本地账本(记录着资产所有者)与其他节点同步。
有时两个矿池会几乎同时发现一个新区块,这些区块有相同的累积难度。然后一些节点接受第一个块,其他节点则会接受第二个块。在很短的一段时间内,BTC网络会一分为二。但通常情况下,一旦找到下一个块,分叉就会消失。
例如,假设一些矿工在666833-1区块挖矿,其他一些矿工在666833-2区块挖矿。一旦其中一个发现了第666834个块,这个区块链的累积挖矿难度会增加,所有接受了666833-1区块的节点将会自动放弃自己的区块链,并接受新的最长链。
这正是1月20日BTC网络中发生的事情,SlushPool和F2Pool同时发现了区块666833。在Binance矿池发现666834区块后,F2Pool发现的区块变成陈腐区块,中断了分叉。
现在陈腐区块出现频率变高,但这完全不用担心。但是“双花”又是什么呢?
什么是双花?
关于双花,有两种流行的定义,一种偏技术,另一种偏实用。
从技术层面而言,当某一方收到的付款(交易T1)第一次加入到在区块链中,如果稍后删除这个交易,就会发生双花。只有当包含该交易的区块变成陈腐区块后,才会发生这种情况。
此外,新的区块链不包含T1是不够的,否则这笔交易仍然可能被包含在下一个块中。双花出现后,T1交易记录中的其中一条会同时出现在T2交易记录中。由于在T2中包含这条记录,T1就变成无效区块,并从网络中删除。
我们将这种现象称为双花,不是因为用户重复花了一笔钱两次,而是这笔交易在区块中出现了两次。但是,从实际角度出发,如果T1发生在T2之前,这也会产生不同影响,因为加密货币的所属权会发生改变。
换言之,T1交易的收款方还要额外支付一定的货款,以下是双花的一个例子:
1. 双花攻击发起者在一个交易所存入100万美元的ETC。
2. 他把ETC全部换成了等值的BTC,然后把全部BTC提现。
3. 攻击者通过创建另一笔含有同样数量ETC的T2交易,从而对交易所发起双花攻击。
4. 攻击者现在就有了100万美元的ETC和100万美元的BTC,而交易所则亏损了100万BTC。
第三步与开空头支票一样,但其实很难在BTC网络中实现。如果要对T1交易记录进行修改,意味着要修改T1之前的所有区块,对于攻击者来说,他要控制很大的算力才能做到这一点。所以,只有矿工或者是在NiceHash租用算力的人才能够发起这种攻击。
如今,那些最大规模的加密货币网络都不会受到双花攻击。如果有人从Nicehash租借了所有的SHA256哈希算力(约500 PH/s),那只是比特币当前哈希率(123 EH/s)的0.4%。
基本上所有的双花攻击,包括最近发生的这次,都不能造成损失。除了两个矿池恰巧发生挖矿竞争,即使是大型矿工故意不上传包含T1的区块,只要节点遵循共同的6个区块确认规则,攻击者并不能从中获利。在这种情况下,我们看到含有同一笔交易的T1和T2在不同时间被确认。
所以,对于BTC用户,他们有充分理由来广播这种含有同一笔交易的区块。
替换你的交易
用户向网络广播一笔交易后,这些交易会按照价格高低进行排序。用户通过增加手续费,希望矿工将其打包进区块中。理性的矿工倾向于将手续费最高的交易打包进区块,因为能获得最大利润。
这种交易处理机制有其独特之处:添加手续费后,如果一个交易不能在预计时间内打包入块,它不会被撤回,而是自动进入下一轮。如果手续费太低,交易无法打包进区块,会成为一个大问题,导致这笔交易(及其相对应的代币)长时间得不到确认。
因此,用户需要一种方法来提高已广播的交易的手续费。对用户而言,他们第一次出价可以比较低,因为可以选择之后提高手续费,让这一机制更高效运行。
最后,在闪电网络中,如果要关闭支付通道,可能也要增加手续费。不增加手续费的话,关闭时间就会有严格限制,错过这个时间后,用户可能会遭受资金损失。
用户有以下三种方式让自己的交易更快得到确认:
1. 子交易为父交易支付方案(Child-Pays-For-Parent)
2. 交易加速器
费用替代(Replace-By-Fee )
如果交易手续费不够高,通过子交易为父交易支付方案,交易能够更快得到确认。在该方案下,用户广播一个子交易,该交易的输出来自未确认的父交易,这笔费用会比通常情况下更高。而子交易的有效性取决于父交易是否能打包入块,如果一个矿工想从子交易中获得高于一般水平的手续费,就要把两笔交易同时打包入块。
交易加速器提供了一个链下市场,用于确认链上手续费不足的交易。通常情况下,加速器由矿池提供,有免费的,也有付费的。用户可以将交易ID粘贴到加速器,矿池会优先打包这个交易。由于不需要签名,发送方和接收方以及其他任何人都可以使用加速器。
通过费用替代,用户可以创建另一笔同样的交易,该交易的手续费比前一笔未确认的交易要高,让交易得以确认。(如果花费不是来自相同的输入,它将是一个完全独立的交易。)
就替代交易而言,增加未确认交易的手续费能够实现替代,除此之外,其对于重复批量支付等场景大有用处。在通常情况下,批量支付将多笔支付合并到同一笔交易中,然后再广播,但同样可以先广播一笔交易,在一个矿工将其包含在区块之前,向这笔交易添加更多的支付。
1月20日的那笔交易属于什么性质?
让我们重回正题,666833-1, 666833-2, 和666834区块究竟发生了什么?
下图是BTC工程师兼研究员0xB10C对这个问题的解释。一位名为Alice的用户先后广播了三笔交易,逐渐增加这些交易的手续费。
第一笔交易的手续费是1 sat/b,但是因为太低不能打包入块。所以,大约23小时后,Alice决定使用RBF替代该交易,设置了9.4 sat / b的手续费。值得注意的是,Alice此时已经等待了几乎一整天,在广播替代交易之前,交易仍未确认。但是,新的手续费仍然太低,所以她在三个小时后又提高了手续费。
以上分析后来也得到了BitMEX Research的证实。
这笔交易是双花吗?
上文提到用户在交易被确认之前,可以使用费用替代,以替换交易。由于用户试图取消先前未确认的交易,并将其发回给自己,因此,增加手续费之后,随后交易的输出通常与第一笔不同。能够肯定的是,这就是Alice替换第二笔和第三笔交易发生的情况。
因此,拥有不同输出的交易可以同时在网络中存在。矿工打包两个输出不同的(但对网络无害)交易时,先打包的交易可能会无效。这第一眼看起来像是双花。
虽然理论上讲,BTC网络可能出现双花,但这通常不是一个严重的问题。以下会提及一些情况,当这些情况出现时,你就应该感到恐慌了:
无效交易的价值在数千万到数亿美元之间。双花可能会严重损害BTC的声誉和市场价值,并且矿工使用的硬件价值数百亿美元,考虑到这点,这些无效交易的存在,矿工能以最低成本获利。作为对比,1月20日这笔交易的价值约为25美元。
交易所或其他大型机构如果不经过一定数量的区块,就不会确认大额交易。因此,双花攻击者无法通过替换单个区块,拿回已经支付的款项,因为如果要这么做的话,他可能要替换10个以上的区块。这就要求与现有的大多数矿工相互勾结,但是这样做可能会破坏挖矿硬件的投资。
关于双花有许多讨论,但最终都回归到对“双花”一词的定义。今天我提供了其中两个定义,其中一个是技术性的,指的是存在两个相同的输入,并没有涉及到用户层面。这种双花显然已经发生,但对其他用户没有任何影响。
从实际意义上说,双花就像是在向另一位用户付款后退还支票。非常肯定的是,这种双花并没有发生,原因如下。
1. 最有可能的情况就是,是用户(而不是矿工)让自己的交易变为无效。
发生这种双花的因素并没有出现,比如说更大额无效交易以及更多的陈腐区块。
媒体对“双花”之类的术语非常敏感,所以,“双花”这个词应尽量避免使用,除非真的发生了以上这种对BTC网络有害的双花。相反,1月20日的情况应该归类为“无效交易”,这个词含义更广泛,用户可能出于多种原因取消交易。
Alice究竟想干嘛?
能够确认的是,在1月20日的情况中,矿工没有故意用更高难度的区块链替换另一个区块,以撤回一笔金额非常大的支付。它没有涉及矿工,只是一个陈旧的区块。
然而,许多人仍好奇,为什么Alice要广播不同交易,为什么要替换原先的交易?这是否是尝试对某个接受零配置网络服务规范商家的双花攻击?
这种情况可以立马排除,因为在初始交易和第一个交易替换之间,几乎经过了整整一天。但Alice究竟给谁转了代币仍然是一个十分值得研究的点。我们虽然不知道输出受到哪一方的控制,但可以通过推测来解决这个问题。
1. 因为输入肯定受用户控制,所以该数据可以忽略
2. 在很多情况下,只有一个输出的交易属于内部转账,即一个用户给自己不同的钱包转账。当收款方是其他用户的时候,钱包中刚好有这笔交易的输入,这种情况很少出现。
对于有两个输出的交易,收款方通常都是第三方,而且余额会回到用户,这也就是所谓的输出变更。
基于以上分析,下图显示,交易2和3只有一个输出,意味着Alice很可能是数据的控制方。交易1和交易3有相同的输出,所以也很可能是同一种情况。
现在只剩下交易1的第二个输出仍然是个谜,要解开这个谜团,需要换个角度去考虑这个问题,为什么交易费低的那个交易(1sat/b)反而能够打包入块呢?Slushpool不爱钱了吗?
答案显然是否定的,Slushpool的操作非常正常。其实这背后的原因是这个交易的其中一方使用了上文提到过的父子支付方案,让交易得以确认,这要么是Alice,要么是收款方。
换句话说,Alice还有第四笔交易,但是外界并不知道,包含了未得到打包的a13c2bd交易的输出,收款方的地址是3JaLvP,是同一区块内唯一输入。
如上图所示,新交易手续费更高(46.3sat/byte),足以支付这两笔交易。因为打包1290376交易的同时也要把a13c2bd交易打包,所以Slushpool必须同时打包这两笔交易。
因为3JaLvP地址中支出了手续费,可以确定的是,这些资金确实转到了目标账户里,实际上并没有产生双花。这一点是因为只有控制3JaLvP的私钥,才能签署父子支付方案,让交易得以确认。
Alice试图将这笔交易发送给第三方Bob的可能性很小,因为后者等的时间太久了。所以,Bob通过父子支付方案把未经确认的输出转回给自己。但这可能是Alice用自己的钱包汇款或尝试不同的方式来提高交易费用。
所以,结论就是所有输出数据都是由Alice控制。
本文内容来自于Deribit
本文内容来自于Deribit
金色午报 | 5月24日午间重要动态一览:7:00-12:00关键词:灰度、Solana、Gemini、人大代表 \n1. 灰度比特币信托投资总额同比增长十倍 创始人暗示第二季度将继续增长; \n2. 加密货币研究员:区块太大或太小都可能导致中心化风险; \n3. TRC20-USDT流通量突破22亿枚; \n4. LMAX首席执行官:未来两年将是机构进入加密领域的关键时期; \n5. Solana基金会已永久移除1136.5 万枚SOL; \n6. Gemini联合创始人:除非华尔街转向DeFi 否则DeFi不会有真正的大发展; \n7. 全国人大代表李秀香:运用区块链技术建立网络游戏防沉迷平台; \n8. BTC现报9211.98美元,日内涨幅0.15%,当前加密货币总市值为2567.36亿美元。[2020/5/24]
金色相对论 | 梁亮:建立可信交易环境是市场刚需:在本期金色相对论中,CoinXP创始人兼 CEO、Zongheng基金创始人梁亮表示,从一个职业交易员的角度看,造成区块链行业熊市的根本原因是交易环节的问题。熊市或经济的衰退期都是创新创业的温床,区块链行业一样,基础设施非常薄弱,整个行业就是一部高效系统割韭菜的机器,用区块链技术把自身的问题先解决好,可为行业持续发展打下坚实的基础。交易所倒闭潮会催生新的基于区块链技术的交易基础设施的发展,建立可信的交易环境是市场的刚需。[2018/9/14]
金色财经讯:据比特币交易平台Bitstamp报价显示,比特币价格突破7300美元,刷新历史记录;但Bitfinex交易平台的比特币价格已跌至7069美元。[2017/11/3]
标签:
区块链热门资讯
人类大概起源于三十万年以前,而后用了大概三千年学会说话并创造出文字;再到一八三七年电报产生,一八七五年电话发明,一九四六年计算机诞生,二十世纪九十年代互联网普及,二十世纪九十年代手机普及,二零零八年区块链产生。这些是人类沟通交流中里程碑事件的汇总,而这些的产生都是为了扩大人类的沟通交流范围,提高沟通交流效率,降低沟通交流成本。
2021/1/26 19:31:14耶伦的美国财长提名已获参议院投票正式通过,耶伦将在今晚宣誓就任美国财政部长。即将上任的美国财长并不是比特币的粉丝,由于其声称将加强对数字货币的监管,市场一度反应过度,触发牛市抛售。尽管耶伦的言论触动了比特币投资者的神经,但在恐慌情绪蔓延了几天之后,比特币和以太坊均出现不同程度回升。不少分析声音指出,耶伦应为数字货币提供创新和发展时间。
2021/1/26 19:20:21HTC.CASH是火币生态链上首个双向REBASE的算法稳定币:V2版本于1月26日20点开启头矿。 DeFi流动性挖矿火爆一时,吸引了大量投资者参与。为了方便投资者及时了解DeFi挖矿项目的相关信息和挖矿流程,金色财经推出了“金色说明书”系列挖矿教程。本期由金色财经和HTC.CASH联合推出。
2021/1/26 19:20:161月25日,据一站式DeFi门户DeFiBox.com最新数据显示,火币生态链Heco当前链上锁仓主流资产总额高达11.5亿美金,再创历史新高。
2021/1/26 19:09:16本号的文章只做研究、学习和交流使用,不具有任何的操作指导意义! 币圈唯一每天坚持视频分析行情的大号! 昨天的分析被很多人理解为要大涨,所以纷纷冲了进去,但院长昨天的分析真实的意思是告诉大家虽然短线看涨但风险非常大,不建议大家参与。今天我也在视频中和大家一起再次回看了昨天的分析,告诉大家怎么去看院长的分析才是正确的。
2021/1/26 18:58:242021年1月26日,“Polkadot开发者社区训练营”正式开营!“Polkadot开发者社区训练营”由金色财经、Subscript技术社区、金色Hackthon、火币全球站主办;Polkadot club、PolkaBase、TrustBase、链闻等37家团队和媒体协办,集结波卡生态大咖以及技术大牛,针对性的对波卡开发者群体进行手把手的实操引导。
2021/1/26 18:52:51