cat about.md

PingVaults 为什么存在

一个客户端加密恢复金库的诞生故事——以及它要解决的问题。

// motivation

我们看到的问题

当持有人去世或失去处理能力、又没有经过演练的恢复计划时,数字账号和加密资产可能从此无法访问。硬件钱包留在抽屉里,恢复记录失踪,家人甚至不知道有哪些资产或账号存在。

现有工具解决的是不同环节:密码管理器可以共享访问权限,法律文件确立处置权,多签钱包分散密钥控制。任何单一工具都无法省去技术恢复说明、可信联系人和合法遗产安排之间的协调。

PingVaults 在浏览器内加密恢复说明,将密文上传至 Arweave,并在失联流程后通知紧急联系人。它是技术连续性工具,不替代遗嘱、信托或法律建议。

// author

指南由谁撰写

Micah Chan 是 PingVaults 的创始人,负责产品开发,也撰写并维护本站的指南。

每篇指南都依据文末列出的官方帮助页面、法规和监管机构资料写成,并标注核对日期;平台流程有变化时会更新并重新标注日期。Micah 不是律师、税务或理财顾问,指南只提供一般信息,具体情况请咨询合格的专业人士。

// security_philosophy

安全理念

✓

默认在客户端加密——金库保存流程按只发送密文和恢复元数据、不发送恢复短语来设计。

✓

高熵恢复——请线下约定并保存足够长、唯一的恢复短语;个人信息和短答案容易被猜中。

✓

可携带的恢复——导出密文和元数据,保存并测试离线解密器,不依赖单一账号或网关。

✓

核查信任边界——检查公开的加密核心和网络请求,并把浏览器实际收到的应用代码纳入威胁模型。

✓

减少暴露数据——服务端数据存储按只保留加密内容及恢复所需元数据来设计。

// threat_model

威胁模型

这套威胁模型区分仅数据库泄露、浏览器代码被篡改、终端失陷和恢复短语可被猜中等不同风险。

服务器数据库被攻破攻击者会得到 AES-256-GCM 密文、盐值、IV 和恢复结构,并可以离线尝试常见短语,因此足够长且唯一的恢复短语至关重要。
PingVaults 自身作恶/被胁迫CSP 会限制跨域连接,加密核心也可供审查,但同源请求仍然允许。恶意部署不能仅靠 CSP 完全缓解;恢复时应优先使用导出的备份与可信离线解密器。
CDN/Vercel 篡改 JS 包/verify 页面提供构建时文件哈希用于比对。这有助于发现不一致,但不能独立证明线上部署没有恶意行为。
PingVaults 完全关停预先导出的 JSON 包含密文,可配合已保存的离线解密器使用,不依赖 PingVaults 或网关。请测试这份独立副本;在线可用性没有保证。

// tech_stack

技术栈

加密

WebCrypto API — PBKDF2-SHA256(60 万次迭代)+ AES-256-GCM

存储

Arweave(经 ArDrive Turbo,公开密文存储;早期 Irys 金库仍可读取)+ AWS DynamoDB(元数据)

认证

邮箱 OTP + Google OAuth,JWT 会话(HTTP-only Cookie)

通知

Cloudflare Email Service(邮件)+ 每小时运行的 Cloudflare 定时任务(失联开关引擎)

前端

Next.js 16(App Router)、TypeScript、Tailwind CSS、next-intl(中英双语)

部署

Cloudflare Workers(网站和定时检查)+ AWS DynamoDB(元数据)

// open_source

开源策略

PBKDF2 密钥派生、AES-256-GCM 加密和离线解密器等加密核心以 MIT 许可证公开,可供审查和测试。UI、失联开关引擎与 API 路由为专有代码。仅数据库泄露与浏览器收到恶意代码属于不同威胁;后者不能仅靠公开加密模块消除。

// roadmap

路线图

✓

客户端加密金库、Arweave 存储与离线导出

AES-256-GCM + PBKDF2,浏览器本地加密,Arweave 上传

✓

可配置 Ping 计划的失联开关

每小时运行的 Cloudflare 定时任务,通过 Cloudflare Email Service 发送邮件,紧急联系人通知

✓

离线 HTML 解密器(中英双语)

独立文件,无服务器依赖,WebCrypto 内嵌

✓

金库内文件附件(文档、图片)

在套餐文件大小限制内完成客户端附件加密

○

多金库支持与家庭共享金库

独立加密上下文,细粒度访问控制

// contact

联系我们

PingVaults is a product of Brightcore Technologies LLC.

$ ./create_vault.sh

创建我的金库 →