Sémantique de la preuve

Ce que prouve un certificat Signet — précisément.

Cette page fait partie du produit, pas du marketing. Une preuve n'est utile que si tout le monde s'accorde exactement sur ce qu'elle affirme. Voici l'affirmation, la cryptographie qui la sous-tend et comment la vérifier sans nous faire confiance.

L'affirmation

Un certificat Signet formule une seule affirmation, étroite et forte : le détenteur de la clé privée d'une adresse donnée a signé un challenge donné à un moment donné. Rien de plus. C'est une preuve de contrôle d'une clé, pas d'identité.

Prouvé, sans tiers de confiance

  • Cette adresse a produit cette signature sur ce challenge.
  • Le signataire détenait la clé privée au moment de la signature.
  • Le hash du certificat existait au plus tard au moment de l'ancrage on-chain.

Non prouvé

  • L'identité du signataire.
  • Que le contrôle soit exclusif, ou que la clé n'ait été ni partagée ni obtenue sous la contrainte.
  • Que le signataire soit client du demandeur — le rattachement à une identité relève du KYC du demandeur.

Comment elle est prouvée

Le demandeur émet un challenge qui intègre un nonce à usage unique lié à cette seule demande. La contrepartie signe les octets exacts du challenge avec son portefeuille. Nous vérifions la signature par rapport à l'adresse sur la bonne blockchain, puis nous hachons le certificat obtenu et ancrons ce hash on-chain via un lot merkle — le même contrat Stamper que dans toute la famille BA, de sorte que le vérificateur public le valide sans modification.

Le nonce rend tout rejeu impossible : une signature sur le challenge d'une demande ne peut pas être transférée à une autre. Nous vérifions le challenge conservé octet par octet, jamais une copie régénérée.

Cryptographie par blockchain

Chaque blockchain a sa propre norme de signature. La couche de vérification est conçue pour que l'ajout de nouvelles blockchains ne modifie pas l'existant.

BlockchainNormeVérification
Ethereum et EVMEIP-191 personal_signRécupération hors ligne du signataire
Portefeuilles smart contractEIP-1271Appel on-chain à isValidSignature
Bitcoin (SegWit / Taproot)BIP-322Hors ligne
Bitcoin (P2PKH legacy)BIP-137 signmessageHors ligne
Litecoin, Dogecoin, Zcash (t1)BIP-137 avec le préfixe du réseauHors ligne
Solanaed25519Hors ligne
Polkadot, Kusamasr25519 / ed25519Hors ligne
TRONTronWeb signMessageV2 (également app Ledger TRON)Récupération hors ligne du signataire

Vérifiez par vous-même

Chaque certificat exporte un paquet de preuve autonome. Chacun peut le vérifier sur les blockchains publiques, sans compte et sans faire confiance à BA | Signet :

  1. signature est une signature valide de challenge par address sur la blockchain indiquée. Cela suffit à prouver le contrôle de la clé.
  2. Recalculez le SHA-256 du JSON canonique du certificat ; il doit être égal à contentHash (la feuille merkle).
  3. Repliez la feuille avec merkleProof (keccak256, paires triées) ; le résultat doit être égal à merkleRoot.
  4. Appelez timestamps(merkleRoot) sur le contrat Stamper sur Polygon ; une valeur non nulle est le moment auquel le certificat existait au plus tard.
  5. Vous pouvez aussi vérifier la preuve OpenTimestamps par rapport au bloc Bitcoin.

Ce que nous conservons

La contrepartie n'est pas notre cliente et n'a pas de compte. Nous collectons le strict minimum : l'adresse, le challenge, la signature, l'horodatage et la référence du demandeur. Nous ne demandons ni n'acceptons jamais de clé privée ou de phrase de récupération. Aucun profilage par IP au-delà de ce qu'exige la prévention des abus. La conservation constitue le dossier de conformité du demandeur, supprimé sur demande.