最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

企业以太坊联盟发布了愿景文件

  • 2017-03-19
  • 本文字数:3038 字

    阅读完需:约 10 分钟

新组建的企业以太坊联盟(EEA,Enterprise Ethereum Alliance)发布了一份远景文件,名为《企业以太坊协议的愿景:用户和利益相关者对以太坊协议的建议和实现,以及进展在以太坊协议中的集成》。在这份文件中,EEA 探讨的主题包括:可插拔共识(Pluggable Consensus)、监管、互操作性、以太坊协议更新、安全代码执行、存储和性能优化等。

这份愿景文件的发布,与EEA发布的30 家企业共聚一堂探讨以太坊企业用例这一标志性事件是密切相关的。EEA 的联盟成员有一些是具有良好业务基础的大型企业,例如Microsoft、J.P.Morgan、Intel 和Thomson Reuters 等;也有一些是区块链的初创企业,例如BlockApps、String Labs 和ConsenSys 等。

EEA 为 2017 年确定了五个短期目标,分别是:

  1. 开发完全模块化的以太坊实现,分离网络和存储层并定义清晰的接口。实现一个可插拔共识的原型,在转换为共识算法时最小化对代码的更改。
  2. 随数据隐私和许可架构一并测试潜在可用的一致性算法。
  3. 开发一套清晰的能力和性能特性,适合如下的企业需求:
    a. 在有十方参与的网络中达到每秒 100 次交易。
    b. 高容量、高价值的用例。
    c. 高可用性和高可靠性。
    d. 并行,水平可扩展。
  4. 根据在上述目标实现中所学到的,以及从联盟成员处收集的路线图和需求,开发企业以太网第一版规范,即形成一个参考实现。
  5. 借助稳健的治理过程,确保在方法上保持一致。

可插拔共识

共识是区块链范围内节点就如何在交易状态中取得一致的做法,它取决于参与节点一致过程的算法。鉴于当前以太坊的实现并非是模块化的,当企业需要在共识算法中添加隐私等额外特性时,可能最终会实现为一个以太坊的分支。分支的问题在于对各分支的投资是难以共享的,此外分支还造成了存储碎片化。为满足互操作的需求,EEA 正寻求提供基于模块化的共识算法。在 EEA 的愿景文件中,解释了可插拔共识的重要性所在:

通用、模块化的实现不仅为企业以太坊规范的开发提供了代码库,而且可以测试联盟共识算法。可插拔共识需要提供清晰接口的模块化客户。这样的接口除了用于联网,还可用在以太坊虚拟机(EVM)与共识算法之间。正是这样的接口使得共识层具备了可插拔能力。

EEA 对于模块化方法的考虑是:

并非约定俗成使用特定的算法,而应允许根据不同的用例使用各种算法。

企业以太坊规范第一版

EEA 的目标并非仅是开发一种实现,还包括发布规范。规范应:

通过增强 API 的可用性,加速整个生态系统的发展,以便与开发、DevOps 和管理工具集成,并与遗留系统进行集成。

根据给出的规范,厂商可以提供自己的以太坊实现。由于在实现中给出了接口形式的互操作点,企业就能聚焦于自身的特定需求了。兼容性和互操作性不仅是企业以太坊的目标,而且也是公共以太坊的目标。

稳健的治理

联盟的当前目标是构建一个基于美国的非盈利组织。除了承担日常管理职能的执行主管之外,联盟还在寻求一位执行主管和志愿主席。

EEA 已指明,联盟的核心功能在于联盟的各个成员,以及由成员参与的特定兴趣组。这些以编写原型、架构、路线图和业界分组为重点的兴趣组将按以下四个指导原则组建:

  1. 开发开源的标准。
  2. 与建立者和实干者共事,构建通用的系统。
  3. 保持与公共以太坊的兼容。
  4. 避免在数据标准上做重复的基础性工作。

以互操作性为重点

