解析EOS IO Dawn 4.0的最新变化

蓝狐笔记
蓝狐笔记 得得号

May 09, 2018 蓝狐笔记,通往区块链的新世界!

摘要: EOS考虑到了摩尔定律,随着技术的升级,区块生产者升级到4TB,甚至是16TB的RAM,这样的供应量的增长也会进入EOSIO RAM市场,通过这个来平衡市场价值,防止过度投机。

根据EOSIO Dawn 4.0的介绍,在过去的一个月中,EOS有了如下的变化:

1.  时间定义

将当前时间的定义从“头区块时间”切换为“当前区块时间”。这种变化的好处是可以解决丢块时基于时间操作的一些案例,也可更精确测量智能合约内所用时间。

2. RAM分配模型

EOSIO系统合约向持有代币的人分配RAM(数据库空间)会导致短缺,转向基于市场为基础的分配方式,使用Bancor算法。

BM认为,假设一个EOS价格是20美元,1TB的RAM按比例分配给代币持有者人,每字节成本是0.018美元。不过,考虑到大部分的代币持有人并没有很强的需求使用他们被赋予的RAM,EOS团队一开始把内存定价在每字节0.000018美元(假设一个EOS20美元)。

这样做的好处是新账户只需花费0.1美元价格,也就是4KB RAM。按照这个市场为基础的分配机制,随着可使用的RAM减少,价格升高,在RAM快被用完时,价格接近无穷大。

Dawn3.0有一个很讨巧的设计,就是RAM只能按照当初购买的价格转让。也就是跟现在价格高低无关。好处是防止有人囤积RAM进行投机。

当然这样做存在一个很大的缺点:一开始以很便宜价格购买RAM的用户就没有任何动机再把它卖出去,即使在系统很拥堵,其他人有强烈意愿购买RAM时也一样。

Dawn4.0优化了这个机制,系统合约按照当前的市场价格进行购买和售出RAM。有一些交易者会提前购买RAM,如果他意料到将来会出现RAM短缺。这样会有人寻求投机的空间。不过,最终来说,从蓝狐笔记来看,也许通过市场机制来平衡供需关系可能是相对好的一个选择,在这个过程中,可能会有一些大鳄通过自己的方式来操作市场。

同时,EOS也考虑到了摩尔定律,随着技术的升级,区块生产者升级到4TB,甚至是16TB的RAM,这样的供应量的增长也会进入EOSIO RAM市场,通过这个来平衡市场价值,防止过度投机。

3.对于智能合约开发者的影响

RAM是开发者用于存储数据库记录的资源。但是RAM都是需要成本的,把存储在内存数据库中的数据量减到最小是有很强需求的,开发者设计应用时,有必要考虑到在用户用完后释放RAM。

BM提到了Steem的案例,他说Steem仅在RAM存储1周的内容,整体大小不会随着时间流逝而增长太多。

4.减少投机

 有了RAM市场,有价格波动性,就会有投机的存在。刚才蓝狐笔记也提到过这一点。EOSIO系统合约让RAM不可转让,同时收取1%的交易费用。

 交易费用可以抵消代币的自然通货膨胀,方式是让它退出市场。如果RAM的年交易量等于EOS代币供应量,区块生产者的奖励则由RAM市场费用支付。

 5.跨链通讯

 高性能区块链需要RAM上的所有数据,由于访问磁盘的时间会导致交易吞吐量迅速下降到每秒几百个交易。

 BM认为,为了扩展RAM使用量,需要多条链,这些链有独立内存区,并在独立硬件上运行。

 EOSIO区块生产者可以运行多条不同的链,都可以使用同样的代币购买RAM和带宽。区块生产者的选举在主链上进行,所有相关的侧链由同一组生产者运行。

 每条链可以有自己的1TB+RAM,DApp在不同链之间发送消息的延迟时间仅有几秒。RAM价格在不同链上有所不同,DApp开发者可以知道那里运行最便宜。

 6. 并行设计路线图

 链间通信涉及到Merkle证明确认,1KB+大小,同时也涉及到数十个加密哈希功能以及15+签名验证。这意味着,验证来自其他链的消息成本要高于同一链上的交易验证成本的15-30倍。不过BM认为,验证这些证明不用有太多担心,它们不依赖于区块链状态。

BM和团队认为,通过链间通讯扩展,具有无限的扩展潜力。这个方式可以同时扩展RAM、网络和CPU。同时,考虑到签名验证、上下文无关的动作验证以及链间通信验证已经让大多数CPU具有高单线程吞吐量,对于多线程WASM执行的优化可能会受到其他资源限制而成为瓶颈。 

EOSIODawn 3.0时,BM团队围绕多线程WASM执行的潜力做了不少设计决策。不过,除非实现完整的多线程执行,否则很难知道是否已经覆盖了所有情况。

