混合Rollup:探秘 Metis、Fraxchain、Aztec、Miden和Ola

1. 引言

混合Rollup为新的以太坊L2扩容方案,其分为2大类:

  • 将乐观与ZK技术结合的混合Rollup
  • 同时支持公开智能合约 和 私人智能合约 的混合Rollup

本文将重点关注Metis、Fraxchain、Aztec、Miden和Ola这五大项目。

2. 何为混合Rollup?

混合Rollup具有2重含义:

  • 1)作为以太坊L2扩容方案,结合了 乐观Rollup的可扩展性,和,ZKRollup的安全性。如Metis DAO和Frax Finance。
  • 2)作为同时支持公开和私人 智能合约及交易 的L2/L3扩容方案。当用户想要隐私时,可在其自身设备上执行合约、生成ZK proof、并将ZK proof上传到rollup。这样的费用效率高,因为rollup仅需验证proof,而不需要验证交易本身。

3. 乐观和ZK混合Rollup:Metis和Fraxchain

Metis为以太坊的乐观Rollup,分叉自Optimism,专为decentralized autonomous corporations (DAC) 做了优化。

根据L2Beat,Metis Andromeda链 为第三大锁仓量TVL的乐观链——约1亿美金:
在这里插入图片描述
根据L2 Fees统计,Metis L2网络内的ETH转账交易手续费仅约0.01美金,swap手续费约0.03美金,均为最低:
在这里插入图片描述
在希腊神话中,Metis是良策女神,而Andromeda是一位美丽的公主,被英雄Perseus从海龙手中救了出来。事实上,Metis DAO的标志是希腊女神的头像。有了这种神话联系,不要惊讶于Metis生态系统中的许多项目也以古代的神和英雄命名:Hera、Hermes、Maia、Athena、Tethys等。
在这里插入图片描述

3.1 Metis DAO的混合rollup项目

2023年3月,Metis DAO 宣布其将致力于混合rollup,将取款到以太坊的时间由7天缩短到4小时。

Metis 混合rollup L2项目:

  • 其内核为乐观链,但使用ZK有效性证明。ZK proof很小,发送多个ZK proof到主网仅需花费少量gas,这将有助于缓解以太坊的拥堵。
  • 仍利用相同的名为Smart L2的链下存储系统作为Andromeda。在Smart L2中,交易数据发送给MEMO去中心化云存储协议,而不是在链上维护。如有需要(如潜在欺诈),也可将MEMO中的数据重新提交到以太坊链上。
  • 不将完整的交易数据发送到以太坊链上,Metis 仅发送batch的Merkle Tree Root(MTR)到以太坊链上,其余的都发送给MEMO。该解决方案要比Optimism或Arbitrum便宜的多。事实上其不是乐观rollup,而是“on-demand rollup”。
  • 将兼容EVM,dApp开发则将无进入门槛。
  • zkMIPS:计划使用MIPS作为其混合rollup架构,详细技术描述见:zkmips-and-other-research-challenges-for-layer-2。
    且目前Optimism已在其Cannon协议中使用了MIPS。
  • 未来Metis也将合并Cannon。

3.2 Fraxchain:Frax Finance生态的混合rollup

$FRAX为最大的去中心化stablecoins之一。

Fraxchain与Metis类似:

  • 为基于乐观rollup + ZK proof
  • 为EVM兼容

不同之处在于,Fraxchain:

  • 使用frxETH、FRAX、FPI(Frax Price Index)作为gas fees。
  • 支持gasless交易,具体取决于其拥有的FRAX和frxETH。
  • 消耗的gas fees将分发给锁定FRX的用户。
  • 使用Fraxferry协议来在链间转移FXS稳定币,无需bridges且是trustless的。
  • veFXS持有人将投票决定谁是Fraxchain的sequencer。

在乐观rollup中,sequencer是对用户发送的交易进行排序(排序)和验证、将其编译为batches(rollup区块)并向L1提交批处理数据的一方。由于sequencer能够压缩交易,最终用户支付的费用比他们自己将交易发送到以太坊主网的费用要少。
sequencer有很大的权力:

  • 可决定从块中包括或忽略某交易,
  • 以及以特定的方式从排序操作中提取利润(MEV)。

通过让社区有能力投票给sequencer,Frax Finance将加强其去中心化治理。
即使是那些没有加入新链的Frax用户也将受益。现在,frxETH的所有收益都进入sfrxETH金库,并在质押者之间进行分配。现在想象一下,很大一部分frxETH迁移到Fraxchain,用于支付交易费用。总金库收益率将保持不变(因为持有ETH的流动资金不会改变),但将分配给少数持有者。每个frxETH持有者的APR将增加。

在这里插入图片描述

4. 公开和私人合约执行混合:Aztec、Ola和Polygon Miden

4.1 公开和私人合约

