速览 Linera 白皮书:微链、弹性验证器和多链编程
来源:Linera
编译:flowie,ChainCatcher
相比于 Aptos、Sui,同样是被 a16z押注的Diem 继承者Linera 节奏一直相对缓慢,于今年6月底获得 a16z 领投的600万美元融资后,今日才正式发布项目白皮书。
据悉,Linera创始团队成员多由前 Zcash、前 Meta/Novi 的工程师和研究人员构成。Linera 创始人Mathieu Baudet此前在 Meta 担任工程师,并帮助创建Diem 区块链,是 Novi 的首席研究员和工程师,曾作为核心人物参与发明 FastPay 和 Zef 协议。
根据白皮书介绍,Linera的部分技术灵感依然离不开低延迟支付协议 FastPay以及Move语言。而在创新上,为提供首个在互联网规模上具有可预测性能、响应能力和安全性的多链基础设施,Linera 引入了在同一组验证器中运行许多称为微链的平行链,并使用每个验证器的内部网络在链之间快速传递异步消息。
在白皮书中,Linera详细地阐述了在解决区块空间稀缺性问题上,区块链分片、Rollups等现有解决方案的缺陷,以及Linera的创新方案和架构优点。ChainCatcher节选了Linera部分内容进行了编译:
一、Linera:解决区块空间稀缺性问题上,现有方案的缺陷
1、更快的单链。单个链中块的生产率通常受到验证器之间的数据传播延迟的限制 。从历史上看,块大小一直是第一个要调整的参数,以根据安全要求和网络约束最大化交易吞吐量。由于 BFT 共识协议的最新进展,如今交易率的新瓶颈似乎是交易的顺序执行而不是共识排序。
预计块中包含的许多交易在实践中应该是独立的,最近的几个项目开发了能够在多个处理单元上并行执行交易子集的架构。虽然这肯定会导致更高的交易率,但此类系统的特征仍然是低于 6 位数的每秒最大交易数。此外,有效交易率在很大程度上取决于每个区块中实际独立的交易比例。总而言之,如果不对其他用户的活动做出任何假设,就不可能为用户提前保证费用和/或延迟。
最后,在高吞吐量链中,由于 CPU 执行要求和数据同步网络要求的结合,审计验证器变得更加困难。具体而言,顺序交易的绝对数量可能会阻止仅使用商品硬件的社区成员以足够快的速度重放交易以以有意义的方式验证验证器的工作。
2、区块链分片。解决区块链可扩展性的另一个流行方向包括将执行状态划分为固定数量的并行链,每个并行链由一组单独的验证器独立运行,这称为区块链分片。虽然这种方法仍在不断改进,但它在历史上一直遭受着一些挑战。
首先,使用不同的验证器集会产生安全权衡,因为攻击者可能会选择性地攻击系统中最弱的一组(例如,铸造代币)。其次,重组分片,即用户帐户跨链分布的方式,是一项复杂的操作,需要广泛的网络通信。最后,当分片数量增加以支持额外流量时,需要交换的跨链消息数量也会增加。在每个分片都有一组独立的验证器的系统中,跨链消息会产生显着的延迟,最终抵消添加新链的影响。
3、Rollups。解决区块空间稀缺性的另一种流行方法是Rollups协议,无论是optimistic还是基于validity proofs(又名 ZK Rollups)。在高层次上,optimistic和validity rollups(ZK)都包含一个layer2协议,该协议构建一系列大块,旨在在layer1执行、压缩和确认。不幸的是,确认交易的过程在这两种情况下,layer1都需要很长时间。Optimistic rollups 必须等待几天才能解决争议。validity rollups必须一次压缩许多layer2交易以支付layer1的gas。
在实践中,收集足够多的 layer2交易、计算有效性证明和归档交易以强制执行严格的数据可用性需要每个 layer2 块花费几个小时。较长的layer1确认时间可能会鼓励某些用户接受安全权衡并相信layer2对某些应用程序的最终确定性。一般来说,Rollups必须被信任以执行协议(即活性)并公平地选择交易(参见矿工可提取价值)。在最近设计去中心化rollups协议的努力中可以看出这种担忧 。
二、Linera 有哪些创新点?
基于对以上方案的观察和启发,Linera表示旨在开发基于以下三个关键原则的新型web3 基础设施:
1、通过在一组弹性验证器中运行多个链,构建具有可预测性能和响应能力的安全基础架构;
2、通过在新的执行层上工作使多链编程成为主流,启用可扩展的 web3 应用程序的丰富生态系统;
3、通过确保弹性验证器得到最佳激励和社区大规模审计,最大化去中心化。
Linera 创新点体现在以下方面:
1、具有弹性验证器的集成多链系统
为了实现对具有可预测性能和大规模响应能力的 web3 基础设施的愿景,Linera利用云基础设施,开发了一种新的多链协议——具有弹性验证器的集成多链系统。
- 在 Linera 中,验证器是一种类似 web2 的弹性服务,可并行验证和执行多条链中的交易块。因为 Linera 系统中存在的链(活动和非活动)的数量是无限的,也称它们为微链。
- 用新区块积极扩展微链的任务与验证或执行是分开的,由每条链的所有者承担。鼓励每个 Linera 用户创建一个他们自己的链并将他们的帐户放在那里。
- 每个验证者管理所有的微链(称之为集成多链方法)。微链使用异步消息进行交互,否则独立运行。因此,验证者可以通过在许多内部分片之间分配工作量来弹性扩展。使用每个验证器的内部网络有效地实现链之间的异步消息。
- 微链接受新区块的方式可能不同。在扩展自己的链时,用户使用受可靠广播启发的低延迟、无内存池协议直接向验证器提交新块。需要用户之间更复杂交互的应用程序也可能依赖于按需创建的临时微链。实际上,只有Linera基础设施拥有的公共微通道有完整的BFT共识协议。
- 验证者之间的微链同步委托给链所有者。这意味着不活跃的微链(那些不创建区块的)除了存储之外对验证者没有成本。
使用弹性验证器是 Linera 的一个独特假设。Linera 打算让 Linera 社区支持新验证者可以选择的各种云提供商。Linera最初的灵感来自 Meta 开发的低延迟支付协议 FastPay。 Linera 通过将用户帐户转变为微链、添加智能合约以及支持链间的任意异步消息,显着推广了 FastPay。
2、让多链编程成为主流
Linera 将许多链集成到一组独特的验证器中。由于每个验证器的内部网络,这极大地促进了跨链通信。这是第一次,各种 web3 应用程序有机会通过利用廉价高效的多链架构进行弹性扩展。为了促进多链编程的采用做出了以下设计选择:
- Linera 的执行模型被设计为与语言无关且对开发人员友好。 Linera 的初始 SDK 将基于 Wasm 并以 Rust 编程语言为目标。
- Linera 应用程序是可组合的和多链的。一旦一个应用程序创建后,它可以在任何链上按需运行。同一应用程序的运行实例使用异步消息和发布/订阅通道跨链协调。在同一微链中运行的应用程序使用跨合约调用和临时会话对象进行交互。
Linera 中会话对象的灵感来自 Move 语言中的资源。 Move 中的静态类型资源已被提议用于帮助提高可组合性。在 Linera 中,类资源的可组合性是通过使用会话句柄和运行时检查来实现的。例如,为了发送代币,Linera 合约将能够转移包含代币的临时会话的所有权。一般来说,建立一个大型的开发者社区是采用区块链基础设施的一个主要因素。由于 Wasm 生态系统正在不断改进其多语言工具,它为 Linera 提供了为多个开发人员社区服务的长期可能性。
3、弹性验证器的稳健去中心化
经典的“区块链三难困境” 断言同时实现可扩展性、安全性和去中心化是困难的。虽然这一观察对于固定容量的验证者来说肯定是成立的,但Linera认为,在为弹性验证者定义和实施令人满意的去中心化概念方面大家所做的努力还不够。
- Linera 依靠委托权益证明 (DPoS) 来确保安全并定期支持更改验证器集。由于区块的链接,过去的交易、跨链消息和每个微链的执行状态都是不可篡改的。
- 微链设计为可独立审计。这意味着 Linera 作为一个整体将由社区仅使用商品硬件、以分布式方式进行审计。区块链社区已经在 rollups的背景下讨论了使用大型验证器来提高性能并使用社区驱动的验证器来维护去中心化。随着 Linera 项目的进展,将继续关注validity(ZK)证明和rollup方面的技术进步。
四、Linera 架构的优点
Linera 旨在提供首个在互联网规模上具有可预测性能、响应能力和安全性的多链基础设施。为此,Linera 引入了在同一组验证器中运行许多称为微链的平行链的想法,并使用每个验证器的内部网络在链之间快速传递异步消息。Linera认为这种架构有很多优点:
弹性缩放。在 Linera 中,可扩展性是通过添加链来获得的,而不是通过增加块的大小或速率来获得的。每个验证者都可以随时添加和删除容量(也称为内部工作人员),以维持多链应用程序的标称性能。
响应能力。当微链由单个用户操作时,Linera 使用受可靠广播启发的简化的无内存池共识协议。这减少了块延迟并最终使 Web3 应用程序更具响应性。
可组合性。与其他多链系统相比,低块延迟也有助于可组合性:通过添加新块快速回答,允许接收来自另一条链的异步消息。
链安全。与传统的多链系统相比,在同一组验证器中运行所有微链的一个好处是创建链不会影响 Linera 的安全模型。
权力下放。 Linera 依靠委托权益证明 (DPoS) 来确保安全。每个微链都可以在商品硬件上单独执行。这允许客户和审计员持续运行他们自己的验证并让验证者负责。
语言“不可知论者”。 Linera 的编程模型不依赖于特定的编程语言。经过深思熟虑,Linera 决定在 Linera 的初始执行层集中精力在 Wasm 和 Rust 上。