本記事では「Lightning Network(LN)におけるWatchtower機能の概要」と「Watchtowerの最近の動向」についてまとめます。
私自身、LNが本番稼働を始めた2018年前後から、LNの補助的要素として注目されたWatchtowerについてリサーチしていました。
現在、ニチビでLNノードの安全な運用方法の検討や、最新のプロトコルの動向の調査にあたって、あらためてWatchtowerの応用可能性に注目し、リサーチをしています。
WatchtowerはLNノードのオンライン要件をカバーする要素として、LNがスタートした当初は盛り上がりを見せ期待されていたものの、最近ではノード運用をしたことのある一部の人を除いては、聞いたことがないかもしれません。
一方で、多くの新規プロトコルの議論において、Watchtowerの重要性や応用可能性を期待する言及が見られます。
本記事では「Watchtowerはなぜ盛り上がりを見せていないのか」と「Watchtowerにはどのような将来性があり、いかに重要なのか」がわかるように解説したいと思いいます。
LNノードのオフライン時におけるチャネル資金の喪失リスク
Watchtowerの説明に入る前に、前提としてLNのオフライン時における脆弱性について説明します。LNの仕様についてご存知の方はこの節を読み飛ばしても問題ありません。
LNでは、LNノードオフライン時にチャネル相手によってチャネル資金を奪われる恐れがあります。

LNにおけるオフチェーンでの送金の仕組みとして、まず2-of-2のマルチシグトランザクションをオンチェーンに公開することでLNチャネルを開設します。マルチシグを共同でロックした相手とコントラクトでお互いの行動を縛ったトランザクションを交換することでオフチェーン送金が可能になります。
LNチャネル開設後、チャネル開設相手がオフラインの場合、オフチェーン送金は行えません。
このような場合、オンラインのユーザーはオフチェーンの最新のバランス情報を反映したトランザクションを公開し、一定期間のタイムロックを待つことで、ロックした自身の資金を回収することが可能です。
一方で、オンラインのユーザーが所有するチャネルの古いバランス情報を反映したトランザクションをオンチェーンに公開し、タイムロック後にブロックに取り込まれてしまうと、古い状態が正しいものとしてファイナライズさてしまいます。
オンラインのユーザーは過去の自分にとって都合のいいバランス情報を公開することで、チャネル資金情報のロールバックを起こし、不当な利益を獲得する可能性があります。
そのため、チャネルを開設済みのLNノードは常にオンラインであることが求められます。
もしくは、オフラインになってしまったチャネル運用者はすぐにノードを復旧することが求められます。ノード復旧ができた場合、LNノードはオフライン時のオンチェーン情報を一覧することで、チャネル開設相手が不正なトランザクションを公開していないかを確認します。もし不正なトランザクションを発見した場合、最新のバランス情報を反映したトランザクションを公開することにより、チャネル相手がロックした資金を没収することが可能です。
オフライン時の危険性から守るためのWatchtower

LNノードがオフライン時、または発生後にLNノードのデータの不整合が発生しないように保護するのがWatchtowerの役目です。
LNノードの復旧時、LNのデータに損傷が起きている危険があります。
もしも、データの損傷により過去のトランザクションを最新の物だと思い込んだLNノードがそのトランザクションをオンチェーンに公開すると、意図せずチャネルの資金を失う可能性があります。
また、LNノードを運用していたデバイスとデータが完全に故障してしまった場合では、なすすべなくチャネル開設相手を信頼し、誠実に振る舞うことを祈ることしかできません。
その他にも、チャネル開設相手のLNノードに対して、意図的にDoS攻撃を仕掛けるなどによりサービス妨害を行い、ノードの停止や罰則実行の阻止を行う攻撃も可能です。
LNノードがオフラインになってしまうことに備え、保険的に採用されるのがWatchtowerです。
Watchtowerとは?: 役割とLNノードとの連携の流れ
Watchtowerとは、上述したLNノードのオフライン時における課題をカバーするため、LNノードの運用者から委託を受け、代わりにオンチェーントランザクションの監視・不正な取引の検出・罰則の代行を行うモニタリングエージェントです。

