Greetings! New to 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

ハッシュタイムロックコントラクト(HTLC)は、原子的交換用にプロトコルを組み立てるための著名でシンプルな技術です。これにより、第三者が協同しない場合は払い戻すという条件で、第三者に情報(通常はキー)を提供することができます。

HTLCsは、昨年 のFC'16、および 先月ご案内した OXCATプロジェクトでご紹介したようなライトニングネットワーク、ゼロ知識の偶発的支払い(ZKCP)における基本ツールです。最初のステップは、ビットコインコアウォレットにおいて基本的なHTLC機能を含めることです。

今週、提出されたBIP199のドラフトがまとまりました。また、ビットコインのコア・ウォレットにおける リファレンス実装 についても作業を行っています。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は1日のタイムアウトを設定し、Bobに1 BTC支払う取引を行い、Xのプリイメージを作ります。
  3. BobはAliceの取引がビットコインブロックチェーンに表れるのを待ち、HTLC取引を提示し、半日の短いタイムアウトでAliceにプリイメージXの代金 0.02 ZECを支払う取引を行います。
  4. Bobの取引がZcashブロックチェーンに表れると、AliceはZECを入手できます。スクリプトはAliceにKの公開を強制します。
  5. BobがAliceのKを確認したら、BobはBTCを入手できます。

タイムアウトが選択されると、BobはいつでもAliceより先に払い戻し分を入手する機会を得ます。そうしなかった場合、Aliceは払い戻し分を手に入れるまで待ち、Kを開示することでBobのコインについて所有権を主張できます。

HTLCsのように標準化され、ビットコインとZcashに含まれているコントラクトを持つことは、どちらのコミュニティにとっても、脱集権化された交換のように、ワクワクするテクノロジーを組み立てるのに役立ちます。

XCAT, bitcoin | 全てのタグを見る