Skip to content

Commit 76d4161

Browse files
ArkForgeclaude
andcommitted
spec: remove Archive.org witness — 2 witnesses (Ed25519 + RFC 3161 TSA)
Archive.org was unreliable (timeouts, HTTP 520) and created dependency on an uncontrolled third-party service. Proof integrity is fully guaranteed by Ed25519 signature + RFC 3161 TSA timestamp. - Remove archive_org field from schema table - Remove archive_org from mutable metadata lists (x2) - Remove Archive.org row from witnesses table - Update witness count: 3 → 2 for base proofs, 4 → 3 with Stripe, +1 with receipt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 915f0e1 commit 76d4161

1 file changed

Lines changed: 3 additions & 5 deletions

File tree

SPEC.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,6 @@ All variants produce a valid chain hash. The `payment.transaction_id` value is u
129129
| `parties.agent_version` | string | Agent's version string |
130130
| `identity_consistent` | bool/null | Whether identity matches previous calls with same key |
131131
| `timestamp_authority` | object | TSA status, provider, download URL, and `tsr_base64` (base64-encoded .tsr file) |
132-
| `archive_org` | object | Archive.org snapshot status and URL |
133132
| `verification_algorithm` | string | URL to algorithm documentation |
134133
| `transaction_success` | bool | Whether the upstream service returned a success response (HTTP status < 400) |
135134
| `upstream_status_code` | int | HTTP status code returned by the upstream service |
@@ -309,7 +308,7 @@ If the chain hash matches, no chain-hash-bound field was altered after creation.
309308
- That the payment actually occurred (verify via Stripe API for Pro proofs; Free proofs have `payment.provider = "none"`)
310309
- That the timestamp is accurate (verify via RFC 3161 TSA)
311310
- That the response content is correct (verify via the service)
312-
- That mutable metadata fields (`identity_consistent`, `archive_org`, `timestamp_authority`, `transaction_success`, `upstream_status_code`, `disputed`, `dispute_id`) are unchanged — these are informational and may be updated after proof creation without affecting the chain hash
311+
- That mutable metadata fields (`identity_consistent`, `timestamp_authority`, `transaction_success`, `upstream_status_code`, `disputed`, `dispute_id`) are unchanged — these are informational and may be updated after proof creation without affecting the chain hash
313312

314313
## 6. Digital signature
315314

@@ -354,7 +353,7 @@ pub.verify(b64url_decode(sig_b64), chain_hash.encode("utf-8"))
354353

355354
**Covered** (via the chain hash): `hashes.request`, `hashes.response`, `payment.transaction_id`, `timestamp`, `parties.buyer_fingerprint`, `parties.seller`, `upstream_timestamp` (if present), `payment_evidence.receipt_content_hash` (if present).
356355

357-
**Not covered** (mutable metadata): `identity_consistent`, `archive_org`, `timestamp_authority` status, `transaction_success`, `upstream_status_code`, `disputed`, `dispute_id`. These fields are informational and may change after proof creation.
356+
**Not covered** (mutable metadata): `identity_consistent`, `timestamp_authority` status, `transaction_success`, `upstream_status_code`, `disputed`, `dispute_id`. These fields are informational and may change after proof creation.
358357

359358
### Key distribution
360359

@@ -368,11 +367,10 @@ A proof MAY be corroborated by independent witnesses:
368367
|---------|---------------|--------------|-------------|
369368
| **Ed25519 Signature** | Proof was issued by ArkForge | Verify `arkforge_signature` with `arkforge_pubkey` | All plans |
370369
| **RFC 3161 Timestamp** | Proof existed at claimed time | Verify `.tsr` file via `openssl ts -verify` | All plans |
371-
| **Archive.org** | Proof page was publicly visible | Visit `archive_org.snapshot_url` | All plans |
372370
| **Stripe** | Payment occurred | Check `payment.transaction_id` on Stripe dashboard or API | Pro plan only |
373371
| **External Receipt** | Receipt content at time of proof | Fetch `payment_evidence.receipt_url`, hash content, compare to `receipt_content_hash` | When `payment_evidence` is present |
374372

375-
Free tier proofs have 3 witnesses (Ed25519, RFC 3161, Archive.org). Pro proofs add Stripe as a 4th witness. Proofs with external payment evidence add the receipt as an additional witness.
373+
Free tier proofs have 2 witnesses (Ed25519, RFC 3161). Pro proofs add Stripe as a 3rd witness. Proofs with external payment evidence add the receipt as an additional witness.
376374

377375
No witness is required for chain hash verification. Each adds an independent layer of trust.
378376

0 commit comments

Comments
 (0)