SlideShare a Scribd company logo
Lightning Network
概要説明
@gakutomo
背景
Bitcoinはスケーラビリティに問題がある
・ブロックサイズの上限が 1MB (4000トランザクション)
・1秒あたり7トランザクションしかさばけない
*2013年、Visaは最大瞬間取引数が47,000 トランザクション/秒
背景
さらにトランザクションが詰まると
・手数料を高くしないと決済がなかなか完了しない
・少額送金に不向きなシステムへ・・・
解決策
そこで提案されたのが「Lightning Network」
オフチェーンで複数取引し、最後にまとめてブロックチェーンに
書き込むことでトランザクション数を削減する。これを実現するための
ネットワーク。
*オフチェーン・・・ブロックチェーンを使わない処理。対義語はオンチェーン。
概略図
Alice Bob
1BTC
ブロックチェーン
Alice Bob
1BTC
Alice Bob
1BTC
Lightning Network
Alice Bob
1BTC
オフチェーン取引の仕組み
ペイメントチャネル
オフチェーンではペイメントチャネルという
2者間で取引できる仕組みが重要
BA
ペイメントチャネルの開設①
マルチシグアカウントに2人が1BTCずつ入金するトランザクション作成
このトランザクションは後でブロックチェーンに書き込まれる
*マルチシグ(multi-signature) アカウント・・・複数人の署名が無いとBTCを取り出せないアカウント
マルチシグ
1BTC
1BTC
A
B
ペイメントチャネルの開設②
マルチシグからBTCを取り出せなくならないよう、
返金用トランザクションを作成して交換しておく
・マルチシグからAに1BTC
・マルチシグからBに1BTC
・マルチシグからAに1BTC
・マルチシグからBに1BTC
Aが作ったトランザクション1 Bが作ったトランザクション1
A B
ペイメントチャネルの開設②
マルチシグからBTCを取り出せなくならないよう、
返金用トランザクションを作成して交換しておく
・マルチシグからAに1BTC
・マルチシグからBに1BTC
・マルチシグからAに1BTC
・マルチシグからBに1BTC
Bが作ったトランザクション1 Aが作ったトランザクション1
A B
ペイメントチャネルでの取引
A が B に 0.1BTC送りたい場合
返金用トランザクションを更新する
・マルチシグからAに0.9BTC
・マルチシグからBに1.1BTC
Bが作ったトランザクション2 Aが作ったトランザクション2
・マルチシグからAに0.9BTC
・マルチシグからBに1.1BTC
A B
ペイメントチャネルをクローズ
取引を終了したい時
返金用トランザクションをブロードキャストする
・マルチシグからAに0.9BTC
・マルチシグからBに1.1BTC
Bが作ったトランザクション2
ブロックチェーンへブロードキャスト
A
これだと不正ができてしまう
昔のトランザクションをブロードキャストして取引をなかったことに
・マルチシグからAに1BTC
・マルチシグからBに1BTC
Bが作ったトランザクション1
古いほうをブロックチェーンへブロードキャスト
A
・マルチシグからAに0.9BTC
・マルチシグからBに1.1BTC
Bが作ったトランザクション2
不正を無くすためには鍵を使う
①鍵A1を作成、H(A1)を送る
・Aに1BTC
・Aは鍵B1があれば
残り1BTCも取り出せる
・BはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
Aが作ったトランザクション1
・Bに1BTC
・Bは鍵A1があれば
残り1BTCも取り出せる
・AはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
Bが作ったトランザクション1
鍵B1を作成、H(B1)を送る
A B
②もらったハッシュをもとにトランザクションを作成
不正対策後の返金トランザクション
鍵A1
・Bに1BTC
・Bは鍵A1があれば
残り1BTCも取り出せる
・AはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
Bが作ったトランザクション1
・Aに1BTC
・Aは鍵B1があれば
残り1BTCも取り出せる
・BはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
Aが作ったトランザクション1
A B鍵B1
0.1BTCの送金を行う場合
鍵A2を作成、H(A2)を送る
・Aに0.9BTC
・Aは鍵B2があれば
残り1.1BTCも取り出せる
・BはこのTxがブロックに
入ってから24時間後に
1.1BTC取り出せる
Aが作ったトランザクション2
・Bに1.1BTC
・Bは鍵A2があれば
残り0.9BTCも取り出せる
・AはこのTxがブロックに
入ってから24時間後に
0.9BTC取り出せる
Bが作ったトランザクション2
鍵B2を作成、H(B2)を送るA B
①
②
0.1BTCの送金を行う場合
・Bに1.1BTC
・Bは鍵A2があれば
残り0.9BTCも取り出せる
・AはこのTxがブロックに
入ってから24時間後に
0.9BTC取り出せる
Bが作ったトランザクション2
・Aに0.9BTC
・Aは鍵B2があれば
残り1.1BTCも取り出せる
・BはこのTxがブロックに
入ってから24時間後に
1.1BTC取り出せる
Aが作ったトランザクション2
A B鍵A1 鍵A2 鍵B1 鍵B2
前のトランザクションで使った鍵を交換するのが重要
Bが作ったトランザクション2 Aが作ったトランザクション2
・鍵A1を渡す ・鍵B1を渡す
A B鍵A1 鍵A2 鍵B1 鍵B2
・Bに1.1BTC
・Bは鍵A2があれば
残り0.9BTCも取り出せる
・AはこのTxがブロックに
入ってから24時間後に
0.9BTC取り出せる
・Aに0.9BTC
・Aは鍵B2があれば
残り1.1BTCも取り出せる
・BはこのTxがブロックに
入ってから24時間後に
1.1BTC取り出せる
前のトランザクションで使った鍵を交換するのが重要
Bが作ったトランザクション2 Aが作ったトランザクション2
A B鍵A1 鍵A2 鍵B1 鍵B2
鍵B1 鍵A1
・Bに1.1BTC
・Bは鍵A2があれば
残り0.9BTCも取り出せる
・AはこのTxがブロックに
入ってから24時間後に
0.9BTC取り出せる
・Aに0.9BTC
・Aは鍵B2があれば
残り1.1BTCも取り出せる
・BはこのTxがブロックに
入ってから24時間後に
1.1BTC取り出せる
不正しようとしても。。。
過去のトランザクションをブロードキャストしても、Bは24時間以内に
気付けば相手の鍵A1を使ってマルチシグ内の残金を全部取り出せる
ブロックチェーンへブロードキャスト
Bが作ったトランザクション
・Bに1BTC
・Bは鍵A1があれば
残り1BTCも取り出せる
・AはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
Bが作ったトランザクション1
A
Lightning Network
オフチェーンで複数人と取引する場合
複数人とペイメントチャネルを開けば取引できるが、
それぞれのマルチシグにデポジットしないといけないので不便
B
A C
他人を経由して送れば解決
BとCがペイメントチャネルで繋がっていれば、AはCに送金できる
B
A C
これが広がると
このようなペイメントチャネルのネットワークが Lightning Network
B
A C
E
D
複数人を経由してAからEに送ることもできる
持ち逃げが起こるのでは?
A→B→Cでリレーして送金する場合、A→Bに送金した時点でBは持ち逃げできる?
B
A C
A→B→Cで0.1BTCの送金を行う場合
B
A C
残高
1BTC
残高
1BTC
残高
1BTC
残高
1BTC
AB間、BC間でペイメントチャネルを開いている場合
A→B→Cで0.1BTCの送金を行う場合
鍵Cを作成、H(C)を渡す
B
A C
A→B→Cで0.1BTCの送金を行う場合
鍵A2を作成、H(A2)を送る
Aが作ったトランザクション2 Bが作ったトランザクション2
鍵B2を作成、H(B2)を送る
①
②
B
・Aに0.9BTC
・Aは鍵B2があれば
残り1.1BTCも取り出せる
・BはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
・Bは鍵Cがあれば0.1BTC
取り出せる
・Bに1.0BTC
・Bは鍵Cがあれば0.1BTC
取り出せる
・Bは鍵A2があれば
残り0.9BTCも取り出せる
・AはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
A
A→B→Cで0.1BTCの送金を行う場合
鍵B2を作成、H(B2)を送る
Bが作ったトランザクション2 Cが作ったトランザクション2
鍵C2を作成、H(C2)を送るB
①
②
C
・Bに0.9BTC
・Bは鍵C2があれば
残り1.1BTCも取り出せる
・CはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
・Cは鍵Cがあれば0.1BTC
取り出せる
・Cに1.0BTC
・Cは鍵Cがあれば0.1BTC
取り出せる
・Cは鍵B2があれば
残り0.9BTCも取り出せる
・BはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
A→B→Cで0.1BTCの送金を行う場合
Bが作ったトランザクション2Cが作ったトランザクション2
B C
・Bに0.9BTC
・Bは鍵C2があれば
残り1.1BTCも取り出せる
・CはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
・Cは鍵Cがあれば0.1BTC
取り出せる
・Cに1.0BTC
・Cは鍵Cがあれば0.1BTC
取り出せる
・Cは鍵B2があれば
残り0.9BTCも取り出せる
・BはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
鍵B1 鍵B2 鍵C1 鍵C2
C B
鍵C
A→B→Cで0.1BTCの送金を行う場合
Bが作ったトランザクション2Cが作ったトランザクション2
B C
・Bに0.9BTC
・Bは鍵C2があれば
残り1.1BTCも取り出せる
・CはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
・Cは鍵Cがあれば0.1BTC
取り出せる
・Cに1.0BTC
・Cは鍵Cがあれば0.1BTC
取り出せる
・Cは鍵B2があれば
残り0.9BTCも取り出せる
・BはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
鍵B1 鍵B2 鍵C1 鍵C2
C B
鍵C を渡す
鍵C
A→B→Cで0.1BTCの送金を行う場合
Bが作ったトランザクション2Cが作ったトランザクション2
B C
・Bに0.9BTC
・Bは鍵C2があれば
残り1.1BTCも取り出せる
・CはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
・Cは鍵Cがあれば0.1BTC
取り出せる
・Cに1.0BTC
・Cは鍵Cがあれば0.1BTC
取り出せる
・Cは鍵B2があれば
残り0.9BTCも取り出せる
・BはこのTxがブロックに
入ってから24時間後に
1BTC取り出せる
鍵B1 鍵B 鍵C1 鍵C2
C B
鍵C
鍵B1を渡す 鍵C1を渡す
鍵C
A→B→Cで0.1BTCの送金を行う場合
B
A C
①BTC受け取る
② 鍵Cを渡す
③鍵Cを使ってBTC受け取る
課題
・チャネルの開閉時はオンチェーンでのトランザクションが必要
・ペイメントハブが現れるとLNが中央集権的になってしまう恐れ
LNの現状
c-lightning や lnd など様々なノードが開発されており、
テストネット及びメインネットでもbeta版が稼働開始
lightning network exploler - https://explorer.acinq.co/
デモ
テストネットでの支払いを体験できる。
Eclair Wallet をインストールしてスマホからの支払いを試してみましょう
https://starblocks.acinq.co/
実用例
BTCPay・・・支払いQRコードの発行、コインの受け取り管理など。
Paper call・・・APIを呼ぶ際にライトニングでの少額課金を挟むモジュール。
Yalls.org・・・少額の課金ブログ。記事を読むのに1セント相当のビットコイ
ン課金が儲けられており、良いと思った記事にはチップも渡せる。
まとめ
・高速送金ができるようになる
・手数料ほぼ無し
・チャネルの開閉時はオンチェーンでのトランザクションが必要
・LNが中央集権的になってしまう恐れ

