探索私有以太坊

本文探讨了私有以太坊的背景、类型及其与公共以太坊的差异,重点分析了Hyperledger Besu和Consensys Quorum两个私有以太坊项目,包括它们的特性、共识算法、权限控制及私有交易处理等方面。此外,文章还总结了构建私有以太坊的必要性和建议,尤其在企业环境中的应用。

目录

  1. 私有以太坊的背景和类型

1.1 私有以太坊的背景

1.2 私有以太坊的类型

1.2.1 Hyperledger Besu

1.2.2 Consensys Quorum

  1. 私有以太坊与以太坊的区别

2.1 共识算法

2.2 权限控制

2.3 私有交易(Tessera)

2.4 实现私有以太坊

  1. 结论
  2. 参考文献

1. 私有以太坊的背景和类型

1–1. 私有以太坊的背景

最近,越来越多的企业开始利用区块链作为基础设施提供服务。在构建区块链网络时,这些企业主要面临的一个问题是决定使用哪个主网作为其基础设施。目前,54% 的开发者正在以太坊区块链上开展区块链项目,使其成为最广泛使用的区块链之一。然而,交易速度慢和区块数据公开的特性使得企业的使用变得困难。

图 1. 区块链三难困境

这导致了企业导向的以太坊的创建,保留了以太坊的技术特性,但由特定授权的组织或团体控制的节点管理。由于节点和区块数据不被公开,这种方法放弃了区块链三难困境中的去中心化,但使企业能够由于更快的交易处理实现更高的安全性和可扩展性。

在本文中,我们将检查基于开源以太坊构建的企业网络的区块链项目,并探讨每个项目的特性及其与以太坊的区别。

1–2. 私有以太坊的类型

以太坊客户端是指能够连接到以太坊网络以创建和发送交易、执行智能合约等任务的软件。

