Attesto

Witness Plane

Witnesses, quorum e visibilità dei fork

Witness Plane rende più difficile riscrivere in silenzio la stream history. I witnesses firmano la progressione monotona dei checkpoint ed emettono fork evidence quando osservano histories in conflitto per lo stesso stream.

Witnesses

Un witness è un servizio indipendente con una propria identity key e key epoch. Memorizza l'ultimo checkpoint accettato per tenant stream e firma un nuovo checkpoint solo quando estende la history precedente.

RuoloScopo
Attesto-operated witnessManaged witness per policies di produzione iniziali e disponibilità di base.
Customer-operated witnessVista lato cliente della progressione dei checkpoint, spesso tramite Local Vault.
Assurance witnessWitness indipendente gestito da assurance o auditor per policies con trust più elevato.
Partner witnessWitness third-party affidabile usato in policy designs specifici del cliente.

Package privacy-preserving witness node

Il package witness standalone è definito come observation node, non come consensus node e non come blockchain validator. Osserva checkpoint heads, anchor epochs, release manifests e truth-package hashes pubblici o condivisi esplicitamente. Non riceve mai customer payloads, envelopes, receipts, tenant metadata o secrets salvo che un tenant condivida esplicitamente uno specifico artifact.

I nomi package sono attesto-witness, @attesto/witness e go.attesto.eu/witness. Il package non deve mai essere una dipendenza transitive dei core SDKs, non deve mai auto-enroll e non deve mai avviare un background service senza azione esplicita dell’utente. Finché la release evidence non marca verde il package standalone, il comportamento customer-operated witness è fornito da Local Vault witness mode.

Quorum

Quorum descrive quanti witnesses devono firmare perché un checkpoint soddisfi la tenant policy. Una policy managed-only può essere utile per uno stream semplice. Una policy 2-of-3 è più forte perché il verifier può richiedere agreement tra più views indipendenti.

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

Fork evidence e visibilità dei fork

Un fork è un conflitto in cui due checkpoint heads dichiarano histories incompatibili per lo stesso stream. Il witness non deve nasconderlo scegliendo una parte. Registra fork evidence machine-readable così il verifier può respingere la history ambigua.

{
  "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"
}

Forma della Witness API pubblica