Comprobantes verificables: por qué una orden agéntica necesita prueba firmada

El hash de la transacción prueba que el dinero se movió. No prueba qué se compró, a qué precio, bajo qué reglas ni con permiso de quién. Eso falta, y es lo que se disputa.

Lo que un hash no dice

Una compra agéntica se liquida en segundos y le deja al comercio un identificador de transacción. Ese identificador es excelente para una cosa: probar que un monto se movió de una dirección a otra en un momento dado. Y es inútil para todo lo demás.

No dice qué artículos se vendieron. No dice a qué precio se ofrecieron ni con qué condiciones. No dice si el comercio tenía una regla que permitía esa venta, ni si un humano aprobó una orden que superaba el umbral, ni quién era el dueño del agente que compró. Cuando el comprador reclama, el contador concilia el mes o alguien pregunta cómo se trató a una contraparte automática, todo eso es lo que hace falta.

Las redes de tarjetas resolvieron esto hace décadas con el registro de autorización. El comercio agéntico tiene el pago y no tiene el registro. Cada sistema lo reinventa como una línea de log, es decir, como algo que el comercio puede editar después en silencio.

Qué es un comprobante, concretamente

Un documento JSON por venta que junta cuatro cosas que hoy viven separadas: la oferta que se hizo, las reglas bajo las que se aceptó, el consentimiento que hubo y la liquidación que ocurrió. Lo firma la tienda con su propia llave y lo encadena al comprobante anterior: cada uno lleva el hash del que le precede.

El documento incluye, entre otros campos, la posición en la cadena, el hash del anterior, el tipo de evento, la tienda y su llave pública, la orden y su número en el sistema del comercio, los términos exactos que se cotizaron, la decisión de política, la aprobación humana si la hubo, la identidad del agente si se exigió, y el pago con su hash, su red, su activo y su monto.

Los montos van siempre como cadenas de enteros en unidades mínimas, nunca como números decimales. Un comprobante viaja entre lenguajes distintos, y los números JSON pierden precisión sobre cierto tamaño. Un centavo perdido en una conversión arruina exactamente la propiedad que se quería tener.

Las cuatro propiedades que importan

Se verifica sin nosotros. Comprobar un comprobante es recalcular un SHA-256 sobre el cuerpo y validar una firma Ed25519 contra la llave pública que viene dentro. No hace falta una API, ni una base de datos, ni un servicio que pueda estar caído. Si AgentPOS desaparece, los comprobantes de una tienda siguen siendo verificables.

Encadenar no impide adulterar: lo hace visible. Esa es la propiedad real. Quien tenga un comprobante posterior puede demostrar que uno anterior fue modificado. Una cadena no protege por magia, hace que reescribir el pasado deje marcas.

Lo que no ocurrió también es evidencia. Un rechazo por política, una orden retenida porque el pago no coincidía, una aprobación que expiró sin respuesta: todo eso genera comprobante. Una cadena que solo registra éxitos es un documento de marketing.

Nunca a costa de la venta. Una tienda que no puede escribir su comprobante igual despacha la orden que ya cobró. La evidencia no puede convertirse en un segundo punto de falla.

Sin nueva custodia y sin nueva autoridad

La llave que firma comprobantes no guarda fondos y es del comercio. No hay registro central, no hay notario, no hay un servicio de comprobantes que pueda caerse o cobrar peaje. Ese es el punto de diseño más importante: si la prueba dependiera de nosotros, no sería prueba, sería confianza en nosotros con pasos extra.

Dónde está esto hoy

El formato está escrito, implementado y publicado como especificación en el repositorio, con estado de borrador y su versión declarada dentro de cada documento. La tienda firma y encadena cada venta, el comprador recibe su copia junto con la orden y puede verificarla por su cuenta, y la herramienta de línea de comandos revisa la cadena completa.

Lo que viene, y todavía no existe, es el paso siguiente: anclar periódicamente la cabeza de la cadena en la red, para que cualquiera pueda probar que un comprobante existía en una fecha sin confiar en la tienda ni en nosotros. Está planificado y declarado como trabajo futuro, no como algo que ya puedas usar.

Si te interesa el formato mismo, la especificación está en el repositorio y se lee en media hora. Las críticas a un borrador son más útiles que los elogios a una versión final.

La especificación de comprobantes se publica junto con el repositorio, en octubre de 2026. Si la necesitas antes, escríbenos.