共识机制,可编程的利益转移规则
前言
前面的文章中,我们说过,加密货币都是去中心化的,去中心化的基础就是P2P节点众多,那么如何吸引用户加入网络成为节点,有那些激励机制?同时,开发的重点是让多个节点维护一个数据库,那么如何决定哪个节点写入?何时写入?一旦写入,又怎么保证不被其他的节点更改(不可逆)?回答这些问题的答案,就是共识机制。
共识机制,可编程的利益转移规则。这个题目写出来,就有点激动,编程开发这么多年,我们尝试过很多方法,试图通过某种激励手段提高用户粘性,把用户留住。比如常见的积分机制、用户等级等,但是,没有任何一种方式,能与加密货币的共识机制相提并论。每一个区块链产品,本身就是一个小小的社会,一个由网络节点组成的自适应组织,这个组织的运行,要由共识机制来规范。
本文回答了“为什么加密货币无需监管”,主要内容包括机制的作用,加密货币共识机制的种类,它们各自的优缺点,以及亿书的改进计划。
机制,左右产品走向的根源
机制一词,原指机器的构造和动作原理,在社会学中的内涵可以表述为“协调各个部分之间关系以更好地发挥作用的具体运行方式。”
工作中遇到过一位好领导,他非常公道正派,一切事情按规矩办事,用制度说话。在他的领导下,整个部门都很有激情,心无旁骛,专心工作,上级领导也非常认可,升职加薪是常有的事情,人人都能收获满满。后来,因工作调整,我们很多人去了新部门,大家反映,再也没了当初的激情,因为工作不一定被认可,付出不一定有收获。
这个例子,可能很多人都遇到过,是最能直接体会一个社会、组织或部门当中机制运行规律的。在任何一个系统中,机制都起着基础性作用,左右着系统发展走向。在理想状态下,有了良好的机制,可以使一个社会系统接近于一个自适应系统(在外部条件发生不确定变化时,能自动地迅速作出正确反应)。正常的生物机体(如人体)就具有这种机制和能力。
机制的构建是一项复杂的系统工程。对于加密货币而言,共识机制包含各种激励制度和具体算法,比如:交易费用、区块奖励等。机制的关键因素是人,评判一个机制的好坏,往往要通过一段时间的观察,看看人参与和执行的积极性是否能够持续。如果不能持续,就预示着机制已经失败,系统或产品也将消亡。
实际上,加密货币的目标就是要建立一个“无需监管的自适应经济系统”。目前来看,支撑这个自适应经济系统的机制,常用的有三种,它们是:PoW,PoS,DPoS等,而且都能在现实生活中找到对应的经济模型。这些机制,吸引人们参与其中,组成安全网络,并有序运行。但是,长期来看,它们各有优缺点,都存在失败的可能。
下面我们看看这些机制的演进过程。
1.PoW(Proof of Work):工作量证明机制
基本原理
这是比特币采用的共识机制,也是最早的。理解起来,很简单,就是“按劳取酬”,你付出多少劳动(工作),就会获得多少报酬(比特币等加密货币)。在网络世界里,这里的劳动就是你为网络提供的计算服务(算力x时长),提供这种服务的过程就是“挖矿”。
那么“报酬”怎么分配呢?假如是真的矿藏,显然在均匀分布的前提下,人们“挖矿”所得的比重与各自提供的算力成正比,通俗一点就是,能力越强获得越多。
优点
机制本身当然很复杂,有很多细节,比如:挖矿难度自动调整、区块奖励逐步减半等,这些因素都是基于经济学原理,能吸引和鼓励更多人参与。
理想状态,这种机制,可以吸引很多用户参与其中,特别是越先参与的获得越多,会促使加密货币的初始阶段发展迅速,节点网络迅速扩大。在Cpu挖矿的时代,比特币吸引了很多人参与“挖矿”,就是很好的证明。
通过“挖矿”的方式发行新币,把比特币分散给个人,实现了相对公平(比起那些不用挖矿,直接IPO的币要公平的多)。
缺点
一是,算力是计算机硬件(Cpu、Gpu等)提供的,要耗费电力,是对能源的直接消耗,与人类追求节能、清洁、环保的理念相悖。不过,如果非要给“加密货币”找寻“货币价值”的意义,那么这个方面,应该是最有力的证据。
二是,这种机制发展到今天,算力的提供已经不再是单纯的CPU了,而是逐步发展到GPU、FPGA,乃至ASIC矿机。用户也从个人挖矿发展到大的矿池、矿场,算力集中越来越明显。这与去中心化的方向背道而驰,渐行渐远,网络的安全逐渐受到威胁。有证据证明Ghash(一个矿池)就曾经对赌博网站实施了双花攻击(简单的说就是一笔钱花两次)。
三是,比特币区块奖励每4年将减半,当挖矿的成本高于挖矿收益时,人们挖矿的积极性降低,会有大量算力减少,比特币网络的安全性进一步堪忧。
2.PoS(Proof of Stake):股权证明机制。
基本原理
这是点点币(PPC)的创新。没有挖矿过程,在创世区块内写明了股权分配比例,之后通过转让、交易的方式(通常就是IPO),逐渐分散到用户手里,并通过“利息”的方式新增货币,实现对节点的奖励。
简单来说,就是一个根据用户持有货币的多少和时间(币龄),发放利息的一个制度。现实中最典型的例子就是股票,或者是银行存款。如果用户想获得更多的货币,那么就打开客户端,让它保持在线,就能通过获得“利息”获益,同时保证网络的安全。
优点
一是节能。不用挖矿,不需要大量耗费电力和能源。
二是更去中心化。首先说,去中心化是相对的。相对于比特币等PoW类型的加密货币,PoS机制的加密货币对计算机硬件基本上没有过高要求,人人可挖矿(获得利息),不用担心算力集中导致中心化的出现(单用户通过购买获得51%的货币量,成本更高),网络更加安全有保障。
三是避免紧缩。PoW机制的加密货币,因为用户丢失等各种原因,可能导致通货紧缩,但是PoS机制的加密货币按一定的年利率新增货币,可以有效避免紧缩出现,保持基本稳定。比特币之后,很多新币采用PoS机制,很多采用工作量证明机制的老币,也纷纷修改协议,“硬分叉”升级为PoS机制。
缺点
纯PoS机制的加密货币,只能通过IPO的方式发行,这就导致“少数人”(通常是开发者)获得大量成本极低的加密货币,在利益面前,很难保证他们不会大量抛售。因此,PoS机制的加密货币,信用基础不够牢固。为解决这个问题,很多采用PoW+PoS的双重机制,通过PoW挖矿发行加密货币,使用PoS维护网络稳定。或者采用DPoS机制,通过社区选举的方式,增强信任。
3.DPoS(Delegated Proof of Stake):授权股权证明机制
基本原理
这是比特股(BTS)最先引入的。比特股首次提出了去中心化自治公司(DACs)的理念。比特股的目的就是用于发布DACs。这些无人控制的公司发行股份,产生利润,并将利润分配给股东。实现这一切不需要信任任何人,因为每件事都是被硬编码到软件中的。通俗点讲就是:比特股创造可以盈利的公司(股份制),股东持有这些公司的股份,公司为股东产生回报。无需挖矿。
对于PoS机制的加密货币,每个节点都可以创建区块,并按照个人的持股比例获得“利息”。DPoS是由被社区选举的可信帐户(受托人,得票数排行前101位)来创建区块。为了成为正式受托人,用户要去社区拉票,获得足够多用户的信任。用户根据自己持有的加密货币数量占总量的百分比来投票。DPoS机制类似于股份制公司,普通股民进不了董事会,要投票选举代表(受托人)代他们做决策。
这101个受托人可以理解为101个矿池,而这101个矿池彼此的权利是完全相等的。那些握着加密货币的用户可以随时通过投票更换这些代表(矿池),只要他们提供的算力不稳定,计算机宕机、或者试图利用手中的权力作恶,他们将会立刻被愤怒的选民门踢出整个系统,而后备代表可以随时顶上去。
优点
一是,能耗更低。DPoS机制将节点数量进一步减少到101个,在保证网络安全的前提下,整个网络的能耗进一步降低,网络运行成本最低。
二是,更加去中心化。目前,对于比特币而言,个人挖矿已经不现实了,比特币的算力都集中在几个大的矿池手里,每个矿池都是中心化的,就像DPoS的一个受托人,因此DPoS机制的加密货币更加去中心化。PoS机制的加密货币(比如未来币),要求用户开着客户端,事实上用户并不会天天开着电脑,因此真正的网络节点是由几个股东保持的,去中心化程度也不能与DPoS机制的加密货币相比。
三是,更快的确认速度。比如,亿书使用DPoS机制,每个块的时间为10秒,一笔交易(在得到6-10个确认后)大概1分钟,一个完整的101个块的周期大概仅仅需要16分钟。而比特币(PoW机制)产生一个区块需要10分钟,一笔交易完成(6个区块确认后)需要1个小时。点点币(PoS机制)确认一笔交易大概也需要1小时。
缺点
前几天,比特股的作者发表了一篇被广泛认为很傻的文章(见参考),预言DAO(去中心化组织)和DAC(去中心化公司)都将失败。文中披露了大量实践经验,基本算是DPoS的问题。概括起来,主要是:
一是投票的积极性并不高。绝大多数持股人(90%+)从未参与投票。这是因为投票需要时间、精力以及技能,而这恰恰是大多数投资者所缺乏的。
二是对于坏节点的处理存在诸多困难。社区选举不能及时有效的阻止一些破坏节点的出现,给网络造成安全隐患。
4.亿书对DPoS机制的改进
不过,也不可否认,DPoS机制仍是目前最安全环保、运转高效的共识机制。存在的问题,也是可以克服和解决的。针对DPoS的问题,亿书结合自己的特点,创新提出四点改进计划。
(1)熔断机制
增加反对投票功能,对于破坏节点的反对投票率达到一定数量,就会促发“熔断机制”,强制个别受托人节点降级,减少对网络的破坏可能性。
(2) 信用系统
亿书,鼓励知识分享,节点和用户之间会有频繁交互,用户对节点用户的反馈与好评,将是该节点信用积累的一部分。亿书将充分利用这些信用信息,帮助社区用户遴选优良节点。
(3) 扩大规模
101个受托人,仅仅是相对合理的经验数字。亿书,会进一步优化算法,提高网络遴选的性能,采取租赁、出售等方式,鼓励去中心化应用的开发者、出版商等第三方用户自建节点,从而更好的服务用户。
(4) 实名认证
匿名与安全是相对平衡的过程。亿书倡导提供公开、透明的服务,鼓励节点受托人实名认证,公开有关信息,接受大家监督,从而获得社区的广泛认可。对于长期表现良好的节点,亿书将给出名单列表,显示在用户帐号里。
总结
这篇文章介绍了目前大部分加密货币采用的共识机制(算法),并没有介绍瑞波币采用的瑞波共识机制,因为严格意义上来说,人们认为瑞波币不是去中心化的,同时瑞波机制除了它自己也没有发现被其他加密货币采用,所以不具备普遍性,这里就不再讨论。
实践证明,设计良好的自适应系统,必须有完善的机制作为支撑,并充分考虑人的因素。人类是复杂的,特别是人类的群体行为,更加不可预测,这些机制在最初都是设计良好,但是谁又能预料在不久的未来会出现其他的状况呢。中本聪可能也没有想到,比特币会走到今天这样。
这一篇到了设计与编码的临界点,接下来就到了不得不编码的地步了。让我们趁热打铁,通过阅读代码进一步学习研究这些奇妙的构想吧,请看下一篇:《Nodejs开发加密货币》之十六:DPoS机制的实现(源码解读)
链接
本系列文章即时更新,若要掌握最新内容,请关注下面的链接
本源文地址: https://github.com/imfly/bitcoin-on-nodejs
首发区块链俱乐部: http://chainclub.org
亿书官方网站: http://ebookchain.org
亿书开发QQ群: 185046161