当前位置: 首页 > news >正文

Polygon Miden:扩展以太坊功能集的ZK-optimized rollup

1. 引言

Polygon Miden定位为zkVM,定于2023年Q4上公开测试网。

zk、zkVM、zkEVM及其未来中指出,当前主要有3种类型的zkVM,括号内为其相应的指令集:

  • mainstream(WASM, RISC-V)
  • EVM(EVM bytecode)
  • ZK-Optimized(专为零知识证明优化的新型指令集,如Cairo的指令集和zkSync的指令集)

Polygon Miden为:

  • ZK-optimized rollup
  • 由客户端生成证明
  • 完善Polygon ZK系列解决方案,致力于成为网络价值层
  • 扩展以太坊功能集

2. Polygon Miden目标:扩展以太坊功能集

Polygon Miden的目标是:

  • 扩展以太坊功能集。

以太坊被设计成一个缓慢发展并提供稳定性的基础层。Rollups允许创造新的设计空间,同时保留以太坊的安全性。这使得Rollups成为创新和启用新功能的完美场所。

与许多其它Rollups不同:

  • Polygon Miden将ZK友好性置于EVM兼容性之上。
  • Polygon Miden使用了一个新颖的状态模型来充分利用以ZK为中心(ZK-centric)的设计的能力。
  • 这些设计决策允许开发人员创建目前(基于帐号系统上)难以或不切实际的应用程序。

Polygon Miden在三个核心维度上扩展以太坊,以吸引数十亿用户:

  • 可扩展性
  • 安全性
  • 隐私性

2.1 可扩展性

为实现最终的可扩展性,需从根本上改变区块链的设计方式:

  • Polygon Miden改变了区块链中的一切都必须透明才能验证的范式。

区块链通过重新执行进行验证:

  • 重新执行需要透明度和处理能力。
  • 通过重新执行进行验证会降低区块链的速度。
  • 零知识证明提供了在不重新执行的情况下进行验证的可能性。
  • 零知识验证不需要透明度或处理能力。

在Polygon Miden中,用户可以生成自己的证明,并由网络进行验证。 这是Polygon Miden中最重要的更改。

  • 1)用户可以在本地执行智能合约。具体来说:

    • 对于任何不涉及公共状态的东西,用户都可在其客户端设备上执行智能合约,然后向网络发送ZK证明。
    • 然后,网络operators可 以 比执行原始交易,更快地以指数级的速度,验证这些ZK证明,并更新相应的状态。

    这不仅减少了operators的计算负担,而且使此类交易具有内在的并行性。更令人兴奋的是,它打破了智能合约的限制。例如,用户可以在本地执行和证明的任何东西——无论多么复杂——都可以由网络以最低的成本进行处理。在Miden上,即使运行复杂的计算也会很便宜。

  • 2)Polygon Miden的另一个重要变化是确保大多数交易不需要触及公共状态。

    • 通过使智能合约之间的所有交互异步来实现这一点。
      • 有了Polygon Miden,代币转让、NFT交换和许多其他交易都不需要触及公共状态。
      • 对于更改公共状态的操作,Polygon Miden确实允许常规网络交易执行(与大多数其他区块链相同)。
      • 由于异步执行模式,本地执行交易和网络交易之间的交互可以无缝完成。

2.2 安全性

资产需要安全且易于处理。任何人都不应该在丢失密钥或将其发送到错误地址时丢失代币。Polygon Miden的方法旨在从多个方面降低使用加密货币的风险。

  • Polygon Miden上的每个帐号都是一个智能合约——通常被称为帐户抽象。这使开发人员能够在Polygon Miden上创建更安全的用户钱包,其功能包括密钥的社交恢复、代币花费限速、交易风险分析等。
  • 由于Polygon Miden的异步执行模型,可以创建可收回的交易,从而降低将资金发送到不存在的地址的风险。这为用户提供了一个更安全的环境。
  • 在Miden,fungible和non-fungible资产存储在本地账号中(而不是在全局token合约中)。这使得利用潜在漏洞变得更加困难,因为每个帐号都需要单独攻击。
  • 说到bug,为了使智能合约开发更安全,Polygon Miden旨在支持Move和Sway等现代智能合约语言。这些语言的设计强调安全性和正确性,并在设计中融入了其他安全语言(如Rust)多年的经验和功能。

