Agent-to-Agent (A2A)
Accountability Protocol v0.6.0
Collusion-resistant accountability для AI-driven payments и high-value agent execution.
Author: TrustAgentAI Core Team
Содержание
Abstract
TrustAgentAI A2A Accountability Protocol v0.6.0 расширяет предыдущую модель A2A receipts и добавляет hardened evidence lifecycle для финансовых действий, инициированных ИИ-агентами.
Предыдущие версии определили Intent, Acceptance, Execution, optional Ack, DAG-based receipt history, Merkle anchoring и Content Provenance. Версия 0.6.0 фокусируется на более жестком операционном вопросе:
Если ИИ-агент переместил деньги от имени пользователя, можно ли доказать, какой агент действовал, с какими полномочиями, когда это произошло и пыталась ли какая-либо сторона позже изменить или скрыть запись?
Подпись может остановить внешнего злоумышленника от подделки транзакции. Но подпись сама по себе не решает споры между инсайдерами, удаление записей, неоднозначную ротацию ключей, потерю полного содержания события или ситуацию, когда две стороны позже показывают конфликтующие версии истории.
New in v0.6.0: протокол добавляет durable custodied keys, append-only hash-chain continuity, independent inline witness co-signing, public checkpoint anchoring with heartbeat, encrypted WORM content storage, key transparency и disciplined degraded-mode operation.
Threat Model NEW v0.6
v0.6.0 предназначен для high-value workflows, где ИИ-агенты инициируют финансовые действия: refunds, payouts, wire transfers, vendor payments, inter-company settlements или регулируемые операционные изменения.
v0.6.0 не утверждает, что решает все возможные сценарии сговора. В частности, сговор независимого witness с одной из основных сторон остается открытой threat model.
Терминология
Evidence Lifecycle
Базовый A2A flow остается прежним: Intent → Acceptance → Execution → optional Ack. v0.6.0 усиливает evidence lifecycle вокруг этого flow.
Intent
→ Acceptance
→ Execution
→ Witness Co-Signature
→ Append-Only Hash-Chain
→ Encrypted WORM Store
→ Public Checkpoint Anchor
→ Dispute Pack Форматы данных
5.1 Intent Envelope
{
"envelope_type": "IntentEnvelope",
"spec_version": "0.6",
"trace_id": "urn:uuid:550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-04-20T10:15:30.123Z",
"expires_at": "2026-04-20T10:16:00.000Z",
"initiator": {
"did": "did:workload:refund-agent-01",
"vc_ref": "urn:credential:refund-limit-policy-099"
},
"target": {
"did": "did:workload:payment-mcp-server",
"mcp_deployment_id": "payments-prod-cluster-1",
"tool_name": "issue_refund",
"tool_schema_hash": "sha256:e3b0...285",
"mcp_session_id": "sess_98765abc"
},
"payload": {
"args_hash": "sha256:a5b9...9f1",
"nonce": "8f42d9a1"
},
"signatures": [{
"role": "proxy",
"kid": "did:workload:proxy-A#key-7",
"alg": "EdDSA",
"signed_digest": "sha256:c4d3...e21",
"value": "eyJhbGciOiJFZERTQSJ9..."
}]
} 5.2 Witness Receipt NEW v0.6
{
"envelope_type": "WitnessReceipt",
"spec_version": "0.6",
"trace_id": "urn:uuid:550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-04-20T10:15:31.180Z",
"witness": {
"did": "did:workload:independent-witness-01",
"jurisdiction": "US",
"service_policy_hash": "sha256:ab12...ff9"
},
"observed": {
"intent_hash": "sha256:c4d3...e21",
"acceptance_hash": "sha256:8f42...1a2",
"execution_hash": "sha256:9f86...d46",
"hash_chain_head": "sha256:3a91...c0f"
},
"decision": "WITNESSED",
"finality_required": true,
"signatures": [{
"role": "witness",
"kid": "did:workload:independent-witness-01#key-3",
"alg": "EdDSA",
"signed_digest": "sha256:77b4...31c",
"value": "eyJhbGciOiJFZERTQSJ9..."
}]
} 5.3 Checkpoint Anchor
{
"checkpoint_type": "PublicCheckpoint",
"spec_version": "0.6",
"checkpoint_id": "chk_20260420_000042",
"timestamp": "2026-04-20T10:16:00.000Z",
"chain_head": "sha256:3a91...c0f",
"merkle_root": "sha256:0b54...9ab",
"entry_count": 128,
"anchor_ref": {
"network": "base-sepolia",
"tx_hash": "0x63d0...8c0b"
},
"heartbeat_status": "ON_TIME"
} 5.4 Key Transparency Event NEW v0.6
{
"event_type": "KEY_ROTATION",
"spec_version": "0.6",
"subject_did": "did:workload:proxy-A",
"timestamp": "2026-04-20T09:00:00.000Z",
"previous_kid": "did:workload:proxy-A#key-6",
"new_kid": "did:workload:proxy-A#key-7",
"new_public_key_hash": "sha256:f14a...91c",
"endorsement": {
"signed_by": "did:workload:proxy-A#key-6",
"signed_digest": "sha256:ab87...d11"
},
"registry_entry_hash": "sha256:0f98...c3e"
} 5.5 Degraded Mode Marker NEW v0.6
{
"degraded_mode": true,
"reason": "WITNESS_UNAVAILABLE",
"started_at": "2026-04-20T10:14:00.000Z",
"max_value_usd": 50,
"max_duration_seconds": 300,
"reconciliation_deadline": "2026-04-20T10:24:00.000Z",
"requires_post_facto_witness": true
} Правила валидации
Time and Replay
- →expires_at MUST быть строго больше timestamp.
- →Verifier MUST отклонять запись, если current_time > expires_at + skew_tolerance.
- →Рекомендуемый skew_tolerance — 5 seconds.
- →Nonce uniqueness MUST enforced per (initiator.did, nonce).
Witness Finality
- →High-value actions SHOULD требовать валидный WitnessReceipt до финальности.
- →Witness signature MUST verify against текущего key-transparency registry state на момент действия.
- →Witness MUST связывать intent, acceptance, execution и hash-chain head в signed observation.
Key Transparency
- →Key rotation MUST быть подтверждена предыдущим valid key, если не используется explicit recovery process.
- →Revocation events MUST быть append-only и не должны silently overwrite prior key state.
- →Dispute verification MUST использовать key state на момент event timestamp, а не текущее database state.
Independent Inline Witness NEW v0.6
Independent witness — это inline co-signing party для high-value transactions. Он не заменяет initiator или executor, а создает дополнительную evidence surface вне двух основных сторон.
Witness MAY видеть только cryptographic commitments и policy metadata, а не raw transaction contents. Witness подписывает то, что наблюдал: transaction hashes, timestamps, policy reference, chain head и finality state.
Превратить спор «наши логи говорят одно, ваши логи говорят другое» в вопрос: «что сказал independently witnessed receipt на момент финальности?»
Append-Only Hash-Chain NEW v0.6
v0.6.0 добавляет hash-chain continuity поверх DAG ledger. Каждая local evidence entry ссылается на предыдущий chain head. Изменение или удаление предыдущих entries ломает continuity или создает доказуемый gap.
{
"entry_id": 104594,
"trace_id": "urn:uuid:550e...",
"event_type": "WITNESS_RECORD",
"prev_entry_hashes": [
"sha256:f8a...1b9",
"sha256:2c4...e81"
],
"prev_chain_head": "sha256:3a91...c0f",
"artifact": { /* WitnessReceipt */ },
"entry_hash": "sha256:7a2...8c4",
"new_chain_head": "sha256:5bc...9aa"
} Checkpoint Anchoring + Heartbeat
Public checkpoint anchoring коммитит компактное cryptographic state во внешнюю timeline. Raw transaction data, PII, secrets, prompts, arguments и outputs MUST NOT записываться on-chain.
Heartbeat mechanism делает downtime или anchoring failure видимыми. Missing checkpoints становятся частью evidence record, а не silent gaps.
| Field | Purpose |
|---|---|
| chain_head | Коммитит append-only local evidence continuity. |
| merkle_root | Коммитит batch entries без раскрытия payloads. |
| anchor_ref | External transaction или transparency-log reference. |
| heartbeat_status | Показывает, был ли checkpoint cadence normal, delayed или missed. |
Encrypted WORM Content Store NEW v0.6
Хэши доказывают integrity, но в спорах часто нужны recoverable evidence. v0.6.0 вводит encrypted WORM storage для full transaction records, сохраняя sensitive content confidential.
Store работает по модели write-once-read-many. Records могут быть cross-held между сторонами или custodians. TrustAgentAI itself SHOULD NOT иметь unilateral access к plaintext records. Доступ может управляться customer-controlled keys, regulator escrow или multi-party release rules.
Ledger хранит hashes и encrypted references. Raw records остаются off-chain и encrypted, но могут быть восстановлены по согласованному governance для audits, investigations или disputes.
Key-Transparency Registry NEW v0.6
Key state должен быть auditable as of the event time. Сторона не должна иметь возможность silently rewrite, существовал ли ключ, был ли он valid, был ли rotated или revoked.
Key-transparency registry является append-only. Rotations требуют prior-key endorsement. Revocations записываются как новые events. Dispute verification использует registry state на historical timestamp, а не current database state.
KEY_CREATE
→ KEY_ROTATION endorsed by previous key
→ KEY_REVOCATION append-only event
→ HISTORICAL_KEY_STATE used during dispute verification Degraded-Mode Discipline NEW v0.6
Distributed systems fail. Witness может быть unavailable, network может partition, anchoring может delayed. Безопасный протокол не должен выбирать только между «заблокировать всё» и «доверять всему».
v0.6.0 определяет degraded mode как constrained and auditable state. Degraded actions capped, labeled, time-bounded и reconciled после восстановления missing dependency.
- →Degraded receipts MUST быть явно marked.
- →High-value thresholds MUST снижаться during degraded mode.
- →Каждое degraded action MUST содержать reconciliation deadline.
- →Post-facto witness reconciliation MUST attempted до восстановления normal finality.
Dispute Packs
Dispute Pack v0.6.0 объединяет signed receipts, ledger continuity proofs, witness evidence, key-history evidence, WORM references и checkpoint anchors.
Dispute Pack не устраняет весь trust. Он делает trust assumptions explicit, bounded и independently verifiable.
Privacy Guidance
v0.6.0 сохраняет hash-only principle для public evidence surfaces.
- →Raw arguments MUST NOT записываться в public ledgers или anchors.
- →Raw outputs MUST NOT записываться в public ledgers или anchors.
- →PII, secrets, API keys, prompts и bank account details MUST NOT stored on-chain.
- →Encrypted WORM records SHOULD быть recoverable только по customer, regulator или multi-party governance.
Public anchoring доказывает existence, ordering и continuity. Он не раскрывает transaction payload.
Открытые threat models
v0.6.0 прямо фиксирует, что пока не решено полностью.
Если independent witness вступает в сговор с одной из основных сторон, v0.6.0 может не дать достаточной независимой evidence. Будущие версии могут требовать multi-witness quorum, threshold signatures, regulator-operated witnesses, transparency networks или economic staking.
Протокол может зафиксировать, какой ключ подписал событие и что registry утверждал на тот момент. Но сам по себе он не доказывает human intent, если legitimate key был compromised вне системы.