什么是比特币挖矿和区块链共识机制具体解答和比特币采用什么共识机制细致分析

Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

拥有多年的区块链服务经验,为用户提供专业的服务信息,下面介绍什么是比特币挖矿和区块链共识机制,以及比特币采用什么共识机制,选择可以为您随时随地解决玩币中所遇到的各种问题,让你不再为职称评级繁琐事务而烦恼。

比特币共识机制的第三步是通过网络中的每个节点独立校验每个新区块。当新区块在网络中传播时,每一个节点在将它 转发到其节点之前,会进行一系列的测试去验证它。这确保了只有有效的区块会在网络中传播。

独立校验还确保了诚实 的矿工生成的区块可以被纳入到区块链中,从而获得奖励。行为不诚实的矿工所产生的区块将被拒绝,这不但使他们失 去了奖励,而且也浪费了本来可以去寻找工作量证明解的机会,因而导致其电费亏损。

当一个节点接收到一个新的区块,它将对照一个长长的标准清单对该区块进行验证,若没有通过验证,这个区块将被拒 绝。这些标准可以在比特币核心客户端的CheckBlock函数和CheckBlockHead函数中获得

它包括:

为什么矿工不为他们自己记录一笔交易去获得数以千计的比特币?

这 是因为每一个节点根据相同的规则对区块进行校验。一个无效的coinbase交易将使整个区块无效,这将导致该区块被拒 绝,因此,该交易就不会成为总账的一部分。矿工们必须构建一个完美的区块,基于所有节点共享的规则,并且根据正 确工作量证明的解决方案进行挖矿,他们要花费大量的电力挖矿才能做到这一点。如果他们作弊,所有的电力和努力都 会浪费。这就是为什么独立校验是去中心化共识的重要组成部分。

比特币去中心化的共识机制的最后一步是将区块集合至有最大工作量证明的链中。一旦一个节点验证了一个新的区块, 它将尝试将新的区块连接到到现存的区块链,将它们组装起来。

节点维护三种区块:第一种是连接到主链上的,第二种是从主链上产生分支的(备用链),最后一种是在已知链中没有 找到已知父区块的。在验证过程中,一旦发现有不符合标准的地方,验证就会失败,这样区块会被节点拒绝,所以也不 会加入到任何一条链中。

任何时候,主链都是累计了最多难度的区块链。在一般情况下,主链也是包含最多区块的那个链,除非有两个等长的链 并且其中一个有更多的工作量证明。主链也会有一些分支,这些分支中的区块与主链上的区块互为“兄弟”区块。这些区 块是有效的,但不是主链的一部分。 保留这些分支的目的是如果在未来的某个时刻它们中的一个延长了并在难度值上超 过了主链,那么后续的区块就会引用它们。

如果节点收到了一个有效的区块,而在现有的区块链中却未找到它的父区块,那么这个区块被认为是“孤块”。孤块会被 保存在孤块池中,直到它们的父区块被节点收到。一旦收到了父区块并且将其连接到现有区块链上,节点就会将孤块从 孤块池中取出,并且连接到它的父区块,让它作为区块链的一部分。当两个区块在很短的时间间隔内被挖出来,节点有 可能会以相反的顺序接收到它们,这个时候孤块现象就会出现。

选择了最大难度的区块链后,所有的节点最终在全网范围内达成共识。随着更多的工作量证明被添加到链中,链的暂时性差异最终会得到解决。挖矿节点通过“投票”来选择它们想要延长的区块链,当它们挖出一个新块并且延长了一个链, 新块本身就代表它们的投票。

因为区块链是去中心化的数据结构,所以不同副本之间不能总是保持一致。区块有可能在不同时间到达不同节点,导致节点有不同的区块链全貌。

解决的办法是,每一个节点总是选择并尝试延长代表累计了最大工作量证明的区块链,也就 是最长的或最大累计工作的链(greatest cumulative work chain)。节点通过累加链上的每个区块的工作量,得到建立这个链所要付出的工作量证明的总量。只要所有的节点选择最长累计工作的区块链,整个比特币网络最终会收敛到一致的状态。分叉即在不同区块链间发生的临时差异,当更多的区块添加到了某个分叉中,这个问题便会迎刃而解。

提示由于全球网络中的传输延迟,本节中描述的区块链分叉自动会发生。

然而,倒三角形的区块不会被丢弃。它被链接到星形链的父区块,并形成备用链。虽然节点X认为自己已经正确选择了获胜链,但是它还会保存“丢失”链,使得“丢失”链如果可能最终“获胜”,它还具有重新打包的所需的信息。

