La publicación Tecnología de libro mayor distribuido y mecanismos de consenso apareció por primera vez en Coinpedia Fintech News

Introducción

Blockchain está surgiendo como nunca antes y también el ecosistema de desarrolladores. Comprender los conceptos fundamentales de blockchain es imprescindible para todos los relacionados con este campo. Uno de esos temas que necesita la máxima atención para tener una base sólida es la tecnología de contabilidad distribuida y el mecanismo de consenso. En este artículo, exploraremos varios aspectos de DLT y analizaremos exhaustivamente el mecanismo de consenso. ¿Deberíamos empezar?

¿Qué es la tecnología de contabilidad distribuida (DLT)? 

La tecnología de contabilidad distribuida (DLT) es un sistema de almacenamiento de datos digitales descentralizado que registra las transacciones y toda la información sobre ellas en múltiples lugares simultáneamente. Como su nombre lo indica, un libro de contabilidad distribuido es un libro de contabilidad compartido que es replicado por todos los nodos que participan en la red. Es una base de datos poco convencional que no sigue el método clásico cliente-servidor de tener que almacenar datos en un dispositivo o administración central.

Caracteristicas claves

  • Descentralización: 

No existe una autoridad central que posea todos los datos necesarios o la validación de transacciones, sino que todo está distribuido por la red. Como sabemos en blockchain, cada nodo mantiene una copia del libro mayor, lo que garantiza que no haya ninguna discrepancia debido a un único punto de control. 

  • Transparencia:

Todos los nodos y participantes pueden ver el libro mayor garantizando la transparencia en toda la red. En Ethrerneum las transacciones son visibles en el explorador blockchain.

  • Inmutabilidad:

Hay que tener mucho cuidado antes de ejecutar cualquier transacción porque una vez realizada no se puede modificar más. Esta propiedad es muy útil para prevenir el fraude y el doble gasto.

Comparación con bases de datos tradicionales

Las bases de datos tradicionales como SQL y MongoDB utilizan mecanismos centralizados para el mantenimiento y el control, lo que otorga toda la autoridad a una única fuente. Generalmente, CRUD (crear, leer, actualizar y eliminar) se utiliza para realizar todas y cada una de las operaciones con los datos. Este método es vulnerable a la manipulación, la corrupción y las pérdidas. Por otro lado, las DLT utilizan los famosos algoritmos de consenso para garantizar la transparencia, integridad, seguridad y descentralización en el mantenimiento y validación de registros.

Tipos de libros mayores distribuidos  

  • Cadena de bloques:

    • Estructura técnica: En Blockchain, los datos se almacenan particularmente en bloques que luego se vinculan entre sí mediante principios criptográficos formando una cadena de bloques, almacenados de forma lineal y cronológica.

    • Herramientas de desarrollo: algunas herramientas de desarrollo son Geth, que ejecuta e implementa los contratos y el código de Ethereum. Parity es un cliente de Ethereum que es rápido, seguro y confiable. Truffle Suite es un entorno de desarrollo para Ethereum. En los últimos tiempos el despliegue de dApps ha sido un aporte notable.

  • Gráfico acíclico dirigido (DAG):

    • Explicación Técnica: Si hablamos de redes, es imposible no mencionar los gráficos; una de esas estructuras es DAG. Aquí las transacciones están vinculadas entre sí formando un gráfico dirigido que no forma un ciclo. Esto garantiza escalabilidad y eficiencia.

    • Herramientas de desarrollo: IOTA SDK proporciona un conjunto de herramientas para la red IOTA que utiliza un DAG llamado Tangle.

  • Hashgrafo:

    • Explicación técnica: Hashgraph se basa en un sistema de chismes. Los nodos conversan con otros nodos para intercambiar detalles (eventos). Luego, una votación virtual ayuda a llegar a un acuerdo.

    •  Herramientas para desarrolladores: Hedera Hashgraph SDK  Incluye un montón de ventajas para crear aplicaciones descentralizadas en la red de Hedera.

