区块链小白的学习笔记(3):共识机制
区块链这个概念,很多人都听说过,但是绝大部分人的认知,几乎仅限于比特币,这就是一种很大的误解了。
区块链是一种去中心化的分布式记账系统,简单地来说,它解决了人们的共识问题,也就是信用体系的搭建。在传统社会中,一个人是否有信用,取决于他过往的所作所为。而一个人的历史,只有他身边熟悉他的人才知道,因此,一个陌生人的信用问题,对普通人来说,是很难判断的。
警察在必要的时候可以查阅一个人的资料,这个资料是存储在特殊系统的中心机房里的,如果有能量找到特定的人,理论上是可以修改资料的。而如果采用区块链技术来存储这些信息,是谁都无法篡改的。
那么,如何确保区块链信息的可信程度呢?这就要提到区块链的共识机制了。
昨天的文章里面,提到了DPOS机制,这就是一般区块链用的共识算法之一。常用的共识算法,还包括POW和POS。
Image from pexels
POW不是程序函数中的pow()函数,而是Proof of Work,是工作量证明。简单来说,就是证明人出示计算结果,这个结果众所周知是很难计算的但却很容易验证的。BTC使用的就是这种机制。因为其计算过程很复杂,被人们称为“挖矿”。
这个过程越来越难。像区块链技术中的第一个区块创世纪块于2009年1月3日诞生,这是比特币的第一个区块,在这个区块打包完成后,中本聪获得了50枚比特币。到2013年底,比特币挖矿难度首次达到了1个Gigahash哈希值,我们不需要具体理解其中的含义,只需要知道,此时挖矿的难度,是创世纪块挖矿难度的1000×1000×1000倍。开采最后一枚比特币可能需要长达100年的时间。这个过程中,所耗费的电能是巨大的,现在也受到不少人的诟病。但是,POW作为第一代的区块链共识机制,是功不可没的。
后来,人们为了解决POW的费时耗能的缺点,人们发明了POS。英文是Proof of Stake,也就是股权证明。这是一种创新,没有了挖矿过程,解决了耗能问题。
这有点像我们现在的银行,POS根据一个人持有货币的量和时间,给他发利息的一个制度。它对节点的性能要求低,达成共识的时间也很短,很适于新兴货币的基础搭建。但是,这也有缺点。就是持币人持有的币数越多,所得到的利益就越大,这么大的诱惑,有可能使代币发行者抛售,这对信任机制是有影响的。为了弥补这个问题,一些项目都采用POW+POS的双重机制,用POW来挖矿,用POS来维护网络稳定。
在POW和POS的基础上,又出现了DPOS机制,它既解决了POW能耗高的问题,又避免了POS权益分配下可能的“失信”问题。
DPOS(Delegated Proof of Stake),是委托权益证明。在DPOS共识制度下,会选出一定数量的代表,来负责生产区块。这些代表是怎么被选出来的呢?是每一位持币人,根据手中的持有的代币投票选出来的。
但凡事有利有弊,DPOS这种机制,引入了见证人,实际上是一种偏向于中心化的,似乎和区块链去中心化的初衷相背离。但是,去中心化不是目的,DPOS出块时间很短,效率非常高,是这3种机制中综合得分最高的一种机制了。
从这3种机制,可以看出实际上是针对人性的弱点做出的改良发展,因此,区块链不仅仅是简单的程序科学问题,也是人性哲学问题,值得好好研究一番。
Posted from my blog with SteemPress : https://arch-deletion.000webhostapp.com/2019/06/3