返回顶部
l

lightning-security-module闪电安全模块

Set up an lnd remote signer container that holds private keys separately from the agent. Exports a credentials bundle (accounts JSON, TLS cert, admin macaroon) for watch-only litd nodes. Container-first with Docker, native fallback. Use when firewalling private key material from AI agents.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
1,103
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

lightning-security-module

闪电安全模块(远程签名器)

在独立的安全机器上设置一个持有私钥的lnd远程签名器容器。签名器从不路由支付或开启通道——它仅持有密钥,并在被只读litd节点请求时进行签名。

架构

代理机器 签名器机器(安全)
┌─────────────────┐ ┌─────────────────────┐
│ litd(只读) │◄──gRPC───►│ lnd(签名器) │
│ - neutrino │ │ - 持有种子 │
│ - 管理通道 │ │ - 签名承诺交易 │
│ - 路由支付 │ │ - 签名链上交易 │
│ - 无密钥材料 │ │ - 无P2P网络连接 │
└─────────────────┘ └─────────────────────┘

只读节点处理所有网络和通道管理。签名器节点持有种子并执行加密签名。即使代理机器被完全攻破,攻击者也无法提取私钥。

完整架构说明请参见 references/architecture.md

快速开始(容器——推荐)

在签名器机器上

bash

1. 安装lnd签名器镜像


skills/lightning-security-module/scripts/install.sh

2. 启动签名器容器

skills/lightning-security-module/scripts/start-signer.sh

3. 设置签名器钱包并导出凭证

skills/lightning-security-module/scripts/setup-signer.sh

4. 将凭证包复制到代理机器

设置脚本会打印凭证包路径和base64字符串。

在代理机器上

bash

5. 导入凭证包


skills/lnd/scripts/import-credentials.sh --bundle

6. 以只读模式启动litd

skills/lnd/scripts/start-lnd.sh --watchonly

7. 创建只读钱包

skills/lnd/scripts/create-wallet.sh

8. 检查状态

skills/lnd/scripts/lncli.sh getinfo

双容器本地设置

在同一台机器上进行测试:

bash

同时启动litd + 签名器


skills/lnd/scripts/start-lnd.sh --watchonly

设置签名器钱包

skills/lightning-security-module/scripts/setup-signer.sh --container litd-signer

导入凭证并创建只读钱包

skills/lnd/scripts/import-credentials.sh --bundle ~/.lnget/signer/credentials-bundle skills/lnd/scripts/create-wallet.sh --container litd

安装

默认:拉取签名器的lnd Docker镜像。

bash
skills/lightning-security-module/scripts/install.sh

这将从Docker Hub拉取 lightninglabs/lnd:v0.20.0-beta。签名器只需要普通的lnd(而非litd),因为它仅持有密钥并进行签名。

从源码构建(备用方案)

bash
skills/lightning-security-module/scripts/install.sh --source

原生模式

无需Docker运行签名器:

bash

原生设置签名器


skills/lightning-security-module/scripts/setup-signer.sh --native

原生启动签名器

skills/lightning-security-module/scripts/start-signer.sh --native

原生停止签名器

skills/lightning-security-module/scripts/stop-signer.sh --native

远程节点

从远程签名器导出凭证:

bash
skills/lightning-security-module/scripts/export-credentials.sh \
--rpcserver signer-host:10012 \
--tlscertpath ~/signer-tls.cert \
--macaroonpath ~/signer-admin.macaroon

凭证包格式

导出的包(~/.lnget/signer/credentials-bundle/)包含:

文件用途
accounts.json用于只读钱包导入的账户扩展公钥
tls.cert
签名器的TLS证书,用于认证gRPC连接 |
| admin.macaroon | 签名器的管理员macaroon,用于RPC认证 |

该包也可以作为单个base64编码的tar.gz文件(credentials-bundle.tar.gz.b64)提供,方便在机器间复制粘贴传输。

脚本

脚本用途
install.sh拉取lnd签名器镜像(或从源码构建)
docker-start.sh
启动签名器容器 | | docker-stop.sh | 停止签名器容器 | | setup-signer.sh | 创建签名器钱包并导出凭证 | | start-signer.sh | 启动签名器(默认委托给Docker) | | stop-signer.sh | 停止签名器(默认委托给Docker) | | export-credentials.sh | 从运行中的签名器重新导出凭证 |

