Inicio » Blockchain » Arquitectura blockchain, elementos más importantes y funcionamiento

Arquitectura blockchain, elementos más importantes y funcionamiento

Inicio » Blockchain » Arquitectura blockchain, elementos más importantes y funcionamiento

Acompáñanos en un viaje a través de la arquitectura blockchain, donde cada capa revela nuevas posibilidades y desafíos, desentrañando el verdadero potencial detrás de esta tecnología revolucionaria. En él descubriremos los elementos más importantes y entenderemos su funcionamiento de una forma fácil y sencilla.

Arquitectura, elementos más importantes y funcionamiento

Este es el primero de una serie de artículos con el que intentaremos profundizar en el conocimiento de la cadena de bloques con un nivel intermedio. En caso de necesitar algo de información previa recomendamos la lectura de estos artículos:

Arquitectura blockchain vista por capas

Haciendo un símil con el modelo OSI y cómo funcionan los protocolos HTTP, FTP o SMTP, podemos ver la cadena de bloques como una red peer-to-peer que se ejecuta sobre internet y que podemos estructurar en 6 capas.

Capa de nivel de red

La capa de red es la base de todas ya que es la que provee las comunicaciones entre los distintos usuarios y nodos. Está formada por internet y los protocolos sobre los que ésta se sustenta (TCP/IP).

Capa P2P

Sobre la capa de red encontramos la red Peer-to-Peer. En una red P2P los nodos se comunican entre ellos sin necesidad de una autoridad central. Está constituida por los protocolos que gestionan las comunicaciones entre usuarios/nodos: Gossip/Epidemic, Routing y Flooding.

Capa criptográfica

La tercera capa es esencial ya que contiene los protocolos criptográficos que dan seguridad a todo el sistema y sin los cuales nada sería posible. Está formada por la criptografía de clave pública, las firmas digitales y las funciones Hash.

Capa de consenso

Todo sistema distribuido requiere de protocolos de consenso y tolerancia a fallo. Esta capa la conforman las siguientes técnicas: la replicación de máquinas de estado (SMR), el sistema de consenso (PoW, PoS, etc) y los protocolos de tolerancia de fallos bizantino.

Capa de ejecución

La quinta capa está formada por la máquina virtual, los bloques que conforman la blockchain y las transacciones que se realzan sobre ella. En esta capa se realizan operaciones tales como las transferencia de valor, la ejecución de smart contracts o la generación de nuevos bloques y su agregación a la cadena de bloques.

Capa de aplicación

Aquí es donde la cadena de bloques adquiere su potencial disruptor: Smart contracts, aplicaciones descentralizadas (deFi, etc), organizaciones autónomas descentralizadas (DAO) y los agentes autónomos.

Elementos que constituyen la cadena de bloques

blockchain genesis block

Repasemos algunos de los elementos más importantes a tener en cuenta antes de entrar en el funcionamiento de una cadena de bloques. Incluimos los términos en inglés para facilitar la comprensión de las figuras.

Dirección (address)

Se trata de un identificador único derivado de la clave pública y que se usa en una transacción para identificar tanto al que la envía como al que la recibe.

Transacción (transaction)

Entendemos por transacción como la unidad fundamental de información que se almacena en la blockchain. Como su nombre indica, es la transferencia de una valor desde una dirección origen a otra destino.

Bloque

Un bloque está constituido por una cabecera (header) y por un conjunto de transacciones. La cabecera contiene un puntero al hash del bloque anterior, una marca de tiempo que indica el momento de la creación del bloque (timestamp) y un nonce. Los describimos con más detalle a continuación.

El primero de los bloques que componen la blockchain se conoce como bloque génesis. Este bloque es codificado en el momento de la creación de la cadena de bloques.

Nonce

Un nonce es un número aleatorio o pseudoaleatorio que se genera y se usa una sola vez. Se usa en criptografía para obtener protección frente ataques de playback en los que se intentan reutilizar comunicaciones antiguas.

Funcion Hash

La función hash tiene como entrada un conjunto de datos tales como cadenas de texto, conjuntos de transacciones, etc. y los convierte normalmente en cadenas de texto (strings) de longitud fija independientemente de la longitud de los datos de entrada.

Árbol de Merkle (tree) y y el nodo raiz (Merkle root)

Un árbol de Merkle es una estructura de datos jerárquica que tiene como objetivo relacionar cada nodo con una raíz única asociada. Para lograr esto, cada nodo debe estar identificado con un identificador único resultante de la ejecución de una función hash. Los nodos iniciales, también conocidos como hojas, se asocian luego con un nodo superior llamado rama o nodo padre. El nodo padre tendrá un identificador único generado mediante un hash de los identificadores de sus nodos hijos. Esta estructura se repite hasta llegar al nodo raíz o raíz de Merkle (Merkle Root), cuyo identificador está asociado a todos los nodos del árbol.

árbol de merkle