这是一个链的重新共识,因为这些节点被迫修改他们对块链的立场,把自己纳入更长的链。任何从事延伸星形-倒三角形的矿工现在都将停止这项工作,因为他们的候选人是“孤儿”,因为他们的父母“倒三角形”不再是最长的连锁。

“倒三角形”内的交易重新插入到内存池中用来包含在下一个块中,因为它们所在的块不再位于主链中。

整个网络重新回到单一链状态,星形-三角形-菱形,“菱形”成为链中的最后一个块。所有矿工立即开始研究以“菱形”为父区块的候选块,以扩展这条星形-三角形-菱形链。

从理论上来说,两个区块的分叉是有可能的,这种情况发生在因先前分叉而相互对立起来的矿工,又几乎同时发现了两个不同区块的解。

然而,这种情况发生的几率是很低的。单区块分叉每周都会发生,而双块分叉则非常罕见。比特币将区块间隔设计为10分钟,是在更快速的交易确认和更低的分叉概率间作出的妥协。更短的区块产生间隔会让交易清算更快地完成,也会导致更加频繁地区块链分叉。与之相对地,更长的间隔会减少分叉数量,却会导致更长的清算时间。

2012年以来,比特币挖矿发展出一个解决区块头基本结构限制的方案。在比特币的早期,矿工可以通过遍历随机数 (Nonce)获得符合要求的hash来挖出一个块。

难度增长后,矿工经常在尝试了40亿个值后仍然没有出块。然而,这很容 易通过读取块的时间戳并计算经过的时间来解决。因为时间戳是区块头的一部分,它的变化可以让矿工用不同的随机值 再次遍历。当挖矿硬件的速度达到了4GH/秒,这种方法变得越来越困难,因为随机数的取值在一秒内就被用尽了。

当出现ASIC矿机并很快达到了TH/秒的hash速率后,挖矿软件为了找到有效的块, 需要更多的空间来储存nonce值 。可以把时间戳延后一点,但将来如果把它移动得太远,会导致区块变为无效。

区块头需要信息来源的一个新的“变革”。解决方案是使用coinbase交易作为额外的随机值来源,因为coinbase脚本可以储存2-100字节的数据,矿工们开始使用这个空间作为额外随机值的来源,允许他们去探索一个大得多的区块头值范围来找到有效的块。这个coinbase交易包含在merkle树中,这意味着任何coinbase脚本的变化将导致Merkle根的变化。

8个字节的额外随机数,加上4个字节的“标准”随机数,允许矿工每秒尝试2^96(8后面跟28个零)种可能性而无需修改时间戳。如果未来矿工穿过了以上所有的可能性,他们还可以通过修改时间戳来解决。同样,coinbase脚本中也有更多额外的空间可以为将来随机数的扩展做准备。

比特币的共识机制指的是,被矿工(或矿池)试图使用自己的算力实行欺骗或破坏的难度很大,至少理论上是这样。就像我们前面讲的,比特币的共识机制依赖于这样一个前提,那就是绝大多数的矿工,出于自己利益最大化的考虑,都会 通过诚实地挖矿来维持整个比特币系统。然而,当一个或者一群拥有了整个系统中大量算力的矿工出现之后,他们就可以通过攻击比特币的共识机制来达到破坏比特币网络的安全性和可靠性的目的。

值得注意的是,共识攻击只能影响整个区块链未来的共识,或者说,最多能影响不久的过去几个区块的共识(最多影响过去10个块)。而且随着时间的推移,整个比特币块链被篡改的可能性越来越低。

理论上,一个区块链分叉可以变得很长,但实际上,要想实现一个非常长的区块链分叉需要的算力非常非常大,随着整个比特币区块链逐渐增长,过去的区块基本可以认为是无法被分叉篡改的。

同时,共识攻击也不会影响用户的私钥以及加密算法(ECDSA)。

共识攻击也 不能从其他的钱包那里偷到比特币、不签名地支付比特币、重新分配比特币、改变过去的交易或者改变比特币持有纪录。共识攻击能够造成的唯一影响是影响最近的区块(最多10个)并且通过拒绝服务来影响未来区块的生成。

共识攻击的一个典型场景就是“51%攻击”。想象这么一个场景,一群矿工控制了整个比特币网络51%的算力,他们联合起来打算攻击整个比特币系统。由于这群矿工可以生成绝大多数的块,他们就可以通过故意制造块链分叉来实现“双重支 付”或者通过拒绝服务的方式来阻止特定的交易或者攻击特定的钱包地址。

