Pulsa "Enter" para saltar al contenido

Blockchain en Documentación

Blockchain es una tecnología de registro de datos distribuidos, que se utiliza para almacenar transacciones y mantener una base de datos compartida inmutable y segura. Se utiliza criptografía para asegurar y verificar las transacciones así como para controlar la creación de nuevos bloques en la cadena. La característica distintiva de blockchain es que es descentralizada, lo que significa que no depende de una autoridad central para operar. Es utilizada principalmente en aplicaciones de criptomonedas, pero también en el registro de documentos, datos, y todo tipo de informaciones, para las que se aplican métodos de certificado y autenticación.

En la siguiente figura 1 se puede observar uno de los principios de la Blockchain, «la cadena de bloques» propiamente dicha. Cada bloque es una estructura lógica que almacena información de transacciones, documentos, datos (dependiendo del propósito). Los bloques disponen de un identificador denominado «hash» que en realidad es una cadena de texto alfanumérico que se genera como resultado de aplicar un algoritmo de encriptación (por ejemplo SHA-256 o MD5) sobre un texto de entrada dado. Por ejemplo, la fecha completa o marca temporal del registro del bloque (timestamp), las primeras y últimas 10 palabras del texto que se pretende registrar, o cualquier elemento que se pretenda registrar. El hash actúa como clave del bloque, no habiendo dos iguales en todo el sistema. También sirve como elemento de seguridad, puesto que asegura la integridad de los contenidos almacenados en el bloque. Esto es así porque cualquier modificación que se pudiera realizar sobre el contenido, una vez se conforma el bloque, resultaría en un cambio en el código hash. De esta forma, el hash que tuviera originalmente el bloque no coincidiría, lo cual permite detectar cualquier cambio indebido.

Figura 1. Esquema básico de la cadena de bloques. Se observa cómo los bloques quedan enlazados por su hash, de forma consecutiva, conformando una cadena de datos fija en sus contenidos registrados, pero abierta a la introducción de nuevos bloques.

Para crear la cadena de bloques, se requiere que cada bloque refiera al hash del bloque anterior. De esta forma, se van enlazando sucesivamente. Obviamente, cualquier cambio que se produzca en un bloque provocará un fallo en la cadena, que podrá ser detectado fácilmente. Esto le confiere a la Blockchain unas propiedades de seguridad e integridad de la información, muy adecuadas para el archivo y preservación de la información.

Por otra parte, hay que entender cómo se almacena la información de la cadena de bloques. Se trata de una red distribuida, lo cual resulta muy parecido en concepto a las redes P2P o red de pares. Esto es una red de nodos que comparten los mismos registros de la cadena de bloques. Dicho de otra forma, disponen de copias exactas de toda la cadena, que se viene generando. Así, cualquier intento por cambiar o alterar la cadena o sus bloques, es detectado y reparado al instante, al disponerse de copias en todos los nodos. Esto significa que para provocar una alteración en la información, sería necesario atacar todos los nodos de la red y alterar simultáneamente los bloques. Esto hace que la seguridad de la Blockchain sea aún mayor, no sólo por el volumen o dimensión de la red de nodos estáticos y dinámicos, si no por las propiedades de funcionamiento del sistema, que revisa permanentemente la consistencia de hashes de la propia cadena en todos los nodos de la red.

Por otra parte, para entender la tecnología Blockchain, habría que abordar el software de minado. Se trata de un programa informático cuya finalidad es reproducir un algoritmo matemático complejo, con el que se obtiene un hash válido para el bloque que se pretende agregar a la cadena. Esta tarea puede ser más o menos difícil, en función de la cantidad de nodos de que disponga la red, con objeto de que exista una cadencia constante de publicación de bloques en un periodo de tiempo razonable (Habitualmente unos pocos minutos). El primer minero (nodo que ejecuta el software de minado), que consigue calcular el hash correcto, suele recibir una recompensa en forma de criptomoneda, de tal forma, que la introducción de liquidez en el sistema está limitada, y (en teoría) no depende de la especulación en la emisión de criptomoneda. Una vez se reconoce y valida el hash y el minero responsable de su cálculo, la información se propaga por toda la red de nodos y se consolida el nuevo bloque. Cómo el lector podrá imaginar, las cadenas de bloques, están intrínsecamente relacionadas con las criptomonedas, pues en su concepción, el registro de datos, transacciones o documentos, tienen un coste de procesamiento, en la red y es necesario incentivar el sostenimiento de la red de nodos, lo que permite generar un ecosistema económico autogestionado.

Limitaciones