LNノードの運用者とWatchtowerサーバーは以下の順序で監視の依頼、罰則の実行を行います。
1. LNノードの監視依頼契約の締結
Watchtowerから監視による保護を受けたいLNノードは、自身が運用するWatchtowerサーバー、または他者が運用情報を公開するWatchtowerサーバーに対してネゴシエーションを行い、監視を依頼します。具体的には、LNソフトウェアでWatchtower専用のアドオンやオプションを実行してWatchtowerクライアントとしての機能をアクティベートし、Watchtowerサーバーに対して監視依頼メッセージを送信します。
2. トランザクション情報の共有
LNノードはチャネルバランスの更新が走るたびに、自身が所有するオフチェーントランザクションの暗号化し、罰則実行の目印となる情報のセットをWatchtowerに対して共有します。
- オンチェーントランザクションの監視
WatchtowerはフルノードとしてBitcoinブロックチェーンを監視し、罰則実行の目印情報と各新規ブロックのトランザクションをパターンマッチングします。
- 罰則の実行
不正トランザクション検出時、Watchtowerは監視の依頼主のLNノードから署名された状態であらかじめ受け取った暗号化済み罰則付きトランザクションを、オンチェーンの情報から復号用の情報を取得して復号した後、オンチェーンに公開します。これにより、攻撃者の資金は没収され、誠実な参加者に返還されます。
第三者へのトラストが発生するのでは?
Watchtowerの運用では第三者に対するトラストが発生する懸念を持つ方もいるかと思います。確かに部分的にトラストは発生しますが、現在のWatchtowerの実装では、依頼者のLNノード情報をなるべく把握いないような技術的工夫がなされており、トラストレスになるような設計がされています。(トラストレスにするための詳細な技術仕様については今後の記事で説明予定です。)
また、Watchtowerを利用するか否かはあくまでオプショナルであり、利用する場合においても単一ではなく複数のWatchtowerに依頼することが推奨されています。
Watchtowerは存在するという事実が重要であり、罰を施行する番人のような存在が、LN全体における不正をするインセンティブを下げることができます。
Watchtowerにおける3つの課題

冒頭でも書いた通り、LNにとってWatchtowerは重要なのコンポーネントである一方で現在はあまり注目されていません。その原因であるWatchtowerの多くの課題について説明してみます。
(課題1) 活躍の機会が少なく需要が低い
Florian Grötschlaらの研究によれば2019–2023の期間で罰則が実行されたのは181件のみでした。LNにおける不正な取引の件数を正確に把握する術はないため、あくまで成功した罰則の実施件数しか分かりませんが、年間約30件程度のアクシデントを警戒する人は少ない思われます。
また、タイムロック期間中にLNノードを再起動することができれば、資金を失うことはありません。Watchtowerを採用する以前に、可用性の高いLNノードを運用環境を整備することができれば問題はありません。
非常に大きな額の資金を運用していない限り、Watchtowerを採用するメリットはあまり感じられないというのが採用に至らない理由だと推察しています。
(課題2) 相互運用可能な標準仕様の欠如
Watchtowerには正式に認められた標準仕様がないのが現状です。BOLT 13としてWatchtowerのプロトコルについてのドラフトが公開されていますが、5年前から議論はストップしており、内容的にも整理が甘い箇所が散見されます。
標準がないことにより、LNノードはどのような方法でWatchtowerを発見するかについての探索・発見プロトコルがありません。現在はRedditやXなどでの周知や、Lightning.plusが運用するWatch Swapsサービスなど、プラットフォームに依存した発見方法に頼るしかありません。
(課題3) 運用する経済的インセンティブ設計が未成熟
この課題は課題1,2と関連します。現在ではWatchtowerを運用することによって運用者が得られる資金は有志からの寄付以外には特にありません。そもそもLNにおいてどの程度不正なオフチェーントランザクションが公開されているのかを把握する方法はなく、確認できる罰則の頻度が低いことから相場感も把握しづらいです。
また、その支払い方法について、BOLT13では運用報酬の支払い形式としてサブスク・従量課金方式などの言及がありますが、具体的にそれをどのように実現するか、などについては説明がありません。
一方で、Watchtowerを運用するためには、監視を委託されたLNノードから受け取る情報の数や頻度は高く、ストレージやネットワークなど、運用者に求められるコストは高くなります。
報酬設計と同時にWatchtowerへの罰則のプロトコルの設計も必要です。報酬を受け取った上で機能しない不正なWatchtowerを抑制する必要があります。報酬と罰則に関しての仕組み提案した研究としてGeorgia AvarikiotiのCerberus Channelsがあります。この提案については今後別の記事で詳細にまとめる予定です。
現在では自身でLNノードとWatchtowerノードの両方を運用されることが多いと推察しています。
期待されている5つの利用方法

