资讯专栏INFORMATION COLUMN

【许晓笛】重新理解EOS的系统架构

Alan / 560人阅读

摘要:所以想要实现真正实用的智能合约平台,就要脱离比特币系统的架构,寻找新的系统组织形式。比特币和以太坊之所以设计了手续费机制,就是防止大量垃圾交易使得系统拥堵。

区块链系统中,去中心化程度与效率之间天然地存在矛盾关系。

如果区块链智能合约系统想追求类似比特币的去中心化程度,理论上效率就会大打折扣。现实也是这样的:比特币每秒钟只能处理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通过对传统区块链去中心化、奖励、共识这三大要素的全面升级,完成了系统效率的极大提高,并且保证去中心化程度与系统稳定性。


相关文章和视频推荐

【许晓笛】深入理解 EOS 账户权限映射

圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。
公开课地址:https://ke.qq.com/course/345101                                         

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24432.html

相关文章

  • 晓笛EOS 系统架构图解

    摘要:了解系统架构之前我们先看看目前系统的主要组成部分系统的核心进程,也就是所谓的节点。 其实没有那么复杂 相信关心 EOS 系统的同学肯定见过下面这张蓝图。对,目前只是一个蓝图,而且以 BM 的尿性,肯定在心理已经把这张图改的面目全非了(比如图中的 eosd 早就改名了)。所以这张图只能作为未来 EOS 发展方向的参考而已,目前的 EOS 还远没有这么复杂和完善。 showImg(http...

    vibiu 评论0 收藏0
  • 晓笛EOS 数据库与持久化 API —— 架构

    摘要:与数据库交互的被官方称为,中文可以叫做持久化。下图为数据结构。所有对数据的操作必须通过迭代器完成。迭代器会移动到需要的数据对象上。相关文章和视频推荐许晓笛数据库与持久化实战圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 EOS 数据库结构详解 在 EOS 中,智能合约执行完毕后,所占用的内存会释放。程序中的所有变量都会丢失。如果智能合约里要持久地记录信息,比如游戏智能合约要记...

    piglei 评论0 收藏0
  • 晓笛】深入理解 EOS 账户权限映射

    摘要:为了解决这个问题,采取了三步用户账户自定义分级权限。用户权限与智能合约之间的映射。图中不难看出,权限是账户最高权限,可以执行权限。如果没有发现任何符合的映射,会直接检查本次执行是否满足了权限,若不足,会检查。 到底什么叫智能合约? 名词解释:本篇文章出现很多 Action 和 Active,Action (动作)为 EOS 中账户可以接受的动作,也就是别人可以对你做什么;Active ...

    zacklee 评论0 收藏0
  • 晓笛EOS 超级节点五个使命

    摘要:去中心化从整个系统的去中心化机制来看,见证人担负着系统去中心化的使命。几十个见证人后备见证人保证了系统的高度去中心化。 在EOS系统中,有两股势力是整个系统最关键的因素,那就是项目方 和 见证人。 很多人觉得EOS这个项目奇葩,就奇葩在项目方和见证人的关系上。EOS的项目方是BlockOne公司,创始人是BlockOne公司的首席技术官(CTO)Daniel Larimer,坊间称BM...

    mtunique 评论0 收藏0
  • 晓笛EOS 数据库与持久化 API —— 实战

    摘要:查询数据使用方法和其他迭代器操作查询数据。数据库服务的对象是维修技师和车主。如果查找成功,迭代器就会指向所需的数据对象。 EOS 数据库开发实战 上次的文章详细讲解了 EOS 数据库的架构,本文将以官方示例为基础,详解 EOS 数据库的开发实战。 基本步骤 在智能合约里与 EOS 数据库交互,首先要定义存储的数据: 定义对象:具体就是定义一个 C++ 类或者 C++ 结构体,数据表...

    yck 评论0 收藏0

发表评论

0条评论

Alan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<