首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

吕文哲:为什么我说EOS完爆以太坊,理由全在这里了

作者 | 吕文哲

整理 | Aholiab

作为国内技术力量强大的EOS超级节点竞选者之一,HelloEOS是国内最早接触区块链并为其布道的组织。其对EOS的理解和实践,有很多值得学习的地方。

4月21日,在CSDN主办,区块链大本营、EthFans、PDJ、极客帮创投协办的第7期CSDN区块链技术沙龙上,北京邮电大学博士、现YOYOW产品负责人 吕文哲带来题为《EOS的发展和总体介绍》的分享,从自身的区块链技术创业历程,对EOS的特性和组成部分做了深刻而全面的解读,带你重新认识这个重要的系统。

先介绍下自己,我是北京邮电大学的博士,之前主要在互联网领域创业。2015年开始接触区块链,虽然时间相对晚了一些,但对BTS或DPos机制是有信仰的。现在我希望能在DPos领域做一些理论层的研究。

大家都知道,EOS的作者叫Daniel Larimer(也叫「BM」),他是个有自己独特经济理念的人,我很欣赏他说过的一句话:

我终生的使命,都致力于找到一些加密经济的解决方案,给所有人的财产、自由、平等带来保障。

他从最开始做BitShares,到后来的Steem,再到最后的EOS,一直在追寻着这个理想。

今天我们就来看看EOS这个系统。

EOS到底是什么?

我认为,EOS的诞生是有一定时代意义的。如果比特币成功地把货币的理念带给了大家;以太坊主要实现一个图灵完备的训练机,并引入智能合约。那么EOS的最大价值则是商用,EOS的所有价值都是围绕商用来的。

EOS在各个点的极致优化上,都是围绕解决商用的问题。它最终的目的,是希望真真正正把区块链技术像Windows系统一样带给大家,系统上运行着很多DApps。

首先,EOS的开发是基于Graphene框架。这个框架最初其实就是BM写BitShares 2.0的时候提供的一套C++工具组。其次,EOS内置了WebAssembly的一个虚拟机,目前仅支持C和C++语言的合约代码,未来应该也会支持Go或其他语言。本质上来说就是,把不同的语言编译成合约能理解的语言。

第三,EOS给DApp实现了免费,它利用系统通胀支付超级节点执行智能合约的手续费(Gas),DApp用户无需付费。这一点很好理解,假设我们玩一些区块链游戏,但其实本质是一种投机行为,这样的话支付手续费是可以的。但假设未来我们手机上一半App的功能都上链的话,每一项操作都需要手续费,这就无法接受了。所以为了EOS的大规模使用,它必须实现DApp用户免费,这一点BM借鉴了他的第二个项目Steem上的一整个通胀机制的思想。说白了就是最初设定一个Token的总数,然后再设定一个通胀率,通胀率用来支付维护网络这部分人的工资,这些维护网络的人我们可以称之为是「块工」,也可以称之为「见证人」

最后,EOS拥有21个主力超级节点(见证人节点)和100个备用(见证人)节点,为用户提供去中心化的区块链智能合约服务。 这个事情最近比较火,现在有70家想来参与超级节点的竞选。现在EOS的持币用户数量已经有40~50万的样子,算上交易所的话,是一个不小的数字。

EOS的诞生

继承了BitShares 2.0和Steem的优良基因

EOS是Daniel Larimer继BitShares 2.0和Steem之后主导的第三个区块链项目。BitShares是个非常神奇的项目,之前有段子说,目前市值前一百的币种,所有功能加起来都没有BitShares多。BitShares跟EOS很接近,采用的是DPos机制,可以实现线下机制的线上映射。

怎么理解呢?假设目前我和A分别持有100和10个Token,那么在这个系统中,我的话语权理论上就应该是A的10倍。任何持有Token的人,都会对这个系统有治理的权利,这个权利包括以下几方面。

第一,可以共同决定谁来替我们维护这个系统,因为这是一个分布式可信赖的系统,选出来的这个人,应该体现出Token持有者的共同意愿。这一点在BitShares上是非常好的。我需要向大家介绍我自己,并且得票率要超过20%,因为BitShares的流动量在20亿左右,也就是说想当选的最低标准是5亿张票。

上面的系统运行了三年,现在的情况是,如果我想当选,需要不断给给社区里的一些所谓的「大户」,包括在BitShares的论坛发帖子,然后告诉大家我愿意做什么事,我打算做什么事,才有可能成为这个见证人之一,而且这个见证人是实时计算的——1小时计算一次。

假设现在我作恶了:

连续两分钟一直丢块;

有自己的小算盘,联系一些其他见证人一起作恶。