More Related Content

PDF
EXE #7:Private Blockchainの現状と未来
PDF
EXE #6:Lightning Network入門
PDF
EXE Lite #1:ビットコインとブロックチェーン入門
PDF
PPTX
デジタルハリウッド大学院 ブロックチェーン研究会第三回 2016年8月25日
PPTX
図解 Blockchainの仕組み
PDF
Congre chain説明資料
PDF
金融機関向けブロックチェーン・ビジネス
EXE #7:Private Blockchainの現状と未来
EXE #6:Lightning Network入門
EXE Lite #1:ビットコインとブロックチェーン入門
デジタルハリウッド大学院 ブロックチェーン研究会第三回 2016年8月25日
図解 Blockchainの仕組み
Congre chain説明資料
金融機関向けブロックチェーン・ビジネス

What's hot (20)

PPTX
ブロックチェーン基礎基本
PDF
PDF
ブロックチェーンまとめ
PDF
電子情報通信学会グローバル社会とビットコイン(山崎)
PDF
明星和楽 Bitcoin の概要
PDF
ビットコインとブロックチェーン入門
PDF
ブロックチェーンの基本構造
PPTX
ブロックチェーンの実務応用
PPTX
ブロックチェーンの仕組みと動向(入門編)
PDF
PDF
Ethereum whitepaper
PDF
ビットコイン福岡勉強会法的課題
PDF
ブロックチェーンの解説 In.live ppt
PDF
仮想通貨のブロックチェイン技術によるFinTech
PDF
ビットコインの基礎知識と世界的なトレンド
PDF
5分でわかるブロックチェーンの基本的な仕組み
PDF
(旧)ビットコインとブロックチェーン入門
PDF
ブロックチェーン技術の基本と応用の可能性
PDF
パネル 4feb
PDF
ネット仮想通貨の論点 - 楠正憲
ブロックチェーン基礎基本
ブロックチェーンまとめ
電子情報通信学会グローバル社会とビットコイン(山崎)
明星和楽 Bitcoin の概要
ビットコインとブロックチェーン入門
ブロックチェーンの基本構造
ブロックチェーンの実務応用
ブロックチェーンの仕組みと動向(入門編)
Ethereum whitepaper
ビットコイン福岡勉強会法的課題
ブロックチェーンの解説 In.live ppt
仮想通貨のブロックチェイン技術によるFinTech
ビットコインの基礎知識と世界的なトレンド
5分でわかるブロックチェーンの基本的な仕組み
(旧)ビットコインとブロックチェーン入門
ブロックチェーン技術の基本と応用の可能性
パネル 4feb
ネット仮想通貨の論点 - 楠正憲
Ad

