超19000 BCH被错误发送,近一半已被偷走,这个问题让矿工很苦恼

洒脱喜 发布在 竞争币 28173

原文作者:Antoine Le Calvez和 Coin Metrics团队

“我想了很久,要不要在这里写这件事。尽管我现在在做,但我会怀疑这种行为是否是正确的。

假设有一家赌场的头奖是50万美元,要想成功,你就需要下注约1.5万美元,而下注获胜的概率约为60%。问题是,肯定还有更多的人知道这个头奖。在类似的情况下,你会怎么做?”

2017年11月20日,一位俄罗斯籍Bitcointalk用户在思考一个有趣的问题,而这对于他而言也意味着一个机会。

而要理解它,我们必须要回到过去。

就在该帖子发布的前几周,两个关键事件发生了:8月1日,比特币现金(BCH)从比特币(BTC)中分叉而出,然后在8月24日,比特币启动了多年来最重要的升级:隔离见证(SegWit)。

这次分叉发生后,创造了两种几乎共享一切的资产。重要的是,这两个网络都支持以“3”开头的特殊类型的地址P2SH(付费到脚本哈希)。这些地址允许使用复杂的脚本(如多重签名方案)。与P2SH地址相关联的脚本,只有在地址“spent from”时才知道:也就是说,有人将BTC或BCH发送到从未使用过的P2SH地址时,无法知道它使用了什么脚本。

而隔离见证(SegWit),在许多其他更改中,添加了一种特殊类型的P2SH地址:嵌套隔离见证(nested SegWit),它们看起来就像普通的P2SH地址,但它们的花费脚本使用了隔离见证。它为用户提供了一种简单、向后兼容的方式。

随着时间的推移,一些用户错误地将BCH发送到这类嵌套隔离见证地址。由于比特币现金(BCH)并没有实施隔离见证(SegWit),这些地址的脚本,回退到类似任何人都可使用这些地址资金的状态(不需要签名,你只需要知道这些脚本)。因此,这些错误发送的BCH,实际上就处于“谁先到,谁就能拿到奖金”的状态,也就是所谓的头奖(jackpot)。

p1

以上这些数字,只是关于错误丢失BCH的最小估计值。当地址使用的脚本被揭示时,我们只能检测地址是否使用了嵌套隔离见证。随着时间的推移,越来越多的地址可以被检测到,这使得相关数字变得更大。

不过,这里有一个小小的提示:只有矿工才能获得这些头奖(jackpot)。这是因为,交易必须遵守共识规则(无双花等),而且它们还必须遵守另一组规则才能被节点转发:标准化规则,这些规则是为了避免使用大型或非常复杂的交易而进行拒绝服务攻击。比特币有少量从一个节点中继到另一个节点的标准脚本。非标准脚本可以作为挖到区块的一部分接受,但这些非标准脚本不会从一个节点中继到另一个节点。

而比特币现金(BCH)嵌套隔离见证地址的花费交易,违反了这些标准规则之一(准确地说是cleanstack规则),因此不会被中继;只有矿工直接纳入,才能有效挖矿,因此,只有矿工或者与矿工有密切联系的用户,才可以花费嵌套隔离见证地址中的BCH,而普通用户则不能

有了这些知识,我们就可以破译上面提到的俄罗斯Bitcointalk用户所提到的机会:

  1. 50万美元的头奖:在该用户发帖时,有略超过400 BCH(当时价值约50万美元)被发送到了BCH上的嵌套隔离见证地址,而这些币只能由矿工认领;
  2. 1.5万美元的赌注:这是租一天BCH网络 1/144比例算力的费用;
  3. 60%的赔付机会:1/144比例的算力,在一天内挖到一个区块的可能性大约为63%;
如果他能挖到一个区块,他就可以为自己申领头奖,因此,他发帖表示:
“我需要挖一个区块,但所有的矿池都在中国,而这些矿池的管理者当中,并没有我的朋友。”
随着时间的推移,有超过19,000 BCH被发送到嵌套隔离见证地址。

而接下来,我们将看看这些错误发送的BCH的命运。

 

第一笔恢复交易

 

2017年9月10日,Reddit用户/u/btctroubadour注意到一个令人担忧的事件模式:很多Trezor用户会把BCH发送到嵌套隔离见证地址。他建议建立一个由矿工运行的恢复服务,然后去收集这些丢失的BCH,并将它们归还给丢币的用户(需要减去服务费)。像往常一样,讨论很快退化为无休止的辩论和攻击,没有任何结果。

