Logo DIE

Blockchain

Unidad de Apoyo para el Aprendizaje

Iniciar

Introducción


Una blockchain funciona como un registro histórico de todas las transacciones entre varios nodos, en donde cada bloque que almacena contiene la información referente a una transacción y a su vez está ligado al bloque anterior, de tal manera que corromper un bloque o alterar la cadena es computacionalmente muy difícil o imposible.

El tema tiene como propósito ilustrar cómo funcionan las blockchain, incluyendo los tipos que existen y cada uno de los elementos que la componen, para después comprender sus aplicaciones.



Identificar qué es y cuáles son los elementos que componen la blockchain, así como su funcionamiento, con el fin de reconocer las aplicaciones de esta tecnología en la actualidad.

Blockchain


Blockchain, traducido al español como cadena de bloques, es un registro único, consensuado y distribuido en varios nodos pertenecientes a una red. En otras palabras, es un registro histórico de todas las transacciones entre varios nodos.

Cada bloque contiene información referente a una transacción y, a su vez, está ligado al bloque anterior, de tal forma que corromper el bloque actual o alterar la cadena es computacionalmente difícil, prácticamente imposible, pues la información actual no coincidiría con la que tiene el bloque anterior.

La información más relevante contenida en estos bloques generalmente es la siguiente:




Número de registro o transacciones válidas.

Información referente al bloque actual.

Información que vincula al bloque actual con el anterior y con el siguiente bloque.


Esto se logra a través del uso de funciones digestivas (o hash en inglés) de cada bloque. Dadas las propiedades de esta función, el resultado de su aplicación es único para cada bloque.

Por lo anterior, cada bloque tiene un lugar específico e inalterable dentro de la cadena de bloques que, además de asegurar la integridad de cadena de bloques, también busca que cada nodo participante almacene una copia exacta de la cadena. Esto con el propósito de que, en caso de lograr alterar la cadena o de que haya un error que comprometa la integridad de la cadena, al comparar la cadena corrompida de un nodo con la cadena almacenada en el resto de los nodos pertenecientes a la blockchain, pueda notarse el error y sea posible la recuperación de dicha información y así no comprometer la cadena original.

A medida que se agregan nuevos bloques, estos son verificados y validados por todos los nodos de la red antes de agregarlos, y al verificar que la transacción fue correcta son añadidos a un bloque y enlazados en la cadena.

Así, blockchain es una lista de registros distribuidos que guardan transacciones (que pueden contener cualquier tipo de información) protegidas por un hash.




Figura 1. Diagrama de una cadena de bloques



Blockchain surge de la creación de la criptomoneda Bitcoin. Esta es una tecnología que puede ser utilizada a un sinfín de aplicaciones para descentralizar su operación fuera de las criptomonedas. Nace como una alternativa y soluciones a los problemas que tienen sistemas centralizados.


Problemas de los sistemas centralizados



Los sistemas centralizados tienen un tercero de confianza que se convierte en un punto central de falla y funciona bajo la suposición de que existe un tercero de confianza.


Los sistemas centralizados requerían autenticación e incluso identificación para ser parte del sistema.


Si el tercero de confianza está dañado, la integridad del sistema ya no puede ser garantizada.




Mientras que el blockchain ofrece las siguientes propiedades:



• Confianza
• Verificación pública
• Transparencia
• Integridad
• Redundancia

Al establecer una comunicación punto a punto se eliminan completamente los intermediarios, haciendo más eficientes las operaciones y reduciendo los costos; además, se transmite toda la confianza al sistema y no a las personas, haciendo que sea mucho más seguro, confiable y efectivo.

Blockchain permite solventar fallas en un punto central, incrementar la confianza de la red o el sistema basada en evidencia digital y todo con varios niveles de anonimato; sin embargo, su misma naturaleza no permite que se tenga una autenticación, que no haya confidencialidad y que la integridad fuera del sistema no sea garantizable. Una de las principales aplicaciones que se le espera dar al blockchain es la sustitución de los mercados actuales, en donde muchos mercados, tanto públicos como privados, se conecten.





