区块链扩容:水平扩展 vs.垂直扩展

1. 引言

随着Rollups 的兴起,区块链扩容一直集中在模块化(modular)vs. 整体式(monolithic)之争。
如今,模块化与整体式这种一分为二的心理模型,已不适合于当前的扩容场景。本文,将展示:

  • 水平扩展
  • 与 垂直扩展

始终是区块链扩容的基础框架,并解释:

  • 采用水平扩展与垂直扩展如何带来更好的扩容解决方案。

2. 何为模块化 vs. 整体式?

何为模块化 vs. 整体式?:

  • 模块化链:是指将区块链的核心功能分为不同的层(layer)。
  • 整体式链:是指将所有核心功能集成到单个互连的层中。

可将“层”视为“机器”:

  • 整体式链:有运行所有任务的单个validator节点
  • 模块化链:有多个(2-3)个运行不同任务的全节点。
    在这里插入图片描述
    如,Rollup 通常有两类节点:
  • 1)rollup全节点:用于执行
  • 2)以太坊全节点:用于结算 + 数据可用性(DA,Data Availability)

validium 可能会利用三类节点:

  • 1)rollup全节点:用于执行
  • 2)以太坊全节点:用于结算
  • 3)DA全节点:用于 DA 的替代数据可用性

模块化将区块链的任务划分为至少两类全节点。这样,模块化链在构建每个区块时可利用多台机器的计算能力。

这是水平扩展的一种形式 。

模块化对于考虑区块链扩容很有用,因为:

  • 其具有水平可扩展性。

另一方面,大多数整体式阵营选择通过软件优化、实现并行虚拟机、数据pipelining、更快的网络协议和(最值得注意的是)更强大的硬件来扩容。从本质上讲,整体式链试图从单个全节点中挤出尽可能多的计算能力。

这是垂直扩展的一种形式 。

有批评认为,整体式链将导致中心化:

  • 若依靠增加单个节点的能力来扩展,则不可避免地会遇到底层硬件的物理限制,并被迫增加硬件要求以进一步扩展。

然而,这种批评是错误的,因为并非所有的整体式链都仅仅依赖于垂直扩展。
如:

  • Near 是一个基于分片网络架构的整体式 L1 区块链。这意味着Near全节点负责所有任务(即执行、结算和数据可用性), 但Near全节点只负责Near全局状态的一小部分。因此,Near 通过根据状态而不是任务来划分工作,来利用多台机器的力量(就像模块化链一样)。
    在这里插入图片描述
    由此可知,整体式链和模块化链所实现的扩容技术方面都不受限制。两者都可以水平和/或垂直扩展。

此外,模块化与整体式的争论始终植根于水平扩展与垂直扩展框架。从严格的技术角度来看,模块化偏向水平扩展,这是其设计所固有的,而整体式偏向于垂直扩展。

目前已成功推出了模块化链,额外的扩展优势不再在于使其“更加模块化”。 现在的焦点是:

  • 链如何利用水平扩展或垂直扩展技术。

采用水平扩展与垂直扩展心理模型,可轻松推理每条链在此过程中所做的权衡。

3. 水平扩展 vs. 垂直扩展

水平扩展 起源可追溯到 20 世纪 70 年代,当时分布式计算研究为水平扩展概念奠定了基础。如今,所有扩展技术都可以分为水平扩展和垂直扩展。

3.1 垂直扩展

垂直扩展会增加每个节点的硬件利用率或硬件要求。在区块链中,这通常是通过并行虚拟机(即多线程进程)等软件优化来完成的。

一个流行的例子是:

  • EVM vs. SVM
    • EVM 顺序执行交易,而 SVM 并行执行交易。
    • SVM 通过利用更多的 CPU 内核来实现并行执行交易,因此 SVM 每秒可比 EVM 处理更多的交易。注意:这种类型的垂直扩展是 Eclipse L2 背后的基础。

在权衡方面,垂直扩展受到可用硬件的限制,由于硬件需求的增加而趋于中心化,且与水平扩展相比,其可扩展性较差。
在这里插入图片描述

3.2 水平扩展

水平扩展通过将工作负载分散到多个节点上来增加系统可访问的机器数量。如前所述,模块化链本质上是将任务分配到多台机器上。然而,链通常可以通过分片实现更大程度的水平扩展 。
在这里插入图片描述
2023年11月,=nil; Foundation推出了一种名为 zkSharding的可证明分片架构,为=nil;(一种新的以太坊L2)的基础。 =nil; 设计的核心是:

  • 将其全局状态划分到多个分片上。
  • 每个分片均由 =nil; 的去中心化委员会运营。
  • validators:负责构建区块并管理跨分片交易。
  • 每个分片都会生成一个有效性证明,该证明会发送到主分片进行聚合,然后再发布到以太坊上验证。

=nil; 通过两种方式利用水平扩展的力量:

  • 1)=nil; 是一个模块化区块链,其利用以太坊的强大共识和数据可用性保证,从而将任务分布在多个全节点上。
  • 2)=nil; 是一个分片区块链,因此将部分状态分布在许多全节点上。

