Pourquoi c'est sûr

Deux registres séparés, et ils doivent concorder.

Un bon fonctionne comme une carte cadeau: celui qui le détient peut l'utiliser. Ce qui compte est donc de savoir si celui que vous avez devant vous est authentique et pas encore utilisé. Pour cela, nous gardons l'enregistrement à deux endroits qu'une même personne ne peut pas modifier tous les deux.

bullmark

Garde le bon lui-même: qui le détient, ce qu'il vaut et s'il a déjà été utilisé.

Envoie l'empreinte (hachage) jamais le contenu

axowl

Garde l'empreinte de cet enregistrement: un code court calculé à partir de lui. L'heure d'arrivée est notée par l'horloge d'Axowl.

Axowl ne voit jamais le contenu d'un bon. Il reçoit seulement l'empreinte et la conserve avec son propre horodatage. Les deux côtés restent ainsi indépendants. Si un bon est modifié, son empreinte change aussi, et nous ne pouvons pas modifier l'empreinte conservée chez Axowl.

Ce qui est couvert

L'empreinte est calculée à partir de ces éléments

L'empreinte ne couvre pas toute la ligne de la base de données. Elle couvre la liste ci-dessous: vous voyez ainsi exactement ce qui est protégé. Si un seul de ces éléments change, l'empreinte ne correspond plus.

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 ont été ajoutés en août 2026, et ce sont les plus importants. Avant, on pouvait remettre un bon déjà utilisé à « non utilisé » dans la base et il passait encore tous les contrôles. L'utilisation était enregistrée ailleurs, donc l'empreinte ne changeait pas. Ce n'est plus possible.

Deux choses sont volontairement laissées de côté, car les inclure provoquerait de fausses alertes. La réservation est un blocage temporaire qui ne change pas la valeur du bon. Un bon retenu trente secondes en caisse n'a pas été modifié. L'état expiré est laissé de côté parce que la date d'expiration est déjà dans l'empreinte: chacun peut le déduire. Si l'état y figurait aussi, un bon vérifié sans problème lundi échouerait mardi sans que personne y ait touché. On finit par ignorer un contrôle qui donne de fausses alertes.

Comment chaque attaque est arrêtée

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

Modifier un bon dans la base

Quelqu'un baisse le prix, repousse la date d'expiration ou met son propre nom. L'empreinte change et ne correspond plus à celle conservée chez Axowl. Recalculer l'empreinte de notre côté ne sert à rien, car celle qui fait foi n'est pas dans notre base.

Dépenser deux fois le même bon

Le fait qu'un bon ait été utilisé fait désormais partie de l'empreinte: le remettre à « non utilisé » change donc l'empreinte. Chaque utilisation est aussi enregistrée à part, dans une entrée non modifiable reliée à la précédente. Deux enregistrements devraient porter le même mensonge, et l'un d'eux n'est pas le nôtre.

Créer un bon jamais émis

À l'émission, toute la série est enregistrée comme un seul fait qui ne peut plus être modifié: combien de bons, à quel prix, jusqu'à quelle date. Si 100 bons ont été émis, un 101e contredit un enregistrement qui existe déjà. Et chaque nouvelle empreinte est datée par l'horloge d'Axowl, pas par la nôtre: elle peut être créée aujourd'hui, jamais datée de l'an dernier.

Le transférer discrètement à quelqu'un d'autre

Le détenteur fait partie de l'empreinte: un bon ne peut donc pas changer de propriétaire par la modification d'un champ. Quand un bon est cédé, celui du donneur est fermé et le receveur reçoit le sien, avec le même numéro de série. Les deux étapes restent enregistrées: aucune cession n'apparaît avec un seul côté.

Codes copiés

Et si quelqu'un copie mon QR?