Watchtowerは現在でも発展途上の段階です。最後に、現在期待されている利用方法を以下に羅列します。
1. 商用Watchtowerプロバイダ
サブスクや成果報酬で利益を得るWatchtowerサービスの登場が期待されます。Bitcoin決済が普及しLightningサービスプロバイダー(LSP)や個人によるLNノードの運用者が増えることで、保険的にWatchtowerによる保護を受けたいという人は増加すると予想できます。複数のLNノードとコネクションを張ることを想定すると、Watchtowerサービスプロバイダーは過剰に個人情報を収集しないように注意が必要です。
2. モバイルやIoT向けのセキュリティ基盤
ストレージやバッテリーが限られて常にオンラインでない、モバイルやIoTデバイスなどでのLNノードを運用を想定すると、安全性が課題となります。軽量デバイスにおけるLNノードのセキュリティ担保には限界があるため、外部のWatchtowerサーバーと連携することで、デバイスの資金を守ることができます。
3. OP_VAULTコベナンツの監視
OP_VAULTのようなコベナンツでは、資金回収時にオンチェーンで一定期期間のタイムロックを設定し、即時の資金回収はできない仕組みになっています。もしそれが不正な資金引き出しだった場合に、タイムロック期間中に一定条件をクリアした正しいTXを公開することで、不正な引き出しを阻止することが可能です。LNでの不正監視と同様に、WatchtowerがVaultからの不正な資金回収を監視し、阻止することに一役買うかもしれません。
4. Arkとの連携
Arkを利用したArk Service Provider(ASP)の仕様によっては、ユーザーは決められた期間中にオンラインになり、ASPとの連携した作業が求められます。オンラインにならなかったユーザーは一時的にASPによって資金が管理可能な状態になってしまいます。Watchtowerがユーザーの代わりにオンラインでの作業を担うことにより、ユーザーの資金はより安全に管理できるようになるかもしれません。
5. 分散型Watchtowerネットワーク
Watchtower同士のP2Pなネットワーク構築も構想されており、Watchtower同士がインセンティブ付きで監視を分担するような仕組みが検討されています。現状の特定のWatchtowerによる監視に依存するモデルはセキュリティ・プライバシー面でも安全とは言い難いです。よりトラストレスなアーキテクチャに進化することで、ユーザーにとっての利用障壁が低くなることも期待できます。
私個人はとしては、上述した通りWatchtowerは経済的インセンティブなどの構造的な問題を抱えているため、3,4のコベナンツやArkといった新しい様々なプロトコルと連携した保護機能を提供可能にすることにより、BitcoinエコシステムにおいてWatchtowerがより重要な役割になると期待しています。
また「5. 分散型Watchtowerネットワーク」のような、Watchtower同士が連携したネットワークレイヤーが出来上がることで、WatchtowerはBitcoinにおけるセキュリティーレイヤーとなるポテンシャルを持っていると考えています。
まとめ:Watchtower技術者コミュニティの活性化への期待
本記事ではオフライン時のLNノードの状態を監視・保護する機能を持ったWatchtowerの概要を説明しました。その上で、Watchtowerの課題である運用メリットが少ない点や、経済的インセンティブが未熟な点、技術議論自体が発展途上な点について説明しました。
その一方でWatchtowerには様々な期待とポテンシャルがあることについて述べました。
課題の多くはWatchtowerに注力する技術者は少ないこともが要因の1つであると考えているため、本ブログでは継続的にWatchtowerについての記事を公開し、一緒に議論できる人が現れることを期待しています。
今後の記事ではより詳細なWatchtowerの仕様を解説します。Watchtowerが依頼元のLNノードの情報をなるべく把握しないために、トラストレスにするためにどのような工夫がなされているか、「期待されている利用方法」に書いた各個別のユースケースの議論を深掘りして説明します。