可编程支付通道:原理、实现与应用
1. 承诺实例的基本概念
承诺实例由两个属性构成:承诺存储(通过键存储访问)和承诺代码(通过键代码访问)。承诺存储 σ 是一个属性元组,至少包含以下属性:
- σ.payer:表示支付资金的一方。
- σ.payee:表示接收资金的一方。
- σ.resolve ∈R≥0:表示从付款方转移到收款方的资金数量。
承诺代码是一个元组 C := (Λ, Construct, f1, …, fs),与合约代码类似,但有进一步限制:
- 唯一的构造函数 Construct 会始终将调用者设置为所创建存储中的付款方。
- 构造函数的输出与输入参数 t 无关,t 是一个捕获区块链当前时间的时间参数。
此外,每个 fi 可以访问同一通道中其他承诺的代码和存储,以及所有第 1 层链上合约的代码和存储。
2. 理想功能 FPPC
FPPC 维护一个键值数据结构 Γ 来跟踪各方之间的所有可编程支付通道,包含以下 4 个过程:
1. PPC 创建 :假设一方 P 想与另一方 Q 构建一个通道。在 Δ 轮内,FPPC 会从 P 在 ˆL 的账户中取出通道实例指定的相应硬币。如果 Q 同意创建,在另外的 Δ 轮内,FPPC 会取出 Q 的硬币。因此,初始可编程支付通道的成功创建最多需要 2Δ 轮。若 Q 不想创建通道,P 可在 2Δ 轮后取回资金。
2. 承诺创建 :此过程用于从付款方 P 向收款方 Q 创建一个可编程支付(即承诺)。承诺实例由付款方选择的通道 γ、合约代码 C、构造函数
超级会员免费看
订阅专栏 解锁全文
1006

被折叠的 条评论
为什么被折叠?



