1. 链一财经首页
  2. 资讯

EOS 区块链的 8 点优劣势

在深刻学习,使用过 EOS 区块链后,是时候来写一写 EOS 的几大特质了。希望这篇文章能够给予 EOS 开发者和希望应用 EOS 技术的朋友们一些帮助。

EOSIO — 可运行大型支持智能合约的去中心化应用的软件

EOS — 第一个部署 EOSIO 的网络

BP — 节点,EOS 网络的维护者,运行着强大算力服务器的公司

本文也将关注其他应用 EOSIO 软件进行开发的区块链,比如 Telos。

这一切都只是我此刻的个人意见。所有数据取自我认为值得信赖的出处。本文不作投资建议。

以下要素以我所认为的重要程度排序

目录

优势

账号与资金全网流通

0.5 秒出块

可升级的智能合约

透明的协议升级

交易速度可达 4,000 TPS

免交易费

C++合约

智能合约数据管理

劣势

节点并没有为治理作贡献

不合理的 RAM 价格

不公平的资源处理效率限制

无用的通胀模型

30ms 交易限制

协议更新中心化

智能合约更新限制

区块不可逆确认需 3 分钟

总结

八点优势1. EOS 上的账户和资金可广泛流动,并支持各类程序

所有 EOSIO 区块链都如此

EOS 账户全网可用。每个账户可由一个或多个私钥进行管理,用户可通过同一账户登录各个不同的 DAPP。在一个不断有新 DAPP 出现的世界里,这是一个非常有用的功能。

在 EOS 上搭建应用意味着你可以使用和编程 EOS 及网络上的各种代币。DAPP 可通过第三方托管及其他手段轻松透明地管理资产。

结合账户提供的灵活权限及私钥管理,用户能够在高度的安全和可用性下使用 DAPP 及代币。对区块链产业外的开发者及产业家而言,与传统金融机构及有风险的密码系统相比,这是很大的优势。

2. 低延迟,0.5 秒出块

所有 EOSIO 区块链都如此

每 0.5 秒产生一个区块。这是所有节点都需要遵从的既定设计。有可能会丢块,但其可靠性达 99.7%。

节点也有几率错过整整 12 个区块的回合,但事实上这种情况比较少见。节点完成完整区块回合的平均可靠性达 99.97%,可参考这里。

0.5 秒的出块速度是 EOS 区块链十分有利的优势。用户在 EOS 上可享受与信用卡支付或支付 APP 支付类似的用户体验。个人而言,在体验过 EOS 的支付流程后,再用回以太坊非常不适,更别提比特币了。

区块链 1.0 和 2.0 都在提升 Layer 2 拓展,人们(包括 V神) 都开始意识到核心区块链必须拓展,而 EOS 就是最好的范例。

3. 透明可升级的标准化智能合约

所有 EOSIO 区块链都如此

所有的智能合约,包括制定网络规则的系统合约,都可使用智能合约执行交易进行升级。合约的管理,通过账号权限可通过以下几个方式实现:

单一私钥

账号多签

时间延迟

或通过移除权限,让合约不可升级

对节点来说,升级网络规则变得非常简单。系统合约的升级,需要前 21 节点 中的 15 个批准,就能立刻把升级同步更新到整个主网。这跟 1.0 及 2.0 的区块链不同,它们的升级需要通过硬分叉,抛弃下一部分没有升级的网络。

对 DAPP 开发团队来说,这让项目运作更简单。开发者依然要有好的软件安全习惯,一旦发现编程错误,就能即时更正,且操作公开透明。EOS 相比其他区块链,对开发者更友好。实现合约可升级之后,开发者可开发更复杂的合约,以做出更好的应用。

对用户来说,所有智能合约的升级交易都能在链上查询到,这功能让用户能清楚知道合约的哪些地方做了更新。

虽然在以太坊上,合约也能升级,但整个流程非常复杂,也没有统一做法,且流程非透明,其他人不能对升级进行审核。据我说知,包括比特币在内,所有其他的主流区块链都缺乏一致的升级流程。

4. 透明高效的协议升级流程

EOS 是个有治理机制的区块链,在 DPOS 机制下节点除了运行主网之外,还有更多的责任在身,他们是选出来的代表,要协助生态的长期发展,其中包括系统及治理规则的升级,确保生态的公平性及可持续性。这些维护生态的规则,制定在系统合约中,包含以下:

账号创建

合约升级

资源管理

EOS 代币

短账号

支付系统运作的通胀

在区块链 1.0 及 2.0 上要实现升级是很费时且花精力的事。

