Contenido
Proof of Work sería el primer algoritmo de consenso que aparecería y, a día de hoy, sigue siendo el predominante. Sería presentado por
Satoshi Nakamoto en el white paper de
Bitcoin de 2008, pero la tecnología en sí había sido concebida
muchos antes.
HashCash, de Adam Back, es un ejemplo temprano de algoritmo Proof of Work, en época previa a la aparición de las criptomonedas. Al requerir a los emisores ejecutar un mínimo de computación antes de enviar un correo electrónico, los receptores lograrían mitigar el spam. El coste de dicha computación sería prácticamente nulo para un emisor legítimo, pero se incrementaría rápidamente para alguien que mandara correos electrónicos en masa.
Un
doble gasto se produce cuando los mismos fondos se gastan más de una vez. El concepto se usa, casi en exclusiva, en el contexto del dinero digital –a fin de cuentas, a uno le resultaría muy complicado poder gastar dos veces el mismo dinero efectivo físico. Cuando pagas un café a día de hoy, le entregas dinero efectivo al cajero -quien, probablemente, lo guardará en una máquina registradora. No podrás dirigirte a la cafetería que hay al otro lado de la calle y pagar otro café con el mismo billete.
En los esquemas de dinero digital, cabe la posibilidad de que sí puedas hacerlo. Sin duda, alguna vez habrás duplicado un archivo de ordenador –sólo tienes que copiarlo y pegarlo. A continuación, podrás mandar ese mismo archivo por correo electrónico a diez, veinte o cincuenta personas.
Dado que el dinero digital es sólo información, es necesario impedir que la gente copie y gaste las mismas unidades en distintos lugares. De lo contrario, tu moneda se desplomará en poco tiempo.
Si has leído nuestra
guía sobre tecnología blockchain, sabrás que los usuarios transmiten transacciones a la red. Dichas transacciones, sin embargo, no son consideradas inmediatamente válidas. Eso sólo ocurre una vez son añadidas a la blockchain.
La blockchain es una gran base de datos que cada usuario puede consultar, para verificar si los fondos han sido gastados antes. Imagínatela de esta forma: tú y tres amigos tenéis una planilla. Cada vez que alguno de los cuatro quiere hacer una transferencia de las unidades que sea que estéis utilizando, se apunta Alice paga a Bob cinco unidades, Bob paga a Carol dos unidades, etc.
Existe otra complejidad añadida –cada vez que se realiza una transacción, se ha de mencionar la transacción de donde provienen los fondos. Por lo tanto, si Bob le paga a Carol dos unidades, la entrada tendrá en realidad este aspecto: Bob le paga a Carol dos unidades provenientes de esta transacción anterior con Alice.
De esta forma, tenemos una manera de rastrear las unidades. Si Bob intenta realizar otra transacción utilizando las mismas unidades que le acaba de enviar a Carol, todo el mundo se dará cuenta de manera inmediata. Y el grupo no permitirá que la transacción se añada al bloc de notas.
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 añadir 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 Proof of Work entra en juego. Garantiza que los usuarios no están gastando dinero que no tienen el derecho de gastar. Y utilizando una combinación de
teoría de juegos y criptografía, un algoritmo PoW permite a cualquiera actualizar la blockchain en base a las reglas del sistema.
Nuestro bloc de notas anterior es la blockchain. Pero en ella, no se añaden transacciones de una en una –en su lugar, las amontonamos en bloques. Las transacciones son anunciadas a la red, y a continuación, los usuarios que crean bloques las incluyen en un
candidate block (bloque candidato). Las transacciones sólo se considerarán válidas una vez que su bloque candidato se convierta en un bloque confirmado -lo que significa que ha sido añadido a la blockchain.
Agregar un bloque, sin embargo, no es barato. Proof of Work le exige al
minero (el usuario que crea el bloque) el gasto de una parte de sus recursos a cambio de ese privilegio. El recurso en cuestión es potencia computacional, utilizada para someter a
hash los datos del bloque hasta que se encuentra una solución a un rompecabezas.
Someter a hash los datos del bloque significa pasarlos por una
función de hashing para generar un hash del bloque. El hash del bloque funciona como una “huella digital” –se trata de una identidad para tus datos de input, que es única de cada bloque.
Es prácticamente imposible revertir el hash de un bloque para obtener los datos de input. Si se conoce el input, sin embargo, resulta trivial confirmar que el hash sea correcto. Sólo se necesita pasar el input por la función y comprobar que el output sea 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 un juego de adivinanzas. Por lo general, tomas información sobre todas las transacciones que deseas agregar y algunos otros datos importantes, luego lo combinas todo. 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 que la salida. Estos datos variables son lo que llamamos un
nonce. Es un número que cambiará con cada intento, por lo que obtendrás un hash diferente cada vez. Y esto es lo que llamamos
minería.
En resumen, la minería es el proceso de recopilar datos de blockchain y mezclarlos 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 actuales, las condiciones son increíblemente difíciles de satisfacer. Cuanto mayor sea la
tasa de hash en la red, más difícil será 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 ser costoso con tu computadora. Estás desperdiciando ciclos computacionales y electricidad. Pero el protocolo lo
recompensará con criptomonedas si encuentras un hash válido.
Recapitulemos lo que sabemos hasta ahora:
- Es costoso para ti minar.
- Eres recompensado si produces un bloque válido.
- Al conocer una entrada, un usuario puede verificar fácilmente su hash: los usuarios que no son mineros pueden verificar que un bloque sea válido sin gastar mucha potencia computacional.
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 la criptografía de clave pública. No profundizaremos en este artículo, pero echa un vistazo a
¿Qué es la criptografía de clave pública? para una mirada completa. En resumen, utilizamos algunos trucos criptográficos que permiten a cualquier usuario verificar si alguien tiene derecho a mover los fondos que intenta gastar.
Cuando creas una transacción, la
firmas. Cualquier persona en la red puede comparar tu firma con tu
clave pública y verificar si coinciden. También verificarán si realmente puedes gastar tus fondos y que la suma de tus entradas es mayor que la suma de tus salidas (es decir, que no estás gastando más de lo que tiene).
Cualquier bloque que incluya una transacción no válida será rechazado automáticamente por la red. Incluso es costoso intentar hacer trampa. Perderás tus propios recursos sin ninguna recompensa.
Ahí radica la belleza de Proof of Work:
hace que sea costoso hacer trampa, pero que sea rentable actuar con honestidad. Cualquier minero racional buscará
ROI, por lo que se espera que se comporten de una manera que garantice ingresos.
¿Estás buscando comenzar con las criptomonedas? ¡Compra Bitcoin en Binance!
Hay muchos algoritmos de consenso, pero uno de los más esperados es
Proof of Stake (PoS). El concepto se remonta a 2011, y se ha implementado en algunos protocolos más pequeños. Pero aún no se ha visto la adopción en ninguna de las grandes blockchains.
En los sistemas Proof of Stake, los mineros son reemplazados por validadores. No hay minería involucrada ni carreras para adivinar hashes. En cambio, los usuarios se seleccionan al azar: si son seleccionados, 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 cualquier usuario: el protocolo los elige en función de una serie de factores. Para ser elegible, 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 aportan una gran suma de dinero para desincentivarlos de saltarse el juicio, los validadores bloquean un stake para desincentivar las trampas. Si actúan deshonestamente, se tomará su stake (o una parte de ella).
Proof of Stake tiene algunos beneficios sobre Proof of Work. La más notable es la menor huella de carbono, ya que no hay necesidad de
granjas mineras de alta potencia en PoS, la electricidad consumida es sólo una fracción de la que se consume en PoW.
Dicho esto, no tiene cerca el historial de PoW. Aunque podría percibirse como un desperdicio, la minería es el único algoritmo de consenso que ha demostrado su eficacia a escala. En poco más de una década, ha asegurado billones de dólares en transacciones. Para decir con certeza si PoS puede rivalizar con su seguridad, el replanteo debe probarse adecuadamente en la naturaleza.
Proof of Work fue la solución original al problema del
doble gasto y ha demostrado ser confiable y segura.
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.