ライトニングノードを維持するにあたって基本的な関心事は故障やバグの可能性と、盗難を防ぐセキュリティの2つです。最近はチャネル情報のクラウドへのバックアップ等で故障リスクに対処するアプローチがありますが、後者はまだ必要な知識を身に付けてノードを適切に守る以外の対策はありません。これはライトニングノードがホットウォレットであることに起因します。
一般的には仮想通貨の保管においてホットウォレットを避け、インターネットから隔離された場所に秘密鍵を保管するコールドウォレットの利用がベストプラクティスであることは皆様もご存知のとおりです。その際に秘密鍵だけでなく署名デバイスごとオフラインに置く一例がハードウェアウォレットです。
今日はライトニングノードの秘密鍵と署名ロジックをノード自体から隔離してライトニングノードの攻撃表面を小さくすることを目標に開発されているVLS (Validating Lightning Signer)について、概要と応用方法を解説します。
Validating Lightning Signerの存在意義
VLS (Validating Lightning Signer)はライトニングノードの署名機能をまるごとライトニングノードとは別のところに移動することでセキュリティ対策をしやすくすることが目的のソフトウェアプロジェクトで、Spiral (旧Block Crypto)から資金提供を受けています。
ライトニングノード間でメッセージをやりとりできるSNS、Sphinx.chatの開発者たちが中心となって開発しています。最近Sphinx.chatの話はあまり聞かなくなってしまいました。(2020年が利用のピークだった印象があります)
ライトニングノードのアーキテクチャで、署名鍵を扱う部分(Signer)がノード全体の中で密結合になっている実装をモノリス型と表現できます。モノリス型のライトニングノードは中身が複雑なため脆弱性が潜む可能性が高く、盗難を狙う悪者にとって絶好の攻撃対象です。これを攻撃表面が大きいと表現します。
では、Signerをノードから分離できたら攻撃表面はどうなるのでしょうか?