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
Lightning Networkとは
Search
Nayuta
May 25, 2019
Technology
0
220
Lightning Networkとは
Lightning Networkを簡単に説明
Nayuta
May 25, 2019
Tweet
Share
More Decks by Nayuta
See All by Nayuta
Lightning Networkノード運用(2019年6月版)
nayutainc
1
310
Lightning Network Ptarmigan Hands-on
nayutainc
0
190
How to use Lightning Software
nayutainc
0
180
For_BCCC(20190520)
nayutainc
0
260
Other Decks in Technology
See All in Technology
30代エンジニアが考える、エンジニア生存戦略~~セキュリティを添えて~~
masakiokuda
4
2k
サーバシステムを無理なくコンテナ移行する際に伝えたい4つのポイント/Container_Happy_Migration_Method
ozawa
1
100
Go の analysis パッケージで自作するリファクタリングツール
kworkdev
PRO
1
420
非エンジニアにも伝えるメールセキュリティ / Email security for non-engineers
ykanoh
13
4k
チームの性質によって変わる ADR との向き合い方と、生成 AI 時代のこれから / How to deal with ADR depends on the characteristics of the team
mh4gf
4
340
Riverpod & Riverpod Generatorを利用して状態管理部分の処理を書き換えてみる簡単な事例紹介
fumiyasac0921
0
110
データベースで見る『家族アルバム みてね』の変遷 / The Evolution of Family Album Through the Lens of Databases
kohbis
2
460
20250326_管理ツールの権限管理で改善したこと
sasata299
1
390
新卒エンジニア研修の試行錯誤と工夫/nikkei-tech-talk-31
nishiuma
0
200
React Server Componentは 何を解決し何を解決しないのか / What do React Server Components solve, and what do they not solve?
kaminashi
6
1.2k
グループポリシー再確認
murachiakira
0
170
Amazon GuardDuty Malware Protection for Amazon S3を使おう
ryder472
2
110
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
The Cost Of JavaScript in 2023
addyosmani
48
7.6k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
KATA
mclloyd
29
14k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Building Your Own Lightsaber
phodgson
104
6.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Gamification - CAS2011
davidbonilla
81
5.2k
Fireside Chat
paigeccino
37
3.3k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Mobile First: as difficult as doing things right
swwweet
223
9.5k
Transcript
Lightning Network 技術的ではない概要の説明
Lightning Networkって? Bitcoinのブロックチェーンを 間接的に使ってBitcoinを送金するしくみ。
何がうれしいの? • 送金完了=決済完了 ◦ マイニングされるまで待つ、というような時間が不要 • サーバ不要 ◦ Bitcoinと同じく、誰かに情報登録するようなことはしない
その代わり・・・ • Lightning Networkというネットワークに参加しないと使えない ◦ ネットワーク上の誰かと接続する ◦ 接続するだけじゃなく、その間に「チャネル」というBitcoinアドレスを作って、どちらかが送金しないといけない
◦ チャネルを作るところまではBitcoinなので、マイニングされるまで時間がかかる • チャネルに入っているBitcoin量の範囲でしか送金できない ◦ 2人の間のBitcoin量が増減することで送金を表現しているので、後から追加できない ▪ 将来の仕様で検討中 • 送金先の相手が、そのタイミングでネットワーク上に存在していないとダメ ◦ Bitcoinだとブロックチェーンに書き込めばよいので、相手の状態は気にしなくてよい • しくみが複雑 ◦ 説明しても、誰も理解してくれない・・・
よくあるLightning払い (1) 今日もおいしかったよ。 サバが特に良かった。 ありがとうございます。 次回はカツオの季節ですね。
QR code こちらで お支払い ください。
よくあるLightning払い (2) QRコードを読み込ん で、支払い、っと
よくあるLightning払い (3) ・・・ ・・・ ・・・
よくあるLightning払い (4) ありがとうございます! また 来るよ いただき ました!
何が行われていたのか? 最初のこのシーンでは、支払いを受ける人が、支払う人に対してQRコードを渡している。 このQRコードは「invoice」(請求書)と呼ばれるもので、以下のような情報が入っている。 • invoiceを作成した人だけがチェックできるデータ ◦ payment
hashやR-HASHなどと呼ばれる • 送金してほしい金額 ◦ 単位:msat=1000分の1 satoshi=1000億分の1 BTC • invoiceを作成した日時 • invoiceの有効期間 • invoice作成者のデジタル署名
何が行われていたのか? このシーンでは、スマートフォンにインストールされているLightning WalletアプリケーションでinvoiceのQRコー ドを読み取っている。 ここでは以下を前提とした。 • 既にLightning Networkに参加している
• Lightning Networkで支払うのに十分な金額がある もし参加していなければQRコードを読む前に参加を促されるだろうし、金額が足りないようであればQRコード を読み取った時点で警告されて支払うことができない。
何が行われていたのか? そしてこのシーン。 ここではいろいろなことが内部で行われている。 • 支払いするLightning Networkの選択 ◦ 各Networkの人には中継手数料を払う(少額だが)
• 実際に送金したものの、途中でNetworkが切断されていたので選択のやり直し ◦ 成功するまで繰り返すので、たまに時間がかかることがある • 相手まで送金する意思が届いたので、送金側が間違いないか確認 • 送金情報に問題がなかったので、受け取った証明データを返す • 送金した人が、受け取った証明データに問題が無いことを確認 ・・・ ・・・ ・・・
何が行われていたのか? そして、全部問題なかったのでOKとなりました。 めでたしめでたし。 もしどこかでOKにならなかった場合? それは、送金失敗、になるだけである。 送金額が足りているのに失敗する場合は、自分と支払先のNetworkがどこかで切断されていることになるの
で、どうにかしてNetworkを作らないと先に進めない。 一番簡単なのは、送金先と直接Networkを作ることだろうが、作成完了まで時間がかかる・・・
Bitcoinを取り戻す Lightning Networkでの送金は、Lightning Network内で行われているだけなので、 Bitcoinとして使いたいので あればBitcoinとして取り戻すことになる。 Lightning Networkへ参加する場合は、別の参加者との間に Bitcoinアドレスを用意し、そこに送金した。 取り戻す場合はその逆で、送金した
Bitcoinアドレスからそれぞれに払い戻すことになる。 それはすなわち、そのルートでの Lightning Networkへの参加を 止めることを意味する。 なお、同時に複数のLightning Networkルートを作っておくのは 問題ない(むしろ、そちらの方が普通かもしれない )。 MultiSig 参加 取り戻す=離脱
おわりに Lightning Networkの概要を紹介した。 雰囲気だけでもつかんでもらえれば幸いである。 実際に動かしてみると、読んで想像したのと違うという印象を受けるのではないかと思う。 testnetであれば失敗しても金額的に損はしないので、ぜひ体験していただきたい。