Academia Libre · Itinerario 0 · Lección 0.3

Paquetes de ejemplo para verificar

Dos exportaciones del mismo expediente, en el formato público de WASTRA (wastra-export/1.0). Una está intacta. En la otra alguien cambió, después del registro, el peso que marcó la báscula. El ejercicio de la lección 0.3 es verificar las dos con el software libre y decir cuál comprobación falla y por qué.

Datos inventados. Ningún hecho de estos paquetes consta en un registro de WASTRA; el aparato que los firma es de demostración y no está dado de alta en ninguna instancia. Sirven para aprender a verificar, no para probar nada.

1 · Descargue los dos paquetes

academia_bueno.zip academia_pesaje_cambiado.zip

FicheroBytesHuella SHA-256
academia_bueno.zip55 480fc7f07a83980bb781c68395d9debf93ef994d8b35e8e75598b89e4f4a07cd353
academia_pesaje_cambiado.zip55 4808d788474712ce2dc078e9419bda37b8e24d6d388fe4475f54220c463d6330038

Compruebe la huella de lo descargado antes de nada: sha256sum academia_bueno.zip (Linux o Mac) o certutil -hashfile academia_bueno.zip SHA256 (Windows). Si no coincide con la de la tabla, no siga: el fichero no es este.

2 · Descargue el verificador y verifique

El verificador es software libre, publicado con su firma en verify.wastra.global. Solo necesita Python 3; no instala nada ni habla con nadie.

python verificar.py academia_bueno.zip
python verificar.py academia_pesaje_cambiado.zip

El verificador pasa cuatro comprobaciones: C1 cada hecho tiene la forma que fija la especificación; C2 la cadena de huellas no tiene huecos ni cambios; C3 la raíz Merkle de cada día coincide con la calculada; C4 la raíz está anclada en Bitcoin. Estos paquetes no llevan ancla: C4 dirá sin ancla, y eso no es un fallo, es la verdad del paquete. Un paquete exportado del registro sí la lleva.

3 · Qué hay dentro

Un expediente completo de dos días en un centro de tratamiento ficticio: un camión que llega sin ticket, su pesaje en báscula, la descarga en un lote, la segregación del lote en cuatro clases y la salida del árido valorizado. Cinco hechos, cada uno con la carga que exige su esquema publicado y la firma del aparato.

N.ºHechoEsquemaDíaHuella
1ARRIBOARRIBO/22026-09-159ef5590cc8f7603e…
2PESAJE_ENTRADAPESAJE_ENTRADA/22026-09-1573c64b5dd302bc3c…
3DESCARGADESCARGA/12026-09-152807273247f8615e…
4SEGREGACIONSEGREGACION/32026-09-16c6fe2b0c672954fc…
5SALIDA_VALORIZADOSALIDA_VALORIZADO/12026-09-1694da788040fd54a3…
DíaHechosRaíz Merkle del día
2026-09-1535a1bc87669964f90722b9738214d00c37bc14688bd0535ad71be9fb8c3da6547
2026-09-162398334b7cbec1bac5302a488a32fee17a6fd9e19e96b4cb1420692d8dc529d48

El pesaje declara 12 200 000 g netos y la segregación reparte 12 200 000 g: cuadra. Aparato ACADEMIA-APARATO-0001, clave pública 04a9b5950901906cc672c4a1c502f2466bc5ac8a2487df818881f9fbf2d9aa907b54ee296ed0dafb50f15db2a9a79ad3c78591cd6237cef49815da441c347f2c6f.

4 · La respuesta

Hágalo antes de abrir esto. Si el verificador ya ha hablado, compare.

Cuál comprobación falla y por qué

Falla C2 en academia_pesaje_cambiado.zip, en el hecho 2 (PESAJE_ENTRADA). El verificador vuelve a calcular la huella de cada hecho a partir de su contenido y la compara con la que el hecho declara. En ese hecho no coinciden: el contenido dice 15 200 000 g netos y la huella declarada es la de 12 200 000 g. El mensaje es «el contenido de este evento fue modificado después de su registro».

Por eso basta cambiar un número para que se note: la huella de cada hecho es la de su contenido, cada hecho lleva la huella del anterior, y la raíz del día se calcula sobre esas huellas. Quien cambia el peso tendría que recalcular la huella del hecho, la de todos los que le siguen, el árbol de cada día y el manifiesto; y aun así la raíz anclada en Bitcoin, cuando la hay, seguiría siendo la antigua.

C1 pasa en los dos paquetes: la forma del hecho es correcta, solo cambió un valor. C3 pasa porque el árbol se construye con las huellas declaradas, que nadie tocó; lo que no cuadra es el contenido con su huella, y eso es C2. Veredicto: FALLO. En el paquete intacto, CORRECTO.

5 · Rehacerlos usted

Los dos paquetes se fabrican con una orden del repositorio de la plataforma y salen con la misma huella en cualquier equipo: identificadores, relojes y firma son fijos. py -3 -m herramientas.generar_paquete_academia. La hoja de datos de esta página, con cada huella, vive en academia/paquetes_academia.json.

Paquetes de ejemplo de la lección 0.3 de la Academia Libre (itinerario 0). Datos ficticios: ningún hecho de aquí consta en un registro de WASTRA.