WimLee115/pvank

GitHub: WimLee115/pvank

PVANK 将网页快照或文件的密码学哈希通过 OpenTimestamps 锚定到 Bitcoin 区块链,为普通公民提供免费、可离线验证的数字证据保全方案。

Stars: 0 | Forks: 0

``` ░▒▓ PVANK ▓▒░ Privacyverzet · Anker verankerd in tijd ``` **为每个人提供的密码学证明** [![License](https://img.shields.io/badge/License-AGPL_3.0-FF6B35?style=flat-square)](LICENSE) [![Version](https://img.shields.io/badge/version-0.4.0-0b7fdb?style=flat-square)](https://github.com/WimLee115/pvank/releases) [![Made in NL](https://img.shields.io/badge/Made_in-NL-FF4500?style=flat-square)](https://github.com/WimLee115) [![Privacy First](https://img.shields.io/badge/Privacy-First-00FF41?style=flat-square)](#) [![OpenTimestamps](https://img.shields.io/badge/OpenTimestamps-Bitcoin-7C3AED?style=flat-square)](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)。证据软件必须具备可审计性。
标签:区块链, 存证, 密码学, 手动系统调用, 数字取证, 时间戳, 比特币, 特征检测, 自动化攻击, 自动化脚本, 逆向工具