Mise en placeInstaller le SDK
L’entreprise SI ajoute le SDK Qstamp open source au service qui exécute ses agents. Il ne comporte qu’une seule dépendance, QCore, pour la signature post-quantique.
$ npm install @quantovainc/qstamp
added 2 packages
$ npx @quantovainc/qstamp --version
0.1.4
paquet@quantovainc/qstamp 0.1.4
bibliothèque de signature@quantovainc/qcore 0.4.2
licenceApache 2.0 ou MIT · Droit d’auteur 2026 Quantova Inc
Mise en placeCréer le compte signataire
Une clé de signature est créée sur le propre serveur de l’opérateur ou sur son module matériel de sécurité. Son compte est approvisionné et enregistré une seule fois sur le réseau Quantova.
$ openssl rand -hex 32 > signer.key && chmod 600 signer.key
$ node account.js
address Q1NUR6ETECQXEVE77TJ9YPZ6WAWYMT45WCJANV5J43X93SF79DWE0S0D572X
status registered, ready to stamp
signature du compteML DSA 65 · FIPS 204
garde de la cléopérateur uniquement, jamais transmise à Quantova
Mise en placeChoisir ou déployer le contrat
L’entreprise horodate au moyen du contrat Qstamp officiel, ou déploie son propre contrat émetteur à partir des modèles Quanta. Son propre contrat est compilé dans QIDE sur qdock.io par le compilateur Quanta attesté et déployé avec le portefeuille QMask.
contrat officielQ1D6TZFRL203P3DFAFVUPZUHGUCM4EWGH6063XNS42VA5235RNQWXS7FXEWX
contrat de l’institutionQ1DAJ3TZ7AN8JVY2MUCWYUWVPXEJSHH53JNDZ48L07RT6948J2N5QSNF3787
conteneur compilécorrespond au hachage audité 7cd509e2d21bc4a3
domaine de déploiementvaleur aléatoire fraîche de 64 bits liée à chaque ordre signé
IntégrationEnregistrer le modèle
Lorsqu’un modèle est approuvé pour utilisation, son passeport est horodaté avec le type d’enregistrement ai_model. Chaque décision ultérieure peut alors être rattachée au modèle exact qui l’a prise.
model-passport.jsonregistre de modèles
{
"evaluation": {"approved_by": "Model Risk Committee", "auc": 0.871},
"model": "risk-model 3.2.1",
"time": "2026-10-09T09:39:27.273Z",
"training_data": "dataset manifest 2026-09-30",
"weights_sha3": "f01483b8e6269760c5c2e2025875b6e5d1b16402443e9a98d73e0a43156bf17b"
}type d’enregistrement4 · ai_model
empreinte1b15118c7e2f1e482f87821a43d8062585b85e93d061bef1f6d429f621cfc850
transactionQTX19P000T7X6TPFPG8XMXV2GPU0XAR94H36LF7TKP6GGTXN2NQPWLZQ8PZJFY
bloc2,011,764
IntégrationConnecter l’environnement d’exécution de l’agent
L’environnement d’exécution de l’agent consigne chaque appel d’outil et chaque décision sous la forme d’un enregistrement canonique, le conserve dans le propre journal de l’entreprise et ancre le lot chaque minute. Les reçus sont stockés à côté des actions.
agent-runtime.jssystème de l’opérateur
const qstamp = require('@quantovainc/qstamp');
const batch = [];
agent.on('action', (action) => {
const bytes = Buffer.from(canonicalJson(action));
log.write(bytes);
batch.push({ digest: qstamp.digestBytes(bytes) });
});
setInterval(async () => {
const records = batch.splice(0);
if (records.length === 0) return;
const receipts = await qstamp.stamp({
seed, index: 0, kind: 'ai_agent_action', records,
onPending: savePending,
});
receipts.forEach(storeBesideAction);
}, 60000); ExploitationL’agent agit
Un agent de décision de crédit d’une banque approuve un prêt. Son action est consignée sous la forme d’un enregistrement JSON canonique indiquant l’agent, le modèle, la politique, l’outil, la décision et l’heure.
credit-batch-1/action-04.jsonsystème de l’opérateur
{
"agent": "credit-decision-agent-07",
"amount_usd": 125000,
"applicant": "APP-54a49c823275",
"decision": "approve",
"human_review": false,
"model": "risk-model 3.2.1",
"operator": "Example Bank plc",
"policy": "retail-lending-policy 2026-10",
"reasons": ["score_above_threshold"],
"risk_score": 645,
"time": "2026-10-09T09:39:25.132Z",
"tool": "credit_bureau.lookup"
} ExploitationLe SDK en calcule l’empreinte
Sur les propres systèmes de l’opérateur, le SDK calcule l’empreinte SHA3 de 256 bits de l’enregistrement. L’enregistrement lui-même ne quitte jamais la banque.
$ npx @quantovainc/qstamp hash action-04.json
action-04.json
algorithmeSHA3 256 · FIPS 202
empreinteefb393903da28c2a6221179be662a2bbe2be06dfbd1acdee26bb057b6d2fb11f
ExploitationSalage et regroupement en lot
L’empreinte est liée à un sel aléatoire frais et placée dans un arbre de hachage avec les autres actions du lot. Six actions partagent une même racine d’arbre.
feuilleH(0x00 ‖ QSTAMP/LEAF/V1 ‖ alg ‖ digest ‖ salt)
seld275e738d46530b36f2c90e48a16bcd6e37fa9480378eb253c4e7a66a6a6b710
taille du lot6 actions
racine de l’arbre34f64b12e5b363f1add6c48c0f85ebd60e4c2d421e5559f5d7b88717db205c54
ExploitationUn engagement unique
La racine est liée à la chaîne, au contrat officiel, au compte signataire, au type d’enregistrement et à la taille du lot. Le résultat est un engagement cryptographique unique de 32 octets.
engagementH(0x02 ‖ QSTAMP/ROOT/V1 ‖ genesis ‖ contract ‖ sender ‖ kind ‖ size ‖ root)
type d’enregistrement6 · ai_agent_action
valeur6068a3e9625471530eda32f3292a9ac667c4f543281d62b12c62ad3481f07e0a
ExploitationSigné avec ML DSA 65
Le SDK envoie une transaction unique qui appelle le contrat Quanta Qstamp sur la machine virtuelle Quantova. Elle est signée avec ML DSA 65, une signature post-quantique.
transactionQTX1V53JW528S64SZYD6EDZ563N0PUUA2ARGNQHV4LTJMNH24PQS5VPQTAH8RQ
signataireQ1NUR6ETECQXEVE77TJ9YPZ6WAWYMT45WCJANV5J43X93SF79DWE0S0D572X
contratQ1D6TZFRL203P3DFAFVUPZUHGUCM4EWGH6063XNS42VA5235RNQWXS7FXEWX
signatureML DSA 65 · FIPS 204
frais0.005 TQTOV pour l’ensemble du lot
ExploitationFinal sur la chaîne
Les validateurs finalisent le bloc au moyen de signatures post-quantiques. Le contrat consigne l’engagement cryptographique dans un événement Stamped. L’horodatage est devenu final en moins d’une seconde.
bloc2,011,753
heure2026-10-09 09:39:25 UTC
événementStamped · sélecteur 5a110849
données de l’événementsigner ‖ commitment ‖ kind
✓ final · consigné par le contrat officiel
ExploitationVisible dans l’explorateur
Toute personne peut ouvrir la transaction sur QVMScan, l’explorateur public de Quantova, et y lire l’engagement cryptographique, le signataire, le type d’enregistrement et le bloc.
qvmscan.io/tx/QTX1V53JW5…PQTAH8RQ
statutSuccess
bloc2,011,753
deQ1NUR6ETECQXEVE77TJ9YPZ6WAWYMT45WCJANV5J43X93SF79DWE0S0D572X
versQ1D6TZFRL203P3DFAFVUPZUHGUCM4EWGH6063XNS42VA5235RNQWXS7FXEWX
Preuve QstampStamped · Official Qstamp contract · ai_agent_action
engagement6068a3e9625471530eda32f3292a9ac667c4f543281d62b12c62ad3481f07e0a
Ouvrir la transaction réelle PreuveUne juridiction demande ce qu’a fait l’agent
La banque produit l’enregistrement et son reçu. Le vérificateur recalcule l’empreinte, la racine de l’arbre et l’engagement cryptographique, et retrouve le même engagement sur la chaîne. La modification d’un seul chiffre fait échouer la vérification.
$ npx @quantovainc/qstamp verify action-04.json.qstamp.json --file action-04.json
pass format · pass contract · pass content · pass inclusion
pass chain · pass transaction · pass event · pass block
VALID stamped no later than 2026-10-09T09:39:25Z in block 2011753
$ npx @quantovainc/qstamp verify action-04.json.qstamp.json --file altered.json
FAIL content the content does not match the fingerprint in the receipt
INVALID
empreinte d’origineefb393903da28c2a6221179be662a2bbe2be06dfbd1acdee26bb057b6d2fb11f
empreinte altérée93b2b98383cd8fc1d71c9727c358b077149123050b4e1ac78654e1889f37c086