ビットコインの Lightning Network メモ

  • 18
    いいね
  • 0
    コメント

ビットコインのライトニングネットワークについて、メモ程度にざっくりと書いてみました。
2017/02/12更新: 数ヶ月ごとに仕様や実装などの状況が変わるので、定期的にアップデート予定です。

大雑把な理解のためのまとめ

メリット

  • マイクロペイメント・チャネルと違い、色々な人にマイクロペイメントができる
  • 早い承認 (instant confirmation)
  • 第三者への信用がいらない (trustless)
  • 沢山の細かい支払いをしても、取引手数料がチャネル間ではかからない
  • ビットコインのスケール問題への解決策の一つになる可能性
    • ビットコインのブロックチェーンをほぼ使わず、沢山のトランザクションを処理できると期待されている

どのように動くのか?

  • 基本的には、マイクロペイメント・チャネルの技術を利用
    • はじめに送金相手と支払いチャネルを開く
    • 最初に送金するためのビットコインのデポジットが必要
    • 2-of-2 マルチシグ・アドレスに送金するビットコインをデポジットする
    • オフチェーンで送金できる (取引手数料がかからない、)
  • はじめのトランザクションと最後のトランザクション以外にブロックチェーンにトランザクションをブロードキャストしない (その時の取引手数料が不要。ブロックチェーンの肥大化がなくなる)
  • マイクロペイメント・チャネルを第三者を通して繋げて、多対多のペイメント・チャネルを作る
  • 多対多にすると、ルーティングを仲介する第三者がビットコインを盗める可能性がある。対策として、トランザクションにハッシュを入れる
  • ビットコインのブロックチェーンを利用するのは、基本的に最初と最後の2回。最初のデポジット用の2-of-2マルチシグ・アドレスへの送金時と、最後の支払いチャネルを閉じる(セトルメント)の時。

わかりやすそうな記事

現状 (2017/02/12時点)

現状 (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

  • hash160(R)を使って、途中経路のルーティングをする第三者がビットコインを盗めないようにする

Lightning Networksの説明 by Rusty Russell

より簡単で早くなる提案 by Rusty Russell

BOLT (Basis of Lightning Technology)

相互互換性のための仕様

批判・指摘

Mike Hearn氏による技術的問題点の指摘

Bitcoin Magazineの記事

Lightning Networkの実装

lnd: Lingtning Labsの実装

lightningnetwork/lnd: Lightning Network Daemon ⚡️

lit: The MIT Digital Currency Initiative@MIT Media Labの実装

lightningd: BlockStreamの Rusty Russellの実装

Thunder Network by Mats Jerratsch

Lightning Network のプロトタイプ実装。シンプルな実装。

BlockStreamのElements by Rusty Russell

HashPlexの実装

HashPlex Unveils Lightning Network Implementation

Amiko Pay

off-blockchain Bitcoin transactions
Amiko Pay

  • ScalingBitcoinでのプレゼン書き起こし: amiko-pay

Onionルーティング実装

  • SphinxとHornetのGo実装
  • onion-routed HTLC ペイメント

LightningNetwork/lightning-onion: Onion routed micropayments for the Bitcoin Lightning Network

Lightning Network の公式サイト

The Bitcoin Lightning Network

記事

参考

Linghtning NetworkによるサマリPDF

http://lightning.network/lightning-network-summary.pdf

ScalingBitcoin の内容

Reddit

Let's Talk Bitcoin: Rusty Russell of Blockstream

日本語での説明

EthereumのLightning Network

Raiden

実際に動かしてみた記事

基礎知識

基礎知識のnLockTimeと、Micropayment Channelsについては以下にまとめました。(英語ですみません、そのうち日本語にするかも)

雑談

  • White Paperは難しすぎるらしい
  • アンドレアス曰く、lndのコードが一番わかりやすいと言っていたらしい
  • マルチホップの本当に少額のマイクロペイメントは結構厳しそう