闪电网络交易合约之RSMC(Revocable Sequence Maturity Contract)序列到期可撤销合约

闪电网络交易合约之RSMC(Revocable Sequence Maturity Contract)序列到期可撤销合约

微支付通道解决了交易合并的问题,但是并没有解决撤销上个交易的问题。如果交易可以撤销,则资金可以双向流动。RSMC解决了通道中资金的单向流动问题。

RSMC的创建

爱丽丝和鲍伯是合作方,经常有资金往来,所以他们决定各拿0.5比特币放到通道中(可以理解为第三方信任存钱的地方),便于业务往来。 RSMC的交易结构见下图,左边是爱丽丝视角,右边是鲍伯视角。中间的Funding Tx为共同可见;C1a和RD1a为爱丽丝持有;C1b和RD1b为鲍伯持有。交易图中带有尖括号表示签名待填入。完整过程和图示见下文。

在这里插入图片描述

①双方各拿0.5BTC构建Funding Tx,输出为爱丽丝和鲍伯的2/2签名地址。此时Funding Tx未签名,更不广播

②爱丽丝构造commitment Tx;C1a和RD1a,并交给鲍伯签名。C1a的第一个输出为多重签名地址,地址为爱丽丝的另一把私钥爱丽丝2和鲍伯的2/2多重签名地址(这个地址稍后还会转移到新的“地址”)。第二个输出为鲍伯的0.5BTC

③RD1a为C1a第一个输出的花费交易,输出为给爱丽丝的0.5BTC。但是此时交易带有sequence,作用是组织当前交易进块,只有前向交易有1000个sequence确认时才能进块。

备注:可以看出,上面的第一个输出转移下来了,这样本来的总共1BTC被重新分配为两个0.5BTC。后面当进行新的交易的时候,思路就是对此进行修改。

④鲍伯构造Commitment Tx:C1b和RD1b,并交给爱丽丝签名。结构与C1a和RD1b是对称关系。

⑤鲍伯对C1a和RD1a进行签名,并将签名给爱丽丝;同理,爱丽丝对C1b和RD1b签名,完成后给鲍伯。此时,由于并未对Funding Tx进行签名,任何一方无法作恶,任何一方也不会有任何损失。

⑥双方均完成对Commitment Tx的签名并交换后,各自再对Funding Tx进行签名,并交换。此时,Funding Tx是完整的交易,广播即可。

以上过程就是RSMC创建的完整过程,注意,此处并没有涉及爱丽丝和鲍伯之间的交易,只是简单的创建了RSMC。

交易更新

交易更新见下图
在这里插入图片描述

爱丽丝和鲍勃各有0.5BTC的余额,此时爱丽丝从鲍勃处购买了一件商品价格为0.1BTC,那么余额应该变为爱丽丝0.4BTC,鲍勃0.6BTC。于是创建新的Commitment Tx,对于爱丽丝来说是C2a和RD2a,对于鲍伯来说是C2b和RD2b。见上图

此时两个状态均是有效的,那么最核心的问题来了,如何才能彻底废弃C1a和C1b呢?

RSMC采用了一个非常巧妙的方法。在C1a的第一个输出中,采用了爱丽丝2和鲍伯的多重签名,爱丽丝将爱丽丝2的私钥交给鲍伯,表示爱丽丝放弃C1a承认C2a。见下图
在这里插入图片描述

爱丽丝交出爱丽丝2的私钥给鲍伯,那么鲍伯就可以修改RD1a的输出给他自己形成新的交易BR1a。若爱丽丝破坏合约,在存在C2a的情况下依然广播出C1a,那么爱丽丝受到的惩罚就是失去他全部的币。爱丽丝交出爱丽丝2的私钥或者对交易BR1a进行签名,两者是等同的,都是对C1a的放弃。见下图
在这里插入图片描述

反之亦然,鲍伯交出鲍伯2的私钥给爱丽丝意味着放弃C1b,而仅能认可C2b

引入sequence的目的是阻止后续交易进块(RD1a),给出一个实施惩罚窗口期,当发现对方破坏合约时,可以有1000个块的确认时间去实施惩罚交易。即广播BR1a代替RD1a。若错过1000个块时间窗口,则无法再实施惩罚了(RD1a进块了)

交易关闭

关闭RSMC,直接按照最终的余额构造出一个Commitment Tx即可。例如,输出为爱丽丝0.1BTC,鲍伯0.9BTC,无需再设置多重签名,构造惩罚交易等。

以上内容根据《区块链从数字货币到信用社会》修改而来。根据对过程的理解修改了图的一部分。添加了一些备注。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值