WimLee115/pvank
GitHub: WimLee115/pvank
PVANK 将网页快照或文件的密码学哈希通过 OpenTimestamps 锚定到 Bitcoin 区块链,为普通公民提供免费、可离线验证的数字证据保全方案。
Stars: 0 | Forks: 0
```
░▒▓ PVANK ▓▒░
Privacyverzet · Anker
verankerd in tijd
```
**为每个人提供的密码学证明**
[](LICENSE)
[](https://github.com/WimLee115/pvank/releases)
[](https://github.com/WimLee115)
[](#)
[](https://opentimestamps.org)
PVANK 将数字证据锚定在 Bitcoin 区块链中。为了那些必须在证据消失之前,证明某个机构到底说过、写过或展示过什么的普通公民。
## 它的功能
粘贴一个 URL 或上传一个文件。PVANK 会在几秒钟内生成一个 `pvank-bewijs.zip`:
```
pvank-bewijs.zip
├── snapshot.html — origineel HTML (URL-modus) of jouw bestand
├── snapshot.png — full-page screenshot (URL-modus)
├── headers.json — HTTP-headers + final URL (URL-modus)
├── tegenpartij.json — WHOIS · DNS (A/AAAA/NS/MX/TXT) · TLS-cert · NL-hints (KvK/BTW/IBAN)
├── manifest.json — alle hashes + metadata + tijdstempel
├── manifest.json.ots — OpenTimestamps-receipt (Bitcoin-blockchain)
└── verify.html — open in elke browser, controleer alles
```
`verify.html` 可以离线运行,无需 PVANK。将文件拖入其中 → 会重新计算 SHA-256 并与清单(manifest)进行比对。要进行区块链验证:
```
pip install opentimestamps-client
ots verify manifest.json.ots
```
## 界面
```
┌─────────────────────────────────────────────────────┐
│ │
│ ░▒▓ PVANK ▓▒░ │
│ verankerd in tijd │
│ │
│ Cryptografisch bewijs voor elke Nederlander. │
│ SHA-256 + OpenTimestamps op de Bitcoin-blockchain. │
│ │
│ ┌── wat verankeren? ──────────────────────────┐ │
│ │ ⊙ een webpagina ○ een bestand │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ [ https://... ] │
│ │
│ [▒▒ ANKER NEERLATEN ▒▒] │
│ │
└─────────────────────────────────────────────────────┘
zwart fond · JetBrains Mono · bloedoranje accent
```
## 为什么需要
公证机构对每份文件的收费为 50-150 欧元。archive.org 没有证据效力。opentimestamps.org 虽然存在,但它是为密码学专家准备的。夹在中间的普通公民,在面对市政厅、能源供应商、医疗保险机构、雇主、房东、财产管理人、学校、信贷登记机构(BKR)、员工保险局(UWV)或税务局时往往束手无策。
PVANK 填补了这一空白。免费、开源、可审计。
## 核心支柱
- **主权** — 自己的证据,自己的 ZIP。导出后绝不依赖 PVANK。
- **匿名性** — 无需账户、无追踪、无遥测。Hash 不会泄露内容。
- **抵抗性** — 机构无法删除、重写或抵赖的证据。
- **专业性** — SHA-256、OpenTimestamps、Bitcoin 区块链。与 Dossier 608 使用的方法论相同(包含 5,411 个 OTS timestamps · 876k 次扫描)。
- **开放性** — 采用 AGPL-3.0 协议。证据软件必须具备可审计性。
## 快速开始
```
pip install opentimestamps-client # de officiële `ots` CLI
pnpm install
pnpm playwright install chromium
pnpm dev
```
打开 `http://localhost:3000`。
## 技术栈
- **Next.js 15** + App Router + TypeScript strict
- **Playwright** 用于服务端快照(包括 JS 渲染的页面)
- **`opentimestamps-client`**(Python,权威版本)— 通过 subprocess 调用 `ots stamp`
- **`archiver`** 用于 ZIP 输出
- **Web Crypto API** 用于在 `verify.html` 中进行浏览器端的 hash 验证
PVANK 有意使用官方的 Python `ots` 客户端,而不是旧的
`javascript-opentimestamps` npm 包 — 后者会引入 `request@2.x` 和
`bitcore-lib@8.14`,伴随着超过 10 个严重的 CVE。证据软件容不得
任何陈旧的间接依赖。
## 架构
```
browser ──form──▶ /api/anker
│
├─▶ Playwright snapshot (URL)
│ html · png · headers
│
├─▶ SHA-256 per onderdeel
├─▶ manifest.json bouwen
├─▶ SHA-256(manifest.json) → ankerhash
├─▶ OpenTimestamps stamp
│ ankerhash + receipt
│
└─▶ ZIP terug naar browser
```
被盖上 OTS stamp 的部分仅限于 `SHA-256(manifest.json)`。清单(manifest)包含了所有独立文件的 hash —— 这样你就可以通过一个区块链锚点来验证整个打包文件。
## 状态
`v0.4` — 适用于 URL 和文件上传。对于 URL,PVANK 会收集
公开的上下文信息(WHOIS · DNS · TLS 证书),并自动提取
荷兰实体提示信息(KvK · BTW · IBAN)。`verify.html` 会解析
OTS receipts 并检查被 stamped 的 hash 是否等于 SHA-256(manifest)
— 所有这些都在浏览器中完成,无需 CLI。
待办事项:
- [ ] 在浏览器中实现完整的 Bitcoin 区块头验证(难度较大)
- [ ] 接入 KvK API 以获取权威的企业信息(需要密钥)
- [ ] 浏览器扩展(“封装此页面”)
- [ ] 移动端 / PWA 支持相机导入(即时封装照片)
- [ ] 针对律师 / 记者的批量模式
- [ ] 可选的 Tor 抓取功能,用于匿名快照
- [ ] EML 导入,用于电子邮件证据
## 品牌
[隐私抵抗 (Privacyverzet)](https://github.com/WimLee115) 舰队的一部分。
`Captain WimLee115 — 登船。匿名。不屈不挠。`
## 许可证
[AGPL-3.0-or-later](LICENSE)。证据软件必须具备可审计性。标签:区块链, 存证, 密码学, 手动系统调用, 数字取证, 时间戳, 比特币, 特征检测, 自动化攻击, 自动化脚本, 逆向工具