El concepto de prueba de trabajo (I)

prueba-de-trabajo
Imagen por brickstuff

Original por Daniel Krawisz

Traducido al español por moraluniversal.com

La búsqueda

Tal vez el aspecto menos intuitivo de la red Bitcoin es el concepto de “prueba de trabajo”, usado para definir el requerimiento para generar un nuevo grupo de transacciones (un “bloque”) y añadirlo a la base de datos distribuida de transacciones (la “cadena de bloques” o blockchain). Este concepto, que surgió de las ideas del joven movimiento cypherpunk, es algo nuevo en teoría monetaria, y también parece algo fuera de lugar en ciencias informáticas. En este artículo mostraré cómo la biología nos brinda el marco más apropiado para su comprensión.

Cada bloque de la cadena de bloques lleva adjunta una serie corta de datos sin sentido, llamada nonce. Las computadoras “mineras” tienen que buscar la serie correcta de forma que el bloque completo satisfaga una cierta condición arbitraria. Específicamente, se requiere que el hash SHA-256 del bloque tenga un cierto número de ceros iniciales. Las hashes son funciones unidireccionales, así que no hay forma de saber el nonce correcto o de diseñar de cualquier modo el bloque correcto. La única forma de encontrar un buen nonce es intentarlo aleatoriamente hasta que uno funcione.

Recordemos que el proceso es totalmente arbitrario. Es simplemente una complicación añadida, como un ritual, que hace a los bloques más difíciles de generar. En realidad cualquier otra cosa valdría igual, con tal de que sea computacionalmente difícil. Otras criptomonedas usan otros algoritmos de hash. No se trata de ninguna condición especial de teoría de números que sólo un hombre como Shinichi Mochizuki pueda entender1.

Si bien el propósito de las computadoras mineras es llevar la contabilidad de la cadena de bloques, la mayor parte del trabajo que hacen es buscar nonces buenos, algo muy lejano a lo que entendemos por contabilidad. La energía usada para encontrar los nonces se pierde para siempre. No es cierto que esta energía “respalde” el valor de los bitcoins como el oro respalda un billete bancario honesto, como algunos creen. Del vasto poder que se emplea en la minería de bitcoins, todo menos una ínfima fracción carece aparentemente de propósito.

asicminer

Cuando una persona actualiza su equipo de minería, mina a un ritmo más rápido y, por lo tanto, gana más bitcoins. Sin embargo, cuando todo el mundo actualiza los equipos, la minería no se hace más eficiente en su conjunto. Según el protocolo sólo debe salir un bloque resuelto cada diez minutos, independientemente de cuánto trabajo haga la red. Así que la red actualiza la dificultad de forma que los futuros bloques requieran condiciones más estrictas. Es como si fuera un bosque en el que cada árbol trata de crecer más que los demás, con el resultado final de que la mayor parte de la energía se ha usado para producir puros troncos largos y sin vida.

¿Por qué atar cada bloque Bitcoin a una lecho de Procusto? La manera correcta de pensar acerca del concepto de prueba de trabajo es como un método para establecer un consenso entre un número de personas interesadas – ninguna de las cuales está subordinada a otra – cuando existen incentivos considerables para resistirse a dicho consenso. Bitcoin podría operar perfectamente sin prueba de trabajo, siempre que todos los participantes fueran perfectamente honestos y altruistas. Si no lo son, entonces llegar a un consenso es difícil.

Antes de que un bloque nuevo sea generado, puede que haya muchos pagos pululando por la red sin existir respuesta objetiva acerca de qué pagos deberían ser validados. Algunos podrían ser inválidos, así que todos deben ser comprobados. Algunos pueden no incluir una tasa de transacción, así que debe decidirse si dejar a estos gorrones pasar, o si ignorarlos. Finalmente, podría haber un conjunto de 2 o más pagos que no pueden ser válidos simultáneamente. Por ejemplo, si alguien intenta gastar los mismos bitcoins en dos transacciones que aún no han sido confirmadas, habría que tomar una decisión sobre qué pago permitir.

Bitcoin-Block-Chain

De este modo, para un conjunto de pagos dado, pueden existir muchos bloques posibles que pueden construirse con ellos, ninguno de los cuales es objetivamente el más correcto. Tampoco habrá necesariamente un acuerdo acerca de qué resultado es preferible, porque los distintos bloques posibles benefician a distintas personas. Primeramente, está el beneficio que surge de generar un bloque en forma de nuevos bitcoins. Esto es necesario porque, si no existiera, habría muy poco incentivo para hacer la contabilidad para empezar. Con esta recompensa, cada minero naturalmente prefiere que el nuevo bloque sea su propuesta, y no la de cualquier otro.

Hay otras complicaciones más sutiles incluso sin considerar el tema de la recompensa. Un minero podría negarse a validar las transacciones procedentes de su enemigo, o podría mostrarse más o menos altruista con las tarifas por transacción que aceptará. Podría incluso proponerse estafar a alguien mediante el doble gasto: él mandaría un pago a la víctima a cambio de un bien determinado, pero sólo confirmaría otro pago que hace a una cartera de su propiedad y que está en conflicto con el primero; esto invalidaría el primer pago, y acabaría quedándose con un bien por el que no ha pagado.

(Ver parte 2)

1

Un matemático de primera clase que Ted Nelson conjetura, por razones superficiales, pueda ser el creador de Bitcoin. Se le conoce tanto por la supuesta demostración de la conjetura abc/Oesterlé-Masser-Szpiro como por su negativa a anunciar su trabajo o explicárselo a nadie. La demostración tiene 500 páginas y es tan original que ningún matemático todavía la entiende por completo. Si resulta verdadera, sería algo mucho más grande que la demostración del último teorema de Fermat.

Sin embargo, no hay motivo para creer que el creador de Bitcoin sea un genio de las matemáticas. Bitcoin es un trabajo brillante de ingeniería, no una deducción lógica. Las matemáticas que se usaron para crearlo pueden encontrarse en un libro de introducción a la criptografía. Satoshi no inventó ninguna idea novedosa, sino que combinó ideas ya existentes en una forma extraordinariamente útil.

La reclusión de ambos personajes es también una semejanza superficial. Mochizuki es como el típico matemático excéntrico y asocial, sólo que más todavía. Nakamoto, por otro lado, ocultaba su identidad por buenas razones; y tampoco era asocial, pues estuvo muy activo en la comunidad Bitcoin hasta que sintió que esta ya no necesitaba su orientación.