'누가 라이트닝 네트워크를 패치하는가? 2023-2026년 가십, 노드 플랫폼 및 보안 권고문에서 도출한 릴리스 라인'의 코드, 집계 데이터 및 LaTeX 소스
Saurabh Kumar, Bitcoin Data Labs
논문의 코드, 집계 데이터 및 LaTeX 소스. arXiv 카테고리: cs.CR, 교차 등록 cs.NI.
데이터 기준일: 2026-10-13.
라이트닝 가십은 소프트웨어 버전을 전달하지 않으므로, 운영자가 보안 권고에 대응하는지 여부는 지금까지 측정된 적이 없다. 이 논문은 모든 공개 LND, Core Lightning, Eclair 및 LDK 노드가 공지하는 기능 비트를 각 릴리스의 소스와 대조하여 릴리스 라인을 추론하고, 이를 2023년 5월부터 2026년 10월까지의 일별 가십 스냅샷에 적용한다. 네트워크는 공개(disclosure)가 아니라 릴리스 및 플랫폼 일정에 따라 패치한다. 구버전 라인에 있는 LND 노드의 절반은 릴리스 후 88일 이내에 업그레이드하며, 가장 큰 업그레이드 물결은 Umbrel 앱 스토어가 새 LND 버전을 배포한 약 하루 뒤에 발생했다. 또한 검증 가능한 12건의 공개 중 노드가 영향을 받은 릴리스를 떠나는 비율을 높인 것은 2026년 7월의 Core Lightning 공개뿐이었고, 그것도 한 릴리스 라인 뒤처진 노드들 사이에서만이었다. Core Lightning의 오프라인 재시작 요청은 대부분 이미 최신 라인에 있는 노드들에 의해 따랐다. Lightning Labs의 2026년 8월 일괄 공개 두 달 후에도, 공개 시점에 노출되었던 노드의 71%가 여전히 영향을 받은 릴리스를 실행하고 있었다.
paper/: LaTeX 소스(main.tex, sections/, references.bib, figures/, tables/, numbers.tex), 컴파일된 main.pdf 및 빌드 스크립트.src/01_*.py … src/05_*.py: 다섯 개의 파이프라인 단계.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
파이프라인은 공개 라이트닝 가십 그래프의 일별 스냅샷을 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 참조).