Lightning Loopを触ってみる
こんにちは、HashHubの所属のエンジニア白井です。第2回目のTechBlogですね。よろしくお願いします。
前回に引き続き、今回もLightning Networkについてご紹介いたしますLightning Networkってなに?って方は是非とも前回の記事もご確認ください。
Lightning LabsからLightning Loopが発表されたよ
先日、Lightning Networkの実装の一つであるLNDを開発しているLightning LabsからLightning Loopというものがリリースされました。
Lighnint Loopとは、Submarine Swapというオンチェーンとオフチェーンの資金交換をトラストレスに行う技術を応用したサービスになります。
Lightning Networkで資金のやり取りをする時、ユーザーは最初に資金をデポジットし、取引相手とペイメントチャネルというもの開設する必要があります。ペイメントチャネルを開設した時に、デポジットした額がキャパシティとなり、オフチェーンで決済を行うことが出来る範囲となります。キャパシティを超える額の決済は出来ないし、どちらか一方の残高が0になると、0になったユーザーからそれ以上の送金は出来なくなります。逆に残高がキャパシティの額に達してしまうと、受け取りも出来なくなってしまいます。
これまで、キャパシティを調整するためには一度チャネルを閉じて新しく開設しなおす必要がありました。
しかし、今回リリースされたLightning Loopにより、ペイメントチャネルを開いたまま受け取りキャパシティの増加(Loop Out)が可能になりました。オフチェーン上の資金がペイメントチャネルの上限に達しそうになった場合でもオンチェーン上に資金を逃がすことでキャパシティを増やすことが出来ます。
リリースで発表されたのはLoop Outの機能のみですが、将来的にはウォレットなどのオンチェーン上の資金をオフチェーンに補充(Loop In)することも可能になるようです。
オンチェーンとオフチェーンで資金を移動する必要がある場合でもチャネルを閉じる必要がなくなりアクティブな状態に保つことが出来るので、オフチェーン上のネットワークが安定することで資金の流動性に貢献する技術として注目されています。
というわけでちょっと触ってみた。
というわけで初回リリース版のLightning Loopを触ってLoop Outを体験してみました。
公式ページに載っていることの繰り返しにはなってしまいますが、解説もいれながら以下に動かす手順をまとめます。
Bitcoinクライアントとlndのインストール
まず、Loopを動かすには、Lightning Labが開発するLightningの実装であるlndとBitcoinクライアントがインストールされている必要があります。
lndのbuild
githubからlndをクローンしたら、loopを使うための特別なbuild Tagをつけてbuildします。
cd lnd
make install tags="signrpc walletrpc chainrpc"
既にlndがインストールされていた場合は、既存の.macaroonファイルは使えないので削除します。.macaroon拡張子以外のファイルは削除しないように気をつけてください。
// Example on Linux to see macaroons in the default directory:
ls ~/.lnd/data/chain/bitcoin/mainnet// 自分はmacだったので以下にありました
ls ~/Library/Application\ Support/Lnd/data/chain/bitcoin/mainnet/
ファイルを削除したあとlndを立ち上げ直します。このとき.macaroonが自動生成されます( lnd.confなどで— no-macaroonsを指定してると生成されないので注意してください)。
lncli stop
lnd
lncli unlock
Lightning Loopクライアントのインストール
git clone https://github.com/lightninglabs/loop.git
cd loop/cmd
go install ./...
Loopクライアントの起動とlndとの接続
loopd
// Or if you want to do everything in the same terminal and background loopd
loopd &
// For testnet mode, you'll need to specify the network as mainnet is the
default:
loopd --network=testnet
Loop Outする
以下のコマンドでライトニングのオフチェーン資金からビットコインのオンチェーンアドレスに資金が戻ります。
loop out <amt_in_satoshis>
まとめ
前回の記事にも書いたとおり、Lightning Networkはもの凄い勢いで成長している真っ最中ですが、実際に世界中で使われるペイメントプロトコルとなるにはまだまだ解決すべき問題が残っています。
Lightning Loopはそれら問題を解決するべく提案された新サービスです。こういったサービスは現在多数開発中のものがあり、今後もどんどん新しいものが登場すると思われます。
Lightning Networkを使うことで、これまでなかったようなビジネスが生まれる可能性があります。Lightning Loopのような新技術にも常にアンテナを張って、どんな未来が実現出来るか考えていきたいですね!
参考資料
お知らせ
■HashHubでは入居者募集中です!
HashHubは、ブロックチェーン業界で働いている人のためのコワーキングスペースを運営しています。ご利用をご検討の方は、下記のWEBサイトからお問い合わせください。また、最新情報はTwitterで発信中です。
HashHub:https://hashhub.tokyo/
Twitter:https://twitter.com/HashHub_Tokyo
■ブロックチェーンエンジニア集中講座開講中!
HashHubではブロックチェーンエンジニアを育成するための短期集中講座を開講しています。お申込み、詳細は下記のページをご覧ください。
ブロックチェーンエンジニア集中講座:https://www.blockchain-edu.jp/
■HashHubでは下記のポジションを積極採用中です!
・コミュニティマネージャー
・ブロックチェーン技術者・開発者
・ビジネスディベロップメント
詳細は下記Wantedlyのページをご覧ください。
Wantedly:https://www.wantedly.com/companies/hashhub/projects