1. Libro mayor o ledger


El libro mayor o ledger es el registro de las transacciones que se llevan a cabo en un blockchain. Una transacción es el intercambio de activos. Entendamos por activo cualquier cosa de valor, puede ser información, dinero, bienes, etc. Una analogía de un ledger es un registro de contabilidad, en donde se registran todos los ingresos y egresos de una empresa.

1. El ledger registra toda la actividad comercial como transacciones.

2. Cada mercado y red define un ledger.

3. El ledger registra las transferencias de activos entre participantes.

Si cada mercado y organización tiene su propio ledger crea un problema: existen muchos ledgers conectados entre sí, pero no hay un ledger único que integre los ledgers individuales.

Como solución, blockchain propone el uso de un ledger “global” en el que todos participen, que sea confiable, comprobable y seguro. Éste tendría que ser implementado por un tercero “centralizado”, aunque el ledger funcionaría de forma totalmente autónoma y descentralizada, sin depender de un tercero. Esto se logra a través de herramientas criptográficas que permitan la integridad y protección de los activos y que exista una forma distribuida de validar las transacciones.




Imagen 1. Representación de un ledger descentralizado (CBINSIGHTS, 2020)



2. Elementos de blockchain


Ledger replicable: Historial de todas las transacciones que sólo puede crecer si las transacciones actuales no han sido alteradas y que funciona de forma distribuida y de acceso público.
Criptografía: El ledger debe mantener la integridad, autenticidad y privacidad de las transacciones, manteniendo la anonimidad de los participantes.
Consenso: Debe ser un protocolo descentralizado que valida transacciones en donde el control es compartido y debe ser tolerante a la interrupción.
Lógica de negocios: La lógica de negocio o reglas del mercado deben estar integradas al sistema y las transacciones.


3. Aplicaciones


Estas son algunas de las industrias en donde se prevén muchos beneficios con la implementación de sistemas descentralizados basados en blockchain, gracias a la simplificación de las transacciones comparadas con la contraparte tradicional o centralizada, que no necesariamente es digital.



Aplicaciones de blockchain


  • Logística: Visibilidad en tiempo real con eficiencia mejorada, menores costos, transparencia y verificabilidad.
  • Registros de propiedad: Digital pero infalsificable con menos disputas, transparencia y verificabilidad con menor costo.
  • Mercado de capitales: Tiempos de liquidación más rápidos con mayor disponibilidad de crédito, con transparencia y verificabilidad.


4. Funcionamiento


Blockchain funciona como una máquina de estados en donde, dependiendo de cierta cantidad de entradas, se realiza un cambio de estados. A mayor detalle, la operación o transforma un estado s en un nuevo estado s' y puede generar una respuesta r.


