并行执行:开启区块链新纪元

进阶5/10/2024, 10:43:33 AM
加密研究机构 Shoal Research 解析了当前区块链并行领域的相关项目,包括 Solana(SVM)、并行 EVM(Sei、Monad)以及 MoveVM(Aptos、Sui、Movement)的进展,并分析了该领域面临的挑战与机遇。

前言

1.0 区块链交易

区块链本质上是一种虚拟的计算系统,它以软件的形式存在,运行于一个分散的计算机网络之上,这个网络开放给所有人加入,但却几乎不可能被任何单一机构控制。区块链这一概念最早出现在2008年,由Satoshi Nakomoto在其开创性的比特币白皮书中首次提出,旨在为比特币实现一种加密且安全的点对点支付系统。在区块链世界中,交易的角色相当于社交媒体和互联网公司中的日志记录,它们记录了网络中的各种活动。不同的是,区块链上的交易记录是永久不变的,并且大多数情况下是公开可见的。

但交易到底是什么?

简单来说,区块链上的交易就是数字资产在分布式账本上从一个地址转移到另一个地址的过程,这一过程通过公钥加密技术来确保安全性。这些交易不仅可以用于实现去中心化的人与人之间的资金转移,还可以用于各种认证和验证操作。

任何人都能通过区块链浏览工具,如SeiTrace,来查看交易情况

1.1 区块链交易如何运作

当发起一笔交易,比如Bob给Alice转账一些代币时,这笔交易就会被广播到整个区块链网络中。接下来,网络中的特定节点群体会开始验证这笔交易的合法性。一旦有足够多的节点确认了交易的内容无误,这笔交易就会被加入到一个区块中,和其他用户的交易一起。当一个区块数据满载时,它就会被正式加入到区块链中,这也是“区块链”名称的由来。这样,Bob的交易就被记录在了一个既安全又透明的账本中,他和Alice都能查看和验证交易详情。

一般来说,所有区块链交易都包含了一些元数据,这些数据帮助网络中的节点识别并执行特定的指令和参数。每笔交易都会包括一些由交易发起人提供的基本信息,比如转账金额、接收地址和用于验证交易的数字签名,还有一些根据网络和设计不同而自动生成并附加上的额外数据。

不过,值得注意的是,交易执行前,在网络层面背后进行的具体处理流程会根据不同的区块链设计而有所不同。

1.1.1 内存池(Mempool)

内存池(或称mempool)是比特币、以太坊等传统区块链网络设计中的一个标准功能。简而言之,内存池就像是一个缓冲区或“候机室”,专门用来存放那些还没能加入区块、等待执行的交易。

为了便于理解,我们可以追踪一笔在使用内存池的区块链上的交易经历:

  1. 用户发起并签署交易。
  2. 区块链网络中的专业节点会检查这笔交易,确认其合法性及参数的正确性。
  3. 通过验证后,这笔交易就会被发送到公共内存池中,和其他待处理的交易排队等待。
  4. 根据这笔交易相对于内存池中其他交易支付的交易费,最终,这笔待处理的交易可能会被选中并与其他交易一起组成区块链上的下一个区块。此时,交易的状态会显示为“成功”。
  5. 经过一段时间或达到某个基于区块的限制后,该区块被确认无误,交易便永久记录在区块链上,成为不可更改的记录。除非遭受51%的攻击,这种记录几乎不可能被篡改。

1.1.2.无内存池 (Solana)

需要特别指出的是,像Solana这样的一些区块链系统并不采用内存池机制。相反,它们可能会直接把交易信息发送给区块生产者,这样做是为了通过连续不断的区块生成,达到高速度和大容量的目的。

下面我们来看看在一个没有内存池的区块链上,一笔交易的全过程:

  1. 用户为他们正在使用的应用程序发起并签署交易。
  2. 用户对他们正在使用的应用中的一笔交易进行发起和签名。
  3. 应用将交易信息发送到远程过程调用(RPC)服务器。
  4. RPC服务提供商将交易信息发送给当前的区块生产者,以及接下来的三位生产者。这是一个预防措施,以防当前负责人无法及时处理交易。Solana使用一个特定的排班表来简化交易的路由过程。
  5. 区块生产者接着将这笔已签名的交易发送给共识节点进行验证。
  6. 共识节点通过投票来验证交易的内容,完成后,交易的状态就会通过RPC > 应用程序 > 用户的路径返回,标记为“成功”或“失败”。
  7. 和使用内存池的区块链一样,一定时间或达到某个区块限制后,区块就会被最终确认。

1.2 交易的顺序执行