2.3 隐私性

绝对透明是区块链的主要缺点之一。私下交易的能力是一项基本权利,也是一种实际需要。因此,将隐私置于Polygon Miden设计的核心。

不过Miden超越了简单的私人交易:

  • Polygon Miden的架构实现了富有表现力的私人智能合约。这些与常规智能合约几乎完全相同,但在本地执行,因此用户不会向网络透露其代码、状态和交互图。
  • 最酷的是,私人智能合约可以与公共智能合约无缝交互。因此,例如,私人速率受限的钱包可以调用公共DEX。企业和金融机构可以在Miden上构建和执行其商业逻辑。他们会对竞争对手隐藏信息,但对审计人员可见。

关于隐私的另一个重要观点是,用户不应该为此支付额外费用。在Polygon Miden的设计中,私人智能合约对网络的负担最小(比公共智能合约小得多),因此在Polygon Miden上,保持隐私更便宜。

隐私是公共领域的一个复杂领域。隐私是一个复杂的问题,需要仔细研究和考虑。
为此Miden团队计划分阶段在Polygon Miden上启用隐私:

  • 最初,用户可对其他用户隐私,但不对维护运营商隐私(类似于Web2隐私)。这将使我们有时间弄清楚如何在不为潜在的滥用打开闸门的情况下实现更高水平的隐私。

3. Miden架构:基于actor的执行模式 + 支持并发链下状态

Polygon Miden的架构与支持上述功能的经典区块链设计大相径庭,最大的区别大于:

  • 1)基于actor的执行模式
  • 2)混合状态模型

3.1 基于actor的执行模式

actor模式是并发系统中众所周知的设计范式。Polygon Miden的执行模式受actor模式启发。

  • 在actor模式中:actor是负责维护自己状态的状态机。
  • 在Polygon Miden的上下文中:每个帐号都是一个actor。actor之间通过异步交换消息进行通信。一个actor可以向另一个actor发送消息,但由接收者自行决定是否将请求的更改应用于其状态。

Polygon Miden的架构采用 actor模式 + ZKP:

  • actor不仅可维护和更新自身状态,还可向网络中其他成员 证明其自身状态转换的有效性。
  • 这种独立证明状态转换的能力支持本地智能合约执行、私人智能合约等。其在rollup空间中非常独特。通常只有中心化实体——Sequencer或Prover——创建零知识证明,而不是由用户来创建ZKP proof。

3.2 混合状态模型

基于actor的执行模式需要一种完全不同的方法来记录系统状态。actor以及actor之间交互的信息必须被视为一等公民。Polygon Miden通过结合:

  • 以太坊等基于账户的系统
  • 和 比特币和Zcash等基于UTXO的系统的状态模型

来解决这一问题。

此外,Polygon Miden帐户可活跃于链上或链下:

  • 对于链上帐户,完整帐户状态始终记录在链上(意味着在Polygon Miden上)。
  • 对于链下账户,链上只记录对账户状态的承诺(即状态哈希)。
    这是可能的,因为如前所述,在基于actor的模型中,用户可以在本地对其帐户进行更新,然后向网络发送相应的ZKP proof,证明对帐户状态已正确更新的承诺。网络可以在不知道链下账户状态细节的情况下验证转换的正确性。

链上和链下账户数据,及其,可在本地或通过网络证明状态变化的能力相结合,可提供灵活的交易模式:
在这里插入图片描述
在2022年在哥伦比亚波哥大举行的DevCon 6中,Polygon Miden联合创始人Bobbin Threadbare分享的视频Using a Hybrid UTXO and Account-based State Model in a ZK Rollup by Bobbin Threadbare中讲述了灵活的交易模式,以及如何设计实际状态模型来构建去中心化可扩展rollup。

4. 范式转移

Polygon Miden旨在解锁新的用例和应用程序。普遍的观点是,区块链中的一切都必须是透明的,才能进行验证。但在Polygon Miden中,参与者可以证明正确性,而不需要透明。

