1. hshimo

    No comment

    hshimo
Changes in body
Source | HTML | Preview
@@ -1,248 +1,249 @@
ビットコインのライトニングネットワークについて、メモ程度にざっくりと書いてみました。
2017/02/12更新: 数ヶ月ごとに仕様や実装などの状況が変わるので、定期的にアップデート予定です。
## 大雑把な理解のためのまとめ
### メリット
* マイクロペイメント・チャネルと違い、色々な人にマイクロペイメントができる
* 早い承認 (instant confirmation)
* 第三者への信用がいらない (trustless)
* 沢山の細かい支払いをしても、取引手数料がチャネル間ではかからない
* ビットコインのスケール問題への解決策の一つになる可能性
* ビットコインのブロックチェーンをほぼ使わず、沢山のトランザクションを処理できると期待されている
### どのように動くのか?
* 基本的には、マイクロペイメント・チャネルの技術を利用
* はじめに送金相手と支払いチャネルを開く
* 最初に送金するためのビットコインのデポジットが必要
* 2-of-2 マルチシグ・アドレスに送金するビットコインをデポジットする
* オフチェーンで送金できる (取引手数料がかからない、)
* はじめのトランザクションと最後のトランザクション以外にブロックチェーンにトランザクションをブロードキャストしない (その時の取引手数料が不要。ブロックチェーンの肥大化がなくなる)
* マイクロペイメント・チャネルを第三者を通して繋げて、多対多のペイメント・チャネルを作る
* 多対多にすると、ルーティングを仲介する第三者がビットコインを盗める可能性がある。対策として、トランザクションにハッシュを入れる
* ビットコインのブロックチェーンを利用するのは、基本的に最初と最後の2回。最初のデポジット用の2-of-2マルチシグ・アドレスへの送金時と、最後の支払いチャネルを閉じる(セトルメント)の時。
### わかりやすそうな記事
* [注目トピック:ライトニング・ネットワークとは何か? - CoinPortal](https://www.coin-portal.net/2016/11/12/14563/)
### 現状 (2017/02/12時点)
* lightningd, lnd, lit辺りが最新更新されている実装?
* litは、SPV
* ルーティングは、依然まだまだ? (flareも?)
* マルチホップもまだまだ? まずは、マルチホップなしからの実装を?
* SegWitなしでの実装もできなくないが厳しそう
* 相互互換性のためのBOLTが出てきたが、まとめ途中
* ホワイトペーパーはかなり古くて今は全然違うらしい (by タジ)
* 開発状況: [ライトニングネットワークの開発状況](http://www.unitedbitcoiners.com/blog/ae89f52fcd6)
* [ライトニングネットワークについてDryja氏にインタビュー - CoinPortal](https://www.coin-portal.net/2017/02/12/17564/?cat=postcat)
### 現状 (2016/08/13時点)
* SegWitがもう少しでBitcoin Coreに取り込まれる?
* トランザクション展性の問題は、SegWitで解決
* 実装は、3つくらいある?
* Blockchain.infoの実装がアルファか何か
* ルーティング辺りは、まだまだの様子
実際にまともに使えるようになるのに2016年中は難しそう。
### 現状 (2015/09/07時点)
* ホワイトペーパーがある
* 実装方法のアイディアが変更。ホワイトペーパーが、数ヶ月ごとにアップデートされる
* トランザクション展性の問題が存在
* 実現には、ビットコイン側の変更が必要だが、取り込まれるのは2016年になるのではと言われている
* 動く実装はない。はず。複数の人々が別々の実装に取り組んでいる模様。
## Lightning Networkを理解するための前提知識
理解するための前提知識がかなり多いです。
* ビットコインの技術的な基礎知識
* マルチシグ・アドレス (2-of-2)
* トランザクション
* ビットコインのScript
* マイクロペイメント・チャネル
* トランザクション展性
* nLockTime
* OP_CHECKLOCKTIMEVERIFY
ビットコインが、どのようにトランザクションを処理しているかを技術的に理解するには、Scriptのopcodeを理解する必要があります。
## マイクロペイメント・チャネルとLightning Networkのデメリット
* まずデポジットをしなくてはいけない
* 処理が複雑
* 監視する必要性
## マイクロペイメント・チャネルでなく、なぜLightning Networkが必要か?
* マイクロペイメント・チャネルだと一対一のチャネルしか作れない
* → ルーティングして多対多でできるようにする
## Hashed Timelock Contract (HTLC)
[Hashed Timelock Contract (HTLC) as proposed in lightning.network paper](https://gist.github.com/maraoz/d781393c0bd5b9f70c1f)
* hash160(R)を使って、途中経路のルーティングをする第三者がビットコインを盗めないようにする
## Lightning Networksの説明 by Rusty Russell
* [Lightning Networks Part I: Revocable Transactions - Rusty Russell's Coding Blog](http://rusty.ozlabs.org/?p=450)
* LNを実現するのに必要なこと: [Lightning Networks Part IV: Summary - Rusty Russell's Coding Blog](http://rusty.ozlabs.org/?p=477)
## より簡単で早くなる提案 by Rusty Russell
* [lightning/deployable-lightning.pdf at master · ElementsProject/lightning](https://github.com/ElementsProject/lightning/blob/master/doc/deployable-lightning.pdf)
## BOLT (Basis of Lightning Technology)
相互互換性のための仕様
* [lightningnetwork/lightning-rfc: Lightning Network Specifications](https://github.com/lightningnetwork/lightning-rfc)
* [lightning-rfc/00-introduction.md at master · lightningnetwork/lightning-rfc](https://github.com/lightningnetwork/lightning-rfc/blob/master/00-introduction.md)
## 批判・指摘
### Mike Hearn氏による技術的問題点の指摘
* [The capacity cliff — Medium](https://medium.com/@octskyward/the-capacity-cliff-586d1bf7715e)
### Bitcoin Magazineの記事
* [Here’s How Bitcoin's Lightning Network Could Fail | Bitcoin Magazine](https://bitcoinmagazine.com/articles/here-s-how-bitcoin-s-lightning-network-could-fail-1467736127/)
## Lightning Networkの実装
### lnd: Lingtning Labsの実装
[lightningnetwork/lnd: Lightning Network Daemon ⚡️](https://github.com/LightningNetwork/lnd)
### lit: The MIT Digital Currency Initiative@MIT Media Labの実装
* SPV
* Go言語
* タデウス・ドライジャ氏がメイン?
* GitHub: [mit-dci/lit: Lightning Network node software](https://github.com/mit-dci/lit)
### lightningd: BlockStreamの Rusty Russellの実装
* GitHub: [ElementsProject/lightning: Lightning network](https://github.com/ElementsProject/lightning)
### Thunder Network by Mats Jerratsch
Lightning Network のプロトタイプ実装。シンプルな実装。
-blockchain.info?
-[https://thunder.network](https://thunder.network/)
-ソースコード: [matsjj/thundernetwork](https://github.com/matsjj/thundernetwork)
-
+* 公式サイト: [Blockchain Thunder](https://www.blockchain.com/thunder/index.html)
+* 旧公式URL?: [https://thunder.network](https://thunder.network/)
+* GitHub: [blockchain/thunder: Off-Chain Bitcoin payments using smart contracts](https://github.com/blockchain/thunder)
+
+
### BlockStreamのElements by Rusty Russell
* [ElementsProject/lightning](https://github.com/ElementsProject/lightning)
### HashPlexの実装
[HashPlex Unveils Lightning Network Implementation](http://cointelegraph.com/news/115110/hashplex-unveils-lightning-network-implementation)
### Amiko Pay
off-blockchain Bitcoin transactions
[Amiko Pay](https://cornwarecjp.github.io/amiko-pay/)
* ScalingBitcoinでのプレゼン書き起こし: [amiko-pay](http://diyhpl.us/wiki/transcripts/scalingbitcoin/amiko-pay/)
## Onionルーティング実装
* SphinxとHornetのGo実装
* onion-routed HTLC ペイメント
[LightningNetwork/lightning-onion: Onion routed micropayments for the Bitcoin Lightning Network](https://github.com/LightningNetwork/lightning-onion)
## Lightning Network の公式サイト
[The Bitcoin Lightning Network](http://lightning.network/)
## 記事
* コインデスク: [Could the Bitcoin Lightning Network Solve Blockchain Scalability?](http://www.coindesk.com/could-the-bitcoin-lightning-network-solve-blockchain-scalability/)
## 参考
### Linghtning NetworkによるサマリPDF
http://lightning.network/lightning-network-summary.pdf
### ScalingBitcoin の内容
* Joseph Poonプレゼン書き起こし: [bitcoin-failure-modes-and-the-role-of-the-lightning-network](http://diyhpl.us/wiki/transcripts/scalingbitcoin/bitcoin-failure-modes-and-the-role-of-the-lightning-network/)
### Reddit
* [ELI5 the lightning network : Bitcoin](https://www.reddit.com/r/Bitcoin/comments/37n0l6/eli5_the_lightning_network/)
* [ELI5: Lightning Network : Bitcoin](https://www.reddit.com/r/Bitcoin/comments/3bqtrl/eli5_lightning_network/)
### Let's Talk Bitcoin: Rusty Russell of Blockstream
* [Let's Talk Bitcoin! #242 - Ride The Lightning Network | Lets Talk Bitcoin](https://letstalkbitcoin.com/blog/post/lets-talk-bitcoin-242-meet-the-lightning-network)
### 日本語での説明
* [【講演スライド】『Bitcoinとプライバシー』 | びりあるの研究ノート](https://blog.visvirial.com/articles/431)
### EthereumのLightning Network
Raiden
* [Ethereum Lightning Network and Beyond | Arcturnus](http://www.arcturnus.com/ethereum-lightning-network-and-beyond/)
* ビットコインのLightning Networkについても書いてある
### 実際に動かしてみた記事
* [ライトニングラボのlndでマイクロペイメントを実施](http://www.unitedbitcoiners.com/blog/lnd)
* [Lightningdのビルド、インストール方法 | ビットコイン研究所](http://doublehash.me/lightningd-build/)
* [ライトニングネットワーク送金の動作実証手順:1ミリサトシを送ってみた | ビットコイン研究所](http://doublehash.me/lightning-network-payment-succed/)
* [ライトニングネットワーク動作実証(その2)中継ノードを介した支払い | ビットコイン研究所](http://doublehash.me/lightning-network-hub-payment/)
### 基礎知識
基礎知識のnLockTimeと、Micropayment Channelsについては以下にまとめました。(英語ですみません、そのうち日本語にするかも)
* [Bitcoin - What is Micropayment Channels? - Qiita](http://qiita.com/hshimo/items/88cff76b1f174c5aaab8)
* [Bitcoin - What is "nLockTime"? - Qiita](http://qiita.com/hshimo/items/dee65aec244cb865d2b8)
## 雑談
* White Paperは難しすぎるらしい
* アンドレアス曰く、lndのコードが一番わかりやすいと言っていたらしい
* マルチホップの本当に少額のマイクロペイメントは結構厳しそう