SlideShare a Scribd company logo
新しいオフチェーンコントラクト eltoo と
SIGHASH_NOINPUT
1
Off-chain Scaling
Payment Channel
資金をブロックチェーン上に固定し、固定した金額を上限として、トラストレスに
オフチェーンで決済を繰り返すためのプロトコル。
Block Block Block Block Block Block
Funding Tx(on-chain)
Inputs
アリスの1BTC
ボブの1BTC
Outputs
アリスとボブのマルチシグに 2 BTC
Commitment Tx(off-chain)
Outputs
アリスに1.1BTC
ボブに0.9 BTC
Inputs
アリスとボブのマルチシグ 2 BTC
オンチェーン上にマルチシグで
ロックされたコインをインプットにし、
アウトプットには決済時のそれぞれの
残高を反映したトランザクションを作っ
て決済する。
新しい決済をする場合はアウトプット
の残高を更新した同様のトランザク
ションを作る。
2
Payment Channelのセットアップ
① アリスとボブはPayment Channelをセットアップするため
チャネル決済に使用するコインをブロックチェーン上に
ロックするFunding Txを作成する。
Funding Tx
Inputs
アリスの1BTC
ボブの1BTC
Outputs
アリスとボブのマルチシグに 2 BTC
この時点で、Funding Txは未署名で
当然ブロードキャストはできない。
3
Payment Channelのセットアップ
② アリスとボブはそれぞれ秘密の値(Secret)とその値のハッシュを生成する。
 このうちハッシュだけ相手に伝える。
Secret A1 H(A1) Secret B1H(B1)
交換
アリスが作るCommitment Tx1
Outputs
アリスの鍵で入手可能な 1BTC
残り1 BTCは以下のいずれかで入手可能
●このTxがブロックに入って 1,000ブロック経過した
らボブの鍵で入手可能。
●Secret B1が分かればアリスの鍵で入手可能。
③ アリスとボブは相手から受け取ったハッシュを使ってFunding Txの
アウトプットをインプットにしたCommitment Txをそれぞれ作り、自分の署名を
付与して相手に送る。
ボブが作るCommitment Tx1
Outputs
ボブの鍵で入手可能な 1BTC
残り1 BTCは以下のいずれかで入手可能
●このTxがブロックに入って 1,000ブロック経過し
たらアリスの鍵で入手可能。
●Secret A1が分かればボブの鍵で入手可能。
交換
4
Payment Channelのセットアップ
アリスが作ったCommitment Tx1
Outputs
アリスの鍵で入手可能な 1BTC
残り1 BTCは以下のいずれかで入手可能
●このTxがブロックに入って 1,000ブロック経過した
らボブの鍵で入手可能。
●Secret B1が分かればアリスの鍵で入手可能。
ボブが作ったCommitment Tx1
Outputs
ボブの鍵で入手可能な 1BTC
残り1 BTCは以下のいずれかで入手可能
●このTxがブロックに入って 1,000ブロック経過し
たらアリスの鍵で入手可能。
●Secret A1が分かればボブの鍵で入手可能。
この時点でお互いに相手が作成し相手の署名が付与されたCommitment Txを持って
いる状態になる。このTxに自分の署名を加えればTxは完成する。
このTxがブロードキャストされると、ブロードキャストしたユーザーは1,000ブロック待てば
コインを入手でき、相手はすぐにコインを入手できる。
④ 最初のCommitment Txの交換が終わったら①で作成したFunding Txに署名して
ネットワークにブロードキャストしてチャネルをオープンする。
相手の署名済みのTxを両者
持つので、これでFunding Txを
ブロードキャストした後に、
相手がいなくなってマルチシグに
ロックした資金が取り戻せないと
いった事態はなくなる。
5
オフチェーン決済
オフチェーン決済は新しいシークレットの作成・交換し、決済の結果で残高を
更新したCommitment Txを作り自分の署名を加え相手に送る。
アリスが作るCommitment Tx2
Outputs
アリスの鍵で入手可能な 1.1BTC
残り0.9BTCは以下のいずれかで入手可能
●このTxがブロックに入って 1,000ブロック経過した
らボブの鍵で入手可能。
●Secret B2が分かればアリスの鍵で入手可能。
Secret A2 H(A2) Secret B2H(B2)
交換
ボブが作るCommitment Tx2
Outputs
ボブの鍵で入手可能な 0.9BTC
残り1.1 BTCは以下のいずれかで入手可能
●このTxがブロックに入って 1,000ブロック経過し
たらアリスの鍵で入手可能。
●Secret A2が分かればボブの鍵で入手可能。
交換
Secret A1 Secret B1
交換
セットアップ時と違うのは前のCommitment Txを作る際に
生成した秘密の値を相手に明らかにする点
6
不正を働いた場合のペナルティ
アリスが作ったCommitment Tx1
Outputs
アリスの鍵で入手可能な 1BTC
残り1 BTCは以下のいずれかで入手可能
●このTxがブロックに入って 1,000ブロック経過した
らボブの鍵で入手可能。
●Secret B1が分かればアリスの鍵で入手可能。
ボブが自分に有利な古いCommitment Tx1をブロードキャストするとどうなるか?
ボブは、Commitment Tx1がブロックに格納されて1,000ブロック経過するまで1BTCは入
手できない。ボブが1000ブロック待っている間にアリスは、もともとアリス宛の1BTCは普通
に入手でき、さらにSecret B2をこの段階では知っているので残りの1BTCも入手することが
できる。つまり裏切って古いTxをブロードキャストすると相手に全資金が渡る。
※ 但し、古いCommitment Txがブロードキャストされていないかチェーンの監視が必要。
アリスが作ったCommitment Tx2
Outputs
アリスの鍵で入手可能な 1.1BTC
残り0.9 BTCは以下のいずれかで入手可能
●このTxがブロックに入って 1,000ブロック経過した
らボブの鍵で入手可能。
●Secret B2が分かればアリスの鍵で入手可能。
Commitment Tx2のオフチェーン決
済が終わったとして、この段階でボ
ブはCommitment Tx1をブロード
キャストした方が自分の残高が多く
特をする。
7
eltoo: A Simple Layer2 Protocol for Bitcoin
2018年4月にChristian Decker、Rusty
Russell、Olaoluwa Osuntokunらによって
発表された新しいオフチェーンプロトコル。
https://blockstream.com/eltoo.pdf
古い状態をブロードキャストした際の
振る舞いが変わる
● 不正を働いたユーザーの資金の没収
● 最新の残高の反映
8
eltoo: Payment Channelのセットアップ
セトルメント用公開鍵As
アップデート用公開鍵Au
セトルメント用公開鍵Bs
アップデート用公開鍵Bu
① チャネルを開く前に各参加者はアップデート用とセトルメント用の
 2つの鍵ペアを生成し、各公開鍵を相手と交換する。