图 2. 截至 2024 年 4 月,以太坊共识客户端和执行客户端的状态(来源: clientdiversity

在这些客户端中,geth 是望用于利用以太坊功能的最常用客户端。除了图 2 中列出的公共客户端外,还有像 Hyperledger Besu 和 GoQuorum 这样的私有执行客户端,设计上仅允许有限数量的参与者。本文将探讨被称为私有以太坊的 Hyperledger Besu 和 Quorum,并检查它们与公共以太坊的不同之处。

表 1. 以太坊客户端比较

Hyperledger Besu

Hyperledger Besu 是 Linux 基金会的 Hyperledger 项目 下的一个区块链项目。它支持以太坊虚拟机 (EVM) 的实现,并且是一个开源项目。它由 Consensys 的 Pegasys 工程团队于 2018 年作为 Pantheon 项目开始,2019 年时 转移到 Hyperledger 并继续开发。与用 Go 开发的 geth 不同,Hyperledger Besu 使用 Java 开发为其自己的以太坊客户端。

Hyperledger Besu 提供私有网络和公有网络两种模式,可以形成自己的网络,并且可以与以太坊进行互操作。

图 3. Besu 私有网络配置(来源: Besu Docs

图 4. Besu 公共网络配置(来源: Besu Docs

私有网络可以形成一个独立于以太坊主网或测试网的网络,并且具有在保持交易隐私的同时处理参与者之间交易的能力。

在 Besu 的公共网络中,它能够与以太坊主网进行互联,并作为以太坊的执行客户端。在 以太坊合并升级 之后,以太坊客户端可以分为“共识客户端”和“执行客户端”,而 Hyperledger Besu 也作为执行客户端与公共以太坊节点配合使用。

因此,在图 4中所示的 Besu 公共网络示意图中,共识部分位于 Besu 核心之外,主要使用 Consensys 的 Teku 作为共识客户端。通过参考 linked 资源可以实现将 Besu 和 Teku 连接到以太坊主网以便操作。

在图 3 所示的私有网络示意图中,使用 QBFT、IBFT2.0 和 Clique 等共识算法。私有区块链通过企业或组织之间的共识使用,从而显著减少网络内恶意攻击的可能性。因此,共识过程的要求比以太坊的要求宽松,使用诸如 QBFT 和 IBFT 等简单高效的共识机制。关于具体共识算法的详细信息将在下面的第 2 章中介绍。

Consensys Quorum

Quorum 是 J.P. Morgan 于 2016 年创建的一个私有以太坊项目,并于 2020 年 8 月 被 Consensys 收购。在收购前,J.P. Morgan 和 Consensys 曾在创建企业以太坊联盟 (EEA) 和开发 Hyperledger Besu 上合作,而收购使 Quorum 与 Consensys 的其他 web3 产品具有互操作性。

Quorum 是通过分叉公共以太坊客户端 geth (go-ethereum) 开发的,由于 Hyperledger Besu 也是以太坊客户端的 Java 版本,因此两者之间的功能差异并不显著。Hyperledger Besu 最初由 Consensys 开发,而 Quorum 也是在 Consensys 与 J.P. Morgan 的合作下开发的,因此两个项目紧密合作,正在开发的功能是共享的。

下面是一个表格,说明 Hyperledger Besu 和 Quorum 之间的差异。最显著的区别是,Besu 可以配置为与公共以太坊网络互操作,而 Quorum 只能私用。

表 2. Hyperledger Besu 和 Quorum 比较(来源: Visa Crypto Blog

这两个项目的一个共同特征是它们遵循企业以太坊联盟 (EEA) 的规范。EEA 是一个支持企业使用以太坊技术进行业务应用的组织,通过提供标准规范来帮助企业更轻松和安全地使用以太坊区块链。接下来,我们将探讨私有以太坊有何规范以及它与以太坊的不同。

2. 私有以太坊与以太坊的区别

2–1. 共识算法

共识算法是在区块链中确保参与节点达成一致的最关键因素。它使区块链网络中的参与者能够就新区块或交易的有效性达成一致,从而确保所有参与者之间的一致性和可靠性。

在私有以太坊中,由于仅有验证过或受信任的公司和组织的批准参与者进行通信,网络内恶意活动的可能性降低。因此,通常选择 PBFT(实用拜占庭容错)家族的共识算法,这些算法在节点数较少的情况下提供高吞吐量和低时延。Hyperledger Besu 和 Quorum 中可用的共识算法包括:

  • QBFT(Quorum Byzantine Fault Tolerance):由 Consensys 和 J.P. Morgan 合作开发的共识算法,是现有 IBFT 算法的扩展,提供适合商业用例的增强特性。
  • IBFT(伊斯坦布尔拜占庭容错):IBFT 解决了在传统区块链中应用 PBFT 时遇到的几个问题,确保交易的最终性。
  • CliquePoA:go-ethereum 中包含的默认权威证明 (PoA) 共识算法。
  • 基于 Raft 的共识:快速区块时间、交易最终性和需求驱动的区块创建的共识算法。

私有以太坊保留了以太坊的概念,但由于网络由有限节点组成,因此在交易速度上有优势。主要区别在于,不同于以太坊需要考虑交易顺序的天然费用概念,私有以太坊中仅有限数量的节点创建区块,因此不需要思考交易的排序。

虽然在以太坊中提出了各种技术方法来解决 MEV(最大可提取价值)问题,但在私有以太坊中,由于在节点参与者的共识下无需设置天然费用,因此以太坊面临的挑战并不存在。

2–2. 权限控制

接下来,私有以太坊的一个特性是它仅允许有限数量的参与者获得权限。在 Besu 和 Quorum 中,有两种限制权限的方法:限制节点权限和限制账户权限。

  1. 节点权限控制

图 5. 节点权限控制图(来源: Besu Docs

在 Besu 中,节点权限控制仅允许授权节点参与网络。为了实现这一点,Besu 在配置文件中定义了一份允许的节点列表,只有在列表中的节点可以参与网络。这可以通过在配置文件中使用选项 — permissions-nodes-config-file-enabled— permissions-nodes-config-file=<file path> 来激活。

2. 账户权限控制

图 6. 账户权限控制图(来源: Besu Docs

同样,可以限制特定账户是否可以发送交易或创建合约。可以使用账户权限列表来管理可以发送交易的账户地址。与节点权限控制类似,这可以通过在配置文件中使用选项 — permissions-accounts-config-file-enabled— permissions-accounts-config-file=<file path> 来开启。

节点权限和账户权限都可以通过参与者的共识进行控制,当两个或多个机构建立网络时,事先达成协议以确保跨所有节点均匀应用十分重要。除了配置文件,区块链网络的访问权限也可以通过智能合约进行控制或管理,因此不强制要求通过配置文件中的选项进行控制。

2–3. 私有交易(Tessera)

最后,像 Besu 和 Quorum 这样的私有以太坊平台可以使用 Tessera 来加密交易数据。Tessera 是由 Consensys 为 Quorum 和 Besu 提供的隐私管理工具,负责处理在区块链网络上创建、传输和存储私有交易。与公共以太坊不同,在公共以太坊中,网络中的所有参与者都可以看到数据,而 Tessera 使用 PKI(公钥基础设施)来加密交易数据,并使用接收者的公钥再次加密以安全地传输交易。

加密的交易数据存储在 Tessera 节点中,每个 Tessera 节点仅存储其用户参与的私有交易的数据。

图 7. Quorum 节点与 Tessera 节点之间隐私交易处理的过程(来源: Tessera Docs

图 7 展示了在 Quorum 网络中使用 Tessera 处理加密私有交易的过程。此过程涉及参与者 A(发送者)、参与者 B(接收者)和参与者 C(未参与交易的节点),从他们的角度按照以下步骤进行。

  1. 参与者 A(发送者):

- A 通过 DApp(去中心化应用)生成私有交易 A 并将其发送到 Quorum 节点 A。

  1. Quorum 节点 A:

- 接收交易 A,加密其内容,并将其发送到 Tessera 节点 A。

- 计算交易 A 的哈希并将其作为一般交易 B 广播到 Quorum 网络。

  1. Tessera 节点 A:

- 接收私有交易 A 并将其存储。

- 发送确认信号回 Quorum 节点 A,确认已收到私有交易 A。

  1. 参与者 B(接收者):

- Quorum 节点 B 接收一般交易 B,并使用私有交易 A 的哈希向 Tessera 节点 B 请求数据。

  1. Tessera 节点 B:

- 使用私有交易 A 的哈希来检索交易。

- 将检索到的交易发送给 Quorum 节点 B。

  1. Quorum 节点 B:

- 准备执行交易 A,并开始呼叫“隐私预编译”及所需数据。

  1. 隐私预编译:由参与者 B 调用,这是一个执行私有交易 A 的智能合约。
  2. 结果返回:执行私有交易 A 的结果返回给参与者 B。

在上述过程中,参与者 C 收到了一般交易 B,但由于 Tessera 节点 C 不拥有隐私交易 A 的数据,因此无法查询相关隐私数据。

通过这种方式,Tessera 可用于隐私至关重要的各种领域,如个人信息、医疗数据、财务信息和供应链管理。它在特定节点或公司之间安全共享和处理重要数据方面非常有效。

2–4. 构建私有以太坊

由于私有以太坊是基于以太坊开源代码的项目,因此其大部分功能都基于以太坊。即使是 ConsenSys 和 J.P. Morgan 以外的公司,也可以利用公开的 go-ethereum 源代码在本地 PC 上创建私有区块链网络。

创世文件由参与区块链网络的所有节点记录,并可以定义区块链网络的初始配置和设置。让我们看看私有区块链如何通过 Hyperledger Besu 提供的创世文件来管理共识算法和访问控制。

{
  "config": {
    "chainId": 2018,
    "berlinBlock": 0,
    "ibft2": {
      "blockperiodseconds": 2,
      "epochlength": 30000,
      "requesttimeoutseconds": 4
    }
  },
  "nonce": "0x0",
  "timestamp": "0x58ee40ba",
  "extraData": "0xf83ea00000000000000000000000000000000000000000000000000000000000000000d5949811ebc35d7b06b3fa8dc5809a1f9c52751e1deb808400000000c0",
  "gasLimit": "0x1fffffffffffff",
  "difficulty": "0x1",
  "mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": {
    "9811ebc35d7b06b3fa8dc5809a1f9c52751e1deb": {
      "balance": "0xad78ebc5ac6200000"
    }
  }
}

上面的文件是定义 Besu 网络初始配置的 创世文件 的示例。

  • chainId:网络的唯一标识符
  • ibft2:包含 IBFT2.0 共识算法的设置
  • alloc:为特定地址分配初始余额

在上面提到的 alloc 设置中,主要放置组成网络的节点的公钥信息,以为节点分配初始余额。如前所述,在企业以太坊中,只有获批准的用户参与到区块链网络中,因此天然费用通常是多余的,但由于使用了以太坊的开源,因此创世文件中保留了这一概念。

因此,通过查看 Hyperledger Besu 的创世文件,可以了解正在配置的网络的共识算法和节点信息。然而,由于节点是内部管理而非外部管理,私有网络的配置文件信息只能在内部进行验证。

结论

通过本文,我们探讨了私有以太坊的背景、各种类型及其构建示例。私有以太坊在现代商业环境中发挥着至关重要的作用,而企业和组织需要安全性、效率和定制化的区块链解决方案。特别是私有以太坊可以确保数据的透明性和不可篡改性,同时确保必要的隐私。

尽管构建私有以太坊看起来复杂,但如果正确构建,可以显著提高企业运营的效率并提供新创新的机会。因此,其应用范围和影响预计将在未来进一步扩大。

参考文献

https://usa.visa.com/solutions/crypto/enterprise-blockchain.html

https://blog.web3labs.com/a-comparison-of-ethereum-clients

https://blog.web3labs.com/web3development/comparing-byzantine-fault-tolerance-consensus-algorithms

https://www.hyperledger.org/blog/why-hyperledger-besu-is-a-top-choice-for-financial-use-cases

  • 原文链接: medium.com/@chaisomsri96...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Chaisomsri
Chaisomsri
Fullstack | Blockchain Engineer