区块链分叉/双重支付攻击指的是攻击者通过 不承认最近的某个交易,并在这个交易之前重构新的块,从而生成新的分叉,继而实现双重支付。有了充足算力的保证,一个攻击者可以一次性篡改最近的6个或者更多的区块,从而使得这些区块包含的本应无法篡改的交易消失。

值得注意的是,双重支付只能在攻击者拥有的钱包所发生的交易上进行,因为只有钱包的拥有者才能生成一个合法的签名用于双重支付交易。攻击者在自己的交易上进行双重支付攻击,如果可以通过使交易无效而实现对于不可逆转的购买行为不予付款, 这种攻击就是有利可图的。

攻击者Mallory在Carol的画廊买了描绘伟大的中本聪的三联组画(The Great Fire),Mallory通过转账价值25万美金的比特币 与Carol进行交易。在等到一个而不是六个交易确认之后,Carol放心地将这幅组画包好,交给了Mallory。这时,Mallory 的一个同伙,一个拥有大量算力的矿池的人Paul,在这笔交易写进区块链的时候,开始了51%攻击。

首先,Paul利用自己矿池的算力重新计算包含这笔交易的块,并且在新块里将原来的交易替换成了另外一笔交易(比如直接转给了Mallory 的另一个钱包而不是Carol的),从而实现了“双重支付”。这笔“双重支付”交易使用了跟原有交易一致的UTXO,但收款人被替换成了Mallory的钱包地址。

然后,Paul利用矿池在伪造的块的基础上,又计算出一个更新的块,这样,包含这 笔“双重支付”交易的块链比原有的块链高出了一个块。到此,高度更高的分叉区块链取代了原有的区块链,“双重支付”交 易取代了原来给Carol的交易,Carol既没有收到价值25万美金的比特币,原本拥有的三幅价值连城的画也被Mallory白白 拿走了。

在整个过程中,Paul矿池里的其他矿工可能自始至终都没有觉察到这笔“双重支付”交易有什么异样,因为挖矿程序都是自动在运行,并且不会时时监控每一个区块中的每一笔交易。

为了避免这类攻击,售卖大宗商品的商家应该在交易得到全网的6个确认之后再交付商品。或者,商家应该使用第三方 的多方签名的账户进行交易,并且也要等到交易账户获得全网多个确认之后再交付商品。一条交易的确认数越多,越难 被攻击者通过51%攻击篡改。

对于大宗商品的交易,即使在付款24小时之后再发货,对买卖双方来说使用比特币支付也 是方便并且有效率的。而24小时之后,这笔交易的全网确认数将达到至少144个(能有效降低被51%攻击的可能性)。

需要注意的是,51%攻击并不是像它的命名里说的那样,攻击者需要至少51%的算力才能发起,实际上,即使其拥有不 到51%的系统算力,依然可以尝试发起这种攻击。之所以命名为51%攻击,只是因为在攻击者的算力达到51%这个阈值 的时候,其发起的攻击尝试几乎肯定会成功。

本质上来看,共识攻击,就像是系统中所有矿工的算力被分成了两组,一 组为诚实算力,一组为攻击者算力,两组人都在争先恐后地计算块链上的新块,只是攻击者算力算出来的是精心构造 的、包含或者剔除了某些交易的块。因此,攻击者拥有的算力越少,在这场决逐中获胜的可能性就越小。

从另一个角度 讲,一个攻击者拥有的算力越多,其故意创造的分叉块链就可能越长,可能被篡改的最近的块或者或者受其控制的未来 的块就会越多。一些安全研究组织利用统计模型得出的结论是,算力达到全网的30%就足以发动51%攻击了。全网算力的急剧增长已经使得比特币系统不再可能被某一个矿工攻击,因为一个矿工已经不可能占据全网哪怕的1%算 力。

待补充

待补充

比特币是基于区块链技术存在的一种数字货币

区块链技术简单理解就是一种通过点对点实现的电子货币账本系统

挖矿是最原始获取数字货币的“勘探方式”,实质上是用计算机解决一项复杂的数学问题,如果将区块链比作一个大帐本,其中的区块是账本中的某一页,而所有的矿工则是记账员,挖矿的过程就是在记账,同时也是在维护整个网络正常运转。

