[译] bip-0199:hash 时间锁定合约交易

2018阿里云全部产品优惠券(好东东,强烈推荐)
领取地址 https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=82lei0yp

推荐:DHT(Distributed Hash Table): 分布式哈希表

[DHT的全称是Distributed Hash Table,即分布式哈希表技术,是一种分布式存储方法。这种网络不需要中心节点服务器,而是每个客户端负责一个小范围的路由,并负责存储一小部

摘要

该BIP主要描述了广义的 off-chain 合约谈判的脚本。

总结

hash 时间锁定合约(HTLC)是一种脚本,允许指定方(“卖方”)通过公开 hash 的原始信息来花费资金。 在退款情况下,它还允许第二方(“买方”)在超时达到后花费这笔资金。

该脚本采用以下形式:

OP_IF
     [HASHOP] <digest> OP_EQUALVERIFY OP_DUP OP_HASH160 <seller pubkey hash>            
OP_ELSE
     <num> [TIMEOUTOP] OP_DROP OP_DUP OP_HASH160 <buyer pubkey hash>
OP_ENDIF
OP_EQUALVERIFY
OP_CHECKSIG
  • [HASHOP] 代表 OP_SHA256 或 OP_HASH160.

  • [TIMEOUTOP] 代表 OP_CHECKSEQUENCEVERIFY 或 OP_CHECKLOCKTIMEVERIFY.

相互作用

  • Victor(“买方”)和 Peggy(“卖方”)交换公共 hash 并在超时阈值前达成共识。 Peggy(“卖方”)提供了一个 hash 摘要, 双方现在都可以为HTLC构建脚本和P2SH地址。

  • Victor(“买方”)将资金发送到P2SH地址。

  • 或者:

    • Peggy(“卖方”)花费了这笔资金,这样做揭示了 Victor(“买方”)在交易中的原始信息, 或者

      推荐:白话经典算法系列之十 一道有趣的GOOGLE面试题

      [微博http://weibo.com/MoreWindows已开通,欢迎关注。最近在微博上看到一道有趣的GOOGLE面试题,见下图:文字版:一个大小为n的数组,里面的数都属于范围[0, n-1],有不确

      • Victor(“买方”)在超时时间到达后恢复资金

Victor(“买方”)希望减少暂停时间,以减少在    Peggy(“卖方”)不透露原始信息的情况下资金投入的时间。 Peggy(“卖方”)对希望尽快到达超时时间,因为在没有达到超时时间的时候,你是不能花费这笔资金的,或者更糟糕的是,她的交易花费的资金在Victor(“买方”)之前没有进入区块链,但确实向Victor(“买方”)揭示了它的原始信息。

动机

在许多 off-chain 协议中,揭露秘密被用作解决机制的一部分。 在另一些情况下,秘密本身很有价值。 由于能够从不合作的交易对手那里收回资金,HTLC 交易是一种在区块链上交换金钱秘密的安全和便宜的方法,并且秘密拥有者必须在发生这种退款之前收到资金。

闪电网络

在闪电网络中,HTLC脚本用于在支付渠道之间执行原子交换。

Alice 构造 K 并通过 hash 产生 L,她将 HTLC 支付发送给 Bob 以获得 L 的原始信息.Bob 将 HTLC 支付发送给 Carol 以获得相同的原始信息和金额。 只有当 Alice 公开原始信息, K 才可能进行相应的价值交换,并且由于每一步都泄露了秘密,所有各方都得到补偿。 如果在任何时候有些参与方不合作,这个过程可以通过退款条件中止。

零知识应急支付

存在各种实际的零知识验证系统,可用于保证 hash preimage 派生有价值的信息。 举个例子,零知识证明可以用来证明一个 hash preimage 作为一个加密的数独谜题解决方案的解密hash。

HTLC交易可用于无风险地交换这些解密 hash 以获得金钱,并且它们不需要大量的、昂贵的验证交易。

实现

https://github.com/bitcoin/bitcoin/pull/7601

版权

该文档是双重许可的BSD 3条款和Creative Commons CC0 1.0 Universal。

本文由 copernicus 团队 冉小龙 翻译,转载无需授权。

推荐:C语言实现的数据结构之------哈希表

[1 哈希表原理这里不讲高深理论,只说直观感受。哈希表的目的就是为了根据数据的部分内容(关键字),直接计算出存放完整数据的内存地址。试想一下,如果从链表中根据关键

相关推荐