EOS 的技术优势使升级流程很顺畅(上述第三点不足中有提到),要解决上述的 1、2、4、6 点不足,理论上只需要发送一个交易,然后得到 15 个节点的认可,其他的不足点有可能需要硬分叉升级,让节点手动升级他们的软件。在 EOS 上协调硬分叉是简单的事,在 EOSIO 1.8 版本发布后,硬分叉又更简单了。可惜的是,协议修改仍需要经过前 21 节点的共识,从政治的层面来看,是件很有挑战的事。

5. EOS 主网速度达 4,000 TPS,甚至更高

EOS 区块链的 8 点优劣势

EOS 主网性能已证实可达 4,000 TPS,在区块链浏览器上可以搜寻区块 11,302,923 和 11,302,924 查证。EOS 的最高运算能力不是很好计算,这跟用户如何使用 EOS 也有关。

在 Jungle 测试网上的实战测试中,使用目前的环境参数可有 6,500 TPS,把一些参数做调整之后,可达到更高的 9,200 TPS。

EOS 的运算能力比之前的公链增长了数倍,也比 Hyperledger Fabric 等私有链高出几倍。

虽然 EOS 性能的上限未知,以目前网络的使用情况来看,每秒有 60~70 笔交易,这是其他网络的 10~100 倍。 Dappradar 显示,过去 7 天最活跃的 50 款 DAPP 中,就有 32 个是部署于 EOS 主网的,占前 50 DAPP 交易量的 62%。

6. 免交易费

所有 EOSIO 区块链都如此

在 EOS 主网上的交易是免费的,当你转出代币时,收取方收到的代币量不会减少,这对用户体验来说是个大升级。要执行交易,用户必须先在账号里锁仓点 EOS,以换取主网资源,有了资源后,才能开始交易。锁仓越多 EOS,换取的主网资源也就越多。

用户可随时解锁 EOS,命令执行后,需要等 3 天的时间,EOS 就会完成解锁。这个机制虽然有点烦人,但同时也是个安全机制。

虽然这个设计也有不足(见不足点 3),相比其他区块链强制收取交易费,用户在 EOS DAPP 的操作体验更好。

7. C++ 在合约中的优势

EOS 区块链的 8 点优劣势

所有 EOSIO 区块链都如此

C++ 是 EOS 合约的语言,在编译后成 WASM,是网络节点读取的信息,以做出命令执行。

WASM 是虚拟机环境,它非常高效也方便移植,非常适用于区块链应用,区块链项目如 Parity、Hyperledger 及以太坊,都已经或计划在使用了。

虽然市面上有许多高级电脑语言能编译成 WASM 代码,C++ 是少数自带 WASM 编译器的电脑语言,C++ 拥有 30 年的历史,身经百战,是世界上最成熟、完善、高效的语言。

对开发者来说,能使用熟悉的 C++ 语言做合约开发是个极大利好,它大幅降低了学习成本,成熟的体系,能马上开发出复杂的应用。

Solidity 语言是针对以太坊而开发的,它缺少以下几个基础支持,是 EOS 开发者已经有的:

字符串操作

向量、数组和其他集合类型

浮点数

操作符重载和模板化

大量的 C++代码库资料

8. 智能合约的多索引资料管理

所有 EOSIO 区块链都如此

区块链系统中的 RAM 储存了记录着含有余额、代管账户等信息的智能合约。在区块链 1.0 时代,这是完全没有的,而在 2.0 时代,合约的 key-value pair 资料结构成为了可能。EOSIO 的智能合约使用了 C++ 的 Boost 图书馆来做资料存储,这个技术使用到了多索引表的资料结构,使开发者能创建一个含有用户名及余额的资料库,同时能高效的通过多索引做资料查询,这是之前区块链做不到的。

这是一个极大的优势,能让开发者开发出之前做不出来的高端智能合约。

EOS 能升级智能合约,所以大家也需要了解网上的数据有时也需要升级。因为 EOS 主网的资源限制(不足点 5),智能合约的迁移的可以很复杂,这是需要留意的。

八点劣势1. 节点选举不再鼓励对社区的治理的积极贡献。

EOS 区块链的 8 点优劣势

EOS 区块链设计的初衷其实有两点,一是希望节点能够生产出高质量的区块,二是希望节点能够为生态的治理做贡献。投票者们也将基于这两个方面进行投票,选出超级节点。

然而,由于节点互投和买票等行为,普通投票者所拥有的这种鼓励节点在生产高质量区块的同时,积极参与社区建设的能力如今已经不复存在。我之所以提到这一点是因为:

