Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Atomic Loans
Search
shigeyuki azuchi
July 18, 2019
Technology
0
58
Atomic Loans
GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2019/07/atomic-loans/
shigeyuki azuchi
July 18, 2019
Tweet
Share
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
Fiat-Shamir変換と注意点
azuchi
0
27
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
6
BIP-374 離散対数の等価性証明
azuchi
0
24
BIP-353 DNS Payment Instructions
azuchi
0
40
OP_CAT and Schnorr Trick
azuchi
0
35
Pay to Anchorと1P1Cリレー
azuchi
0
38
プロアクティブ秘密分散法
azuchi
0
54
v3トランザクションリレー
azuchi
0
57
ランポート署名
azuchi
0
100
Other Decks in Technology
See All in Technology
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.2k
LLM時代のパフォーマンスチューニング:MongoDB運用で試したコンテキスト活用の工夫
ishikawa_pro
0
170
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド
zozotech
PRO
0
570
Snowflake×dbtを用いたテレシーのデータ基盤のこれまでとこれから
sagara
0
120
Firestore → Spanner 移行 を成功させた段階的移行プロセス
athug
1
500
メルカリIBISの紹介
0gm
0
370
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
400
人工衛星のファームウェアをRustで書く理由
koba789
15
8.3k
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
120
AIエージェントで90秒の広告動画を制作!台本・音声・映像・編集をつなぐAWS最新アーキテクチャの実践
nasuvitz
3
360
OCI Oracle Database Services新機能アップデート(2025/06-2025/08)
oracle4engineer
PRO
0
180
20250913_JAWS_sysad_kobe
takuyay0ne
2
250
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
9.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Docker and Python
trallard
46
3.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
A designer walks into a library…
pauljervisheath
207
24k
The Pragmatic Product Professional
lauravandoore
36
6.9k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Bash Introduction
62gerente
615
210k
What's in a price? How to price your products and services
michaelherold
246
12k
Documentation Writing (for coders)
carmenintech
74
5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Transcript
Atomic Loans
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 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 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 Hashed Time-Locked Collateral Contract Bitcoin Network 融資元本の通貨 Network アリス
(借り手) ボブ (貸し手) ② 融資の担保をロック ① 融資の元本をロック ③ 担保と融資の条件に合意したら融資実行可能になる。 ④ 返済期限までに元金+利息を返済したら 担保はアリスに戻る。 ④ 債務不履行になった場合、 • 担保の精算の両者が合意する場合は入札を行う。 • 担保の精算に合意しない場合、担保の一定割合を差し押 さえ、精算する。 入札者 bid
5 融資プロセス Bitcoin Network 融資元本の通貨 Network ① 融資情報を送信 融資要求 •
金額 • 融資開設期間 • 精算期間 • 差し押さえ期間 A1 A2 借り手がローンを引き出した際に 明らかになるシークレット 入札者が担保資金を引き出す際に 明らかになるシークレット B1 B2 借り手の担保のロックを受け入れ、借り手が ローンを引き出す際に明らかになるシークレット 借り手の担保のロックを拒否 or 借り手による元本+利息の返済を受け入れる 際に使われるシークレット それぞれシークレットを作成し、 そのハッシュを交換する。 B3 入札者が担保資金を引き出す際に 明らかになるシークレット
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 融資プロセス Bitcoin Network 融資元本の通貨 Network ③ 融資金がロックされた確認し、 担保となるBitcoinを
HTLCにロックする。 ④ ロックされた担保額、内容を確認し、 問題なければシークレット B1をアリスに明かす。 • シークレットB2 & アリスの鍵の署名 • 以下のいずれかアンロック可 ◦ ローン期間後、A2およびB3の情報 + アリスとボブのマルチシグ ◦ 以下のいずれかでアンロック可 ▪ 入札期間後、A1とボブの鍵の署名 ▪ 差し押さえ期間後、アリスの鍵の署名 B1 Seizable Collateral Contract Refundable Collateral Contract A1 A2 B1 B2 B2はボブが返済を受け入れる際に明らかになるので、 返済が無事終わればアリスに戻り、 債務不履行の場合は、精算するか、精算に合意しない場合は ボブが差し押さえるか、差し押さえ期間後にアリスが回収。 B3
8 融資プロセス Bitcoin Network 融資元本の通貨 Network ⑤ 両者条件に合意し、 B1を入手したのでA1を 使ってボブがHTLCにロックした融資を引き出す。
A1 A2 B1 B2 B1 • シークレットA1, B1が分かれば、アリスは融資の資金を 入手できる。 • 有効期間経過したらボブはシークレットB2を公開して資 金を取り戻す。 Hashed Time-Locked Principal Contract A1 1つめの条件を使って融資の元金を引出し B3
9 返済プロセス Bitcoin Network 融資元本の通貨 Network ① 元金+利息を融資返済 HTLCに送金する。 A1
A2 B1 B2 B1 • シークレットB2が分かれば、ボブは融資の 元金+利息を受け取ることができる。 • 有効期間経過したらアリスは元金+利息を 取り戻す。 融資返済HTLC A1 ② B2を使って、返済を受け入れる。 B2 B3
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 債務不履行の場合 • シークレットB2 & アリスの鍵の署名 • 以下のいずれかでアンロック可 ◦ ローン期間後、A2およびB3の情報、
アリスとボブのマルチシグ ◦ 精算期間後、アリスの鍵の署名 Refundable Collateral Contract • シークレットB2 & アリスの鍵の署名 • 以下のいずれかアンロック可 ◦ ローン期間後、A2およびB3の情報 + アリスとボブのマルチシグ ◦ 以下のいずれかでアンロック可 ▪ 入札期間後、A1とボブの鍵の署名 ▪ 差し押さえ期間後、アリスの鍵の署名 Seizable Collateral Contract 1. アリスとボブ両者が精算に合意すると、担保資金を全て入札にかける。 2. 精算に合意しない場合 a. Refundable Collateral Contract分はアリスに戻り b. Seizable Collateral Contract分はボブが差し押さえ
12 Atomic Loansの特徴 • Atomic Loansは、ブローカー抜きに借り手と貸し手の間で担保を 設定した融資契約を結ぶプロトコル。 • 借り手と貸し手の間で、複数のシークレットとそのハッシュおよび、
その公開タイミングをタイムロックで制御するようHTLCを拡張。 • BitcoinとEthereumのKovan testnetを使用したクローズドアルファが 公開中(https://atomicloans.io/) https://atomicloans.io/blog/atomic-loans-testnet-alpha-is-live/