以比特币为例,每10分钟,所有的矿工一起计算一道数学题,谁先算出答案,就相当于挖到了这个区块、作为奖励即可获得相应的比特币。挖矿的设备最早使用电脑就行,通过电脑CPU计算数学题挖矿、随着比特币价格走高,越来越多的人参与挖矿,CPU挖矿慢慢转变为专业显卡,到近几年已经变为特定的矿机了。

温馨提示:

①本信息不构成任何投资建议,投资者不应以该等信息取代其独立判断或仅根据该等信息做出决策。

②投资有风险,选择需谨慎。您在做任何投资之前,应确保自己完全明白该产品的投资性质和所涉及的风险,详细了解和谨慎评估产品后,再自身判断是否参与交易。

应答时间:2021-03-18,最新业务变化请以平安银行官网公布为准。

[平安银行我知道]想要知道更多?快来看“平安银行我知道”吧~

PoW:工作量证明 (Proof of Work,简称 PoW ) ,简单的解释就是一份证明,用来确认你做过一定量的工作。因为监测工作的整个过程通常是极为低效的,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。比如现实生活中的毕业证、驾驶证等等,都是通过检验结果的方式所取得的证明。这就是说,你获得多少币,取决于你对挖矿贡献的有效工作。简单的理解,你电脑性能越好,你获得的收益就会越多,这就是根据你的工作量来执行币的分配。大部分的数字货币,比如比特币、莱特币等等,都是基于 PoW 模式的虚拟货币(算力越高、挖矿时间越长,你获得的币就越多)。

PoS:PoS 是一种在公链中的共识算法,可作为 PoW 算法的一种替换。PoW是保证比特币、当前以太坊和许多其它区块链安全的一种机制,但是 PoW 算法在挖矿过程中因破坏环境和浪费电力而受到指责。PoS 试图通过以一种不同的机制取代挖矿的概念,从而解决这些问题。

PoS 机制可以被描述成一种虚拟挖矿。PoS 主要依赖于区块链自身里的代币。在PoW 中,一个用户可能拿 1000 美元来买计算机,加入网络来挖矿产生新区块,从而得到奖励。而在 PoS 中,用户可以拿 1000 美元购买等价值的代币,把这些代币当作押金放入 PoS 机制中,这样用户就有机会产生新块而得到奖励。在 PoW 中,如果用户花费 2000 美元购买硬件设备,当然会获得两倍算力来挖矿,从而获得两倍奖励。同样,在 PoS 机制中投入两倍的代币作为押金,就有两倍大的机会获得产生新区块的权利。

佚名

每一笔比特币交易,都会被区块链网络中的节点记录下来,以此增强交易公信力,保护交易双方利益。但如果所有节点都参与记录的话,容易因为网络延迟等因素造成账本信息不一致,也难以避免记账人会篡改交易信息。

因此比特币采用工作量证明(Proof of Work)共识机制,让所有节点通过解决工作量证明难题的方式参与竞争,竞争成功的节点拥有新区块的记账权,并能够将记录的信息广播出去。其他节点接收后将根据此消息进行数据同步,确保账本一致。这种竞争记账权的过程,叫做挖矿,参与挖矿的节点,叫做矿工。矿工挖矿成功后可以获得区块奖励,即一定数额的比特币,还可以收取该区块上的交易手续费。在利益的驱使下,节点会积极参与挖矿并维护交易记录的真实有效。

比特币的发行只有一种方式,即区块奖励,也就是说比特币是通过挖矿产生的。不过,比特币并不能通过挖矿无限产生,其算法规定了每产生210100 个区块(约四年),比特币的区块链奖励就要减半一次。由于比特币的发行总量恒定为2100万个,预计会在2140年挖完。这个规定确保了比特币不会由于人为增发而发生严重的通货膨胀,可以保护比特币的价值。

比特币的运行以区块链技术为依托,比特币与区块链有着密不可分的关系。比特币是一种资产,而区块链就是为这种资产设定好运行规则的底层技术,从而保证每一笔交易顺利进行。这就好比视频文件与播放器之间的关系,视频的播放必须要通过播放器的底层技术处理才能实现。区块链技术的诞生源于比特币概念的提出,可以说区块链技术是比特币催化下的产物。目前,区块链技术不止运用于比特币等加密货币,在各个领域都有广泛的应用,但比特币仍旧是区块链技术上最早、最成功的应用。

所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。再通俗一点来讲,如果中国一名微博大V、美国一名虚拟币玩家、一名非洲留学生和一名欧洲旅行者互不相识,但他们都一致认为你是个好人,那么基本上就可以断定你这人还不坏。