早期的区块链系统,如比特币和以太坊,使用了一种交易顺序处理的方法。这意味着每一笔加入区块链的交易都会改变网络的状态,而为了保障安全,它们的虚拟机(VM)被设计成一次只能处理一种状态的变化。

这种处理方式导致了一个重大的问题:网络的处理能力受到了极大的限制。因为每个区块能包含的交易数量有限,这不仅让用户需要等待更长时间,还可能导致交易费用的急剧上升,有时甚至让整个网络都无法正常使用。而且,这种顺序处理模式对硬件的利用率极低,也就意味着它不能充分利用计算技术的最新进展,例如多核处理器的优势。

并行执行

2.0 什么是并行执行?

并行计算是计算机架构中至关重要的一环,其历史可以追溯到20世纪50年代末,甚至有人将其理念和理论的起源追溯到1837年。简单来说,并行计算就是在执行一个操作时,同时利用多个处理单元,通过将一个大型且复杂的任务分解成若干个小任务来完成,这样做比按顺序逐个处理要高效得多。

这种架构标准同样适用于区块链技术,只是在这里,计算机处理和执行的主要任务是交易处理,即从一个智能合约向另一个智能合约转移价值,这就是所谓的并行执行。

并行执行的含义是,区块链可以同时处理多个不冲突的交易,而不是按顺序一个接一个地处理。这大大提高了区块链网络的处理能力,使其能够更有效地应对更高的活动量和对区块空间的需求,从而变得更加可扩展和高效。

打个比方,想象一下,一家超市如果设有多个结账通道让顾客结账,与只开设一个通道让所有人排队相比,前者的效率显然要高得多。

为什么并行执行至关重要?

在区块链领域,采用并行执行的目的是为了提升网络的速度和整体性能,尤其是在网络流量和资源需求激增的情况下。以加密货币生态为例,这意味着如果Bob想要创建最新的热门NFT系列,而Alice想要购买她钟爱的梗币,那么网络能够同时满足他们的需求,同时保持高性能和良好的用户体验。

虽然这听起来可能只是一个提升使用体验的直观功能,但并行执行带来的网络性能提升实际上为开发新颖和创新的应用场景及应用程序铺平了道路,这些应用能够充分利用低延迟和大容量的优势。这不仅仅是技术进步的体现,更为未来大规模吸引用户进入加密货币生态系统打下了坚实的基础。

并行执行的工作原理是什么?

虽然并行执行的基本概念比较简单,但不同区块链的设计差异会影响并行执行的具体实现方式。在设计支持并行执行的区块链时,一个关键因素是交易能够访问其底层网络状态的能力,这包括账户余额、存储空间和智能合约等。

区块链的并行执行可以分为确定性执行和乐观性执行两种。Solana等区块链采用的确定性并行执行要求交易事先明确声明它们需要访问的所有数据依赖,例如,它们预先希望访问的全局状态的具体部分。这一要求虽然增加了开发者的工作量,但从更广泛的角度来看,它允许网络在执行之前对不会产生冲突的交易进行排序和识别,从而构建出一个既可预测又高效的系统。而乐观性并行执行则是假设所有交易之间不存在冲突,从而并行处理所有交易。这种方式使得区块链能够加快交易执行速度,但如果出现冲突,可能需要之后重新执行这些交易。如果系统发现两个交易冲突,那么它可以重新处理和执行这些交易,无论是并行还是顺序执行。

为了更深入理解这些设计细节的影响,分析当前在并行执行领域不断探索的团队的做法,可能会对理解并行执行有所帮助。

当前并行执行技术的发展现状

为了深入了解这些复杂设计背后的影响,观察和分析那些正处于并行执行技术前沿、积极推动其发展的团队,将会是一种非常有益的方法。

3.1 Solana 虚拟机(SVM)

Solana区块链网络是首个专门为并行执行而设计的系统,这个设计思路源自其创始人Anatoly Yakovenko在电信领域的丰富经验。Solana的目标是提供一个开发平台,其运行速度能够达到物理极限,因此采用并行计算来提升速度和效率是一个自然而然的选择。

Solana实现快速处理和高吞吐能力的核心技术是Sealevel,这是一个支持并行智能合约的运行环境。与基于EVM和WASM的环境不同,Sealevel使用多线程技术,这意味着它能够根据验证器的处理能力,同时处理多个交易。

Solana并行执行的关键在于,一旦启用一笔交易,网络就会为这笔交易分配一系列指令,明确指出需要访问的账户和状态以及需要做出的更改。这一机制不仅能识别出可以同时执行的非冲突交易,还允许那些需要访问相同状态的交易能够并行进行。

