DS03 — Le processus de signature (Accept/Deny/Sign)
Déclencheur S2
Une fois le document de signature (DS02) défini, le vérificateur pose la bonne question : qu'a-t-on donc décidé ? Un document de signature dit seulement : « E1 signe le document X. » Le processus — acceptation (Accept), refus (Deny), signature (Sign), retrait (Withdraw) — est un événement à part entière, avec sa propre chronologie.
Machine à états du processus de signature
Un processus suit une machine à états déterministe :
Chaque changement d'état est un artefact d'événement dans le dépôt — un
document JSON selon le schéma signature-event-1.0 :
{
"$schema": "https://gitcover.org/schemas/signature-event-1.0.schema.json",
"uuidV7": "<deterministische uuidV7>",
"type": "signature-event",
"event": "sign",
"actor": {
"name": "Erich Mustermann",
"role": "Geschäftsführer",
"capacity": "handelnd für PARTNER-ORG"
},
"on": {
"signature_doc_sha256": "<SHA-256 des Signatur-Docs (DS02)>",
"target_doc_sha256": "<SHA-256 des Quell-Dokuments>"
},
"prev_event_sha256": "<SHA-256 des vorherigen Events, null beim ersten>",
"statement": "Ich zeichne das Dokument in der angegebenen Funktion und bestätige den in der Textform übermittelten Wortlaut.",
"evidence": {
"facsimile_ref": {
"file": "E1.Signature.transparent.FES.svg",
"sha256": "8fcffe0b313f8a1e5b44c1c33cd8073e699b338b6450aa1ba9f33f5587501006",
"guid_stamp": "01a09b48-4580-76f9-b789-024691b989c5"
},
"timestamp_utc": "2026-09-13T15:20:00Z"
}
}
Le chaînage : prev_event_sha256
Chaque événement renvoie à son événement prédécesseur — l'historique
des signatures forme une chaîne SHA-256 (principe prev_sha256 du GCPN, ici au niveau des événements) :
offered (event 1) ──► accepted (event 2) ──► signed (event 3)
│ │ │
sha256 sha256 sha256
└── prev=null ─────────┴── prev=sha(ev1) ───┴── prev=sha(ev2)
Un vérificateur peut vérifier l'intégralité de l'historique avec trois commandes :
sha256sum ev1.json # stimmt mit prev in ev2?
jq -r '.event' ev*.json | sort # Zustandsfolge korrekt?
jq -r '.actor.name' ev*.json | sort -u # Zeichner konsistent?
Les types d'événements
| Événement | Signification | Valeur probante |
|---|---|---|
offered |
Signature demandée (document présenté pour être signé) | Point de départ du délai, équité de la procédure |
accepted |
Le destinataire en a pris connaissance (accès en forme textuelle confirmé) | § 126b (1) : accès prouvé |
denied |
Le destinataire refuse (avec motivation) | Documente le refus — important en cas de versions contradictoires |
sign |
Le signataire signe (référence Facsimile/clé) | § 371a ZPO : apposition du nom + indication de forme |
withdraw |
Le signataire se rétracte (avant forclusion) | Retrait à l'épreuve des révisions au lieu d'une suppression silencieuse |
Aucune suppression silencieuse : un événement n'est jamais supprimé ni écrasé. Un retrait est un événement
withdraw— l'historique reste complet (principe du GoBD : traçabilité).
Multi-signature : deux signataires, un document source
Lors d'une GVB avec deux lignes de signature, chaque signataire génère sa propre chaîne d'événements sur le même document source :
Quell-Dokument (sha256 T)
├── E1: offered → accepted → signed (Kette A)
└── PARTNER-1: offered → accepted → signed (Kette B)
La vérification (DS04) contrôle les deux chaînes indépendamment — et le conteneur GCPN (DS05) regroupe les deux sous une seule Container-ID.
Déterminisme
Chaque événement est décrit de façon déterministe : uuidV7 à partir de
l'horodatage + SHA-256 de l'événement, machine à états sans transitions
indéterminées, aucun texte libre hormis la déclaration statement. C'est
là la qualité de saga : le processus peut être reconstitué par tout
vérificateur de manière répétée et sans connaissance du contexte.
Résumé
- Le processus de signature est une machine à états (drafted → offered → accepted/denied → signed → withdrawn).
- Chaque changement d'état est un événement JSON (schéma
signature-event-1.0) avec chaîne SHA-256 (prev_event_sha256). - Les événements ne sont jamais supprimés — le retrait est un événement, pas une opération de suppression.
- Article suivant (DS04) : la routine de vérification du vérificateur.
Créé : 260913 | Partie I, article DS03 | Série : digital-signage