新组建的企业以太坊联盟(EEA,Enterprise Ethereum Alliance)发布了一份远景文件,名为《企业以太坊协议的愿景:用户和利益相关者对以太坊协议的建议和实现,以及进展在以太坊协议中的集成》。在这份文件中,EEA 探讨的主题包括:可插拔共识(Pluggable Consensus)、监管、互操作性、以太坊协议更新、安全代码执行、存储和性能优化等。
这份愿景文件的发布,与EEA发布的30 家企业共聚一堂探讨以太坊企业用例这一标志性事件是密切相关的。EEA 的联盟成员有一些是具有良好业务基础的大型企业,例如Microsoft、J.P.Morgan、Intel 和Thomson Reuters 等;也有一些是区块链的初创企业,例如BlockApps、String Labs 和ConsenSys 等。
EEA 为 2017 年确定了五个短期目标,分别是:
- 开发完全模块化的以太坊实现,分离网络和存储层并定义清晰的接口。实现一个可插拔共识的原型,在转换为共识算法时最小化对代码的更改。
- 随数据隐私和许可架构一并测试潜在可用的一致性算法。
- 开发一套清晰的能力和性能特性,适合如下的企业需求:
a. 在有十方参与的网络中达到每秒 100 次交易。
b. 高容量、高价值的用例。
c. 高可用性和高可靠性。
d. 并行,水平可扩展。- 根据在上述目标实现中所学到的,以及从联盟成员处收集的路线图和需求,开发企业以太网第一版规范,即形成一个参考实现。
- 借助稳健的治理过程,确保在方法上保持一致。
可插拔共识
共识是区块链范围内节点就如何在交易状态中取得一致的做法,它取决于参与节点一致过程的算法。鉴于当前以太坊的实现并非是模块化的,当企业需要在共识算法中添加隐私等额外特性时,可能最终会实现为一个以太坊的分支。分支的问题在于对各分支的投资是难以共享的,此外分支还造成了存储碎片化。为满足互操作的需求,EEA 正寻求提供基于模块化的共识算法。在 EEA 的愿景文件中,解释了可插拔共识的重要性所在:
通用、模块化的实现不仅为企业以太坊规范的开发提供了代码库,而且可以测试联盟共识算法。可插拔共识需要提供清晰接口的模块化客户。这样的接口除了用于联网,还可用在以太坊虚拟机(EVM)与共识算法之间。正是这样的接口使得共识层具备了可插拔能力。
EEA 对于模块化方法的考虑是:
并非约定俗成使用特定的算法,而应允许根据不同的用例使用各种算法。
企业以太坊规范第一版
EEA 的目标并非仅是开发一种实现,还包括发布规范。规范应:
通过增强 API 的可用性,加速整个生态系统的发展,以便与开发、DevOps 和管理工具集成,并与遗留系统进行集成。
根据给出的规范,厂商可以提供自己的以太坊实现。由于在实现中给出了接口形式的互操作点,企业就能聚焦于自身的特定需求了。兼容性和互操作性不仅是企业以太坊的目标,而且也是公共以太坊的目标。
稳健的治理
联盟的当前目标是构建一个基于美国的非盈利组织。除了承担日常管理职能的执行主管之外,联盟还在寻求一位执行主管和志愿主席。
EEA 已指明,联盟的核心功能在于联盟的各个成员,以及由成员参与的特定兴趣组。这些以编写原型、架构、路线图和业界分组为重点的兴趣组将按以下四个指导原则组建:
- 开发开源的标准。
- 与建立者和实干者共事,构建通用的系统。
- 保持与公共以太坊的兼容。
- 避免在数据标准上做重复的基础性工作。
以互操作性为重点
尽管要实现跨区块链协议互操作性可能还需要一些时间,但 EEA 已经在构建一系列以互操作性为重点的需求,其中包括:
- 保持应用的可移植性和网络交易的同时,能够在企业以太坊的各层上切换组件。
- 能提供与核心规范互操作的非标准扩展。
- 入站和出站的数据接口,以及以太坊虚拟机的钩函数(EVM hook)。
- 与公共链的兼容性。
为了实现互操作性,EEA 在设计中采用了:
具有清晰接口和 API 的抽象和模块化。
EEA 期望接口一旦发布就难以更改,由此认为互操作性是:
关键的,即便是处于这样的早期阶段。
更新以太坊协议
当前的以太坊协议取决于节点如何为最长链的选取下一个区块,它是基于代价高昂的工作量证明(PoW,Proof of Work)算法的。这一方法的缺点在于限制区块链提交新区块的周期为 10 秒左右。随着以太坊不断在企业中取得进展,需要扩展到服务百万用户的能力,这对现有的协议提出了挑战。
EEA 为改进区块链的扩展性并降低计算代价,正在寻求一些 PoW 的替代方法。EEA 正在对一些可能会成为未来以太坊区块一致性协议的方法作评估,其中包括:
- 授权股权证明机制(DPoS,Delegated Proof of Stake)
- Ouroboros 算法
- Casper 算法
- 权威性证明(PoA,Proof of Authority)
另一些机会存在于以太坊的网络协议层中,在该层上需要“对节点状态序列的全序做原子广播,在这些节点组成的网络中可能存在拜占庭问题”。还有一些用于以太坊网络的一致性协议正在考虑中,包括:
- HoneyBadger
- HydraChain
- Tendermint
一些方法组合了区块和网络的一致性协议,包括:
- HydraChain
- Ethermint
除了更改区块和网络一致性协议之外,还有一些扩展性方法也在正在探讨中,例如:分片、并行和状态通道。
共享数字架构管理
企业以太坊通过分布式总账技术(DLT,Distributed Ledger Technology)将企业聚合在一起。这会使治理领域中出现一些挑战,例如,在对共享程序或合约做版本管理和更新时将会发生什么?EEA 正寻求:
除了可用于更新已部署系统作业代码的设计模式之外,探究如何开发用于共享管理的合约接口和类。
可信计算与预言机(Oracle)/ 数据馈送(Data feed)
有一些对被执行的可信代码做安全的方法。其中一种是使用主流的硬件。举个例子,“Intel SGX 提供了一种内存加密的硅基电路 Enclave,它只能运行经签名和验证的代码,使用一种不能被其它过程访问的方式。”
另一种问题解决方法是借助于 Microsoft Azure 的 Cryptlets 这类服务。Cryptlets 是 Microsoft 的 Bletchley 项目方案的组成部分,侧重于提供一种安全的区块链中间件服务。
试图将数据馈送加入分布式应用或智能合约中时,运行可信代码的安全位置是非常重要的。企业以太坊方案正尝试通过下面的方法解决安全代码的执行问题:
从一开始就聚焦于协议层的实现,随时间的推移,有望由联盟成员给出一些有意义的设计模式,这样的设计模式是围绕预言机(Oracle)数据构建的(可能更为重要的是,如何惩处发布恶意数据的坏角色)。
存储
一些去中心化应用具有存储文档和媒体这类数据的需求。当前对于这类数据的存储,区块链并未给出具有良好成本效益的方法,因而需要提出一种块外安全存储数据的方法。现在已有一些方案正试图解决这个问题,例如,IPFS 和 Swarm。
性能改进和优化
当前以太坊区块链具备每秒处理数十个交易的能力。在企业环境中,各个企业由于用例不同而具有不同的需求。非常有必要提供对地理位置的灵活处理,以及具备灵活确定可变连接中交易数量的能力。为了解决这些企业需求,EEA 聚焦于如下的性能特性:
- 基于对已识别特性的参数化,定义有用的基准测试。
- 对客户测定各类性能参数的操作方法进行概述。
- 相关的性能参数包括:
a. 节点连接性
b. 最优网络拓扑(连接的数量和模式)
c. 连接的可靠性(维护节点间的连结性)
d. 故障实例:何时节点停止互相通信
e. 安全性
f. 活跃度
g. 正当操作所需的最小健康诚实节点数
h. 交易终结的时机
i. 网络节点总数
j. 节点拓扑
k. 以传输时间表示的节点间距离
l. 同步和异步通信
m. 以每秒交易数表示的吞吐量
n. 交易和块传输延迟,处理延迟
查看英文原文: Enterprise Ethereum Alliance Releases Vision Paper
感谢冬雨对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论