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
BIP-374 離散対数の等価性証明
azuchi
0
13
BIP-353 DNS Payment Instructions
azuchi
0
31
OP_CAT and Schnorr Trick
azuchi
0
24
Pay to Anchorと1P1Cリレー
azuchi
0
27
プロアクティブ秘密分散法
azuchi
0
42
v3トランザクションリレー
azuchi
0
41
ランポート署名
azuchi
0
82
BitVM
azuchi
0
82
Replacement Cycling Attack
azuchi
0
75
Other Decks in Technology
See All in Technology
成立するElixirの再束縛(再代入)可という選択
kubell_hr
0
960
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
2
260
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
140
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
3
330
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
2
270
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
190
生成AIでwebアプリケーションを作ってみた
tajimon
2
140
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
110
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
220
Amazon ECS & AWS Fargate 運用アーキテクチャ2025 / Amazon ECS and AWS Fargate Ops Architecture 2025
iselegant
16
4.9k
Observability в PHP без боли. Олег Мифле, тимлид Altenar
lamodatech
0
310
エンジニア向け技術スタック情報
kauche
1
110
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
42
7.5k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
The Cult of Friendly URLs
andyhume
79
6.4k
Facilitating Awesome Meetings
lara
54
6.4k
Site-Speed That Sticks
csswizardry
10
650
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Music & Morning Musume
bryan
46
6.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
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/