要想整个区块链网络节点维持一份相同的数据,同时保证每个参与者的公平性,整个体系的所有参与者必须要有统一的协议,也就是我们这里要将的共识算法。比特币所有的节点都遵循统一的协议规范。协议规范(共识算法)由相关的共识规则组成,这些规则可以分为两个大的核心:工作量证明与最长链机制。所有规则(共识)的最终体现就是比特币的最长链。共识算法的目的就是保证比特币不停地在最长链条上运转,从而保证整个记账系统的一致性和可靠性。

区块链中的用户进行交易时不需要考虑对方的信用、不需要信任对方,也无需一个可信的中介机构或中央机构,只需要依据区块链协议即可实现交易。这种不需要可信第三方中介就可以顺利交易的前提是区块链的共识机制,即在互不了解、信任的市场环境中,参与交易的各节点出于对自身利益考虑,没有任何违规作弊的动机、行为,因此各节点会主动自觉遵守预先设定的规则,来判断每一笔交易的真实性和可靠性,并将检验通过的记录写入到区块链中。各节点的利益各不相同,逻辑上将它们没有合谋欺骗作弊的动机产生,而当网络中有的节点拥有公共信誉时,这一点尤为明显。区块链技术运用基于数学原理的共识算法,在节点之间建立“信任”网络,利用技术手段从而实现一种创新式的信用网络。

目前区款连行业内主流的共识算法机制包含:工作量证明机制、权益证明机制、股份授权证明机制和Pool验证池这四大类。

工作量证明机制即对于工作量的证明,是生成要加入到区块链中的一笔新的交易信息(即新区块)时必须满足的要求。在基于工作量证明机制构建的区块链网络中,节点通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。工作量证明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出。大家所熟知的比特币网络就应用工作量证明机制来生产新的货币。然而,由于工作量证明机制在比特币网络中的应用已经吸引了全球计算机大部分的算力,其他想尝试使用该机制的区块链应用很难获得同样规模的算力来维持自身的安全。同时,基于工作量证明机制的挖矿行为还造成了大量的资源浪费,达成共识所需要的周期也较长,因此该机制并不适合商业应用。

2012年,化名Sunny King的网友推出了Peercoin,该加密电子货币采用工作量证明机制发行新币,采用权益证明机制维护网络安全,这是权益证明机制在加密电子货币中的首次应用。与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。这种共识机制可以缩短达成共识所需的时间,但本质上仍然需要网络中的节点进行挖矿运算。因此,PoS机制并没有从根本上解决PoW机制难以应用于商业领域的问题。

股份授权证明机制是一种新的保障网络安全的共识机制。它在尝试解决传统的PoW机制和PoS机制问题的同时,还能通过实施科技式的民主抵消中心化所带来的负面效应。

股份授权证明机制与董事会投票类似,该机制拥有一个内置的实时股权人投票系统,就像系统随时都在召开一个永不散场的股东大会,所有股东都在这里投票决定公司决策。基于DPoS机制建立的区块链的去中心化依赖于一定数量的代表,而非全体用户。在这样的区块链中,全体节点投票选举出一定数量的节点代表,由他们来代理全体节点确认区块、维持系统有序运行。同时,区块链中的全体节点具有随时罢免和任命代表的权力。如果必要,全体节点可以通过投票让现任节点代表失去代表资格,重新选举新的代表,实现实时的民主。

股份授权证明机制可以大大缩小参与验证和记账节点的数量,从而达到秒级的共识验证。然而,该共识机制仍然不能完美解决区块链在商业中的应用问题,因为该共识机制无法摆脱对于代币的依赖,而在很多商业应用中并不需要代币的存在。

Pool验证池基于传统的分布式一致性技术建立,并辅之以数据验证机制,是目前区块链中广泛使用的一种共识机制。

Pool验证池不需要依赖代币就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础之上,可以实现秒级共识验证,更适合有多方参与的多中心商业模式。不过,Pool验证池也存在一些不足,例如该共识机制能够实现的分布式程度不如PoW机制等

这里主要讲解区块链工作量证明机制的一些算法原理以及比特币网络是如何证明自己的工作量的,希望大家能够对共识算法有一个基本的认识。

工作量证明系统的主要特征是客户端要做一定难度的工作来得到一个结果,验证方则很容易通过结果来检查客户端是不是做了相应的工作。这种方案的一个核心特征是不对称性:工作对于请求方是适中中的,对于验证方是易于验证的。它与验证码不同,验证码是易于被人类解决而不是易于被计算机解决。

