Pourquoi c'est sûr

Deux registres, et ils doivent concorder.

Un bon est un titre au porteur. Quiconque le détient peut le dépenser, donc la seule question qui compte est de savoir si celui qui est devant vous est authentique et non utilisé. Nous y répondons en gardant l'enregistrement à deux endroits qui ne peuvent pas être modifiés par les mêmes mains.

bullmark

Détient le bon lui-même — qui l'a, ce qu'il vaut, s'il a été utilisé.

Envoie le hachage jamais le contenu

axowl

Détient l'ancre — une empreinte de cet enregistrement, et sa propre horloge disant quand il est arrivé.

axowl ne voit jamais ce que dit un bon. On lui remet une empreinte et il la stocke avec son propre horodatage. C'est tout le dispositif, et c'est ce qui rend les deux côtés indépendants: changer un bon, c'est changer son empreinte, et l'empreinte n'est pas à nous de la changer.

Ce qui est couvert

L'empreinte est prise sur ceux-ci

Pas la ligne entière — une liste nommée, pour que ce soit connaissable plutôt qu'affaire de confiance. Changez-en un seul et l'empreinte cesse de correspondre.

Le produit la marque qui le détient son code d'utilisation son numéro de série le prix consommateur le prix qu'il accorde quand il expire s'il a été utilisé quand il a été utilisé l'e-mail du détenteur

Les trois derniers se sont ajoutés en août 2026, et c'étaient les importants. Un bon consommé remis à « non utilisé » dans la base gardait son empreinte et passait tous les contrôles — l'utilisation était enregistrée ailleurs, si bien que la ligne elle-même pouvait dire qu'on n'y avait jamais touché. Elle ne le peut plus.

Deux choses sont volontairement laissées de côté, parce que les inclure créerait de fausses alertes. La réservation est un verrou, pas un fait sur la valeur — un bon retenu trente secondes en caisse n'est pas un bon modifié. L' expiration est déjà dérivable, puisque la date d'expiration est elle-même scellée; sceller aussi l'état signifierait qu'un bon vérifié propre lundi échoue mardi sans que personne y ait touché. Un vérificateur qui crie au loup, on apprend à passer outre.

Où meurt chaque attaque

Quatre façons de tricher de l'intérieur, et ce qui les arrête

Modifier un bon dans la base

Baissez le prix, repoussez l'expiration, mettez votre nom dessus. L'empreinte change et ne correspond plus à l'ancre détenue chez axowl. Recalculer notre propre copie n'aide pas — la copie qui tranche n'est pas dans notre base.

Dépenser deux fois le même bon

L'utilisation est désormais dans le sceau, donc la remettre à « non utilisé » change l'empreinte. Et l'utilisation est enregistrée à part comme sa propre entrée scellée, chaînée à la précédente — deux enregistrements devraient s'accorder sur le mensonge, et l'un d'eux n'est pas le nôtre.

Frapper un bon jamais émis

Émettre scelle tout le lot comme un fait unique: tant d'unités, à ce prix, jusqu'à cette date. Un cent-unième bon contredit un enregistrement déjà écrit. Et une nouvelle ancre porte l'horloge d'axowl, pas la nôtre — elle peut être créée aujourd'hui, jamais l'an dernier.

Le déplacer discrètement à quelqu'un d'autre

Le détenteur est dans le sceau: un bon ne peut donc pas changer de mains en modifiant un champ. Le remettre clôt l'exemplaire du donneur et émet au receveur le sien, portant le même numéro de série, les deux moitiés restant au registre. Il n'existe pas de version de l'histoire avec un seul côté.

Codes copiés

Et si quelqu'un copie mon QR?

Un QR n'est pas le bon. C'est un pointeur vers une ligne numérotée de notre côté, et la ligne est le bon. Une photo de QR vaut donc exactement ce que vaut la ligne derrière elle au moment où quelqu'un la présente — c'est la bonne façon de penser chacun des cas ci-dessous.

Un code inventé

L'utilisation interroge le code; elle ne lit pas une valeur sur l'image. Un code jamais émis ne pointe vers rien, aussi convaincant que paraisse le QR autour. Il n'y a aucun moyen de dessiner un bon pour le faire exister.

Une copie d'un vrai

Une copie, c'est le même code, donc le même bon — pas un second. La première utilisation est scellée dans la ligne; toute tentative ultérieure, depuis la copie ou l'original, s'entend répondre qu'il a déjà servi. Dix captures, cela reste un seul bon.

Une capture gardée avant de le vendre

