Bloque #1: Arquitectura básica

Voy a partir del supuesto que si llegaste acá, a un blog técnico, es porque sabes lo que es unas criptomoneda, sabes más o menos como funciona una blockchain y algún conocimiento técnico tenés, pero no deja de ser interesante destacar algunas cosas como un buen puntapié para el blog.

Primero y principal, podemos definir a una Blockchain como una estructura de datos cuya información se agrupa en conjuntos (bloques) a los que se les añade metainformación relativa a otro bloque de la cadena anterior en una línea temporal para hacer un seguimiento seguro a través de grandes cálculos criptográficos. Al menos esa es la hermosa definición de Wikipedia.

Hay 3 diferentes tipos de blockchain:

  • Públicas: Cualquiera puede participar de ellas sin ningún tipo de restricción. Bitcoin y Ethereum son los máximos exponentes (al menos por ahora) de este tipo de blockchains.
  • Consortium: Solo un selecto grupo participa de una blockchain de este tipo. Un ejemplo podría ser una blockchain sobre la cual se quiere tener registro de las diferentes fechas y pasos de la producción de un fármacos. Los interesados en participar en esta blockchain podrían ser la empresa farmacéuticas, hospitales, los gobiernos.
  • Privadas: Son blockchain centralizadas en una única entidad. En mi opinión son las menos transparentes ya que no resuelven el problema de la confianza al estar manejadas por un solo actor. Pero se justifican para casos donde la tecnología puede ser útil sin necesidad de tener que preocuparse demasiado por la centralización.

Vamos a la parte más jugosa de este post: los layers de una blockchain.

Fuente: Cointelegraph

Hay mucho debate sobre cuales son las diferentes capas de una blockchain. Algunos dicen que son 5, otros 7, algunos mezclan la capa de Data con Arquitectura, otros agregan capas de Gobernanza, por lo que esto no es una definición de libro. La siguiente definición es la que me ha servido a mi personalmente para entender la Arquitectura básica de una blockchain:

  • Hardware Layer: No suele ser incluida en todas las definiciones, pero hace referencia a todo lo físico relacionado al funcionamiento de la blockchain: nodos, servidores, equipamiento que facilite la interacción entre nodos (internet), hardware wallets, equipamiento de minado en PoW, etc.
  • Data Layer: Es donde se almacenan los registros de las transacciones. Cada bloque de la cadena contiene el número de transacciones, el hash del bloque anterior y su propio hash. Este hash esta basado en la transacciones incluidas dentro del bloque, por lo que cambiar su contenido haría cambiar el hash, asegurando así la inmutabilidad. Esta forma de englobar las transacciones de un bloque y componer los la información de un bloque completo es conocido como un árbol de hash binario o Merkle Tree. Los primeros en intentar un sistema de este tipo fueron Haber y Stornetta, que diseñaron un servicio de escribanía digital basado en timestamps de documentos para probar y confirmar cuando fueron creados los documentos.
  • Network Layer: A diferencia de una red convencional, una blockchain esta basada en una red P2P donde no hay un nodo central. Soluciona de esta forma el problema de Single Point of Failure. Cada nodo es igual entre si, autónomo, distribuido y se conectan por una topología plana. Tampoco suele ser incluida en todas las definiciones. En las redes de Bitcoin y Ethereum, el protocolo P2P esta basado en el protocolo TCP.
  • Consensus Layer: Una base de datos centralizada suele estar administrada por una sola entidad, pero en una red descentralizada cualquiera puede participar y hay que suponer que no todos los actores son confiables. En esta a capa se define como los nodos van a acordar cuando una transacción es valida o no. Existen diferentes mecanismos pero los más conocidos son Proof of Work (PoW) , donde se participa del consenso aportando capacidad de procesamiento al a red y es utilizado por Bitcoin, y Proof of Stake (PoS), donde se participa del consenso haciendo un deposito el cual se utiliza de incentivo y utilizado por Ethereum.
  • Smart Contract Layer: Un Smart Contract es una entidad que usa algoritmos y formulas para compilar términos pre establecidos, deployados en una blockchain y ejecutados en base a esas reglas. Szalo en el año 1994 fue el primero en acuñar el término como compromisos definidos de forma digital, incluidos protocolos y pasos para llegar a ese compromiso. Lógicamente, esta una capa fundamental en Ethereum ya que se comporta como una unidad de procesamiento descentralizada la cual ejecuta en cada bloque lineas de código de esos Smart Contracts. Ethereum para esta capa dista bastante de Bitcoin, ya que define una red que puede ejecutar un lenguaje de programación Turing Complete en un entorno llamado Ethereum Virtual Machine (EVM). Camila Russo define a Ethereum como «La Máquina Infinita» ya que es una computadora o máquina que procesa transacciones de forma descentralizada infinitamente.
  • Application Layer: Es la capa donde los usuarios interactúan con la blockchain a través de aplicaciones descentralizadas conocidas como «dApps». Quizás esta capa tenga más sentido para Ethereum, donde se desarrollan dApps de DeFi, gaming, NFTs, etc. Pero en Bitcoin, con el paso de tiempo, se han ido creando diferentes dApps que no solo tienen que ver con sus transacciones (por ejemplo los ordinals que son similares a los NFTs en Ethereum).

Algunos estudiosos agregan, además, capaz como Privacidad o Gobernanza. Según mi entender, estas capas hablan de aplicaciones especificas de una blockchain, donde tranquilamente pueden ser incluidos dentro de alguna otra Layer como Application o Smart Contracts.

Cumplidas las definiciones formales, nos queda empezar a meter mano en el asunto. Los espero en el próximo post!

Deja un comentario