Conservación de Datos
Aprende sobre la conservación de mensajes de datos
La conservación de mensajes de datos es un procedimiento que se vale de la cadena de confianza de la infraestructura de seguridad extendida de Banxico para que un PSC se comprometa a respaldar una fecha asociada a un mensaje de datos.
¿Qué es la conservación de mensajes de datos?
Conservar un mensaje de datos significa dejar un registro del digestivo (ver fundamentos técnico) de un documento en un momento específico. Este registro se asocia a una fecha y a una firma electrónica que garantiza que el digestivo no ha sido alterado desde el momento en que su conservación se registró hasta el momento en que se verifica.
NOM-151
Conservación en Blockchain
El registro distribuido de una blockchain tiene una característica que lo hace ideal para la conservación de mensaje de datos: la inmutabilidad. Adicionalmente, cada registro cuenta con una fecha de inclusión que es acordada por los validadores de la red, siendo una fuente confiable, neutra y accesible para obtener un timestamp para un mensaje de datos.
Conservar un mensaje de datos con blockchain consiste en registrar el hash de un documento en una transacción de la red. Sin embargo, existen mecanismos alternativos por los cuáles la conservación se puede simplificar para reducir los costos de certificación al agrupar múltiples documentos.
Los documentos de Plumaa ID son conservados de forma automática y gratuita por el testigo del sistema de información.
Merkle Tree
Un árbol de Merkle es una estructura de datos criptográfica que permite agrupar múltiples mensajes de datos en un sólo digestivo. Esto es posible gracias a la resistencia a preimagen que tienen las funciones de hash.
Supongamos que tenemos 8 mensajes de datos y queremos conservarlos en un sólo digestivo. Para agruparlos en un árbol de Merkle es necesario obtener los digestivos de todos los mensajes de datos y agruparlos en pares. La concatenación de cada par será procesada con la misma función de hash para reducir la cantidad de mensajes de datos a 4.
Al repetir este proceso, se obtendrán 2 digestivos en el siguiente nivel, y finalmente 1 sólo digestivo en la raíz del árbol.
La raíz del Árbol se coloca en la cadena de bloques para que cualquier persona pueda verificar de forma pública que un mensaje de datos pertenece a la raíz del árbol registrada en la fecha del bloque.
Prueba de inclusión de un mensaje de datos
Para probar que un mensaje de datos pertenece al árbol, basta con presentar la cadena de hash desde el mensaje de datos hasta la raíz del árbol. Por ejemplo, en caso de querer probar que el mensaje 3 pertenece al árbol, se presentaría el mensaje de datos acompañado por los hash H(M4)
, H(HA + HB)
, H(HEF + HGH)
.
Este conjunto de hashes que permiten recrear la raíz del árbol es conocido como path de Merkle. Y el procedimiento de verificación consistiría en lo siguiente.
- Alicia presenta el mensaje 3 y el path de Merkle.
- Bob obtiene
H(M3)
al aplicar la función de hash al mensaje 3. - Bob obtiene
H(HC + HD)
al aplicar la función de hash aH(M3)
yH(M4)
. - Bob obtiene
H(HAB + HCD)
al aplicar la función de hash aH(HA + HB)
yH(HC + HD)
. - Bob obtiene la raíz al aplicar la función de hash a
H(HABCD)
yH(HEFGH)
.
- En Azul, los elementos que se presentan para verificar la inclusión de un mensaje de datos.
- En Amarillo, los elementos que se producen al aplicar la función de hash a los elementos en Azul.
¿Cómo verificar la conservación de un mensaje de datos?
Para validar la conservación de un mensaje de datos de forma descentralizada y sin necesidad de la intermediación de Plumaa ID, es suficiente con hacer una consulta utilizando el digestivo del mensaje de datos y su merkle path a algún contrato inteligente que implemente este mecanismo.
Margen de error del timestamp
La conservación de mensajes de datos tiene un margen de error que se presenta por la diferencia entre el momento en que se genera el documento y unos minutos en lo que se acumulan otros mensajes de datos en el sistema de registro de Plumaa ID.
Este margen de error puede ser de hasta una hora, pero es suficiente para garantizar la integridad de los mensajes de datos conservados y es suficiente para la mayoría de los casos de uso y para el requisito de fecha cierta en la conservación de documentos.