管理签名器

启动

bash

Docker(默认)


skills/lightning-security-module/scripts/start-signer.sh

指定网络

skills/lightning-security-module/scripts/start-signer.sh --network mainnet

停止

bash

Docker停止(保留数据)


skills/lightning-security-module/scripts/stop-signer.sh

Docker停止并删除卷

skills/lightning-security-module/scripts/stop-signer.sh --clean

重新导出凭证

如果TLS证书或macaroon已重新生成:

bash
skills/lightning-security-module/scripts/export-credentials.sh

配置

容器配置

签名器的compose模板位于
skills/lightning-security-module/templates/docker-compose-signer.yml。配置通过命令行参数传递。

原生配置

原生签名器配置模板位于
skills/lightning-security-module/templates/signer-lnd.conf.template。与标准lnd节点的关键区别:

  • - 无P2P监听(--listen=)——签名器不路由
  • RPC监听0.0.0.0:10012——接受来自只读节点的连接
  • REST监听localhost:10013——仅本地,用于钱包创建
  • TLS额外IP 0.0.0.0——允许不同机器上的只读节点连接
  • 无自动导航,无路由费用——签名器仅用于签名

安全模型

保留在签名器上的内容:

  • - 24词种子助记词
  • 所有私钥(资金、撤销、HTLC)
  • 包含密钥材料的钱包数据库

导出的内容:

  • - 账户扩展公钥(仅公钥——无法花费)
  • TLS证书(用于认证连接)
  • 管理员macaroon(用于RPC认证——生产环境中应缩小范围)

威胁模型:

  • - 被攻破的代理机器无法签名交易或提取密钥
  • 拥有代理访问权限的攻击者可以查看余额和通道状态,但无法花费
  • 签名器机器应具有最小的攻击面

生产环境加固:

  • - 将管理员macaroon替换为仅签名macaroon(参见 macaroon-bakery)
  • 通过防火墙将签名器RPC限制为特定IP地址
  • 在专用硬件或加固的虚拟机上运行签名器
  • 通过 lightning-mcp-server 使用闪电节点连接(LNC)实现只读代理访问

签名器的Macaroon烘焙

对于生产环境,烘焙一个仅签名的macaroon:

bash
skills/macaroon-bakery/scripts/bake.sh --role signer-only \
--container litd-signer --rpc-port 10012

然后使用限定范围的macaroon重新导出凭证包。

容器与端口

容器用途端口
litd-signer远程签名器(lnd)10012, 10013
端口服务接口描述
10012gRPC0.0.0.0签名器RPC(只读节点连接至此)
10013
REST | 0.0.0.0 | 用于钱包创建的REST接口 |

文件位置

路径用途
~/.lnget/signer/wallet-password.txt签名器钱包密码(0600权限)
~/.lnget/signer/seed.txt
签名器种子助记词(0600权限) | | ~/.lnget/signer/credentials-bundle/ | 导出的凭证 | | ~/.lnget/signer/s

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 lightning-security-module-1776420064 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 lightning-security-module-1776420064 技能

通过命令行安装

skillhub install lightning-security-module-1776420064

下载

⬇ 下载 lightning-security-module v1.0.0(免费)

文件大小: 21.27 KB | 发布时间: 2026-4-17 20:00

v1.0.0 最新 2026-4-17 20:00
Initial release: Secure remote signer for Lightning nodes

- Provides a containerized lnd remote signer to hold private keys separately from agent nodes, supporting Docker (default) and native installations.
- Exports a credentials bundle (accounts JSON, TLS cert, admin macaroon) for watch-only litd nodes, enabling firewalling of private key material from agent machines.
- Includes setup, export/import scripts, and detailed workflow for secure and watch-only node operations.
- Emphasizes strict separation: signer cannot route payments or open channels; it only signs transactions on request.
- Production guidance: use scoped macaroons, restrict RPC access, and run signer on dedicated or hardened hardware for improved security.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部