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.mzph.cn/news/92720.shtml

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

相关文章

Java:正则表达式的命名捕获组

命名捕获组格式 (?<year>.*)-(?<month>.*)-(?<date>.*)完整示例 package com.example.demo;import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexTests {public static void main(String[] args) {String text "2…

3.css的各种选择器

元素选择器 body中的形式 <span class"cls" id"time">2023年03月02日 21:50</span> <span class"cls">央视网</span>head中的形式 <style>h1 {color: #4D4F53;}/* 元素选择器 */span {color: red;} }</styl…

Kubernetes 学习总结(38)—— Kubernetes 与云原生的联系

一、什么是云原生&#xff1f; 伴随着云计算的浪潮&#xff0c;云原生概念也应运而生&#xff0c;而且火得一塌糊涂&#xff0c;大家经常说云原生&#xff0c;却很少有人告诉你到底什么是云原生&#xff0c;云原生可以理解为“云”“原生”&#xff0c;Cloud 可以理解为应用程…

C++:stl:list的常用接口及其模拟实现

本文主要介绍c&#xff1a;stl中list常用接口的功能及使用方法&#xff0c;比较list与vector的区别&#xff0c;并对list的常用接口进行模拟实现。 目录 一、list的介绍和使用 1.list介绍 2.list使用 1.list的构造 2.list iterator的使用 3.list 容量相关 4.list元素访…

[NOIP2011 提高组] 选择客栈

[NOIP2011 提高组] 选择客栈 题目描述 丽江河边有 n n n 家很有特色的客栈&#xff0c;客栈按照其位置顺序从 1 1 1 到 n n n 编号。每家客栈都按照某一种色调进行装饰&#xff08;总共 k k k 种&#xff0c;用整数 0 ∼ k − 1 0 \sim k-1 0∼k−1 表示&#xff09;&am…

机器学习——seaborn实用画图方法简介

0、seaborn简介: 前言:下面的总结只是介绍seaborn有哪些方法和属性,至于具体使用,通过下面给出的名称稍作查找即可。重点应该关注本文介绍的seaborn的使用方法seaborn与机器学习的关系: 知识图谱 0.1、了解即可的知识: seaborn:在matplotlib的基础上画一些更好看的图,在…

Mysql集群高可用架构MHA

Mysql集群高可用架构MHA 一、MHA概述1.1、 MHA 是什么1.2、 MHA 的组成1.3、 MHA 的特点 二、MHA高可用实例2.1、配置主从复制2.1、 安装 MHA 软件2.2、故障模拟2.3、故障修复 一、MHA概述 1.1、 MHA 是什么 MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的M…

计算机毕设 大数据全国疫情数据分析与3D可视化 - python 大数据

文章目录 0 前言1 课题背景2 实现效果3 设计原理4 部分代码5 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉学长自己做的…

【C++刷题笔记】螺旋矩阵的两种写法

螺旋矩阵有两种判断大循环结束的方式&#xff0c;第一种是判断需要循环多少次&#xff0c;奇数的话需要额外处理&#xff1b;第二种通过取多少个数判断&#xff0c;不需要额外处理 方法一&#xff1a; class Solution { public:vector<int> spiralOrder(vector<vect…

OpenCV之直线曲线拟合

直线拟合fitLine void fitLine( InputArray points, OutputArray line, int distType,double param, double reps, double aeps ); points:二维点的数组或vector line:输出直线,Vec4f (2d)或Vec6f (3d)的vector distType:距离类型 param:距离参数 reps:径向的精度参数 a…

【2023集创赛】加速科技杯三等奖作品:私密性高精度刷手身份认证系统

本文为2023年第七届全国大学生集成电路创新创业大赛&#xff08;“集创赛”&#xff09;加速科技杯三等奖作品分享&#xff0c;参加极术社区的【有奖征集】分享你的2023集创赛作品&#xff0c;秀出作品风采&#xff0c;分享2023集创赛作品扩大影响力&#xff0c;更有丰富电子礼…

Centos7 安装mysql 5.7

Centos7 安装mysql 5.7 准备工作 centos7 服务器 xshell 安装教程 安装并配置 在安装MySQL之前&#xff0c;我们应该确保系统已经更新到最新的软件包和安全补丁。打开终端&#xff0c;输入以下命令来更新系统 yum update为了方便安装MySQL&#xff0c;我们需要下载并安装…

【数据结构】排序之插入排序和选择排序

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;数据结构 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、排序的概念及其分类 &#x1f4d2;1.1排序的概念 &#x1f4d2;1.2排序…

HTML详细基础(二)文件路径

目录 一.相对路径 二.绝对路径 三.超链接标签 四.锚点链接 首先&#xff0c;扩展一些HTML执行的原理&#xff1a; htmL(hypertext markup Language) 是一种规范&#xff08;或者说是一种标准&#xff09;&#xff0c;它通过标记符&#xff08;tag&#xff09;来标记要显示…

【FreeRTOS】FreeRTOS移植stm32详细步骤介绍

我在查找FreeRTOS移植的相关教程特别少&#xff0c;所以想非常详细的介绍FreeRTOS移植stm32详细步骤&#xff0c;包括源码的下载&#xff0c;源码介绍&#xff0c;系统移植&#xff0c;代码验证等&#xff0c;每一步都有对应的介绍和解释&#xff0c;希望可以帮助到你们。 文章…

openGauss学习笔记-84 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT部署服务器优化:x86

文章目录 openGauss学习笔记-84 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT部署服务器优化&#xff1a;x8684.1 BIOS84.2 操作系统环境设置84.3 网络 openGauss学习笔记-84 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT部署服务器优化&#xff1a;x86 …

使用van-dialog二次封装微信小程序模态框

由于微信小程序的wx.showModal不支持富文本内容&#xff0c;无法实现更灵活的展示效果&#xff0c;故需要进行二次封装 实现思路&#xff1a;使用van-dialog以及微信小程序的rich-text实现 代码如下&#xff1a; // index.wxml <van-dialoguse-slottitle"提示"s…

基于vue+Element Table Popover 弹出框内置表格的封装

文章目录 项目场景&#xff1a;实现效果认识组件代码效果分析 封装&#xff1a;代码封装思路页面中使用 项目场景&#xff1a; 在选择数据的时候需要在已选择的数据中对比选择&#xff0c;具体就是点击一个按钮&#xff0c;弹出一个小的弹出框&#xff0c;但不像对话框那样还需…

[DS资源推荐] Data Structure 严书配套代码

下图引入自康建伟老师博客 Github地址 使用说明&#xff1a;康老师博客 使用感受&#xff1a;Orz&#xff01;非常非常非常全面&#xff01;终于能看得下去严书了…

IO学习系列之使用fgetc函数实现Linux命令“wc -l”和“wc -c”的功能

实例要求&#xff1a;使用标准IO的库函数中的fgetc函数实现Linux命令“wc -l”和“wc -c”的功能&#xff1b;实例分析&#xff1a;“wc -l xxx.txt”&#xff1a;统计当前目录下xxx.txt文件的行数&#xff1b;“wc -c xxx.txt”&#xff1a;统计当前目录下xxx.txt文件的字符数…