Por qué es seguro

Dos libros contables, y tienen que coincidir.

Un vale es un instrumento al portador. Quien lo tiene puede gastarlo, así que la única pregunta que importa es si el que tienes delante es real y está sin gastar. Respondemos a eso guardando el registro en dos sitios que no pueden ser editados por las mismas manos.

bullmark

Guarda el vale en sí: quién lo tiene, cuánto vale, si se ha usado.

Envía el hash nunca el contenido

axowl

Guarda el ancla: una huella de ese registro y su propio reloj diciendo cuándo llegó.

axowl nunca ve lo que dice un vale. Se le entrega una huella y la almacena con una marca de tiempo propia. Ese es todo el arreglo, y es lo que hace independientes a las dos partes: cambiar un vale significa cambiar su huella, y la huella no es nuestra para cambiarla.

Qué queda cubierto

La huella se toma sobre esto

No la fila entera: una lista con nombre, para que sea conocible en vez de una cuestión de confianza. Cambia cualquiera de ellos y la huella deja de coincidir.

El producto la marca quién lo tiene su código de canje su número de serie el precio de consumidor el precio que concede cuándo caduca si se ha usado cuándo se usó el correo del titular

Los tres últimos se unieron en agosto de 2026, y eran los importantes. Un vale gastado y devuelto a «sin usar» en la base de datos conservaba su huella y pasaba todas las comprobaciones: el canje se registraba en otro sitio, así que la propia fila podía decir que nunca la habían tocado. Ya no puede.

Dos cosas se dejan fuera a propósito, porque incluirlas generaría falsas alarmas. La reserva es un bloqueo, no un hecho sobre el valor: un vale retenido treinta segundos en una caja no es un vale cambiado. La caducidad ya es derivable, porque la fecha de caducidad está sellada; sellar también el estado significaría que un vale verificado limpio el lunes falla el martes sin que nadie lo haya tocado. Un verificador que grita «que viene el lobo» es uno que la gente aprende a saltarse.

Dónde muere cada ataque

Cuatro formas de hacer trampa desde dentro, y qué las detiene

Editar un vale en la base de datos

Baja el precio, alarga la caducidad, pon tu propio nombre. La huella cambia y ya no coincide con el ancla guardada en axowl. Recalcular nuestra propia copia no ayuda: la copia que decide no está en nuestra base de datos.

Gastar el mismo vale dos veces

El canje está ahora dentro del sello, así que devolverlo a «sin usar» cambia la huella. Y el canje se registra aparte como su propia entrada sellada, encadenada a la anterior: dos registros tendrían que ponerse de acuerdo en la mentira, y uno de ellos no es nuestro.

Acuñar uno que nunca se emitió

Emitir sella el lote entero como un hecho: tantos, a este precio, hasta esta fecha. Un vale número ciento uno contradice un registro ya escrito. Y un ancla nueva lleva el reloj de axowl, no el nuestro: puede crearse hoy, nunca el año pasado.

Moverlo en silencio a otra persona

El titular está dentro del sello, así que un vale no puede cambiar de manos editando un campo. Entregarlo cierra la copia de quien lo da y emite al receptor la suya, con el mismo número de serie, con ambas mitades en el registro. No hay una versión de la historia con un solo lado.

Códigos copiados

¿Y si alguien copia mi QR?

Un QR no es el vale. Es un puntero a una fila numerada de nuestro lado, y la fila es el vale. Así que una foto de un QR vale exactamente lo que valga la fila que hay detrás en el momento en que alguien la presenta, que es la forma útil de pensar cada caso de abajo.

Un código inventado

Canjear consulta el código; no lee un valor de la imagen. Un código que nunca se emitió no apunta a nada, por convincente que parezca el QR a su alrededor. No hay forma de dibujar un vale para que exista.

Una copia de uno real

Una copia es el mismo código, así que es el mismo vale, no un segundo. El primer canje queda sellado en la fila; todo intento posterior, desde la copia o desde el original, recibe la respuesta de que ya se usó. Diez capturas siguen siendo un solo vale.

Una captura guardada antes de venderlo

