传统支付 API 的问题
Stripe、LemonSqueezy、Paddle——每一个传统支付服务商都要求:- 电子邮件地址(PII,GDPR 合规负担)
- 账户和密码(可被钓鱼、可被泄露)
- 中心化密钥存储(单点故障)
- 信任服务商不会出售你的数据
我们存储什么——以及我们不存储什么
| 数据 | 是否存储 | 原因 |
|---|---|---|
payment_hash | ✅ 是 | preimage 的 SHA-256 哈希——在 BOLT11 发票中已公开 |
| Lightning 地址 | ✅ 是(仅所有者可见) | 路由 99.7% 分成所必需 |
| 调用的端点 | ✅ 是 | 你的数据分析所需 |
preimage(支付密钥) | ❌ 从不 | 存储会暴露支付密钥 |
| 电子邮件 | ❌ 从不 | 不需要——钱包即身份 |
| 姓名 / IP / 设备 | ❌ 从不 | 任何层级均不收集 |
| Cookie / 追踪 | ❌ 从不 | 无分析 SDK,无指纹识别 |
为什么 payment_hash 存储是安全的
preimage 是证明支付的 32 字节密钥。其 SHA-256 哈希值(payment_hash)在你创建 BOLT11 发票的那一刻就已经公开广播。存储哈希值不会暴露任何信息——preimage 从不接触我们的数据库。
身份验证:你的钱包,而非密码
开发者控制台
数据分析控制台通过 LNURL-auth 进行身份验证——与 Lightning Network 钱包所使用的 secp256k1 流程相同:数据删除
只有你的钱包才能授权删除你的数据。流程如下:- 客户端调用
/api/lnurl-auth?lightningAddress=you@yourdomain.com - 服务端返回一次性 k1 挑战 + LNURL
- 你的钱包使用 secp256k1 私钥对 k1 进行签名
- 服务端验证签名——签发一个 64 字符的一次性令牌
- 客户端向
/api/delete-dataPOST 请求,携带{ lightningAddress, token } - 服务端立即撤销令牌(防止重放攻击),删除所有相关行
- 数据已删除——无需提交工单,无需邮件确认
密钥分布
传统 SaaS:一次泄露 → 全部暴露。 l402-kit 将信任分散于各个层级:以设计实现 LGPD / GDPR 合规
由于我们存储零 PII,大多数 LGPD/GDPR 义务并不适用:- 无数据主体请求 — 没有可查找的身份信息
- 无个人数据泄露通知 — payment_hash 不属于个人数据
- 无 Cookie 同意 — 无追踪,无 Cookie
- 被遗忘权 — 通过 LNURL-auth 删除流程以密码学方式实现
Lightning Network 支付默认保护隐私
Lightning Network 支付不会在链上暴露付款方身份:- 无姓名、无地址、无银行账户
- 支付路由经过洋葱加密(类似 Tor)
- 只有发票发行方知道支付已完成
- 付款方身份对收款方始终保密
对比
| l402-kit | Stripe | LemonSqueezy | |
|---|---|---|---|
| 是否需要邮箱 | ❌ | ✅ | ✅ |
| 是否需要账户 | ❌ | ✅ | ✅ |
| KYC / 身份验证 | ❌ | ✅ | ✅ |
| 存储 PII | ❌ | ✅ | ✅ |
| 身份验证方式 | secp256k1 wallet | email + password | email + password |
| 删除机制 | 密码学证明 | 邮件申请 | 邮件申请 |
| LGPD/GDPR 合规负担 | 极低 | 高 | 高 |
| 付款方匿名 | ✅ | ❌ | ❌ |
这对你的用户意味着什么
如果你基于 l402-kit 进行构建:- 你的用户无需向你提供电子邮件
- 数据库泄露不会暴露任何个人信息
- 任何 AI 代理无需账户或身份即可调用你的 API
- 希望删除数据的用户可以通过自己的钱包即时自助完成