交易生命周期
从 L1 存款
将 L1 资金存入 Spark 非常简单。SE 和用户协作生成聚合公钥并从中派生出 pay-to-taproot 地址。然后他们共同创建并签署两笔交易:一笔退出交易,以及在它之前触发退出交易相对时间锁的中间分支交易。一旦这两笔交易都签署完毕,用户最终可以将存款交易广播到 pay-to-taproot 地址。请注意,资金交易的输入应该是隔离见证输入。现在用户在 Spark 中拥有一个叶子。
逐步流程
- 密钥生成:
- 用户和 SE 一起生成聚合公钥,这是用户公钥和 SE 公钥(本身由各个 SO 公钥派生)的总和。然后为此密钥派生 pay-to-taproot 地址。
- 其中
- 且 是 时 的拉格朗日系数
- 设置和签名:
- 用户构建一笔将资金发送到 pay-to-taproot 地址的存款交易,但不广播它。
- 用户和 SE 协作创建并签署两笔交易:
- 一笔没有时间锁的中间分支交易(不广播),消费存款交易。这笔交易触发其下叶子的相对时间锁。
- 一笔从中间交易消费的退出交易。如果用户希望单方面退出 Spark,则广播此交易。
- 所有相关方都签署这两笔交易,以提供单方面退出途径。Spark 兼容钱包应验证所有相关交易的有效性。
- 存储:
- 用户和 SE 安全存储已签名的交易
- 用户存款和确认:
- 用户广播在步骤 2 中创建的存款交易。一旦 L1 交易得到确认,资金就可以在 Spark 内转移。