可以将这一机制比作机场行李处理系统中标签的作用,极大提高了效率。

此外,Solana还开发了专门的账户数据库Cloudbreak,用于存储和管理状态数据,支持交易的并发读写操作。Cloudbreak经过优化,支持并行执行,能够在多个节点之间横向扩展,分散和管理状态数据。

得益于其并行架构,Solana能够处理大量的交易,同时保持快速执行,交易几乎能瞬时完成。目前,Solana的处理速度平均每秒在2000至10000笔交易之间。随着像Eclipse这样的团队开发基于SVM的第二层解决方案,SVM的应用场景正逐渐拓宽,为Solana生态系统引入更多创新。

3.2 并行EVM

并行EVM提出了一个全新的区块链执行环境概念,它试图结合Solana的高速性能和以太坊的安全性与资金流动性的优势,实现最佳的两全其美。通过并行而非传统EVM那样的串行处理交易,这种并行的EVM环境能够让开发者在一个高效的网络上开发应用,同时便于他们接入以太坊的资金流动性和开发工具,从而拓宽应用的可能性和便利性。

3.2.1 Sei网络

Sei网络是一个支持EVM的开源一层区块链平台,它支持众多基于高性能的去中心化应用。Sei的设计初衷是为了给用户和开发者提供既快速又经济的服务体验,其中并行执行技术是其实现高效性能和优秀用户体验的核心。目前,Sei能够在390毫秒内确认区块,并已在其太平洋主网上处理了超过19亿笔交易。

在早期,Sei采用了一种确定性并行执行模式,智能合约需要提前声明它们要访问的状态,这样系统就能同时处理那些不会产生冲突的交易。随着V2版本的升级,Sei转向了一种乐观并行模型,即所有交易在提交至网络后(执行阶段)将被并行处理,并在之后对可能与之前交易冲突的信息进行验证(验证阶段)。如果出现两个或更多试图访问同一网络状态的冲突交易,Sei会找出冲突点,并根据冲突的具体情况选择并行或顺序重新处理这些交易。

为了更好地存储和管理交易数据,Sei还开发了SeiDB,这是一个专为优化并行执行而设计的自定义数据库。SeiDB的目标是减少存储冗余数据的成本,同时有效使用磁盘空间,以提升网络性能。V2版本减少了追踪和存储所需的元数据,并引入了预写日志功能,以便在系统崩溃时辅助数据恢复。

此外,Sei近期还推出了其并行堆栈,这是一个旨在帮助二层扩展方案(如rollups)利用并行执行技术的开源框架,进一步提升了其技术生态的扩展性和应用潜力。

3.2.2 Monad

Monad是一个新兴的并行EVM一级区块链项目,它将为以太坊的应用程序和基础架构提供完整的字节码和RPC兼容性。Monad通过引入一系列创新技术,旨在比当前的区块链提供更加互动的体验,并且通过对性能和可携带性的优化,实现低成本的交易,其区块确认时间仅为1秒,并能支持每秒处理高达10,000笔的交易量。

Monad采用了并行执行和超标量流水线技术,这些技术显著提高了交易的处理速度和吞吐量。与Sei的第二版类似,Monad也将采取乐观执行模式,这意味着网络会同时开始处理所有新的交易,随后对这些交易进行分析和验证,以识别并处理任何冲突,确保如果这些交易是按顺序执行的,最终结果将保持一致。

值得一提的是,为了与以太坊保持一致,Monad会按照线性顺序在一个区块中安排交易,并依次更新每笔交易。

为了比现有的以太坊客户端更高效地存储和访问区块链数据,Monad开发了专门为区块链设计的自定义数据库MonadDB。MonadDB利用了Linux内核的高级特性来执行高效的异步磁盘操作,克服了同步输入/输出访问的限制。通过提供异步输入/输出访问,MonadDB支持并行执行的关键功能,使系统能够在等待读取一个交易的状态信息时,同时开始处理下一笔交易。

用一个简单的比喻来说,就像同时准备一个包含多个部分的大餐(比如意大利面配肉丸)。涉及的步骤包括制作酱汁、烹饪肉丸和煮意大利面。一个高效的厨师会同时进行多个步骤,比如先烧开煮面的水,然后准备酱汁的材料,接着把面条放进已经煮沸的水中,然后烹饪酱汁,最后做肉丸,而不是一步步单独完成每个任务。

3.3 Move

Move是一种由Facebook团队在2019年为其已经终止的Diem项目所开发的编程语言。Move的设计初衷是为了安全地处理智能合约和交易数据,它通过设计上的优势,排除了诸如重入攻击等在其他编程语言中常见的安全漏洞。

