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

Generalized Channels

Generalized Channels

GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2020/09/generalized-channels/

shigeyuki azuchi

September 03, 2020
Tweet

More Decks by shigeyuki azuchi

Other Decks in Technology

Transcript

  1. 1 Generalized Channelsとは?
 Generalized Bitcoin-Compatible Channels https://eprint.iacr.org/2020/476.pdf
 
 
 Lightning

    NetworkのCommitment Txを 両者が同じTxを構成することで、 • コントラクトがシンプルに • チャネル更新の通信量が作成 • オンチェーンフットプリントの削減 (手数料も削減) eltooと違って現時点でデプロイ可能 https://goblockchain.network/2018/11/eltoo_and_sighash_noinput/
  2. 2 Lightningの現状のチャネルコントラクト
 Commitment Tx A
 In
 Out
 アリスがすぐに使用可能 Funding UTXO


    以下のいずれかの条件で使用可能 
 • 一定期間後にボブが使用 
 • シークレット値Bを知っていれば アリスがすぐに使用可能 
 アリスの署名 
 Commitment Tx B
 In
 Out
 ボブがすぐに使用可能 Funding UTXO
 以下のいずれかの条件で使用可能 
 • 一定期間後にアリスが使用 
 • シークレット値Aを知っていれば ボブがすぐに使用可能 
 ボブの署名 
 H A = H(A) H A H B = H(B) H B 自身の署名を付与して交換 ボブがTx Aをブロードキャストすると 
 • アリスは自分の残高をすぐに入手可能 
 • ボブの残高は 
 ◦ 一定期間経過したボブが入手可能 
 ◦ シークレットBが分かればアリスが入手可能 
 (古いCommitment Txだった場合) 
 アリスがTx Bをブロードキャストすると 
 • ボブは自分の残高をすぐに入手可能 
 • アリスの残高は 
 ◦ 一定期間経過したアリスが入手可能 
 ◦ シークレットAが分かればボブが入手可能 
 (古いCommitment Txだった場合) 
 両者が作り保持する Commitment Txは異なる
  3. 3 Generalized Channels(Setup)
 Commitment Tx1
 In
 Out
 Funding UTXO
 以下のいずれかの条件で使用可能


    • 一定期間後にアリスとボブの署名
 • r A1 とy A1 とボブの署名
 • r B1 とy B1 とアリスの署名
 アリスの署名 
 R A1 = r A1 G R A1 Y A1 = y A1 G R B1 = r B1 G Y B1 = y B1 G Y A1 R B1 Y B1 ① 2つの鍵ペアを作成しお互いに公開鍵を交換 Split Tx1
 In
 Out
 Commitment Tx1のUTXO
 アリスのアドレス宛
 ボブのアドレス宛
 ② Commitment Tx1と、この段階の両者の残高を保持する Split Tx1を作 成 ③ Split Tx1の署名を両者で作成  Commitment Tx1のマルチシグ条件でのアンロック ボブの署名 
 ④ 両者はCommitment Tx1のAdaptor Signatureを作成し、交換する。 Adaptor Sig A1 Adaptor Sig B1 Y B1 を使ってAdaptor Signatureを作成。 Y A1 を使ってAdaptor Signatureを作成。 Adaptor Sig A1 y B1 Adaptor Sig B1 y A1 受け取ったAdaptor Signatureと自身の知るシークレット( y A1 , y B1 )を使えば相手の Commitment Tx1の署名を完成させられる。 アリスの署名 
 ボブの署名 
 Commitment Tx1をブロードキャストすると Adaptor Signatureと完成された署名から 相手にシークレット( y A1 or y B1 )が伝わる。
  4. 4 Generalized Channels(Update)
 Commitment Tx2
 In
 Out
 Funding UTXO
 以下のいずれかの条件で使用可能


    • 一定期間後にアリスとボブの署名
 • r A2 とy A2 とボブの署名
 • r B2 とy B2 とアリスの署名
 アリスの署名 
 R A2 = r A2 G R A2 Y A2 = y A2 G R B2 = r B2 G Y B2 = y B2 G Y A2 R B2 Y B2 ① 2つの鍵ペアを作成しお互いに公開鍵を交換 Split Tx2
 In
 Out
 Commitment Tx2のUTXO
 アリスのアドレス宛
 ボブのアドレス宛
 ② Commitment Tx2と、この段階の両者の残高を保持する Split Tx2を作 成 ③ Split Tx2の署名を両者で作成  Commitment Tx2のマルチシグ条件でのアンロック ボブの署名 
 ④ 両者はCommitment Tx2のAdaptor Signatureを作成し、交換する。 Adaptor Sig A2 Adaptor Sig B2 Y B2 を使ってAdaptor Signatureを作成。 Y A2 を使ってAdaptor Signatureを作成。 Adaptor Sig A2 y B2 Adaptor Sig B2 y A2 アリスの署名 
 ボブの署名 
 ⑤ 両者は前の状態に使用した Revocation Secret(r A1 , r B1 )を交換する。 r B1 r A1
  5. 5 Generalized Channels(Penalty)
 r A1 r B1 Commitment Tx1
 In


    Out
 Funding UTXO
 以下のいずれかの条件で使用可能
 • 一定期間後にアリスとボブの署名
 • r A1 とy A1 とボブの署名
 • r B1 とy B1 とアリスの署名
 Split Tx1
 In
 Out
 Commitment Tx1のUTXO
 アリスのアドレス宛
 ボブのアドレス宛
 ボブが古いCommitment Tx1をブロードキャストした場合 アリスの署名 
 ボブの署名 
 Punishment Tx
 In
 Out
 Commitment Tx1のUTXO
 アリスのアドレス宛
 Adaptor Sig A1 アリスの署名 
 アリスは以前作成した Adaptor Sig A1とブロードキャストされた Commitment Tx1のアリスの署名から、 y B1 を計算できる。 y B1 r B1 は既に保持しているので、ボブが Split Tx1をブロードキャストする前に Punishment Txを作成、ブロードキャストし、チャネルの資金を全て没収す る。 r B1 y B1 アリスの署名 
 Time Locked ※ 最新のCommitment Txをブロードキャストした場合は、 Revocation Secretを持ってないので Punishment Txは作れない。
  6. 6 まとめ
 Generalized Channelsは共通のCommitment Txを持つLNの新しいチャネル形態 • 2つのシークレットを利用してペナルティモデルを実現 ◦ Commitment Txのブロードキャストにより明らかになるシークレット

    ◦ 旧ステートを無効化するために交換するシークレット 【参考】Adaptor Signatureの構成方法 • ECDSAの場合 ◦ Scriptlessアプローチ https://goblockchain.network/2019/01/adaptor_signature-ecdsa/ ◦ OP_CHECKMULTISIGアプローチ https://goblockchain.network/2020/07/point-time-locked-contracts/ • Schnorrの場合 https://goblockchain.network/2018/12/adaptor_signature/ Generalized Channels解説 https://techmedia-think.hatenablog.com/entry/2020/08/07/213011
 y B1 y A1 r B1 r A1