然而,有几个人注意到并开始思考这个问题。此外,随着时间的推移,这一问题产生的赏金规模不断扩大。

大约在这个时候,我们的俄罗斯 Bitcointalk用户可能注意到了这个问题,并开始寻找一个能够协助他的矿工。

一周后,他发现没有一个现有矿池愿意纳入他的交易,于是他就在Bitcointalk论坛上发帖,他想知道是否能在BCH上面创建一个临时的矿池,目的就是为了挖一个区块。

2017年11月14日,我在推特上说明了这个问题,并计算出了当时可获得的奖金:478 BCH(当时价值约64.4万美元)。

两天后,即11月16日,第一笔恢复交易发生了:BTC.com矿池恢复了用户错发到嵌套隔离见证地址的100.7 BCH

 

一位白帽黑客出现了

 

2017年11月21日,那位俄罗斯Bitcointalk用户的“梦想”破灭了,一名匿名Reddit用户(/u/bchsegwitrecover)恢复了493.5 BCH(当时约60万美元),并计划收取30%的手续费后将它们归还给受影响的用户。(问题是,用户必须在2017年12月6日之前提交认领申请)

包含此恢复交易的区块,也纳入了发送到嵌套隔离见证地址的第二笔12.64 BCH恢复操作。然而,这种恢复是特殊的,因为恢复BCH所需的脚本,从未在比特币区块链上公开。因此,必须直接与矿工沟通,以避免丢失的BCH被不愿归还的人“认领”。

被发送到与之前恢复的100.7 BCH相同地址的12.64 BCH,可能与BitGo有关。

11月28日之后,/u/bchsegwitrever决定放弃30%的手续费,并归还已经收取的费用。

通过跟踪付款,我们估计/u/bchsegwitrever归还了7位丢币者,共计75.59 BCH(包含了手续费)。有趣的是,一个用户显然成功地将费用协商到了15%(然而,他像所有其他用户一样得到了补偿)。

p2

而在截止日期前无人认领的BCH,它们的命运则要更加模糊,因为这些资金已经历了剥离链操作(在许多交易中,大量资金被剥离成许多小面额),使得追踪资金的去向变得更加困难。

在/u/bchsegwitrever发布消息两天后,BTC.com推出了一项恢复服务(收取10%的手续费),实现了/u/btctroubadour几个月前的设想。

 

BTC.com的恢复服务

 

BTC.com恢复服务的推出,为这些丢失的BCH开创了一个新纪元。现在,公共矿池将挖取错误丢失的BCH交易。

使用BTC.com对BCH矿工的标记,我们跟踪了每个矿池回收的BCH数量:

p3

关注BTC.com的恢复交易,我们可以发现有趣的事情。其收取的10%服务费,似乎总是发送到同一个地址,这使我们能够确定矿池从中获得的收入:368.03 BCH。

精明的读者会注意到,他们的368.03 BCH 收入和恢复的5,779.30 BCH金额,以及给出的10%手续费是不符的。我们发现,BTC.com对12笔交易收取了较低的手续费,其中5笔金额超过100 BCH的交易,它们的手续费是固定的10 BCH。这表明,在某个时间点,BTC.com决定将其手续费的上限设定为10 BCH。

 

BCH的硬分叉

 

BCH有一个硬分叉政策,每年会进行两次,分别在5月15日和11月15日进行。

而这些分叉当中,有两次是与隔离见证恢复有关的:

  1. 2018年11月15日,新的“cleanstack”共识规则更改,使得隔离见证恢复交易变得完全无效;
  2. 2019年5月15日(接下来的硬分叉),这一新的共识规则被部分回滚到仅允许隔离见证恢复类交易
一个后果是,在6个月的时间里,要收回隔离见证资金是无法实现的,如图所示,大量的BCH损失在5月15日分叉基础上累积起来,并成为可花费的。

p4

这些累积起来的资金,理论上是任何人都可以花费的(大约4000 BCH,当时大约价值160万美元),由此创造了一笔吸引恶意人士的赏金。

据BitMEX研究院分析,在硬分叉发生后,就出现了一些问题,这导致了各种链分裂。其中一个问题是,矿工们会生产空块。就在这个漏洞被修复之后,一个名为“fake unknown”的矿工认领走了嵌套隔离见证地址中的“BCH赏金”。根据中国用户““BCH Bruce ”在微信上对这一事件的描述称:

