以下这篇关于 EOS 白皮书内容变动的文档,本来是 EosLaoMao 的运营 赵余 写出来作为内部分享的,但我建议他将这篇公开,因为,就算节点和节点之间有竞争关系,但社区之间,更加重要的是合作关系,所以,这篇提纲契领的对比文档,贡献给大家。
希望这篇文章对每个关心 EOS 进度的朋友有帮助,也希望竞选节点的小伙伴们都能取得成功。
EOS 新旧版白皮书的变动
赵余:参考了 Syed 的这篇文章,已经获得了他的授权,我做了一些增减。
https://busy.org/@syedjafri/detailed-list-of-changes-made-to-eos-technical-whitepaper
2018 年 3 月 18 日,EOS 的新版白皮书发布:
https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md
对比第一版白皮书,主要的改动如下:
共识算法(Consensus Algorithm)
BFT-DPoS,即带有拜占庭容错(BFT)机制的委托股权证明 (DPoS)共识算法
- 新块的产生速度加快,由 3 秒一个区块变为 0.5 秒,速度提高了 6 倍。
- 每一轮(即 21 个节点轮流打包一遍,即为一轮)的区块数量也因此从 21 个增加为 126 个(每个节点每次打包 6 个 区块而不是第一版白皮书的 1 个)。
- 21 个区块节点的打包顺序由一套共识算法决定,这个算法规定,这 21 个节点中的至少 15 个节点达成一致,即可以决定打包顺序,其他节点服从该结果。
- 区块节点本身禁止分叉打包,即禁止节点同时在两个分叉链上打包,试图计算最长链。(这个行为被称为是 Double Producing,中文还一时不知道该如何翻译)。EOS 打算通过密码学方法定位这类违规节点,并取消这类节点的打包资格(不再是 Block Producer)。
- 新增的拜占庭容错(BFT)机制,将保证发生在 EOS 主链上的交易在 1 秒之内,就将变为“不可撤销”的状态,秒级的确认成为可能。
账户系统(Account)
- 账户名的最大长度缩短为 12 个字符,原白皮书中账户名的最大长度为 32 字符。
- 支持账户对数据库的并行操作。
- 去掉原白皮书中的将信息响应逻辑(message handlers)分组的功能。
支持并行且执行结果可预期(Deterministic Parallel Execution)
- 首先,并行的支持不会在 6 月份主网上线的时候一起上线,而是随后支持。
- 原有白皮书中关于并行的术语发生了变更,原有的 threads(进程)被换成了 shards(分片),messages(消息) 被换成了 actions(行为)。
- 增加对定时转账(deferred transactions)的支持。定时转账功能有利于运行时间比较久的流程和 dApp 的开发。
- 增加对无上下文行为(Context Free Actions)的支持。这类行为仅仅依赖转账(Transaction)上的数据,不需要状态(State)数据。
代币模型和资源消耗(Token Model and Resource Usage)
- 新增对资源消耗限制(resource usage constraints)的支持,区块节点可以通过插件的方式自定义资源消耗上限。
- dApp 开发者可以灵活选择资源消耗模型,资源一般指的是带宽、算力和存储。
- 引入社区议案系统(Worker Proposal System),成立 Worker Proposal 基金,EOS token 通胀的一部分收益注入到该基金。议案系统旨在增加社区的活跃度,加速社区的发展。完整的议案系统不会在主网上线的时候一起上线,但 Worker Proposal 基金会和主网一起上线。
治理(Governance)
- 冻结账户需要 21 个节点中的 15 个达成共识。旧版白皮书的规定是至少 17 个节点。
- 对于恶意 dApp,只要 15 个节点达成共识,即可采取替换合约代码等方式进行干预。旧版白皮书的规定是至少 17 个节点。
- 对于源代码和宪法(source code and constitution)的改动,只需要 15 个达成共识,旧版白皮书的规定是至少 17 个节点。
脚本和虚拟机(Scripts & Virtual Machines)
- 引入 通用多索引数据库 API(Generic Multi Index Database API)
- 不再实现原白皮书中对以太坊虚拟机(EVM) 和以太坊 Web Assembly(eWASM)的支持。
链内通信(Inter Blockchain Communication)
- 增加对轻量证明(lightweight proofs)的解释。
- 增进对完整性证明(completeness)的解释。
- 采用类似隔离见证(SegWit)的方式,削减对磁盘的占用。
注:EosLaoMao 团队成员已经开始最新版的 EOS 白皮书的翻译工作,有兴趣的可以在 Telegram 群里联系管理员 @zhaoyu 参与志愿翻译和校对的工作。
EosLaoMao 官网:www.eoslaomao.com