Witness Plane
Witnesses, quorum i widoczność forków
Witness Plane utrudnia ciche przepisywanie stream history. Witnesses podpisują monotoniczną progresję checkpointów i emitują fork evidence, gdy zaobserwują sprzeczne histories dla tego samego streamu.
Witnesses
Witness to niezależna usługa z własnym identity key i key epoch. Przechowuje ostatni zaakceptowany checkpoint dla każdego tenant stream i podpisuje nowy checkpoint tylko wtedy, gdy rozszerza on poprzednią history.
| Rola | Cel |
|---|---|
| Attesto-operated witness | Managed witness dla wczesnych policies produkcyjnych i bazowej dostępności. |
| Customer-operated witness | Widok klienta na progresję checkpointów, zwykle przez Local Vault. |
| Assurance witness | Niezależny assurance albo auditor-operated witness dla policies wymagających wyższego trust. |
| Partner witness | Zaufany third-party witness używany w policy designs specyficznych dla klienta. |
Privacy-preserving witness node package
Standalone witness package jest zdefiniowany jako observation node, nie consensus node ani blockchain validator. Obserwuje publiczne lub explicite udostępnione checkpoint heads, anchor epochs, release manifests i truth-package hashes. Nigdy nie otrzymuje customer payloads, envelopes, receipts, tenant metadata ani secrets, chyba że tenant explicite udostępni konkretny artifact.
Nazwy pakietów to attesto-witness, @attesto/witness i go.attesto.eu/witness. Package nigdy nie może być zależnością transitive core SDKs, nigdy nie może auto-enroll i nigdy nie może uruchamiać background service bez wyraźnej akcji użytkownika. Dopóki release evidence nie oznaczy standalone package jako zielony, customer-operated witness behavior zapewnia Local Vault witness mode.
Quorum
Quorum określa, ilu witnesses musi podpisać checkpoint, aby spełniał tenant policy. Managed-only policy może być użyteczna dla prostego streamu. Policy 2-of-3 jest silniejsza, ponieważ verifier może wymagać agreement między wieloma niezależnymi views.
{
"policy_id": "policy-2026-01",
"required": 2,
"witnesses": [
"attesto-managed",
"customer-local-vault",
"assurance-witness"
]
}
Fork evidence i widoczność forków
Fork to konflikt, w którym dwa checkpoint heads deklarują niezgodną history dla tego samego streamu. Witness nie może tego ukrywać przez wybranie jednej strony. Zapisuje machine-readable fork evidence, aby verifier mógł odrzucić niejednoznaczną history.
{
"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"
}
Publiczny kształt Witness API
GET /witness/v1/identity: witness identity, key epoch i obsługiwane algorytmy.POST /witness/v1/checkpoints: przesłanie checkpoint statement do podpisania.GET /witness/v1/checkpoints/{checkpoint_id}: pobranie witness statement.GET /witness/v1/forks: pobranie fork evidence widocznej dla caller.
