Prueba de trabajo (PoW)
¿Qué es prueba de trabajo (PoW)?
Prueba de trabajo (PoW) describe un sistema que requiere una cantidad de esfuerzo no insignificante pero factible para disuadir usos frívolos o maliciosos de la potencia informática, como enviar correos electrónicos no deseados o lanzar ataques de denegación de servicio. El concepto fue posteriormente adaptado para asegurar dinero digital por Hal Finney en 2004 a través de la idea de «prueba de trabajo reutilizable» usando el algoritmo hash SHA-256.
Tras su introducción en 2009, Bitcoin se convirtió en la primera aplicación ampliamente adoptada de la idea de PoW de Finney (Finney también fue el destinatario de la primera transacción de bitcoin). La prueba de trabajo también forma la base de muchas otras criptomonedas, lo que permite un consenso seguro y descentralizado.
Conclusiones clave
- La prueba de trabajo (PoW) es un mecanismo de consenso descentralizado que requiere que los miembros de una red dediquen esfuerzos a resolver un rompecabezas matemático arbitrario para evitar que nadie juegue con el sistema.
- La prueba de trabajo se usa ampliamente en la minería de criptomonedas, para validar transacciones y extraer nuevos tokens.
- Debido a la prueba de trabajo, Bitcoin y otras transacciones de criptomonedas se pueden procesar de igual a igual de manera segura sin la necesidad de un tercero de confianza.
- La prueba de trabajo a escala requiere grandes cantidades de energía, que solo aumenta a medida que más mineros se unen a la red.
- Proof of Stake (POS) fue uno de varios mecanismos de consenso novedosos creados como alternativa a la prueba de trabajo.
Comprensión de la prueba de trabajo
Esta explicación se centrará en la prueba de trabajo, ya que funciona en la red bitcoin. Bitcoin es una moneda digital respaldada por una especie de libro mayor distribuido conocido como » blockchain «. Este libro mayor contiene un registro de todas las transacciones de bitcoins, organizadas en «bloques» secuenciales, de modo que ningún usuario pueda gastar ninguna de sus existencias dos veces. Para evitar alteraciones, el libro mayor es público o «distribuido»; otros usuarios rechazarían rápidamente una versión modificada.
La forma en que los usuarios detectan la manipulación en la práctica es a través de hash, largas cadenas de números que sirven como prueba de trabajo. Ponga un conjunto de datos dado a través de una función hash (bitcoin usa SHA-256), y solo generará un hash. Sin embargo, debido al «efecto de avalancha», incluso un pequeño cambio en cualquier parte de los datos originales resultará en un hash totalmente irreconocible. Cualquiera que sea el tamaño del conjunto de datos original, el hash generado por una función determinada tendrá la misma longitud. El hash es una función unidireccional: no se puede usar para obtener los datos originales, solo para verificar que los datos que generaron el hash coincidan con los datos originales.
Generar cualquier hash para un conjunto de transacciones bitcoin sería trivial para una computadora moderna, por lo que para convertir el proceso en «trabajo», la red bitcoin establece un cierto nivel de «dificultad». Esta configuración se ajusta para que se » extraiga » un nuevo bloque, que se agrega a la cadena de bloques mediante la generación de un hash válido, aproximadamente cada 10 minutos. El ajuste de la dificultad se logra estableciendo un «objetivo» para el hash : cuanto menor sea el objetivo, menor será el conjunto de hashes válidos y más difícil será generar uno. En la práctica, esto significa un hash que comienza con una cadena muy larga de ceros.
La prueba de trabajo se creó inicialmente como una solución propuesta al creciente problema del correo electrónico no deseado.
Consideraciones Especiales
Dado que un determinado conjunto de datos solo puede generar un hash, ¿cómo se aseguran los mineros de generar un hash por debajo del objetivo? Alteran la entrada agregando un número entero, llamado nonce («número usado una vez»). Una vez que se encuentra un hash válido, se transmite a la red y el bloque se agrega a la cadena de bloques.
La minería es un proceso competitivo, pero es más una lotería que una carrera. En promedio, alguien generará una prueba aceptable de trabajo cada diez minutos, pero quién será es una incógnita. Los mineros se agrupan para aumentar sus posibilidades de minar bloques, lo que genera tarifas de transacción y, durante un tiempo limitado, una recompensa de bitcoins recién creados.
La prueba de trabajo hace que sea extremadamente difícil alterar cualquier aspecto de la cadena de bloques, ya que tal alteración requeriría volver a extraer todos los bloques posteriores. También dificulta que un usuario o grupo de usuarios monopolice la potencia informática de la red, ya que la maquinaria y la potencia necesarias para completar las funciones hash son caras.
Si parte de una red minera comienza a aceptar una prueba de trabajo alternativa, se conoce como hard fork.
Ejemplo de prueba de trabajo
La prueba de trabajo requiere que una computadora participe aleatoriamente en funciones hash hasta que llegue a una salida con la cantidad mínima correcta de ceros iniciales. Por ejemplo, el hash para el bloque # 429818, extraído el 14 de septiembre de 2016, por ejemplo, es 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. La recompensa en bloque por ese hash exitoso fue de 12,5 BTC.
Ese bloque siempre contendrá 2,012 transacciones que involucren un poco más de 1,000 bitcoins, así como el encabezado del bloque anterior. Si alguien intentara cambiar el monto de una transacción incluso en 0.000001 bitcoins, el hash resultante sería irreconocible y la red rechazaría el intento de fraude.
Preguntas frecuentes sobre la prueba de trabajo
¿Qué significa prueba de trabajo?
PoW requiere que los nodos en una red proporcionen evidencia de que han gastado poder computacional (es decir, trabajo) para lograr un consenso de manera descentralizada y evitar que los malos actores se apoderen de la red.
¿Cómo valida la prueba de trabajo una transacción criptográfica?
El trabajo en sí es arbitrario. Para Bitcoin, implica iteraciones de algoritmos hash SHA-256. El «ganador» de una ronda de hash, sin embargo, agrega y registra las transacciones del mempool en el siguiente bloque. Debido a que el «ganador» se elige al azar en proporción al trabajo realizado, incentiva a todos en la red a actuar con honestidad y registrar solo transacciones verdaderas.
¿Por qué las criptomonedas necesitan prueba de trabajo?
Debido a que están descentralizados y de igual a igual por diseño, las cadenas de bloques como las redes de criptomonedas requieren alguna forma de lograr consenso y seguridad. La prueba de trabajo es uno de esos métodos que hace que sea demasiado intensivo en recursos intentar superar la red. También existen otros mecanismos de prueba que consumen menos recursos, pero que tienen otros inconvenientes o defectos, como la prueba de participación (PoS) y la prueba de quemado. Sin un mecanismo de prueba, la red y los datos almacenados en ella serían vulnerables a ataques o robos.
¿Bitcoin usa prueba de trabajo?
Si. Utiliza un algoritmo PoW basado en la función hash SHA-256 para validar y confirmar transacciones, así como para emitir nuevos bitcoins en circulación.
¿En qué se diferencia la prueba de participación (PoS) del PoW?
PoS es un mecanismo de consenso que asigna aleatoriamente el nodo que extraerá o validará las transacciones en bloque de acuerdo con la cantidad de monedas que contiene ese nodo. Cuantos más tokens tenga una billetera, más poder minero se le otorgará. Si bien PoS consume muchos menos recursos, tiene varias otras fallas, incluida una mayor probabilidad de un ataque del 51% en altcoins más pequeñas e incentivos para acumular tokens y no usarlos.