ライトニング・ネットワーク – 正義はどこにあるか

原文:Lightning Network (Part 3) – Where Is The Justice?

当社は、ライトニング・ネットワークに関するこの3回目のレポートでは、ライトニング・チャンネル・クロージャー・シナリオと、不正な当事者を罰し、ファンドを盗むのを防ぐインセンティブについて詳しく検討します。この罰則のメカニズムは「ジャスティス・トランザクション」と呼ばれます。「ジャスティス(正義・公正)」シナリオを意図的に構築する方法を説明し、ビットコイン・ネットワークにおけるこのタイプのトランザクションの普及に関するデータを提示します。当社は、2017年末のライトニング・ネットワークの開始以来、2.22BTCに値する241個のジャスティス・トランザクションらしきものを特定しました。

(シンガポールの街を襲う稲妻)

概観

20181の、ライトニング・ネットワークの背後にあるインセンティブに関する議論と、20193の、ライトニング・ネットワーク・ルーティング費用の経済性に関する分析に続いて、シリーズ3回目の今回は、以前のチャンネル状態をブロードキャストすることにより、チャネル・クロージャーと、不正なライトニング・ノードが資金を盗むのを防止するよう設計されたインセンティブに注目します。

設計上、泥棒がライトニング・ネットワークでお金を盗もうとして捕まると、盗もうとしていたお金を失うだけでなく、関連チャネルのすべての資金を失う点がポイントです。この「罰」は抑止力として機能すると期待されており、「ジャスティス」と呼ばれることもあります。

4つのライトニング・チャネル・クロージャー・シナリオ

一般的には、ライトニング・チャンネルを開く方が、閉じるよりも簡単です。ライトニング・チャンネルを開く唯一の方法は、当事者間のインタラクティブなコミュニケーションを伴った協力的な方法です。一方、チャネル・クロージャーを評価するときは、下のディシジョン・ツリーで示されている通り、4つの異なるシナリオを検討する必要があります(図1を参照)。

1-ライトニング・ネットワーク・チャネル・クロージャーのタイプディシジョン・ツリー

(Source: BitMEX Research)

2 – ライトニング・チャネル・クロージャーの4つのシナリオに関する説明

クロージャータイプ 説明 オンチェーンの技術的な詳細とトランザクションの例
これが最も一般的なシナリオです。

協力的なクロージャーは、正直なノードがチャネル・クロージャーを開始し、チャネルの反対側のノードがオンラインで通信中に発生します。

資金は、最新のチャネル状態に基づいて各当事者のオンチェーン・ウォレットに分配されます。

協力的なクロージャーには、オンチェーン・トランザクションが1つだけ必要です。

インプットは、「通常」2分の2の署名が必要な2/2マルチ・シグネチャー・スクリプトを用いて、最新のチャネル状態に基づいた収支バランスに基づいて、それぞれの署名(シグネチャー)の関係者に属する2つのアウトプットに送信されます。

この取引はライトニングとして識別するのが難しく、チャネル・クロージャーの3つのタイプの中でプライバシーのレベルが最も高いものです。

クロージャーの例:

非協力的で違反のないクロージャーは、正直なノードが、チャネルのもう一方の側のノードと直接通信せずにクロージャーを開始したときに発生します。資金は、最新のチャネル状態に基づいて各当事者のオンチェーン・ウォレットに分配されます。 これら2つの異なる経済シナリオは、1つの技術的なオンチェーン・シナリオで表されます。

このシナリオでは、2つのオンチェーン・トランザクションが必要です。

 

まず、資金は2/2マルチ・シグネチャーの証人を利用して払い戻され、2つのアウトプットに送信されます。クロージャーを開始しなかったノードには、チャネル・クロージャーの当事者が自分たちに帰属すべきだと主張する内容にしたがって、資金が割り当てられ、OP_IFまたはOP_ELSEスクリプトのいずれかを使用することによって、払い戻しできる別の資金がアウトプットに送信されます。

2番目のトランザクションでは、OP_IFスクリプトに送信された資金は、ビットコインスクリプトのOP_ELSEブランチを用いて、チャネルのクロージャーを開始した当事者によって請求されます。

クロージャーの例:

非協力的で違反のあるジャスティスなしのクロージャーは、不正なノードが以前のチャネル状態をブロードキャストすることによってチャネル・クロージャーを開始し、チャネルの反対側のノードから資金を盗もうとするときに発生します。

ノン・クロージング・ノードは、通常24時間のロックタイム内にネットワークをチェックせず、ジャスティス・トランザクションをブロードキャストしません。このため、盗難が成功します。

資金は、以前のチャネル状態に基づいて各当事者のウォレットに分配されます。これにより、ノン・クロージング・パーティは資金を失い、不正なチャネル・クロージング・パーティは資金を盗み出すことに成功します。

非協力的で違反のあるジャスティスありのクロージャーは、不正なノードがチャネルの反対側のノードと直接通信せずに、チャネルのクロージャーを開始すると発生します。

ノン・クロージング・ノードは、ロックタイム内にネットワークをチェックし、ジャスティス・トランザクションを作成して、盗難の試みが失敗するようにします。

盗難を行おうとした者は罰せられ、すべての資金は正直なノン・クロージング・パーティに送信されます。

ジャスティス・シナリオでは、2つのオンチェーン・トランザクションも必要です。

