织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 比特币 > 比特币资讯

什么是有条件转账?实现 L1-L2 互操作性的关键(2)

时间:2021-03-19 08:59来源:未知 作者:admin 点击:
一笔签过名的 CT 所包含的链上事件的指纹有两个字段(实际上是这两个参数的哈希值):(1)一个 Fact Registry 合约的地址;(2)上述合约中应当记录的事

一笔签过名的 CT 所包含的链上事件的指纹有两个字段(实际上是这两个参数的哈希值):(1)一个 Fact Registry 合约的地址;(2)上述合约中应当记录的事实。

StarkEx 有条件交易

StarkEx 会批量打包 Layey-2 中的交易,并使用一条发送到链上的 STARK 证明来结算这些交易。如果某一批次中包含 CT,StarkEx 将保证相关的事实已经注册,以便能清算该批交易;否则,整批交易都会回滚。

有条件交易的案例

在本部分,我们会提出一些应用场景,并指出 CT 如何能用在这些场景中。

详细案例 —— 快速取款

在任意 L2 方案中,最初级的从 L2 转出资金到 L1 中的办法便是终局化一次 L2 的状态更新(在该次更新中包含一笔取款交易)。在基于有效性证明的系统(比如 StarkEx)中,终局化一次 L2 的状态更新需要在链上提交一个相应(于此次更新)的有效性证明,一般来说需要 10 分钟。这就意味着,如果用户使用这种方式来取款,就不得不等待至少 10 分钟。

而快速取款的用意正是为了解耦这种(取款对 L2 状态更新的)依赖,让用户能够在 “区块时间” 内免信任地将资金取出,也即,就像使用普通的以太坊合约一样。

那到底是怎么个流程呢?如果 Alice 想要从 L2 中取出 1 ETH 到 L1,Alice 可以在 L2 上签名一条将 1 ETH 转移给流动性提供者(LP)的 CT,条件是 LP 在 L1 上转移 1 ETH(减去一些手续费)给 Alice。Alice 的 CT 仅能在她收到 L1 上的转账之后才能执行,所以她不会面临对手方风险。

我们来看一个能够协助 CT 的简易的 Fact Registry 合约:

我们可以看到这个合约有一个 payabe 函数 transfer(),它的功能有两个:

(1)转移一定数量的 ETH 到某个地址

(2)登记 keccack(amount, address, nonce)

Alice 签发的 CT 只有 keccack(1 ETH, Alice, nonce) 在 Fact Registry 中注册之后才能执行。而这个事实,也只有在给 Alice 的 1 ETH 转账发生了之后才能成功注册。Alice 可以无需信任地取出 1 ETH,整个过程只需她的前面,和 LP 在以太坊链上发起的一笔交易。

更多应用场景

类似的流程可以捕捉到下列类型的事件,从而 L2 的 CT 也可以有更多的用途,例如:

如果 ETH 的价格跌到了 1010 DAI(可以通过一个已知的信息输入服务在链上注册),Alice 希望在 L2 卖出 1 ETH,换回在 L1 上的 1000 DAIAlice 希望在 L2 上给 Bob 10 ETH,只要 Bob 以 Alice 的名义在 Alice 指定的 dApp (比如 Aave 或者 Compound)中存入 9.5 ETHAlice 希望在 DeversiFi 的 L2 上给 Bob 10 ETH,只要 Bob 在 dYdX 的 L2 中给 Alice 的账户存入 9.5 ETH

总结

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容