Como en todo sistema complejo, existen limitaciones inherentes, tales como la escalabilidad, el costo de operación, la velocidad de procesamiento de las transacciones, la regulación cuando la blockchain se orienta al uso de criptomonedas y su interoperabilidad con otros sistemas de divisas.

  1. Escalabilidad. Uno de los problemas de las cadenas de bloques es su escalabilidad, ya que conforme se amplía la red de nodos, datos y transacciones a realizar, la cantidad de recursos que se requieren para calcular hashes y mantener una verificación constante de la los bloques resulta cada vez mayor.
  2. Costo. La minería en una blockchain y el almacenamiento de datos pueden ser costosos debido a la necesidad de energía y recursos computacionales. Lo cual, no siempre resulta eficiente, ni rentable, a pequeña escala.
  3. Rapidez. Las transacciones en una blockchain pueden ser lentas debido a la necesidad de verificación de hashes por parte de los nodos en la red. Sin embargo, esto también puede ser controlado, en función del grado de dificultad del algoritmo de hashes para los mineros. Dicho de otra forma, reduciendo la dificultad para calcular el hash correcto, se logra aumentar la velocidad de procesamiento de los bloques, aumentando el crecimiento de la cadena y reduciendo el tiempo de consolidación. Sin embargo, las recompensas para los mineros de la red se reducen.
  4. Regulación e interoperabilidad. La tecnología blockchain aún no está regulada en muchos países, lo que puede generar incertidumbre y obstáculos a su adopción a gran escala. Las diferentes blockchains existentes no son interoperables entre sí, lo que puede limitar la capacidad de usuarios para mover y utilizar sus activos en diferentes plataformas. Sin embargo, existen empresas como Binance, Coinbase, Kraken, Bitget, kucoin, que se especializan en el intercambio, permuta o transacciones entre criptomonedas y divisas FIAT tradicionales.

Sin embargo, es posible crear una cadena de bloques sin necesidad de vincular su existencia a una criptomoneda, para lo cual se requerirá una red de nodos estable que cumpla con los procedimientos de seguridad, identificación e inmutabilidad ya descritos. Este podría ser el caso adecuado para la mayoría de los usos que podrían ser requeridos desde la perspectiva de la biblioteconómica y documental.

Almacenamiento de archivos

El almacenamiento de contenidos textuales, o alfanuméricos mediante encriptación hash es el procedimiento típico para guardar la información en la cadena de bloques. Sin embargo, este método es muy limitado cuando se trata de almacenar archivos de mayor tamaño, en formatos ofimáticos, por ejemplo archivos PDF y toda la variedad multimedia. En estos casos cabrían dos opciones: a) Codificar los archivos a un esquema de codificación o encriptación (por ejemplo Base64) en cuyo caso se obtendrá una cadena de caracteres demasiado larga. 2) Almacenar el hash del archivo, en base a su denominación, marcas temporales, autor, metadatos, determinadas marcas textuales en determinadas posiciones del documento, el enlace permanente de almacenamiento, etc. Esta última opción permite obtener hashes de tamaño más reducido, sin comprometer la capacidad de identificación del documento y su integridad. Sin embargo, el archivo en si mismo, no estaría contenido en el bloque, requeriría un repositorio de almacenamiento, que estaría referido en su propio hash. De esta forma, si se intenta duplicar el documento y alojarlo en un repositorio diferente, el hash no coincidirá, por lo que se podrá saber un cambio en la ubicación o integridad del documento. De esta forma, se puede asegurar la documentación referida desde la cadena de bloques a servidores o redes distintas a las de la propia blockchain. Los nodos de la red, por tanto, pueden verificar la integridad del archivo comparando el hash almacenado en los bloques con el archivo en sí y su ubicación.

Codificación del HASH

La codificación de hashes es una tarea sencilla, ya que existen funciones que automatizan el proceso en la mayoría de los lenguajes de programación. Por ejemplo en lenguaje PHP, existe la función «hash» que puede operar con los principales métodos de encriptación (sha, md, ripemd, tiger, crc, gost, snefru, fnv, haval), compatibles con cualquier blockchain que se pretenda desarrollar.

En el siguiente ejemplo se observa una función PHP denominada «createBlockHash()» que recoge las variables $index (número de bloque), $timestamp (marca de tiempo), $previousHash (hash del bloque previo), $data (puede contener los metadatos de la transacción, texto o contenido a registrar), $permalink (Enlace permanente del contenido) para crear el hash del bloque codificado en SHA-256. Sin embargo, pueden incorporarse otros datos relevantes o representativos para configurar el hash, tales como el nombre del autor, su correo electrónico, las palabras que se ubiquen en una determinada posición del texto, claves públicas del autor, etc.

