首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于checkpoint,你了解多少?

BCH硬分叉升级已经有一个多星期了。在分叉之前,Craig Wright一再声明:“不会有分裂”,但是BCH分裂成两条链已经是不争的事实。由于Craig Wright还曾表示会对目前的BCH链发动攻击,以保证BSV能够成为唯一的链,为了保护用户的资产不受到损失,Bitcoin ABC开发团队在升级之后对软件进行了升级,并在代码中加入了checkpoint。

关于checkpoint,有些人存在一些误解,下面将详细的介绍checkpoint,并说明为什么有些观点是错误的。

什么是checkpoint?

Checkpoint是一行代码,主要用来拒绝硬分叉前其他的分叉块或重复块,可以用来阻止区块的重组。在此次事件中,如果攻击者(如Craig Wright)尝试发动51%攻击消除过去一天在Bitcoin Cash链上发生的交易和产生的区块,添加Checkpoint的软件将不允许他这样做。

checkpoint是否违反比特币协议?

BSV支持者声称checkpoint违反了比特币协议,从而使得ABC链在某种程度上“不是比特币”或“违反中本聪的设计”。事实上,checkpoint最初是由中本聪加入到比特币中的,自那时起,checkpoint一直是比特币代码库的一部分!这是他中本聪写的关于加入checkpoint的内容:

请注意他这样做的理由。“即使某人拥有超过全网CPU算力的50%,安全措施的存在也使得其不能够将区块链回到昨天并重组区块链”。比特币现金开发者的做法相同,原因也是相同的。中本聪接着说:“一旦软件确定了被广泛接受的区块链是什么,就没有必要在几个月后保留修改的非零可能性”。

他的推理非常合理。您无法建立一个健全的货币系统,该系统随机拥有几天、几周或几个月的未完成交易。在这一点上,在11月15日晚升级时,区块链的状态已达成100%的共识。共识形成过程结束,并且所有节点都同意块556767(0000000000000000004626ff6e3b936941d341c5932ece4357eeccac44e6d56c)是BCH链的一部分。

为什么要让checkpoint消失?BSV支持者实际上已经意识到checkpoint会阻止Craig Wright发动攻击并造成人们损失数百万美元的后果。接下来,你应该了解一些支持BSV的人的道德水平。中本聪不仅是将checkpoint添加到代码中的人......之后它们从未被删除过!就连Bitcoin SV自己的代码库中也包含checkpoint。

Bitcoin Core的代码库中也有checkpoint,尽管core开发者已经停止添加新的checkpoint。因此,至少从2010年起,没有任何比特币的客户端允许无限长度的重组返回到创世区块。如果BSV的支持者想要宣称,能够重新组织到创世区块是成为“比特币”的必要条件,那么只有一个可能:一直以来都没有人使用比特币。

checkpoint是否使比特币中心化?

checkpoint不会实质性的更改软件的安全属性。所有比特币全节点客户端都附带了硬编码到软件中的创世区块。如果开发人员碰巧硬编码了错误的创世区块,您的节点可能会同步到一条无效的链上,因此您可能会被骗接受假比特币作为支付手段。

如果你想确保你在正确的链上,你有两个选择:

1)下载源代码。手动验证已知良好来源的起源,然后手动编译软件。

2)相信开发人员硬编码了正确的创世区块。

*找到一个已知好的创世区块副本并不像听起来那么容易,因为你需要确保你下载它的来源是值得信任的(你真的可以确定吗?)你必须确保你这样做没有中间人攻击。

这是你的两个选择。

checkpoint可以看作是向前滚动的创世区块。作为想要确保这会将你引导到正确链上的人,您的选择仍然是:

1)下载源代码。手动验证已知良好来源的起源,然后手动编译软件。

2)相信开发人员硬编码了正确的创世区块。

这几乎是相同的安全性。所以,分叉后的checkpoint不会让比特币现金中心化。

为什么我们不提前添加checkpoint?

checkpoint的缺点是引入共识失败的非零风险。例如,想象一下,如果一周前发布了包含checkpoint的新软件。网络上的某些节点升级到新软件,而其他节点则不升级。如果发生重组,则在数周内清除所有的块,升级的节点将拒绝重组,但未升级的节点不会。节点之间将失去共识。由于这个原因,比特币核心开发人员已停止添加检查点。如果要进行长时间的重组(比如数周或数月),他们的软件在技术上将继续按照书面形式运行,网络上的每个人都会重新加入新链。但是,虽然软件将继续在技术上发挥作用,但显然不会在经济上发挥作用。像这样的深层重组对于一个应该是合理货币的系统来说将是灾难性的。如果发生这种情况,共识失败是您最不担心的,因为链条的价值可能会接近零。 因此,checkpoint是在灾难性重组和共识失败的风险之间进行权衡。

比特币现金在每次硬分叉时都有checkpoint

当分叉发生时,Craig 和Calvin正在以大约3.5E的算力挖BSV。之后他们的算力曾经增长为约5E。这额外的1.5E来自何处呢?最可能的解释是,他们试图通过挖隐藏链对BCH链发动51%的攻击,然后当他们了解到有checkpoint之后,他们不得不放弃了隐藏链。

其实,比特币现金在之前的三次硬分升级时就有checkpoint。如果他们熟悉他们想要接管的网络的开发,或者熟悉他们现在想要管理的软件,他们就会知道这一点!

以下是在前三次硬分叉中的checkpoint代码:

最后,我坚信,在辩论中BSV一方的绝大多数(如果不是全部)大声疾呼的人实际上没有任何技术上的理解。虽然checkpoint自2010年中本聪将它加入到比特币的协议中之后都在工作,但他们还会对此表示震惊,这表明他们不知道协议是如何工作的,软件是如何工作的,并且没有对比特币现金有足够深的知识了解。然而,他们渴望接管并运营比特币。

获取更多资讯

请关注我们

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181126B1GT7Z00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券