MoveVM作为Move语言支持的区块链平台的核心执行环境,通过并行处理技术,实现了更快的交易处理速度和更高的系统效率。

3.3.1 Aptos

Aptos是一种基于Move语言的一级区块链平台,它由前Diem项目团队成员开发。这个平台通过实施并行处理技术,旨在为应用开发者提供一个高效的工作环境。Aptos采用了一种名为Block-STM的技术,这是软件事务内存(STM)并发控制机制的一种改进型实现。

Block-STM是一个支持多线程并行处理的执行引擎,它采用乐观并行执行的方式。通过预先对交易进行排序并在区块中按策略排列,这一机制关键地帮助高效解决冲突并对需要的交易进行重新执行。Aptos的研究表明,理论上利用Block-STM的并行处理技术,可以达到每秒最高160,000笔交易的处理速度。

3.3.2 Sui

Sui和Aptos一样,也是由Diem项目前成员开发的一级区块链平台,同样采用了Move语言。不过,Sui对Move语言进行了特别的定制修改,这些修改涉及到存储模型和资产权限,与原始的Diem设计有所不同。特别值得注意的是,Sui采用了一种状态存储模型,能够将独立的交易以对象的形式进行表示。在Sui的执行环境中,每个对象都拥有一个独一无二的标识符,这样做使得系统能够轻松地识别出不会产生冲突的交易,并能够并行处理这些交易。

与Solana相似,Sui采用了确定性并行执行的策略,这意味着交易必须在执行前声明它们将要访问的账户信息。

3.3.3 Movement Labs

Movement是什么?

Movement致力于开发一系列的开发者工具和区块链基础服务集,旨在帮助开发者轻松享受在Move平台上开发的优势。它提供一种类似于AWS的执行即服务模式,专为Move平台的开发者设计,通过并行处理技术作为其核心设计理念,以提升处理速度和网络的整体效率。MoveVM是一种模块化的执行环境,它为区块链网络提供了扩展和调整交易处理能力的灵活性,以应对交易量的增加,从而增强了网络并行处理和执行交易的能力。

MoveVM架构

Movement还计划推出M2,一个与EVM和Move客户端兼容的ZK-rollup解决方案。M2将采用Block-STM的并行处理引擎,预计将能够实现每秒数万次的交易处理速度。

结束语

4.1 当前并行系统的挑战

在发展并行区块链技术的过程中,我们面临着一系列重要的问题和考量:

  • 为了通过并行执行获得更好的性能,网络进行了哪些权衡?
    • 减少验证节点能够提高验证和执行的速度,但这是否会削弱区块链的安全性,使得验证节点更容易联合起来攻击网络?
    • 是否有很多验证节点集中在同一个地方?这种做法在加密和非加密系统中都是减少延迟的常见策略,但如果那个特定的数据中心遭到攻击,对网络又会有什么影响?
  • 对于采用乐观并行策略的系统,随着网络的扩大,重新执行无效交易的过程是否会变成瓶颈?这种效率如何进行测试和评价?

从宏观角度来看,并行区块链面临着账本不一致的风险,如双重支付和交易顺序改变(这正是顺序执行的主要优势)。确定性并行化通过为底层区块链上的交易创建一个内部标签系统来应对这一问题。采用乐观处理机制的区块链必须确保其验证和重新执行交易的机制既安全又有效,并且为了性能所做的权衡是合理可行的。

4.2 未来展望/机遇

从计算机发展史我们可以看出,相较于顺序处理系统,并行处理系统在效率和可扩展性方面随时间展现出更强的优势。Solana之后并行区块链的崛起进一步证明了这一点同样适用于加密领域的基础设施建设。甚至Vitalik也曾提到,并行化是近期提升EVM rollups可扩展性的关键解决方案之一。总的来说,随着加密和区块链技术的普及,市场对于比现有系统更优化的解决方案的需求日益增长,这其中就包括并行区块链。Solana近期遇到的网络问题也表明,并行区块链的开发还有很大的进步空间。随着更多团队努力拓展链上技术的边界,并吸引更多用户及应用转向区块链原生生态,并行处理模型为构建能够高效管理大量网络活动的系统提供了一个直观的框架,使其能够轻松应对与Web2公司相匹配的规模挑战。

参考文献

声明:

  1. 本文转载自[shoal )],原文标题《Parallel Execution: The Next Generation of Blockchains》,著作权归属原作者[PAUL TIMOFEEV, MIKE JIN, AND GABE TRAMBLE],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。

  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。

  3. 文章其他语言版本由Gate Learn团队翻译,除非另有说明,否则不得复制、传播或抄袭经翻译文章。