Gracias a esta estructura única, los árboles de Merkle permiten relacionar una gran cantidad de datos a un solo punto (Merkle Root). De esta manera, la verificación y validación de estos datos se pueden realizar de manera eficiente, ya que solo se necesita verificar la raíz en lugar de toda la estructura.

Nodo

Un nodo en una red blockchain puede realizar varias funciones según el rol que asuma. Así, un nodo puede proponer y validar transacciones; realizando minería para facilitar el consenso y proteger la blockchain de escrituras maliciosas. Este objetivo se logra siguiendo un protocolo de consenso por prueba de esfuerzo (Proof-of-work, PoW).

Los nodos también pueden realizar otras funciones, como la verificación de pagos simples, validación y muchas otras funciones dependiendo del tipo de cadena de bloques.

Los nodos también realizan una función de firma de transacciones. Las transacciones son creadas primero por los nodos y luego firmadas digitalmente utilizando claves privadas como prueba de que son el propietario legítimo del activo que desean transferir a otra dirección en la red blockchain. Este activo suele ser un token (NFT, etc) o moneda virtual, como Bitcoin.

Un lenguaje de programación

Este lenguaje consiste en un conjunto de comandos que permite a los nodos realizar las transacciones, smart contracts, etc. Bitcoin emplea Script. Se trata de un lenguaje muy limitado que no permite la creación de programas, por ello se dice que no es Full-Turing. En cambio, Etherum emplea Solidity.

Solidity es un lenguaje de programación orientado a objetos de alto nivel para la implementación de contratos inteligentes que está inspirado en otros lenguajes de programación de alto nivel como C++, Python y Javascript.

La máquina virtual

Una máquina virtual permite ejecutar código de Turing completo (Full-Turing) en una cadena de bloques; por ejemplo un smart contract. En cambio un script de transacción estaría limitado en su funcionamiento. Sin embargo, no todas las cadenas de bloques disponen de máquinas virtuales (Bitcoin, por ejemplo).

Ethereum Virtual Machine (EVM) de Ethereum y Chain Virtual Machine (CVM) de Chain Core son algunos ejemplos.

Máquina de estados (state machine)

Una cadena de bloques puede ser vista como una máquina de estados, en la que el estado actual es modificado por medio de la ejecución de una transacción por un nodo.

Smart contract

Esta característica no está disponible en todas las cadenas de bloques. Sólo las que dispongan de lenguajes de programación Full-Turing serán capaces de implementarlos.

Un smart contract es un programa que se ejecuta sobre la cadena de bloques y encapsula la lógica de un negocio que será ejecutada automáticamente cuando se cumplen ciertas condiciones definidas en las parámetros de ejecución del contrato.

Los contratos inteligentes tienen muchos casos de uso: gestión de identidad, mercados de capital, finanzas comerciales, gestión de registros, seguros y e-gobernanza, etc.

¿Cómo funciona la blockchain?

Los nodos, que pueden ser mineros o firmantes de bloques, son los encargados de crear nuevos bloques y validar las transacciones. Una de las decisiones más importantes que debe tomar cualquier red blockchain es determinar qué nodo añadirá el siguiente bloque a la cadena, y esto se hace mediante un mecanismo de consenso.

Veamos cómo se validan las transacciones y se añaden bloques la cadena de bloques.

Proceso paso a paso

  1. Inicio de la transacción: Un nodo inicia una transacción creándola y firmándola digitalmente con su clave privada. Una transacción puede representar diversas acciones dentro de la cadena de bloques, siendo la más común la transferencia de valor o token entre dos usuarios.
  2. Validación y difusión de la transacción: La transacción, una vez verificada, se difunde (broadcast) a otros pares que la validan según los criterios preestablecidos.
  3. Competición por crear un bloque: Cuando la transacción es recibida y validada por unos nodos especiales llamados mineros (miners), se incluye en un bloque y comienza el proceso de minería. Aquí, los mineros compiten para finalizar el bloque que han creado mediante un proceso conocido como minería (mining).
  4. Creación del bloque: Una vez que un minero resuelve un rompecabezas matemático de gran complejidad y alto coste energético (o cumple con los requisitos del mecanismo de consenso implementado en la blockchain), el bloque se considera encontrado y finalizado y por tanto, la transacción se considera confirmada. Por lo general, en blockchains de criptomonedas como Bitcoin, el minero que resuelve el rompecabezas matemático (Proof-of-work, prueba de esfuerzo o Pow) es recompensado con cierta cantidad de criptomonedas como incentivo por su esfuerzo y los recursos que gastó en el proceso de minería.
  5. Se agrega un nuevo bloque a la blockchain: El bloque recién creado se valida, las transacciones o contratos inteligentes dentro de él se ejecutan y se difunde a otros pares. Los pares también validan y ejecutan el bloque. Ahora forma parte de la blockchain y el siguiente bloque se inicia.

Finalizando…

Ahora que sabemos cómo funciona la cadena de bloques nos dedicaremos a profundizar en sus beneficios y limitaciones, los tipos existente, los algoritmos de consenso y el teorema CAP.

La lista de artículos de esta serie es:


Agradecimientos

Scroll al inicio