Entregar un vale —un regalo, una reventa— cierra la fila de quien lo da y emite al receptor una fila nueva con un código nuevo, bajo el mismo número de serie. El código de la captura antigua ahora apunta a una fila cerrada. Vender un vale y luego correr para gastarlo antes que el comprador no funciona.

Un código que otro vio primero

Este riesgo es real, y preferimos decirlo: un vale es un instrumento al portador, y a una marca que canjea por código no se le dice quién sostiene el teléfono. Escanear un QR no revela el código —un escaneo muestra que el vale es auténtico y está sin gastar, y el código solo a su titular con sesión iniciada y a la marca emisora—, pero un código que publicas o dictas es un código que otro puede usar. Trátalo como el número de una tarjeta regalo. Una marca que quiera cerrarlo puede preguntarnos qué vales tiene realmente su cliente con sesión iniciada y dejarle elegir de esa lista, en vez de aceptar un código escrito a mano: así un código copiado no tiene dónde introducirse.

Y vaya como vaya, queda en el registro. Emisión, entrega, reserva y canje son cada uno una entrada sellada encadenada a la anterior. Una marca puede obtener la cadena completa de cualquiera de sus vales —contenido incluido— y volver a derivar cada huella ella misma, así que «quién gastó esto y cuándo» tiene una respuesta que no depende de lo que digamos.

Crédito de marca

¿Podemos imprimirlo en silencio?

El crédito de marca tiene forma de dinero: una marca lo carga, emite vales contra él y cobra lo que gana. Así que la pregunta justa no es si alguien de fuera puede entrar, sino si nosotros podemos añadir una línea a nuestro propio libro y esperar que nadie lo note.

El libro solo crece

Las entradas se añaden, nunca se editan ni se borran. Una corrección es otra entrada que dice qué corrige, así que el error y el arreglo quedan ambos visibles. No hay una versión del saldo con la línea incómoda quitada.

Cada entrada está sellada y enlazada

Cada una lleva la huella de la anterior. Cambiar una entrada antigua rompe todas las posteriores, así que el coste de una sola edición silenciosa es reescribir la cadena entera, en dos sitios, uno de los cuales no es nuestro.

Alguien de dentro no está exento

Aquí el acceso a la base de datos no es lo mismo que el acceso al libro. Alguien con derechos completos sobre nuestra base de producción todavía puede cambiar una fila; sencillamente no puede hacer que el ancla en axowl esté de acuerdo después. Ese es todo el sentido de guardar la segunda copia en un sitio donde nuestros administradores no son administradores.

Puedes auditarlo sin pedírnoslo

Una marca puede entregar sus propios ids de entrada a un contable, que vuelve a derivar las huellas de la cadena abierta y comprueba que las sumas cuadran. La comprobación no pasa por bullmark, así que no hay nada en lo que podamos ser serviciales.

Lo que no afirmamos

Verificamos un correo. Esa es la línea.

No comprobamos pasaportes, no llevamos burós de identidad ni fingimos saber quién está detrás de una dirección. Un sello prueba que un registro no ha sido alterado; no convierte en verdadera una afirmación sin verificar, y una empresa que difumina esas dos cosas te está vendiendo una sensación.

Así que esta es la promesa exacta: este vale, a este precio, se emitió a esta dirección de correo, en este momento, y no se ha tocado desde entonces. El correo es aquel con el que se autenticó la cuenta, nunca un campo de formulario que alguien escribió. Todo lo que hay más allá de esa dirección queda fuera de lo que podemos probar, y preferimos decirlo a que lo descubras después.

Compruébalo tú mismo

No tienes que creernos

Cada entrada sellada es legible, y las matemáticas que la produjeron son abiertas. Pasa la cadena a nuestro sdk de javascript —o a cualquier cosa que sepa hacer sha-256— y vuelve a derivar las huellas tú mismo. La comprobación corre enteramente de tu lado; no le pregunta nada a bullmark.

GET /integrity/events/VoucherInstance/{id}

Devuelve hashes y veredictos, nunca contenidos ni códigos de canje, así que puede seguir abierto sin convertirse en una forma de leer los vales de otras personas.

Empieza el circuito

Sin efectivo por adelantado.

Publica tu startup Cómo funciona

Loading…
an unhandled error has occurred. reload