● アップデート鍵ペア(Au, Bu)
チャネルの状態を更新する(新しい支払いをする)際に使用する鍵
● セトルメント鍵ペア(As, Bs)
チャネルを最終残高で閉じる際に使用する鍵
※ eltooでは、チャネルの最新状態を表したTxさえ保持しておけば、古い状態
がブロードキャストされても、そのトランザクションを最新状態を表すTxに置換す
ることができる。
9
eltoo: Payment Channelのセットアップ
② アリスの資金を2-of-2のマルチシグにロックする Funding Txを作成。
Funding Tx
Inputs
アリスの5 BTC
Outputs
アリスとボブのマルチシグに 5 BTC
Trigger Tx
Inputs
Funding TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As1とBs1のマルチシグで入手可能
● AuとBuのマルチシグで入手可能
Settlement Tx1
Inputs
Trigger TxのUTXO
Outputs
アリスのアドレスに 5 BTC
③ Funding TxのUTXOをインプットに
 したTrigger Txを作成。
④ Trigger TxのUTXOをインプットとしたSettlement Tx1を作成。
セットアップフェーズでは払い戻し用として機能し、アウトプットは
5 BTCがそのままアリスのアドレスへ。
※Settlement Tx1はTrigger Txがブロックに格納されてから1000ブロック後にブロードキャスト可能。
sig
Bu
sig
Bs1
LNのコントラクトはCommitment Tx
1つでお互いの残高を管理していたが、
eltooではTrigger Tx(Update Tx)と
Settlement Txの2つでチャネルの
残高を管理する
sig
Au
⑤ アリスはFunding Txに
 署名しブロードキャストする。
sig
Alice
sig
As1
10
eltoo: オフチェーン決済 1回目
① アリス→ボブに1 BTC支払うため、Trigger Txをインプットとして新しい Update Tx2を作成。
Update Tx2
Inputs
Trigger TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As2とBs2のマルチシグで入手可能
● このTxを使用すTxのnLocktimeが3以上で、
 AuとBuのマルチシグで入手可能