上述两种情况,一旦被社区发现,大家可以迅速撤票,撤票操作的确认时间是1.5秒。然后经过一个系统维护周期(目前是1小时),我就不是见证人了。这是一个非常快的响应速度。

第二,BitShares还有一个机制叫「理事会」,理事会是什么呢?比如说系统中的转账,例如见证人的工资、在系统中发行一个资产需要消耗的费用等等,其中几十项的参数,全是都是可以由理事会进行修改的。而理事会的产生同样是按照DPos这套投票机制来的,一些代表做提案的发送,发送之后由理事会进行审议,通过后这个提案则可以执行。

总之,BitShares是一个整体自治性特别好的项目。

BitShares对EOS的的影响

BitShares和Steem虽然稳定的运行了2~3年时间,但也经历了多次硬分叉。比如Steem去年就经历了十几次硬分叉,每一次硬分叉都意味着我们对这个经济模型的一种探索。

而且,老是分叉对DPos交易所是一种困扰,你们天天没事儿就要分叉一次,而且每一次硬分叉都需要交易所进行支持,这可能是现实中的一个小瑕疵。

Graphene框架和相关开发库的不断升级

作为BitShares社区参与者我对这一点深有体会。整个基于Graphene框架的项目有很多,据我了解可能10、20个都不止,但整个Graphene的框架代码还是在不断的进化当中。

因为,在最初设定的时候有一些细节和小的Bug,一些漏洞也还在不断地进行修复。而Graphene包括BitShares这个社区,通常都会把开发的Bug包括影响大小推送给相关的项目方。这说明一个开源社区负起了它自己应负的责任。

Steem为EOS提供了灵感

Steem中的部分特性,如用户管理的密钥恢复,基于通胀的手续费支付等概念也为EOS提供了灵感。本质上来说,这个Steem也是BM在做商业可用性的一些探索。就是说一个商业的博客网站的话,如果密码丢失了,应该是可以找回的。但是,其它所有的区块链项目都会告诉你,私钥就是一切,私钥丢了就没戏了。

此外,对于其它项目,通常涉及通胀的很少。通常都会有意的设置一些销毁。比如说BNB他们就会提供一个有效的销毁机制,他们希望这个系统真正是一个营利性的系统,持有这个Token的人是有营利预期的。

但是,个人认为BM的一些经济理念,包括在BTS上、Steem上,甚至是在EOS上,他可能更注重的并不一定是持有投资者的利益(从长远来看,我们不能说近期)。他从通胀的消耗,相当于是我们持有Token的人,我们需要来承受这部分增发的,就像我们现实当中货币的一些超发这种情况一样。但是,增发这些钱数就是为了这个系统更好的发展。

EOS的现状

首先,RC(Release Candidate/发布候选版)1版已经完成,大家在GitHub上可以看到。包括很多的见证人和很多节点的候选人,在官方的组织下已经跑起来了一些测试。

第二,官方和社区测试网络已稳定运行。这一点跟我的预期还是比较接近的,就是测试网络以实现几千左右TPS。虽然前些天一个韩国团队他们运行的TPS数量不超过500,不过我个人认为是他们对Graphene的代码不是很熟悉所致。他们的测试是基于CLEOS的钱包项目,这相当于访问手机上的一个App来测试整个系统的性能,测试方法肯定是不合理的。

实际上,EOS官方和社区测试的网络已在稳定运行,测试性能在1000-3000 TPS,跟BitShares的测试性能基本一致。当然它声称可以实现百万级TPS还没有实现,但毕竟在它真正发布出来之前,我们谁也不知道它最后会采用一种什么样的方案。我推测可能是跨链,多个链条无限扩容这种形式。

第三,EOS VC的合作伙伴已经有4家,总金额共计6亿美元,为的就是共建EOS生态。如果EOS VC认为比较好的项目,Block.one可能也会跟着投一些钱,来支持这个生态的开发。

第四,目前已有超过70家的见证人节点参与超级节点的竞选。此外,有多个知名的项目正在迁移到EOS上,比如Bancor项目。我预计,今年可能会有很多在区块链底层做协议的,他们并不局限说一定要在哪个平台,哪里用户多他们就倾向于迁移到哪里。在这方面,目前EOS还是占一点领先的优势的,所以会有越来越多的知名项目和协议愿意迁移到EOS上来

那么未来几个月,会发生什么事情呢?会有下面4件事。

第一,6月1日完成Token Sale。如果6月2日大家的ERC 2.0代币还没有做映射的话,很可能就已经失败了。这个到时候肯定会有铺天盖地的宣传的,大家无论是把Token存在交易所还是自己的钱包里,都需要做一下映射。

第二,EOS 1.0正式版发布并由社区启动主链。整个项目由社区发起,选出50个技术比较强的竞争候选者,再从这50个竞争者中随机挑选22个,来共同发起EOS主链。由社区启动主链,可能是为了规避一些法律风险。

