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

EOS.IO白皮书简明导读(二)

作者:[email protected]

提示:本文所作解析均为作者个人观点,不代表EOS官方立场,所有信息应以原版白皮书为准。

并行智能合约执行与数据中心级节点

并行智能合约执

首先需要注意一点,BM在发布会视频中特别提到,并行智能合约执行可能不会在EOS的第一版中出现。但是,其区块结构将会预先定义好,并在后续的版本中升级,而且这种升级不需要经过硬分叉即可实现。

异步的并行智能合约执行功能对于区块链智能合约平台来说,将是一个跨越性的进步,除了极大地提升执行效率之外,同时也可以获得由此带来的规模化成本优势——执行智能合约的成本会显著下降。

考虑到区块链的特性,即每份智能合约的操作都需要在所有节点重现至少一次(就是说所有节点能够重做一遍相同的操作,并且得到相同的输出)才能获得共识。考虑到每个账户都可能需要访问自己的私有数据库,同时,由于区块结构的限制,EOS并没有线程锁的概念,所以EOS对智能合约的并行化处理将会在账户层。即每个线程都会按顺序串行处理该账户本次提交的所有智能合约,而同一个区块可以包含多个不同账户提交的智能合约,而并行处理的意思就是,将这些不同账户的合约分配给不同“线程”同时并行异步处理。因为没有锁,账户之间的智能合约调用(跨账户调用)将会由一个轮询执行线程调度程序来进行分配、传递和执行,但和一般电脑上并行执行的程序一样,这种有跨线程传递消息的地方会有性能瓶颈,而EOS跨账户调用消息的接收将是并行的,以减少可能的性能损失。打个比方,并行处理10个相同合约的速度并不完全是处理1个合约速度的10倍,具体速度要看这份合约是有多少跨账户调用的操作以及是否强制要求原子性执行(所有关联的跨账户的合约都在一个“线程”内串行按顺序执行)

但即便如此,确立好整个并行执行的区块结构和系统架构后,横向对硬件扩容以提升性能就变得十分容易。比如原来每秒平均有10份合约分配给10台服务器并行执行,而随着用户量加大,每秒平均增加到了100份合约,那么只需要直接增加更多台服务器就可以增加数十倍的处理能力以满足需求,在平均执行速度上肯定会比以太坊和其他智能合约平台快几个数量级。这也是目前其他智能合约区块链平台完全不可能做到的。打个比方,以太坊就像是一台运行着DOS系统的386处理器(串行处理程序),而EOS就是一台可以并行执行程序并且可以随时扩容的超级计算机。

数据中心级节点

为了最大限度发挥并行处理效能,BM认为时刻都在出块的21个见证人(矿工)必须配置足够性能的硬件设施,甚至每位见证人需要运营一个数据中心级别的节点来执行智能合约,这些节点必须配备集群服务器、万兆光纤来连接各个见证人的数据中心以确保快速出块,而这种成本规模是相当大的。笔者在在第一章里面说到,维系节点的费用将会是从系统通胀中支出,而具体的费率暂定封顶5%,但是这些见证人(矿工)之间可以互相商议以达成共识,在不超过5%限度的基础上寻求一个所有人都可接受的费率。持币用户如果觉得见证人费率太高,或者对其提供的服务不满意,也可以将某些见证人(矿工)选举下台。

虽然总体开销如此巨大,但是只要具备了大量的需求,大量的智能合约通过EOS进行处理,得益于集群化、规模化的成本优势,每一份智能合约的执行成本却可以比现行智能合约平台低几个数量级。

用户权限与管理

Steem用户都知道,Steem设置了三个不同权限的密钥。借鉴这种设计,EOS将会内置一个更加高级的层状用户管理和权限管理系统。不同用户拥有不同的权限,也可以隶属于不同的用户组,不同的用户组可内置不同的权限,这种设计将会相当贴合企业环境的需要。

EOS.IO白皮书简明导读(二)

同样也是借鉴自steem的设计,密钥恢复成为可能。通过在账户中指定一个恢复伙伴账户,在修改密钥后的三十天内,依然可以使用原密钥在恢复伙伴账户的帮助下来重置密钥。(恢复伙伴账户由于没有原密钥所以不能独自重置他人的账号) 

跨链通讯与更加轻量级的默克尔树证明

EOS 将于会内置一个跨链通讯机制用于与其他区块链或者子链之间互相通讯。白皮书举了一个例子:在21个见证人(矿工),3秒确认速度的前提下,一条跨链的交易只需要45秒即可确认。在笔者的理解里,这应该指的是EOS子链或者其他基于EOS的联盟链与公链之间的通讯。而与其他区块结构不一样的跨链交易里(比如比特币),需要的时间会更长,因为前提是跨链交易必须在两条链或多条链之间都被不可逆地确认后才可以达成共识。

在EOS里引入了一个更加轻量级的用于轻客户端的默克尔证明(LCV),相比于比特币的SPV,这种结构的验证速度更快,需要传输和保留的数据更少,也更利于跨链操作。正如白皮书所说,“EOS操作系统的轻量级证明只需要验证包含某个特定的不可逆交易之后的区块头数据,使用哈希链表架构,数据集可以保持在1024 bytes内,即可证明任何一个交易是否存在。这是基于验证节点保留着前一天的所有区块头数据(2 MB大小),然后证明这些交易只需要200 bytes大小的证明数据。”

这种结构更加灵活,更加适合智能合约平台采用。同时超轻量级的轻节点并不需要经过长时间初始同步以及存储全部区块头数据。并且EOS提供一个灵活的裁剪历史交易功能来缩小节点所需要存储的数据量,通过裁剪功能可以视乎不同场合不同情况来对存储容量和验证速度进行调节。所以在EOS网络中可能会有超轻量化的节点(如用于智能手机的客户端),保留全部数据的全节点(比如见证人有义务保留全部历史数据),只保留部分数据的“半全节点”,或者那些选择只保留一天历史数据的验证节点。

EOS.IO白皮书简明导读(二)

未完待续……

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

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

发表评论

登录后才能评论

联系我们

微信:kkyves

邮件:kefu@lianyi.com

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

QR code