Blockchain y la Prueba de Trabajo (PoW)

0

¿Por qué bitcoin es inmutable, es decir, que sus transacciones no puede ser cambiadas o alteradas? Está interesante y primordial pregunta será contestada a lo largo de este texto.

Son cuatro las tecnologías trabajando en conjunto las que permiten la existencia y funcionamiento de bitcoin y de muchas criptomonedas:

  1. Blockchain
  2. Prueba de trabajo (PoW)
  3. Red cliente-cliente (P2P)
  4. Criptografía

En esta oportunidad hablaré sobre la Prueba de Trabajo o Proof of Work (PoW, por sus siglas en inglés). Como referencia, existen algunos algoritmos de consenso a parte del PoW:

  • Proof of Stake, PoS
  • Delegated Proof of Stake, DPos
  • Proof of Authority, PoA
  • Proof of Weight, PoWeight
  • Byzantine Fault Tolerance, BFT
  • Directed Acyclic Graphs, DAGs

La cadena de bloques hace que bitcoin sea inmutable porque cada nuevo bloque depende de su predecesor, creándose una cadena irrompible de bloques a partir del ‘genesis block’ minado el 3 de enero de 2009. Si algo se cambia en esta cadena, el cambio es notorio.

Sin embargo, esta no es una respuesta del todo cierta. Lo que hace que bitcoin sea inmutable en verdad es la PoW. Una blockchain no puede ser inmutable si es que no tiene un algoritmo –protocolo– de consenso PoW.

La historia de la PoW

La PoW fue no inventada por Satoshi Nakamoto, fue inventada por el ser humano como una forma de demostrar su inventiva, poder e inteligencia. Las pirámides son el testamento de la prueba de trabajo hecha por los egipcios, lo mismo pasa con muchos otros grandes logros de las civilizaciones.

Hago mías la palabras de Andreas Antonopoulos –autor y gurú de Bitcoin y blockchain– quien dijo que:

Bitcoin es el primer monumento digital de escala planetaria de prueba de trabajo. Su propósito práctico es convertirse en un registro histórico de la verdad en términos de transacciones monetarias. Una vez que una transacción ingresa a la cadena de bloques y es verificada y asegurada por una PoW, es extremadamente difícil alterarla.

¿Qué es Prueba de Trabajo o Proof of Work (PoW)?

Es el protocolo de consenso introducido por bitcoin que hace posible que miles de nodos acuerden entre sí el estado de la red. Ethereum usa una versión mejorada de éste, llamada Ghost, que trabaja bajo la misma premisa.

Los nodos que forman parte de la construcción del consenso son llamados mineros. En las redes privadas en las que no existen recompensas –block reward– para los mineros, éstos pueden ser llamados validadores. Un minero o validador que es capaz de proponer un nuevo bloque y transmitirlo es llamado proponente.

La Prueba de Trabajo es lo que los otros nodos esperan que el proponente presente conjuntamente con el nuevo bloque. La PoW se trata de un número especial que demuestra que el proponente encontró la solución de una compleja operación matemática.

El esfuerzo se centra en cómo añadir las nuevas transacciones a la cadena de bloques. Debido a que las transacciones pueden surgir de cualquier nodo en la red, el reto es llegar a un acuerdo que defina cuáles transacciones se procesan y en qué orden. En la práctica, los nodos toman la iniciativa, recopilan algunas transacciones en un bloque y lo proponen a otros nodos.

Así es como la PoW mantiene a todos los nodos sincronizados: la responsabilidad de mantenerse alineado con la opinión de la mayoría recae sobre el nodo.

El algoritmo de la PoW penaliza las decisiones erradas, si un nodo se aferra a una determinada noción del estado de la red y luego resulta que no estuvo alineado con el resto de nodos, entonces todo el trabajo de minería del nodo ha sido en vano y no recibirá una recompensa.

La convención es que la cadena más larga –más pesada– siempre refleja ‘la verdad’ del estado de la red, debido a que es probable que en ella se haya invertido más trabajo –capacidad informática que consume mucha energía eléctrica– para resolver las complejas operaciones matemáticas. Las cadenas más cortas –o livianas– serán rechazadas.

