比特币_区块链_数字货币_资讯-比特币吧

比特币现金添加的Checkpoint到底是什么,有什么影响?

比特币吧

  比特币现金添加的Checkpoint到底是什么,有什么影响?

   导导读比特币节点在绝大多数情况下都是按上面的标准的验证区块程序进行验证区块的,但可以加入额外的规则,就是加入一个Checkpoint。

  第0章 引言

  

比特币现金添加的Checkpoint到底是什么,有什么影响?

  在11月份BCH的硬分叉升级时,产生了两个币,BCH和BSV。abc开发组为BCH添加了一个叫Checkpoint的东西,BSV社区各种嘲讽。本文解释Checkpoint到底是啥。

  第1章 比特币节点如何验证一个区块

  任何一个下载并安装运行的完整节点都会从比特币网络中获取区块,并验证区块,以此更新节点的账本。当一个节点通过p2p网络获得一个新区块时,都会执行验证程序,以识别这个区块是不是有效的区块。比特币区块的验证标准如下:

  1、验证工作量证明,即验证区块头的哈希值小于当前目标值。

  2、验证MerkleRoot是否是由区块体中的交易得到的,即重构区块Merkle树得到的树根,看是否和区块头中的hashMerkleRoot值相等。

  3、验证区块大,即看区块大小是否在设定范围之内。(BTC是数据区块体不能大于1M,隔离验证区块不能大于3M;BCH是区块不能大于32M;BSV现在是不能大于128M)

  4、验证是否只有一个Coinbase交易,即一个区块,矿工只能给自己奖励一次。

  5、验证所有的交易,即遍历区块内所有的交易,检查是否是合法的交易。

  以上就是比特币节点(BTC、BCH、BSV都一样)标准的验证区块程序,这部分代码叫CheckBlock函数。

  第2章增加Checkpoint检查点验证规则

  比特币节点在绝大多数情况下都是按上面的标准的验证区块程序进行验证区块的,但可以加入额外的规则,就是加入一个Checkpoint。

  Checkpoint就是节点验证区块中的一个补充规则。这个补充规则是:

  Checkpoint就是指定一个区块高度的区块哈希必须等于某个哈希值。

  Checkpoint是一个数据,这个数据就是一个区块高度值和对应的哈希值构成,所有Checkpoint会被存储在一个叫CheckpointData的数据块里。下面是BCH网络上的历史Checkpoint值。

  我们可以看到,在11111高度就有一个Checkpoint,这是在2009年4月16日挖出来的,这估计是中本聪他们最早的几个人挖的。

  上图中最后那一个Checkpoint就是11月15日BCH硬分叉时添加的,区块高度556767就是BCH和BSV分裂后BCH挖出的第一个区块高度,这个区块被BSV拒绝了。

  Checkpoint是由开发组写入节点软件的,也可以是开发编写一个函数指定出现某种情况后就由函数添加一个Checkpoint。节点软件在验证区块时,就会搜索CheckpointData数据,以确定某一区块高度是否需要加入Checkpoint这个验证规则。

  Checkpoint里指定的区块高度那肯定是在写入之前就已经挖出来的。

  当节点软件搜索CheckpointData发现了某个区块高度是一个Checkpoint时,那这个节点在验证这一个区块时,就会在上一章的5条验证规则中加入第6条,即这个区块的hash值必须等于Checkpoint里指定的哈希值。如果不相等,那就是一个废块,会被抛弃掉。

  第3章Checkpoint有什么用?

  一个节点只要承认了Checkpoint的区块为合法的区块,那就可以避免这个高度以之前的所有的区块被其他力量重组,特别是可以避免被51%优势算力攻击重组区块。

  我们必须确认的是一个区块的哈希是无法伪造的。当指定一个区块高度就是某一个哈希值,这意味着这个区块高度的区块就是无法更改了。哪怕是你拥有超过51%的算力,也是不能让这些拥有Checkpoint的节点软件服从你更改这个区块。

  任何一个区块中又包括了前一个区块的哈希值,这样就相当于执行Checkpoint的节点认定了指定的区块,也就认定了此区块之前的所有区块。

  Checkpoint在一定程度上改变了最长链为有效链的原则,改成了只有包含了Checkpoint的最长链才是有效链。

  Checkpoint可以用来部署协议分叉,所有节点都统一运行带有Checkpoint的完整节点软件,然后一旦Checkpoint的区块被挖出,那此后所有的协议就可以被统一更改。这也是UAHF的原理,这是BCH从2017年8月1日分裂出来后每一次分叉升级都使用Checkpoint来部署。

  带有Checkpoint的协议变化,就是明确告诉整个生态在此区块高度后协议就会有变化了,你们要注意升级。

  第4章Checkpoint有什么不好?

  需要澄清的是,很多人认为Checkpoint给了开发者更高的权力,我认为没有。因为节点软件都是开发者写的,Checkpoint只是开发明确标记了一个接下来协议会怎么改。

  这相当于我们写文章的人,使用加粗标红高亮来标注一个重点内容。Checkpoint是用来告诉矿工和其他生态节点,我们要明确改一些什么东西,并且改的这些东西还不允许通过51%算力来进行链上否决。

  请注意,上面讲的是“链上否决”,就是一旦有算力选择认同了Checkpoint的节点软件,那无论这部分算力是多大,那这条带Checkpoint的链都是可以独立挖下去的,不可能会被更大的算力通过51%攻击的方式重组掉这个Checkpoint之前的区块。只能重组之后的区块。

  这就意味着,Checkpoint本身是一个链下的治理工具。大家通过链下讨论是否接受Checkpoint以及之后的所有协议规则更改,如果接受,并且部署,那就没有回头路了。

  所以Checkpoint有什么不好?那只能是针对热爱纯粹的通过链上算力投票的矿工来说是不好的,信算力有决定权的人会认为Checkpoint不好,而热爱链下治理的人则会认为Checkpoint是一个好工具。

  第5章 结束语

  祝世界和平,祝BCH、BSV社区和平共处,阿门。

  图虫·创意

  真金白银买来的矿机如今成废铁但矿难真的不是你想的那样!

   3月12-13日的比特币价格暴跌还是反映在比特币算力上了。据Bitinfocharts数据,比特币网络算力已降至100EH/s以下,截止发稿,比特币网络总算力为96.6EH/s,相比2020年3月5日的历史新高133EH/s,已经下降27%。如果按每台13T的算力计算,近日已经有280万台蚂蚁S9矿机关机。比特币算力变化图 来源:Bitinfocharts据F2Pool数据,在当前币价和难度下,按0.38元/度电费算,曾经的主流矿机如蚂蚁S9、神马M3、蚂蚁T9+全部已经关机,神马M21s、芯动T3+、蚂蚁T17的电费占比均达到90%以上,已经在关机边缘了。主流矿机关机币价 来源:F2Pool似乎矿业正在经历着矿难。加密货币圈也一直在担忧着比特币矿难,但是到底什么是比特币矿难,其实人们远远没有厘清。我们从比特币算力和难度调整等基本概念说起。比特币算力与难度调整

  算力,顾名思义可以简单的理解为计算能力。对比特币的SHA256算法来说,“算力”就是一台矿机每秒钟能做多少次哈希碰撞计算的,单位为hash/s。当我们说一台矿机算力为13T左右,其意思实际在说,这台矿机能每秒做13乘以10的14次方的哈希碰撞。区块链区块是一种数据结构,它主要由区块头和交易列表组成,下图是比特币区块链示意图。

  比特币挖矿的四个过程:

  验证和筛选交易、计算Merkle root、计算区块头、从0-2^32穷举nonce。矿工计算这个区块头信息的哈希值,看其是否小于当前目标值。如果这个哈希值不小于目标值,矿工就会修改这个nonce(通常将之加 1)然后再试一次穷举一次nonce,如果得到的结果小于区块头中规定的难度目标,即挖矿成功,获得区块奖励。

  比特币系统规定,每隔2016个区块比特币网络会调整一次难度。确保不管算力多大或者多小,平均下来10分钟产生一个新区块。也就是我们说的14天(20160分钟)调整一次难度。难度调整时,比特币会比较之前2016个区块的实际产生时间是否大于20160分钟(即每10分钟一个区块的期望)。如果之前2016个区块的平均产生时间不足10分钟,网络就会加大难度,反之,则会降低难度。

  计算公式:

  新目标值(Target) = 老目标值 * ( 20160分钟/前2016个区块的实际出块时间)

  同时,为了防止难度变化过快,每个周期的调整幅度必须小于一个因子,此因子值为4,新的难度范围为旧有难度的25%至400%之间。如果调整幅度大于4,则按4倍进行调整。也就是说,如果用时低于5040分钟,按5040分钟计算;如果用时高于80640分钟,按80640分钟计算。也就是说,如果在一个难度周期内,如果矿工关机造成算力下降,这一周期2016个区块的出块时间会大于20160分钟的,会造成调整周期大于14天。所以在3月12日比特币暴跌之后,币印矿池潘志彪表示,“如果算力下跌30%,就会变成16天后才调整,矿工必须搞出至少半个月现金流。”当然,通过哈希运算找到符合要求的结果不仅取决于全网算力的大小,还与运气有关。3月12日发生的比特币超过1个小时出块,不少网友认为这是币价大跌,矿工恐慌关机,导致算力瞬间下跌造成的。但紧接着的几个区块出块时间都只有几分钟。不过,如果算力下降,比特币的出块时间的确会大比例大于10分钟的。截止发稿,btc.com数据显示,比特币区块的出块时间大比例大于10分钟。比特币最新出块时间大比例大于10分钟 来源:btc.com什么才叫矿难?

  现在比特币算力相比3月5日下降了27%,是不是发生了矿难呢?比太钱包创始人文浩对表示:

  所谓矿难就是相当大一部分老版本的高能耗矿机因为成本大于电价,不得不关机了,导致的算力大幅下降,人们称其为矿难。因为价格暴跌导致的矿难这是很正常的一个经济现象,亏损了矿工们总得关机。

  而币印联合创始人朱砝则对表示:

  矿难一定是灾难性的关机,如果矿机挖了好几年都回本儿好几次了再关机还叫灾难吗?根本不叫。电费低的新矿机大面积被迫关机才叫矿难。而电费最高的矿场本来就没有优势,部分这种矿场关机也不是个事。

  当然这也是算力在矿工之间的再分配。产出同样数量的比特币,老矿机关机,新矿机挖的比特币数量会变多。但是以币本位算,新矿机的净所得会增加和减少比较复杂,还与币价和电费有关。

  如果减半后币价不变,的确会可能有更多矿机会关。具体影响的看情况评价,要看多少旧矿机的算力关掉,你的新算力占全网算力比例是多少,电费等等。

  会影响比特币网络安全吗?

  文浩对表示,矿难本身并不会影响到比特币网络的安全,算力的迅速下降会在一个难度周期里阶段性的影响出块速度,但最终比特币网络还是会稳定到一个比较合理的状态。

  根据上面对比特币算力和难度调整的描述可以知道,比特币网络会针对网络算力状态自动调整,重新达到一个新的平衡。如果发生矿工大规模关闭矿机算力,影响的主要是矿工的收益,而比特币网络还会继续运转。可以更夸张的想象,即便比特币网络算力现在下降一半,可能的影响是本难度周期的时间会远大于14天。但下次难度下调后,比特币的出块时间会加快,平均下来还是10分钟。区块链史上最大资金盘跑路 如今比特币大跌是PlusToken在砸盘?全球资本市场大跳水 比特币市值一夜蒸发千亿