这两种技术都减少了任何单台机器需要承受的负载,并提高了网络的总体可扩展性。

那么,水平扩展的权衡有哪些呢?归结为两点:

  • 网络和共识的复杂性
  • 以及 机器或分片之间的异步通信。

4. 以太坊扩容终极游戏

无论是水平扩展,还是垂直扩展,均不限于模块化或整体式架构。这就是为什么水平扩展与垂直扩展框架提供了更多空间来探索新的解决方案,使模块化区块链更具可扩展性。
如:

  • 一种选择是垂直扩展模块化stack中都某层。一种流行的方法是实现并行虚拟机,从而扩展执行吞吐量。如上所述,Eclipse 正在利用 SVM 和其他rollups(如 Starknet)实现 BlockSTM 来启用并行化。

但是,垂直扩展总是受到单台机器的限制,无法打破该物理定律。

一种解决方案可能是选择通过分片进行水平扩展。

当前的模块化设计才刚刚开始触及水平扩展的全部潜力。通过分片:

  • 可利用任意数量机器的能力(而不是按任务分割 2-3 台机器)。

换句话说,许多机器可以并行运行相同类型的任务。这就是以太坊和 Celestia 希望分别通过 Danksharding 和数据分片实现的目标。但是,分片本质上并不局限于数据可用性层——也可像 =nil; L2那样,将DA层与执行层相结合。
在这里插入图片描述
若将通过模块化stack实现的水平扩展与分片提供的水平扩展相结合,将获得可用计算能力的大幅增加。

但不仅限于如此,还可以更好:

  • 区块链扩容的最终目标将合并水平扩展和垂直扩展, 从而产生具有并行虚拟机的分片区块链。
    在这里插入图片描述

=nil; Foundation,正有条不紊地努力实现这一最终状态设计。=nil; L2 通过利用模块化、水平可扩展架构 ( zkSharding ) 和垂直扩展validator实现(分片内并行化),采取了积极的扩容路线图。

=nil; 设计可在不牺牲状态、流动性或用户碎片化的情况下实现全局扩展。
在这里插入图片描述
在这里插入图片描述
其中zkSharding总体架构图为:
在这里插入图片描述

参考资料

[1] 2024年4月29日 =nil; Foundation官方博客 zkSharding for Ethereum
[2] 2024年4月29日 =nil; Foundation官方博客 Modular vs. Monolithic Is Dead: Why horizontal vs. vertical scaling is the better framework for Ethereum scalability
[3] Horizontal vs Vertical Scaling Debate

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/7713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET MVC企业级程序设计 (入住退房,删除)

