一文让你明白区块链的共识机制POW

一文让你明白区块链的共识机制POW

2018-04-01 16:02    来源:链道学社

区块链的共识机制之一:工作量证明POW,是用来解决比特币随意记账的一种方法,就像我们需要毕业证书来证明我们完成大学四年的学习一样,比特币也需要通过“工作量证明”机制来确保记账的权利的宝贵性。

一文让你明白区块链的共识机制POW_第1张图片

众所周知,普通的网上交易中,是由一个权威中心来决定交易的有效性,比如说,银行的网银,银行就充当的这个角色,由银行来证明一个交易的有效性。

而比特币没有权威中心,那么由谁来决定交易的有效性呢?那么,就有点类似于我们选举一样,由大家来投票表决,得票最多的交易,就会被认定为一个合法的交易。没有了权威中心,好像缺乏信用,然而由投票产生的交易,却是最值得信任的。所以,比特币也被一些人称为是“民主货币”。

在比特币的算法中,投票并不是一个人一票,而是一个CPU一票。那么,如果一个人想控制比特币,TA必须有足够的CPU,那么当比特币的规模越庞大,控制就越难。就好比一个人可以很容易的控制几百、几千的选票,而当选票规模越大,控制就越难。

另外,当我们在做这种投票工作,假设工作量很小的话,那么确认交易仅需要少量的运算能力,就可以完成了,这会导致伪造这种交易,也很简单,所以比特币就引入了工作量证明(Proof-of-Work)机制。在这个机制里面,对一个交易进行证明,需要耗费一定的运算能力和时间,一旦运算成功,那么就确定了一笔交易。而反过来,普通的客户端,只要进行一个很简单的运算,就可以知道这个交易是真实的,还是假冒了。这种机制,就好比在现实生活中,政府花费大量人力,对钞票进行防伪处理,而普通的民众,只需要对钞票进行简单的辨认,就可以识别真假。

在比特币中,这种工作量证明机制的算法叫做哈希现金,这种算法其实早就有了,它的原理,就是在交易的数据块中,要找到一个随机数,这种随机数包含了多个0,在计算机只能用穷举的办法,来找到这个随机数。如果我们要求的随机数中,随着0的数目增多,计算工作量呈现指数级增长。一旦我们找到了这个随机数,也就确定了一个数据块,除非对数据块进行一定的工作量运算,否则,数据块是无法更改的。

由于这种哈希算法,它是一种穷举法,如果网络上的诚实节点超过50%,基本上伪造者想伪造一个交易成功,它必将成功几率很低,但还是有概率的。

这种情况下,比特币就引入了另外一种机制,叫交易链,所有的交易,都是按时间戳,串联在一起的一个链条。就好比一条绳子上面打了很多绳结,每个绳结表示一个交易,每个绳结在时间上是有先后顺序的。而链条最长的,就被公认为为真实的交易。一个运算能力低于50%的伪造者,想伪造一个交易,那么有一定的概率,如果想伪造两个交易,并且比运算能力更强的诚实者还快,那么概率更低,而且这种概率,随着时间的推移,成功的几率呈现指数级下降。

一文让你明白区块链的共识机制POW_第2张图片

举个例子,假如历史已经产生了100个数据块,那么一个伪造者想推翻这些交易,TA必须运算出101个数据块,这个交易链条才可能比原先的链条长。而因为诚实者的运算能力比伪造者大,所以当伪造者运算出101个数据块,其实诚实者产生的新的数据块,已经远远超过100个,原先链条的长度,已经延长至远远超过201块的长度了,伪造者还是没法超过诚实者的链条。

这种工作量证明,有一个特点,就是交易不能是实时的。首先,当前交易的数据块被运算出来后,系统特意在这个交易之后,有N个交易被计算出来后,当前交易才被确认。那么,伪造者想推翻某个交易,就需要一样生成后面N个交易数据块,这种成功概率,对伪造者趋近于0。

目前每笔比特币交易,大概需要耗时10分钟才能被确认,伪造者由于运算力更低,在10分钟内产生的数据块,对于诚实节点来说,新产生的数据块将远大于伪造者,从而导致伪造者无法成功伪造。

而比特币还引入了一种奖励机制,当诚实节点计算出一个数据块,它能得到一定数量的比特币奖励,诚实挖矿得到的比特币奖励,往往比伪造交易得到的奖励更多。

再者说,由于之前的交易已经确认,所以伪造者所攻击的,不过是把自己某次交易进行篡改。由于每个用户,对自己的比特币钱包,都拥有自己的秘钥和密码,每个人只要妥善保管好自己的密码,那么伪造者也无法制造出该用户的公钥,也就无法伪造该用户的交易。伪造者能攻击的,就是自己的交易,先发起一个交易,让接受到货币的对方,以为交易成功了,从而把货物发出去,然后伪造者再发起攻击,试图把这个交易取消。不过这种攻击的可能性,前面已经论证过了,可能性极低。

PoW依赖机器进行数学运算来获取记账权,资源消耗大、共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。

PoW的优点:完全去中心化,节点自由进出。

PoW的缺点:目前比特币已经吸引全球大部分的算力,其他再使用PoW共识机制的区块链应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长。

使用PoW的项目有:比特币、以太坊前三个阶段——Frontier(前沿)、Homestead(家园)、Metropolis(大都会)。以太坊的第4个阶段,即Serenity(宁静),将采用权益证明机制。

作者:晓熙

来源:链道学社

你可能感兴趣的:(区块链)