Layer2 实现方式之 Rollup

news2024/11/19 6:39:44

一. 1. Rollup 简介

Rollup 是类似于 Plasma 的第 2 层扩展解决方案:单个主链合约持有所有资金和对更大“侧链”状态(通常是账户、余额及其状态的 Merkle 树)的简洁加密承诺。侧链状态由链下用户和运营商维护,不依赖 L1 存储(这是最大的可扩展性胜利的来源)。

Rollup 与 Plasma 的不同之处在于,它解决了 Plasma 的巨大问题——数据可用性——通过 L1 网络发布每笔交易的一些数据(在以太坊中,专门为此目的使用了 tx CALLDATA)。因此,可以将数千个交易捆绑(汇总)在一个汇总块中。虽然这种方法在成本(事务数量的 O(n))方面严格线性增长,但它提供了实际 100 倍的吞吐量提高,因为 CALLDATA 比 L1 存储和计算便宜得多。

Rollup 多次被 Vitalik Buterin 认可为他最喜欢的 Layer-2 扩展解决方案。

根据如何保证状态转换的正确性,有两种 Rollup 风格:ZK Rollup 和 Optimistic Rollup, 根据不同的项目,又有不同的改进版 Rollup

二. RollUp 如何工作

Rollups 旨在通过压缩第 1 层区块链上的数据足迹来降低 gas 费用。汇总工作原理的基本思想是,它将大部分事务——计算(和状态存储)——从基础链推到第二层,同时将事务数据提交回底层的第 1 层链进行存储。

后者是关键,因为它允许区块链运营商检查和检测在链下计算的交易的欺诈行为,如果他们愿意的话。

在安全性方面,rollup 仍然依赖于以太坊基础链,因此如果用户已经信任以太坊的安全验证,则不必信任一组单独的验证器。

和 Polygon 模式的对比
在这里插入图片描述
Rollup 的核心思想是将“打包”后的交易数据区块发布在链上,从而降低交易有效性验证的难度。交易数据的上链和验证是基于智能合约完成的。操作者收集到不同参与者提交的链下交易后,在链上执行 Rollup 智能合约提供的脚本,将打包后的交易数据区块作为参数提交给合约,合约验证数据有效后为每个参与者记账。这相当于一次性执行了一批链下交易,但是在链上只执行了一个交易。

下图是 ZK Rollup 提交上链的打包数据。它包含一组压缩后的交易数据 [Tx](不包含任何签名)、执行这批交易之前的老的用户状态的 merkle 树树根,以及执行交易之后的新的用户状态的 merkle 树树根。除此之外还包含一个 SNARK 零知识证明,合约用它来验证在老的用户状态上施加这批交易 [Tx] 后结果就是新的用户状态。零知识证明具体是如何工作的, 后面我们会专门出一个专栏课程,

在这里插入图片描述

生成 SNARK 的成本非常高,所以 Optimistic Rollup 采用了不同的方法——“欺诈证明”来验证交易有效性。这里的“欺诈证明”并非 SNARK 那样的见证数据,它实际上指的是加密经济学有效性博弈(Cryptoeconomic Validity Game)。越说越晕了,其实很简单,就是每次打包后的交易被提交到链上时,智能合约都假定它们是正确的,无需验证。如果有人篡改了交易,操作者或者其它参与者都可以挑战非法交易,挑战成功后通过智能合约回滚不正确的区块,作弊者会受到惩罚,它的押金将会被没收,部分押金会奖励给挑战者。这就是所谓的基于加密经济学有效性博弈的“欺诈证明”,实际上是让参与各方互相监督,通过惩罚机制来提高作弊成本。为了实现“欺诈证明”,光有 ZK Rollup 那样的交易数据 [Tx] 是不够的,Tx数据需要包涵交易提交者的签名,合约通过校验签名来判断交易是否合法

三. Rollup 的安全性

Rollup 的安全性来自于数据可用性和交易有效性。有了数据可用性和交易有效性,就能保证 Rollup 操作者永远不能破坏状态或窃取资金,即使操作者不配合,参与者也能方便的追回 Rollup 网络上的资产。Rollup 将交易数据发布到链上,就像“锚”一样将 Rollup 网络锚定到了以太坊主链上。就好比是赌场里装上了摄像头,即便是玩扑克的人被打了一闷棍,还是能通过视频记录证明自己确实赢了钱。

