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

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

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

相关文章

C理解(一):内存与位操作

本文主要探讨C语言的内存和为操作操作相关知识。 冯诺依曼结构和哈佛结构 冯诺依曼结构:数据和代码放在一起,便于读取和修改,安全性低 哈佛结构是:数据和代码分开存放,安全性高,读取和修麻烦 内存 内存是用来存储全局变量、局…

Cloudflare进阶技巧:缓存利用最大化

1. 引言 cloudflare我想你应该知道是什么,一家真正意义上免费无限量的CDN,至今未曾有哥们喷它的。当然,在国内的速度确实比较一般,不过这也不能怪它。 CDN最大的特色,我想就是它的缓存功能,达到防攻击&am…

云原生之使用Docker部署PDF多功能工具Stirling-PDF

云原生之使用Docker部署PDF多功能工具Stirling-PDF 一、Stirling-PDF介绍1.1 Stirling-PDF简介1.2 Stirling-PDF功能 二、本次实践规划2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Stirli…

redis查看耗时久的命令

redis查看耗时久的命令主要有两招:latency和slow log 【latency】 在Redis中,latency命令用于监视和测量Redis实例的延迟。 先进入redis: redis-cli -h 127.0.0.1 -p 24000[查看延迟监视器阈值] CONFIG GET latency-monitor-threshold这个值返回0&…

【计算机视觉】3.传统计算机视觉方法

传统计算机视觉方法 一、大纲图像分割人脸检测行人检测 二、图像分割基于阈值检测的方法基于边缘检测的方法基于区域的分割方法基于图论的分割方法 三、人脸检测四、行人检测五、SVM六、DPM 一、大纲 图像分割 基于阈值、基于边缘 基于区域、基于图论 人脸检测 Haar-like 特征…

Java实现使用多线程,实现复制文件到另一个目录,起不一样的名字,创建100万个数据

目录 1 需求2 实现 1 需求 我现在有一个300MB 的文件,想要根据这个文件,创建100万个大小一样的,名称不一样,如何实现,如何比较快点实现 2 实现 1 先准备好这个文件 2 准备好目录 3 写代码 private static void crea…

python:bottle + eel 模仿 mdict 查英汉词典

Eel 是一个轻量的 Python 库,用于制作简单的类似于离线 HTML/JS GUI 应用程序,并具有对 Python 功能和库的完全访问权限。 Eel 托管一个本地 Web 服务器,允许您使用 Python 注释函数(annotate functions),…

(附源码)springboot体检预约APP 计算机毕设16370

目 录 摘要 1 绪论 1.1开发背景 1.2研究现状 1.3springboot框架介绍 1.4论文结构与章节安排 2 Springboot体检预约APP系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统流程分析 2.2.1 数据添加流程 2.2.2 数据…

ShowDoc部署与应用:文档管理的最佳实践

在项目开发和协作中,文档管理扮演着至关重要的角色。ShowDoc作为一款卓越的开源文档管理工具,不仅提供强大的文档管理功能,还具备简单易用的协作和部署特性。我们的项目团队最初选择了ShowDoc作为文档管理工具,用以促进前后端协作…

【算法】莫队

这篇博客起源于本人把一道 p o w ( 2 , n ) pow(2,n) pow(2,n) 的问题考虑成求组合数前缀和的问题qwq,于是接触到了这个新算法来总结一下 参考自这篇文章,写得太好了 首先是一道模板题 题目意思是,给出一个数组a,再给出多个区…

nginx 多层代理 + k8s ingress 后端服务获取客户真实ip 配置

1.nginx http 七层代理 修改命令空间: namespace: nginx-ingress : configmap:nginx-configuration kubectl get cm nginx-configuration -n ingress-nginx -o yaml添加如上配置 compute-full-forwarded-for: “true” forwarded-for-header: X-Forwa…

点击、拖拉拽,BI系统让业务掌握数据分析主动权

在今天的商业环境中,数据分析已经成为企业获取竞争优势的关键因素之一。然而,许多企业在面对复杂的数据分析工具时,却常常感到困扰。这些工具往往需要专业的技术人员操作,而且界面复杂,难以理解和使用。对业务人员来说…

JDK17新特性

为什么要升级JDK17 JDK17带来了哪些变化 swtich语句增强 // jdk8switch int statusCode 0; String statusName ""; switch (statusCode) {case 1:statusName "开始";break;case 2:statusName "进行中";break;case 3:statusName "结束…

【ARMv8 SIMD和浮点指令编程】NEON 加载指令——如何将数据从内存搬到寄存器(LDxLDxR)?

将内存中的数据搬到 NEON 寄存器,有很多指令可以完成,熟悉这些指令是必须的。 1 LD1 (multiple structures) 将多个单元素结构加载到一个,两个,三个或四个寄存器上。该指令从内存中加载多个单元结构,并将结果写入一、二、三或四个 SIMD&FP 寄存器。 无偏移 一个寄存…

基于nodejs+vue办公OA公文发文件管理系统

论文的研究内容包括:公文分类、公文信息、待办提醒等方面进行了研究。系统以当前应用最为广泛的nodejs语言为基础,结合了目前应用最为广泛的嵌入式嵌入式平台,集成了B/S体系结构。数据库选择简便高效的MySQL,vue框架。在OA公文发文…

简单理解旁路电容和去耦电容

1、本文内容如有错误,欢迎交流指正。 2、本文仅作为本人学习笔记,部分内容来源于网络、书籍,如涉及侵权,请联系删除。 什么是旁路电容? 旁路电容的英文原文是Bypass capacitor,bypass就是绕过,避…

Spring修炼之路(2)依赖注入(DI)

一、概念 依赖注入(Dependency Injection,DI)。 测试pojo类 : Address.java 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 . 注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 . 二、 注入方式 2.1构造器注入 我们在之前的案例已经…

系统集成|第十二章(笔记)

目录 第十二章 沟通管理12.1 沟通的基本概念12.2 主要过程12.2.1 规划沟通管理12.2.2 管理沟通12.2.3 控制沟通 12.3 常见问题 上篇:第十一章、项目人力资源管理 下篇:第十三章、干系人管理 第十二章 沟通管理 沟通管理在项目计划、执行、监控过程中具有…

echarts添加点击事件

实现效果:点击图表,弹出该数据下对应得详情 官方文档: 封装的图表组件中: 点击获取点击得对象,进而将需要的参数传给父组件,在父组件中再去请求接口获取更多信息 this.chart.on(click, (params)> {th…

C# 数组

C# 数组 数组简单数组多维数组锯齿数组Array类数组的接口枚举 数组 如果需要使用同一类型的多个对象,就可以使用集合和数组。C#用特殊的记号声明和使用数组。 简单数组 在声明数组时,应先定义数组中元素的类型,其后是一个空方括号和一个变…