Un archivo que es mío no prueba nada
Tengo un archivo que registra lo que dicen las webs. Esa frase tiene un problema, y es la palabra “tengo”.
Un archivo que es mío no prueba nada. Podría abrir esta noche la base de datos, cambiar una fila, volver a sellarla, y fuera no se enteraría nadie. Quien haya discutido alguna vez sobre un documento delante de alguien que decide conoce el reflejo: quien ha creado el registro tiene interés en lo que dice. Así que la pregunta al construir esto nunca fue cómo guardar páginas. Fue cómo hacer que mi palabra deje de importar.
Esa pregunta tiene una respuesta aburrida y otra interesante. La aburrida es criptografía. La interesante son dos máquinas en dos países que no se hablan nunca.
Lo que se discute es la fecha, no el contenido
Una web no tiene memoria. Solo tiene presente. Eso no molesta hasta que dos partes discrepan sobre el pasado, y entonces es todo el problema.
Empecemos por el lado legible por máquinas, que es donde arrancó esto. Cuatro ficheros llevan casi todo lo que un sitio les dice a los rastreadores y a los sistemas de IA: robots.txt, ai.txt, /.well-known/tdmrep.json para la reserva de minería de textos y datos, y llms.txt. En un conflicto nadie discute que la reserva exista. Se mira y está ahí. Lo que se discute es desde cuándo. Una parte dice que el opt-out está puesto desde marzo. La otra dice que no estaba cuando rastrearon y que se puso después. Las dos están seguras. Ninguna tiene nada que enseñar.
A lo que se recurre en ese momento: los propios logs del servidor, el propio historial de git, las propias versiones del gestor de contenidos. Todo producido por la parte a la que le conviene. No digo que no valga nada. Digo que no me gustaría que fuese lo único encima de la mesa.
Y la misma forma aparece muy lejos de la IA. Un competidor cambia la página reclamada al día siguiente del burofax. Los servidores de nombres de un dominio se mueven dos veces durante un pleito de marcas. Una plataforma retoca sus condiciones en silencio y nadie guardó la versión anterior. Siempre la misma estructura: lo que importaba estaba público un martes, y cuando importa de verdad, el martes ya no está.
Dos testigos, y por qué no deben coincidir
Dos máquinas, entonces. Una en Alemania, otra en Francia. Proveedores distintos, redes distintas, edificios distintos, ordenamientos distintos dentro de la UE. El mismo software, instalado por el mismo script, porque aquí la configuración idéntica es una condición y no una comodidad. Cada noche a las 03:00 UTC las dos se despiertan y piden lo mismo a los mismos dominios.
No se coordinan. No comparan nada entre ellas. Cada una guarda lo que vio, construye un árbol de Merkle sobre su propio día y sella ese día a las 23:50 con su propia raíz.
Y aquí viene la parte que sorprende a la gente, que además es mi favorita de todo el sistema: las dos raíces diarias no coinciden nunca. Ni una sola vez. Tampoco deben.
Cada testigo rastrea según su propio calendario y acaba con su propio conjunto de hojas. Si las dos raíces fuesen idénticas alguna vez, eso no tranquilizaría, sería una señal de alarma, porque significaría que las dos máquinas están menos separadas de lo que yo digo. La coincidencia ocurre un nivel más abajo, en la observación concreta: este dominio, este fichero, este hash de contenido, registrado por las dos con horas de diferencia. Dos partes que nunca han hablado y dicen lo mismo sobre el mismo objeto valen algo. Dos partes que producen un resumen idéntico byte a byte merecen una auditoría.
Le da la vuelta al instinto habitual. La redundancia quiere espejos. La prueba quiere independencia, y la independencia es por definición más desordenada.
El sello, y lo que sale de mi control
Una raíz diaria por sí sola es solo un número que he apuntado. Se vuelve interesante cuando sale de mis manos, así que cada raíz se ancla de tres formas esa misma noche.
Un ancla va a OpenTimestamps y acaba en la cadena de bloques de Bitcoin. Barato, público, incómodo de explicar en una vista, imposible de reescribir en silencio.
La segunda es un sello de tiempo electrónico cualificado de un prestador de servicios de confianza de la lista de confianza de la UE. Ese es el que interesa a los juristas, porque el artículo 41.2 del Reglamento eIDAS le anuda una presunción: se presumen la exactitud de la fecha y hora que indica y la integridad de los datos a los que está vinculado. Estoy citando, no interpretando. Si esa presunción sirve de algo frente a un adversario concreto es una pregunta para alguien colegiado, y yo no lo estoy.
La tercera es un rastro público corriente, para que el valor haya existido demostrablemente fuera de mis máquinas ese día, legible sin herramientas especiales.
El material de verificación está publicado a propósito. Hasta agosto pasado tenía anclas que nadie podía comprobar con herramientas estándar, lo que dejaba hueca toda la afirmación. Hoy un tercero puede coger la raíz sellada, coger el token de sello de tiempo y verificarlo con openssl ts -verify contra la cadena publicada. Un detalle que conviene saber de antemano: el certificado de firma de la autoridad de sellado caduca en diciembre de 2027, mientras que la prueba sigue viva. Verificar después de esa fecha requiere la opción -attime. Es una cuestión de verificación, no una caducidad.
Qué se registra, y a qué pelea pertenece
El archivo registra cinco clases de cosas. Cada una existe porque hay una discusión que se repite. Aquí se acaba lo abstracto.
Las señales legibles por máquina. robots.txt, ai.txt, la reserva TDM, llms.txt, cada día. La pelea: un proveedor de IA dice que la reserva no estaba cuando rastreó. Tú dices que sí estaba. Registrado a ambos lados de la fecha en cuestión, por dos máquinas que no se conocen, y sellado esa misma noche.
Una página, hoy, antes de que cambie. Un abogado ve una afirmación engañosa, una mención obligatoria que falta, un precio que incumple una norma. Lo más previsible de esa situación es que la página sea distinta cuando conteste la otra parte. La herramienta habitual es la captura de pantalla, es decir, el registro que una parte hace de su propia pantalla. Aquí la URL entra en la misma ronda nocturna en las dos máquinas, y el extracto de ese día trae los bytes, las cabeceras de respuesta, la cadena TLS y la hora UTC de la petición. Píxeles no. Bytes. Si lo que se discute es el aspecto de algo, esta es la herramienta equivocada, y así lo digo en la propia página.
Páginas concretas, a diario, mientras dure. Condiciones, una lista de precios, una información obligatoria, una página de licencia. Casi siempre se discute qué versión estaba vigente un día dado, y la respuesta honesta necesita una serie, no una foto.
Dominio, DNS y registro. La respuesta RDAP del registro, las respuestas de los servidores de nombres autoritativos y la página de inicio. Esto es terreno de conflictos de dominios: quién lo tenía el día Y, adónde apuntaba, qué mostraba. La mala fe en la UDRP se demuestra con el histórico, y hoy ese histórico se lo monta el propio demandante con lo que encuentra. Un titular de marca también puede hacer que se registren dominios parecidos al suyo antes de que pase nada, porque solo así el histórico existe en el momento en que resulta que hace falta. El mismo material responde a otra pregunta para una aseguradora cibernética, que quiere saber cómo estaba la configuración de correo y TLS el día anterior al incidente y no después de la limpieza.
Endpoints de agentes. Un endpoint MCP público, al que se le pregunta cada día qué herramientas declara, más la agent card que tiene al lado. Dos compradores opuestos, que es como sé que la pelea es real. El operador que tiene que demostrar que su endpoint no declaraba la herramienta que un agente supuestamente usó. Y la empresa cuyos agentes se conectan a endpoints ajenos y teme la redefinición silenciosa de una herramienta ya aprobada. Preguntarle a un endpoint qué sabe hacer significa mandar un POST y no pedir un fichero, que es otro tipo de rastreo y exigió construirlo aparte.
Condiciones de plataformas. Según el Reglamento P2B, una plataforma debe avisar con antelación a los usuarios profesionales antes de cambiar sus condiciones. Demostrar que una cláusula apareció sin ese aviso exige un registro diario hecho desde fuera de una página que nadie pensó en guardar.
Dos de estas están funcionando hoy. Algunas de las otras se construyen cuando alguien las encarga de verdad, y prefiero decirlo aquí antes que dejar que una lista de precios insinúe un almacén. El registro es la parte que no se puede fabricar después, por eso va primero y todo lo demás se cuelga de ella.
Estar registrado y pedir el registro son dos cosas distintas
Esta es la distinción que más se confunde, así que va aparte.
Estar registrado significa que un dominio se pide cada noche y que lo que decía entra en el sello de esa noche. Es un estado continuo. No produce nada que leer. No genera ningún documento, no manda ningún informe, y un día normal no hay nada que mirar. Todo su sentido es que el material exista más adelante, lo pida alguien o no.
Pedir el registro es el movimiento contrario. Algo ha salido mal, hay una fecha en disputa y alguien necesita un documento: los bytes guardados de un dominio y un periodo concretos, con los hashes, el camino de Merkle, las raíces diarias, las anclas y las instrucciones para comprobarlo todo sin mí. Eso es un extracto, se produce por caso, y se paga cada vez, también la segunda vez sobre el mismo asunto años después.
Dos consecuencias de esa separación, y las dos sorprenden:
- Se puede pedir un extracto sobre un dominio que no es tuyo. Unos 128.000 dominios de la UE ya están en el anillo amplio, registrados cada noche, porque su alcance los puso ahí sin que nadie me lo pidiera. Si el dominio con el que estás discutiendo es uno de ellos, el material existe y es anterior a la discusión. Nadie tuvo que comprar nada para que eso fuera cierto.
- Tener registrado tu propio dominio no da extractos gratis. Suena tacaño hasta que se le da la vuelta: el precio no puede depender de quién pregunta, porque entonces la otra parte pagaría más que mi cliente por el mismo documento. En ese momento el archivo deja de ser testigo y pasa a ser parte. La separación no es un truco de facturación, es la condición de neutralidad haciendo su trabajo.
Las mentiras por omisión que un archivo no se puede permitir
Aquí es donde un archivo podría hacer trampa sin escribir jamás una frase falsa.
No todos los dominios se registran igual. Unos 128.000 dominios de la UE están en el anillo amplio: sus ficheros de señal se piden a diario, pero la página de inicio solo una vez por semana y recortada por tamaño. Un anillo central bastante más pequeño lo recibe todo, a diario y completo. Esa es la forma honesta de un sistema que se paga de un solo bolsillo. El anillo amplio es barato precisamente porque hace menos.
Y de ahí sale una trampa. Imagínate un extracto, encargado para un conflicto real, que entrega una página capturada seis días antes de la fecha que importa, o un fichero cortado en un límite de tamaño, y no menciona ninguna de las dos cosas. Parecería completo. Se leería como concluyente. Sería lo peor que este archivo puede hacer, peor que un hueco declarado, porque con un hueco se puede trabajar y con uno callado no.
Por eso desde esta semana cada extracto dice, en su primera página y antes de cualquier paso de verificación: en qué anillo estaba el dominio, qué cadencia regía, si se aplicó un recorte, cuántos bytes se guardaron frente a cuántos envió el servidor. Y dos reglas que me costaron reescribir cosas:
- Si una observación no lleva la marca de recorte en su procedencia sellada, el extracto la llama desconocida. Nunca “completa”. Desconocida es una palabra honesta. Completa es una afirmación.
- Si la base de datos viva ya no alcanza todo el periodo, el extracto dice expresamente que un día que falta no es prueba de que no se observara. Solo significa que este documento no puede decir nada sobre ese día.
La misma disciplina se aplica a la historia del propio sistema. El segundo testigo funciona solo desde el 4 de agosto de 2026. Todo lo que va del 22 de julio al 3 de agosto está atestiguado por uno solo, para siempre, y el registro público lo marca día a día. El doble testimonio no se puede añadir después, porque es una propiedad del pasado y no del software. Un día, el 3 de agosto, se quedó a medio sellar porque el kernel mató el proceso por falta de memoria, y se selló dos días tarde. Ese día lleva de forma permanente una marca que lo dice. Podría haberlo vuelto a sellar en silencio. Justo por eso no lo hice.
Lo que deliberadamente no hace
No avisa a nadie cuando una página cambia. Tampoco cuando los clientes lo piden, y lo piden. En el momento en que le digo a una parte que algo se ha movido, he elegido bando.
No puntúa, no clasifica y no compara a nadie. No hay búsqueda pública a texto completo sobre el material recogido, y eso no es una decisión de producto sino una consecuencia de mi propia ponderación de intereses: registrar por interés público es una cosa y volver a publicar el material en bruto es otra.
Y no le dice a nadie qué significa todo esto para su caso. Yo escribo software que anota lo que una máquina vio en un momento dado y deja que cualquiera lo recalcule. Si eso gana un asunto ante un juzgado, una autoridad o un adversario es una pregunta para un abogado, y me alegro de que lo sea, porque es otra profesión con otro examen.
Prima y siniestro
La lógica comercial me costó aceptarla más de lo que debería. El registro es la prima. El extracto, años después, cuando alguien sostiene que tu web decía algo que no decía, es el siniestro.
La mayoría de quienes pagan no encargará nunca nada. Eso no es un fallo del modelo, eso es el modelo.
Lo que nos devuelve al primer párrafo. Construí dos máquinas en dos países para que mi propia honestidad dejara de sostener el edificio. La cantidad correcta de confianza que hay que depositar en mí aquí es ninguna. Eso es la función, no la carencia.
Quien quiera saber si un dominio ya se está registrando lo puede consultar gratis en la comprobación de cobertura de machinewitness.eu, y el registro diario de raíces es público. Si eres de los que leen las instrucciones de verificación antes de creerse nada: bien, para ti está hecho.
Recibe los artículos nuevos por correo
Un correo cuando publico algo nuevo. Nada más: ni secuencias de ventas, ni seguimiento, ni mensajes de «solo una pregunta rápida». Puedes darte de baja con un clic, cuando quieras.
Doble confirmación: primero recibes un correo para confirmar. Tu dirección se usa únicamente para enviarte estos artículos. Responsable: Martin Schenk S.L. · Privacidad