第三,8月份开始启动EOS Storage的开发。本质上来说,EOS还没有提供非常强的存储功能,而我们在EOS的白皮书中提到,未来可能会把存储放到IPFS上。这个IPFS的代币应该不是我们提到的Filecoin。

本质上,IPFS是一个协议,是希望能替代HTP协议的。好像是三四年前,我就看到过IPFS在GitHub上就已经开源了。但谁给这套协议提供存储和带宽呢?就是IPFS的实验室,他们提出了一个想法,就是发一个叫做Filecoin的Token,这个Filecoin用来激励大家提供IPFS底层的存储。

而实际情况,我猜测EOS可能是会基于IPFS协议,但是不用Filecoin的那套代码的激励体系,应该是会自己提出一个Token叫EOT,类似于EOS内部发行一个自己的Token用来激励EOS项目上的存储。

只有解决好了存储,才能有效地支持EOS上的一些DApp。说白了,EOS希望提供一套完整的操作系统,把方方面面的问题都替你解决掉,你作为一个开发者就安心来这开发你的DApp业务逻辑就好了。

最后,年内启动智能合约并行执行模块的开发。这是一个提升性能的事情。

EOS vs. 以太坊

这里说一下EOS和以太坊的对比。

首先EOS有非常好的可扩展性,这个可扩展性跟它的并行处理能力是比较相似的。总体来说就是它的性能相对较高,不会有几个DApps比较火就影响到整个系统的情况。

第二是免执行智能合约,这是作为一个商业应用公链的一个必备因素。

第三是对抗DOS攻击的能力,主要是指粉尘攻击。怎么说呢?比如其他绝大多数的区块链项目为什么都涉及到转账的手续费?它们真的要收这点钱吗?其实不是,其本质是链上的左右交易都需要矿工把信息给记录下来,如果不收钱会造成大量的请求发布到网络当中,从而造成网络拥堵。

一旦收取手续费,就不会出现一些恶意的转账了。EOS如何避免这种情况呢?做法是假如你持有1%的EOS,那么你就有整个网络1%的使用权,你持有50%就有50%的使用权,不能越界。加入你持有10%,但你用不了这么多,你可以租借给别人,收取一定的费用,通过收取这个费用也可以抵消整个通胀带来的一些负面影响。

第四是高级用户账户的管理能力。EOS本身的设计是面向用户的,就像我们现在所熟悉的互联网产品一样。比如「找回密码」功能,用户在最开始的时候设定一个辅助找回用户,如果自己的密码丢了,可以加辅助找回用户共同协作,把密码找回来。

这个在技术上是不难实现的,但却给DApp的落地提供了很大的便捷。区块链项目不再是高高在上,而是真正走进我们的生活。

第五是完善的社区管理方案和区块链宪法。我认为这是BM在做了这么多项目之后的一种妥协。原因在于,现在BitShares也好,Steem也好,都存在一些不太合理的情况。本质上来说,真正用代码去实现的机制管不到所有场景,所以现在BM希望引入一些人治的机制。大家共同约定好一个宪法,然后根据这个宪法来写合约,如果有人违背就施行一些惩罚,就像现实社会中的情况一样。

BFT-DPOS共识机制

刚才主要介绍了EOS的一些总体的发展情况,现在我可以对EOS的共识机制做一个总体的介绍。

在BitShares和Steem上只有一个共识机制,那就是DPoS。这个DPoS就是刚才介绍的你持有多少票就有多少话语权的机制。整个DPos机制就是一个投票决定,在DPos机制里面,系统会选择得票最高的21个节点,这个数字是可以更改的。这21个节点选出来后,整个路径的规划方案就已经选好了,分别选取延时最小的路线,希望在0.5秒之内能够进行确认,能省一毫秒就省一毫秒。这21个节点就开始出块。

这会有一个问题,就是假设每个节点确认出块的时间是3秒(在EOS里,一个见证人是连出6块,0.5秒一块),那么整个确认流程就要1分钟,这是无法接受的。怎么办呢?就是引入BFT共识机制。

BFT的方法是,一个节点出块完成后立马广播给其他20个人,不按固定的顺序。这20个人在0.5秒内收到广播后就会给你一个反馈。只要超过15个人确认,这个信息就不可逆了。这样整个时间从一分钟就缩短到了0.5秒。

除此之外,每个主力见证人节点通过协商方式确定各自出块顺序并且每轮产生6个区块以减少网络延时的影响。在达到不可逆的状态之后就不发分叉,这是DPos的一个优点,因为大家是通过投票来得到一个共识的。

EOS智能合约

