Mir协议 运行环境

2021-05-06  本文已影响0人  雪落无留痕

Mir可以构建Ethereum 上的应用,在交易运行环境中,采用零知识证明对交易进行验证。 这些证明的数值电路和传统的VM计算环境有很大的区别, Mir 内核提供了丰富的执行环境以支持广泛的应用。

状态

在Mir中,状态的基本的单元为记录record, 定义为一个元组 (\phi_b, \phi_m, \phi_d, \phi_f, {address}, {state}), \phi_* 分别代表创建(create), 改变(mutation),销毁(death), 和 函数处理,{address}为可选地址标记更改的记录,{state}为域元素。

Mir将状态的所有记录存放在承诺集(Commitment Set)中,由Commitment logLiveness Mask两种数据结构组成。应用的状态和逻辑不需要在网上发布,验证者利用承诺集去验证相关的记录状态。

图 将逻辑和状态的承诺作为记录

Mir上的应用可以创建,更改,消耗,和调用记录作为函数。当记录创建的时候,将其添加到Commitmetn Set上。 记录将设为Commitment Set中非活跃的状态当其被消耗掉的时候。当记录改变的时候,它本身被消耗掉,地址标记到一个新创建的记录上,以更新其状态。

通过交易(transaction)对记录进行操作。交易由一些新创建的记录承诺{ b_i }, 消耗的记录地址{d_i}, 可访问的记录 {a_i}, 先前的区块根 {r_i}构成, 可选的秘密输入,和零知识证明 \pi

ZEXE交易结构

ZEXE中,记录逻辑被编码为 birth predicatedeath predicatebirth predicate用于创建tokens, death predicate用于花费 tokens。 ZEXE模型无法支撑以太坊上大部分应用,尤其是涉及到共享状态的应用。

在ZEX中可以创建共享状态的记录,但只能使用一次,限制了它同步访问的应用。

Mir执行环境

Mir引入了新的执行环境,其中记录是可变的,可以不消耗掉记录状态的前掉下访问记录的状态。可以添加地址标签识别可变的记录。

从上图中可以看出, 记录1和2被消耗掉,记录3和4被创建,记录5作为函数被调用,并且无需消耗掉一个记录。记录6被更改,成为记录7。

交易

交易由创建的记录\{b_i \}, 更改的记录 \{m_i\}, 消耗的记录\{d_i\} 和可访问的记录\{a_i\}组成。

应用的执行

交易创建者对于每个记录,获取地址,区块的根,状态和 predicate circuits。 应用逻辑在链下执行,用于生成状态,验证密钥和新生成的记录\{b_i \}\{m_i\}的承诺。

生成 predicate proof

predicate proof用于验证 \phi_*, 对应着对一个记录的操作。对于交易中涉及的每个记录,生成predicate proof \pi_*。证明的公开输入为已经存在的记录的地址,状态和交易的内存。

生成交易证明

交易证明递归验证predicate proof, 验证记录承诺包括正确的状态,保证公开输入和记录承诺一致。交易创建者需要提供已经存在的记录的证明。

可执行环境特点

结论

Mir表明发采用伪UTXO模型也能支持丰富的功能,Mir内核可以以太坊上丰富的应用。Mir可以为去中心化应用提供隐私,可扩展性和空间效率。

参考

https://mirprotocol.org/blog/The-Mir-Execution-Environment

上一篇 下一篇

猜你喜欢

热点阅读