由此,BM认为, EOSIO Dawn 3.0有很多设计上的复杂性,并没有带来直接可见的好处。

BM和团队思考的结果是,他们认为从单线程升级到多线程执行的途径是发起一条新链,有多线程支持,由同一区块生产者运行。这样,新链可以自由地进行必要的设计调整,以以支持多线程操作。

 也就是说,EOSIO 1.0做一些简化和优化,以同时实现最高的单线程性能和更易于开发。

 BM预计:EOSIO的单线程版本未来会达到5,000-10,000TPS。此外,他认为未来的应用程序更倾向于多链模式,既可以降低成本,也可加速扩展。

7.升级DPOS最后区块不可逆的算法

 BM在Steem和BitShares上都采用过最后区块不可逆的DPOS算法,不过,它有一个潜在问题:在某些极端网络连接中断时,有可能失去共识。关于这个问题,BM认为可以不用担心。

BM认为,最后区块不可逆算法只是一个度量标准,正如比特币的6个区块的规则。纯粹的DPOS会依赖于最长链规则,会达成最终一致。

EOSIO的IBC算法依赖于DPOS最后区块不可逆,以此来确定最终结果。一旦引入了IBC,最后区块不可逆失败导致的成本和修复的复杂度会高得多。

BM团队的成员对最后区块不可逆算法进行优化,可以保证两个节点不会出现不同的最后区块不可逆。 

8. 账户命名

对于EOSIO账户上12个字符命名限制,有些用户表示担心。12个字符名称从64位整数的base-32编码派生出来。在一个事务中,会多次引用账户名,数据库索引也会以64位整数为基础。BM看来,增加账户名称的长度会对性能和体系结构产生深远影响。

EOSIO将账户的概念和身份做了区分,它在账户名和更易读的显示名称之间建立动态链上映射。在BM看来,账户名称更像是牌照。用户可以选择自己易记的。

有些名称可能有比较高的价值,这个跟域名一样,都是稀缺资源,EOSIO系统会给账户名称提供动态定价模型。

为了保证EOSIO 1.0的发布,前期EOSIO把所有账户名称强制为12个字符,并且不包含“.”字符。后期如果社区达成共识,可以升级系统合约,改变命名机制。

9. 区块头确认机制

 跟EOS Dawn 3.0不同,4.0支持仅通过区块头完成验证。它是轻客户端和IBC的基础,也可以阻止一系列攻击媒介,允许区块在网络中广播,无需等待每个节点进行全面验证。

10. 重构区块创建和应用架构

 新模型下,使用用于应用该区块的相同API调用序列来创建区块,以确保相同的代码路径,最小化区块生产者和验证者之间认为有效不一致的可能性。 

11. 轻量级生产者时间表变更证明

在实施Dawn 3.0的IBC概念证明时,团队意识到,有些情况下,简单的签名证明不可能。

 团队希望简化轻量级的稀少区块头验证,有必要对区块签名方式进行重构。Dawn 4.0可以实现确认更改生产者时间表,而无需验证区块头。当一个生产者签署一个区块,他们签署新的时间表,这样就不可能有两个竞争的和同时有效签名的生产者时间表。

 12. 生产者的回报模型

这个可能是很多区块生产者最关注的部分。  

有21个活跃的区块生产者和任意数量的备用生产者。排名前21名的生产者每区块奖励分成0.25%,同时跟每个区块生产者块数成比例。所有区块生产者候选人(包括前21名)也会按照收到的总票数按比例获得0.75%的奖励。最多可以每天一次获得每票收益份额。

要想得到份额收益,生产者必须有能力获得每天100代币。区块生产候选人如果没能在投票基础上做到至少每天100个代币,将一无所获。

这个算法的目的是确保候选生产者有足够的薪酬为社区提供全面的节点服务,确保候选人可以支付其成本。

假设前200位生产者候选人都获得相同数量的选票,这会支持21位活跃生产者和179位备用生产者。如果有些生产者的票数比其他生产者多得多,会导致可以获益的备用生产者的减少。

每日支付最低限额很重要,可以防止富有的人通过投票支持区块生产候选人来获取利益。

13.  投票权重衰减

Dawn4.0系统合约的变化之一就是投票权重衰减机制。为了保持最大的投票影响力,每位选民必须每周重新投票。对于不更新选票的人,投票影响力会衰减,半衰期为1年。

宪法包含禁止使用自动投票机器人,目的是为了让选民重新评估决定,而不是设定之后忘记了。虽然无法证明使用机器人,不过可以证明人们不会使用智能合约进行自动投票。

14. 交易所集成支持

EOSIO已经创建一个关于使用cleos(命令行 eosio 界面)的教程,可以监视转入存款的链,也创建了演示python脚本来监视存入和提现。

15.  EOSIODawn 4.0的可用性

Dawn4.0 代码开发工作在Github“slim”分支上进行。预计在5月11日发布。

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 蓝狐笔记 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信