anoni-net / anoni-net/docs

翻譯 + 在地脈絡:OpenArchive 如何協助記錄者保全證據(Tor Project blog 2026-05-18)

Đang mở
#60 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
documentation l10n
Ngôn ngữ chính
JavaScript
Star
47
Fork
7
Merge trung bình
2 giờ 51 phút
Pull request đã merge (30 ngày)
288

Mô tả

## 脈絡

補上「公民社會基礎設施」這條主題線。OpenArchive 的 Save app 結合 Tor、ProofMode、Internet Archive 與 DWeb(Veilid、Iroh)多重後端,是現場記錄者實務上的關鍵選擇;對 g0v、IORG、Doublethink Lab 等本地 NGO 與訊息戰研究社群同樣實用。

與站上既有內容串接:

- [`community/relay-on-campus.md`](../tree/main/docs/zh-TW/community/relay-on-campus.md)
- [`blog/posts/2026-onionoo-mcp-public.md`](../tree/main/docs/zh-TW/blog/posts/2026-onionoo-mcp-public.md)
- [`taiwan/whistleblower-law.md`](../tree/main/docs/zh-TW/taiwan/whistleblower-law.md)

來源觸發票:[toomore/anoni-net-ws#306](https://github.com/toomore/anoni-net-ws/issues/306)

## 來源

- 原文標題:Preserving evidence: How OpenArchive fosters accountability and media sovereignty
- 原文 URL:https://blog.torproject.org/preserving-evidence-openarchive-fosters-accountability-media-sovereignty/
- 原文發佈日期:2026-05-18
- 翻譯文章的 `date:` 設為實際撰寫當天
- 授權:Tor Project blog 預設 CC BY 3.0(撰稿時 verify)

## 三語檔案路徑

- zh-TW:`docs/zh-TW/blog/posts/2026-openarchive-preserving-evidence.md`
- zh-CN:`docs/zh-CN/blog/posts/2026-openarchive-preserving-evidence.md`
- en:`docs/en/blog/posts/2026-openarchive-preserving-evidence.md`

slug 從 articles-blog #306 建議值縮短,符合 `anoni-docs-style.md` 與 `sitemap.md` 的命名慣例(全小寫、連字號、年份+主題)。

## 內容重點

直接帶 articles-blog #306 Phase B 已 enriched 的內容。

**為什麼要翻譯:**

1. OpenArchive 是少數兼顧手機端易用性與去中心化存證的開源工具,Save app 結合 Tor、ProofMode、Internet Archive 等多重後端,是現場記錄者實務上的關鍵選擇
2. 文章首次完整介紹 DWeb P2P 後端使用 Veilid(加密 P2P 網路)與 Iroh(資料儲存與複製)兩個底層協定,是匿名與隱私網路新一代技術的具體應用案例
3. 「人權中心設計方法論」(human rights-centered design)的具體實踐流程,值得介紹給本地讀者

**台灣觀點**(en 版本要重寫進文章正文):

1. 台灣公民記者、社運紀錄者、香港流亡社群在台都有存證需求,Save app 的多重備份與抗審查特性可直接落地推廣
2. ProofMode 與 SHA256 雜湊存證機制與台灣司法上對「數位證據完整性」的要求(電子簽章法、刑事訴訟法電磁紀錄章節)有相通之處,可進一步探討本地適用性
3. Veilid 與 Iroh 等新一代 P2P 協定的中文資料極少,借這篇引介能為本地技術社群(HITCON、COSCUP、g0v)開啟討論

## 技術拆解

寫進譯稿時建議放在「DWeb P2P 後端」段落之後,當作給工程讀者的延伸閱讀小節。重點是說明 Save app 多數能力是把現有開源元件組起來,OpenArchive 自己新做的部分集中在 DWeb 後端的整合層,工程師要做類似系統時不必從零重寫。

### 1. 行動端 App(GPL-3.0)

- Android:[`OpenArchive/Save-app-android`](https://github.com/OpenArchive/Save-app-android)(Kotlin)
- iOS:[`OpenArchive/Save-app-ios`](https://github.com/OpenArchive/Save-app-ios)(Swift)
- 多語系翻譯走 Transifex 上的 OTF Localization Lab 工作坊

### 2. Tor 與加密傳輸(Apache-2.0)

Save 沒有自己包 Tor client,而是接 Guardian Project 的 [NetCipher](https://github.com/guardianproject/NetCipher)(Java / Apache-2.0)。NetCipher 負責把 Tor 的 SOCKS proxy 接到 Android 的 HTTP/HTTPS client,OkHttp、HttpURLConnection 都能套,是 Android 圈處理「app 強制走 Tor」的事實標準。要在自家 app 加 Tor 出口,從這個 library 起步比自己 fork tor-android 省事很多。

TLS 走系統內建 stack。

### 3. 內容真實性與 metadata(GPL-3.0)

[ProofMode](https://github.com/guardianproject/proofmode-android)(Guardian Project / Kotlin)在拍攝當下產生 SHA256 雜湊與包含時間、位置、感測器讀數的 metadata,並以裝置上的 PGP 私鑰簽章。Save app 直接整合 ProofMode 而非自己接,工程師如果要做「拍照即證據鏈」的功能,這是現成 library,不必重新處理 EXIF、雜湊與簽章流程。

### 4. 儲存後端(多選)

Save 內建三類上傳目的地,使用者可同時開多個達成多重備份:

- **Internet Archive**(archive.org):公開長期保存
- **Nextcloud**:對接任意 Nextcloud 實例,讓組織自架儲存
- **DWeb P2P Storage**(beta,內部代號 Raven):見下節

第三類是 OpenArchive 自己組合的新堆疊,前兩類完全是接既有服務的 REST/WebDAV API。

### 5. DWeb 後端的技術組成

[`OpenArchive/save-dweb-backend`](https://github.com/OpenArchive/save-dweb-backend) 是 Rust 寫的 daemon,透過 RPC 跟 Kotlin/Swift 端對接。底層協定都不是 OpenArchive 自己發明:

- **[Veilid](https://veilid.com/)**(Cult of the Dead Cow 主導,Rust)負責 peer discovery、私有 routing、公鑰加密。Veilid 提供類洋蔥路由的 private route,OpenArchive 把它當「匿名傳輸層」用,但官方文件明白標註「應視為實驗中、演化中的安全屬性,不等同保證的匿名層」。
- **[Iroh](https://www.iroh.computer/)**(n0/number0 維護,Rust)負責 blob 內容定址儲存與 hash 驗證,類似 IPFS 的 content-addressing 模型但實作更精簡。
- **`veilid_iroh_blobs`**:把 Iroh blob 傳輸塞進 Veilid route 的橋接層,不直接走 Iroh 預設的 peer 連線,目的是讓 blob 同步繼承 Veilid 的路由匿名性。

群組層的設計也用既有密碼學原語組起來:

- 群組身分用 Veilid DHT record,搭配 ED25519 keypair 與簽章 metadata
- 群組內共享 secret 用 ChaCha20-Poly1305 對稱加密
- 檔名與 hash 的對應表用 CBOR 編碼存進個人 repo

完整架構(含 mermaid 流程圖)見 [save-dweb-backend README](https://github.com/OpenArchive/save-dweb-backend#readme) 與 [Privacy Overview](https://hackmd.io/@s74XZjUBQDuPPS04AgPvow/HkacodHgyx)。

### 6. 給工程讀者的延伸路徑

想做類似系統時可以從這幾個切入點開始,多數情況不必從零重寫:

- 「mobile app 走 Tor + 多 backend 上傳」的整體模式:直接讀 Save-app-android 原始碼
- 拍攝端證據鏈:用 ProofMode,不必自己處理 EXIF、SHA256、PGP 簽章
- Android app 內掛 Tor:用 NetCipher,不必 fork tor-android
- P2P 儲存:save-dweb-backend 是 Veilid + Iroh 在真實 mobile 場景的少數開源實作範例
- 想理解「為什麼挑 Veilid 不挑 libp2p、為什麼挑 Iroh 不挑 IPFS」:看 OpenArchive 與 Hypha 合作的 [DWeb Mobile Archiving 白皮書](https://www.open-archive.org/news/oa-hypha-white-paper)

## 寫作風格

依 `anoni-net-docs/.claude/rules/anoni-docs-style.md`,特別注意:

- 不寫「不是…而是…」、不使用「——」、不使用「願景式」標題
- 不使用「meta 評語 + 冒號 + 揭曉」鋪墊句型
- 標題用事件型直述(避免比喻性副標如「這條路」)
- 受眾用詞用「正體中文使用者」而非「台灣使用者」(OpenArchive 對港澳流亡社群同樣有用,要把受眾打開)

依 `seo-checklist.md`:frontmatter 必有 `title`、`description`(80–160 字、含「對台灣讀者意義」線索)、`icon`。

依 `brand-identity.md`:cyan 主色,必要的 OG 圖規格 1200×630。

## 寫作流程

套用 skill:`.claude/skills/docs-translate-blog/SKILL.md`

1. zh-TW 完稿
2. 等使用者校稿
3. zh-CN(中國地區觀點)+ en(原文 + 三地觀點段落)
4. PR 進 `anoni-net/docs`、回報 articles-blog #306

## 完成後

- `cd anoni-net-docs/docs && mkdocs serve` 視覺確認三語版本
- 跑 `seo-checklist.md` 的上線前最終檢查清單
- PR 合併後在 articles-blog #306 留 comment 連到本 ticket,並在 articles-blog 端執行:

```
cd articles-blog && python -m articles_blog.cli mark-issue-created \
--config ./config.yaml \
--url "https://blog.torproject.org/preserving-evidence-openarchive-fosters-accountability-media-sovereignty/" \
--issue-number <本 ticket 編號>
```

- 發佈後依 `.claude/rules/sns-posting-conventions.md` 衍生 SNS 草稿:
- `./sns/2026-openarchive-preserving-evidence_linkedin.txt`
- `./sns/2026-openarchive-preserving-evidence_x.txt`
- `./sns/2026-openarchive-preserving-evidence_mastodon.txt`
- `./sns/2026-openarchive-preserving-evidence_bluesky.txt`

## 相關

- source ticket:[toomore/anoni-net-ws#306](https://github.com/toomore/anoni-net-ws/issues/306)
- 同主題參考稿:`docs/zh-TW/blog/posts/2026-onionoo-mcp-public.md`(Tor 工具引介格式)
- 同 categories 串接:「翻譯文章」分類下既有的 `2026-financial-companies-as-censors.md`

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.