使用公开合约:

  • 任何一方都可以查看所有其他用户如何与合同交互,包括用户输入和输出。用户向合同发送交易请求,validator批准这些请求,并更新区块链的状态。我们习惯的所有“正常”dApp,如Liquidswap、Compound等,都是在公开合约上运行的。

使用私人合同:

  • 交易数据是加密的,只有经过授权的用户才能查看输入和输出。即使是区块链validator也看不到交易中的内容。

混合rollup允许用户执行公开和私人两种类型的交易。有了这项技术,私人智能合约甚至可以在用户自己的设备上本地执行。

私人合约有许多潜在用途:

  • DAO的选民隐私
  • AMM安全,这样机器人就看不到提交到内存池的交易;
  • 公共游戏中的私人游戏锦标赛
  • 机构用户的企业安全。

当前,开发公开和私人合约执行混合rollup的项目主要有:Aztec、Ola和Polygon Miden。

4.2 Aztec

Aztec自身定位为:“加密版以太坊”,并为首个混合ZK rollup。

用户可在设备端构建加密交易,在本地生成ZK proofs,并将ZK proofs提交到Aztec以打包到(发送给以太坊的)batches中。

Aztec的最知名产品为Aztec Connect,上线于2022年7月,为以太坊的隐私层,支持开发者在以太坊上构建隐私DeFi dApps,其中最知名的为Aztec官方的zk.money.protocol。不过Aztec Connect和zk.money已于2023年3月下线,团队将分配资源构建其新的混合rollup——Aztec Network。

4.2.1 Aztec Network架构

Aztec Network混合rollup网络中,不需要发送交易请求给validators,而是发送该交易对某合约是完整的proof。无论是L1还是rollup,都不知道该交易内容。

目前难点在于:

  • 以太坊和EVM设计的最大化透明度 优于 隐私
  • 专注于隐私的链(如ZCash)又不支持dApps

以太坊和隐私币(如ZCash)之间最大的差别在于其记录交易的方式:

  • 以太坊采用账号模型:每个用户有关联balance的账号,该余额会随每笔交易变化。区块链会跟踪整个网络中的所有账号余额变化。
  • 隐私币采用UTXO模型:这样的链不关心账号余额,仅关心某coin unit在某交易内是否已花费。Bitcoin也采用UTXO模型,不过其没有内置隐私性。

Aztec Network 结合了UTXO模型和支持dApp:

  • UTXO可处理任意数据,而不仅仅是金钱总额
  • 整个智能合约都可包含在单个UTXO内

在这里插入图片描述
Aztec将不与EVM或Solidity兼容。Aztec团队开发了一种新的私人智能合约编程语言——Noir。
在这里插入图片描述
sandbox testnet将于2023年Q3上线,公开测试网计划于2024年Q1。https://github.com/noir-lang/awesome-noir中包含了丰富的学习资源。

4.3 Ola

Ola为专注隐私的zkVM,由Sin7y Labs开发,其团队来自ZKSpace、Huobi、Qtum、Accenture。

注意Ola不是zkEVM,其不兼容EVM。不过需要对现有以太坊dApp重编码,才有可能能前一到OlaVM中执行。

Ola与Aztec Connect有一些相似特性:

  • 可编程隐私
  • 新的编程语言:Ola-lang。Noir为DSL,而Ola-lang为通用编程语言,可用于任意领域。
  • 合规性:可以向第三方授予特殊的查看权限(viewing keys)以进行帐户监控。这可以在最终用户级别、工具上完成。
  • 2种区块链状态:公开和私有。其中私有状态采用UTXO。
    在这里插入图片描述

4.3.1 Ola与Aztec不同之处

Ola与Aztec不同之处有:

  • 1)每个函数所需key pairs不同:
    • Aztec每个合约函数需要其自己的密钥对(public key和verification key),以用于计算和存储。
    • OlaVM不需要这样的密钥对,从而节约了资源和存储空间。
  • 2)隐私设计不同:
  • 如Sin7y团队Hybrid Rollup — What do Aztec, Miden, & Ola Hold for the Future of Next-Generation Infrastructure?博客中所述,用户并不是要求其交易是不可跟踪的。用户可能想要的是,无人可利用其链上行为信息来犯罪 或 获利。为此,Sin7y Labs设计了2种隐私方案:
    • 可追踪交易:用户手续费更低,但仍对用户数据层提供隐私保护。
    • 不可追踪交易
  • 3)证明方案不同:
    • Aztec采用SNARK
    • Ola与polygon Miden类似,采用STARK,具体算法为Starky。
  • 4)开发者友好程度不同:
    • Ola:为VS Code创建了Ola-lang插件。未来将集成到LLVM框架中。Pontem Network采用相同的LLVM工具实现了首个 Move for EVM。

Ola公开测试网在2023年Q4,主网在2024年初:
在这里插入图片描述

