Audit inter-chaînes
(Section : Écosystème et réseau)
1) Objectifs et domaine
L'audit inter-chaînes garantit l'intégrité vérifiable des événements, des transferts de valeur et des configurations entre les domaines (circuits/ponts/PSP/fournisseurs d'identification). Tâches :- Confirmer l'exactitude et l'exhaustivité des enregistrements en tenant compte de la finalisation et des réorgues.
- Assurer la probabilité des décisions et des transactions (crypto-écritures, merle-preuves, ZK/modèles optimistes).
- Donnez une trace de bout en bout (lineage) du rapport à l'événement brut.
- Réduire les risques opérationnels et réglementaires grâce à des logs et procédures normalisés.
2) Sources de vérité et modèle de confiance
États en ligne et logs : blocs, événements contractuels, hachages de paquets de messages.
Ponts et relais : demandes, reçus, preuves (light-client/optimistic/ZK).
PSP/KYC/AML : statuts de vérification, reçus de paiement, succès de sanctions.
Systèmes d'exploitation : configis, ficheflags, versions SDK, limites, clés.
Howernance/solutions : proposals, timelock, performances.
Niveaux de confiance : vérifiables cryptographiquement → économiquement finalisables → certifiés opérationnels (par signature et logos immuables).
3) Finalisation, réorgues et statuts de probabilité
État de l'événement :- `observed → confirmed(K) → finalized → challenged (optimistic) → invalidated(reorg)`
- K-confirmations par chaîne/actif/classe de risque.
- Une fenêtre de défi pour les ponts optimistes.
- Finalisation délaissée pour les grands montants/actions critiques.
- Reorg handling : invalidation automatique/plume-replay en référence à l'ancien hash.
4) Journaux et chaînes de hachage immuables
Audit-journal (append-only) : entrée = (temps, source, payload-hash, signatures).
5) Lineage de bout en bout des données
Exigences :- Lien Column-level : de la vitrine/rapport aux transformations et aux événements bruts.
6) Contrôle des configurations des ponts et des domaines
Registre des ponts/vapeurs de chaînes : chainId, type de preuve, K-confirmations/fenêtre de litige, adresses contractuelles, décimals/asset-map.
Versions SDK/agents : minimum pris en charge, LTS, part de trafic par version.
Clés et rôles : org_id → peer_id → capability, timing et rotation.
ACL/limites : taux-limites, volumes journaliers, actifs/méthodes whitelist.
7) Modèle de preuve (Proof Stack)
Log-proofs : signatures des sources + chaînes de hachage/ancres.
State-proofs : light-client/vérification des en-têtes + branche Merkl.
Execution-proofs : Preuve ZK de l'exactitude du calcul (en cas d'accès).
Optimistic-proofs : exact jusqu'à ce qu'il soit contesté (période challenge, steak, arbitres).
Receipt-pairing : lien d'envoi et d'exécution (proof-of-delivery/-execution).
8) SLI/SLO d'audit inter-chaînes
SLI (exemple) :- Freshness p95 (min) de 'observed _ at' à atteindre Gold.
- Completeness (%) vs attendu par K-fenêtres.
- Correctness (%) (validation de schémas, signatures, proufs).
- Proof-Coverage (%) est la proportion d'enregistrements présentant des preuves cryptées.
- Reorg Handling Success (%).
- Config Drift Detection MTTA (мин).
SLO (repères) : Freshness ≤ 15 min (batch )/ ≤ 3 min (stream), Completeness ≥ 99. 7%, Correctness ≥ 99. 9%, Proof-Coverage ≥ 99. 0%, Reorg Success ≥ 99. 9 %, MTTA drift ≤ 5 min.
9) Schémas de données (pseudo-SQL)
Registre des événements/transferts
sql
CREATE TABLE xchain_events (
id TEXT PRIMARY KEY,
observed_at TIMESTAMPTZ,
status TEXT, -- observed confirmed finalized challenged invalidated chain_id TEXT, block_height BIGINT, tx_hash TEXT, log_index INT,
type TEXT, -- bridge.lock bridge.mint transfer kyc.pass...
actor_src TEXT, actor_dst TEXT,
asset TEXT, amount NUMERIC, usd_value NUMERIC,
bridge_ref TEXT, idempotency_key TEXT,
proof_ref TEXT
);
Preuves
sql
CREATE TABLE proofs (
id TEXT PRIMARY KEY,
kind TEXT, -- log state zk optimistic root_hash TEXT, leaf_hash TEXT, proof JSONB,
anchored_chain TEXT, anchor_tx TEXT,
created_at TIMESTAMPTZ
);
Journal d'audit inaltérable
sql
CREATE TABLE audit_log (
seq BIGSERIAL PRIMARY KEY,
ts TIMESTAMPTZ,
source TEXT, record_hash TEXT, prev_hash TEXT,
sig_org TEXT, sig_payload TEXT
);
Registre des ponts/configues
sql
CREATE TABLE bridge_registry (
pair_id TEXT PRIMARY KEY,
src_chain TEXT, dst_chain TEXT,
proof_mode TEXT, confirmations INT, challenge_minutes INT,
contracts JSONB, assets_map JSONB, sdk_min TEXT, lts TEXT,
updated_at TIMESTAMPTZ, updated_by TEXT
);
10) Contrôle de l'intégrité des rapports (pseudo-demandes)
Mappage du rapport avec les prufs
sql
SELECT r.report_id, COUNT() AS rows,
100.0 SUM(CASE WHEN e.proof_ref IS NOT NULL THEN 1 ELSE 0 END) / COUNT() AS proof_coverage_pct
FROM report_rows r
JOIN xchain_events e ON r.event_id = e.id
GROUP BY r.report_id;
Identification de la dérive des configurations
sql
SELECT pair_id, COUNT() AS changes_24h
FROM config_audit
WHERE ts >= now() - INTERVAL '24 hours'
GROUP BY pair_id
HAVING COUNT() > 0;
Reorg-analyse
sql
SELECT chain_id, date_trunc('hour', observed_at) AS h,
SUM(CASE WHEN status='invalidated' THEN 1 ELSE 0 END) AS reorg_cnt
FROM xchain_events
WHERE observed_at >= now() - INTERVAL '7 days'
GROUP BY chain_id, h;
11) Configurations (pseudo-YAML)
Fenêtres de finalisation et modes prouf
yaml finality:
eth-mainnet: { k: 12, proof: light_client }
polygon: { k: 256, proof: light_client }
solana: { k: "optimistic:32 slots", proof: optimistic, challenge_minutes: 20 }
zk-bridge: { proof: zk, sla_proof_sec: 180 }
Paramètres d'audit de qualité
yaml audit:
freshness_p95_min: 3 completeness_min_pct: 99.7 correctness_min_pct: 99.9 proof_coverage_min_pct: 99.0 drift_mtta_min: 5
Politique d'ancrage
yaml anchoring:
cadence: "15m"
chains: ["eth-mainnet"]
anchor_contract: "0xANCh..."
12) Observabilité et dashboards
Audit Ops (реал-тайм/час): Freshness, Completeness, Proof-Coverage, Reorg/Challenge, Drift-alerts, Error-budget burn.
Bridges Compliance : conformité des configues réelles avec le registre, finalisation SLA, proportion d'anomalies.
Data Lineage : un rapport interactif → vitrine → transformation → matières premières → pruf/ancre.
Key & Access Hygiene : clés périmées, signatures suspectes, taux de rotation.
13) Processus et rôles
Propriétaire des données (Data Owner) - correct des schémas et des vitrines.
Auditeur (Internal/External) - vérification des proufes, des échantillons, de la conformité à la politique.
Opérateur de ponts/relais - maintien des preuves et finalisation.
Titrisation/Conformité - Sanctions, incidents, jalousie des clés et accès.
Governance - Approbation des modifications des configues/limites, publication des rapports.
14) Playbook des incidents
A. Configh-dérive (non-correspondance entre le registre et le fait)
1. Geler les paires touchées, 2) faire tomber le flig à la dernière version signée, 3) recalculer les rapports, 4) note publique.
B. Reorg/Challenge sursaut
1. Agrandir K/fenêtre de litige, 2) activer la finalisation delayed pour les sommes importantes, 3) avertir les participants, 4) rétro-analyse.
C. Proof-Coverage insuffisant
1. Redémarrage de l'ancrage/de la mercantilisation, 2) augmenter le niveau de logage, 3) échantillonnage de 100 cas de vérification manuelle, 4) rapport en 24 heures
D. Compromission de la clé source
1. Revoke immédiat, 2) réécriture des trampolines critiques, 3) mise à jour des listes de confiance, 4) analyse d'influence et post-mortem.
E. Incohérence du répertoire des actifs
1. Stop aux rapports avec les actifs affectés, 2) annuaire de retour, 3) recalculer la normalisation USD, 4) publication du rapport corrigé.
15) Contrôles et échantillons pour l'audit externe
Plan de sampling : échantillonnage stratifié par chaînes/ponts/classes de somme.
Tests de reperformance : reconstruction indépendante de métriques à partir de matières premières.
Walk-through : du rapport à la matière première (et inversement) avec vérification pruf.
Tests de contrôle des clés : rotations, clés retirées, restrictions de droits.
Gestion du changement : conformité des versions avec la politique timelock/deprecate.
16) Chèque de mise en œuvre
1. Identifiez les sources de vérité et la fenêtre de finalisation par domaine.
2. Allumez les journaux invariables, les chaînes de hachage et l'ancrage régulier.
3. Normalisez les schémas, les clés idempotency et lineage jusqu'aux colonnes.
4. Soulevez le registre des ponts/configues avec les signatures et l'auditeur-logue.
5. Configurer les SLI/SLO et les dashboards d'audit ; incluez les alertes drift.
6. Automatisez la reorg/challenge-processing et la finalisation delayed.
7. Effectuer un pilote d'audit externe : sampling, walk-through, reperformance.
8. Mettez un post-mortem régulier sur les incidents et mettez à jour la politique.
17) Glossaire
Finality - irréversibilité de l'état/événement.
Reorg est un recalage de chaîne qui annule une partie des blocs.
Anchoring est la fixation de magazines hachés sur un réseau public.
Merkle tree est une structure pour l'agrégation prouvée de plusieurs enregistrements.
Light-client proof : Vérifie l'état d'un autre réseau par en-têtes/branches de merle.
ZK-proof est une brève preuve de l'exactitude du calcul/de l'état.
Optimistic proof - acceptation avec possibilité de contestation dans la fenêtre « challenge ».
Lineage est une traçabilité de bout en bout de l'origine des données.
Proof-Coverage est la proportion d'enregistrements avec des preuves validées.
Résultat : l'audit inter-chaînes est une discipline de probabilité. En combinant la finalisation et le traitement des réorgues, les journaux immuables avec l'ancrage, les schémas unifiés et les registres de configues, ainsi que des SLO et des playbook clairs, l'écosystème reçoit des rapports vérifiables et des risques gérables, de l'événement brut à la solution de gestion.