闪电网络-哈希锁定

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27500493/article/details/84261448

1.哈希锁定

哈希锁定模式是一种较易实现的跨链方案,该方案链不会因跨链而受到51%攻击 ,哈希锁定想法最早来源于BitCoinTalk论坛中TierNolan的帖子[1]。在该方案中,提出了哈希锁定模式的实现思路。

但是在单纯哈希锁定的交易中,某一方将拥有绝对的主动权,控制何时将hash(x)中的x提供给对方,例如在币价波动较大时候,发起交易的该方可以选择最合适的比例时,提供x给对方,进行交易,这样会对交易的另外一方的利益造成损害。

有鉴于此,可以配合状态通道,如通过链下交易策略(off-chain),进行加快交易速度,从而避免以上问题。

1.1闪电网络

闪电网络(The Bitcoin Lightning Network:Scalable Off-Chain Instant Payments)是以上技术综合的典型应用。闪电网络的目的是安全的实现链下可扩展的小型即时交易,提升了比特币网络链外的交易处理能力。交易双方在区块链下的支付通道进行多次、高效、双向的交易, 双方若无直接点对点的通道,只要网络中存在连通这两方的通道即可。其中涉及到的小交易均无需上链,只需在开启和关闭通道时,同步相关数据于区块链即可。闪电网络本质上是使用了哈希时间锁合约来安全地进行0确认交易的一种机制,哈希时间锁合约在此之后被越来越多的用到跨链技术当中。

闪电网络无需信任交易的对方并且无需依赖第三方进行即时交易网络的构建。闪电网络起源于比特币的扩容问题,基于微支付通道演进而来,创造性的设计出了两种类型的交易合约:RSMC(Revocable Sequence Maturity Contract)到期序列可撤销合约以及HTLC (Hashed Timelock Contract )哈希时间锁合约。其中,哈希时间锁合约使用了哈希锁定(hashlock和时间锁定 (timelock)。

1.1.1多重签名地址

多重签名就是多个用户对同一个消息进行数字签名,可以简单理解为一个数字资产多个签名。“用N把钥匙生成一个多重签名的地址,需要其中M把钥匙才能花费这个地址上的比特币,N>=M,这就是M/N的多重签名”。签名标定的是数字资产所属及权限,多重签名预示着资产可由多人支配与管理。拿比特币来说,如果要动用一个地址的币,那么需要多个私钥才能进行。

闪电网络中采用了2-of-2 multisignature address,这意味着交易双方各持有一份私钥对应该笔交易的地址,这个地址只有交易双方共同签名验证才可以取出这些比特币。

1.1.2 RSMC(Revocable Sequence Maturity Contract)

RSMC(Revocable Sequence Maturity Contract)到期序列可撤销合约。RSMC首先,构造了双向支付通道;其次,使得其中一方中止交易后,另外一方无需等待锁定时间可以即时拿到钱;最后,保证了双方交易的可信性,双方无法违约。

      1. HTLC (Hashed Timelock Contract )

HTLC (Hashed Timelock Contract )哈希时间锁合约。其中,哈希时间锁合约使用了哈希锁定(hashlock)和时间锁定 (timelock)。HTLC中的哈希锁定(hashlock)保证了只有提供原始密码才能从合约中拿到锁定的资产,可以允许存在多个无需信任的中间人;时间锁定(timelock)则保证了在有一方存在违约的情况下资产能安全退还给原所有者。

HTLC的作用主要有两个,一个是确保在链下完成RSMC中小额金额的再分配,另一个是通过HTLC确保了交易双方可以无需单独开通交易通道,可以通过多个中间人组成交易通道中,进而完成安全可靠的交易。

      1. 跨链交易实现

基于之前提到的HTLC,构建跨链交易通道。

准备阶段:

(1)Alice生成一个随机值s,提供hash(s)给Bob;

(2)Alice和Bob建立一个比特币支付通道(该通道可以仅包含交易双方,或者包含其他中间人),约定构建一个HTLC:Bob只要提供s来匹配对应的哈希值就可以领走Alice的1BTC,如果发生超时,1BTC还给Alice;

(3)Bob和Alice建立一个莱特币支付通道,约定另外一个HTLC:Alice只要匹配成功对应的hash值,就可以领走Bob的100LTC,超时则会返还给Bob。

结算阶段:

(1)Alice提供自己生成的密码s,得到Bob的100LTC;

(2)被广播出来的密码s同样被用来保证Bob得到Alice的1BTC。

 

 

 

 

 

 

 

 

 

 

 

 

 

适用于跨链货币交换。

发送方与接收方,分别在两条链上持有账户。

双方分别在不同链上构造特殊的交易。

如果发送方使用接收方提供的资金,接收方就有能力使用发送方的资金。

如果双方不希望继续交易,双方的资金会在超时后退回。

 

 

 

参考文献

[1] https://bitcointalk.org/index.php?topic=193281.msg2224949#msg2224949

 

 

猜你喜欢

转载自blog.csdn.net/qq_27500493/article/details/84261448