跨L2的钱包

2023-06-24  本文已影响0人  雪落无留痕

本文主要关注从L2读L1, 从L1读L2, 或者L2读L2的状态。这对实现asset/keystore 分离的钱包技术架构很关键。

目标

随着L2成为主流,用户可能在多个l2上都拥有资产。随机智能合约钱包 (multisig, social wallet) 等普及,用户密钥可能随时间一直需要更新,如何同步更新密钥也是一个问题。

counterfactual addresses: 尚未在链上注册的地址。

智能合约钱包地址可以利用create2 , 在各个l2生成相同的地址。

但是智能合合约钱包存在一个关键挑战:如何更新同步更新访问密钥。

唯一可行的解决方案是: asset/keystore 分离架构。每个用户都有一个: (1) keystore 合约, 用于存放verification key ; (2) wallet 合约,在其它的L1或L2上,通过跨链读到verification key.

有两上办法实现这个目的:

跨链证明

假设keystore 在Linea上, 钱包在Kakarot上, 跨链的证明如下:

主要包含两个证明:

证明的实现方案

聚合是将一个块中的多个跨链证明聚合在一起, 对于SNARKs和KZG可以进行聚合,可以有三种聚合方式:

参考

https://vitalik.ca/general/2023/06/20/deeperdive.html

上一篇 下一篇

猜你喜欢

热点阅读