目录 效果图 实现过程 控制器代码 DAL BLL Index 效果图 实现过程 控制器代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;namespace MvcApplication1.Controllers {public class HomeController …

【linux-IMX6ULL中断配置流程】

目录 1. Cortex-A7和GIC中断概述1. 1 Cortex-A7中断系统:1. 2 GIC中断控制器简介: 2. 中断配置概述3. 底层中断文件配置3.1 对启动文件.s的配置思路3.2 对中断函数配置思路 4. 上层中断配置流程 1. Cortex-A7和GIC中断概述 学习IMX6UL的中断处理系统&…

Git同步代码

Git中5个区,和具体操作? 代码提交和同步代码 代码撤销和撤销同步 平时是怎么提交代码的? 第零步: 工作区与仓库保持一致第一步: 文件增删改,变为已修改状态第二步: git add ,变为已暂存状态 $ git status $ git a…

1天搞定SpringBoot+Vue全栈开发 (8)前端路由VueRouter(进行组件切换)

1.VueRouter安装与使用 2.参数传递 创建路由组件 在项目中定义Discover.vue、Friends.vue、My.vue三个组件&#xff0c;将来要使用vue-router来控制它们的展示与切换&#xff1a; Discover.vue <template><div><h1>发现音乐</h1></div> <…

智能实训-wheeltec小车-抓取(源代码)

语言 :C 源代码&#xff1a; #include <ros/ros.h> #include <image_transport/image_transport.h> #include <cv_bridge/cv_bridge.h> #include <sensor_msgs/image_encodings.h> #include <sensor_msgs/JointState.h> #include <geometry…

面试题:String类型长度有限制吗?最大多少?

简介 Java中String是有长度限制的。String还有长度限制?是的有,而且在JVM编译中还有规范,String长度限制的场景(将某固定文件转码成Base64的形式用字符串存储,在运行时需要的时候在转回来,当时文件比较大),那这个规范限制到底是怎么样的,我们分析下。 …

crossover怎么打开软件 mac怎么下载steam crossover下载的软件怎么运行

CrossOver是一款Mac和Linux平台上的类虚拟机软件&#xff0c;通过CrossOver可以运行Windows的可执行文件。如果你是Mac用户且需要使用CrossOver&#xff0c;但是不知道CrossOver怎么打开软件&#xff0c;如果你想在Mac电脑上玩Windows游戏&#xff0c;但不知道怎么下载Steam&am…

2-5 任务:打印九九表

本次实战的目标是通过编写程序实现打印九九乘法表、字符矩形、字符平行四边形和字符菱形等图形&#xff0c;以及解决百钱买百鸡问题和输出素数等实际问题。在实战过程中&#xff0c;我们将学习并掌握以下知识点。 双重循环的使用&#xff1a;通过双重循环实现九九乘法表的打印&…

代码版本管理:提升团队协作效率的利器

在软件开发过程中&#xff0c;代码版本管理是一个至关重要的环节。它不仅能够有效管理代码的变更历史&#xff0c;还能提高团队协作效率、保证代码质量、降低风险。本文将介绍两种常用的代码版本管理工具&#xff1a;Git 和 Subversion&#xff08;SVN&#xff09;&#xff0c;…

怎么把图片尺寸在线修改?5种方法调整方式介绍

在日常生活和工作中&#xff0c;我们经常遇到需要调整图片尺寸的情况&#xff0c;无论是为了适应自媒体文章内容中的图片、还是上传社交媒体平台要求&#xff0c;调整图片尺寸是一项非常有用的技能。在本教程中&#xff0c;我们将介绍几个方便快捷的图片处理工具&#xff0c;帮…

如何让CANoe或Wireshark自动解析应用层协议

当我们使用CANoe软件或Wireshark工具抓取以太网总线上的报文时,网卡首先会把以太网总线上的模拟信号解析成以太网帧数据。数据链路层根据二层头部中的Type字段值确定上层的协议。 如果以太网使用的是TCP/IP协议栈,那么Type值要么是0x0800(IPv4),要么是0x0806(ARP),要么是0x…

【牛客】【模板】前缀和

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 前缀和模板题。 前缀和中数组下标为1~n。 前缀和&#xff1a;pre[i]pre[i-1]a[i]; 某段区间 [l,r]的和&#xff1a;pre[r]-pre[l-1] 3.…

数据结构---动态数组

一、数据结构基本理论 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。强调数据元素之间的关系 算法五个特性&#xff1a; 输入、输出、有穷、确定、可行 数据结构分类&#xff1a; 逻辑结构&#xff1a;集合、线性结构、树形结构、图形结构 物理…

安装nginx-1.25.5与ngx_http_headers_more_filter_module模块

#下载nginx的代码 curl -O http://nginx.org/download/nginx-1.25.5.tar.gz #下载headers-more-nginx-module代码 git clone https://github.com/openresty/headers-more-nginx-module#解压 tar -xzf nginx-1.25.5.tar.gzcd nginx-1.25.5#--add-dynamic-module 下载下来的目录 …

接入大量设备后,视频汇聚系统EasyCVR安防监控视频融合平台是如何实现负载均衡的?

一、负载均衡 随着技术的不断进步和监控需求的日益增长&#xff0c;企业视频监控系统的规模也在不断扩大&#xff0c;接入大量监控设备已成为一项常态化的挑战。为确保企业能够有效应对这一挑战&#xff0c;视频汇聚系统EasyCVR视频融合平台凭借其卓越的高并发处理能力&#x…

“Postman 中文版使用教程:如何切换到中文界面?”

Postman 的很好用的接口测试软件。但是&#xff0c;Postman 默认是英文版的&#xff0c;也不支持在软件内切换为中文版。很多同学的英语并不是很好&#xff0c;看到一堆的英文很是头痛。 今天我们来介绍下&#xff1a;切换到 Postman 中文版的方法。想要学习更多的关于 Postma…

【教学类-50-14】20240505“数一数”图片样式12:数一数(12个“人物”图案)

作品展示 背景需求&#xff1a; 前文做了“”材料”图片的数一数学具&#xff0c;效果不错&#xff0c; https://blog.csdn.net/reasonsummer/article/details/138466325https://blog.csdn.net/reasonsummer/article/details/138466325 为了让图案内容更丰富&#xff0c;我又…

皮秒激光切割机可以切割材料及主要应用行业

皮秒激光切割机可以切割多种材料&#xff0c;主要应用行业包括但不限于&#xff1a; 1. PCB板行业&#xff1a;主要用于PCB激光分板&#xff0c;如FR4、补强钢片、FPC、软硬结合板、玻纤板等材料的紫外激光切割。 2. 薄膜材料切割&#xff1a;皮秒紫外激光切割机可以直接切割薄…

启英泰伦“离线自然说”技术,让智能语音芯片更善解人意

“以科技创新推动产业创新&#xff0c;特别是以颠覆性技术和前沿技术催生新产业、新模式、新动能&#xff0c;发展新质生产力”。2023年12月&#xff0c;中央经济工作会议强调了发展新质生产力的路径。“科技创新是发展新质生产力的核心要素&#xff0c;这也是我们一直潜心在做…

解决Pyppeteer下载chromium慢或者失败的问题[INFO] Starting Chromium download.

文章目录 1.进入网址2.选择上面对应自己系统的文件夹进去3. 然后找到自己的python环境中的site-packages中pyppeteer中的chromium_downloader.py文件并打开 在首次使用Pyppeteer时需要下载chromium 1.进入网址 https://registry.npmmirror.com/binary.html?pathchromium-bro…