吕文哲:为什么我说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可能会进行宪法的选举,可能会有三四套方案。宪法的一些核心思想,是制定一些基础的共识方案。当然未来也可能会修改或者引入一些仲裁机构。

原文发布于微信公众号 - 区块链大本营(blockchain_camp)

原文发表时间:2018-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SAP最佳业务实践

SAP最佳业务实践:SD–现金销售(238)-1业务概览

用途 此业务情景仅涉及向客户销售物料的现金付款交易。 当客户下达货物销售订单、拣配和付款是同时进行时,才会使用现金销售流程。系统自动建议将销售订单中的当前...

2583
来自专栏维恩的派VNPIE

Vn.py vs PyAlgoTrade

在Python量化领域,PyAlgoTrade和zipline是两大策略回测框架的先驱,其中PyAlgoTrade主要针对CTA策略(单一合约交易),而zipl...

1717
来自专栏知晓程序

除了聊天,我们还能在微信群里,干哪些正经事?

今天,就不妨收下「知晓程序」精选的 5 个群工具小程序,让你在微信群中组织活动、投票、协作都不费吹灰之力。

511
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–应付账款(158)-1业务概览

用途 该业务情景主要描述的是在应付帐款模块中对供应商相关业务进行会计记帐 优点 应付帐款模块与采购管理模块完全集成 应付帐款模块中的所有明细帐数据会直接...

3219
来自专栏SAP最佳业务实践

SAP最佳业务实践:SD–含客户预付款的销售订单处理(201)-4预付款

F-29过帐预付款 您可以手动或自动过帐预付款(付款程序 SAPF110、自动记入借方或银行贷记凭证付款方式)。在此部分,手动过帐客户预付款。 特别总帐业务类型...

2844
来自专栏尚国

数字货币钱包安全白皮书

区块链技术的迅速发展,使得数字货币渐渐走入的大众的视线,在2017年底,这股热潮达到顶峰,直接搅动着金融市场与科技市场,大量的数字货币交易流水催生了数字钱包开发...

873
来自专栏云计算D1net

云中的连续监测

云计算服务可以动态分配、使用和取消分配资源,以满足高峰需求。几乎任何系统都需要比其他系统更多的资源,而云计算允许计算、存储和网络资源随着这种需求而扩展。

960
来自专栏SAP最佳业务实践

SAP最佳业务实践:按库存生产(145)-3生产订单处理

1、工作中心 ? 2、工艺路线工作中心/工序 ? 3、计划订单转换 ? 4、创建生产订单 ? 5、生产订单处理 ? 6、货物移动 ? 7、发货 ? 8...

2825
来自专栏猿天地

从摩拜总是出现服务故障谈谈技术这件小事

最近几天不知道怎么了,摩拜单车总是出现故障。 不是扫不了码就是关闭自行车时,车已经锁了,但是app上显示的还是使用中,也就是在关闭锁的一瞬间刚刚好服务器出问题了...

3299
来自专栏Youngxj

学生机抢劵工具-易语言

2685

扫码关注云+社区