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
57
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
プロアクティブ秘密分散法
azuchi
0
3
v3トランザクションリレー
azuchi
0
8
ランポート署名
azuchi
0
33
BitVM
azuchi
0
46
Replacement Cycling Attack
azuchi
0
44
Bitcoinのタイムロックの仕組み
azuchi
0
33
Inner Product Argument
azuchi
0
72
Codex32
azuchi
0
27
PSBT
azuchi
0
66
Other Decks in Technology
See All in Technology
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
1k
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
100
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Can We Measure Developer Productivity?
ewolff
1
150
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
310
複雑なState管理からの脱却
sansantech
PRO
1
150
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
320
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
310
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
43
13k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Why Our Code Smells
bkeepers
PRO
334
57k
KATA
mclloyd
29
14k
Ruby is Unlike a Banana
tanoku
97
11k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
How to Think Like a Performance Engineer
csswizardry
20
1.1k
What's new in Ruby 2.0
geeforr
343
31k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
How to train your dragon (web standard)
notwaldorf
88
5.7k
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/