您的位置:网站首页 > 区块链技术 > 正 文 比特币

如何更新一个支付通道的余额

【作者:网文】 来源:转载 日期:2022-1-20 9:17:11 人气: 标签:BTC 区块链 【打印】

  • BuildPayOtherFirstTx(alice) —— Bob 构建了使用 RSM Contract 给自己支付 0.02 BTC 以及不加限制给 Alice 支付 0.08 BTC 的交易。对 Bob 来说,这是 “先给对方支付” 交易,它跟 Alice 构建的 payAliceFirstTx 其实一模一样。

  • CheckSignature(payOtherFirstTx, payAliceFirstSignature) —— Bob 检查从 Alice 处收到的签名( payAliceFirstSignature )对他刚刚构建的交易(也即 payAliceFirstTx)确实有效。如果来自 Alice 的签名是有效的,那就意味着 Bob 收到了一笔有效的承诺事务(表示状态 02)。他可以继续使用通道,也可以加上自己的签名并广播出去,从而关闭通道。

  • Store(payAliceFirstSignature) —— Bob 将签名和让他能够重构 payAliceFirstTx 的数据一起持久化保存。如果 Alice 离线没有响应,Bob 可能会用上这些数据。

  • BuildRevokeCommitmentMsg() —— Bob 不需要存储更旧的状态(因为在更旧的状态中他的余额更少)所以他希望让状态 02 payAliceFirstTx )变成当前的状态,并撤销(作废)旧的状态(状态 01)。他构建了一条 revokeMessage 来作废状态 01

  • Send(revokeMessage) —— Bob 发送 revokeMessage 给 Alice,这对他来说没有风险,因为他作废的是旧的状态(状态 01)。最糟糕的情况是 Alice 变得没有响应,而 Bob 不得不广播 payAliceFirstTx 交易。

    通过作废旧的状态(状态 01),Bob 向 Alice 保证了做接下来的操作是没有问题的。

    1. ReceiveRevokeMsg(revokeMessage) —— Alice 收到了来自 Bob 的撤销消息。Alice 现在有了惩罚 Bob 的能力,如果 Bob 把旧的承诺事务(代表状态 01)广播出去的话。

      她尚未作废自己的当前状态,因为她还没有收到 Bob 对状态 02 的签名。

    Bob 构建和签名

    1. BuildPayMeFirstTx(bob) —— Bbo 不会签名 payAliceFirstTx 交易并发送给 Alice,这笔交易对他是不利的,因为他必须遵守 RSM 合约但 Alice 可以立即把属于自己的钱拿走。更重要的是,如果签名了这笔交易,他就没有了惩罚 Alice 的能力,即使 Alice 在未来趁着 payAliceFirstTx 对自己有利(余额更多)的时候把它广播出去,Bob 也无能为力。因此,Bob 构建了一笔不设任何限制给自己支付,但使用 RSM 合约来给 Alice 支付的交易。这笔交易我们叫 payBobFirstTx 交易。
    2. Sign(payBobFirstTx) —— Bob 创建 payBobFirstTx 交易的签名,即 payBobFirstSignature 
    3. Send(payBobFirstSignature) —— Bob 把 payBobFirstSignature消息发送给 Alice。
    1. Receive(signatureBob) —— Alice 收到 payBobFirstSignature 消息。注意 Bob 只需发送签名,无需发送完整的交易,因为 Alice 可以重构出完全相同的交易。
    2. BuildPayOtherFirstTx(bob) —— Alice 构建出使用 RSM 合约给自己支付 0.08 BTC、不设限制给 Bob 支付 0.02 BTC 的交易。对 Alice 来说,这是 “先给对方支付” 交易,它跟 Bob 构建的 payBobFirstTx 其实一模一样。
    3. CheckSignature(payOtherFirstTx, signatureBob) —— Alice 检查从 Bob 处收到的签名( payBobFirstSignature )对她刚刚构建的交易(也即 payBobFirstTx)确实有效。如果来自 Bob 的签名是有效的,那就意味着 Alice 收到了一笔有效的承诺事务(表示状态 02)。她可以继续使用通道,也可以加上自己的签名并广播出去,从而关闭通道。如果 Alice 选择广播出这笔交易,Bob 可以立即拿走属于自己的资金,而她只能等待 RSM 合约过时。
    4. Store(signatureBob) —— Alice 将签名和让她能够重构 payBobFirstTx 的数据一起持久化保存。如果 Bob 离线没有响应,Alice 可能会用上这些数据。
    5. BuildRevokeCommitmentMsg() —— Alice 构建 revokeMessage,如果她尝试广播旧状态(状态 01,也就是她还有 0.10 BTC 的状态),她就会受到惩罚。
    6. Send(revokeMessage) —— Alice 发送 revokeMessage 给 Bob。她现在可以认为支付已经完成了,支付通道的状态已经更新成状态 02 了。
    1. Receive(revokeMessage) —— Bob 收到来自 Alice 的 revocationMessage。现在他可以认为支付已经完成了,支付通道的状态已经更新成状态 02 了。

     

    返回顶部】【关闭窗口 风险提示:本站分享转载的信息均来自互联网,且仅供阅读参考,不作为具体投资的依据,据此入市,风险自担。本站所有内容涉及到的“货币”字眼需谨慎研判,我们维护各国法币的合法地位,同时数字资产具有货币的某些属性,目前是不能替代任何国家的法定货币的,请谨慎理解投资并严格遵守各国法律法规!详见本站[免责声明]。】
    【读完这篇文章后,可否发表您的感受?】
    0
    0
    0
    0
    0
    0
    0
    0
    本文网址:
    安全联盟站长平台 互联网举办平台 公共信息安全网监 中国网安 赛门铁克安全响应中心