LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 浅谈POW共识机制及优缺点

浅谈POW共识机制及优缺点

2021-02-26 酱香型韭菜 来源:区块链网络

POW工作量证明(英文全称为Proof of Work)在比特币之前就已经出现,中本聪在设计区块链的共识机制的时候就是借鉴了POW工作量证明。常见的是利用HASH运算的复杂度进行CPU运算实现工作量确定。工作量证明(Proof-of-Work,PoW)一般定义是一种对应服务与资源滥用、或是阻断服务攻击的经济对策。一般是要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。

区块链的PoW共识机制, 借鉴了很多HashCash方面的东西,HashCash 最早是用来处理垃圾邮件的。

在一个PoW系统中, 一定会有两个角色, 一个是工作者, 一个是验证者。那区块链如何进行PoW共识的呢?

首先我们需要先了解一下区块的构成,区块分为区块头和区块体, 其中区块之间的联系是通过存储父区块哈希联系在一起的。区块头的各个组成要素:父区块头哈希值:前一区块的哈希值,使用**SHA256(SHA256(父区块头))**计算。占32字节

时间戳:该区块产生的近似时间,精确到秒的UNIX时间戳,必须严格大于前11个区块时间的中值,同时全节点也会拒绝那些超出自己2个小时时间戳的区块。占4字节

难度:该区块工作量证明算法的难度目标,已经使用特定算法编码。占4字节

随机数(Nonce):为了找到满足难度目标所设定的随机数,为了解决32位随机数在算力飞升的情况下不够用的问题,规定时间戳和coinbase交易信息均可更改,以此扩展nonce的位数。占4字节

Merkle根:该区块中交易的Merkle树根的哈希值,同样采用SHA256(SHA256())计算。占32字节

PoW证明过程也就是俗称的挖矿过程,也就是找到合适的哈希值,这里不详细说明区块打包过程, 区块通过一定的算法被生成, 当然生成是需要一定的代价的。区块头里的各个值并不是随机的, 而是由固定的算法得出, Merkle根哈希值就是把交易打包变成一颗Merkle树, 最后得出根的哈希值,难度值是根据算法不断调整,要维持出块速率是大约10分钟出一个块。

首先我们把所有交易打包,生成Merkle树,计算Merkle根的哈希值,然后组装区块头,把区块头不断进行SHA256(SHA256(区块头))操作,然后判断是否小于网络目标值,这里其实就是把它变成2进制,二进制前面有多少位是没有0的,因为有1的话,这个十进制的值肯定是很大的,就不会符合条件。如果大于这个目标值,说明前面的位数没有满足前多少位为0的条件哈希不成功,那么就改变随机数值,组成新的区块头,继续哈希。这是就是挖到矿了,其他节点验证的话也简单只要做一次SHA256(SHA256(验证区块头))来判断。

PoW优点非常明显:去中心化,将记账权公平的分派到其他节点,记账权是通过看节点的PoW, 谁挖矿最快, 谁就能拿到这个矿,安全性高,破坏系统需要投入极大的成本,因为获得正确哈希值的概率和算力成正比,如果没有掌握51%的算力就不能作弊。这样代价要高于诚实挖矿,所以安全性高

缺点也相对突出:会造成资源浪费,因为挖矿需要大量的哈希运算,需要电力和各种算力资源,而且找到合适的哈希值实际上并没有其他的作用。网络性能太低因为比特币出块的时间是10分钟, 所以交易确认至少需要10分钟,而且目前支持支持每秒7笔交易的速度,不适合商业用处。PoW共识算法算力集中化。目前挖矿矿池是主力,算力高的矿池有选择权, 持本人么有参与决定的权利

鉴于pow的缺点,现在公链的突破主要集中在了提升网络性能和适应商业应用上,比如目前在性能上完全支撑全球房产上链的REITs CHAIN公链,就是采用了将采用POW+DPOS混合机制,数据处理峰值速度已经超过了3000TPS(每秒处理交易数量)远远高于比特币的5TPS,已经能够满足大部分应用场景的需求。

本文借鉴了许多技术大咖的论述,一并感谢,虽然尽量将其通俗化了,但肯定有不当之处,欢迎大家批评指正。

—-

编译者/作者:酱香型韭菜

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...