博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从技术人视角看闪电网络之闪电路由
阅读量:6813 次
发布时间:2019-06-26

本文共 1357 字,大约阅读时间需要 4 分钟。

  在上一篇 里,我们知道微支付通道在一对一高频交割场景下的作用。

  如果打造这种保险箱(多签地址,合约),使这种保险箱必须在时限内传入一把钥匙R才能把币给解锁人,否则就返还给发布人,这样就变成HTLC(Hashed Time Lock Contract,哈希时间锁)

  如果Alice和Eric之间要转账,但手续费不允许,又没有通道直接转账,就需要在已有的通道间进行价值传输(如果Alice和Eric特意再开个通道,需要再锁一定的准备金,可能会遇到资金短缺的问题),这里需要Eric打一把钥匙(秘钥R),然后给Alice一把对应锁头(对应的hash值H(R)),Alice把这把锁头的模型(也是对应的hash值H(R))发给其他人,让其他人能识别是不是R钥匙,并把R钥匙从Eric那里拿过来;并且在通道上串联一条HTLC合约,在指定区块高度之内给了正确钥匙的人,能拿到币,其他通道也发布类似合约。下图的情况是,闪电网络之中,路由的选路机制将Alice->Bob->Carol->Diana->Eric这4条通道连起来。

  

  因为整个价值传输的过程可能要横跨BTC的出块周期,基础的区块高度不稳定,用在合约上的高度条件必须用相对高度差(相对现在的UTXO块高度)。

  因为整个网络传输可能会有延迟,通道的价值传输可能要耗费时间,每条通道的合约指定的时限(相对高度差),离收款方Eric越近,时限越紧(高度差越小);反之亦然。

  一般网络不会响应超过10分钟,高度差只需增减1就行。从Alice开始路由其他节点,每进过一条通道,时限缩小1个高度,传输的币也会少(要给结点路由手续费)。

  

  这种合约也要在闪电通道上执行(不然干脆在主链上转账更好,手续费比多个结点全打包一次更低),双方在通道上创建新交易,格式是一样的,只不过需要锁定本次通道费用到单独的HTLC合约里,其他的费用放到RSMC合约和钱包地址。

  HTLC合约要同时考虑断通道惩罚、违约惩罚和超时返回、H(R)锁头的解锁,故收发方的合约内容相似,但是内容可以说完全不同的:

  

  在交易还没到下一阶段时,由A单方断开通道,并且对方时限内没拿到R;或者由B单方断开通道,并且在时限内拿到R开锁;这两种情况下HTLC的币是属于主动断通道的地址的,需要延时收币;另外2种情况,就是HTLC的币属于对方的,要优先取到币。这就是HTRD1a和HERD1b交易的作用。

  无法理解的是为什么还有HED1a和HTD1b这俩交易。。。为什么会在同一个输出里面分叉出2个0.1BTC。。。

  后面考虑到违约惩罚就好理解了,从同一个输出里面分叉出的2个0.1BTC其实是同样的BTC,属于同个输出的2个执行分支,作用是防止对方在下一次交易时发布本次交易。

  

  这是上图交易作为历史交易被发布之后,所做的一系列违约惩罚行为。由于白皮书配图太大,只截关于HTLC合约的部分。

  值得注意的是和HTLC有关的钥匙编码是不同的,那是因为钥匙都是另打的,双方都要防止不同分支(有没在时限内用R开锁)下,发布了交易,结果对方都能用同种钥匙开锁。

转载于:https://www.cnblogs.com/dgutfly/p/10781174.html

你可能感兴趣的文章
CSS概念 - 可视化格式模型(二) 定位概述(普通流、绝对定位)
查看>>
TSF自定义候选词列表界面
查看>>
C++链接库
查看>>
HTML5中的全局属性
查看>>
exp命令ORACLCE10G导出ORACLE11G的数据1455错误
查看>>
'<>' operator is not allowed for source level below 1.7
查看>>
hdu 油菜花王国
查看>>
[CQOI2016]伪光滑数
查看>>
使用jquery.validate.js实现boostrap3的校验和验证
查看>>
八百呼电话录音系统--让通讯管理更安心
查看>>
02-线性结构1 两个有序链表序列的合并
查看>>
Python+numpy(3).md
查看>>
Java基础学习总结(85)——Java中四种线程安全的单例模式实现方式
查看>>
Mysql学习总结(9)——MySql视图原理讲解与使用大全
查看>>
DirectX 10 学习笔记7:环境光
查看>>
Segmentation fault (core dumped)
查看>>
openCV 二 图像处理
查看>>
Android 使用 ACTION_CALL 拨号
查看>>
求生之路刷服修改刷服器
查看>>
ADO.NET 基础
查看>>