Settlement Tx2
Inputs
Update Tx2のUTXO
Outputs
アリスのアドレスに 4 BTC
ボブのアドレスに 1 BTC
※ Update TxのnLocktimeには状態を表すState Numberをセットする。
アウトプットの条件の1つには、その<State Number + 1> がOP_CLTVの引数としてセットされる=
このUTXOを使用するTxのnLocktimeは3以上であることが条件。
sig
Bs2
Trigger Tx
Inputs
Funding TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As1とBs1のマルチシグで入手可能
● AuとBuのマルチシグで入手可能
sig
Bu
nLocktime
State Number: 2
sig
Au
sig
Bu
② Update Tx2のUTXOを
インプットとして、アウトプットに
残高を反映したSettlement Tx
を作成する。
sig
Au
sig
As2
※ eltooではお互いに同じTx
(Update TxとSettlement Tx)を管理する
11
eltoo: オフチェーン決済 2回目
① ボブ→アリスに0.5 BTC支払うため、Trigger Txをインプットとして新しい Update Tx3を作成。
Update Tx3
Inputs
Trigger TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As3とBs3のマルチシグで入手可能
● このTxを使用すTxのnLocktimeが4以上で、
 AuとBuのマルチシグで入手可能
Settlement Tx3
Inputs
Update Tx3のUTXO
Outputs
アリスのアドレスに 4.5 BTC
ボブのアドレスに 0.5 BTC
sig
Bs3
Trigger Tx
Inputs
Funding TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As1とBs1のマルチシグで入手可能
● AuとBuのマルチシグで入手可能
sig
Bu
nLocktime
State Number: 3
sig
Au
sig
Bu
② Update Tx3のUTXOを
インプットとして、アウトプットに
残高を反映したSettlement Tx
を作成する。
sig
Au
sig
As3
12
eltoo: 古い状態のブロードキャスト ボブの裏切り
Update Tx3
Inputs
Trigger TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As3とBs3のマルチシグで入手可能
● このTxを使用すTxのnLocktimeが4以上で、
 AuとBuのマルチシグで入手可能
Settlement Tx3
Outputs
アリスのアドレスに 4.5 BTC
ボブのアドレスに 0.5 BTC
nLocktime
State Number: 3
sig
Bu
sig
Au
Update Tx2
Inputs
Trigger TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As2とBs2のマルチシグで入手可能
● このTxを使用すTxのnLocktimeが3以上で、
 AuとBuのマルチシグで入手可能
nLocktime
State Number: 2
sig
Bu
sig
Au
Settlement Tx2
Outputs
アリスのアドレスに 4 BTC
ボブのアドレスに 1 BTC
ボブにとってはSettlement Tx2の
方が取り分が多いので、Update
Tx2をブロードキャストする
その後Settlement Tx2をブロード
キャストする必要があるが、これに
は
Update Tx2がブロックに入ってか
ら1,000ブロック待つ必要がある。
sig
Bs2
sig
As2
sig
Bs3
sig
As3
13
eltoo: 古い状態のブロードキャスト アリスの対応
Update Tx3
Inputs
Trigger TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As3とBs3のマルチシグで入手可能
● このTxを使用すTxのnLocktimeが4以上で、
 AuとBuのマルチシグで入手可能
nLocktime
State Number: 3
sig
Bu
sig
Au
Update Tx2
Inputs
Trigger TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As2とBs2のマルチシグで入手可能
● このTxを使用すTxのnLocktimeが3以上で、
 AuとBuのマルチシグで入手可能
nLocktime
State Number: 2
sig
Bu
sig
Au
ボブが1000ブロック待っている間に、
もう1つの条件を使ってコインを取り戻
す
Update Tx3のインプットの参照先を
Trigger TxのUTXOからUpdate Tx2の
UTXOに書き換え、ブロードキャストす
る。
Update Tx3がブロックに格納されるとアリスはその後、 Settlement Tx3を
ブロードキャストすることで、最新状態でチャネルをクローズできる。
14
eltooを可能にするSIGHASH_NOINPUT
通常、Txの署名はトランザクションデータが署名対象のメッセージダイジェストとなるため、トランザクションデータ
が一部でも変更されるとその署名は無効になる。そのため現時点での Bitcoinの仕様では実現不可能。
Txの署名対象データ【BIP-143】
nVersion
hashPrevouts(全入力のOutpointから生成したハッシュ)
hashSequence(全入力のsequenceから生成したハッシュ)
outpoint(署名対象の入力のOutpoint)
scriptCode
value(署名対象の入力が持つコインの量)
nSequence(署名対象の入力のsequence)
hashOutputs(全出力から生成したハッシュ)
nLocktime
sighash type
インプットが参照する前のトランザクションのアウトプットの
情報が全て空になる。
署名はトランザクションの OutPointにコミットしなくなり、
署名後にインプットが参照する OutPointの変更が可能にな
る。
空(0x00)
署名済みTx
Input
Output
TxA
Input
Output
TxB
Input
Output
変更可
※ リバインド可能なのは同じwitness  
要素でアンロック可能なUTXOのみ
SIGHASH_NOINPUT
15
eltooのポイント: State Numberの導入
Update Tx3
Inputs
Trigger TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As3とBs3のマルチシグで入手可能
● このTxを使用すTxのnLocktimeが4以上で、
 AuとBuのマルチシグで入手可能