尽管要实现跨区块链协议互操作性可能还需要一些时间,但 EEA 已经在构建一系列以互操作性为重点的需求,其中包括:

  1. 保持应用的可移植性和网络交易的同时,能够在企业以太坊的各层上切换组件。
  2. 能提供与核心规范互操作的非标准扩展。
  3. 入站和出站的数据接口,以及以太坊虚拟机的钩函数(EVM hook)。
  4. 与公共链的兼容性。

为了实现互操作性,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 聚焦于如下的性能特性:

  1. 基于对已识别特性的参数化,定义有用的基准测试。
  2. 对客户测定各类性能参数的操作方法进行概述。
  3. 相关的性能参数包括:
    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 )关注我们。

2017-03-19 19:002613
用户头像

发布了 227 篇内容, 共 71.4 次阅读, 收获喜欢 27 次。

关注

评论

发布
暂无评论
发现更多内容

Apache APISIX 结合 Authing 实现集中式身份认证管理

API7.ai 技术团队

api 网关 Apache APISIX Authing 身份验证

AWS 上传的 S3 文件重新载入的时候简体中文显示乱码

HoneyMoose

关于ant design pro的权限方案设计

袋鼠云数栈

大数据

Java Jackson 中的 JsonNode 和 ObjectNode

HoneyMoose

Kafka往事——揭露Kafka推出Kafka Streams背后原因

Kafka中文社区

开源实践 | 携程在 OceanBase 的探索与实践

OceanBase 数据库

OceanBase 开源 客户案例 携程

盘点 2021| 不忘初心,未来之路,与君共勉

法医

前端 盘点 2021

【LeetCode】奇偶树Java题解

Albert

算法 LeetCode 1月月更

一键抠除路人甲,昇腾CANN带你识破神秘的“AI消除术”

华为云开发者联盟

CANN 昇腾 图像消除 智能实例分割 CRA算法

Avue复选框动态赋值不能渲染问题解决方式

泉城老铁

前端 avue

服务发现与配置管理高可用最佳实践

阿里巴巴云原生

阿里云 微服务 高可用 云原生 MSE

杜甫草堂

wood

300天创作

Java Jackson 中的 mapper

HoneyMoose

设计模式【8】-- 手工耿教我写装饰器模式

秦怀杂货店

Java 设计模式 装饰器

面试突击13:方法优先调用可选参数还是固定参数?

王磊

java面试 2022

使用LNMP环境部署码云测试项目

咿呀呀

lnmp

ReactNative进阶(四):ReactNative 原理剖析之JS 层渲染 diff 算法

No Silver Bullet

React Native 渲染性能 1月月更

netty系列之:真正的平等–UDT中的Rendezvous

程序那些事

Java Netty 程序那些事 1月月更

阿里云万郁香:多样付费选择构筑成本最优的弹性体验

阿里云弹性计算

阿里云 年度峰会 付费方式

一个cpp协程库的前世今生(十一)等待与返回值

SkyFire

c++ cocpp

《LeetCode刷题》数组与队列

IT蜗壳-Tango

IT蜗壳教学 1月月更

Spring Boot工程中如何优雅地处理异常

sean77

spring 整洁代码

Kubernetes生态,从繁荣走向碎片化

巨子嘉

容器 云原生

工作中遇到的50个JavaScript的基础知识点

Sunshine_Lin

面试 前端 进阶 基础

倒计时1天 | 超百位技术大咖齐聚开发者大会,与全球开发者一起“数聚未来”

OceanBase 数据库

OceanBase 开源 开发者大会

error: ‘slots_reference’ was not declared in this scope

Ayosh

OpenCV

明道云虹桥演示中心,欢迎进店!

明道云

数据分析人员需要掌握SQL到什么程度?3个常考题目刷一刷

博文视点Broadview

利用闭包实现自定义等待方法

FunTester

多线程 并发测试 闭包 FunTester 自定义等待

【LeetCode】 替换所有的问号Java题解

Albert

算法 LeetCode 1月月更

Avue中如何对option中属性动态赋值

泉城老铁

前端 avue

企业以太坊联盟发布了愿景文件_治理_Kent Weare_InfoQ精选文章