JamesonLopp文
本文由币信原创编译,原文链接:
https://medium.com/@lopp/bitcoin-timestamp-security-8dcfc3914da6
本文版权归原作者所有,仅代表作者本人观点,不代表币信的观点或立场。
本文约4000字,阅读全文需约10分钟。
比特币通常被称为一种安全的时间戳服务。我们从未获得过一种带有可信时间戳的全球性真实记录,那么这是怎么产生的呢?这主要是得益于工作量证明与矿工必须遵守的一些简单规则的结合。矿工的主要职能是:
?获取无序的未确认交易并以特定顺序对其进行排列
?将交易打包到有效容器当中
?在可接受的时间范围内为区块盖上时间戳
最后一个属性使得比特币能够控制比特币供应的释放。否则,只要算力增加,比特币就会受到快速通胀的影响。但事实证明,这个属性为比特币协议赋予了相当多的实用性,也使得人们可以将比特币用作其他服务的数据锚点。因为我们有合理强度的保证,让时间戳落在给定范围内,并且我们有重写区块链历史所需能量的数学保证,所以,比特币为数据的时间戳提供了一个可靠的锚点。但是,它有多可靠呢?
瑞穗:比特币走高之际Coinbase交易量却下降,维持“跑输大盘”评级:金色财经报道,瑞穗表示,投资者对比特币上涨至3万美元将提振Coinbase(COIN.US)的交易量的预期可能会遭遇艰难的觉醒。该行分析师表示,Coinbase在4月份的日均交易量不足10亿美元,而3月份的日均交易量为16亿美元。该行认为,大型机构投资者正在购买比特币,同时希望散户投资者也能跟进,但散户投资者似乎不感兴趣。该行称,尽管比特币走高,但作为散户投资者“首选平台”的Coinbase交易量却在下降。该行维持对Coinbase“跑输大盘”评级,目标价为30美元。[2023/4/13 14:02:10]
比特币时间戳的弹性
为了使区块头的时间字段被各个节点视为有效,它必须满足两个标准:
小于你电脑的当前时间2小时大于过去11个区块的中位数时间戳
第一条规则是有道理的——我们显然不希望任何人声称来自未来,并且,节点很容易拒绝这样的声明,因为我们大家对当前时间是一致认可的。有多种方法可以检查当前时间,而一种非常流行的计算机同步时钟的方法,是通过网络时间协议。
但是,确保时间不要在合理点之前太远要难一些。这是因为我们不能假设节点在区块被最初创建的时间附近验证区块。节点需要能够离开并重新加入网络,这可以是出于任何原因或并无理由。如果必须在当前时间的几个小时内创建区块,那么距离链顶端太远的节点将开始拒绝历史区块。
Ergo矿池上线,硬分叉即将进行:据Ergo平台官方推特消息,2021年2月1日,新建的Ergo中国矿池宣布:“Ergo矿池上线,现在处于测试网阶段,硬分叉升级后将立即切换到主网。矿池链接:666pool.cn,挖矿端点:ergo.666pool.cn:9556”。
这是中国矿工在Ergo平台上搭建的一个矿池,硬分叉之前,Ergo的PoW共识算法Autolykos v1是阻碍矿池挖矿的,本次硬分叉将从Autolykos v1升级到支持传统矿池挖矿的Autolykos v2.0,Ergo在此次主网硬分叉升级(2021年2月1日左右)后,将支持矿池挖矿。但硬分叉之前,已有中国矿工在挖Ergo,只是之前都是SOLO MINING(单独挖矿)。
Ergo是一个基于UTXO的区块链协议,该协议将构建成为一个高效、安全的金融合约平台,具有革新意义的全新DeFi功能,也是一个开放、无需许可的综合性DeFi应用底层公链。[2021/2/1 18:37:56]
“节点可以随意离开并重新加入网络,接受工作量证明链作为它们离开时发生的事情的证明。”——中本聪,比特币白皮书
也许这很违背直觉,但并没有规则要求区块的时间戳必须在前一个块的时间戳之后。如果你考虑一下,这样一个规则可能会导致问题——如果一个矿工创建了一个时间戳接近未来2个小时的区块,那么下一个区块也必须在未来很久以后——对其他矿工来说,自我纠正过去11个区块的中位数时间就更难了。
开源矿池合伙人Andy Guo:Filecoin仍是当前区块链世界最大的投资机会:金色财经现场报道,由开源矿池和火币主办,金色算力云、链上ChainUP、Filecoin Beijing联合主办的“分布式存储中国行首站暨开源矿池IPFS私享会”2020年11月13日在北京举行。开源矿池合伙人Andy Guo在会上表示,Filecoin仍是当前区块链世界最大的投资机会。区块链是个小众市场,存储却是个大市场。目前,全球服务器市场年出货量达到1300万台,亚马逊云营收接近300亿美元。在当今的区块链行业中难得见到一个百亿级的市场,而服务器打开的则是千亿级的市场。Filecoin是短期最可能出圈的项目,不管是市场空间还是应用落地。[2020/11/13 14:13:11]
此外,要记得,虽然预计约每10分钟生产一个区块,但并没有真正的保证。区块的时间间隔可以从几毫秒到几个小时不等。虽然过去11个区块的预期中位时间应该是1小时前,但它可能早得多或者晚得多。
来源:https://en.bitcoin.it/wiki/Confirmation
推动时间戳窗口
如果您考虑一下敌对矿工可能会如何尝试扩展可接受的时间戳窗口,很明显,无论他有多少算力,他都无法将时间戳推迟超过2小时。然而,一个拥有足够算力的攻击者,可能会通过只打包时间戳几乎没有效的区块——过去11个块的中值时间之后仅一秒——来对“比特币时间”的累进施加一些拖拽。
火币矿池算力突破8000P位居全球前五:据BTC.com浏览器实时算力显示,截至6月17日17时,火币旗下火币矿池24小时变化13.29%,算力最高达8683PH/s,目前以8379PH/s的算力排名全球第五,在所有交易所矿池中排名第一。[2020/6/17]
是否存在激励去这样做?在极端情况下,“时间扭曲攻击”会提供短期的财务激励,我们将在稍后讨论它们。对于只是将时间戳到处拖拽几个小时,目前还不太清楚可能存在什么样的激励。虽然考虑到其他协议可以构建在比特币之上并且可能涉及时间锁,但未来也可能存在其他协议可能被减慢区块链上的时间戳累进过去。
算力时间拖拽
由于最早的有效区块时间基于过去11个块的中位数时间,一个敌对矿工需要生成大量区块来在过去的中位数时间上引起任何明显的拖拽。
我们假设一种情况,所有矿工都通过网络时间协议大致同步,但有一个敌对矿工试图尽可能地拖拽过去11个区块的中位数时间。
有一点非常明确:中本聪使用过去11个区块的中位数时间戳而非平均值是一个聪明的决定,因为平均值会更易于操纵。另一种思考“过去的中位数时间”的方法是,如果所有时间戳都按顺序排列,它简单来说就意味着第6个最新块的时间戳。如果不是,算法会对它们重新排序。因此,如果你希望对这个值产生不可忽略的影响,你需要算出过去11个块中的6个。为了维持这种攻击,你需要55%的算力,此时比特币的热力学安全性的一个主要假设就会破裂。但是运气好,一个拥有较少算力的矿工有时候仍然可以实现这一目标。
印度虚拟货币交易所Zebpay与ClearTax合作简化比特币交易征税流程:据ambcrypto报道,对于任何加密货币投资者或交易者来说,税务申报往往是一个复杂的程序。Zebpay已宣布与印度领先的税务归档门户ClearTax建立合作关系,他们还给现有客户10%的折扣。ClearTax税务申报首席执行官Archith Gupta表示:“税务申报是人们可以通过优秀软件克服的问题。”[2018/3/17]
在11个块中挖出6个有多难?好吧,给定矿工算出下一个块的可能性,基本上等同于其占全网算力的百分比。因此,如果你只有1%的算力,那么你在任意11个连续块中挖出6个的机会=(0.01?*0.99?)*(11!/(5!*6!))=约20亿分之一。如果你保持1%的算力,那么在你挖出11个中的6个之前需要发生的预期块数将超过43000年。
对于实现一次成功的时间拖拽攻击的预期等待时间,一个更一般化的公式将是:
(1/(462*(算力百分比?*(1-算力百分比)?)))/144区块/天=天数
我们可以看到,对于想在任何有意义的时间尺度上进行此类攻击的攻击者来说,他们需要一个相当大的矿池,至少占全网算力的10%。
最大拖拽
然而,为了在过去的中位数时间上引起最大拖拽,矿工必须连续算出6个块。如果他们在过去11个区块中的6个不是全部按顺序挖的,那么其他矿工创建的时间间隔将迫使该敌对矿工将其区块的时间戳设置为超过彼此一秒,因为每个区块的过去的中位数时间将显著地跳向诚实矿工在其区块上设置的更准确的时间戳。
连续挖出6个块有多难?如果我们再次假设矿工拥有1%的全网算力,那么挖到任意连续6个块的机会是0.01?=大约万亿分之一。如果你保持1%的算力,那么在你挖出连续6个块之前需要发生的预期块数将近200万年。
对于一次成功的时间拖拽攻击的预期时间,更一般化版本的公式将是:
(1/算力百分比?)/144区块/天=天数
这种攻击更难以实现,需要更多的全网算力,比如20%或30%,才能在合理的时间范围内发生。你可以想象,这很少发生,而当它发生时,人们会注意到。它最后一次发生,是在2014年7月的GHash,GHash有一段时间算力超过了40%,甚至在短时间内触及了51%。再9个月前也发生了一次,当时BTCGuild有近一半的算力。如果你有50%的算力,你连续挖出6个块的机会是0.5?=64分之一。如果你保持50%的算力,那么你几乎每12小时就能连续找到6个块。
很明显,在没有大多数算力的情况下,不可能长期拖拽比特币的过去的中位数时间,但是你可以在短时间内用运气和耐心的正确组合拖动它几个小时。如果你假设其他矿工的时间戳相当准确,那么过去的中位数时间应该大约是1小时前,虽然由于挖出的区块的波动性可能会多出几个小时。如果您设法制作6个时间戳为1小时前加1秒、2秒、3秒等的块,那么在第6个块,过去的中位数时间就大约是2小时前。如果我们假设区块间隔为1小时的极端条件,则过去的中位数时间将是6小时前。
通过允许区块时间戳存在合理的灵活性,然后采用最近区块的中位数时间,我们最终得到一种非常难以愚弄的算法,但又不那么脆弱,以至于对与真实时间不同步的矿工产生负面影响。
让我们再做下时间扭曲
如果攻击者确实拥有超过50%的全网算力并且他们想减缓比特币时间的流逝怎么办?他们可以做一些非常讨厌的事。这样的敌对矿工可以防止时间戳以每个新区块超过1秒的速度前进。如果他们在足够长的时间里一直这么做,并最终在难度调整间隔上创建了区块,而时间戳使得它看起来像创建时间远超2周的之前的2016个区块,他们就可以操纵调整逻辑,让每2016个区块的难度减少高达75%。最终,在难度足够低的情况下,他们可以在给定的时间段内随心所欲地产生区块,从而获得高于预期的挖矿奖励。一次优化的时间扭曲攻击可以在18.7天内挖出所有剩余的比特币。我们实际上已经看到类似的行为发生在比特币的测试网3上,因为难度调整异常,现在测试网3在8年内挖出了1482878个区块,约为预期产量的350%。
时间扭曲攻击并不是什么新鲜事。这种攻击最初是在2011年针对一种名为“GeistGeld”的币进行的,这在BitcoinTalk上被讨论为“51%攻击的变种”。GeistGeld想通过非常短的出块时间来测试区块生成速率的上限,以及具有稳定的生成速率且没有供应上限或供应变化的加密货币的行为。
白币在2014年似乎也遭到了时间扭曲攻击。
在2018年,Verge受到了这样的攻击。然后在6周后再次被攻击!
通常,对于给定类型的硬件,算力小的加密货币容易受到时间扭曲攻击,因为它们本身容易受到51%攻击。
有趣的是,虽然时间扭曲通常被称为攻击,因为它会导致系统的意外行为,但是有些人已经表明它可以被用于潜在的期望用途。2015年,VitalikButerin描述了一种通过一次软分叉加速区块从而提高了链上容量的方法。在2018年,比特币开发者马克·弗里邓巴赫提出了利用这种意外行为的建议,以便为比特币添加新功能。在他的“前向区块”提案中,马克阐述了他的方法,它可以将链上交易量扩容到当前水平的3584倍,以向后兼容的方式改变工作量证明算法,分片,一个可退回的费用市场用于共识费用检测,平滑地终止矿工补贴,以及保密交易的先决协议,mimblewimble,不可链接的匿名支出和侧链。
然而,这些提议是有争议的,并且可能会强迫那些依靠比特币区块头的时间戳来构建的系统对该数据另寻出路。正如GregMaxwell在比特币开发者邮件列表上所说的那样,阻止这样的改变也相当容易:
它可以通过一次进一步限制区块时间戳的软分叉来修复,并且沿着这个思路人们已经提出了一些提案。
结论
比特币的时间戳安全性,和限制可接受时间戳窗口的一些简单规则,在对抗环境中经受了10年的考验,尽管它们存在着已知的缺陷。我们知道,51%的矿工可能会在网络上造成严重破坏,至少在短时间内会如此,但这种情况从未发生过——可能是因为激励措施并不适合矿工这样做。理性的矿工不会选择短期收益而杀死长期的金鹅。
-END-
本文翻译自6月6日由币安研究院发布的报告,部分内容略有删改。 报告原文: https://info.binance.com/en/research/marketresearch/defi-1.h.
据比推数据,市值最高的加密货币比特币在过去24小时经历两次小幅拉升之后再次突破8000美元。分析师认为在上方仍有较高阻力,而全球最年轻的比特币百万富翁、被称为“比特币神童”的ErikFinman.
导读:BTC在昨晚8点开始放量下跌,突破之前横盘的收敛三角形,今天凌晨继续放量下跌,但是这几次下跌量能一次不如一次,有些信号已经提醒我们之后的操作思路,请看下文分析.
BeamCEO:禁止匿名币是不可能的,监管者应该与开发者合作 ◇金色盘面 据HuobiGlobal数据显示:BTC最近成交价755360美元.
作者简介:合约帝实盘入驻大咖-欧阳拽白,曾6000美金接入实盘,获利高达35万美金,收益50余倍。大家好,我是欧阳拽白,今天的分享马上开始了.
入市有风险,操作需谨慎!主流币市场持续阴跌多日,在接近一星期的宽幅震荡中,币价始终是空头占优,即使行情偶尔走出回调,依旧很难企稳进一步上冲,目前币价均临界下方关键压力位,究竟是继续跌破.