Mir可以构建Ethereum 上的应用,在交易运行环境中,采用零知识证明对交易进行验证。 这些证明的数值电路和传统的VM计算环境有很大的区别, Mir 内核提供了丰富的执行环境以支持广泛的应用。
状态
在Mir中,状态的基本的单元为记录record
, 定义为一个元组 , 分别代表创建(create), 改变(mutation),销毁(death), 和 函数处理,为可选地址标记更改的记录,为域元素。
Mir将状态的所有记录存放在承诺集(Commitment Set)中,由Commitment log
和Liveness Mask
两种数据结构组成。应用的状态和逻辑不需要在网上发布,验证者利用承诺集去验证相关的记录状态。
图 将逻辑和状态的承诺作为记录
Mir上的应用可以创建,更改,消耗,和调用记录作为函数。当记录创建的时候,将其添加到Commitmetn Set
上。 记录将设为Commitment Set
中非活跃的状态当其被消耗掉的时候。当记录改变的时候,它本身被消耗掉,地址标记到一个新创建的记录上,以更新其状态。
通过交易(transaction)对记录进行操作。交易由一些新创建的记录承诺, 消耗的记录地址, 可访问的记录 , 先前的区块根 构成, 可选的秘密输入,和零知识证明 。
ZEXE交易结构
在ZEXE中,记录逻辑被编码为 birth predicate
和death predicate
。 birth predicate
用于创建tokens, death predicate
用于花费 tokens。 ZEXE模型无法支撑以太坊上大部分应用,尤其是涉及到共享状态的应用。
在ZEX中可以创建共享状态的记录,但只能使用一次,限制了它同步访问的应用。
Mir执行环境
Mir引入了新的执行环境,其中记录是可变的,可以不消耗掉记录状态的前掉下访问记录的状态。可以添加地址标签识别可变的记录。
从上图中可以看出, 记录1和2被消耗掉,记录3和4被创建,记录5作为函数被调用,并且无需消耗掉一个记录。记录6被更改,成为记录7。
交易
交易由创建的记录, 更改的记录 , 消耗的记录 和可访问的记录组成。
应用的执行
交易创建者对于每个记录,获取地址,区块的根,状态和 predicate circuits
。 应用逻辑在链下执行,用于生成状态,验证密钥和新生成的记录和 的承诺。
生成 predicate proof
predicate proof
用于验证 , 对应着对一个记录的操作。对于交易中涉及的每个记录,生成predicate proof
。证明的公开输入为已经存在的记录的地址,状态和交易的内存。
生成交易证明
交易证明递归验证predicate proof
, 验证记录承诺包括正确的状态,保证公开输入和记录承诺一致。交易创建者需要提供已经存在的记录的证明。
可执行环境特点
-
可组合性
Mir 允许开发者构建可组合的应用,同步访问包含共享状态的记录,并不会导致证明时间和效率的降低。
-
全局状态
交易能够读取全局状态,也能写全局状态,通过更新记录或链式交易实现。
-
记录更新
-
链式交易
-
数据可用性
结论
Mir表明发采用伪UTXO模型也能支持丰富的功能,Mir内核可以以太坊上丰富的应用。Mir可以为去中心化应用提供隐私,可扩展性和空间效率。
网友评论