下图所示的为工作量证明流程。

举个例子,给个一个基本的字符创“hello,world!”,我们给出的工作量要求是,可以在这个字符创后面添加一个叫做nonce(随机数)的整数值,对变更后(添加nonce)的字符创进行SHA-256运算,如果得到的结果(一十六进制的形式表示)以“0000”开头的,则验证通过。为了达到这个工作量证明的目标,需要不停地递增nonce值,对得到的字符创进行SHA-256哈希运算。按照这个规则,需要经过4251次运算,才能找到前导为4个0的哈希散列。

通过这个示例我们对工作量证明机制有了一个初步的理解。有人或许认为如果工作量证明只是这样一个过程,那是不是只要记住nonce为4521使计算能通过验证就行了,当然不是了,这只是一个例子。

下面我们将输入简单的变更为”Hello,World!+整数值”,整数值取1~1000,也就是说将输入变成一个1~1000的数组:Hello,World!1;Hello,World!2;…;Hello,World!1000。然后对数组中的每一个输入依次进行上面的工作量证明—找到前导为4个0的哈希散列。

由于哈希值伪随机的特性,根据概率论的相关知识容易计算出,预计要进行2的16次方次数的尝试,才能得到前导为4个0的哈希散列。而统计一下刚刚进行的1000次计算的实际结果会发现,进行计算的平均次数为66958次,十分接近2的16次方(65536)。在这个例子中,数学期望的计算次数实际就是要求的“工作量”,重复进行多次的工作量证明会是一个符合统计学规律的概率事件。

统计输入的字符创与得到对应目标结果实际使用的计算次数如下:

对于比特币网络中的任何节点,如果想生成一个新的区块加入到区块链中,则必须解决出比特币网络出的这道谜题。这道题的关键要素是工作量证明函数、区块及难度值。工作量证明函数是这道题的计算方法,区块是这道题的输入数据,难度值决定了解这道题的所需要的计算量。

比特币网络中使用的工作量证明函数正是上文提及的SHA-256。区块其实就是在工作量证明环节产生的。旷工通过不停地构造区块数据,检验每次计算出的结果是否满足要求的工作量,从而判断该区块是不是符合网络难度。区块头即比特币工作量证明函数的输入数据。

难度值是矿工们挖掘的重要参考指标,它决定了旷工需要经过多少次哈希运算才能产生一个合法的区块。比特币网络大约每10分钟生成一个区块,如果在不同的全网算力条件下,新区块的产生基本都保持这个速度,难度值必须根据全网算力的变化进行调整。总的原则即为无论挖矿能力如何,使得网络始终保持10分钟产生一个新区块。

难度值的调整是在每个完整节点中独立自动发生的。每隔2016个区块,所有节点都会按照统一的格式自动调整难度值,这个公式是由最新产生的2016个区块的花费时长与期望时长(按每10分钟产生一个取款,则期望时长为20160分钟)比较得出来的,根据实际时长一期望时长的比值进行调整。也就是说,如果区块产生的速度比10分钟快,则增加难度值;反正,则降低难度值。用公式来表达如下:

新难度值=旧难度值*(20160分钟/过去2016个区块花费时长)。

工作量证明需要有一个目标值。比特币工作量证明的目标值(Target)的计算公式如下:

目标值=最大目标值/难度值,其中最大目标值为一个恒定值0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

目标值的大小与难度值成反比,比特币工作量证明的达成就是矿中计算出来的区块哈希值必须小于目标值。

我们也可以将比特币工作量的过程简单的理解成,通过不停变更区块头(即尝试不同nonce值)并将其作为输入,进行SHA-256哈希运算,找出一个有特定格式哈希值的过程(即要求有一定数量的前导0),而要求的前导0个数越多,难度越大。

可以把比特币将这道工作量证明谜题的步骤大致归纳如下:

该过程可以用下图表示:

比特币的工作量证明,就是我们俗称“挖矿”所做的主要工作。理解工作量证明机制,将为我们进一步理解比特币区块链的共识机制奠定基础。

经过以上对什么是比特币挖矿和区块链共识机制的分享介绍,相信你对比特币采用什么共识机制有了大概的了解,想知道更多关于什么是比特币挖矿和区块链共识机制的知识,关注,我们将持续为您分享!

什么是比特币挖矿和区块链共识机制具体解答和比特币采用什么共识机制细致分析文档下载: PDF DOC TXT
文章来源: 肖肖
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2384272385@qq.com举报,一经查实,本站将立刻删除。