nLocktime
State Number: 3
sig
Bu
sig
Au
Update Tx2
Inputs
Trigger TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As2とBs2のマルチシグで入手可能
● このTxを使用すTxのnLocktimeが3以上で、
 AuとBuのマルチシグで入手可能
nLocktime
State Number: 2
sig
Bu
sig
Au
Update Tx3がブロードキャストされた後に、 Update Tx2のインプットの参照先を
Update Tx3に書き換えられるてブロードキャストされてしまう問題
Update Tx3のUTXOを使用する場合、そのTxのnLocktimeは4以上で
なければならず、Update Tx2のnLocktimeは2なのでリジェクトされる。
※ nLocktimeは本来指定時間までTxをロックする仕組みだが、それを
 チャネル状態のバージョンとして利用。
16
eltooのポイント: セトルメント鍵のローテーション
Settlement Tx1
Inputs
Trigger TxのUTXO
Outputs
アリスのアドレスに 5 BTC
sig
Bs1
sig
As1
Settlement Tx3
Inputs
Update Tx3のUTXO
Outputs
アリスのアドレスに 4.5 BTC
ボブのアドレスに 0.5 BTC
sig
Bs3
sig
As3
Settlement Tx2
Inputs
Update Tx2のUTXO
Outputs
アリスのアドレスに 4 BTC
ボブのアドレスに 1 BTC
sig
Bs2
sig
As2
Settlement Txに署名する際もSIGHASH_NOINPUTが使用される。
不正があった場合に、対応する Update Txのインプットの参照先が変わると
Update TxのTXIDも変わり、Settlement Txのインプットの参照先も変更する必要がある。
※異なるUpdate Tx(Settlemnt Tx2の参照先をUpdate Tx3)を参照されるとまずい
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As3とBs3のマルチシグで入手可能
● このTxを使用すTxのnLocktimeが4以上で、
 AuとBuのマルチシグで入手可能
Update Txの条件で、セトルメント鍵でアンロックする場合、
その鍵は各状態毎に異なる鍵が使われる。
鍵ペアの導出自体は HDウォレット等と同様に決定論的に導出される。
これによりSettlement Txは対応するUpdate Txのみにバインドされ
る。
17
eltooのポイント: チャネルの協調クローズ
Funding Tx
Inputs
アリスの5 BTC
Outputs
アリスとボブのマルチシグに 5 BTC
Trigger Tx
Inputs
Funding TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As1とBs1のマルチシグで入手可能
● AuとBuのマルチシグで入手可能
sig
Bu
sig
Au
sig
Alice
Settlement Tx2
Inputs
Update Tx2のUTXO
Outputs
アリスのアドレスに 4 BTC
ボブのアドレスに 1 BTC
sig
Bs2
sig
As2
Update Tx2
Inputs
Trigger TxのUTXO
Outputs
5 BTCは以下のいずれかで入手可能
● このTxがブロックに入って 1,000ブロック経過したら
 As2とBs2のマルチシグで入手可能
● このTxを使用すTxのnLocktimeが3以上で、
 AuとBuのマルチシグで入手可能
nLocktime
State Number: 2
sig
Bu
sig
Au
Closing Tx
Inputs
Funding TxのUTXO
Outputs
アリスのアドレスに 4 BTC
ボブのアドレスに 1 BTC
sig
Bs2
sig
As2
on-chain
on-chain
協調クローズの場合はClosing Txを
協力して作成してブロードキャスト
協調クローズでない場合、
Trigger Tx、Update Tx、Settlement Txが
ブロードキャストされる。
無期限のチャネルにするため、Trigger Txが必要
18
まとめ
eltooはPayment Channelで旧状態がブロードキャストされた際に、
ペナルティではなく、最新の状態を後から差し替え可能にするコントラクトを
ベースにした新しいPayment Channelの提案。
● メリット
○ チャネルのバックアップが正常にできてなくて、意図的で無いにしろ
古い状態をブロードキャストしてしまった際のリカバリになる。
○ 古い状態をブロードキャストさせようとする攻撃ベクトルを回避す
る。
○ 保存するのが最新のUpdate Tx / Settlement Txのみで済む。
○ 参加者が増えた場合の対応が簡単
■ Update Txの各条件が参加者分のマルチシグに
■ Settlement Txのアウトプットが参加者分増える
● デメリット
○ SIGHASH_NOINPUTがBitcoinに導入されるまで導入できない。