并行执行:开启区块链新纪元

进阶5/10/2024, 10:43:33 AM
加密研究机构 Shoal Research 解析了当前区块链并行领域的相关项目,包括 Solana(SVM)、并行 EVM(Sei、Monad)以及 MoveVM(Aptos、Sui、Movement)的进展,并分析了该领域面临的挑战与机遇。

前言

1.0 区块链交易

区块链本质上是一种虚拟的计算系统,它以软件的形式存在,运行于一个分散的计算机网络之上,这个网络开放给所有人加入,但却几乎不可能被任何单一机构控制。区块链这一概念最早出现在2008年,由Satoshi Nakomoto在其开创性的比特币白皮书中首次提出,旨在为比特币实现一种加密且安全的点对点支付系统。在区块链世界中,交易的角色相当于社交媒体和互联网公司中的日志记录,它们记录了网络中的各种活动。不同的是,区块链上的交易记录是永久不变的,并且大多数情况下是公开可见的。

但交易到底是什么?

简单来说,区块链上的交易就是数字资产在分布式账本上从一个地址转移到另一个地址的过程,这一过程通过公钥加密技术来确保安全性。这些交易不仅可以用于实现去中心化的人与人之间的资金转移,还可以用于各种认证和验证操作。

任何人都能通过区块链浏览工具,如SeiTrace,来查看交易情况

1.1 区块链交易如何运作

当发起一笔交易,比如Bob给Alice转账一些代币时,这笔交易就会被广播到整个区块链网络中。接下来,网络中的特定节点群体会开始验证这笔交易的合法性。一旦有足够多的节点确认了交易的内容无误,这笔交易就会被加入到一个区块中,和其他用户的交易一起。当一个区块数据满载时,它就会被正式加入到区块链中,这也是“区块链”名称的由来。这样,Bob的交易就被记录在了一个既安全又透明的账本中,他和Alice都能查看和验证交易详情。

一般来说,所有区块链交易都包含了一些元数据,这些数据帮助网络中的节点识别并执行特定的指令和参数。每笔交易都会包括一些由交易发起人提供的基本信息,比如转账金额、接收地址和用于验证交易的数字签名,还有一些根据网络和设计不同而自动生成并附加上的额外数据。

不过,值得注意的是,交易执行前,在网络层面背后进行的具体处理流程会根据不同的区块链设计而有所不同。

1.1.1 内存池(Mempool)

内存池(或称mempool)是比特币、以太坊等传统区块链网络设计中的一个标准功能。简而言之,内存池就像是一个缓冲区或“候机室”,专门用来存放那些还没能加入区块、等待执行的交易。

为了便于理解,我们可以追踪一笔在使用内存池的区块链上的交易经历:

  1. 用户发起并签署交易。
  2. 区块链网络中的专业节点会检查这笔交易,确认其合法性及参数的正确性。
  3. 通过验证后,这笔交易就会被发送到公共内存池中,和其他待处理的交易排队等待。
  4. 根据这笔交易相对于内存池中其他交易支付的交易费,最终,这笔待处理的交易可能会被选中并与其他交易一起组成区块链上的下一个区块。此时,交易的状态会显示为“成功”。
  5. 经过一段时间或达到某个基于区块的限制后,该区块被确认无误,交易便永久记录在区块链上,成为不可更改的记录。除非遭受51%的攻击,这种记录几乎不可能被篡改。

1.1.2.无内存池 (Solana)

需要特别指出的是,像Solana这样的一些区块链系统并不采用内存池机制。相反,它们可能会直接把交易信息发送给区块生产者,这样做是为了通过连续不断的区块生成,达到高速度和大容量的目的。

下面我们来看看在一个没有内存池的区块链上,一笔交易的全过程:

  1. 用户为他们正在使用的应用程序发起并签署交易。
  2. 用户对他们正在使用的应用中的一笔交易进行发起和签名。
  3. 应用将交易信息发送到远程过程调用(RPC)服务器。
  4. RPC服务提供商将交易信息发送给当前的区块生产者,以及接下来的三位生产者。这是一个预防措施,以防当前负责人无法及时处理交易。Solana使用一个特定的排班表来简化交易的路由过程。
  5. 区块生产者接着将这笔已签名的交易发送给共识节点进行验证。
  6. 共识节点通过投票来验证交易的内容,完成后,交易的状态就会通过RPC > 应用程序 > 用户的路径返回,标记为“成功”或“失败”。
  7. 和使用内存池的区块链一样,一定时间或达到某个区块限制后,区块就会被最终确认。

1.2 交易的顺序执行

