Introducción a la tecnología de la cadena de bloques

  Una cadena de bloques ("blockchain", en inglés)​ es una estructura de datos cuya información se agrupa en conjuntos (bloques) a los que se les añade metainformaciones relativas a otro bloque de la cadena anterior en una línea temporal. De esta forma, gracias a técnicas criptográficas, la información contenida en un bloque únicamente puede ser repudiada o editada modificando todos los bloques posteriores. Esta propiedad permite su aplicación en un entorno distribuido de manera que la estructura de datos de cadena de bloques puede ejercer de base de datos pública no relacional que contenga un histórico irrefutable de información.
  En la práctica ha permitido, gracias a la criptografía asimétrica y las funciones de resumen ("hash", en inglés), la implementación de un registro contable ("ledger", en inglés) distribuido que permite soportar y garantizar la seguridad del dinero digital. Siguiendo un protocolo apropiado para todas las operaciones efectuadas sobre la cadena de bloques, es posible alcanzar un consenso sobre la integridad de sus datos por parte de todos los participantes de la red sin necesidad de recurrir a una entidad de confianza que centralice la información. Por ello se considera una tecnología en la que la "verdad" (estado confiable del sistema) es construida, alcanzada y fortalecida por los propios miembros; incluso en un entorno en el que exista una minoría de nodos en la red con comportamiento malicioso (nodos sybil) dado que, en teoría, para comprometer los datos, un atacante requeriría de una mayor potencia de cómputo y presencia en la red que el resultante de la suma de todos los restantes nodos combinados. Por las razones anteriores, este tipo de tecnología es especialmente adecuada para escenarios en los que se requiera almacenar de forma creciente datos ordenados en el tiempo, sin posibilidad de modificación ni revisión y cuya confianza pretenda ser distribuida en lugar de residir en una entidad certificadora. Este enfoque tiene diferentes aspectos:
  •   Almacenamiento de datos: Se logra mediante la replicación de la información de la cadena de bloques.
  •   Transmisión de datos: Se logra mediante redes de pares. 
  •   Confirmación de datos: Se logra mediante un proceso de consenso entre los nodos participantes. El tipo de algoritmo de consenso más utilizado es el de prueba de trabajo en el que existe un proceso abierto competitivo y transparente de validación de las nuevas entradas conocido como minería.
  Generalmente, los datos almacenados en la cadena de bloques suelen ser transacciones (p. ej. financieras) por eso es frecuente llamar a los datos transacciones. No obstante, no es necesario que lo sean. Realmente se podría considerar que lo que se registran son cambios atómicos del estado del sistema.

APLICACIONES

  Una cadena de bloques se utiliza en los siguientes campos:
  •   Campo de las criptomonedas: La cadena de bloques se usa como notario público no modificable de todo el sistema de transacciones a fin de evitar el problema de que una moneda se pueda gastar dos veces.
  •   Campo de las bases de datos de registro de nombres: La cadena de bloques se usa para tener un sistema de notario de registro de nombres de tal forma que un nombre sólo pueda ser utilizado para identificar el objeto que lo tiene efectivamente registrado. Es una alternativa al sistema tradicional de servidor de nombre de dominio.
  •   Uso como notario distribuido en distintos tipos de transacciones: Haciéndolas más seguras, baratas y rastreables.
  •   Uso como base de plataformas descentralizadas: Permiten soportar la creación de acuerdos de contrato inteligente entre pares. El objetivo de estas plataformas es permitir a una red de pares administrar sus propios contratos inteligentes creados por los usuarios. Primero se escribe un contrato mediante un código y se sube a la cadena de bloques mediante una transacción. Una vez en la cadena de bloques, el contrato tiene una dirección desde la cual se puede interactuar con él.
  •   Uso en la contratación pública: Puede ayudar a incrementar la transparencia en las licitaciones.
  •   Implementación del componente criptográfico llamado Tablón de anuncios ("Bulletin Boards", en inglés): Usado, entre otros, en sistemas de voto electrónico, creación de registros, subastas y foros de discusión.

CLASES

Acceso a datos  
  Las cadenas de bloques se pueden clasificar basándose en el acceso a los datos almacenados en la misma:
  •   Pública: Aquella en la que no hay restricciones ni para leer los datos de la cadena de bloques (los cuales pueden haber sido cifrados) ni para enviar transacciones para que sean incluidas en la cadena de bloques. En ellas es fácil entrar y salir, son transparentes, están construidas con precaución para la operación en un entorno no confiable. Son ideales para uso en aplicaciones totalmente descentralizadas como, por ejemplo, para el Internet.
  •   Privada: Aquella en la que tanto los accesos a los datos de la cadena de bloque como el envío de transacciones para ser incluidas, están limitadas a una lista predefinida de entidades.
    Se debe tener en cuenta que existen clases intermedias entre estas dos.