交易所买票的新闻层出不穷,如:这里 这里

当下当选的超级节点在社区贡献,出块质量及其他各方面远不如其他更好的节点候选人

超级节点不作为

超级节点分布主要集中在亚洲,尤其是在曾爆出过贿选,并有大部分存储着大额资金的交易所加入的中国。

为什么说这是不好的

贪婪而腐败的节点会导致:

只有对节点有收入利好的协议升级才会被通过,社区管理的优先级大大放低。

削减成本成为首要任务,社区管理重要性被降级

为有好声誉的节点修改规则如今已十分困难

节点集中在某个密切协作的群体,很可能会出现恶意腐败攻击主网的行为。

好消息

区块链仍然值得信赖,节点虽由经济利益驱动,但仍在按规则按时出块。区块链仍将像 DAPP 开发者及用户所信赖的那样运行,虽然效率可能有所降低。

其他使用 EOSIO 软件搭建起来的区块链也在测试可行的选举方式,以降低腐败的可能性。Telos 链值得我们注意,它在为 EOS 试探前进的道路。当 Telos 的出块收益接近 EOS 时,很难说他们能否防范治理上的这些问题。

2. RAM 价格变化无法反映 RAM 供给

所有 EOSIO 区块链都如此

RAM 的价格由类似 Bancor 的公式决定,其中变量包括 RAM 的供求。EOS 的价格与 RAM 无分毫关系。

这就意味着随着 EOS 的价格增长或下跌,尽管 RAM 自身的供给没有改变,人们在 RAM 上的花费也会产生随之变化,也就是说,尽管网络没有发生变化,DAPP 开发者和用户却需要花费更多或更少的资金在 RAM 上。实际上,RAM 价格无法反映各节点上 RAM 的消耗。

其他系统利用 “gas” 这样的计算模型来协助网络运营商调整资源价格。这样系统能够依据数据存储量反映网络资源的消耗,这对用户更友好。

3. 持仓较少的用户而言不公平的资源消耗速度限制

所有 EOSIO 区块链都如此

如果 EOS 网络上有两位用户

Bob 有 10 个 EOS

Alice 有 20 个 EOS

当网络交易处理量到达临界点时,网络必须限制交易。Bob,这位持仓较少 EOS 的朋友,将首当其冲被限制,无法再在网络上处理任何交易。

这与其他区块链不同,在其他区块链上人们只需支付手续费即可进行交易(只要付钱,你就可以交易)。然而在免手续费的 EOS 链上,这样的操作将难以实现。

另一种方法是限制 Bob 的交易,使他只能以一半的效率处理交易,然而 Alice 可以在网络最优状态下进行交易。这种方式将会增加 EOS 超级节点社区治理难度。

在 EOS 区块链上出过几次限速的事情,几次都以那些持仓较少的朋友被限制使用区块链告终。这也将影响 DAPP 开发者,他们没有大型交易所或大户那样庞大持仓,可能会沦为被剥夺资源的一方。

限速交易将会带来不好的后果,比如取消延期交易,也就是说 DAPP 开发者无法设置链上周期性工作。注意:人们可以通过 LiquidApps network 使用中心化的加密周期服务。

4. 未使用妥当的高通胀率资金模型

年通货膨胀率为 5%,其中 1% 用于回报节点和免费交易。4% 将分配给智能合约,用于资助 EOS 生态中的项目。这个系统称为 Worker Proposal System (WPS),它从未执行,这 4% 一直没有被使用过。

好消息

Telos 成功设计了一个可在 EOS 链上执行的 WPS。

5. 30ms 交易限制

所有 EOSIO 区块链都如此

所有交易都需在 30ms 的限制下完成,尽管有的区块交易处理速度能达到 200ms。

这意味着 DAPP 在设计智能合约的时候需要小心,不要让处理速度超过这一限制。这是一个在智能合约升级及开展周期性服务(可能需要处理数据库中的所有数据)时需要考虑的重要因素。

6. 只需要 15 个节点认可即可进行协议升级

EOS 区块链上有两种升级,两种都只需要前 21 个节点中的 15 位认可即可完成升级

治理升级(软分叉)

当 15 个节点认可了某次升级,所有网络将立即进行更新。这些升级可涵盖各方面,例如:EOS 代币,合约及账户管理,选举节点等等。

协议升级(硬分叉)

网络中的所有节点都必须进行升级以实现协议的更新,当 15 个超级节点认可了某次升级,那些没有进行更新的节点和应用将停止运行。