对于交易有效性验证,ZK Rollup 和 Optimistic Rollup 采取了不同的方法。ZK Rollup 采用零知识证明来保证交易有效。它的安全性建立在密码学基础之上,智能合约仅在交易数据被证明为正确之后才会接受状态转换。每次状态转换都有一个零知识证明,这保证了链上总是对应着一个正确的二层状态。Optimistic Rollup 采用基于加密经济学有效性博弈的“欺诈证明”,它无需为每一次状态转换都提供证明,只在有人认为状态转换有误的时候提供。因为沉默将被视为同意,所以它要求交易方必须每时每刻都要在线。相比较 ZK Rollup,Optimistic Rollup 的安全性有所降低,它需要采取额外的措施来防止 DDoS 攻击造成的“默许”。

四. 可扩展性

Rollup 通过一次链上交易可以执行一大批打包后的链下交易,主链不需要通过执行每笔交易来验证其有效性,而且交易数据是作为函数参数发布的,验证完有效性后就会被丢弃,这样就不会占据主链的存储空间。因此 Rollup 可以大幅度提升主链的可扩展性。

但是这种提升并非没有限制,虽然只有一次链上交易,但是它会受到交易数据本身 gas 成本的制约。以太坊数据的 gas 成本在伊斯坦布尔升级前是每字节 68 单位,而以太坊上每个地址就会占用 20 字节,所以如果用以太坊交易的数据结构来表示链下交易,gas 费用会非常高,因此 Rollup 对交易数据进行了压缩。

ZK Rollup 在智能合约里用 merkle 树来记录地址,这样地址就可以表示成树的索引值,地址数据的大小就从原本的 20 bytes 减少到只有 3 bytes 到 4 bytes。每笔交易就被压缩成 10 几个字节,再加上一个约 100-300 字节的 SNARK,理论上可以将以太坊吞吐量从 32 TPS 提升到约 680 TPS,伊斯坦布尔升级后可达到 2000 TPS。下图是压缩后 ZK Rollup 每笔交易数据的格式:

在这里插入图片描述

五. 通用性

通用性方面,Optimistic Rollup 明显好于ZK Rollup,当然它的设计目标就是支持任意智能合约。而 ZK Rollup 目前仅适用于支付之类的特定交易,对于通用智能合约,由于创建零知识证明的成本非常高,部署起来困难较大。为了提高效率, 开发者正在开发专门的零知识证明虚拟机,比如 ZEXE。它在一定程度上可以缩短创建证明的时间,但是缺点是合约开发者需要大量的专业知识。Matter Labs团队基于ZK Rollup开发的新一代区块链扩展方案 ZK Sync,设计开发了一款以委托的方式生成零知识证明的沙盒式虚拟机,开发者不需要深入了解零知识证明领域的技术细节就可以编写出高效且安全的智能合约。

总结:
在这里插入图片描述

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

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

相关文章

C语言文件读写

上一章我们讲解了 C 语言处理的标准输入和输出设备。本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层…

linux------基本操作指令(1)

1)JAVA是一个跨平台的编程语言,多线程编程,网络编程在JAVA标准库里面本身就有 2)C的标准库相比于JAVA的标准库还是要弱一些,网络编程已经不支持了 3)linux是世界上第一大操作系统 李纽克斯 李娜克斯 李呢克斯 李妮克斯 一:背景知识 1)内网I…

串口监听:以共享模式打开端口CreateFile,居然无法再打开?但文件可以。

想以共享模式来监听串口 结果打开失败,错误5 拒绝访问。为什么呢? 但是文件却正常 看了两个监听串口的软件bus hound和commMonitor都是需要驱动才能实现 单纯共享打开,可以无法监听串口,那学习一下windows驱动吧。 windows驱动 …

为加快项目开发进度,如何快速合理分配开发任务?

1、对任务进行合理分类 软件开发项目,任务繁多,需要对任务进行分类,以便优先完成重要任务。一般最常规的方法是时间四象限法,即按照重要和紧急程度对任务进行划分:重要紧急、重要不紧急、紧急不重要、不重要不紧急四类…

UE4 Shader 常用函数 学习笔记

Add:快捷键a 将两数相加,也可以将两纹理相加,如下图: append(追加): Subtract(减): 和加相反,特例,如下: Abs&#xff0…

企业需要防范的 6 个常见身份攻击手段|身份云研究院

零信任作为新一代的网络安全防护理念,已经成为全球网络安全管理的基石。零信任的核心是 「安全体系架构从网络中心化走向身份中心化」,「以身份为中心」的网络访问控制理念也逐渐被越来越多企业接受并实践。 然而企业在面向用户身份访问和管理的实践中还…

一文读懂锁、互斥量、原子操作的并发控制策略

