Polygon Miden 更侧重于zk友好性,而不是EVM兼容性,采用新的状态机,允许开发者部署应用。
Polygon Miden每个交易更新一个账户的状态,它会消耗0个或多个notes
, 生成0或多个notes
。
Polygon Miden 基于Actor 模型,为了实现转账,需要有两个交易。
Polygon Miden 具有 local execution
能力,用户或网络可生成交易的证明。
目前Polgon Miden还在开发中,尚未上线。
Miden VM 支持各个功能:
-
Flow control
: Miden VM 是图灵完备的,支持各种控制流结构; -
Procedures
: Miden 汇编代码可以分解为子线程,称为procedures
, 实现代码的模块化; -
Execution contexts
: Miden VM 执行可扩展到多个独立的上下文中,每个上下文都有各自的内存空间。 -
Memory
: Miden VM支持读写随机访问内存; -
u32 operations
: Miden VM 支持32位无符号的整数的各种运算; -
cryptographic operations
: Miden 汇编提供内置的指令计算hash, 采用Rescue Prime Optimized
哈希函数; -
External libraries
: Miden VM 支持编译预定义的库,例如stdlib
添加了64位无符号整数的支持,开发者也可添加第三方的库; -
Nondeterminism
: Miden VM 支持非确定性的程序,即prover可以为VM提供hints
, 加速计算,或作为VM的秘密输入; -
custom advice providers
: VM 执行过程中可以提供外部数据作为输入,例如外部数据库或RPC 调用。
计划支持的功能:
- 递归证明:
- 更好的调试功能;
- 错误执行的证明
Miden VM 架构
Miden VM 是在 64位 域上,即 。
Miden VM 主要是三个组件:
- Stack: 栈结构,每个栈元素是一个域元素;
- Memory: 内存是线性随机访问的可读写结构;
-
Advice provider
: 主要为VM 提供非确定性输入。
Miden VM的目标是支持将Solidity, Move, Sway等高级编译为Miden assembly, 但目前编译器尚未开发。
目前仅支持采用Miden assembly开发项目程序。
Miden assembly language
Miden 汇编是一种用于写Miden VM程序的低级语言,首先编译成MAST(Merkerlized Abstract Syntax Tree), 然后转为Miden VM 指令集。
参考
https://wiki.polygon.technology/docs/miden/