<?php

function createBlockHash($index, $timestamp, $previousHash, $data, $permalink) {
    $blockData = $index . $timestamp . $previousHash . $data . $permalink;
    return hash("sha256", $blockData);
}

$index = 1;
$timestamp = time();
$previousHash = "0";
$data = "Este es el primer bloque de la cadena";
$permalink = "http://www.dominio.org/enlace-permanente";
$hash = createBlockHash($index, $timestamp, $previousHash, $data, $permalink);

echo "El hash del bloque es el siguiente: " . $hash;

?>

Posteriormente se introducen los datos para las distintas variables y se ejecuta la función de cálculo hash, obteniendo como resultado la variable $hash del bloque que se pretende añadir a la cadena.

Ejemplo de Blockchain en formato XML

Una forma de entender como se enlazan los bloques es a través de una cadena blockchain en formato XML. En la siguiente tabla, Se observan las etiquetas básicas de los bloques, a saber <index> que indica el número de bloque, <timestamp> la marca temporal de registro del bloque, <data> que contiene los datos de la transacción, <document_text> que contiene el texto del documento de que se pretende registrar, <previous_hash> que es la clave hash del bloque anterior y <hash> que contiene la clave del presente bloque.

<blockchain>
  <block>
    <index>1</index>
    <timestamp>1623562947</timestamp>
    <data>Transacción de prueba 1</data>
    <document_text>Este es el texto del documento 1</document_text>
    <previous_hash>0</previous_hash>
    <hash>c3aba7f9b959d1a3a3a48c3af24ad8f6</hash>
  </block>
  <block>
    <index>2</index>
    <timestamp>1623563145</timestamp>
    <data>Transacción de prueba 2</data>
    <document_text>Este es el texto del documento 2</document_text>
    <previous_hash>c3aba7f9b959d1a3a3a48c3af24ad8f6</previous_hash>
    <hash>e7f0f3ca3a8a2b1a3c3d9b8a1f8c7d6e</hash>
  </block>
</blockchain>

En este ejemplo se comprueba cómo el bloque 2 toma el hash del bloque 1, conformando de esta forma un enlace de la cadena.

Programa PHP para crear bloques

Además de los programas para verificar bloques, y confirmar las operaciones en la cadena, un programa esencial es la agregación de los nuevos bloques. Esto puede ser respaldado en base de datos, tal como se sugiere en el siguiente ejemplo. En este caso se consulta el hash del último bloque, antes de poder agregar el próximo.

<?php

// Establecer la conexión con la base de datos
$conn = mysqli_connect("host", "username", "password", "database_name");

// Verificar la conexión
if (!$conn) {
    die("Conexión fallida: " . mysqli_connect_error());
}

// Obtener el hash previo
$previous_hash = "0xabcd1234";
$sql = "SELECT hash FROM blockchain ORDER BY index DESC LIMIT 1";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
    $row = mysqli_fetch_assoc($result);
    $previous_hash = $row["hash"];
}

// Datos del bloque
$index = 123;
$timestamp = time();
$data = "Algunos datos importantes aquí";
$hash = hash("sha256", $index . $timestamp . $data . $previous_hash);

// Insertar el bloque en la tabla de la base de datos
$sql = "INSERT INTO blockchain (index, timestamp, data, previous_hash, hash)
VALUES ($index, $timestamp, '$data', '$previous_hash', '$hash')";

if (mysqli_query($conn, $sql)) {
    echo "Bloque agregado con éxito";
} else {
    echo "Error al agregar bloque: " . mysqli_error($conn);
}

// Cerrar la conexión con la base de datos
mysqli_close($conn);

?>

A este código habría que agregar la función de comprobación de la integridad de la cadena de bloques, antes, durante y después de la agregación de un nuevo bloque, propagando a toda la red de nodos, los datos del nuevo bloque y obteniendo al mismo tiempo la confirmación de todos los nodos e la red de que la cadena de bloques sigue manteniendo la integridad e inmutabilidad de los hashes y contenidos. Dicho de otra forma, el esfuerzo de verificación no es nada desdeñable en este tipo de sistema que pretenden brindar la máxima seguridad posible.

Blockchain en Documentación

Según se ha explicado, la tecnología blockchain presenta ventajas que pueden ser aprovechadas en Documentación, de cara a mantener la seguridad de la información, su inmutabilidad o protección frente a cualquier tipo de alteración, favoreciendo la implantación de sistemas de información anti-fraude, bibliotecas digitales, sistemas de archivo y procesamiento seguro de la información. Algunas aplicaciones relevantes podrían ser las siguientes:

