
「Who Patches the Lightning Network? Release Lines from Gossip, Node Platforms and Security Advisories, 2023-2026」のコード、集約データ、LaTeX ソース
Saurabh Kumar, Bitcoin Data Labs
本論文のコード、集計データ、LaTeXソース。arXivカテゴリ: cs.CR、クロスリスト cs.NI。
データカットオフ: 2026-10-13。
Lightningのゴシップにはソフトウェアのバージョン情報が含まれないため、運用者がセキュリティアドバイザリに対応しているかどうかはこれまで測定されたことがない。本論文は、公開されているすべてのLND、Core Lightning、Eclair、LDKノードのリリースラインを、各ノードが告知するフィーチャービットと全リリースのソースを照合することで推定し、2023年5月から2026年10月までの毎日のゴシップスナップショットに適用する。ネットワークは開示ではなく、リリースとプラットフォームのスケジュールに従ってパッチを適用する。古いライン上のLNDノードの半数はリリースから88日以内にアップグレードし、最大のアップグレードの波はUmbrelアプリストアが新しいLNDバージョンを配信した約1日後に発生した。検証可能な12件の開示のうち、影響を受けたリリースからノードが離れる割合を高めたのは2026年7月のCore Lightningの開示のみであり、しかも1リリースライン遅れのノードの間だけであった。Core Lightningによるオフラインノードの再起動の呼びかけに応じたのは、主にすでに最新ライン上にあるノードであった。Lightning Labsの2026年8月の一括開示から2か月後、開示時に影響を受けていたノードの71%が依然として影響を受けるリリースを実行していた。
paper/: LaTeXソース(main.tex、sections/、references.bib、figures/、tables/、numbers.tex)、
コンパイル済みのmain.pdf、ビルドスクリプト。src/01_*.py … src/05_*.py: 5つのパイプラインステージ。src/lnmetrics/: 凍結された推論ルールと参照データ: クライアントルール(client_fingerprint.py)、
全リリースのフィーチャービットを含むリリーステーブル(ln_release_features.json、version_fingerprint.pyが読み込む)、
各開示の公開ソースを含むアドバイザリリスト(advisories.py)、日付付きの
プラットフォームリリース(platforms.py)、ゴシップリーダーとパネルヘルパー(gossip.py、panel.py)。data/: すべての図、表、本文中の数値の背後にある集計JSON出力。scripts/package_arxiv.py: arXivアップロードバンドルをビルドする。pip install -r requirements.txt
パイプラインは公開Lightningゴシップグラフの毎日のスナップショットをParquetファイルとして読み込む。src/lnmetrics/gossip.py
に想定されるレイアウト(gossip_daily/{nodes,policies,_quality.parquet})が記載されている。基盤となるゴシップデータは
公開されている。我々の毎日のスナップショットは著者へのリクエストにより入手可能である。パイプラインの参照先を次のように指定する:
export LN_PARQUET_DIR=/path/to/parquet # default: data/parquet
各ステージは入力をDATA_CUTOFF(src/config.py)で打ち切り、図をpaper/figures/に、表を
paper/tables/に、数値をdata/*.jsonに書き出す。
python src/01_build_panel.py # node-day panel: client, release line, liveness, fleet flag (~7 min) -> data/panel/
python src/02_validate_lines.py # release-line validation and consistency checks -> Fig. 1, Table I
python src/03_upgrade_dynamics.py # adoption, time to upgrade, hazard model, platform waves -> Figs. 2-5, Table II
python src/04_advisory_exposure.py # exposure per advisory, response to disclosure, robustness -> Figs. 6-7, Tables III-V
python src/05_supporting_numbers.py # every number quoted in the text -> paper/numbers.tex
ノード日次パネル(data/panel/、約1.3 GB)はコミットされていない。
paper/build.ps1(Windows、MiKTeX)は参照が安定するまでpdflatex → bibtex → pdflatexを実行する。build.batは
cmdから実行する。その他のシステムでは:
cd paper && pdflatex main && bibtex main && pdflatex main && pdflatex main
その後、python scripts/package_arxiv.pyがarXivバンドルをdist/に書き出す。
集計のみ: リリース、プラットフォーム、露出による個々のノードのリスト、ランキング、ラベルは、論文内でも
data/内でも公開しない。
MIT(LICENSEを参照)。