这与出块不同,21 个节点中需要有 15 个节点验证出块,在他们出错时全网有权验证和拒绝。EOS 出块的确已经非常去中心化,然而它的升级仍然停留在十分中心化的阶段。如果 15 个 节点合谋,他们将有能力攻击主网。

好消息

对于无法影响这 15 个超级节点的外部成员而言,以更新网络的方式来攻击 EOS 将成本昂贵,大概需要花费 8 亿美元来买票。

当前 15 个超级节点可能会作出这样的攻击,然而设想一下,如果这 15 个节点达成线下共识,放弃节点收益和为他们投票的用户,此番操作同样需要消耗 8 亿美元。这其实是很难实现的。

协议更新透明化,任何恶意攻击都能第一时间被监测到。

7. 智能合约升级能力受限于托管模型

所有 EOSIO 区块链都如此

升级合约需要用到账户的 “Active” 权限。以这种方式,EOSIO 智能合约管理的升级将受限于 EOSIO 区块链的账户权限结构。账户权限必须预先设定好能够对账户进行管理的密钥及账户。案例请查看:管理着 EOS Dac 合约的 dacautority 账户权限。

唯一的例外就是 eosio.prods 账户,它根据协议规则每秒更新,有权对系统合约执行具体操作。

这与那些能够依据更新治理规则设定代币持有人数量的区块链系统不同,它将在升级时动态更新。

虽然这不是一个主要问题,但这意味着与其他区块链系统相比,EOS区块链智能合约的灵活度较低。此外,大多数区块链都忽略了可升级性这个问题,比如 Ethereum, Hyperledger, Tezos…因此此点在八点不足中排名较低。

8. 需要近 3 分钟来确定区块不可逆

EOS 区块链的 8 点优劣势

所有 EOSIO 区块链都如此

节点 0.5 秒即能完成一次出块,然而大概需要等待大约 330 个区块 (大约 2.8 秒)才能确定区块不可逆。

最后一个区块被定义为最终不可逆区块(LIB),且需符合以下条件

有新区块产生,该区块证明 21 个节点中已有 15 个节点认可最后一个区块

新区块也取得 15/21 认可,其所提议的最后一个区块将被正式定义为 LIB

双重 LIB 证明依据 V 神针对 DPOS 3.0 提案的反馈执行。

人们需要等待 3 分钟来确定交易最终确认且不可逆,这是个小问题。但牵涉大额资金的交易其实应该由交易者来最终确认,并由交易所进行进行检查,否则将有损 EOSIO 区块链所承诺的 0.5 秒的交易体验。

好消息

BOS Core 区块链也遇到过这个问题,并将耗时降到了 3 秒。我不确定他们是如何做到的,是否有做出一定妥协。

总结

在区块链生态中,EOSIO 软件的独特优势是可扩展性及低延时,加上免费交易及其他优化用户体验的设计,它是目前最可用的区块链软件。

其智能合约设计与 C++ 语言的支持,在 EOS 主网上开发 DAPP 的体验是至今最方便且安全性最高的。

在我看来,智能合约的升级功能是常被忽略的优势,而且这个优势提升了整体 EOS 区块链的架构,为开发者、用户、节点带来了更好的使用体验。

目前在 EOSIO 生态中的区块链,还有许多开发与使用的问题,我最担心的是 RAM 价格和通胀的问题,需要通过技术升级来改善。目前遇到的许多问题,都能通过技术升级与治理规则优化来解决。最令人兴奋的是,EOS 能自我调试及优化,当节点投票通过新提案后,将很快能投入于主网。

但是,底层的问题是,EOS 目前的节点选举制度过于政治化,新的提案很难通过。EOS 主网的良性发展,需要真正为 EOS 生态做投入的活跃代表。目前第一点不足,是生态中被广泛讨论的话题。Block.one 已经暗示会想办法介入,但至今还没有实际动作。问题拖越久,越严重。

如果奇迹发生了,EOS 主网选上了一批更称职的节点,我希望他们能更主动的为 EOS 主网做贡献。

本文的作者是 Jack Tanner,一位区块链开发者。

Jack Tanner 的推特:@theblockstalk

根据国家《关于防范代币发行融资风险的公告》,大家应警惕代币发行融资与交易的风险隐患。

本文来自LIANYI转载,不代表链一财经立场,转载请联系原作者。

发表评论

登录后才能评论

联系我们

微信:kkyves

邮件:kefu@lianyi.com

时间:7x24,节假日bu休息

QR code