“发现这一情况后,BCH大矿工紧急从BTC网络调取了大量算力,进行了两个区块的链重组,作废了‘fake unknown’的矿池交易,并将丢失的BCH归还给了原所有人。”
而这个“fake unknown”矿工声称,误丢失的BCH确实被其他矿工孤立了。

有意孤立其它有效区块的矿池事件,是非常罕见的。事实上,它避免了许多无辜的用户失去对他们丢失的BCH的访问,而这一事件,可以与一周前发生在BTC身上的另一起事件形成对比:币安在一次黑客攻击中丢失了7000BTC,其希望通过重组的方式回滚交易,然而,这一计划很快就被否定了。

在之后的一个区块中,BTC.TOP使用一种新技术从嵌套隔离见证地址中恢复了3800 BCH。他们不必等待失主出面,也不必验证他们是否控制了相关丢币地址,而是利用嵌套隔离见证脚本中的信息来设计一个非SegWit地址,只有原始地址的持有者才能使用这个地址。这样,他们可以让用户控制他们丢失的BCH,而不必与他们联系。

然而,BTC.TOP并没有收回所有可认领的 BCH,在他们收回3800 BCH之后的10个区块,这名“fake unknown”矿工领走了216个误丢失的BCH,而它们的命运是未知的。

 

结论

 

利用以上所有信息,我们可以一定程度上追溯到一半误丢失BCH的命运:

p5

我们需要意识到,这些公开身份的矿工,他们是美德的典范,他们将收回的大部分BCH归还给了原持有人。然而,大约一半丢失的币,它们的命运仍是未确定的。

它们已被“恢复”到和任何已知矿池无关联的区块当中。自2018年年中以来,这一“未知”挖矿实体一直在努力获取大部分丢失的BCH(5月15日后的赏金除外)。

p6

而这样的游戏还在继续着。正如区块链考古学经常遇到的情况一样,解决一个问题会导致另一个问题。不管它会引导到哪里,我们都会继续关注这个故事,并期待着揭开更多的区块链谜团。

 

本文链接:https://www.8btc.com/article/560554
转载请注明文章出处

文章标签: 比特币现金
评论(10)
登录 账号发表你的看法,还没有账号?立即免费 注册
  • BCH社区 2020-02-26
    丢失在Segwit地址的BCH是使用者操作不当造成的,开发团队在后续的升级中允许矿池帮助找回,目前已有一些用户在BTC.com和BTC.top的帮助下找回了BCH。BCH不支持Segwit,Segwit的扩容效果也明显不能解决比特币面临的问题,但BCH社区解决问题的方式往往更简单直接。
  • 平静_的_心态 2020-02-27
    btc可以丢币!
  • BCH社区 2020-02-27
    这位网友逻辑思维缺陷很严重,你应该用防止疫情蔓延,果断封城,保证更多城市的安全打比方,而不是用自己结扎的故事打比方。
  • BitcoinCash资讯 2020-02-27
    →_→
  • 世袭比特币 2020-02-27
    果然bch社区全靠狡辩[鼓掌][鼓掌]
  • 世袭比特币 2020-02-27
    果然bch社区全用狡辩?佩服了,全人民都知道封城是不得已而为之。没想到居然拿未知的病毒疫情和已知的科学技术对比。服了
  • BCH社区 2020-02-27
    你是不是脑子残了?你拿你的亲身经历跟技术相提并论,才真是可笑呢。打比方都不会,还说别人狡辩。最近十个区块有机会回滚,而之前的区块绝对安全,用封城策略作比方很合适,封锁疫区,保证其他城市安全。这么简单的道理看不明白,你是结扎了生殖器还是结扎了脑子?
  • 世袭比特币 2020-02-27
    回复@BCH社区:搓到狗的痛处,自然就会咬人。理解理解。放过我吧阉党。
  • BCH社区 2020-02-28
    回复@世袭比特币:你弱鸡的辩论技巧和59分的语文成绩才是你的痛处,下半生不吃不喝从小学语文读到高中语文反复八十一次才能跟我的脚趾盖势均力敌。
  • 世袭比特币 2020-02-28
    回复@BCH社区:不用操心的,我就眼睁睁看着阉党上窜下跳,挺好玩的。