MiniBC区块链V004 - 工作量证明POW
共识算法
在整个区块链工作过程中,会有很多的机器加入其中,每一台机器成为一个节点,它们互相协作,来共同维护区块链的安全和数据的一致。其中,生成新的区块就是一项很重要的工作。因为新的区块里面包含很多新产生的重要数据,比如交易信息等。为了让这项工作有序和可控,通常会在所有节点上通过竞争选出一个节点,由这个胜出的节点负责打包新产生的数据,并通知和传播给其它节点。
通过竞争选择优胜者的机制称为共识算法,目前主流加密货币引入了很多共识算法,比如pow, pos, dpos, pbft等等。象比特币就是采用了pow算法,也就是工作量证明。
工作量证明
工作量证明 (Proof Of Work,简称POW),就是用来确认你做过一定量的工作的一份证明。通常,监测工作过程是极为低效的,而通过对工作的结果的认证来证明完成了相应的工作量,则是一种非常高效的方式。比如现实生活中的毕业证、驾驶证等,也是通过检验结果的方式(通过相关的考试)所取得的证明。
区块链的工作量证明,就是由系统给出一个难题,让节点们各自通过计算来解决这个难题。凡是声称解决难题的节点,都要把自己的答案交由其它节点进行验证,最终选出优胜者,由它来负责生成新的区块。为什么节点有动力耗费自己的资源去解决难题呢?因为新区块的生成者有一定的奖励,这就是比特币中所说的挖矿。在区块链中,网络的一些参与者(矿工)努力维持网络,向其添加新区块,并获得对其工作的奖励。正是由于他们的工作,区块以安全和及时的方式被整合到区块链中,保持了整个区块链数据库的稳定性和连续性。
另外,工作量证明算法必须满足要求:完成工作很难,但验证证明很容易。证明通常会交给其他人,因此对他们来说,验证它不应该花费太多时间。
我们要实现的工作量证明算法与比特币的算法相同,就是给定一个256位的大数字target(称为难度目标),节点们通过变化新区块Block中成员Nonce的数值,使得Block的hash值小于或者等于难度目标target。
P

最低0.47元/天 解锁文章
4733

被折叠的 条评论
为什么被折叠?



