【小哈划重点:前言:本文的作者是一名区块链开发者,但开始阅读的你不用担心,专业的知识点都会有最白话的注解。本文提供了不同共识机制的支持者和】
前言:本文的作者是一名区块链开发者,但开始阅读的你不用担心,专业的知识点都会有最白话的注解。本文提供了不同共识机制的支持者和反对者的观点和论据,以及共识机制未来可能的走向。阅读本文最大的乐趣来自于:某共识机制的一些特性在反对者的观点中是劣势,但在支持者的观点中却是优势,我们来看看他们的论据是否都能站得住脚。
一切都要从比特币说起
在比特币出现之前,加密货币(1)就已经开始流行起来,我们可以用密码学来认证货币(2)和防止货币被伪造(3),但双重支付问题(4)一直存在于加密货币的系统中。在分布式数字系统中,可能会有同一笔钱在很短的时间内发送给两个人,并且被系统都认定为有效,所以中本聪设计了一种共识来消除这种冲突,也就是说当冲突出现时,网络将识别出最早出现的交易,而网络中的每一个参与者都只认可这个最早出现的交易,也只有这笔交易会被写进区块(5)中。
那么问题来了,网络系统中的参与者如何才能彼此信任去达成共识呢?中本聪又设计了一种挖矿(6)的方式来进行区块验证(7),这些矿工都是匿名的,他们可以随时进出这个网络系统,他们不用向任何人去证明自己是可信的,他们只需要通过算力解除数学难题,最早解决数学难题的矿工就可以为下一个区块打包,并且获得货币奖励,这就是我们经常听到的工作量证明(POW)。
POW和POS的论战
经过一段时间的实践后,比特币如今的耗电量堪比整个荷兰国家的耗电量,POW的反对者认为工作量证明浪费了大量的电能,并且那些没有获得奖励的矿工所浪费的资源没有创造任何价值(起码第一个解决数学难题的矿工还为区块链打包了区块-_-),所以,他们中的很多人开始支持权益证明(POS)为代表的低成本打包区块的共识机制。然而POW的支持者认为,正是因为每打包或者篡改一个区块需要提前耗费大量的能源和成本,才保证了整个系统的安全性,其根本理念是:想获得,先付出!攻击者需要付出比所有正常的矿工更高的算力和成本才可能篡改区块链,所以,每一个矿工所消耗的资源都是为了保护这个系统不被攻击,如果这些矿工停止挖矿了,那么攻击者很快就能破坏整个网络系统,所以,他们的观点可以被归类为:为保护财产而生的“保险箱”是一种浪费么?
那么,POS的支持者这个时候肯定要说了,难道就不能用一种更低耗能的共识机制来充当这个“保险箱”么?在系统中,持有加密货币的参与者都可以质押手中部分或全部的货币,来竞选获得打包区块的资格,系统会随机选出几个参与者来创造下一个区块,但是质押货币数量越多的参与者赢得资格的概率也会更高,获得资格的参与者对区块进行数字签名(8)从而创建新的区块,这就是我们经常听到的权益证明(POS)。
在POS支持者看来POS最大的优势就是可以无成本的创建新的区块,并且认为权益证明将区块打包的权利,交给加密货币持有最多的那些人手里是更合理的,因为这些人会更重视和维护这个系统。而一些POS反对者则质疑,在POS的机制下富人只会变得越富有,最终会趋向中心化,然而,POS的支持者在这一点上是如此回应的:POW的算力中心化的趋势也是非常明显,无论是POS还是POW,富人都变的更富有,同时贫富差距也会进一步拉大。本人认为这个观点是很牵强的,因为共识机制应该站在更高的位置去解决问题,而不只是去跟别的共识机制去比较,意思好像是既然大家都有这种问题,那就无所谓的态度,共识机制要做的事情应该是去消除贫富差距,而不是去加剧!
POS反对者继续质疑到:正是因为POS可以无成本的创建区块,那么这就会让参与者有动机在对自己最有利的一条区块链上创建区块,因为一旦最有利的区块链被认可,那么就可以获得更多的利益,如此这会导致多个区块链跟真正的区块链进行竞争,并且让新进入系统的人无法从多个区块链中辨认出真正的区块链,除非他们询问已经存在的参与者,才能知道哪一条区块链是真正的,正因为这一点,质疑者认为POS并不是真正的分布式共识机制,因为其共识只包括了在线的参与者,而不包括离线的或者新来的参与者。相比较而言,POW总是承认更长的那一条区块链,再加上创建区块是需要提前付出成本的,所以矿工们总是会在最长的区块链上挖矿,而更短的区块链很快会被遗弃掉。
POS支持者回应到:如果一个打包区块的参与者在无效的区块链上打包了区块,那么,一旦被系统识别出之后,这个参与者将失去他们所有被质押的货币,所以,POS比POW更能让区块打包者有动机去诚实行事。
但是POS反对者认为这种惩罚模式是不保险的,因为一旦不良的行为出现后,惩罚机制才会启动。在POS的系统中,都是通过对区块进行数字签名而创建区块的,那么这些签名密钥就变得尤其重要,任何一个获得这些签名密钥的人都可以分叉这个网络,那些曾经持有货币的参与者不代表现在或者以后也会继续持有,卖光货币的参与者中也会有曾经给区块打包的,那么他们会不会有人故意的分叉这个网络呢?毕竟创造区块是无成本的,万一他们的这条区块链被认可了,那么会获得可观的利益,这会给POS系统带来大量的竞争链(9)。
POW和POS的替代方案
正因为POW和POS有其明显的劣势,此时声明能解决POS的硬分叉和POW耗能问题的DPOS共识机制出现了,这个系统有21个超级节点,这21个超级节点是通过竞选(10)来获得,他们有无穷大的权力,所以,当出现两条区块链时,他们可以选择被认为正确的那一条区块链,当某个参与者的账号被盗或者私钥遗失时,他们可以帮着这个参与者找回损失和私钥,并且当一个超级节点打包区块时,只需要相邻的节点进行验证即可,不需要所有的节点都对其进行验证,如此便加快了打包区块的效率,为了让这21个超级节点能遵守共识协议,他们签署了一份现实世界的法律合同来约束他们,即任何一个超级节点破坏了系统,那么可以通过现实世界的法院来起诉他们,所以很显然,DPOS是让整个系统趋向了中心化而提升了效率,但DPOS的支持者认为,人类的世界是需要中心化来治理的,完全去中心化是不可行的,所以DPOS是一个多中心化治理的机制。
幸运的是,总是有那么一批人想方设法去创建去中心化的共识机制,有些极客甚至达到了信仰的程度,认为完全去中心化,并不代表没有秩序或者没有效率,而是更加的公平和自由,只需要有恰当的共识机制和技术就可以进一步地实现,所以在POW的耗能问题上和算力集中化的问题上,目前有这样的方案出现了:
处理POW算力浪费的方案:有一种素数币,这是一条含有的所有值都是素数的区块链,在这个系统中,研究的重点是寻找完成算数更加有效的方法,它让所有的计算都变得对社会更有意义,比如说,假定存在一个计算,由于某种原因能够使研究人员在治疗癌症的道路上明显地进步,将这个计算整合到货币中,区块链奖励将激励所有人去完成运算,无论有无获得货币奖励的矿工,他们付出的资源对社会都是有贡献的。
处理POW算力集中化的方案:即采用抗ASICS(11)的挖矿技术,防止特殊矿机挖矿,而支持普通的矿机挖矿,让更多的普通人能参与到挖矿中来。
除了在POW和POS基础上改进的共识机制外,还有一些新的共识机制正在被专业人士研究中,一旦他们公开了自己的研究成果,我也会第一时间精炼出来推送给大家。总而言之,技术是不断迭代的,我们应该用发展的眼光去看待整个区块链行业,千万不要被那些煽动性的文章局限了你的视角(他们只给你看支持他们论点的论据),尤其诸如:去中心不是目的而是手段这样的观点,这句话实际上是没毛病的,因为中心化有中心化的好处,但是那些说完全去中心化是不可能的,从而推理出必须要中心化的论点的人,我认为是赶鸭子上架,在规定期限内做不出去中心化的产品,然后拿一个中心化的产品先交个差,然而那些明知道很难却还要去实现去中心化社区的人,总是更能让我敬佩!
(1)加密货币:加密学使我们在互联网上发送的信息不被截取和篡改,就像给你的货币上了一道锁,有钥匙的人才能打开。
(2)认证货币:如果你想支付一笔货币,系统需要验证这些货币是否归你所有,并且你的账户中的货币数量是否足够可以支付。
(3)防止货币被伪造:数字货币在互联网上只是一片代码,是可以被复制的,但是加密的数字货币是不能被复制的。
(4)双重支付:当一笔钱在支付的过程中会有一段时间是系统认证时期,这个时期这笔钱还在支付者的账号中,可以被不诚信的支付者再一次支付给第二个人,而这时,系统会检测到支付者的账户中有这笔钱,所以第二次交易也会被系统认定为有效,也就是同一笔钱被花出去两次。
(5)区块链:所有参与者都有的共识账簿; 区块:账簿中的账页。
(6)挖矿:用设备产生算力去计算区块链系统中的数学难题,第一个计算出来的挖矿者可以为下一个区块链打包,并且获得货币奖励。
(7)区块验证:当打包区块的参与者打包好新的区块后,要所有参与者都查验是否跟大家记载的共识账簿一致,一致则验证成功,否则验证失败。
(8)数字签名:每一个拥有节点的参与者都会有一个私钥,拥有者可以用这把私钥给任何一个数据进行签名,即告诉系统中的所有人,这个数据归我所有。
(9)竞争链:想替代真正的区块链的其他无效链。
(10)竞选:,每一个参与竞选超级节点的竞争者需要获得其他普通节点的选票,前21名的竞争者可以获得超级节点的资格。
(11)ASICS:集中性挖矿的矿机基本都是这种矿机。