exe #6:lightning network入門
TRANSCRIPT
Lightning Network入門
光田 貴Coincheck株式会社 Web DeveloperTwitter: @34rogithub: @34ro
2017.11.15
About me光田 貴
2012~ ヤフーで広告システムのバックエンドを開発・運用
2016~ Coincheck
最近の主な仕事
ハードフォークにつぐハードフォーク対応
仮想通貨交換業登録に向けて頑張ってます
Scaling Bitcoin Stanford 2017に行ってきました
仮想通貨系の技術について Coincheckブログに書いたり、
ニュースメディアに寄稿することもあります
今回のテーマ
Lightning Networkとは?
生まれた背景
Payment Channel
Lightning Networkでの「送金」
Lightning Networkとは?
Lightning Network = 稲妻のネットワーク
通常の送金・・・数十分
Lightingn Network・・・一瞬
※ただし「決済完了性」を少し犠牲にする
Lightning Networkが生まれた背景
ビットコイン A Peer-to-Peer Electronic Cash SystemP2Pネットワーク上でプロトコルに従ってデータをやり取りするだけでお金のような機能
を果たすシステム
全取引履歴を1つの台帳に入れて参加者全員がコピーを持つ
ビットコインの性能上の限界
約10分間に1MB分の送金データをブロックに詰める
送金回数は8回/秒くらい
世界中の人が使うには明らかに足りない
アプローチは2つブロックサイズを拡大する(ビッグブロック)
ブロックサイズを拡大し、1ブロック当たりのデータサイズの上限を引き上げる
ブロックに記録するデータ量を節約する(スモールブロック)
できるだけビットコインのブロック以外の場所にデータを記録する
Lightnig Networkはこっちの考え方
どちらも中央に管理サーバを持たない(非中央集権的)であることは共通
「ブロックに記録するデータ量を節約する」とは
特殊なトランザクション(送金データ)を作り、実用的に問題ない範囲でネットワークに流さ
ないまま取引を続ける
※ 通常の送金はネットワークに流すことで、全取引がブロックに記録される
いつでもネットワークに流せる状態を保ちつつ、実際には流さない
例: 契約書は毎日発行しても実際に裁判所に行くことは少ない
Payment ChannelLightning Networkの送金のベースになる技術
Payment Channelの重要なポイント
● チャンネルを2者間で開設
● チャンネル内にビットコインをロックして開始(A:5 BTC, B: 5BTC)● ロックした金額の持ち分を入れ替えて送金(A→Bへ1BTC送ると A: 4, B: 6)● 2者間でなら何回移動させてもネットワークに流さないので早い
● チャンネルを閉じるまでトランザクションをネットワークに流さない
● A→B,B→Cというように複数のチャンネルを跨いで送ることも可能
→2者間のチャンネルを複数繋げると送金のネットワークが作れる
https://www.slideshare.net/takashimitsuta/payment-channel
ビットコインのネットワークとの関係
Payment Channelの集合体なだけでは不完全
「A Peer-to-Peer Electronic Cash System」として克服すべき課題
プライバシーの課題
中間者に送金内容が丸見え
ルーティング
どうやってルートを見つける?ルートの情報は信用できる?
中央管理サーバがあれば簡単なことでも
非中央集権を前提にしているのでネットワークに貢献する動機付けが必要
仕様や実装
仕様
● lightningnetwork/lightning-rfc
ノード
● ElementsProject/lightning● lightningnetwork/lnd● mit-dci/lit
GUI
● ACINQ/eclair● lightninglabs/lightning-app
ビットコイン以外でも動作する?ビットコインのスクリプト(Segwit有効化済み)と互換性があれば可能
Litecoin, Monacoin, Vertcoin
まとめ
● Lightning Networkは性能の限界の克服を目指して作られた
● Payment Channelがベースになる
● 「P2Pで動くお金」としては乗り越えるべき
最後に
コインチェックでは一緒に仮想通貨業界を盛り上げてくれる仲間を募集中です!
まずは話を聞いてみたいという軽いノリでも大歓迎です。
wantedly or 光田(@34ro)までお声がけ下さい。
終