Importancia de los mecanismos de consenso

Los mecanismos de consenso son un conjunto de protocolos que los nodos de la red deben seguir para acordar el estado del libro mayor. Estos mecanismos se utilizan para la validación y autenticación de transacciones. Estos mecanismos garantizan que todos los nodos de la DLT estén de acuerdo con el estado del libro mayor. Los mecanismos de consenso denotan la confiabilidad y confiabilidad de los sistemas DLT.

Problemas resueltos por los mecanismos de consenso:

  • Doble gasto: se trata de gastar el mismo activo más de una vez.

  • Problema de los generales bizantinos: llegar a un acuerdo plantea obstáculos cuando existen nodos defectuosos u hostiles.

A continuación se muestra un ejemplo de un método PoW de renombre:

importar hashlib

tiempo de importación

def prueba_de_trabajo(bloque, dificultad=4):

    prefijo = '0' * dificultad

    mientras que Verdadero:

        bloquear['nonce'] += 1

        hash_result = hashlib.sha256(str(block).encode()).hexdigest()

        si hash_result.startswith(prefijo):

            bloque de retorno, hash_result

bloque = {'transacciones': [], 'nonce': 0}

hora_inicio = hora.hora()

nuevo_bloque, bloque_hash = prueba_de_trabajo(bloque)

tiempo_final = tiempo.tiempo()

print(f”Bloque minado: {block_hash}”)

print(f”Tiempo empleado: {end_time – start_time} segundos”)

Mecanismos comunes de consenso 

  • Prueba de trabajo (PoW):

    • Explicación técnica: La prueba de trabajo también se conoce como minería. En este mecanismo de consenso, los usuarios tienen que resolver acertijos criptográficos que los recompensan. Es un concurso donde el primero en resolver pasa el nuevo bloque. Este algoritmo utiliza hash para proteger la cadena de bloques. 

    • Implementación del desarrollador: las herramientas para implementar PoW las proporciona el entorno de desarrollador de Bitcoin, como Bitcoin Core.

  • Prueba de participación (PoS):

    • Explicación técnica: La prueba de participación selecciona validadores en función de la cantidad de monedas que tienen y la participación como garantía. El proceso de selección no depende sólo de la apuesta sino también de factores como la edad de la moneda y la aleatoriedad. Los validadores que tienen el valor hash más bajo y la cantidad de apuesta más alta se eligen para agregar el nuevo bloque.

    • Implementación del desarrollador: las herramientas y bibliotecas para PoS las proporciona Ethereum 2.0 SDK

  • Prueba de participación delegada (DPoS):

    • Explicación técnica: Utiliza votaciones y delegados para la validación de la transacción y la creación de nuevos bloques.

    • Implementación del desarrollador: EOSIO SDK proporciona herramientas y bibliotecas para DPoS.

  • Tolerancia práctica a fallas bizantinas (PBFT):

    • Explicación técnica: PBFT intercambia mensajes entre los nodos para llegar a un consenso. Puede gestionar y tolerar hasta un tercio de los ganglios.

    • Implementación del desarrollador: las herramientas y bibliotecas para PBFT las proporciona Hyperledger Fabric SDK.

Implementación de mecanismos de consenso 

Ejemplos de código 

A continuación se muestra un fragmento de código Pos de ejemplo:

validador de clase:

    def __init__(self, participación):

        self.stake = apuesta

        auto.reputación = 0

validadores = [Validador(participación) para participación en [100, 50, 30]]

validador_seleccionado = max(validadores, clave=lambda v: v.stake + v.reputation)

print(f”Validador seleccionado con participación: {selected_validator.stake}”)

Herramientas y marcos de desarrollo 

Algunas de las herramientas de desarrollo son las siguientes:

  • Truffle Suite: admite el desarrollo de Ethereum

  • EOSIO SDK: utilizado en aplicaciones DPos

  • Hyperledger Fabric SDK: se utiliza en blockchain empresarial mediante PBFT.