F (s, o) -> (s ', r)





La operación representa una transacción y una transacción puede ser el registro de prácticamente cualquier cosa. Antes de que se realice un cambio en el estado, la operación debe ser validada en el estado actual, de acuerdo a un predicado P ().


P (s, o) = VERDADERO


Dependiendo del tipo de blockchain se pueden tener diferentes formas de validación. La validación se efectúa por otros nodos de la red y debe ser aprobada por la mayoría.

La cadena de bloques que se genera a partir de las operaciones o cambios de estado trabaja bajo las siguientes reglas:


Registro sólo para agregar: Cada operación o agrega un "bloque" de transacciones válidas (tx) al registro con las transacciones anteriores. Los bloques anteriores o que ya se encuentran en la cadena no pueden ser modificados.
Contenido verificable: El contenido del registro se puede verificar a partir del elemento más reciente, ya que las entradas de registro forman una cadena hash. Con esto se mantiene la continuidad de operaciones y la dependencia entre ellas con un orden definido.


ht ← Hash ([tx1, tx2, ...] || ht-1 || t).


• Ejemplo de máquina de estados: Bitcoin.


El Bitcoin es la criptomoneda más importante al momento. Representa una moneda electrónica que, a su vez, es una cadena de bits infalsificable. Existen varios estados dentro de la máquina de estados de Bitcoin:

 

Estados dentro de la máquina de Bitcoin

 


Un Bitcoin se genera después de realizar un proceso de “minado”, que es el proceso de encontrar la solución a un problema muy difícil de resolver.

Las llaves de firma digital (ECDSA) se utilizan para firmar Bitcoins y poder saber quién es su propietario, además de utilizar la llave pública como seudónimo para realizar transacciones. Una transferencia equivale al cambio de propietario.

Para agregar un nuevo bloque a la cadena de hashes o blockchain se valida la transición y se llega a un acuerdo; de lo contrario, la transición se invalida y no se altera el blockchain.

5. Protocolo P2P distribuido1


El ledger distribuido está basado en un protocolo P2P, que sirve para organizar la validación de las transacciones y que sean agregadas al ledger o blockchain.

Cuando un nodo realiza una transición obtiene su hash y lo quiere agregar a la cadena. Debe comenzar un proceso de validación; para esto, les pide a otros nodos (51 %) que validen su transacción. Al terminar envían su respuesta al nodo que realizó la petición y si el resultado fue positivo, lo agrega a la cadena como un nuevo bloque. Este proceso se lleva a cabo en Bitcoin y es, por naturaleza, muy tardado.



Figura 3. Diagrama de consenso P2P distribuido en blockchain



Este proceso puede variar dependiendo de la blockchain que se esté utilizando, pero todos cumplen con el objetivo de validar una transición antes de agregarla a la cadena.



Protocolos de consenso



Este protocolo de consenso es el utilizado por Bitcoin para realizar las validaciones de los nuevos bloques que se agregan a la cadena, una vez que el 51 % de los nodos en la red acepta la transacción.

El grupo de nodos que realizaron una transacción comienza a preguntar al resto de nodos que validen su transacción, y después lo agregan a la cadena. Si se llegara a dar el caso de que dos cadenas son propuestas, se toma como buena la que sea más larga.

Para el proceso de minado, el ganador del Bitcoin generado será seleccionado al azar de entre todos los nodos que hayan resuelto el problema de manera satisfactoria, por lo que se crea un nuevo bloque en donde se asigna la nueva moneda. Para que el protocolo dé importancia a su respuesta el nodo debe presentar su prueba de trabajo (PoW), que se obtiene participando en un proceso de minado y también en la verificación de nuevos bloques que se agregan a la cadena. El minado es un proceso costoso por el equipo que se necesita y el costo de consumo eléctrico que éste genera.

Este proceso dura alrededor de 10 minutos y 10 segundos desde que se comienza a compartir el bloque hasta que se valida; además, un bloque no se reconoce como absoluto hasta que la cadena es seis bloques más larga a partir del bloque referido.



Figura 4. Diagrama de funcionamiento de validación de nueva transacción en Consenso de Nakamoto descentralizado


Ya que no se requiere autenticación para conectarse a la red se le considera como permisivo, por lo que a todos los nodos se les otorgan los mismos “permisos” y permiten que no haya una entidad central que controle algún cambio en esos “permisos”.

Consenso del consorcio es el protocolo de verificación que se utiliza en la red de Ethereum y en Hyperledger. Su popularidad y gran extensión de herramientas llamó la atención de compañías como IBM e Intel para desarrollar sobre Hyperledger y se creó una nueva forma de realizar un consenso utilizando una alternativa a PoW: Consenso de Organización.

La principal diferencia es que para validar un nodo no se pregunta al resto de los nodos en la red por una validación, sino que tiene nodos especiales que tienen mayor validez que el resto de los nodos. Tienen una organización jerárquica y la validación se realiza entre los nodos de mayor importancia. Un nodo mayor y varios nodos menores forman una organización.

Esta arquitectura de nodos sigue manteniendo un gran número de nodos importantes para mantener la confiabilidad en la red; sin embargo, se pierde cierto nivel de anonimidad, ya que los nodos se relacionarán con un nodo mayor; además, esto imposibilita la aplicación de PoW, por lo que utilizan el Acuerdo Bizantino Tolerante a Fallos o BFT2, en donde se toma como válido el resultado con cierta tolerancia de número de nodos, continuando con la idea de mayoría; también, estos nodos no tienen conocimiento previo de la cadena y son ajenos unos con los otros sin que exista comunicación entre ellos.



Figura 5. Diagrama de validación de una transacción en Consenso de Organizaciones


Este tipo de implementaciones se conoce como no permisiva, ya que se requiere de permiso para poder conectarse a la red, es decir, se requiere de autenticación. Esto permite dejar abiertas algunas secciones de la red y proteger otras que así lo requieran. Ya que los nodos no tienen que comunicarse con el 51 % de los nodos en la red, el tiempo de comunicación se reduce considerablemente, haciéndola más eficiente y escalable. Es importante mencionar que las propiedades del blockchain se mantienen; sigue siendo público, verificable y mantiene la integridad de las transacciones.

6. Validación de transacciones


Junto con la estrategia de consenso, la validación es otro de los grandes problemas con los que se enfrenta blockchain como solución descentralizada. Como ya se mencionó, existen varios protocolos que se pueden utilizar, como la Prueba de Trabajo (PoW) y BFT.


Los protocolos de consenso más usados



(Proof of Work o PoW)3


Para validar una transacción tx = P(s,o), que se encuentra en un estado s que sufrió una operación o, el nodo debe validar todo el contenido de tx y decidir en dónde va a insertar el bloque en la cadena. Después propaga el nuevo bloque con el resto de los nodos que deben validar el bloque y su transacción. El bloque implica la transacción y el orden en el que se inserta.

Para realizar la validación se verifican las firmas digitales y hashes que contiene el bloque y se revisa que la moneda no se haya utilizado en otra transacción (evitar doble uso); esto en el caso de Bitcoin. En Ethereum se revisa de nuevo un contrato inteligente. Si los resultados coinciden entonces se aprueba el ticket.

El núcleo de este tipo de validación radica en prestar recursos para realizar la validación; suelen ser procesos costosos (computacionalmente), revisar firmas digitales y realizar hashes.


Se emplea con el fin de reducir el tiempo que toma realizar la validación de transacciones en el protocolo de PoW. Este protocolo tiene tres propiedades en las cuales se basa:

Validez débil: Supone que todos los nodos son correctos y un nodo propone un resultado y el número de bloques hacia atrás que se deben validar.
Acuerdo: Los nodos revisan el número de bloques que se definió por el protocolo y realiza la validación. Todos los nodos correctos deben obtener el mismo resultado.
Terminación: Al terminar el nodo se decide si la operación es correcta. Todos los nodos correctos en algún momento deberán decidir.

Este proceso de validación es totalmente ajeno a la aplicación, por lo que se puede utilizar para muchas aplicaciones y no sólo criptomonedas.




7. Conclusión4.



Blockchain es una herramienta que permite descentralizar (total o parcialmente) sistemas, en donde se utilizan protocolos de consenso y validación para poder validar transacciones y agregarlas a la cadena de bloques. Una transacción puede ser cualquier operación sobre algún activo en la red. Ofrece estas ventajas sobre sus alternativas tradicionales centralizadas:




Las transacciones son validadas por la red y de forma automática, por lo que siempre aceptarán aquellas transacciones que se hayan efectuado realmente.

Con el uso de firma digital y hashes se garantiza la integridad de las transacciones, así como la integridad de orden en el que se efectúan, manteniendo una dependencia entre ellas, además de ofrecer un no repudio en las transacciones.

Aunque depende del tipo de blockchain que se utiliza, de forma general se garantiza que las transacciones se realizan de forma privada pero no anónima, aunque las transacciones y la blockchain sean públicas.

La cadena de bloques puede ser accedida por todos (depende del tipo de blockchain) y validada en cualquier momento para verificar que las transacciones son correctas.


De forma general, blockchain propone una solución agnóstica a la aplicación, en donde se releva del poder a las personas y se transmite a un sistema digital que utiliza herramientas criptográficas para garantizar la confianza, seguridad e integridad del sistema, reduciendo considerablemente los ataques e intervenciones de terceros maliciosos.



ícono

Actividad.

ícono

Autoevaluación. Conceptos básicos de blockchain

Fuentes de información

Básicas


Bibliografía


Aublin, P. L., Guerraoui, R., Knezevic, N., Quéma, V. & Vukolic, M. (2015). The Next 700 BFT Protocols. ACM TOCS, 32(4).

Cachin, C., Guerraoui, R. & Rodríguez, L. (2011). Introduction to Reliable and Secure Distributed Programming (2nd ed.). Springer.

Cachin, C., Kursawe, K., Petzold, F. & Shoup, V. (2001). Secure and Efficient Asynchronous Broadcast Protocols. CRYPTO.

Cachin, C., Schubert, S. & Vukolic, M. (2016). Non-determinism in Byzantine Fault-Tolerant Replication. OPODIS.

Castro, M. & Liskov, B. (2002). Practical Byzantine fault tolerance and proactive recovery. ACM TOCS, 20(4).

Decker, C., Seidel, J. & Wattenhofer, R. (2016). Bitcoin meets strong consistency. ICDCN.

Eyal, I., Gencer, A., Sirer, E. G. & Renesse, R. (2016). Bitcoin-NG: A Scalable Blockchain Protocol. NSDI.

Kemme, B., Jiménez, R. & Patiño, M. (2010). Database Replication. Morgan & Claypool.

Kosba, A., Miller, A., Shi, E., Wen, Z. & Papamanthou, C. (2016). Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts. IEEE S&P.

Luu, L., Narayanan, V., Baweja, K., Zheng, C., Gilbert, S. & Saxena, P. (2016). A Secure Sharding Protocol for Open Blockchains. ACM CCS.

Malkhi, D. & Reiter, M. (1998). Byzantine Quorum Systems. Distributed Computing.

Miller, A., Xia, Y., Croman, K., Shi, E. & Song, D. (2016). The Honey Badger of BFT Protocols. ACM CCS.

Pedone, F., Wiesmann, M., Schiper, A., Kemme, B. & Alonso, G. (2000). Understanding Replication in Databases and Distributed Systems. ICDCS.

Sasson, E. B., Chiesa, A., Garman, C., Green, M., Miers, I., Tromer, E. & Virza, M. (2014). Zerocash: Decentralized Anonymous Payments from Bitcoin. IEEE S&P.

Vukolic, M. (2015). The Quest for Scalable Blockchain Fabric: Proof-of-Work vs. BFT Replication. LNCS 9591, Proc. iNetSeC.


Documentos electrónicos


Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System. https://bitcoin.org/bitcoin.pdf

Takura, A., Ono, S. & Naito, S. (1999). A secure and trusted time stamping authority. Internet Workshop. IWS 99, 88-93. http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=810997&isnumber=17595


Complementarias


Documentos electrónicos


CB Insights. (2021). What is Blockchain technology? https://www.cbinsights.com/research/what-is-Blockchain-technology/

Lin, I. C. & Liao, T. C. (2017). A survey of blockchain security issues and challenges. International Journal of Network Security, 19(5), 653-659. https://doi.org/10.6633/IJNS.201709.19(5).01

Maull, R., Godsiff, P., Mulligan, C., Brown, A. & Kewell, B. (2017). Distributed ledger technology: Applications and implications. Strategic Change, 26(5), 481-489. https://doi.org/10.1002/jsc.2148

Sherman, A. T., Javani, F., Zhang, H. & Golaszewski, E. (2019). On the Origins and Variations of Blockchain Technologies. IEEE Security and Privacy, 17(1), 72-77. https://doi.org/10.1109/MSEC.2019.2893730


Sitios electrónicos


Bitcoin Wiki. (2021). https://en.bitcoin.it/wiki/Main_Page

 

Cómo citar

 

Aldeco, R., Solano, J. A., Sáenz, R. y Mejía, A. (2021). Blockchain. Unidades de Apoyo para el Aprendizaje. CUAIEED/Facultad de Ingeniería-UNAM. (Vínculo)