【许晓笛】重新理解EOS的系统架构
从区块链三要素的角度
区块链系统中,去中心化程度与效率之间天然地存在矛盾关系。如果区块链智能合约系统想追求类似比特币的去中心化程度,理论上效率就会大打折扣。现实也是这样的:比特币每秒钟只能处理7笔左右的交易,每一笔交易要用至少30分钟才能确认,这种效率和速度是远远不如银行转账的。作为一个全球资产交易平台,比特币这样的效率或许可以接受,但对于智能合约平台这样的效率是远远不够的。因为在智能合约中,每一个动作都可以看成是一笔交易,例如五子棋游戏合约中,每下一步棋就是一个交易,用户是无法等待半个小时才能确认一步棋的。所以想要实现真正实用的智能合约平台,就要脱离比特币系统的架构,寻找新的系统组织形式。
为了同时保证系统的去中心化程度和高效率,需要将传统的区块链三大要素全部推翻或升级,建立全新的区块链三大要素。
去中心化:
在比特币和以太坊里,任何人只要原理都可以加入作为全节点,并且只要提供了足够的工作量就可以承担生产区块的任务,比特币和以太坊用这样的方式保障的系统的充分去中心化。但是对于生产区块权利的争夺(挖矿)使得系统的算力掌握在了几个大的机构(矿池)中,所以比特币和以太坊的前几大矿池几乎垄断了区块的生产,使得普通全节点很难在系统中发挥监督与维护的作用。并且由于挖矿消耗了大量资源,使得系统的主要硬件资源都用来进行哈希(Hash)运算,不论是硬件资源还是能源方面都是极大的浪费。一个高性能区块链智能合约系统是无法同时承担挖矿和执行智能合约这两部分硬件开销的。
经过权衡,EOS选择了使用21个超级节点(见证人)作为系统的核心架构,这21个见证人就像是比特币或者以太坊中的大型矿工或者矿池,但区别主要在以下几点:比特币和以太坊中,矿池通过算力得到生产区块的权利,而EOS超级节点则是通过选举,不需要挖矿;比特币和以太坊中,每个矿工出块的多少取决于算力的大小,而EOS中,无论超级节点的得票数如何,每个超级节点的出块数量都是相同的。总之,EOS通过投票的手段减少了超级节点(矿工)个数,省去了挖矿,节约了大量成本,使得有限的系统资源可以用来执行智能合约。
奖励机制:
比特币和以太坊中,在矿工的角度上,主要通过两种方法得到奖励:挖出每个区块的奖励和每笔交易的矿工费,前者可以看做是通货膨胀(比特币的区块奖励会递减,直至取消),而后者可以看做是交易的手续费或者是执行智能合约的“平台租金”。在区块奖励不变的情况下,矿工天然地会更优先处理提供了更高手续费的交易或者合约,而为了让自己的交易更早打包在区块中,用户只能不断提高矿工费(以太坊中为Gas),久而久之会成为平台用户的很大负担。即使手续费非常小,但每一笔交易都存在的手续费是系统运行非常大的摩擦阻力,非常影响用户体验。
EOS完全取消了手续费,进保留了通货膨胀部分,并且规定每年的通货膨胀不超过5%,并且只有其中的一部分(目前为五分之一)会成为见证人的奖励。奖励会分为两部分:生产区块奖励和得票奖励。前者为见证人打包区块,维护系统运行的奖励;后者根据见证人在选举中得到的票数给予奖励。
取消手续费给用户带来极大便利的同时也带来一个不可避免的问题:系统资源的滥用。比特币和以太坊之所以设计了手续费机制,就是防止大量垃圾交易使得系统拥堵。EOS对此设计了新的系统资源的使用机制:每个EOS代币代表一份系统资源(CPU,内存,网络带宽等),使用EOS系统资源时,账户必须存有相应数量的代币。就算用户有很多交易或者合约等待处理,EOS只会根据账户中EOS的数量分配系统资源,限制了交易的执行速度,避免了大量垃圾交易占用系统资源。
EOS通过代币占有资源的机制合理分配了系统资源,又通过基于通货膨胀的奖励机制完全取消了手续费,使得系统使用成本大大降低。
共识机制
通过上面的阐述,很多读者会觉得比特币和以太坊在一些地方比较相似,因为他们都用了工作量证明(Proof of Work,PoW)共识机制(以太坊之后会升级为Casper)。工作量证明共识机制有很多的优点:运行稳定,不易分叉等,因此目前大部分的公链都使用了工作量证明共识机制(完全或部分)。工作量证明共识机制通过暴力哈希运算的方式争夺系统出块的权利,并且自动认为最长区块链为有系统公认的区块链。这种机制使得分叉后的链没有获得大量矿工支持时就会崩溃,维护了主链的安全稳定。但同时工作量证明共识机制也有自身的缺陷,比如容易受大矿工的控制,被51%攻击;挖矿造成巨大的硬件资源及能源浪费等。
EOS完全摒弃了传统的工作量证明共识机制,使用了经过Bitshares和Steem验证的授权股份证明共识机制(Delegated Proof of Stake,DPoS),这种共识机制的关键是:2/3见证人共同验证的区块即为有效。而每个见证人都是由EOS代币持有者选举出的,代表了EOS代币持有者的利益和价值观,所以2/3见证人验证的区块可以认为是大部分EOS代币持有人所认同的区块,一旦区块得到了2/3见证人共同承认,区块中所包含的交易即为有效且不可逆。
区块链三大要素就像是三个支点,互相渗透互相影响而且缺一不可,牵一发而动全身。EOS通过对传统区块链去中心化、奖励、共识这三大要素的全面升级,完成了系统效率的极大提高,并且保证去中心化程度与系统稳定性。