Remettre un bon — cadeau ou revente — clôt la ligne du donneur et émet au receveur une nouvelle ligne avec un nouveau code, sous le même numéro de série. Le code de l'ancienne capture pointe désormais vers une ligne close. Vendre un bon puis courir plus vite que l'acheteur pour le dépenser ne marche pas.

Un code qu'un autre a vu en premier

Ce risque est réel, et nous préférons le dire: un bon est un titre au porteur, et une marque qui utilise le code n'apprend pas qui tient le téléphone. Scanner un QR ne divulgue pas le code — un scan montre que le bon est authentique et non utilisé, et le code seulement à son détenteur connecté et à la marque émettrice — mais un code que vous publiez ou dictez est un code qu'un autre peut utiliser. Traitez-le comme un numéro de carte cadeau. Une marque qui veut fermer cette porte peut nous demander quels bons son client connecté détient réellement et le laisser choisir dans cette liste, au lieu d'accepter un code tapé — alors un code copié n'a nulle part où être saisi.

Et quel que soit le chemin, c'est consigné. Émission, remise, réservation et utilisation sont chacune une entrée scellée chaînée à la précédente. Une marque peut récupérer la chaîne complète de n'importe lequel de ses bons — contenu compris — et re-dériver elle-même chaque empreinte: « qui a dépensé ceci, et quand » a donc une réponse qui ne dépend pas de notre parole.

Crédit de marque

Pouvons-nous en imprimer en douce?

Le crédit de marque a la forme de l'argent: une marque le charge, émet des bons contre lui, et encaisse ce qu'elle gagne. La vraie question n'est donc pas si un tiers peut s'introduire — c'est si nous pouvons ajouter une ligne à notre propre registre en espérant que personne ne le remarque.

Le registre ne fait que croître

Les entrées sont ajoutées, jamais modifiées ni supprimées. Une correction est une autre entrée qui dit ce qu'elle corrige: l'erreur et le correctif restent visibles tous les deux. Il n'existe pas de version du solde avec la ligne gênante retirée.

Chaque entrée est scellée et chaînée

Chacune porte l'empreinte de la précédente. Modifier une ancienne entrée casse toutes celles d'après: le coût d'une seule modification discrète, c'est réécrire toute la chaîne — à deux endroits, dont l'un n'est pas le nôtre.

Un initié n'est pas exempté

Ici, l'accès à la base n'est pas l'accès au registre. Quelqu'un avec tous les droits sur notre base de production peut toujours changer une ligne — il ne peut simplement pas faire en sorte que l'ancre chez axowl y adhère ensuite. C'est tout l'intérêt de garder la seconde copie là où nos administrateurs ne sont pas administrateurs.

Vous pouvez l'auditer sans nous le demander

Une marque peut confier ses propres ids d'entrée à un comptable, qui re-dérive les empreintes depuis la chaîne ouverte et vérifie que les sommes tombent juste. Le contrôle ne passe pas par bullmark: il n'y a rien où nous pourrions nous montrer serviables.

Ce que nous ne prétendons pas

Nous vérifions un e-mail. C'est la limite.

Nous ne vérifions pas de passeports, ne tenons pas de bureaux d'identité et ne prétendons pas savoir qui se cache derrière une adresse. Un sceau prouve qu'un enregistrement n'a pas été modifié — il ne rend pas vraie une affirmation non vérifiée, et une société qui confond les deux vous vend un sentiment.

Voici donc la promesse exacte: ce bon, à ce prix, a été émis à cette adresse e-mail, à cette heure, et n'a pas été touché depuis. L'e-mail est celui avec lequel le compte s'est authentifié, jamais un champ de formulaire saisi par quelqu'un. Tout ce qui dépasse cette adresse est hors de ce que nous pouvons prouver, et nous préférons le dire plutôt que de vous le laisser découvrir plus tard.

Vérifiez vous-même

Vous n'êtes pas obligé de nous croire

Chaque entrée scellée est lisible, et les mathématiques qui l'ont produite sont ouvertes. Confiez la chaîne à notre sdk javascript — ou à tout ce qui sait faire du sha-256 — et re-dérivez les empreintes vous-même. Le contrôle tourne entièrement de votre côté; il ne demande rien à bullmark.

GET /integrity/events/VoucherInstance/{id}

Il renvoie des hachages et des verdicts, jamais des contenus ni des codes d'utilisation — il peut donc rester ouvert sans devenir un moyen de lire les bons des autres.

Lancez la boucle

Sans avance de trésorerie.

Référencez votre startup Comment ça marche

Loading…
an unhandled error has occurred. reload