早期的区块链系统,如比特币和以太坊,使用了一种交易顺序处理的方法。这意味着每一笔加入区块链的交易都会改变网络的状态,而为了保障安全,它们的虚拟机(VM)被设计成一次只能处理一种状态的变化。

这种处理方式导致了一个重大的问题:网络的处理能力受到了极大的限制。因为每个区块能包含的交易数量有限,这不仅让用户需要等待更长时间,还可能导致交易费用的急剧上升,有时甚至让整个网络都无法正常使用。而且,这种顺序处理模式对硬件的利用率极低,也就意味着它不能充分利用计算技术的最新进展,例如多核处理器的优势。

并行执行

2.0 什么是并行执行?

并行计算是计算机架构中至关重要的一环,其历史可以追溯到20世纪50年代末,甚至有人将其理念和理论的起源追溯到1837年。简单来说,并行计算就是在执行一个操作时,同时利用多个处理单元,通过将一个大型且复杂的任务分解成若干个小任务来完成,这样做比按顺序逐个处理要高效得多。

这种架构标准同样适用于区块链技术,只是在这里,计算机处理和执行的主要任务是交易处理,即从一个智能合约向另一个智能合约转移价值,这就是所谓的并行执行。

并行执行的含义是,区块链可以同时处理多个不冲突的交易,而不是按顺序一个接一个地处理。这大大提高了区块链网络的处理能力,使其能够更有效地应对更高的活动量和对区块空间的需求,从而变得更加可扩展和高效。

打个比方,想象一下,一家超市如果设有多个结账通道让顾客结账,与只开设一个通道让所有人排队相比,前者的效率显然要高得多。

为什么并行执行至关重要?

在区块链领域,采用并行执行的目的是为了提升网络的速度和整体性能,尤其是在网络流量和资源需求激增的情况下。以加密货币生态为例,这意味着如果Bob想要创建最新的热门NFT系列,而Alice想要购买她钟爱的梗币,那么网络能够同时满足他们的需求,同时保持高性能和良好的用户体验。

虽然这听起来可能只是一个提升使用体验的直观功能,但并行执行带来的网络性能提升实际上为开发新颖和创新的应用场景及应用程序铺平了道路,这些应用能够充分利用低延迟和大容量的优势。这不仅仅是技术进步的体现,更为未来大规模吸引用户进入加密货币生态系统打下了坚实的基础。

并行执行的工作原理是什么?

虽然并行执行的基本概念比较简单,但不同区块链的设计差异会影响并行执行的具体实现方式。在设计支持并行执行的区块链时,一个关键因素是交易能够访问其底层网络状态的能力,这包括账户余额、存储空间和智能合约等。

区块链的并行执行可以分为确定性执行和乐观性执行两种。Solana等区块链采用的确定性并行执行要求交易事先明确声明它们需要访问的所有数据依赖,例如,它们预先希望访问的全局状态的具体部分。这一要求虽然增加了开发者的工作量,但从更广泛的角度来看,它允许网络在执行之前对不会产生冲突的交易进行排序和识别,从而构建出一个既可预测又高效的系统。而乐观性并行执行则是假设所有交易之间不存在冲突,从而并行处理所有交易。这种方式使得区块链能够加快交易执行速度,但如果出现冲突,可能需要之后重新执行这些交易。如果系统发现两个交易冲突,那么它可以重新处理和执行这些交易,无论是并行还是顺序执行。

为了更深入理解这些设计细节的影响,分析当前在并行执行领域不断探索的团队的做法,可能会对理解并行执行有所帮助。

当前并行执行技术的发展现状

为了深入了解这些复杂设计背后的影响,观察和分析那些正处于并行执行技术前沿、积极推动其发展的团队,将会是一种非常有益的方法。

3.1 Solana 虚拟机(SVM)

Solana区块链网络是首个专门为并行执行而设计的系统,这个设计思路源自其创始人Anatoly Yakovenko在电信领域的丰富经验。Solana的目标是提供一个开发平台,其运行速度能够达到物理极限,因此采用并行计算来提升速度和效率是一个自然而然的选择。

Solana实现快速处理和高吞吐能力的核心技术是Sealevel,这是一个支持并行智能合约的运行环境。与基于EVM和WASM的环境不同,Sealevel使用多线程技术,这意味着它能够根据验证器的处理能力,同时处理多个交易。

Solana并行执行的关键在于,一旦启用一笔交易,网络就会为这笔交易分配一系列指令,明确指出需要访问的账户和状态以及需要做出的更改。这一机制不仅能识别出可以同时执行的非冲突交易,还允许那些需要访问相同状态的交易能够并行进行。