Un QR code (le carré que l'on scanne) n'est pas le bon lui-même. Il renvoie seulement à un bon numéroté dans nos registres. Une photo de QR vaut donc exactement ce que vaut ce bon au moment où quelqu'un la présente. Tous les cas ci-dessous s'expliquent ainsi.

Un code inventé

Quand un bon est utilisé, le système cherche le code dans nos registres. Il ne lit aucune valeur sur l'image. Un code jamais émis ne mène à rien, même si le QR qui l'entoure paraît authentique. Personne ne peut dessiner un bon pour le faire exister.

Une copie d'un vrai

Une copie porte le même code: c'est donc le même bon, pas un second. La première utilisation est enregistrée sur ce bon et ne peut plus être modifiée. Toute tentative suivante, avec la copie ou l'original, reçoit la réponse qu'il a déjà été utilisé. Dix captures d'écran restent un seul bon.

Une capture gardée avant de le vendre

Quand un bon est cédé, en cadeau ou en revente, celui du donneur est fermé et le receveur en reçoit un nouveau avec un nouveau code, sous le même numéro de série. Le code de l'ancienne capture mène désormais à un bon fermé. Vendre un bon puis se dépêcher de l'utiliser avant l'acheteur ne marche pas.

Un code qu'un autre a vu en premier

Ce risque est réel et nous préférons le dire. Celui qui a le code peut utiliser le bon, et la marque qui accepte un code ne sait pas qui tient le téléphone. Scanner un QR ne révèle pas le code. Le scan montre que le bon est authentique et non utilisé; le code n'est affiché qu'à son détenteur connecté et à la marque qui l'a émis. Mais un code que vous publiez ou dictez est un code qu'une autre personne peut utiliser. Traitez-le comme un numéro de carte cadeau. Une marque qui veut fermer cette faille peut nous demander quels bons son client connecté détient réellement et le laisser choisir dans cette liste au lieu de saisir un code. Un code copié n'a alors nulle part où être saisi.

Quoi qu'il arrive, c'est enregistré. L'émission, la cession, la réservation et l'utilisation laissent chacune une entrée non modifiable, reliée à la précédente. Une marque peut récupérer l'historique complet de n'importe lequel de ses bons, contenu compris, et recalculer elle-même chaque empreinte. Savoir qui a utilisé un bon, et quand, ne dépend donc pas de notre parole.

Brand Credit

Pouvons-nous en créer en cachette?

Brand Credit fonctionne un peu comme de l'argent: une marque le recharge, émet des bons avec et encaisse ce qu'elle gagne. La bonne question est donc de savoir si nous pourrions ajouter une ligne à nos propres registres sans que personne le remarque, et pas seulement si un tiers peut s'introduire.

Les entrées ne font que s'ajouter

Les entrées sont ajoutées, jamais modifiées ni supprimées. Une correction est une nouvelle entrée qui dit ce qu'elle corrige: l'erreur et la correction restent toutes deux visibles. Il n'existe pas de solde dont on aurait retiré une ligne gênante.

Chaque entrée est verrouillée et reliée

Chaque entrée porte l'empreinte de la précédente. Modifier une ancienne entrée casse toutes les suivantes. Une seule modification discrète obligerait à réécrire toute la chaîne à deux endroits, dont l'un n'est pas le nôtre.

Un initié n'est pas exempté

Avoir accès à notre base de données ne donne pas le contrôle du registre. Quelqu'un qui a tous les droits sur notre base de production peut encore modifier une ligne. Il ne peut pas faire correspondre ensuite l'empreinte conservée chez Axowl. C'est pourquoi la seconde copie se trouve là où nos administrateurs n'ont pas de droits d'administrateur.

Vous pouvez l'auditer sans nous le demander

Une marque peut confier les ids de ses propres entrées à un comptable. Celui-ci recalcule les empreintes à partir de la chaîne ouverte et vérifie que les sommes tombent juste. Le contrôle ne passe pas par Bullmark: nous n'avons aucun moyen de l'influencer.

Récompenses de parrainage

De faux comptes peuvent-ils toucher la récompense?

Une récompense par nouvel utilisateur donne envie de créer de faux utilisateurs. La récompense n'est donc pas versée pour une inscription. Elle est versée pour une personne qui reste.

Rien n'est versé à l'inscription

La première connexion ne crée qu'une entrée en attente. La récompense est versée 7 jours plus tard, et seulement si cette même personne s'est reconnectée un autre jour. Un compte qui s'inscrit et ne revient jamais est clos sans paiement.

Une boîte mail, une récompense

Les variantes d'adresse qui arrivent dans la même boîte, comme un +tag ou les points d'une adresse Gmail, comptent pour une seule personne. Les adresses jetables peuvent se connecter, mais ne sont jamais récompensées.

Plafonds par appareil et en cas de rafale

Pour chaque marque, au plus trois inscriptions récompensées peuvent venir d'un même appareil. Les e-mails d'inscription vers de nouvelles adresses sont limités en fréquence par réseau et par app, après une vérification anti-robots activée par défaut. Un contrat qui reçoit soudain une rafale d'inscriptions cesse de payer, et la marque en est informée.

La perte maximale de la marque est fixée d'avance

Tout contrat avec récompense comporte un budget, et les récompenses en attente y sont comptées. Le parrain et les personnes de la marque ne sont jamais comptés. Chaque récompense, versée ou refusée, laisse un enregistrement non modifiable que la marque et le parrain voient tous deux.

Au-delà, le système comprend diverses protections supplémentaires qui ne peuvent être divulguées pour des raisons de sécurité.

Ce que nous ne prétendons pas

Nous vérifions un e-mail, rien au-delà.

Nous ne vérifions pas de passeports, nous ne gérons pas de service de vérification d'identité et nous ne prétendons pas savoir qui se trouve derrière une adresse. L'empreinte prouve qu'un enregistrement n'a pas été modifié. Elle ne rend pas vraie une affirmation non vérifiée. Une société qui confond les deux vous vend un sentiment de sécurité.

Voici exactement ce que nous promettons: ce bon, à ce prix, a été émis à cette adresse e-mail, à cette heure, et n'a pas été modifié depuis. L'e-mail est celui avec lequel le compte s'est authentifié, jamais une saisie dans un formulaire. Ce qui se trouve au-delà de cette adresse dépasse ce que nous pouvons prouver, et nous préférons vous le dire maintenant plutôt que vous le laisser découvrir plus tard.

Vérifiez vous-même

Vous n'êtes pas obligé de nous croire

Chaque entrée verrouillée est lisible, et le calcul qui la produit est public. Donnez la chaîne d'entrées à notre SDK JavaScript, ou à tout outil capable de calculer un SHA-256 (une méthode standard pour obtenir l'empreinte), et recalculez les empreintes vous-même. Le contrôle s'exécute entièrement de votre côté et ne demande rien à Bullmark.

GET /integrity/events/VoucherInstance/{id}

Il renvoie des empreintes et des résultats de contrôle, jamais le contenu des bons ni les codes d'utilisation. Il peut donc rester ouvert sans devenir un moyen de lire les bons des autres.

Commencez

Sans avance de trésorerie.

Référencez votre startup Comment ça marche

Loading…
an unhandled error has occurred. reload ✕