Similar to Lightning network 概要解説 (12)

PDF
Lightning Network入門
PDF
Lightning night
PDF
Lightning Networkのユースケースを考える
PPTX
Blockchain技術勉強会 #Lightning Networkの技術と最前線
PDF
Ln adoption 7 feb2019
PPTX
Lightningエコシステムの最前線@HashHub Conference 2018
PDF
Lightning Network, Swap, Nloop
PPTX
Scalability problems @ neutrino 20181023
PPTX
Discreet Log Contracts(DLC)を読む
PPTX
Interledger Protocol
PPTX
ライトニングネットワーク ペイメントの新潮流〜貨幣システムはどこまで刷新されるのか〜
PDF
ブロックチェーン技術概論1 輪読
Lightning Network入門
Lightning night
Lightning Networkのユースケースを考える
Blockchain技術勉強会 #Lightning Networkの技術と最前線
Ln adoption 7 feb2019
Lightningエコシステムの最前線@HashHub Conference 2018
Lightning Network, Swap, Nloop
Scalability problems @ neutrino 20181023
Discreet Log Contracts(DLC)を読む
Interledger Protocol
ライトニングネットワーク ペイメントの新潮流〜貨幣システムはどこまで刷新されるのか〜
ブロックチェーン技術概論1 輪読
Ad

Lightning network 概要解説

Editor's Notes

  • #15: OP_CHECKSEQUENCEVERIFY (OP_CSV)はこのアウトプットのトランザクションがブロックに格納されてから指定時間(block height or unix timestamp)まで、アウトプットのコインをロックする相対的なタイムロックの仕組み。 OP_HASH160 <H(Secret B1)> OP_EQUAL OP_IF <alice pub_key> OP_ELSE <1000> OP_CHECKSEQUENCEVERIFY OP_DROP <bob pub_key> OP_ENDIF OP_CHECKSIG