在介绍过EOS的共识机制后,现在来说一下EOS的智能合约。大家之所以对EOS保持关注,很大一部分是因为它的智能合约。EOS的智能合约使用C和C++作为编程语言,上面也说了,未来可能也会有Go或其他语言。底层采用WebAssembly JIT虚拟机。

另外,EOS已经拥有完善的开发和API文档。实话实说,虽然文档比较完善了,但现在例子其实还不够多,比如做一些智能合约的话,除了官方的文档之外其他的资料非常少。

EOS还支持STL开发库,现在C、C++语言中的一些非常成熟的库,我们就可以通过这种方式把它引入进来,降低开发成本。然后它采用的是zlib压缩算法,压缩智能合约体系。

感兴趣的话,可以去下面地址,查看API相关文档:

https://eosio.github.io/eos/

因为,虽然现在关于EOS的文章很多,但大多都是翻来覆去的去炒官方文章的内容,所以如果愿意学习的话,我推荐大家直接去看官方文章,这里面有BM的一些文章,可以帮助你对整个系统机制进行理解。

EOS的合约并行执行机制

说到EOS的合约并行执行机制,其实目前只是一个规划方案,还没有实现。我们知道,在以太坊上,这套机制其实是一个单线上同步执行的一套机制。相对于同步,异步的效率会跟高一些。EOS对智能合约的并行化处理将会在账户层,将不同账户的合约分配给不同“线程”同时并行异步处理。

因此,EOS可以看做是一台并行执行的程序,可以随时扩充创新计算机。从设定上来说确实是这个样子。但具体的落地,还得看整个开发的推进。

基于通胀的Gas支付体系

在EOS中,用户不必支付任何燃料费用的,开发者也并不需要直接支付代币来支付燃料费用,燃料费用本质上由系统通胀来支付。这是EOS跟其他项目的一个最大区别。

如果希望让整个系统的所有操作都免费的话,就需要做增发。目前EOS的年化通胀最高为5%,现在根据市值和节点的增加,可能跳到了1%或1.5%。具体多少,要看发布时的情况,我估计会有一个宪法来确定已多少年华通胀率来发起这个链。

另外,所需要的锁定代币的数量视乎于TPS以及合约所需要的执行时间,本质上跟你能使用的资源是成正比的。锁定了多少代币,就可以调用多少资源。由于代币总量和EOS的总处理能力是恒定的,因此不可能遇到垃圾流量攻击。

还有一种观点是,超级节点可能会进行一些资源上的扩充。为什么呢?我们拿到工资之后,随着EOS的DM上面的增多,它可能会对这个需求就会越来越大,在这个层面上,超级节点肯定会拿出一部分的资金进行整个系统的扩容。也就是说,EOS的处理能力会越来越强。

侧链和子链跨链机制与默克尔证明

这是EOS的一个创新之一,基于EOS.io开发的联盟链,侧链,子链都可以通过其内置的跨链机制与其他同样基于EOS.io的区块链实现高速的跨链价值转移和信息传输。不过跨链具体怎么实现,现在还没有定论。可能是由多条链来处理不同的任务,但在多条链上面,所有的EOS是需要打通的,也需要各个链上都能打成一个共识。

另外,通过Dpos共识机制,跨链传输仅需0.5秒确认时间,不可逆确认仅需1秒。而且轻量级默克尔证明(LCV)与比特币的SPV相比,验证速度更快,需要传输的数据更少,更适合跨链操作。

具体技术细节就不说了。但我想说通过轻量级默克尔证明,未来可能会出现三种情况:

超级节点需要保存各个链上的全链数据;

只保存某个DApp和某条链的数据;

甚至有了轻客户端,完全不用保存数据。

可以看出,EOS在不断地做一些优化或妥协,希望把这个平台变得更加商业化,更可落地。

关于EOS Storage

EOS Storage的核心是IPFS,它本质上是个协议,不一定是Filecoin。这个Storage其实也是通过超级节点来为用户提供服务的,通过Storage的功能这些超级节点给大家提供一些去中心化的存储。本质上,这个东西依托IPFS协议,特性也很相似。开发者通过抵押EOS代币,获得Storage的存储空间和使用权限。

关于用户的权限与管理,正如上文所说,EOS跟以太坊的区别在于它的账户是可以找回的,不像其他平台是一串哈希值,EOS的账户名称是可以自定义的,甚至合约也可以取一个自己的名字。这样更贴近我们的使用习惯。

结束语

时间关系,今天就先给大家介绍到这里,相信对于EOS大家已经有了一个整体的认识。6月份,EOS可能会进行宪法的选举,可能会有三四套方案。宪法的一些核心思想,是制定一些基础的共识方案。当然未来也可能会修改或者引入一些仲裁机构。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180504A1WUA700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券