マイクロペイメントチャネル
Lightning Networkはsegwit後に現実化し、大きく分けて3つの進化を辿っている。
単方向マイクロペイメントチャネル
二者間で、片方向に支払いが可能。チャンネルの有効期限が切れた場合、支払い側のユーザに全額返金される。
動画のstream payサービス等への応用が期待される。単方向payment channelは、segwitのactivation前でも利用可能。
オープニングトランザクションの前にUTXOの交換という行為が存在しないため、transaction mariability問題を考慮する必要がない。
双方向マイクロペイメントチャネル
二者間で、相互に支払いが可能。
チャネルの有効期限は原則存在しない。コミットメントトランザクションを双方が作成しておき、相手から応答がなくなったらブロードキャストする。
UTXOの参照にはTX IDを利用するが、segwitによってこれが変更されないことを保証する。
不正防止のためには、TXがブロードキャストされたタイミングで確認する必要があるが、その監視をどのように行うのかという問題が存在している。
マルチホップペイメント
不特定多数に対し、双方向に支払いが可能。HTLCを用いる。 単純な双方向ペイメントチャネルと比較して、各チャンネル単位でデポジットを行う必要がないため、デポジットの額をへらすことができる。
HTLC
A Hashed Time-Locked Contract (HTLC) is a script that permits a designated party (the "seller") to spend funds by disclosing the preimage of a hash. It also permits a second party (the "buyer") to spend the funds after a timeout is reached, in a refund situation.
OP_IF
[HASHOP] <digest> OP_EQUALVERIFY OP_DUP OP_HASH160 <seller pubkey hash>
OP_ELSE
<num> [TIMEOUTOP] OP_DROP OP_DUP OP_HASH160 <buyer pubkey hash>
OP_ENDIF
OP_EQUALVERIFY
OP_CHECKSIG
最終的には、コミットメントトランザクションの残高を更新するだけで、中間者を経由した送金が完了する。
Lightning Network
マルチホップペイメントに標準規格を設定したもの。標準化仕様としてBOLTが作成されており、これに則って作成することで、各自が独自に開発しているクライアント間でのマルチホップペイメントが可能となるように実装されている。