a) Recuperación de información. Al crear un registro distribuido de información se puede asegurar que la información disponible en los buscadores no fue alterada o modificada, pudiendo ofrecer las distintas versiones de la web registradas en la cache, bajo distintos hashes que probarían su autenticidad. Téngase en cuenta que uno de los problemas de la Web consiste en la facilidad para alterar los contenidos, lo que requiere medidas de seguridad especiales que aseguren su integridad. Esto hace que se las fuentes de información registradas puedan rastrearse fácilmente y quede patente el historial de las informaciones y documentos bajo la blockchain. Esto permite la recuperación de documentos históricos, relevantes o importantes, al margen del uso del permalink.

b) Archivística. Puede ser utilizada en el contexto de la archivística para mejorar la preservación y recuperación de documentos digitales/electrónicos importantes. Puede ser utilizada para almacenar metadatos de estos documentos y partes clave que sean representativas de hechos y pruebas, lo que facilita la identificación de las unidades documentales y la detección de información valiosa. Por otra parte, la inmutabilidad de la blockchain permite que los archivos puedan ser verificados y autenticados de manera segura, lo que es esencial para la integridad de los registros archivísticos. Además, también permite una mayor trazabilidad de los documentos almacenados, por la propiedad de encadenamiento de hashes, lo que facilita su recuperación por rangos o lotes y el acceso a la información relevante de cada uno de ellos.

c) Documentos en la nube. En el contexto de la nube puede asegurar la privacidad de los documentos almacenados, debido a que pueden ser encriptados o verificados en servidores seguros mediante los hashes que se almacenan en la cadena, detectando cualquier cambio que se produzca. También es posible monitorear el acceso a los documentos en la nube, registrando en blockchain los accesos y usuarios que se conectan, garantizando así que solo las personas autorizadas puedan acceder a la información. Por otra parte, la ya conocida propiedad de inmutabilidad permite a los usuarios confiar en la integridad de la información almacenada, permitiendo también una mayor transparencia y trazabilidad de los contenidos. Esto haría que las bibliotecas digitales y centros de documentación virtuales, adquiriesen propiedades de repertorios digitales seguros.

d) Comunidades de información y documentación. En el contexto de las comunidades de información y documentación puede mejorar la colaboración y la interacción entre los miembros. Se puede crear un registro distribuido y seguro de los documentos y la información compartidos entre los miembros de la comunidad, lo que facilita la colaboración y la toma de decisiones. Esto daría lugar al desarrollo de redes sociales con contenidos trazables, seguros, no falsables a posteriori. Debido a la trazabilidad de la información compartida en la cadena de bloques, también facilita la supervisión y el monitoreo del progreso de la actividad de la comunidad, lo que facilita su estudio altmétrico. Finalmente los miembros de la red social, pueden confiar en la integridad de la información compartida, lo que aumenta la confianza y la seguridad en la colaboración y el intercambio de información.

Conclusiones

  • La cadena de bloques o tecnología blockchain puede ser una buena solución para aplicaciones archivísticas, bibliotecas digitales, repositorios científicos e incluso redes sociales de colaboración profesional, debido a las propiedades de inmutabilidad, seguridad, transparencia y trazabilidad de la información. Los contenidos son registrados en bloques que no se pueden alterar o modificar una vez son fijados. Esto es una ventaja para evitar el fraude, o la post-edición no autorizada de contenidos.
  • Otra propiedad beneficiosa de la blockchain es su gestión descentralizada en redes de nodos, lo que significa que todos los nodos contienen copias de las transacciones llevadas a cabo, lo cual garantiza una mayor seguridad, puesto que cualquier intento de cambio o modificación de los contenidos, será detectado por incoherencias en los hashes, por parte del resto de nodos de la red, propiciando su restablecimiento y respaldo. Al garantizar la integridad de la información, los datasets y pruebas científicas, esto es la documentación científica, puede ser almacenada en condiciones de seguridad apropiadas.
  • El control de acceso de los usuarios a las aplicaciones y en las cadenas y procesos documentales, es otra de las claves, susceptibles de automatización. Se puede verificar la autenticidad de las credenciales de los usuarios. Esto lo convierte también en un sistema de pago, vinculado a criptomonedas, lo cual puede ser una solución para crear un sistema de créditos o recompensas para autores y creadores de contenidos, suponiendo un método de remuneración que salvaguarda la propiedad intelectual, y asegura la justa retribución.

