区块链基础--工作量证明

想知道更多区块链技术知识,请百度【链客区块链技术问答社区】
链客,有问必答!!

我认为技术和共识构建了区块链,那么就由几个问题需要去解决,第一:如果由多个打包节点,那会不会区块链分叉?第二:如果诚实节点的工作无法得到正常激励,那会不会导致节点越来越少?第三:如果系统中的51%节点都是恶意节点,会不会导致系统陷入被操作的境地?为了这三个问题,将以比特币为例,去介绍最火的公有链运行机制:工作量证明。
区块链会跟随某种资源的占有量来选取打包的节点,这种资源如果是计算能力,那么就称之为工作量证明,简称POW,如果这个资源是币的拥有数,那就称为权益证明POS,如果这个资源是可以授权的股份,那就称为股份授权证明Dpos。

工作量证明
那么计算能力到底是怎么反应工作量的呢,对区块链节点来讲,其实单纯的打包和上传数据是非常简单的,只是需要系统选择某一个特定的节点来处理这件事情而已,为了避免所有节点都在打相同的包而导致分叉,比特币通过哈希穷举增加打包难度来延长打包时间,简单说就是每一个节点需要在10分钟之内找到一个随机数,保证这个随机数加上之前区块的哈希值组合经过哈希运算之后能够满足一定的规律(比如第一位为1,第三位为5,第四位为8等等,保证满足条件的结果只处于所有结果中的很小一个范围内)。解决这个问题的办法之后一个,就是不断的尝试新的随机数,在2014年的时候,产生一个区块需要10的20次方 次哈希运算,也就是说,这个目标范围仅仅是1/100000000000000000000。随着计算机计算能力的增强,要保证区块产生的时间(10分钟),那么只能不断的修改计算的难度,难度增加则需要的计算次数增加,难度减少则计算次数减少,在比特币规则里面,就有修改难度这一项,所以,现在要获取到一个这样的随机数,需要计算的次数要远远高于这个数字,如果说你幸运的找到了这样一个随机数,那么你就可以作为打包节点进行打包,当然在比特币刚出来的时候,我们可以用个人电脑去计算,现在个人电脑已经不可能完成这项任务了。
使用哈希穷举来实现工作量证明有两点优势:
a.随机性,即使知道想要的目标范围,每个节点依然只能通过不断的尝试去获取随机值。
b.易验证性,如果有人声明找到了随机数,其他节点可以很快的通过哈希运算来验证这个数的正确性。
打包激励
如果只有工作量没有奖励,节点可不愿意做这种耗时耗资源的事情,所以就设计了两种激励方式:打包奖励和交易费。
1.打包奖励
打包奖励是创建区块链的节点获得一定数量的比特币,其实就是在区块中增加了一项指向自己地址的交易,交易的金额来源有特殊性。对于比特币来说,每生成21万个区块,奖励数量就会减半。
2.交易费
比特币在设计之前规定总数为2100万个,比特币都是通过奖励的形式产生,如果发放完成,那么交易费将是支持打包这工作的一个重要因素。交易费就是指每笔转账都需要由转账者支付打包者一定的费用,
简单说就是这种进行工作量证明并获取打包奖励的行为就叫做挖矿。
在工作量证明中,为了获得奖励,每个人都希望自己被选为打包节点。从现在比特币的运行情况,算力分布的相对较为分散,在一定程度上保证了工作量证明的公平性,也就保证了区块链系统的运行。但是由于大量的电力和硬件资源用域哈希函数穷举,这种穷举方式除了选择节点外是没有任何资源转化价值的,也就是比特币被一些人诟病的原因,不过每个人都由自己客观的看待这个问题,毕竟仁者见仁智者见智。

www.liankexing.com

猜你喜欢

转载自blog.csdn.net/weixin_44172023/article/details/86576559