最初のトランザクションでは、2/2マルチ・シグネチャー証人を用いて、資金の払い戻しを受けることができ、2つのアウトプットに送信されます。クロージャーを開始しなかったノードには、チャネル・クロージャー当事者が自分たちに帰属すべきだと主張する内容に基づいて資金が割り当てられ、OP_IFまたはOP_ELSEスクリプトのいずれかを用いて払い戻すことができる別の資金がアウトプットに送信されます

クローズを開始しなかった2番目のトランザクションである正直なノードは、OP_IFブランチを用いて、OP_IFスクリプトに送信されたすべての資金を請求します。

これは、チャネル・クロージャーの3つのタイプの中で最も公開性の高いものであり、提供されるプライバシーのレベルは最も低くなります。

クロージャー例:

どのようにしてジャスティス・トランザクションを構築するか?

以下の恣意的なシナリオでは、次の手順を用いて、ジャスティス・トランザクションを手動で構築しました。 

1. 別名「BitMEXThief」を用いて新たなライトニング・ネットワーク・ノード(LND)を起動し、BitMEXResearchライトニング・ノードで50米ドル(400,000 サトシ)相当のチャネルを開きます。
2. BitMEXThiefノードをオフにして、.lndディレクトリをバックアップします。
3. BitMEXThiefノードを再起動し、BitMEXResearchに25米ドル(200,000サトシ)のライトニング・ペイメントを行います。これでチャネルの収支のバランスが取れ、双方向で25ドルになりました。
4. BitMEXThiefノードを再度オフにします。
5. BitMEXResearchライトニング・ノードをオフにします(泥棒ノードに最新のチャネル状態がブロードキャストされないようにするため)。
6. BitMEXThiefノードを、チャネルを再バランスする前の状態であるステップ2の状態に復元します。
7. 復元されたBitMEXThiefノードで、以前の状態からのチャネルを閉じ、BitMEXThiefノードのオンチェーン・ウォレットに50米ドル(400,000サトシ)の全額を請求することを試みます。
8. BitMEXResearchノードを再起動します。ノードは、盗難の試みを自動的に検出し、「ジャスティス・トランザクション」をブロードキャストして、50ドル(手数料なし)をオンチェーン・ウォレットに送信します。チャネル内のすべての資金を失うことで、泥棒は罰せられました。泥棒は25米ドルを盗もうとしましたが、50米ドル全額を失ったことに注目してください。

上記の実験は正常に行われ、ライトニングが実際に作動し、盗もうとすると罰せられるということがある程度確認されました。

ネットワーク・ジャスティス・トランザクション・データ

独自のジャスティス・トランザクションを実行した後、このトランザクションの特性(OP_IFブランチを用いて払い戻されたインプット)を確認し、Bitcoinブロックチェーン上の他のジャスティス・トランザクションを調べました。201712月まで遡り、ジャスティス・チャネル・クロージャーであると考えられる241のトランザクションを特定しました。LightningLabsAlex Bosworth氏は、ジャスティス・トランザクションを識別するためのツールを作成しましたが、その方が、当社の基本的な検索方法より確実かもしれません。

3 – ジャスティス・トランザクションの数月次

(出典: BitMEX Research)
(注: データには誤検出が含まれる可能性があります)

図 4 – ジャスティス・トランザクションで払い戻された額 – 月次 (BTC)

(出典: BitMEX Research)

(: データには誤検出が含まれる可能性があります)

当社が特定したジャスティス・トランザクションには、上の図4が示すように、合計2.22 BTCのトランザクション・インプットがあり、20192月の月間合計は約0.67BTCでした。これは、不正なノードが盗みを試みた量よりも大きな量について泥棒を罰した可能性があるため、必ずしも2.22 BTCを実際に盗んだことを意味するわけではないことを示しています(最新のチャネル状態はわかりません)。2.22 BTCは、正直なノン・チャネル・クロージング・ノードが請求する合計資金を表し、この額の一部は元々不正なノードが所有する資金であり、この額の一部が盗もうとした額になります。

また、241件のジャスティス・トランザクションの多くが本物の不正ではない可能性もあります。たとえば、システムをテストしている場合、同じユーザーが問題となっているライトニング・ノードの両方を所有している場合があります。たとえば、BitMEX Research241のジャスティス・トランザクションのうちその5つに責任がある場合、BitMEXがすべてのノードと資金を所有しているため、被害者は発生しません。

2BTCをわずかに上回る241のジャスティス・トランザクションは、ライトニング・ネットワークのサイズに比べてかなり小さなものです。ライトニング・ネットワークの統計ウェブサイト1ml.comは、現在32,951チャネルにおいて940 BTCがロックされていることを示しています。したがって、過去18か月間のジャスティス・トランザクションの総数は、現在のライトニング・チャネルの数のわずか0.7%です。

結論

ライトニング・ネットワークが堅牢で信頼性が高く、拡張可能な支払いシステムとして成功するためには、ジャスティス・メカニズムが盗難の抑止と防止に効果的でなければなりません。最適なジャスティス率に関しては、同率が高すぎるかどうかを判断するのは困難です。ジャスティス率が高すぎる場合、盗難者が多すぎて、ジャスティスの脅威が十分でない可能性があることを示します。ジャスティス率が低すぎる場合は、誰も盗難を試みていない可能性があり、これによって、ユーザーが自分のチャンネルを監視しなくなるリスクが高まります。これは、将来的に、システマティックな大規模なチャネル・セフト(窃盗)が発生するリスクの増大につながる可能性があります。

今のところ、少なくとも当社が分析したデータによれば、急成長しているライトニング・ネットワークのジャスティスの程度は妥当であると考えられます。