Consideraciones de rendimiento:

Los mecanismos de consenso son bastante escalables y manejan bien el creciente número de transacciones. Algunos mecanismos populares como Pos protegen contra los ataques de Sybil. Por lo tanto son más seguros. PoS es más eficiente energéticamente que PoW. 

Elegir el mecanismo de consenso adecuado para su proyecto  

  • Factores a considerar:

  1. Requisitos técnicos: asegúrese de que los mecanismos se ajusten a los requisitos personalizados, por ejemplo, el volumen y la velocidad de las transacciones.

  2. Necesidades de seguridad: Garantizar que la seguridad e integridad de los datos no estén en juego.

  3. Escalabilidad: ¿Qué tan bien el mecanismo que está eligiendo es capaz de manejar el crecimiento de las transacciones?

  4. Eficiencia energética: Asegúrese antes de elegir la eficiencia y disponibilidad de recursos.

  • Casos de uso: 

  1. dApps: Pos se utiliza para aplicaciones descentralizadas seguras.

  2. Contratos inteligentes: PoS se puede utilizar para contratos inteligentes de Ethereum.

  3. Cadena de suministro: Hyperledger Fabric (PBFT) se utiliza para soluciones empresariales que requieren alto rendimiento y seguridad.

Tendencias futuras en los mecanismos de consenso  

Innovaciones 

  • Prueba de autoridad (PoA): este mecanismo utiliza entidades preseleccionadas para la validación. Se utiliza en VeChain.

  • Mecanismos híbridos: se utiliza una combinación de varios elementos, como PoS y PoW, para crear mecanismos de consenso versátiles y personalizados.

Soluciones de escalabilidad

  • Soluciones de capa 2:

Lightning Network: Bitcoin utiliza esta solución fuera de la cadena para realizar transferencias más rápidas y económicas. Establece rutas de pago entre usuarios. Plasma y Rollups: Ethereum escala con estas herramientas. Manejan transacciones fuera de la cadena y brindan un breve resumen a la cadena principal. Esto reduce el trabajo de la cadena de bloques principal.

  • Fragmentación:

Partición de datos: la fragmentación divide la cadena de bloques en bits más pequeños y fáciles de administrar, también conocidos como fragmentos. Cada fragmento se ocupa de sus intercambios y acuerdos inteligentes. Esto alivia la tensión en toda la red.

Procesamiento paralelo: los fragmentos pueden realizar transacciones al mismo tiempo. Esto aumenta considerablemente la cantidad de operaciones que la red puede manejar.

Ejemplos prácticos y estudios de casos 

Aplicaciones del mundo real

Algunas aplicaciones del mundo real de estos mecanismos son Bitcoins que utilizan Pow, Ethereum 2.0 que utiliza PoS y Hyoperledger Fabric utilizado por IBM y varias otras empresas para cadenas de bloques privadas.

Tutoriales de código: 

A continuación se muestra un fragmento de código del contrato inteligente de Ethereum: (se utiliza Pos)

solidez pragma ^0.8.0;

contrato Almacenamiento simple {

    uint256 datos almacenados públicos;

    conjunto de funciones (uint256 x) público {

        datos almacenados = x;

    }

    función get() vista pública devuelve (uint256) {

        devolver datos almacenados;

    }

}

Conclusión

Analizamos las ideas básicas detrás de DLT, varios tipos de libros de contabilidad distribuidos y diferentes formas de llegar a un consenso. Hablamos sobre por qué estos métodos son importantes para mantener los datos seguros y precisos. También dimos algunos consejos útiles sobre cómo ponerlos en práctica. Explore más sobre DLT y el consenso. Pruebe diferentes herramientas y sistemas y ayude a hacer más grande la tecnología descentralizada. ¡Tu próxima gran idea te está esperando!

Lea también: Por qué el lenguaje de programación Rust es el preferido para la innovación Blockchain