您好!刚知道Zcash吗?
The Zcash network is young, but evolving quickly! Sign up and we'll be in touch with monthly highlights on ecosystem growth, network development and how to get started with Zcash!

语言

BIP199 哈希运算后的时间锁合约

Sean Bowe | Mar 29, 2017

Hash 后的时间锁合约 (HTLC) 是建造原子交换合约的常用和简单的方法。他允许你向第三方购买一些信息资料(比如,一份秘钥),一旦第三方不配合,你将有可能收到退款。

HTLC 是闪电网络中的一项基础工具,就像我们 去年 在 FC‘ 16 中展示的零知识或有偿付款(ZKCP)功能一样,它被用在 我们上个月宣布 的 XCAT 项目。近期的一项技术进步是 HTLC 的功能被囊括进了 Bitcoin Core 钱包。

本周,我们提交的 BIP 199 议案被合并进了主代码。我们在 Bitcoin Core 钱包的代码中还有一项正在进行的工作称为 参考实现。 HTLCs 当前可以在不做任何修改的情况下被用于比特币协议,因此这项提案和实现是代码标准化的最佳实践,它也同时提升了系统兼容性。

可以在这里查看 BIP 文字:https://github.com/bitcoin/bips/blob/master/bip-0199.mediawiki

HTLC 总览

HTLC 脚本看起来就像这样:

1
2
3
4
5
6
7
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 是一个哈希算法 (RIPEMD, SHA256),TIMEOUTOP 有两种选择,分别是OP_CHECKLOCKTIMEVERIFY 或 OP_CHECKSEQUENCEVERIFY。这个脚本允许 “买家”

查看跨链原子呼唤技术如何使用这一机制是非常简单的:

  1. Alice 随机取样 K,即密钥。她对其进行哈希运算,产生 X。
  2. Alice 创造一笔向 Bob 发送 1 个 BTC 的交易,以一天作为暂停时间,从而产生 X 的原像。
  3. Bob 等待 Alice 的交易发送至比特币区块链上,在确认之后提交一份 HTLC 交易,支付给 Alice 0.02 个 ZEC,目的是得到使用较短的半天等待时间得到 X 的原像。
  4. 只有 Bob 的交易会出现在 Zcash 区块链上, Alice可以得到她的 ZEC。脚本强制她去揭露 K。
  5. 但 Bob 得知 Alice 揭露了 K,他便可以获得属于他的 BTC。

暂停时间的添加是确保 Bob 将享有在 Alice 得到这笔转账之前申请退款的机会,Alice 可以通过等待来获得她的退款,在这时候通过揭露 K 的方式获得 Bob 的转账。

通过使用 HTLCs 标准化合约并将其融入比特币和 Zcash 将会有助于两个社区的发展,并发展一项令人兴奋的技术,去中心化交易所。

XCAT, bitcoin | 查看所有标签