可以将这一机制比作机场行李处理系统中标签的作用,极大提高了效率。

此外,Solana还开发了专门的账户数据库Cloudbreak,用于存储和管理状态数据,支持交易的并发读写操作。Cloudbreak经过优化,支持并行执行,能够在多个节点之间横向扩展,分散和管理状态数据。

得益于其并行架构,Solana能够处理大量的交易,同时保持快速执行,交易几乎能瞬时完成。目前,Solana的处理速度平均每秒在2000至10000笔交易之间。随着像Eclipse这样的团队开发基于SVM的第二层解决方案,SVM的应用场景正逐渐拓宽,为Solana生态系统引入更多创新。

3.2 并行EVM

并行EVM提出了一个全新的区块链执行环境概念,它试图结合Solana的高速性能和以太坊的安全性与资金流动性的优势,实现最佳的两全其美。通过并行而非传统EVM那样的串行处理交易,这种并行的EVM环境能够让开发者在一个高效的网络上开发应用,同时便于他们接入以太坊的资金流动性和开发工具,从而拓宽应用的可能性和便利性。

3.2.1 Sei网络

Sei网络是一个支持EVM的开源一层区块链平台,它支持众多基于高性能的去中心化应用。Sei的设计初衷是为了给用户和开发者提供既快速又经济的服务体验,其中并行执行技术是其实现高效性能和优秀用户体验的核心。目前,Sei能够在390毫秒内确认区块,并已在其太平洋主网上处理了超过19亿笔交易。

在早期,Sei采用了一种确定性并行执行模式,智能合约需要提前声明它们要访问的状态,这样系统就能同时处理那些不会产生冲突的交易。随着V2版本的升级,Sei转向了一种乐观并行模型,即所有交易在提交至网络后(执行阶段)将被并行处理,并在之后对可能与之前交易冲突的信息进行验证(验证阶段)。如果出现两个或更多试图访问同一网络状态的冲突交易,Sei会找出冲突点,并根据冲突的具体情况选择并行或顺序重新处理这些交易。

为了更好地存储和管理交易数据,Sei还开发了SeiDB,这是一个专为优化并行执行而设计的自定义数据库。SeiDB的目标是减少存储冗余数据的成本,同时有效使用磁盘空间,以提升网络性能。V2版本减少了追踪和存储所需的元数据,并引入了预写日志功能,以便在系统崩溃时辅助数据恢复。

此外,Sei近期还推出了其并行堆栈,这是一个旨在帮助二层扩展方案(如rollups)利用并行执行技术的开源框架,进一步提升了其技术生态的扩展性和应用潜力。

3.2.2 Monad

Monad是一个新兴的并行EVM一级区块链项目,它将为以太坊的应用程序和基础架构提供完整的字节码和RPC兼容性。Monad通过引入一系列创新技术,旨在比当前的区块链提供更加互动的体验,并且通过对性能和可携带性的优化,实现低成本的交易,其区块确认时间仅为1秒,并能支持每秒处理高达10,000笔的交易量。

Monad采用了并行执行和超标量流水线技术,这些技术显著提高了交易的处理速度和吞吐量。与Sei的第二版类似,Monad也将采取乐观执行模式,这意味着网络会同时开始处理所有新的交易,随后对这些交易进行分析和验证,以识别并处理任何冲突,确保如果这些交易是按顺序执行的,最终结果将保持一致。

值得一提的是,为了与以太坊保持一致,Monad会按照线性顺序在一个区块中安排交易,并依次更新每笔交易。

为了比现有的以太坊客户端更高效地存储和访问区块链数据,Monad开发了专门为区块链设计的自定义数据库MonadDB。MonadDB利用了Linux内核的高级特性来执行高效的异步磁盘操作,克服了同步输入/输出访问的限制。通过提供异步输入/输出访问,MonadDB支持并行执行的关键功能,使系统能够在等待读取一个交易的状态信息时,同时开始处理下一笔交易。

用一个简单的比喻来说,就像同时准备一个包含多个部分的大餐(比如意大利面配肉丸)。涉及的步骤包括制作酱汁、烹饪肉丸和煮意大利面。一个高效的厨师会同时进行多个步骤,比如先烧开煮面的水,然后准备酱汁的材料,接着把面条放进已经煮沸的水中,然后烹饪酱汁,最后做肉丸,而不是一步步单独完成每个任务。

3.3 Move

Move是一种由Facebook团队在2019年为其已经终止的Diem项目所开发的编程语言。Move的设计初衷是为了安全地处理智能合约和交易数据,它通过设计上的优势,排除了诸如重入攻击等在其他编程语言中常见的安全漏洞。