前言:在程序设计过程中,难免涉及操作系统、多进程、多线程、数据库等领域。在这些领域内,确保对共享资源的异步操作不出差错,是每个程序开发者必须要考虑的问题。面对并发问题,除了需要谨慎和小心外,引入并…

《图解TCP/IP》阅读笔记(第七章 7.7)——MPLS 多协议标记交换技术

7.7 MPLS 由小而大的讲完了三种路由协议RIP、OSPF、BGP之后,我们来看在转发IP数据包时使用到的另外一种技术——标记交换技术。 路由技术基于IP地址中的最长匹配原则进行转发,而标记交换则对每个IP包都设定一个叫做“标记”的值,根据该标记…

数据结构与算法-堆

什么堆 堆是一种特殊的数据结构,是最高效的优先级队列。可以被看作是一颗完全的二叉树表达的数组对象。 堆的定义 1、必须是一颗完全二叉树 完全二叉树就是子节点必须从左到右都是完整的,没有缺失。 2、用数组表示看作完全二叉树的堆 假设&#xff1a…

基于MYSQL的互联网药品交易系统数据库设计项目实战

说明:这是一个数据库课程设计实战项目(附带代码文档视频讲解),如需代码文档视频讲解可以直接到文章最后获取。 项目背景 疫情期间实体经济收到打击,实体药店经营困难,医院也面临着疫情患者的压力运转着&…

window安装Docker Desktop for Windows(基于WSL2)

目录一 什么是Ducker二 安装Ducker1 window for Linux子系统环境搭建1.1 打开系统虚拟机平台和WSL(适用于Linux的window子系统)1.2安装WSL21.3为什么用wsl2,不用wsl11.4 下载集成支持linux内核的wsl21.5 设置WSL默认版本二、安装Ubuntu20.04LTS1 打开Microsoft Stor…

解析某音短视频X-Bogus

文章目录写在前面目标正向梳理主要加密函数主要算法解析逆向梳理结论测试进阶写在后面写在前面 首先推荐一篇资料: 某音短视频 X-Bogus 逆向分析,JSVMP 纯算法还原 这篇文章介绍了通过插桩日志抠算法的过程,很有参考价值。 文章已经实现的部…

什么是外汇跟单?外汇MT4自动跟单系统靠谱吗?

对于很多刚刚进入外汇市场的新手投资者而言,必须踏踏实实学习基础知识和交易技巧,才能在外汇市场获取盈利,因为在没有任何专业知识的情况下,想要在外汇市场盈利是一件非常艰难的事情。而一些脑洞大开的外汇新手投资者却在思考&…

第7章 分页之模型分页(物理分页)

模型分页主要通过前端页面中的分页控件,向后端指定路由(控制器行为方法),传递相等的参数,然后间接的通过后端程序从数据库指定表中获取一些指定行的数据,然后把这些数据在前端页面渲染显示出来。模型分页的主要用于前端页面与后端…

Java开发 - 数据库索引的数据结构

目录 前言 题外话 什么是索引 索引的使用场景 索引的失效瞬间 索引的数据结构 Tree BTree BTree 索引提高查询效率的原因 索引的分类 innodb的特点 聚簇索引 非聚簇索引 索引操作 创建索引 查询索引 删除索引 外键 结语 前言 上一章中讲解了慢sql优化的方…

快速诊断I/O性能问题

背景客户反馈最近一段时间数据库运行缓慢,磁盘的压力很大,现在有两种不同的分析结论,存储设备性能下降和数据库压力变大,请我们进行系统的分析,给一个结论 现象 登录SQL专家云,进入性能指标页面&#xff0c…

跨境电商小白:一件代发是什么?为什么要选择Starday一件代发?

近两年经济形势比较复杂多变,许多人面临就业难、职场改革、行业转型等困境,而跨境电商行业在此形势下依靠着国家优惠政策以及中国高质量产品在海外市场获得越来越多的份额。随着跨境电商行业发展规模的扩大,越来越多人选择加入到跨境电商赛道…

【实时数仓】省份交易额统计接口、新老访客对比接口、访客分时统计接口

文章目录一 省份交易额统计接口1 Sugar配置(1)图表配置(2)接口地址(3)数据格式(4)执行SQL2 数据接口实现(1)创建地区交易额统计实体类ProvinceStats&#xff…

Kafka基础_2

Kafka系列 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase …

18-RocketMQ源码解读

NameServer启动 1、功能回顾 NameServer的核心作用 一是维护Broker的服务地址并进行及时的更新。 二是给Producer和Consumer提供服务获取Broker列表。 2、启动流程-源码重点 整个NameServer的核心就是一个NamesrvController对象。这个controller对象就跟java Web开发中的Contr…