Una carrera de operaciones matemáticas

El trabajo real se trata de una constante competencia entre los nodos de minería por resolver problemas matemáticos. Básicamente es una carrera por encontrar un número aleatorio –llamado “nonce”– que confiere el derecho a un nodo de proponer el siguiente bloque de la cadena de bloques.

El acto de proponer y armar un nuevo bloque es así:

  1. Tomar un grupo de transacciones que se encuentran en espera de ser incluidas en un bloque y validarlas.
  2. Relacionar las transacciones con un número aleatorio –nonce–.
  3. Codificar las transacciones y el número –nonce– haciendo uso de un algoritmo criptográfico como SHA 256, Equihash, Cryptonight, Scrypt, etc.
  4. Revisar los ceros del hash.
  5. Si el hash tiene el número requerido de ceros al principio se puede proponer el nuevo bloque, adjuntando el número aleatorio –nonce– como Prueba de Trabajo.
  6. Si no es así, es necesario empezar nuevamente desde el paso 2.

Es normal que se requiera trillones de intentos hasta encontrar el nonce que empiece con el número correcto de ceros. La esencia de este esquema es el hecho de que un número nonce es difícil de encontrar, pero fácil de verificar. Rutinariamente, toma trillones de cálculos de prueba y error encontrar el nonce, pero se requiere de un solo cálculo para verificarlo.

El propósito de la minería es la seguridad

Existe una gran diferencia entre cambiar el pasado y el futuro. Un algoritmo de consenso determina el futuro de una cadena de bloques.

Si se posee, por ejemplo, la mayoría de hashpower de la cadena de bloques de bitcoin, se puede decidir acerca de lo que se registra en el futuro, pero no se puede cambiar el pasado tan fácilmente. La razón por la que no se puede modificar el pasado es porque cada nodo en la red todavía validará cada bloque y demandará una PoW.

Existe una sola manera de generar una PoW: destinando enormes recursos energéticos e informáticos a un bloque en particular.

La función de la minería no es crear bitcoins nuevos, este es un efecto secundario. Su función real es la de proveer seguridad y validación a todas las transacciones contenidas en los bloques de acuerdo a unas reglas de consenso. La generación de nuevos bitcoins representa un mecanismo de recompensa que reciben los mineros por su trabajo, dice Antonopoulos.

Diferencia entre PoW y PoS

Se han propuesto un sinnúmero de algoritmos de consenso. Proof of Stake (PoS) es uno de ellos.

Muchos criptoactivos usan su criptodivisa nativa para participar en la minería. Esto significa que invertiré una determinada cantidad de un token nativo para proponer y validar el siguiente bloque de la blockchain. Si fallo en la validación, pierdo mis tokens; si tengo éxito, recibo una pequeña comisión.

Resulta que PoW es también PoS, pero PoS no es PoW

Cada vez que un minero propone un bloque y lo llena con transacciones luego de ser verificadas y después descifra el hash del bloque precedente a través del algoritmo de consenso PoW, está invirtiendo y arriesgando recursos, en este caso, energía eléctrica –que cuesta producirla–.

La PoW invierte un recurso que es extrínseco a la cadena de bloques –electricidad–; la PoS invierte un recurso que es intrínseco a la cadena de bloques –token nativo–. La electricidad tiene un valor universal, ya que cuesta generarla. El valor de un token nativo eventualmente puede ser cero.

Debido a esta simple razón resulta que PoW es también PoS, pero PoS no es PoW. La PoW es costosa porque está generando valor a escala planetaria. No es un despilfarro de energía.

Mientras no exista una PoW en una blockchain, el costo de reescribir la historia es casi cero. Es sencillamente por esto que las cadenas de bloques privadas no son inmutables, pueden ser alteradas a discreción y capricho del que posea las credenciales para hacerlo.

¿Te gustó el artículo? ¡Puedes apoyar a Juan Francisco Bolaños en Patreon!

Deje un Comentario

Su correo electrónico no será publicado.