More Related Content

Recently uploaded

論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
CRI Japan, Inc.
 

Recently uploaded (15)

論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
 

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

新しいオフチェーンコントラクトeltooとSIGHASH_NOINPUT

  • 2. 1 Off-chain Scaling Payment Channel 資金をブロックチェーン上に固定し、固定した金額を上限として、トラストレスに オフチェーンで決済を繰り返すためのプロトコル。 Block Block Block Block Block Block Funding Tx(on-chain) Inputs アリスの1BTC ボブの1BTC Outputs アリスとボブのマルチシグに 2 BTC Commitment Tx(off-chain) Outputs アリスに1.1BTC ボブに0.9 BTC Inputs アリスとボブのマルチシグ 2 BTC オンチェーン上にマルチシグで ロックされたコインをインプットにし、 アウトプットには決済時のそれぞれの 残高を反映したトランザクションを作っ て決済する。 新しい決済をする場合はアウトプット の残高を更新した同様のトランザク ションを作る。
  • 3. 2 Payment Channelのセットアップ ① アリスとボブはPayment Channelをセットアップするため チャネル決済に使用するコインをブロックチェーン上に ロックするFunding Txを作成する。 Funding Tx Inputs アリスの1BTC ボブの1BTC Outputs アリスとボブのマルチシグに 2 BTC この時点で、Funding Txは未署名で 当然ブロードキャストはできない。
  • 4. 3 Payment Channelのセットアップ ② アリスとボブはそれぞれ秘密の値(Secret)とその値のハッシュを生成する。  このうちハッシュだけ相手に伝える。 Secret A1 H(A1) Secret B1H(B1) 交換 アリスが作るCommitment Tx1 Outputs アリスの鍵で入手可能な 1BTC 残り1 BTCは以下のいずれかで入手可能 ●このTxがブロックに入って 1,000ブロック経過した らボブの鍵で入手可能。 ●Secret B1が分かればアリスの鍵で入手可能。 ③ アリスとボブは相手から受け取ったハッシュを使ってFunding Txの アウトプットをインプットにしたCommitment Txをそれぞれ作り、自分の署名を 付与して相手に送る。 ボブが作るCommitment Tx1 Outputs ボブの鍵で入手可能な 1BTC 残り1 BTCは以下のいずれかで入手可能 ●このTxがブロックに入って 1,000ブロック経過し たらアリスの鍵で入手可能。 ●Secret A1が分かればボブの鍵で入手可能。 交換
  • 5. 4 Payment Channelのセットアップ アリスが作ったCommitment Tx1 Outputs アリスの鍵で入手可能な 1BTC 残り1 BTCは以下のいずれかで入手可能 ●このTxがブロックに入って 1,000ブロック経過した らボブの鍵で入手可能。 ●Secret B1が分かればアリスの鍵で入手可能。 ボブが作ったCommitment Tx1 Outputs ボブの鍵で入手可能な 1BTC 残り1 BTCは以下のいずれかで入手可能 ●このTxがブロックに入って 1,000ブロック経過し たらアリスの鍵で入手可能。 ●Secret A1が分かればボブの鍵で入手可能。 この時点でお互いに相手が作成し相手の署名が付与されたCommitment Txを持って いる状態になる。このTxに自分の署名を加えればTxは完成する。 このTxがブロードキャストされると、ブロードキャストしたユーザーは1,000ブロック待てば コインを入手でき、相手はすぐにコインを入手できる。 ④ 最初のCommitment Txの交換が終わったら①で作成したFunding Txに署名して ネットワークにブロードキャストしてチャネルをオープンする。 相手の署名済みのTxを両者 持つので、これでFunding Txを ブロードキャストした後に、 相手がいなくなってマルチシグに ロックした資金が取り戻せないと いった事態はなくなる。
  • 6. 5 オフチェーン決済 オフチェーン決済は新しいシークレットの作成・交換し、決済の結果で残高を 更新したCommitment Txを作り自分の署名を加え相手に送る。 アリスが作るCommitment Tx2 Outputs アリスの鍵で入手可能な 1.1BTC 残り0.9BTCは以下のいずれかで入手可能 ●このTxがブロックに入って 1,000ブロック経過した らボブの鍵で入手可能。 ●Secret B2が分かればアリスの鍵で入手可能。 Secret A2 H(A2) Secret B2H(B2) 交換 ボブが作るCommitment Tx2 Outputs ボブの鍵で入手可能な 0.9BTC 残り1.1 BTCは以下のいずれかで入手可能 ●このTxがブロックに入って 1,000ブロック経過し たらアリスの鍵で入手可能。 ●Secret A2が分かればボブの鍵で入手可能。 交換 Secret A1 Secret B1 交換 セットアップ時と違うのは前のCommitment Txを作る際に 生成した秘密の値を相手に明らかにする点
  • 7. 6 不正を働いた場合のペナルティ アリスが作ったCommitment Tx1 Outputs アリスの鍵で入手可能な 1BTC 残り1 BTCは以下のいずれかで入手可能 ●このTxがブロックに入って 1,000ブロック経過した らボブの鍵で入手可能。 ●Secret B1が分かればアリスの鍵で入手可能。 ボブが自分に有利な古いCommitment Tx1をブロードキャストするとどうなるか? ボブは、Commitment Tx1がブロックに格納されて1,000ブロック経過するまで1BTCは入 手できない。ボブが1000ブロック待っている間にアリスは、もともとアリス宛の1BTCは普通 に入手でき、さらにSecret B2をこの段階では知っているので残りの1BTCも入手することが できる。つまり裏切って古いTxをブロードキャストすると相手に全資金が渡る。 ※ 但し、古いCommitment Txがブロードキャストされていないかチェーンの監視が必要。 アリスが作ったCommitment Tx2 Outputs アリスの鍵で入手可能な 1.1BTC 残り0.9 BTCは以下のいずれかで入手可能 ●このTxがブロックに入って 1,000ブロック経過した らボブの鍵で入手可能。 ●Secret B2が分かればアリスの鍵で入手可能。 Commitment Tx2のオフチェーン決 済が終わったとして、この段階でボ ブはCommitment Tx1をブロード キャストした方が自分の残高が多く 特をする。
  • 8. 7 eltoo: A Simple Layer2 Protocol for Bitcoin 2018年4月にChristian Decker、Rusty Russell、Olaoluwa Osuntokunらによって 発表された新しいオフチェーンプロトコル。 https://blockstream.com/eltoo.pdf 古い状態をブロードキャストした際の 振る舞いが変わる ● 不正を働いたユーザーの資金の没収 ● 最新の残高の反映
  • 9. 8 eltoo: Payment Channelのセットアップ セトルメント用公開鍵As アップデート用公開鍵Au セトルメント用公開鍵Bs アップデート用公開鍵Bu ① チャネルを開く前に各参加者はアップデート用とセトルメント用の  2つの鍵ペアを生成し、各公開鍵を相手と交換する。 ● アップデート鍵ペア(Au, Bu) チャネルの状態を更新する(新しい支払いをする)際に使用する鍵 ● セトルメント鍵ペア(As, Bs) チャネルを最終残高で閉じる際に使用する鍵 ※ eltooでは、チャネルの最新状態を表したTxさえ保持しておけば、古い状態 がブロードキャストされても、そのトランザクションを最新状態を表すTxに置換す ることができる。
  • 10. 9 eltoo: Payment Channelのセットアップ ② アリスの資金を2-of-2のマルチシグにロックする Funding Txを作成。 Funding Tx Inputs アリスの5 BTC Outputs アリスとボブのマルチシグに 5 BTC Trigger Tx Inputs Funding TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As1とBs1のマルチシグで入手可能 ● AuとBuのマルチシグで入手可能 Settlement Tx1 Inputs Trigger TxのUTXO Outputs アリスのアドレスに 5 BTC ③ Funding TxのUTXOをインプットに  したTrigger Txを作成。 ④ Trigger TxのUTXOをインプットとしたSettlement Tx1を作成。 セットアップフェーズでは払い戻し用として機能し、アウトプットは 5 BTCがそのままアリスのアドレスへ。 ※Settlement Tx1はTrigger Txがブロックに格納されてから1000ブロック後にブロードキャスト可能。 sig Bu sig Bs1 LNのコントラクトはCommitment Tx 1つでお互いの残高を管理していたが、 eltooではTrigger Tx(Update Tx)と Settlement Txの2つでチャネルの 残高を管理する sig Au ⑤ アリスはFunding Txに  署名しブロードキャストする。 sig Alice sig As1
  • 11. 10 eltoo: オフチェーン決済 1回目 ① アリス→ボブに1 BTC支払うため、Trigger Txをインプットとして新しい Update Tx2を作成。 Update Tx2 Inputs Trigger TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As2とBs2のマルチシグで入手可能 ● このTxを使用すTxのnLocktimeが3以上で、  AuとBuのマルチシグで入手可能 Settlement Tx2 Inputs Update Tx2のUTXO Outputs アリスのアドレスに 4 BTC ボブのアドレスに 1 BTC ※ Update TxのnLocktimeには状態を表すState Numberをセットする。 アウトプットの条件の1つには、その<State Number + 1> がOP_CLTVの引数としてセットされる= このUTXOを使用するTxのnLocktimeは3以上であることが条件。 sig Bs2 Trigger Tx Inputs Funding TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As1とBs1のマルチシグで入手可能 ● AuとBuのマルチシグで入手可能 sig Bu nLocktime State Number: 2 sig Au sig Bu ② Update Tx2のUTXOを インプットとして、アウトプットに 残高を反映したSettlement Tx を作成する。 sig Au sig As2 ※ eltooではお互いに同じTx (Update TxとSettlement Tx)を管理する
  • 12. 11 eltoo: オフチェーン決済 2回目 ① ボブ→アリスに0.5 BTC支払うため、Trigger Txをインプットとして新しい Update Tx3を作成。 Update Tx3 Inputs Trigger TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As3とBs3のマルチシグで入手可能 ● このTxを使用すTxのnLocktimeが4以上で、  AuとBuのマルチシグで入手可能 Settlement Tx3 Inputs Update Tx3のUTXO Outputs アリスのアドレスに 4.5 BTC ボブのアドレスに 0.5 BTC sig Bs3 Trigger Tx Inputs Funding TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As1とBs1のマルチシグで入手可能 ● AuとBuのマルチシグで入手可能 sig Bu nLocktime State Number: 3 sig Au sig Bu ② Update Tx3のUTXOを インプットとして、アウトプットに 残高を反映したSettlement Tx を作成する。 sig Au sig As3
  • 13. 12 eltoo: 古い状態のブロードキャスト ボブの裏切り Update Tx3 Inputs Trigger TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As3とBs3のマルチシグで入手可能 ● このTxを使用すTxのnLocktimeが4以上で、  AuとBuのマルチシグで入手可能 Settlement Tx3 Outputs アリスのアドレスに 4.5 BTC ボブのアドレスに 0.5 BTC nLocktime State Number: 3 sig Bu sig Au Update Tx2 Inputs Trigger TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As2とBs2のマルチシグで入手可能 ● このTxを使用すTxのnLocktimeが3以上で、  AuとBuのマルチシグで入手可能 nLocktime State Number: 2 sig Bu sig Au Settlement Tx2 Outputs アリスのアドレスに 4 BTC ボブのアドレスに 1 BTC ボブにとってはSettlement Tx2の 方が取り分が多いので、Update Tx2をブロードキャストする その後Settlement Tx2をブロード キャストする必要があるが、これに は Update Tx2がブロックに入ってか ら1,000ブロック待つ必要がある。 sig Bs2 sig As2 sig Bs3 sig As3
  • 14. 13 eltoo: 古い状態のブロードキャスト アリスの対応 Update Tx3 Inputs Trigger TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As3とBs3のマルチシグで入手可能 ● このTxを使用すTxのnLocktimeが4以上で、  AuとBuのマルチシグで入手可能 nLocktime State Number: 3 sig Bu sig Au Update Tx2 Inputs Trigger TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As2とBs2のマルチシグで入手可能 ● このTxを使用すTxのnLocktimeが3以上で、  AuとBuのマルチシグで入手可能 nLocktime State Number: 2 sig Bu sig Au ボブが1000ブロック待っている間に、 もう1つの条件を使ってコインを取り戻 す Update Tx3のインプットの参照先を Trigger TxのUTXOからUpdate Tx2の UTXOに書き換え、ブロードキャストす る。 Update Tx3がブロックに格納されるとアリスはその後、 Settlement Tx3を ブロードキャストすることで、最新状態でチャネルをクローズできる。
  • 15. 14 eltooを可能にするSIGHASH_NOINPUT 通常、Txの署名はトランザクションデータが署名対象のメッセージダイジェストとなるため、トランザクションデータ が一部でも変更されるとその署名は無効になる。そのため現時点での Bitcoinの仕様では実現不可能。 Txの署名対象データ【BIP-143】 nVersion hashPrevouts(全入力のOutpointから生成したハッシュ) hashSequence(全入力のsequenceから生成したハッシュ) outpoint(署名対象の入力のOutpoint) scriptCode value(署名対象の入力が持つコインの量) nSequence(署名対象の入力のsequence) hashOutputs(全出力から生成したハッシュ) nLocktime sighash type インプットが参照する前のトランザクションのアウトプットの 情報が全て空になる。 署名はトランザクションの OutPointにコミットしなくなり、 署名後にインプットが参照する OutPointの変更が可能にな る。 空(0x00) 署名済みTx Input Output TxA Input Output TxB Input Output 変更可 ※ リバインド可能なのは同じwitness   要素でアンロック可能なUTXOのみ SIGHASH_NOINPUT
  • 16. 15 eltooのポイント: State Numberの導入 Update Tx3 Inputs Trigger TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As3とBs3のマルチシグで入手可能 ● このTxを使用すTxのnLocktimeが4以上で、  AuとBuのマルチシグで入手可能 nLocktime State Number: 3 sig Bu sig Au Update Tx2 Inputs Trigger TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As2とBs2のマルチシグで入手可能 ● このTxを使用すTxのnLocktimeが3以上で、  AuとBuのマルチシグで入手可能 nLocktime State Number: 2 sig Bu sig Au Update Tx3がブロードキャストされた後に、 Update Tx2のインプットの参照先を Update Tx3に書き換えられるてブロードキャストされてしまう問題 Update Tx3のUTXOを使用する場合、そのTxのnLocktimeは4以上で なければならず、Update Tx2のnLocktimeは2なのでリジェクトされる。 ※ nLocktimeは本来指定時間までTxをロックする仕組みだが、それを  チャネル状態のバージョンとして利用。
  • 17. 16 eltooのポイント: セトルメント鍵のローテーション Settlement Tx1 Inputs Trigger TxのUTXO Outputs アリスのアドレスに 5 BTC sig Bs1 sig As1 Settlement Tx3 Inputs Update Tx3のUTXO Outputs アリスのアドレスに 4.5 BTC ボブのアドレスに 0.5 BTC sig Bs3 sig As3 Settlement Tx2 Inputs Update Tx2のUTXO Outputs アリスのアドレスに 4 BTC ボブのアドレスに 1 BTC sig Bs2 sig As2 Settlement Txに署名する際もSIGHASH_NOINPUTが使用される。 不正があった場合に、対応する Update Txのインプットの参照先が変わると Update TxのTXIDも変わり、Settlement Txのインプットの参照先も変更する必要がある。 ※異なるUpdate Tx(Settlemnt Tx2の参照先をUpdate Tx3)を参照されるとまずい Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As3とBs3のマルチシグで入手可能 ● このTxを使用すTxのnLocktimeが4以上で、  AuとBuのマルチシグで入手可能 Update Txの条件で、セトルメント鍵でアンロックする場合、 その鍵は各状態毎に異なる鍵が使われる。 鍵ペアの導出自体は HDウォレット等と同様に決定論的に導出される。 これによりSettlement Txは対応するUpdate Txのみにバインドされ る。
  • 18. 17 eltooのポイント: チャネルの協調クローズ Funding Tx Inputs アリスの5 BTC Outputs アリスとボブのマルチシグに 5 BTC Trigger Tx Inputs Funding TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As1とBs1のマルチシグで入手可能 ● AuとBuのマルチシグで入手可能 sig Bu sig Au sig Alice Settlement Tx2 Inputs Update Tx2のUTXO Outputs アリスのアドレスに 4 BTC ボブのアドレスに 1 BTC sig Bs2 sig As2 Update Tx2 Inputs Trigger TxのUTXO Outputs 5 BTCは以下のいずれかで入手可能 ● このTxがブロックに入って 1,000ブロック経過したら  As2とBs2のマルチシグで入手可能 ● このTxを使用すTxのnLocktimeが3以上で、  AuとBuのマルチシグで入手可能 nLocktime State Number: 2 sig Bu sig Au Closing Tx Inputs Funding TxのUTXO Outputs アリスのアドレスに 4 BTC ボブのアドレスに 1 BTC sig Bs2 sig As2 on-chain on-chain 協調クローズの場合はClosing Txを 協力して作成してブロードキャスト 協調クローズでない場合、 Trigger Tx、Update Tx、Settlement Txが ブロードキャストされる。 無期限のチャネルにするため、Trigger Txが必要
  • 19. 18 まとめ eltooはPayment Channelで旧状態がブロードキャストされた際に、 ペナルティではなく、最新の状態を後から差し替え可能にするコントラクトを ベースにした新しいPayment Channelの提案。 ● メリット ○ チャネルのバックアップが正常にできてなくて、意図的で無いにしろ 古い状態をブロードキャストしてしまった際のリカバリになる。 ○ 古い状態をブロードキャストさせようとする攻撃ベクトルを回避す る。 ○ 保存するのが最新のUpdate Tx / Settlement Txのみで済む。 ○ 参加者が増えた場合の対応が簡単 ■ Update Txの各条件が参加者分のマルチシグに ■ Settlement Txのアウトプットが参加者分増える ● デメリット ○ SIGHASH_NOINPUTがBitcoinに導入されるまで導入できない。