Un algoritmo de consenso es un mecanismo que permite a los usuarios o máquinas coordinarse en un entorno distribuido. Debe asegurarse de que todos los agentes del sistema puedan ponerse de acuerdo sobre una única fuente de verdad, incluso si algunos agentes fallan. En otras palabras, el sistema debe ser tolerante a fallas.
En una configuración centralizada, una sola entidad tiene poder sobre el sistema. La mayoría de los casos, pueden realizar los cambios que deseen; no existe un sistema de gobierno complejo para llegar a un consenso entre muchos administradores.
Pero en una configuración descentralizada, es una historia completamente diferente. Digamos que estamos trabajando con una base de datos distribuida, ¿cómo llegamos a un acuerdo sobre qué entradas se agregan?
Superar este desafío en un entorno donde los extraños no confían entre sí fue quizás el desarrollo más crucial que allanó el camino para las cadenas de bloques. En este artículo, veremos cómo los algoritmos de consenso son vitales para el funcionamiento de las criptomonedas y los libros de contabilidad distribuidos.
Algoritmos de consenso y criptomonedas
En las criptomonedas, los saldos de los usuarios se registran en una base de datos: la cadena de bloques. Es esencial que todos (o más exactamente, todos los nodos) mantengan una copia idéntica de la base de datos. De lo contrario, pronto terminaría con información contradictoria, lo que socavaría todo el propósito de la red de criptomonedas.
La criptografía de clave pública garantiza que los usuarios no puedan gastar las monedas de los demás. Pero todavía es necesario que haya una única fuente de verdad en la que los participantes de la red confíen, para poder determinar si los fondos ya se han gastado.
Satoshi Nakamoto, el creador de Bitcoin, propuso un sistema de Prueba de trabajo para coordinar a los participantes. En breve veremos cómo funciona PoW; por ahora, identificaremos algunos de los rasgos comunes de los muchos algoritmos de consenso que existen.
En primer lugar, requerimos que los usuarios que quieran agregar bloques (los llamaremos validadores) proporcionen una participación. Lo que está en juego es algún tipo de valor que un validador debe presentar, lo que los disuade de actuar de manera deshonesta. Si hacen trampa, perderán su apuesta. Los ejemplos incluyen potencia informática, criptomonedas o incluso reputación.
¿Por qué se molestarían en arriesgar sus propios recursos? Bueno, también hay una recompensa disponible. Esto generalmente consiste en la criptomoneda nativa del protocolo y se compone de tarifas pagadas por otros usuarios, unidades de criptomonedas recién generadas o ambas.
Lo último que necesitamos es transparencia . Necesitamos poder detectar cuando alguien está engañando. Idealmente, debería ser costoso para ellos producir bloques, pero barato para cualquiera validarlos. Esto garantiza que los usuarios habituales controlen los validadores.
Tipos de algoritmos de consenso
Prueba de trabajo (PoW)
Proof of Work (PoW) es el padrino de los algoritmos de consenso de blockchain. Se implementó por primera vez en Bitcoin, pero el concepto real existe desde hace algún tiempo. En Prueba de trabajo, los validadores (denominados mineros ) codifican los datos que desean agregar hasta que producen una solución específica.
Un hash es una cadena aparentemente aleatoria de letras y números que se crea cuando se ejecutan datos a través de una función hash. Pero, si vuelve a ejecutar los mismos datos, siempre obtendrá el mismo resultado. Sin embargo, cambie incluso un detalle y su hash será completamente diferente.
Al observar la salida, no es posible saber qué información se introdujo en la función. Por lo tanto, son útiles para demostrar que conocía un dato antes de cierto tiempo. Puede darle a alguien su hash, y cuando más tarde revele los datos, esa persona puede ejecutarla a través de la función para asegurarse de que la salida sea la misma.
En Prueba de trabajo, el protocolo establece las condiciones para lo que hace que un bloque sea válido. Podría decir, por ejemplo, que solo un bloque cuyo hash comience con 00 será válido. La única forma en que el minero puede crear una que coincida con esa combinación es mediante entradas de fuerza bruta. Pueden modificar un parámetro en sus datos para producir un resultado diferente para cada conjetura hasta que obtengan el hash correcto.
Con las principales cadenas de bloques, el listón está increíblemente alto. Para competir con otros mineros, necesitaría un almacén lleno de hardware hash especial ( ASIC ) para tener la posibilidad de producir un bloque válido.
Lo que está en juego, al minar, es el costo de estas máquinas y la electricidad necesaria para hacerlas funcionar. Los ASIC están diseñados para un propósito, por lo que no tienen uso en aplicaciones fuera de la minería de criptomonedas. Su única forma de recuperar su inversión inicial es la mía, que produce una recompensa significativa si agrega con éxito un nuevo bloque a la cadena de bloques.
Es trivial para la red verificar que efectivamente ha creado el bloque correcto. Incluso si ha probado billones de combinaciones para obtener el hash correcto, solo necesitan ejecutar sus datos a través de una función una vez. Si sus datos producen un hash válido, será aceptado y obtendrá una recompensa. De lo contrario, la red lo rechazará y habrá perdido tiempo y electricidad para nada.
Prueba de participación (PoS)
La prueba de participación (PoS) se propuso en los primeros días de Bitcoin como una alternativa a la prueba de trabajo. En un sistema PoS, no existe el concepto de mineros, hardware especializado o consumo masivo de energía. Todo lo que necesita es una PC normal.
Bueno, no todos. Todavía necesitas poner un poco de piel en el juego. En PoS, no presenta un recurso externo (como electricidad o hardware), sino uno interno: la criptomoneda. Las reglas difieren con cada protocolo, pero generalmente hay una cantidad mínima de fondos que debe tener para ser elegible para apostar.
A partir de ahí, guardas tus fondos en una billetera (no se pueden mover mientras estás apostando). Por lo general, estará de acuerdo con otros validadores sobre qué transacciones se incluirán en el siguiente bloque. En cierto sentido, está apostando por el bloque que se seleccionará y el protocolo elegirá uno.
Si se selecciona su bloque, recibirá una proporción de las tarifas de transacción, dependiendo de su apuesta. Cuantos más fondos haya bloqueado, más podrá ganar. Pero si intenta hacer trampa proponiendo transacciones no válidas, perderá una parte (o la totalidad) de su participación. Por lo tanto, tenemos un mecanismo similar al PoW: actuar honestamente es más rentable que actuar deshonestamente.
Generalmente, no hay monedas recién creadas como parte de la recompensa para los validadores. Por lo tanto, la moneda nativa de la cadena de bloques debe emitirse de alguna otra manera. Esto se puede hacer a través de una distribución inicial (es decir, una ICO o IEO) o haciendo que el protocolo se inicie con PoW antes de realizar la transición posterior a PoS.
Hasta la fecha, la prueba de participación pura solo se ha implementado realmente en criptomonedas más pequeñas. Por lo tanto, no está claro si puede servir como una alternativa viable a PoW. Si bien parece teóricamente sólido, en la práctica será muy diferente.
Una vez que PoS se implementa en una red con una gran cantidad de valor, el sistema se convierte en un campo de juego de teoría de juegos e incentivos financieros. Cualquiera con el conocimiento para «piratear» un sistema PoS probablemente solo lo haría si pudiera beneficiarse de él; por lo tanto, la única forma de averiguar si es factible es en una red en vivo.
Pronto veremos PoS probado a gran escala: Casper se implementará como parte de una serie de actualizaciones a la red Ethereum (conocida colectivamente como Ethereum 2.0).
Otros algoritmos de consenso
Prueba de trabajo y Prueba de participación son los algoritmos de consenso más discutidos. Pero hay una amplia variedad de otros, todos con sus propias ventajas y desventajas.
3 comentarios en «¿Qué es un algoritmo de consenso de blockchain?»