Cómo funciona la cadena de bloques

La cadena de bloques (Blockchain) es una base de datos compuesta por una cadena física de bloques de longitud fija que incluyen de 1 a N transacciones. Cada transacción es validada e insertada en un nuevo bloque. Cuando el bloque está completo se añade a la cola de la cadena de bloques ya existente. Las únicas dos operaciones que se dan son las de añadir y ver una transacción.

Por tanto, el proceso fundamental de una cadena de bloques se compone de los siguientes pasos:

  • Añadir transacciones nuevas e imborrables y organizarlas en bloques.
  • Verificar mediante criptografía cada transacción en el bloque.
  • Añadir el nuevo bloque al final de la cadena ya existente e inmutable.

De manera más amplia, la cadena de bloques es también una base de datos distribuida que mantiene una lista duplicada de los bloques y su ordenación. Cada bloque tiene un tamaño medio de un megabyte y contiene unos datos de control de unos 200 bytes, como el registro temporal (fecha y hora), un enlace al bloque anterior, algunos otros campos, y un número determinado de transacciones que ocupan el espacio disponible.

Los bloques, una vez grabados, son imposibles de modificar. La base de datos en cadena de tipo público se gestiona de forma autónoma mediante el uso de una red de pares y un servidor distribuido que se encarga del registro del momento temporal. Las cadenas son, por tanto, unos libros de registros distribuidos que anotan transacciones entre dos partes, de forma eficiente, verificable y permanente.

El propio libro de registros puede programarse para realizar transacciones de forma automática. La cadena está diseñada para ser segura y es un ejemplo de sistema de computación de consistencia interactiva, de consenso descentralizado. Estas características hacen que las cadenas de bloques sean ideales para registrar acontecimientos, historiales médicos, identidades, procesar transacciones y dar cabida a nuevas aplicaciones.

Las cadenas de bloques públicas actúan también como programas de redes entre pares con una diferencia importante: No sólo desplazan ficheros de datos entre ellos sino que se aseguran de que todos tienen exactamente los mismos datos. Si estos cambian en una de las máquinas, se fuerza también su modificación en todas la máquinas. Las normas para hacerlo son estrictas y si alguien no las cumple y modifica su copia de manera ilegal, se le ignora.

Como ya se ha mencionado, en las cadenas públicas como Bitcoin o Ethereum, sólo se añaden datos a continuación de otros anteriores. Sólo se anotan datos, nunca se borran. Así es como se gana el nombre de cadena de bloques (blockchain), porque se añaden nuevos datos por bloques, que se suman a los ya existentes, formando una cadena.

No se trata sólo de que todos compartan la misma base de datos, sino que cada uno tiene un compartimento en la cadena al que sólo él puede acceder. Este acceso exclusivo se suele gestionar mediante el empleo de nombres de usuario y claves. Pero la cadena no cuenta con una autoridad central que gestione estos nombres y claves, sino que hace uso de la criptografía.

Cada usuario es capaz de generar una dirección para su compartimento y una clave codificada privada que le permite acceder a él. Esta analogía del compartimento en realidad consiste en un número identificador, al que se refiere como una dirección, y que contiene una marca de los datos del usuario. La clave privada es un código que permite al usuario demostrar que es el autor o propietario de esa dirección. Sólo la persona que generó esa dirección dispondrá de la clave privada y nadie podrá averiguar cuál es esa clave a partir únicamente de la dirección.

Por último, no sólo se almacenan datos estáticos, sino que se puede guardar un código de programación ejecutable. Ese código, escrito en un lenguaje tipo Java Script, como Solidity de Ethereum, puede encontrarse en un determinado registro en todas las máquinas, a la espera de ser ejecutado, y que nadie puede cambiar. Ese código está marcado con una determinada dirección y su propietario es quien decide qué operaciones son públicas y quién podría ejecutarlas. Y esta decisión sólo se puede determinar en el momento de escritura del código y ya no podrá cambiarse. Se podrá ver en qué consiste el código y qué es lo que hace, pero sólo se podrá interactuar con él según lo establecido por su propietario.

 

Fuente: BlockTac