MoveVM作为Move语言支持的区块链平台的核心执行环境,通过并行处理技术,实现了更快的交易处理速度和更高的系统效率。

3.3.1 Aptos

Aptos是一种基于Move语言的一级区块链平台,它由前Diem项目团队成员开发。这个平台通过实施并行处理技术,旨在为应用开发者提供一个高效的工作环境。Aptos采用了一种名为Block-STM的技术,这是软件事务内存(STM)并发控制机制的一种改进型实现。

Block-STM是一个支持多线程并行处理的执行引擎,它采用乐观并行执行的方式。通过预先对交易进行排序并在区块中按策略排列,这一机制关键地帮助高效解决冲突并对需要的交易进行重新执行。Aptos的研究表明,理论上利用Block-STM的并行处理技术,可以达到每秒最高160,000笔交易的处理速度。

3.3.2 Sui

Sui和Aptos一样,也是由Diem项目前成员开发的一级区块链平台,同样采用了Move语言。不过,Sui对Move语言进行了特别的定制修改,这些修改涉及到存储模型和资产权限,与原始的Diem设计有所不同。特别值得注意的是,Sui采用了一种状态存储模型,能够将独立的交易以对象的形式进行表示。在Sui的执行环境中,每个对象都拥有一个独一无二的标识符,这样做使得系统能够轻松地识别出不会产生冲突的交易,并能够并行处理这些交易。

与Solana相似,Sui采用了确定性并行执行的策略,这意味着交易必须在执行前声明它们将要访问的账户信息。

3.3.3 Movement Labs

Movement是什么?

Movement致力于开发一系列的开发者工具和区块链基础服务集,旨在帮助开发者轻松享受在Move平台上开发的优势。它提供一种类似于AWS的执行即服务模式,专为Move平台的开发者设计,通过并行处理技术作为其核心设计理念,以提升处理速度和网络的整体效率。MoveVM是一种模块化的执行环境,它为区块链网络提供了扩展和调整交易处理能力的灵活性,以应对交易量的增加,从而增强了网络并行处理和执行交易的能力。

MoveVM架构

Movement还计划推出M2,一个与EVM和Move客户端兼容的ZK-rollup解决方案。M2将采用Block-STM的并行处理引擎,预计将能够实现每秒数万次的交易处理速度。

结束语

4.1 当前并行系统的挑战

在发展并行区块链技术的过程中,我们面临着一系列重要的问题和考量:

  • 为了通过并行执行获得更好的性能,网络进行了哪些权衡?
    • 减少验证节点能够提高验证和执行的速度,但这是否会削弱区块链的安全性,使得验证节点更容易联合起来攻击网络?
    • 是否有很多验证节点集中在同一个地方?这种做法在加密和非加密系统中都是减少延迟的常见策略,但如果那个特定的数据中心遭到攻击,对网络又会有什么影响?
  • 对于采用乐观并行策略的系统,随着网络的扩大,重新执行无效交易的过程是否会变成瓶颈?这种效率如何进行测试和评价?

从宏观角度来看,并行区块链面临着账本不一致的风险,如双重支付和交易顺序改变(这正是顺序执行的主要优势)。确定性并行化通过为底层区块链上的交易创建一个内部标签系统来应对这一问题。采用乐观处理机制的区块链必须确保其验证和重新执行交易的机制既安全又有效,并且为了性能所做的权衡是合理可行的。

4.2 未来展望/机遇

从计算机发展史我们可以看出,相较于顺序处理系统,并行处理系统在效率和可扩展性方面随时间展现出更强的优势。Solana之后并行区块链的崛起进一步证明了这一点同样适用于加密领域的基础设施建设。甚至Vitalik也曾提到,并行化是近期提升EVM rollups可扩展性的关键解决方案之一。总的来说,随着加密和区块链技术的普及,市场对于比现有系统更优化的解决方案的需求日益增长,这其中就包括并行区块链。Solana近期遇到的网络问题也表明,并行区块链的开发还有很大的进步空间。随着更多团队努力拓展链上技术的边界,并吸引更多用户及应用转向区块链原生生态,并行处理模型为构建能够高效管理大量网络活动的系统提供了一个直观的框架,使其能够轻松应对与Web2公司相匹配的规模挑战。

参考文献

声明:

  1. 本文转载自[shoal )],原文标题《Parallel Execution: The Next Generation of Blockchains》,著作权归属原作者[PAUL TIMOFEEV, MIKE JIN, AND GABE TRAMBLE],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。

  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。

  3. 文章其他语言版本由Gate Learn团队翻译,除非另有说明,否则不得复制、传播或抄袭经翻译文章。

即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!