工作量证明的最长链原则到底说的是什么?

工作量证明的最长链原则到底说的是什么?

大家好,又见面了,我是你们的朋友全栈君。

777.png

 

前几天的一篇关于比特币的标准的文章引起了很多人的关注。在这篇文章中介绍了比特币的标准是什么以及Bitcoin Core(BCE)和Bitcoin Cash(BCH)符合哪些标准不符合哪些标准。最终经过对比,BCH只在白皮书中的工作量证明的最长链原则这一标准中输给了BCE,这也是在众多比特币标准中BCH唯一不符合的标准。

有些朋友看到之后对此产生了疑惑:目前BCH的区块高度不是比BCE要高吗?不已经是最长的链了吗?为什么还说它不符合最长链的原则?今天小编就对这个问题做一个简单的科普,希望能够帮助大家更好的理解。

什么是工作量证明的最长链原则

这一说法最初来自于中本聪的论文《比特币:一种点对点的电子现金系统》。文中提到:“信息尽最大努力在全网传播即可,节点(nodes)可以随时离开和重新加入网络,并将最长的工作量证明链条作为在该节点离线期间发生的交易的证明。”以及“工作量证明机制的本质则是一CPU一票。大多数的决定表达为最长的链,因为最长的链包含了最大的工作量。”

通俗来说就是,比特币区块是依靠矿工们不断进行数学运算而产生的,每一个区块都必须引用其上一个区块。如果想生成一个新的区块并写入区块链,必须解出比特币网络出的工作量证明的迷题。这道题关键的三个要素是工作量证明函数、区块及难度值。工作量证明函数是这道题的计算方法也就是SHA256,区块决定了这道题的输入数据,难度值决定了这道题的所需要的计算量。只有工作量最大的那条链才能被称为最长链,节点永远认为最长链才是有效的区块链,也只有在最长链上挖矿的矿工才能够获得奖励,这就是我们常说的比特币最长链原则。因此也可以说,累积难度值最大的那条链才是最长链。这也是比特币的重要标准之一。

为什么要制定这一规则?

因为比特币是去中心化的,是没有中心机构的,想要让所有的完整节点都有一份相同的公共总帐本,就需要达成共识。这一规则就是一种共识,能够保证比特币不停的在工作量最大的区块链上运转,工作量最大的区块链就是权威的公共总帐本。尤其当两个矿工同时挖出区块的时候,系统就会根据最长链原则进行取舍,即哪个新产生的区块能使其所在的区块链变得更长,则哪个区块得以被记录。如果两者一起记账就会造成区块链的分叉,这时会把其中有更多工作量的一条会继续作为主链,另一条作为备用链保存,如果新添加的区块使备用链累积了更多的工作量,那么这条备用链将被作为新的主链。

为什么BCH不是工作量证明的最长链?

由于BCH的挖矿难度比BCE小,所以现在BCH的区块高度确实比BCE要高,但是这并不是说明最长的链。因为BCH累积的难度值是远远小于BCE的。这一切都归结于BCH诞生之初为了能够在小算力环境下顺利的生存下来,修改了难度值的算法,降低了挖矿难度,所以现在的它还不是那条工作量证明的最长链。

虽然目前来说,BCH不是最长的链,但是BCH却是最符合中本聪白皮书的点对点电子现金系统。而且它现在在不断的高速发展,在未来当BCH的价格、用户和总市值都超过BTC之后,BCH超越BCE成为最长链也是有可能的。

转载于:https://my.oschina.net/u/3797746/blog/1808868

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107531.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java 高并发

    java 高并发

  • openCV人脸识别简单案例[通俗易懂]

    openCV人脸识别简单案例[通俗易懂]1基础我们使用机器学习的方法完成人脸检测,首先需要大量的正样本图像(面部图像)和负样本图像(不含面部的图像)来训练分类器。我们需要从其中提取特征。下图中的Haar特征会被使用,就像我们的卷积核,每一个特征是一个值,这个值等于黑色矩形中的像素值之后减去白色矩形中的像素值之和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。Haar特征可用于于图像任意位置,大小也可以任意改变,所以矩形特征值是

  • MLP多层感知机(人工神经网络)原理及代码实现

    MLP多层感知机(人工神经网络)原理及代码实现一、多层感知机(MLP)原理简介多层感知机(MLP,MultilayerPerceptron)也叫人工神经网络(ANN,ArtificialNeuralNetwork),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,如下图:从上图可以看到,多层感知机层与层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)。多层感知机最底层…

  • 什么是虚拟ip地址_虚拟人IP是什么意思

    什么是虚拟ip地址_虚拟人IP是什么意思AIX中虚拟IP地址的概念与IBMOS/390中的很相似。将虚拟IP地址赋给AIX系统后,可以使IP地址不再依赖指定的网络接口。发送方只需将包送到接收方服务器的虚拟IP地址上即可(所有接收到的包还是通过真正的物理网络接口到达该服务器的)。在虚拟IP地址使用以前,如果一个网络接口失效,所有与之相关的连接(connection)就都会失去。使用虚拟IP地址,需要有AIX系统对虚拟接口和网

    2022年10月20日
  • 从头开始建网站(三)DNS

    从头开始建网站(三)DNS

  • 字符串的方法_js字符串包含另一个字符串

    字符串的方法_js字符串包含另一个字符串题目判断第一个字符串是否包含第二个字符串functionchange(str1,str2){if(str1===str2){returntrue}letarr1=[…str1]letarr2=[…str2]if(arr2.length>arr1.length){…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号