Permisos
  Las cadenas de bloques también se pueden clasificar basándose en los permisos para generar bloques en la misma:
  •   Sin permisos: Aquella en la que no hay restricciones para que las entidades puedan procesar transacciones y crear bloques. Este tipo de cadenas de bloques necesitan tókenes nativos para proveer incentivos que los usuarios mantengan el sistema. La cantidad recompensada por crear nuevos bloques es una buena medida de la seguridad de una cadena de bloques sin permisos.
  •   Con permisos: Aquella en la que el procesamiento de transacciones está desarrollado por una predefinida lista de sujetos con identidades conocidas. Por ello generalmente no necesitan tókenes nativos. Los tókenes nativos son necesarios para proveer incentivos para los procesadores de transacciones. Por ello es típico que usen como protocolo de consenso prueba de participación.

Modelo de cambio de estado
  Otro modo de clasificar las cadenas de bloques es según el modelo de cambio de estado en la base de datos, con lo que quedarían en:
  •   Gasto de salidas de transacciones [modelo UTXO (en referencia a los UTXO de Bitcoin)]: Cada transacción gasta salidas de transacciones anteriores y produce nuevas salidas que serán consumidas en transacciones posteriores. Este enfoque tiene ventajas como que en la propia estructura de la cadena existe una prueba de que nunca se puede gastar dos veces, ya que cada transacción prueba que la suma de sus entradas es más grande que la suma de sus salidas, y como que cada transacción puede ser procesada en paralelo porque son totalmente independientes y no hay conflictos en las salidas. No obstante, el problema de este tipo de cadenas es que sólo son utilizables para aplicaciones donde cada salida es propiedad de uno y solo un individuo. Una salida multipropietario sería muy lenta y no sería eficiente para aplicaciones de propósito general.
  •   Mensajes: En este caso, la cadena de bloques representa un consenso sobre el orden de los mensajes y el estado es derivado de forma determinista a partir de estos mensajes.

LAS CADENAS LATERALES

  La cadena lateral ("sidechain", en inglés), es una cadena de bloques que valida datos desde otra cadena de bloques a la que se llama principal. Su utilidad esencial es poder aportar funcionalidades nuevas, las cuales pueden estar en periodo de pruebas, apoyándose en la confianza ofrecida por la cadena de bloques principal. Las cadenas laterales funcionan de forma similar a como hacían las monedas tradicionales con el patrón oro.
  Un tipo especial de cadena lateral es la cadena lateral vinculada. Se trata de una cadena lateral cuyos activos pueden ser importados desde y hacia la otra cadena. Este tipo de cadenas se puede conseguir de las siguiente formas:
  •    Vinculación federada ("federated peg", en inglés): Una cadena lateral federada es una cadena lateral en la que el consenso es alcanzado cuando cierto número de partes están de acuerdo (confianza semicentralizada). Por tanto se tiene que tener confianza en ciertas entidades. Este es el tipo de cadena lateral Liquid, de código cerrado, propuesta por Blockstream.
  •  Vinculación SPV ["simplified payment verification" ("SPV"), en inglés]: Usa pruebas SPV. Esencialmente, una prueba SPV está compuesta de una lista de cabeceras de bloque que demuestran una prueba de trabajo y una prueba criptográfica de que una salida fue creada en uno de los bloques de la lista. Esto permite a los verificadores comprobar que cierta cantidad de trabajo ha sido realizada para la existencia de la salida. Tal prueba puede ser invalidada por otra prueba demostrando la existencia de una cadena con más trabajo la cual no ha incluido el bloque que creó la salida. Por tanto no se requiere confianza en terceras partes.

ASPECTOS JURÍDICOS

  El uso de este tipo de tecnología en la práctica ha permitido resolver dos problemas relacionados con el intercambio de activos sin una entidad certificadora de confianza:
  1.   Evitar el problema del doble gasto, es decir prevenir la falsificación y que una misma moneda pueda ser gastada dos veces.
  2.   Conseguir la descentralización de los pagos electrónicos ya que se garantiza la realización segura de pagos y cobros directos entre particulares por vía electrónica.
  Por otra parte, la confianza es otra de las características intrínsecas del sistema. Desde el punto de vista jurídico la criptmoneda sería un bien patrimonial, privado, incorporal, digital, en forma de unidad de cuenta, creado mediante un sistema informático y utilizado como medida común de valor por acuerdo de los usuarios del sistema. Es un bien mueble, fungible, identificable e irrepetible pero divisible. Pero no es dinero, no es dinero electrónico ni tiene valor mobiliario, se trataría de «bienes patrimoniales que son tomados como medida común de valor en sistemas de intercambio económico, cerrados, cooperativos y descentralizados, ajenos al dinero fiduciario estatal, y basados en la confianza y acuerdo de los usuarios del sistema». 

  Aguardo que la presente entrada haya sido interesante para el lector. Si es así, espero que este la comente y/o la comparta, por favor.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.