4.4 Polygon Miden

Polygon Miden 不同于Polygon zkEVM,其为2023年3月宣布的新的ZK链品牌,公开测试网计划于2023年Q4:
在这里插入图片描述
Miden与Ola、Aztec的相似之处在于:

  • 用户可运行私人智能合约,验证其交易,并生成ZK proofs。
  • 切分为公开状态和私人状态。
  • 灵活合规性,使得仅监管机构可访问私人智能合约内信息。
  • 数据验证的资源高效性。

Miden在某种程度是与EVM兼容,不过隐私优先。与其他rollups类似,Miden网络仍会向以太坊主网发送ZK proofs。但是以太坊开发者仍有一些学习门槛来基于Miden开发。

Miden:

  • 将使用(与Aptos相同的)Move作为其合约开发语言,因为Miden的创始人Bobbin Threadbare,之前在Facebook开发Move。
  • 将使用(模块化区块链执行层Fuel Network背后的)Fuel Labs开发的Sway语言。

4.4.1 资源效率加隐私

Miden区分了私人交易和私人合约:

  • 私人交易:可在公开合约上执行,如隐藏了所交易的特定NFT。
  • 私人合约:有其代码和状态,对其它用户不可见,但仍可与公开合约交互。如Miden上的隐私钱包,可与公开AMM交互——对于不想向潜在黑客透露其操作的流动性提供商或项目团队来说,这是一个很好的功能。
    • 借助私人合约,所有计算都在用户设备本地进行。即无gas开销,用户可便宜地执行复杂的合约。
    • Validators仅需要便宜且简单地检查ZK proofs。使得有可能支持并行计算,即意味着Miden要比常规ZK rollup快得多。因此,在Miden上保持隐私也将为用户节省金钱和时间。
    • 客户端验证:仅对不影响公开链状态的交易可行。Miden上的大多数交易都是不影响公开链状态的,包括大多数token转账和NFT交易。即使相应ZK proof已记录在链上,这些交易也可revert。
    • 对于哪些需要修改公开状态的交易,Miden提供了常规链上执行选项。

4.4.2 Miden中的账号抽象

Miden中的另一创新为:

  • 账号抽象:结合了EOA和合约账号的优点。2023年3月以太坊主网引入了ERC-4337作为账号抽象。

4.4.3 STARK proof递归

与Ola类似,Miden也采用STARK方案。

为解决STARK proof size大的问题,引入了递归STARK方案。

参考资料

[1] Pontem Network 2023年9月博客 Hybrid rollups: discover Metis, Fraxchain, Aztec, Miden, and Ola

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

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

相关文章

MySQL-树型结构数据查询

表结构 进行树形结构查询,利用特殊语法进行操作 with recursive t as(select parent_id , business_namefrom business_line where id 21union allselect a.parent_id, a.business_namefrom business_line a join t on a.id t.parent_id) select business_name f…

[AI Agent学习] MetaGPT源码浅析

前言 工作上,需要使用AI Agent,所以需要深入学习一下AI Agent,光阅读各种文章,总觉无法深入细节,所以开看各类AI Agent相关的开源项目,此为第一篇,学习一下MetaGPT的源码。 基本目标 MetaGPT是一…

【深度学习实验】前馈神经网络(八):模型评价(自定义支持分批进行评价的Accuracy类)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. __init__(构造函数) 2. update函数(更新评价指标) 5. accumulate(计算准确率) 4. reset(重置评价指标) 5. 构造数据进行测试 6. 代码整合 一、实验介绍 本文将实…

进行 XSS 攻击 和 如何防御

跨站脚本攻击(XSS 攻击)是 Web 开发中最危险的攻击之一。以下是它们的工作原理以及防御方法。 XSS 攻击 跨站脚本攻击就是在另一个用户的计算机上运行带有恶意的 JS 代码。假如我们的程序没有对这些恶意的脚本进行防御的话,他们就会由我们的…

李宏毅hw-10 ——adversarial attack

一、查漏补缺: 1.关于glob.glob的用法,返回一个文件路径的 列表: 当然,再套用1个sort,就是将所有的文件路径按照字母进行排序了 2.relpath relative_path返回相对于基准路径的相对路径的函数 二、代码剖析&#xff…

STM32单片机入门学习(四)-蜂鸣器

蜂鸣器接线 低平蜂鸣器,低电平发声,高电平不发声, 三个排针,VCC接3.3v,GND接地,I/O接A0口,如图: 蜂鸣器代码:响一秒停半秒 #include "stm32f10x.h" #includ…

LRU、LFU 内存淘汰算法的设计与实现

1、背景介绍 LRU、LFU都是内存管理淘汰算法,内存管理是计算机技术中重要的一环,也是多数操作系统中必备的模块。应用场景:假设 给定你一定内存空间,需要你维护一些缓存数据,LRU、LFU就是在内存已经满了的情况下&#…

