没有完美的共识,去中心化的问题,需要适度的中心化来解决

TVB

原创首发

09-11

❖写在前面❖


我们都知道,区块链的核心是共识机制,或者叫共识算法。


因为区块链是一个分布式网络,是一个由很多个服务器去存储和处理事务的网络。那么这么多服务器,如何一起工作呢?是某一个服务器说得算、其他听从?服务器们轮流说得算?那么如何轮流呢?还身高排队?按考试成绩?


所以呢,就需要一个这么个机制,所有的服务器按照这个机制去工作。


从技术层上,共识机制,是一个写在代码里的算法,区块链上所有的服务器运行程序,执行代码,按照共识算法来工作。按算法,轮到哪个服务器来记录和处理信息,就由这个服务器率先来记录和处理信息,其他的服务器负责验证信息的正确性。


从关系层上,共识机制,是一个制度,所有的服务器按这个制度工作。按这个制度,轮到哪个服务器主导工作,它就主导工作,轮不到主导工作的服务器,负责监督和配合工作。


遗憾的是,现有的共识机制,没有一种是完美的。


❖POW❖


POW具有一定的公平性。


每一轮记账,所有的服务器会去计算数学题,计算的方法简单的说,就是去尝试寻找哈希值。所有的服务器计算的难度相同、但题目不同的数学题,所以谁会先计算出来哈希值,具有一定的随机性。


长期来看,算力高的服务器,率先解出哈希值的概率更高一些。就像考试只有一道判断题,凭运气大家都有可能答对,但是如果考试很多次,肯定是掌握知识最好的人答对的情况最多。所以,POW是以算力为核心但兼有随机性的,这一点体现出POW的公平性。


但是,POW有两个问题:

一是浪费,太浪费。那么多台服务器,闲着没事就解题,这个工作其实有点浪费,因为这个工作只是为了竞争记账权,记账才是真正的工作。除此以外,因为服务器太多,会出现同时计算出哈希值的两个以上服务器,就会出时出现两个块,会发生软分叉,这个事就更浪费效率了。


二是51%攻击问题。只要获得超过51%的算力,就可以攻击POW区块链。比如我是黑客,我用100个币买了你的一个房子,然后我发起51%攻击,账目上记了我给你100个币,但我在这笔账之前重新记录,新的记录里没有我给你100个币这件事,因为我算力高超过全网一半,我就能强行记下去。而POW是最长链原则(最长的账本原则),我能强行记一个最长的账本。于是,我得到了你的房子,还没给你币。


注:服务器即矿机


❖POS❖

POS不再以算力为核心,而是以币龄为核心。币龄=矿工抵押的币*抵押时间(未出块的时间,如果出块了这个时间会被清零)。这时候,不需要为了竞争记账权去计算哈希值了,这个省了很多时间。效率节省了。


另外,以币龄为核心可以抗51%攻击。如果想要攻击POS区块链,需要具有51%的币龄,那需要抵押币,这样攻击以后虽然获得了收益,但币价很可能降低了,原来抵押的那些币也贬值了。所以POS共识中,发生51%攻击的可能性不大。


但是,POS也有问题。


第一,POS仍然是全节点,上万、十万甚至更多的矿工共同记账,这个工作量很大,所以POS区块链性能仍然有待提高。


第二,POS共识中,以钱为根本了。这确实像资本主义了,虽然POW所谓的算力也是用钱买的,但没有像POS这样赤裸裸。


第三,POS对矿工性能的激励不足。在POW共识中,激励矿工用高算力的服务器,这样相对能激励服矿工使用高性能的服务器,从而提高POW区块链网络的性能。但是POS共识中,激励着矿工 抵押币、而不是搞服务器性能,这样不利于POS区块链的网络性能提升。


注:矿工是服务器(矿工)的所有者与运营者



❖DPOS❖

DPOS可以说是争议最大的共识机制。


DPOS共识在POS共识的基础上,将记账节点的数量大大的减少了。EOS的记账节点数量变成了21个,所以有人认为DPOS共识这不算区块链了,但另一部分人认为节点数量少,但是互相制衡仍然是区块链。


DPOS共识,因为参与记账的节点变少了,肯定是效率变高了。


另外,由于DPOS如果想要发起51%攻击,那需要超过三分之二的超级节点共同作恶才可以。DPOS虽然不要求超级节点抵押币,靠的是用户持币给他们投票。但事实上,DPOS共识下,大部分超级节点都会自己抵押币给自己投票的。所以这时候和POS一样,如果攻击区块链会导致币价下降,所以DPOS区块链上,一般也不会发生51%攻击的。


DPOS共识的问题是中心化。在记账上问题不大,超级节点相互制衡,并且前面说过,超级节点实际也有抵押币,所以很难出现联合作恶的情况。


第一,DPOS中心化表现在治理上,区块链的治理,比如代码更新、事务决策等,是由超级节点投票,而超级节点存在共同利益,并且数量较少,这就形成了中心化的决策。如果B1提出一个影响超级节点利益的新版EOSIO,超级节点投票恐怕不会通过运行这个新版的EOSIO。


第二,DPOS中心化的另一个表现就是财富分配。DPOS共识中新生成的币,更多的币属于超级节点。


注:节点是服务器(矿机)的运营方,因为运营方是团队而非个人,故称之为节点

超级节点是负责记账的那些节点


❖SPOS❖


SPOS是以staking经济为关键的一种权益证明。


SPOS将POS中的矿工改成了只需要抵押币和staking,而不需要记账。记账的只有超级节点。


SPOS优点之一是提升的效率,和DPOS一样,只有少量节点参与记账。


SPOS优点之二是保持了财富的去中心化,新发行的币同时分给记账节点和普通矿工。


但是,SPOS也有缺点。


第一,矿工在staking时,和dpos相似,抵押币给超级节点投票。但是dpos中投票是没有收益的(共识算法中是没有的,超级节点私下给投票者分红这是另一回事),而dpos中投票是有收益的。那么,在spos区块链中,矿工只会支持那些给自己分钱多的超级节点,而不是真的看哪些超级节点对区块链的贡献更大。


第二,同样的道理。在dpos共识中,为了获得更大的支持,超级节点了除了给用户福利以外,还会在区块链的应用层、甚至代码层作出贡献,从而争取更多的投票。而在spos共识中,超级节点得到的激励就是给投票者发币,而不是为区块链生态做更多贡献。

 

注:staking是一种行为,矿工或用户抵押币,然后以抵押币的数量为权重,支持或者说给超级节点投票或者叫借币给超级节点,这种行为叫staking,这种经济形式叫staking经济。 


❖写在最后❖


每一种共识都有优点,但同时有缺点。


没有一种算法可以既公平、又安全、又有效率,又可以激励矿工、节节等为区块链做出巨大贡献。


没有算法可以完美的解决人性问题,人性问题需要算法+人治来解决。

去中心化的问题,需要适度的中心化来解决。

评论

雨落伊人

姨太就是使用POS算法的吧
09-11

脑袋已开

终于了解了各种共识机制
09-11

卫生巾代言人

POW最不好的地方就是造成的能源浪费太多了
09-11

Kimi老大

矿工的选择往往决定着一个币种的未来
09-11

剑落凡尘上

赞!说实话,写得很详细了!
09-11

推荐阅读

闪电

原创 首发

09-28

关注

PCHAIN

09-09

关注

博链财经

原创

09-01

关注

返币

09-24

关注

Conflux中文社区

原创

09-17

关注
关注

Vpower

09-26

关注

EOS原力

原创

09-23

关注

Vpower

原创 首发

09-27

关注

Vpower

09-18

关注
加载更多