条件性转账
条件性转账是链下转账,仅在链上事件发生时才有效。 条件性转账的用例可以包括(但不限于):
快速提款:Alice不想要等待证明就在链上收到款项(记住,在常规提款流程中,只有在证明被接受后,资金才能在链上可用)。 她签名了有条件转账,将1000 USDC交给流通量供应商(LP)的链下保险库,条件是从1000 USDC中扣除一定费用后,从他的以太坊地址链上转款到她的以太坊地址链上。
‌有关快速提款的更多信息,请参见此处
在Uniswap上交换资产:Alice不喜欢链下应用程序中当前的ETH / DAI比率,并希望趁机利用Uniswap上非常高的ETH价格。 她签名了链下条件性转移资产,发送1ETH给LP保险库。 此项转移的条件是基于一项事实即该LP以Alice的名义向StarkEx存入她预期在Uniswap上获得0.99ETH 的DAI量的事实。

第一步:Alice向应用程序发送条件性转账请求

Alice向应用程序发送条件性转账请求。 除了用于常规转账的字段之外,条件性转账还包括两个附加字段:
  • 地址:以太坊上智能合约的地址。 该合约应实施事实注册表模式
  • 事实:为批准条件性转账而需在此智能合约中注册的这项事实。
Alice知道,只有在地址中的事实是真实的,她的交易才是有效的,并且应用程序才能够执行该交易。 有关条件性转账的结构,请参见此处
事实注册合约是StarkEx系统的外部合约,可以具有任意逻辑。 用户需验证合约,以确保其实施了他们预期的条件逻辑。

第二步:链上交易记录事实

事实注册合约的链上交易在地址处进行,造成事实的注册是有效的。
在上面的快速提款示例中,事实将是Alice的以太坊地址的哈希值,代币的类型和金额。 与地址处相连接的事实注册合约发生交易后,合约首先将必要的资金量从发送方转移到Alice的以太坊地址,然后将事实注册为真实。
Alice知道,只有将所需资金量转移到她的链上之后,她的链下条件性转账才有效。

第三步:应用程序将条件性转账交易发送到StarkEx

‌在地址中将事实注册为真实之后,应用程序将条件转移交易发送到StarkEx。 然后,转账中的有效性验证就完成了。

‌第四步:批处理中的条件性转账

如果交易有效,则与有效性证明一起被打包到批处理中待提交到链上。链上交易的状态更新包括地址事实作为调用数据。 如果此事实未注册为真,那么状态更新将被拒绝。
Last modified 1yr ago