2023-2024年最新大数据学习路线

文章目录 2023-2024年最新大数据学习路线大数据开发入门*01*阶段案例实战 大数据核心基础*02*阶段案例实战 千亿级数仓技术*03*阶段项目实战 PB级内存计算04阶段项目实战 亚秒级实时计算*05*阶段项目实战 大厂面试*06* 2023-2024年最新大数据学习路线 新路线图在Spark一章不再…

Android跨进程通信:Binder机制原理

目录 1. Binder到底是什么? 2. 知识储备 2.1 进程空间划分 2.2 进程隔离 & 跨进程通信( IPC ) 2.3 内存映射 2.3.1 作用 2.3.2 实现过程 2.3.3 特点 2.3.4 应用场景 2.3.5 实例讲解 ① 文件读 / 写操作 ② 跨进程通信 3. Bi…

Cron表达式_用于定时调度任务

一、Cron表达式简介 Cron表达式是一个用于设置计划任务的字符串,该字符串以5或6个空格分隔,分为6或7个域,每一个域代表任务在相应时间、日期或时间间隔执行的规则【Cron表达式最初是在类Unix操作中系统中使用的,但现在已经广泛应用…

人机融合需要在事实与价值之间构建新型的拓扑关系

人机融合,这是指将人类智慧(含艺术)与计算机科技相结合,共同解决复杂问题的一种新方式。在人机融合中,我们需要构建事实与价值之间的新型拓扑关系,以实现更有效的知识管理和决策支持。 事实是指客观存在的、…

Python爬虫爬取豆瓣电影短评(爬虫入门,Scrapy框架,Xpath解析网站,jieba分词)

声明:以下内容仅供学习参考,禁止用于任何商业用途 很久之前就想学爬虫了,但是一直没机会,这次终于有机会了 主要参考了《疯狂python讲义》的最后一章 首先安装Scrapy: pip install scrapy 然后创建爬虫项目&#…

力扣26:删除有序数组中的重复项

26. 删除有序数组中的重复项 - 力扣(LeetCode) 题目: 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 …

Leetcode 95. 不同的二叉搜索树 II

文章目录 题目代码&#xff08;9.21 首刷看解析&#xff09; 题目 Leetcode 95. 不同的二叉搜索树 II 代码&#xff08;9.21 首刷看解析&#xff09; class Solution { public:vector<TreeNode*> generateTrees(int n) {return build(1,n);}vector<TreeNode*> bu…

将本地前端工程中的npm依赖上传到Nexus

【问题背景】 用Nexus搭建了内网的依赖仓库&#xff0c;需要将前端工程中node_modules中的依赖上传到Nexus上&#xff0c;但是node_modules中的依赖已经是解压后的状态&#xff0c;如果直接机械地将其简单地打包上传到Nexus&#xff0c;那么无法通过npm install下载使用。故有…

Jenkins Job的Migrate之旅

场景 使用Jenkins 做为应用的定时任务处理&#xff0c; 在上面建立的800个左右的Job, 这个环境运行了很多年&#xff0c; 当初安装的最新版本是Jenkins 1.642.3&#xff0c; 现在因为OS需要升级等原因&#xff0c; 驻在上面的Jenkins 服务器也需要一并升级&#xff0c;在新的服…

Mock.js之Element-ui搭建首页导航与左侧菜单

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》《springMvc使用》 ⛺️ 生活的理想&#xff0c;为了不断更新自己 ! 1、Mock.js的使用 1.1.什么是Mock.js Mock.js是一个模拟数据的生成器&#xff0c;用来帮助前…

浅谈C++|文件篇

C中的文件操作是通过使用文件流来实现的。文件流提供了对文件的输入和输出功能。下面是C文件操作的基本步骤&#xff1a; 1. 包含头文件&#xff1a;首先&#xff0c;包含 <fstream> 头文件&#xff0c;它包含了进行文件操作所需的类和函数。 2 . 进行文件读写操作&#…

9领域事件

本系列包含以下文章&#xff1a; DDD入门DDD概念大白话战略设计代码工程结构请求处理流程聚合根与资源库实体与值对象应用服务与领域服务领域事件&#xff08;本文&#xff09;CQRS 案例项目介绍 # 既然DDD是“领域”驱动&#xff0c;那么我们便不能抛开业务而只讲技术&…

Windows专业版的Docker下载、安装与启用Kubenetes、访问Kubernetes Dashboard

到Docker 官网https://www.docker.com/ 下载windows操作系统对应的docker软件安装 Docker Desktop Installer-Win.exe 2023-09版本是4.23 下载后双击安装 重启windows后&#xff0c;继续安装 接受服务继续安装 解决碰到的Docker Engine stopped 打开 控制面板》程序》启用或关…