Polygon Miden结合了以太坊、比特币和现代并发数据库的核心概念,所有这些都由ZK证明的无信任安全性提供支持。从而实现弹性的、通用的ZKRollup——其针对高吞吐量、计算量大的应用程序进行了优化,其中隐私也是优先事项。

Polygon Miden的架构基础将在未来的迭代中实现巨大的吞吐量、低费用和隐私。然而,就像所有的rollup一样,都需要从基础做起,逐步分阶段实现。

参考资料

[1] Polygon Labs 2023年3月23日博客 Polygon Miden: Ethereum, Extended.

Miden系列博客

  • zk、zkVM、zkEVM及其未来
  • Polygon L2扩容方案揭秘
  • 混合Rollup:探秘 Metis、Fraxchain、Aztec、Miden和Ola

相关文章:

Polygon Miden:扩展以太坊功能集的ZK-optimized rollup

1. 引言 Polygon Miden定位为zkVM,定于2023年Q4上公开测试网。 zk、zkVM、zkEVM及其未来中指出,当前主要有3种类型的zkVM,括号内为其相应的指令集: mainstream(WASM, RISC-V)EVM(EVM bytecod…...

[题]宝物筛选 #单调队列优化

五、宝物筛选&#xff08;洛谷P1776&#xff09; 题目链接 好家伙&#xff0c;找到了一个之前学习多重背包优化时的错误…… 之前记的笔记还是很有用的…… #include<bits/stdc.h> using namespace std; const int N 1e5 10; int f[N]; int n, m; int v, w, s; int l…...

.NET的键盘Hook管理类,用于禁用键盘输入和切换

一、MyHook帮助类 此类需要编写指定屏蔽的按键&#xff0c;灵活性差。 using System; using System.Runtime.InteropServices; using System.Diagnostics; using System.Windows.Forms; using Microsoft.Win32;namespace MyHookClass {/// <summary>/// 类一/// </su…...

Anaconda Jupyter

&#x1f64c;秋名山码民的主页 &#x1f602;oi退役选手&#xff0c;Java、大数据、单片机、IoT均有所涉猎&#xff0c;热爱技术&#xff0c;技术无罪 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 获取源码&#xff0c;添加WX 目录 前言An…...

Unity中Shader的前向渲染路径ForwardRenderingPath

文章目录 前言一、前向渲染路径的特点二、渲染方式1、逐像素(效果最好)2、逐顶点(效果次之)3、SH球谐(效果最差) 三、Unity中对灯光设置 后&#xff0c;自动选择对应的渲染方式1、ForwardBase仅用于一个逐像素的平行灯&#xff0c;以及所有的逐顶点与SH2、ForwardAdd用于其他所…...

简历项目优化关键方法论-START

START方法论是非常著名的面试法则&#xff0c;经常被面试官使用的工具 Situation:情况、事情、项目需求是在什么情况下发生Task:任务&#xff0c;你负责的做的是什么Action:动作&#xff0c;针对这样的情况分析&#xff0c;你采用了什么行动方式Result:结果&#xff0c;在这样…...

TensorFlow学习1:使用官方模型进行图片分类

前言 人工智能以后会越来越发达&#xff0c;趁着现在简单学习一下。机器学习框架有很多&#xff0c;这里觉得学习谷歌的 TensorFlow&#xff0c;谷歌的技术还是很有保证的&#xff0c;另外TensorFlow 的中文文档真的很友好。 文档&#xff1a; https://tensorflow.google.cn/…...

C++ 并发编程实战 第八章 设计并发代码 一

目录 8.1 在线程间切分任务 8.1.1 先在线程间切分数据&#xff0c;再开始处理 8.1.2 以递归方式划分数据 8.1.3 依据工作类别划分任务 借多线程分离关注点需防范两大风险 在线程间按流程划分任务 8.2 影响并发性能的因素 8.2.1 处理器的数量 8.2.2 数据竞争和缓存兵乓…...

设计模式8、装饰者模式 Decorator

解释说明&#xff1a;动态地给一个对象增加一些额外的职责。就扩展功能而言&#xff0c;装饰模式提供了一种比使用子类更加灵活的替代方案 抽象构件&#xff08;Component&#xff09;&#xff1a;定义一个抽象接口以规范准备收附加责任的对象 具体构件&#xff08;ConcreteCom…...

抖音开放平台第三方代小程序开发,一整套流程

大家好&#xff0c;我是小悟 抖音小程序第三方平台开发着力于解决抖音生态体系内的小程序管理问题&#xff0c;一套模板&#xff0c;随处部署。能尽可能地减少服务商的开发成本&#xff0c;服务商只用开发一套小程序代码作为模板就可以快速批量的孵化出大量的商家小程序。 第…...

Flutter笔记:滚动之-无限滚动与动态加载的实现(GetX简单状态管理版)

Flutter笔记 无限滚动与动态加载的实现&#xff08;GeX简单状态管理版&#xff09; 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq…...

前端架构师之02_ES6_高级

1 类和继承 1.1 class类 JavaScript 语言中&#xff0c;生成实例对象的传统方法是通过构造函数。 // ES5 创建对象 // 创建一个类&#xff0c;用户名 密码 function User(name,pass){// 添加属性this.name name;this.pass pass; } // 用 原型 添加方法 User.prototype.sho…...

VScode多文件编译/调试配置

之前都是在Visual Studio写C/C&#xff0c;最近想换到VScode&#xff0c;折腾半天把launch.json和tasks.json配好了&#xff08;虽然不懂为什么&#xff0c;但确实能用了&#xff09;&#xff0c;在此做个记录。 参考资料&#xff1a;1&#xff0c;2&#xff0c;3 环境&#…...

K折交叉验证——cross_val_score函数使用说明

在机器学习中&#xff0c;许多算法中多个超参数&#xff0c;超参数的取值不同会导致结果差异很大&#xff0c;如何确定最优的超参数&#xff1f;此时就需要进行交叉验证的方法&#xff0c;sklearn给我们提供了相应的cross_val_score函数&#xff0c;可对数据集进行交叉验证划分…...

2023.09.30使用golang1.18编译Hel10-Web/Databasetools的windows版

#Go 1.21新增的 log/slog 完美解决了以上问题&#xff0c;并且带来了很多其他很实用的特性。 本次编译不使用log/slog 包 su - echo $GOPATH ;echo $GOROOT; cd /tmp; busybox wget --no-check-certificate https://go.dev/dl/go1.18.linux-amd64.tar.gz;\ which tar&&am…...

React简介

react作为前端主流框架之一&#xff0c;因其语法接近原生JavaScript语法而广受欢迎。其生态丰富&#xff0c;常用的就有react-router、react-redux等插件&#xff0c;还有与其匹配的UI组件库antd。而且其还有用于移动端开发的react-native库&#xff0c;因此&#xff0c;react值…...

链表经典面试题(一)

面试题 1.反转链表的题目2.反转链表的图文分析3.反转链表的代码实现 1.反转链表的题目 2.反转链表的图文分析 我们在实现反转链表的时候,是将后面的元素变前面&#xff0c;前面的元素变后面&#xff0c;那么我们是否可以理解为&#xff0c;用头插法的思想来完成反转链表呢&…...

体验亚马逊的 CodeWhisperer 感觉

CodeWhisperer 是亚马逊推出的辅助编程工具&#xff0c;在程序员写代码时&#xff0c;它能根据其内容生成多种代码建议。 CodeWhisperer 目前已支持近10几种语言&#xff0c;我是用 java 语言&#xff0c;用的开发工具是 idea&#xff0c;说一下我用的情况。 亚马逊云科技开发…...

6、行内元素和块元素

6、行内元素和块元素 一、块元素 无论内容多少&#xff0c;该元素独占一行 如p标签、标题标签&#xff08;h1-h6…&#xff09; 二、行内元素 内容撑开宽度、左右都是行内元素的可以排在一行 一些元素如果能够摆放在一行都可以用行内元素&#xff0c;但是如果需要换行就需…...

LeetCode 面试题 08.01. 三步问题

文章目录 一、题目二、Java 题解 一、题目 三步问题。有个小孩正在上楼梯&#xff0c;楼梯有n阶台阶&#xff0c;小孩一次可以上1阶、2阶或3阶。实现一种方法&#xff0c;计算小孩有多少种上楼梯的方式。结果可能很大&#xff0c;你需要对结果模1000000007。 示例1: 输入&…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...