Aspectos clave
Proof of Work (PoW) es un mecanismo de consenso creado para evitar el doble gasto en sistemas de pago digital.
PoW es una parte clave del proceso de minería, que implica agregar nuevos bloques de transacciones a la blockchain y crear nuevas unidades de criptomonedas.
Bitcoin y muchas otras criptomonedas utilizan PoW como método para proteger su red y datos de blockchain.
Introducción
Proof of Work (PoW) es un mecanismo creado para evitar el doble gasto en sistemas de pago digital. Bitcoin y muchas otras criptomonedas utilizan PoW como método para proteger su red y datos de blockchain. Estos mecanismos se suelen llamar algoritmos de consenso o mecanismos de consenso, porque involucran a múltiples partes que logran el consenso sin la necesidad de que haya confianza entre ellas.
Proof of Work fue el primer algoritmo de consenso en surgir y sigue siendo uno de los más importantes junto con Proof of Stake (PoS). PoW fue presentado por Satoshi Nakamoto en el whitepaper de Bitcoin de 2008, pero la tecnología en sí fue concebida mucho antes.
El HashCash de Adam Back es uno de los primeros ejemplos de algoritmo Proof of Work en la época previa a la aparición de las criptomonedas. Al requerir que los remitentes ejecutaran un mínimo de computación antes de enviar un correo electrónico, los destinatarios podían mitigar el spam. Este cálculo no le costaría prácticamente nada a un remitente legítimo, pero se acumularía rápidamente para alguien que mandara correos electrónicos en masa.
¿Qué es el doble gasto?
El doble gasto ocurre cuando los mismos fondos se gastan más de una vez. El término se usa casi exclusivamente en el contexto del dinero digital. Después de todo, te resultaría difícil gastar el mismo efectivo físico dos veces.
Cuando pagas por un café hoy, entregas dinero en efectivo a un cajero que probablemente lo guarde en la caja registradora. No puedes ir a la cafetería del otro lado de la calle y pagar otro café con los mismos billetes que ya entregaste. Sin embargo, en los sistemas de efectivo digital, existe la posibilidad de que puedas hacerlo.
Seguramente has duplicado un archivo de computadora usando los comandos de copiar y pegar. También es fácil enviar el mismo archivo por correo electrónico a docenas de personas. Dado que el dinero digital es solo datos, debes evitar que las personas hagan un doble gasto, es decir, copien y gasten las mismas unidades en diferentes lugares. Un sistema de pago digital que no logre evitar el doble gasto colapsará en poco tiempo.
Para obtener más información sobre el doble gasto, consulta Explicación del doble gasto.
¿Por qué el mecanismo Proof of Work es necesario?
Si leíste nuestro artículo sobre la tecnología blockchain, sabrás que los usuarios de criptomonedas transmiten constantemente transacciones a la red. Sin embargo, estas transacciones no se consideran válidas de inmediato. Esto solo sucede cuando se confirman y agregan a la blockchain.
La blockchain Bitcoin, por ejemplo, funciona como una base de datos de transacciones públicas (ledger) que todos los usuarios pueden ver. Piénsalo así: tres amigos y tú tienen un bloc de notas para rastrear tus transacciones de Bitcoin. Cada vez que uno de ustedes quiera hacer una transferencia de valor, la anotan:
Alice le paga a Bob 5 BTC; Bob le paga a Carol 2 BTC, etc.
Pero, cada vez que haces una transacción, te refieres a la transacción de donde vinieron los fondos. Entonces, si Bob le estaba pagando a Carol con 2 BTC, la entrada se vería así:
Bob le paga a Carol 2 BTC que provenían de esta transacción anterior con Alice.
Ahora tenemos una forma de rastrear las unidades de BTC. Si Bob intenta realizar otra transacción con los mismos 2 BTC que acaba de enviar a Carol, todos lo sabrán de inmediato. El grupo no permitirá que la transacción se agregue al bloc de notas porque esos 2 BTC ya se gastaron.
Esto es algo que puede funcionar bien en un grupo pequeño. Todo el mundo se conoce entre sí, por lo que probablemente se pondrán de acuerdo respecto a qué amigos deberían agregar transacciones al bloc de notas. ¿Pero qué ocurre si queremos tener un grupo con 10,000 participantes? La idea del bloc de notas no escala bien, porque nadie desea confiar en un extraño que se ocupe de gestionarlo.
Aquí es donde entra en juego el mecanismo Proof of Work. Garantiza que los usuarios no gasten dinero que no tienen derecho a gastar. Mediante el uso de una combinación de teoría de juegos y criptografía, un algoritmo PoW permite a cualquier persona actualizar la blockchain de acuerdo con las reglas del sistema.
¿Cómo funciona PoW?
Imagina que nuestro bloc de notas del ejemplo anterior es la blockchain, pero allí no agregamos transacciones una por una, sino que las agrupamos en bloques. Anunciamos las transacciones a la red y luego los usuarios que creen un bloque las incluirán en un bloque candidato. Las transacciones solo se considerarán válidas una vez que su bloque candidato se convierta en un bloque confirmado, lo que significa que se agregó a la base de datos de la blockchain.
El proceso de validar transacciones y agregar nuevos bloques se llama minería. Es costoso y difícil, pero también puede ser gratificante. La recompensa del bloque se compone de las comisiones de transacción de los usuarios y de los bitcoins nuevos creados por el protocolo.
El mecanismo Proof of Work requiere que un minero (el usuario que crea el bloque) invierta recursos como electricidad y potencia informática para hacer el hash de los datos de su bloque candidato hasta que se encuentre una solución a un acertijo.
Hacer el hash de los datos del bloque significa pasarlos a través de una función hash para generar un hash de bloque. El hash de bloque funciona como una "huella digital": es una identidad para tus datos input y es única para cada bloque.
En otras palabras, un minero tiene que verificar y recopilar transacciones pendientes, organizarlas en un bloque candidato y pasar los datos del bloque a través de una función hash para crear un hash válido. Si logra encontrar un hash válido para su bloque candidato, lo transmite a la red, agrega el bloque a la blockchain y recoge las recompensas de minería.
Cuando un minero transmite su bloque candidato y su hash a la red, otros participantes de la red repetirán el proceso de hash para verificar que el output sea realmente válido.
Aunque se necesitan innumerables intentos de hash para encontrar un hash válido, es fundamental que alguien confirme que el hash generado es correcto. Solo tienen que enviar el mismo input (datos de bloque) a través de la función hash y verificar si el output es el mismo.
En Proof of Work, debes proporcionar datos cuyo hash cumpla ciertas condiciones. Sin embargo, no sabes cómo lograrlo. La única opción que tienes es pasar tus datos por una función hash y comprobar si se cumplen las condiciones. Si no es así, deberás modificar tus datos ligeramente para obtener un hash distinto. Incluso cambiar un único carácter de tus datos producirá un resultado completamente diferente, por lo que no hay manera de predecir cómo será un output.
Como resultado, si quieres crear un bloque, estás jugando a un juego de adivinanzas. Por lo general, tomas información sobre todas las transacciones que deseas agregar y algunos otros datos importantes, y luego los agrupas. Pero como tu conjunto de datos no cambiará, debes agregar una información que sea variable. De lo contrario, siempre obtendrías el mismo hash como output. Estos datos variables son lo que llamamos un nonce. Es un número que cambiarás con cada intento, por lo que obtendrás un hash diferente cada vez.
En resumen, la minería es el proceso de recopilar datos de blockchain y aplicar el hash con un nonce hasta que encuentres un hash en particular. Si encuentras un hash que satisfaga las condiciones establecidas por el protocolo, tienes derecho a transmitir el nuevo bloque a la red. En este punto, los otros participantes de la red actualizan sus blockchains para incluir el nuevo bloque.
Para las principales criptomonedas de la actualidad, las condiciones son increíblemente desafiantes de cumplir. Cuanto más elevada sea la tasa de hash en la red, más difícil resultará encontrar un hash válido. Esto se hace para garantizar que los bloques no se encuentren demasiado rápido.
Como puedes imaginar, tratar de adivinar cantidades masivas de hashes puede resultar costoso para tu computadora: estás desperdiciando ciclos informáticos y electricidad. Sin embargo, si encuentras un hash válido, el protocolo te recompensará con criptomonedas.
Recapitulemos lo que sabemos hasta ahora:
La minería es difícil y costosa, pero proporciona seguridad a la red.
Los mineros que logran producir un bloque válido son recompensados con criptomonedas recién emitidas y comisiones de transacción.
Generar un hash válido lleva tiempo, pero otros usuarios pueden verificar fácilmente su validez repitiendo el proceso de hash.
Hasta aquí todo bien. Pero ¿y si tratas de hacer trampa? ¿Qué te impide poner un montón de transacciones fraudulentas en el bloque y producir un hash válido?
Ahí es donde entra en juego la criptografía de clave pública. No profundizaremos en esto en este artículo, pero consulta ¿Qué es la criptografía de clave pública? para obtener una visión integral del tema. En resumen, hay algunos trucos criptográficos que permiten a cualquier usuario verificar si alguien tiene derecho a mover los fondos que está intentando gastar.
Cuando creas una transacción, la firmas. Cualquier persona de la red puede comparar tu firma con tu clave pública y comprobar si coinciden. También verificarán si realmente puedes gastar tus fondos y si la suma de tus inputs es mayor que la suma de tus outputs (es decir, que no estés gastando más de lo que tienes).
Cualquier bloque que incluya una transacción no válida será rechazado automáticamente por la red. Incluso, intentar hacer trampa es costoso: perderás tus propios recursos sin obtener ninguna recompensa.
Ahí radica la belleza del mecanismo Proof of Work: hace que sea costoso engañar, pero rentable actuar con honestidad. Cualquier minero racional buscará un retorno de su inversión, por lo que se puede esperar que se comporte de una manera que tenga más probabilidades de generar ingresos.
Proof of Work (PoW) vs. Proof of Stake (PoS)
Aparte de PoW, existen muchos algoritmos de consenso, pero uno de los más populares es Proof of Stake (PoS). El concepto se remonta a 2011 y se ha implementado en Ethereum y varios otros protocolos.
En los sistemas Proof of Stake, los mineros son reemplazados por validadores. No hay minería involucrada ni una carrera para adivinar los hashes. En cambio, los usuarios son seleccionados al azar: si son elegidos, deben proponer (o "forjar") un bloque. Si el bloque es válido, recibirán una recompensa compuesta por las comisiones de las transacciones del bloque.
Sin embargo, no se puede seleccionar a cualquier usuario: el protocolo los elige en función de una serie de factores. Para ser elegibles, los participantes deben bloquear un stake, que es una cantidad predeterminada de la moneda nativa de la blockchain. El stake funciona como una fianza: así como los acusados pagan una gran suma de dinero para no tener que ir a juicio, los validadores bloquean un stake para desincentivar el engaño. Si actúan de manera deshonesta, se tomará su stake (o una parte de él).
El mecanismo Proof of Stake tiene algunas ventajas respecto a Proof of Work. La más notable es la menor huella de carbono: como en PoS no es necesario contar con granjas de minería de alta potencia, la electricidad consumida es solo una fracción de la consumida en PoW.
Dicho esto, PoS no tiene el mismo historial que PoW. Aunque podría percibirse como un desperdicio de recursos, la minería es el único algoritmo de consenso que ha sido probado en batalla durante más de una década. Desde su lanzamiento, el mecanismo PoW de Bitcoin ha asegurado transacciones valoradas en billones de dólares. Para decir con certeza si PoS puede rivalizar con la seguridad de PoW, el staking debe probarse adecuadamente a largo plazo.
Conclusiones
Proof of Work fue la solución original al problema del doble gasto y ha demostrado ser confiable y seguro. Bitcoin demostró que no necesitamos entidades centralizadas para evitar que los mismos fondos se gasten dos veces. Con el uso inteligente de la criptografía, las funciones hash y la teoría de juegos, los participantes en un entorno descentralizado pueden ponerse de acuerdo sobre el estado de una base de datos financiera.
Lecturas adicionales
Aviso legal y Advertencia de riesgo: Este contenido se presenta "tal cual" únicamente para fines de información general y educativos, sin declaración ni garantía de ningún tipo. No debe interpretarse como un asesoramiento financiero, legal o de otra índole profesional ni pretende recomendar la compra de ningún producto o servicio específicos. Debes buscar consejo particular de asesores profesionales idóneos. Dado que este artículo es producto de la contribución de terceros, ten en cuenta que las opiniones expresadas pertenecen al tercero colaborador y no reflejan necesariamente las de Binance Academy. Para obtener más información, lee nuestro aviso legal completo aquí. Los precios de los activos digitales pueden ser volátiles. El valor de una inversión puede bajar o subir, y podría darse el caso de que no recuperes el monto invertido. Solo tú eres responsable de tus decisiones de inversión. Binance Academy no se responsabiliza de ninguna pérdida en la que puedas incurrir. Este material no se debe interpretar como una asesoría financiera, legal o de otra índole profesional. Si deseas obtener más información, consulta nuestros Términos de uso y la Advertencia de riesgo.