Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Atomic Loans

Atomic Loans

GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2019/07/atomic-loans/

shigeyuki azuchi

July 18, 2019
Tweet

More Decks by shigeyuki azuchi

Other Decks in Technology

Transcript

  1. 1 Atomic Loans ブローカーのような第三者を抜きに
 借り手と貸し手の間で担保付き融資契約を
 結ぶためのプロトコル。
 
 BIP-197 
 Hashed

    Time-Locked Collateral Contract とし ても定義。
 https://github.com/bitcoin/bips/blob/master/bip-0197.mediawiki
 https://arxiv.org/pdf/1901.05117.pdf
  2. 2 HTLCベースのAtomic Swap HTLC(Hashed Time-Locked Contracts)はハッシュのプリイメージ
 (シークレット)とコインを交換するタイムロック付きのコントラクト
 
 
 


    
 
 
 
 アリスはLitecoin上でシークレットSを公開してLTCを入手し、
 ボブは公開されたSを使ってBitcoin上でBTCを入手する。
 アリスはBitcoinを以下のアンロック条件のスクリプトに送る。
 • H(S)のプリイメージ=シークレットSが
 分かればボブはBTCを入手できる。
 • 10日経過したらアリスはBTCを入手できる。
 Secret S H(S) ボブはLTCを以下のアンロック条件のコントラクトに送る。
 • H(S)のプリイメージ=シークレットSが
 分かればアリスはLTCを入手できる。
 • 5日経過したらボブはLTCを入手できる。
 BTC/LTCを交換

  3. 3 HTLCベースのAtomic Swap • Bitcoinのスクリプト(BIP-199)
 
 
 
 
 


    
 • ボブが償還する際の scriptSig
 
 
 • アリスが償還する際の scriptSig
 
 
 ※実際は、P2SHになるのでredeem scriptが追加される。 
 OP_IF
 OP_HASH160 <H(S)> OP_EQUALVERIFY OP_DUP OP_HASH160 <ボブの公開鍵のハッシュ>
 OP_ELSE
 <ロック期間> OP_CHECKLOCKTIMEVERIFY OP_DROP OP_HASH160 <アリスの公開鍵のハッシュ>
 OP_ENDIF
 OP_EQUALVERIFY
 OP_CHECKSIG
 <ボブの鍵で生成した署名> <ボブの公開鍵> <s> OP_TRUE
 <アリスの鍵で生成した署名> <アリスの公開鍵> OP_FALSE
 scriptPubKey
 scriptSig
 scriptSig

  4. 4 Hashed Time-Locked Collateral Contract Bitcoin Network 融資元本の通貨 Network アリス

    (借り手) ボブ (貸し手) ② 融資の担保をロック 
 ① 融資の元本をロック 
 ③ 担保と融資の条件に合意したら融資実行可能になる。 
 ④ 返済期限までに元金+利息を返済したら 
  担保はアリスに戻る。 
 ④ 債務不履行になった場合、 
 • 担保の精算の両者が合意する場合は入札を行う。 
 • 担保の精算に合意しない場合、担保の一定割合を差し押 さえ、精算する。
 入札者 bid
  5. 5 融資プロセス Bitcoin Network 融資元本の通貨 Network ① 融資情報を送信
 融資要求 •

    金額 • 融資開設期間 • 精算期間 • 差し押さえ期間 A1 A2 借り手がローンを引き出した際に
 明らかになるシークレット
 入札者が担保資金を引き出す際に
 明らかになるシークレット
 B1 B2 借り手の担保のロックを受け入れ、借り手が
 ローンを引き出す際に明らかになるシークレット
 借り手の担保のロックを拒否 or 
 借り手による元本+利息の返済を受け入れる
 際に使われるシークレット
 それぞれシークレットを作成し、
 そのハッシュを交換する。
 B3 入札者が担保資金を引き出す際に
 明らかになるシークレット

  6. 6 融資プロセス Bitcoin Network 融資元本の通貨 Network ② 融資額をHTLCにロック
 • シークレットA1,

    B1が分かれば、アリスは融資の資金を 入手できる。
 • 有効期間経過したらボブはシークレットB2を公開して資 金を取り戻す。
 Hashed Time-Locked Principal Contract ③ 融資金がロックされた確認し、 
  担保となるBitcoinを HTLCにロックする。
 B1 B2 A1 A2 • シークレットB2 & アリスの鍵の署名
 • 以下のいずれかでアンロック可
 ◦ ローン期間後、A2およびB3の情報、
 アリスとボブのマルチシグ
 ◦ 精算期間後、アリスの鍵の署名
 Refundable Collateral Contract B2はボブが返済を受け入れる際に明らかになるので、 返済が無事終わればアリスに戻り、 債務不履行の場合は、精算するか、精算に合意しない場合は アリスに戻ってくる資金。 B3
  7. 7 融資プロセス Bitcoin Network 融資元本の通貨 Network ③ 融資金がロックされた確認し、 
  担保となるBitcoinを

    HTLCにロックする。
 ④ ロックされた担保額、内容を確認し、 
 問題なければシークレット B1をアリスに明かす。
 • シークレットB2 & アリスの鍵の署名
 • 以下のいずれかアンロック可
 ◦ ローン期間後、A2およびB3の情報 + 
 アリスとボブのマルチシグ
 ◦ 以下のいずれかでアンロック可
 ▪ 入札期間後、A1とボブの鍵の署名
 ▪ 差し押さえ期間後、アリスの鍵の署名
 B1 Seizable Collateral Contract Refundable Collateral Contract A1 A2 B1 B2 B2はボブが返済を受け入れる際に明らかになるので、 返済が無事終わればアリスに戻り、 債務不履行の場合は、精算するか、精算に合意しない場合は ボブが差し押さえるか、差し押さえ期間後にアリスが回収。 B3
  8. 8 融資プロセス Bitcoin Network 融資元本の通貨 Network ⑤ 両者条件に合意し、 B1を入手したのでA1を
 使ってボブがHTLCにロックした融資を引き出す。

    
 A1 A2 B1 B2 B1 • シークレットA1, B1が分かれば、アリスは融資の資金を 入手できる。
 • 有効期間経過したらボブはシークレットB2を公開して資 金を取り戻す。
 Hashed Time-Locked Principal Contract A1 1つめの条件を使って融資の元金を引出し B3
  9. 9 返済プロセス Bitcoin Network 融資元本の通貨 Network ① 元金+利息を融資返済 HTLCに送金する。
 A1

    A2 B1 B2 B1 • シークレットB2が分かれば、ボブは融資の
 元金+利息を受け取ることができる。
 • 有効期間経過したらアリスは元金+利息を
 取り戻す。
 融資返済HTLC A1 ② B2を使って、返済を受け入れる。 
 B2 B3
  10. 10 返済プロセス Bitcoin Network 融資元本の通貨 Network ③ 返済によりB2を入手したので、ロックされて いた担保を取り戻す。 


    A1 A2 B1 B2 B1 A1 B2 • シークレットB2 & アリスの鍵の署名
 • 以下のいずれかでアンロック可
 ◦ ローン期間後、A2およびB3の情報、
 アリスとボブのマルチシグ
 ◦ 精算期間後、アリスの鍵の署名
 Refundable Collateral Contract • シークレットB2 & アリスの鍵の署名
 • 以下のいずれかアンロック可
 ◦ ローン期間後、A2およびB3の情報 + 
 アリスとボブのマルチシグ
 ◦ 以下のいずれかでアンロック可
 ▪ 入札期間後、A1とボブの鍵の署名
 ▪ 差し押さえ期間後、アリスの鍵の署名
 Seizable Collateral Contract B3
  11. 11 債務不履行の場合 • シークレットB2 & アリスの鍵の署名
 • 以下のいずれかでアンロック可
 ◦ ローン期間後、A2およびB3の情報、


    アリスとボブのマルチシグ
 ◦ 精算期間後、アリスの鍵の署名
 Refundable Collateral Contract • シークレットB2 & アリスの鍵の署名
 • 以下のいずれかアンロック可
 ◦ ローン期間後、A2およびB3の情報 + 
 アリスとボブのマルチシグ
 ◦ 以下のいずれかでアンロック可
 ▪ 入札期間後、A1とボブの鍵の署名
 ▪ 差し押さえ期間後、アリスの鍵の署名
 Seizable Collateral Contract 1. アリスとボブ両者が精算に合意すると、担保資金を全て入札にかける。
 2. 精算に合意しない場合
 a. Refundable Collateral Contract分はアリスに戻り
 b. Seizable Collateral Contract分はボブが差し押さえ

  12. 12 Atomic Loansの特徴 • Atomic Loansは、ブローカー抜きに借り手と貸し手の間で担保を
 設定した融資契約を結ぶプロトコル。
 
 • 借り手と貸し手の間で、複数のシークレットとそのハッシュおよび、


    その公開タイミングをタイムロックで制御するようHTLCを拡張。
 
 • BitcoinとEthereumのKovan testnetを使用したクローズドアルファが
 公開中(https://atomicloans.io/)
 https://atomicloans.io/blog/atomic-loans-testnet-alpha-is-live/