Bibliografía

  • Abid, H. (2021). Uses of blockchain technologies in library services. Library Hi Tech News, 38(8), 9-11. https://doi.org/10.1108/LHTN-08-2020-0079
  • Asadnia, A., CheshmehSohrabi, M., Shabani, A., Asemi, A., & Demneh, M. T. (2022). Future of information retrieval systems and the role of library and information science experts in their development. Journal of Librarianship and Information Science, 09610006211067537. https://doi.org/10.1177/09610006211067537
  • Bashir, F., & Warraich, N. F. (2022). Prospects of Semantic Web and Blockchain Technologies in Libraries. In Blockchain and Deep Learning: Future Trends and Enabling Technologies (pp. 31-45). Cham: Springer International Publishing. https://doi.org/10.1007/978-3-030-95419-2_2
  • Coghill, J. G. (2018). Blockchain and its implications for libraries. Journal of Electronic Resources in Medical Libraries, 15(2), 66-70. https://doi.org/10.1080/15424065.2018.1483218
  • Dolan, L., Kavanaugh, B., Korinek, K., & Sandler, B. (2019). Off the chain: Blockchain technology—An information organization system. Technical services quarterly, 36(3), 281-295. https://doi.org/10.1080/07317131.2019.1621571
  • Gramoli, V. (2022). Blockchain Fundamentals. En Blockchain Scalability and its Foundations in Distributed Systems (pp. 17-39). Cham: Springer International Publishing. https://doi.org/10.1007/978-3-031-12578-2_3
  • Gupta, S., Sinha, S., & Bhushan, B. (2020, April). Emergence of blockchain technology: Fundamentals, working and its various implementations. En Proceedings of the international conference on innovative computing & communications (ICICC). https://dx.doi.org/10.2139/ssrn.3569577
  • Hamilton, M. (2020). 15.1 Macro trends in libraries and information science. Future Directions in Digital Information: Predictions, Practice, Participation, 267. http://doi.org/10.1016/B978-0-12-822144-0.00015-X
  • Hoy, M. B. (2017). An introduction to the blockchain and its implications for libraries and medicine. Medical reference services quarterly, 36(3), 273-279. https://doi.org/10.1080/02763869.2017.1332261
  • Hussaini, M. S., Haruna, M., & Shrivastava, D. K. (2022). Blockchain: The Gateway to New Technology and its Applications for Academic Libraries. Journal of Information Technology and Sciences (e-ISSN: 2581-849X), 8(1), 12-21. http://dx.doi.org/10.46610/JOITS.2022.v08i01.003
  • Lengoatha, L., & F. Seymour, L. (2020, September). Determinant factors of intention to adopt blockchain technology across academic libraries. In Conference of the South African Institute of Computer Scientists and Information Technologists 2020 (pp. 244-250). https://doi.org/10.1145/3410886.3410905
  • Marciano, R., Lemieux, V., Hedges, M., Esteva, M., Underwood, W., Kurtz, M., & Conrad, M. (2018). Archival records and training in the age of big data. In Re-Envisioning the MLS: Perspectives on the future of library and information science education. Emerald Publishing Limited. https://doi.org/10.1108/S0065-28302018000044B010
  • Ro, J. Y., & Noh, Y. (2022). A Study on the Introduction of Library Services Based on Blockchain. Journal of the Korean BIBLIA Society for library and Information Science, 33(1), 371-401. https://doi.org/10.14699/kbiblia.2022.33.1.371
  • Safdar, M., Qutab, S., Ullah, F. S., Siddique, N., & Khan, M. A. (2022). A mapping review of literature on Blockchain usage by libraries: Challenges and opportunities. Journal of Librarianship and Information Science, 09610006221090225. https://doi.org/10.1177/09610006221090225
  • Shahmirzadi, T. (2023). Application of blockchain technology in libraries and information centers. Agricultural Information Sciences and Technology. https://doi.org/10.22092/jaist.2023.361080.1081
  • Suman, A. K., & Patel, M. (2021). An Introduction to Blockchain Technology and Its Application in Libraries. Available at SSRN 4019394. https://dx.doi.org/10.2139/ssrn.4019394
  • Tella, A. (2020). Repackaging LIS professionals and libraries for the fourth industrial revolution. Library Hi Tech News, 37(8), 1-6. https://doi.org/10.1108/LHTN-02-2020-0016
  • Ugarte, H. (2017). A more pragmatic Web 3.0: linked blockchain data. Bonn, Germany. http://dx.doi.org/10.13140/RG.2.2.10304.12807/1
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *