Attesto

Witness Plane

Witnesses, Quorum und Fork Visibility

Die Witness Plane erschwert es, Stream History unbemerkt umzuschreiben. Witnesses signieren monotone Checkpoint Progression und erzeugen Fork Evidence, wenn sie widersprüchliche Histories für denselben Stream beobachten.

Witnesses

Ein Witness ist ein unabhängiger Service mit eigenem Identity Key und Key Epoch. Er speichert den zuletzt akzeptierten Checkpoint pro Tenant Stream und signiert einen neuen Checkpoint nur, wenn dieser die bisherige History erweitert.

RolleZweck
Attesto-operated witnessManaged Witness für frühe Produktionspolicies und grundlegende Verfügbarkeit.
Customer-operated witnessKundenseitige Sicht auf Checkpoint Progression, häufig über Local Vault.
Assurance witnessUnabhängiger Assurance- oder auditor-operated Witness für Policies mit höherem Trust.
Partner witnessVertrauenswürdiger Third-party Witness für kundenspezifische Policy Designs.

Privacy-preserving witness node package

Das standalone witness package ist als observation node definiert, nicht als consensus node und nicht als blockchain validator. Es beobachtet öffentliche oder ausdrücklich geteilte checkpoint heads, anchor epochs, release manifests und truth-package hashes. Es erhält niemals customer payloads, envelopes, receipts, tenant metadata oder secrets, außer ein Tenant teilt ausdrücklich ein bestimmtes Artifact.

Paketnamen sind attesto-witness, @attesto/witness und go.attesto.eu/witness. Das Package darf niemals eine transitive Dependency der Core SDKs sein, darf niemals auto-enroll ausführen und darf niemals einen background service ohne explizite Nutzeraktion starten. Bis Release Evidence das standalone Package grün markiert, läuft customer-operated witness Verhalten über Local Vault witness mode.

Quorum

Quorum beschreibt, wie viele Witnesses signieren müssen, damit ein Checkpoint die Tenant Policy erfüllt. Eine managed-only Policy kann für einen einfachen Stream nützlich sein. Eine 2-of-3 Policy ist stärker, weil der Verifier Agreement über mehrere unabhängige Views verlangen kann.

{
  "policy_id": "policy-2026-01",
  "required": 2,
  "witnesses": [
    "attesto-managed",
    "customer-local-vault",
    "assurance-witness"
  ]
}

Fork Evidence und Fork Visibility

Ein Fork ist ein Konflikt, bei dem zwei Checkpoint Heads eine inkompatible History für denselben Stream beanspruchen. Der Witness darf dies nicht verbergen, indem er eine Seite auswählt. Er zeichnet machine-readable Fork Evidence auf, damit der Verifier ambigue History ablehnen kann.

{
  "kind": "fork_evidence",
  "stream_id": "str_...",
  "conflicting_checkpoints": [
    {"checkpoint_id": "chk_a", "checkpoint_head_hash": "hex-a"},
    {"checkpoint_id": "chk_b", "checkpoint_head_hash": "hex-b"}
  ],
  "detected_by": "customer-local-vault",
  "result": "verifier_rejects_ambiguous_history"
}

Öffentliche Witness-API-Form