Bitcoin es Tiempo

https://dergigi.com/2021/01/14/bitcoin-is-time/ Por Drgigi
Esta publicación está licenciada bajo la licencia CC BY-SA 4.0.
https://creativecommons.org/licenses/by-sa/4.0/

imagen
“Un reloj luminoso contra el cielo Proclamaba que la hora no estaba ni mal ni bien.”

Robert Frost, Conociendo la noche (1928)

“El tiempo sigue siendo un gran misterio para nosotros. No es más que un concepto; ni siquiera sabemos si existe...”

Clifford D. Simak, El planeta de Shakespeare (1976)

El tiempo es dinero, o eso dice el refrán. De ello se deduce que el dinero también es tiempo: una representación de la energía económica colectiva almacenada por la humanidad. Sin embargo, el vínculo entre tiempo y dinero es más intrincado de lo que podría parecer a primera vista. Si el dinero no requiere tiempo para crearse, no funciona muy bien como dinero, o no por mucho tiempo. Más profundamente, como veremos, llevar la cuenta de las cosas en el ámbito de la información siempre implica llevar la cuenta del tiempo.

Tan pronto como el dinero se convierte en digital, tenemos que ponernos de acuerdo en una definición del tiempo y aquí radica todo el problema. Se podría pensar que dar la hora es tan fácil como echar un vistazo a cualquier reloj cercano y se estaría en lo cierto cuando se trata de tareas cotidianas. Pero cuando se trata de sincronizar el estado de una red global, controvertida y distribuida, saber la hora se convierte en un problema casi insoluble. ¿Cómo saber la hora si no se puede confiar en los relojes? ¿Cómo crear el concepto de un tiempo singular si el sistema se extiende por toda la galaxia? ¿Cómo medir el tiempo en un reino atemporal? ¿Y qué es el tiempo?

Para responder a estas preguntas, tendremos que echar un vistazo más de cerca al concepto de tiempo en sí mismo y cómo Bitcoin crea su propio tiempo: el tiempo del bloque, más comúnmente conocido como la altura del bloque. Exploraremos por qué el problema del mantenimiento del tiempo está íntimamente relacionado con el mantenimiento de los registros, por qué no hay tiempo absoluto en un sistema descentralizado y cómo Bitcoin utiliza la causalidad y la imprevisibilidad para construir su propio sentido del ahora.

Los dispositivos de cronometraje han transformado civilizaciones en más de una ocasión. Como señaló Lewis Mumford en 1934: "El reloj, y no la máquina de vapor, es la pieza clave de la era industrial moderna". Hoy en día, es de nuevo un dispositivo de cronometraje el que está transformando nuestra civilización: un reloj, y no los ordenadores, es la verdadera pieza clave de la era moderna de la información. Y este reloj es Bitcoin.

Llevar la cuenta de las cosas

Dejemos que el niño aprenda a contar cosas, adquiriendo así la noción de número. A efectos de contar, estas cosas se consideran iguales y pueden ser objetos individuales o grupos.

David Eugene Smith, La enseñanza de las matemáticas elementales (1900)

En términos muy generales, hay dos formas de llevar la cuenta de las cosas: los objetos físicos y los libros contables. Puedes utilizar directamente objetos del mundo real, por ejemplo, darle a alguien una concha de mar, una moneda o cualquier otra cosa tangible, o puedes reproducir el estado del mundo escribiendo lo sucedido en un trozo de papel.

Imagine que es pastor y quiere asegurarse de que todo su rebaño ha vuelto a casa. Puede poner un collar a cada oveja y en cuanto una oveja vuelva a casa sólo tiene que quitarle el collar y colgarlo en su cobertizo. Si tiene una percha para cada collar, sabrá que cada oveja ha vuelto sana y salva en cuanto se llenen todas las perchas. Por supuesto, también puede contarlas y llevar una lista. Sin embargo, tendrás que asegurarte de crear una lista nueva cada vez que empieces a contar y también tendrás que asegurarte de no contar una sola oveja dos veces (o ninguna).

El dinero es esencialmente una herramienta para llevar la cuenta de quién debe qué a quién. A grandes rasgos, todo lo que hemos utilizado como dinero hasta ahora pertenece a dos categorías: objetos físicos y listas de datos. O, para utilizar un lenguaje más común: tokens (monedas, piedras, conchas) y ledgers (libros de contabilidad).

Es importante darse cuenta de la diferencia inherente de estas categorías, así que permítanme señalarlo explícitamente: El primer método, un token, representa directamente el estado de las cosas. El segundo, un ledger, refleja indirectamente el estado de las cosas. Cada uno tiene sus ventajas e inconvenientes. Por ejemplo, los tokens son físicos y distribuidos; los ledgers son informativos y centralizados. Los tokens son intrínsecamente fiables; los ledger, no

En el ámbito digital, por mucho que los gurús del marketing intenten convencernos de lo contrario, sólo podemos utilizar libros de contabilidad. Es un ámbito informativo, no físico. Incluso si llamamos "token" a cierto tipo de información, no deja de ser un dato maleable, anotado en un disco duro o en cualquier otro soporte que pueda contener información, lo que lo convierte en un registro informativo.

La naturaleza contable de toda la información digital es la causa fundamental del problema del doble gasto. La información nunca representa directamente el estado del mundo. Además, el movimiento de la información implica su copia. La información existe en un lugar y para "moverla" hay que copiarla a otro lugar y borrarla en su origen. Este problema no existe en el reino físico. En el reino físico podemos mover cosas de A a B. El reino de la información no tiene esta propiedad. Si quieres "mover" información de la lista A a la lista B tienes que copiarla de A a B. No hay otra manera.

Otra forma de verlo es en términos de unicidad. Los tokens físicos son compuestos únicos de átomos cuyo ensamblaje no es fácilmente reproducible. La información pura no tiene esta propiedad. Si se puede leer la información también se puede copiar perfectamente. En la práctica, se deduce que los tokens físicos son únicos y los digitales no. Incluso diría que "token digital" es un término equivocado. Un token puede representar información secreta, pero nunca representará información única, singular e incopiable.

Esta diferencia de propiedades demuestra que realmente no hay forma de "traspasar" información. Es imposible traspasar un token digital como se traspasaría uno físico ya que nunca se puede estar seguro de si el propietario original destruyó la información por su parte. Los tokens físicos, como toda la información, sólo pueden difundirse, como una idea.

“... si tú tienes una manzana y yo tengo una manzana, e intercambiamos manzanas, cada uno acaba con una sola manzana. Pero si usted y yo tenemos una idea e intercambiamos ideas, cada uno acabará con dos ideas.”

Charles F. Brannan (1949)

Los tokens físicos, lo que llamamos activos físicos al portador o "efectivo", están libres de este dilema. En el mundo real, si me das una moneda, la moneda desaparece. No hay duplicación mágica de la moneda y la única forma de dármela es entregármela físicamente. Las leyes de la física no permiten el doble gasto.

Aunque el doble gasto existe en el ámbito no digital, me viene a la mente George Parker, un estafador que hizo famoso el doble gasto en el puente de Brooklyn y otros monumentos, requiere un engaño elaborado y compradores crédulos. No ocurre lo mismo en el ámbito digital.

En el ámbito digital, al tratarse siempre de información, el doble gasto es un problema inherente. Como saben todos los que alguna vez han copiado un archivo o han utilizado el copiar y pegar, la información es algo que se puede copiar perfectamente y no está ligada al soporte que la aloja. Si tienes una fotografía digital, por ejemplo, puedes copiarla un millón de veces, almacenar algunas copias en una memoria USB y enviarla a miles de personas diferentes. Las copias perfectas son posibles porque la información permite una corrección de errores impecable, lo que elimina la degradación. Y para colmo, la duplicación prácticamente no tiene coste y no hay forma de saber cuál era el original.

Una vez más: cuando se trata de información, copiar es todo lo que hay. Simplemente no hay forma de mover información digital de A a B. La información siempre se copia de A a B, y si el proceso de copia ha tenido éxito, la copia original de A se borra. Por eso el problema del doble gasto es tan peliagudo. En ausencia de una autoridad central, no hay forma de mover nada de A a B de forma fiable. Siempre hay que confiar en que se borre el original. Un efecto secundario natural es que, cuando se trata de información digital, es imposible saber cuántas copias existen y dónde pueden estar

Por eso, utilizar "tokens" digitales como dinero no puede funcionar y nunca lo hará. Dado que los tokens derivan su fiabilidad de ser difíciles de reproducir como resultado de su construcción física única, esta ventaja desaparece en el reino digital. En el ámbito digital, no se puede confiar en los tokens. Como resultado de la naturaleza de las propiedades intrínsecas de la información, el único formato viable para el dinero digital no es un token, sino un ledger, lo que nos lleva al problema del tiempo.

Los Tokens Son Eternos, Los Ledgers No

“Porque las cosas que se ven son temporales, pero las que no se ven son eternas.”

Pablo de Tarso, Corintios 4:18b

Cuando se trata de tokens físicos, el momento de la transacción no importa. O tienes las monedas en el bolsillo, o no las tienes; o puedes gastarlas, o no puedes. El simple hecho de poseerlas es el único requisito para gastarlas. Las leyes de la naturaleza se encargan del resto. En este sentido, los tokens físicos son fiables e intemporales.

Cuando se trata de libros de contabilidad, la posesión física se queda en el camino. Quien controla el libro de contabilidad debe asegurarse de que todo está en orden. Lo que de otro modo viene dado por las leyes físicas, a saber, que no se puede gastar dinero que no se tiene y que no se puede gastar dinero que ya se ha gastado anteriormente, tiene que ser aplicado por reglas creadas por el hombre. Son estas reglas las que rigen el funcionamiento ordenado y el mantenimiento de un libro de contabilidad, no las leyes físicas.

Pasar de las leyes físicas a las reglas artificiales es el quid de la cuestión. Las leyes creadas por el hombre pueden doblarse y romperse, las leyes físicas no tanto. Por ejemplo, no se puede "inventar" una moneda de oro. Hay que sacarla de la tierra. Sin embargo, sí se puede inventar una moneda de oro en papel. Para ello, basta con añadir un asiento al libro de contabilidad y regalarse un par de monedas. O, en el caso de los bancos centrales, basta con añadir un par de billones pulsando un par de teclas. (Los financieros elegantes llaman a esto "Rehipotecación", "Banca de Reserva Fraccionaria" o "Flexibilización Cuantitativa", pero no se deje engañar, todo es lo mismo: inventar dinero).

Para mantener la honradez de los libros de contabilidad y de quienes los manipulan, se requieren auditorías periódicas e independientes. La capacidad de dar cuenta de cada una de las entradas de un libro mayor no es un lujo. Los auditores deben ser capaces de revisar los libros hacia atrás en el tiempo para mantener la honradez y el funcionamiento de los libros contables. Sin marcas de tiempo fiables es imposible verificar la coherencia interna de un libro de contabilidad. Es esencial un mecanismo que establezca un orden inequívoco.

Sin un sentido absoluto del tiempo, no hay forma de tener un orden definido de las transacciones. Y sin un orden definido de las transacciones, no se pueden seguir las reglas de un libro mayor. ¿De qué otra forma puedes asegurarte de cuánto dinero tienes en realidad? ¿De qué otra forma puedes asegurarte de que las cosas están en orden?

La distinción entre tokens y libros de contabilidad pone de manifiesto la necesidad de controlar el tiempo. En el reino físico, las monedas son artefactos atemporales que pueden intercambiarse sin supervisión. En el ámbito digital, el sellado de monedas requiere un sellado de tiempo.

Registro de Monedas Centralizado

“El tiempo: un gran grabador, o borrador.”

Yahia Lababidi (n. 1973)

La forma habitual de resolver el problema del doble gasto, el problema de asegurarse de que una transferencia digital sólo se produce una vez, es disponer de una lista central de transacciones. Una vez que se tiene una lista central de transacciones, se dispone de un único libro de contabilidad que puede actuar como única fuente de verdad. Resolver el problema del doble gasto es tan fácil como revisar la lista y asegurarse de que todo cuadra correctamente. Así es como PayPal, Venmo, Alipay y todos los bancos del mundo, incluidos los bancos centrales, resuelven el problema del doble gasto: mediante una autoridad central.

“El problema, por supuesto, es que el beneficiario no puede verificar que uno de los propietarios no ha gastado dos veces la moneda. Una solución común es introducir una autoridad central de confianza, o casa de la moneda, que compruebe cada transacción para ver si hay doble gasto. [...] El problema de esta solución es que el destino de todo el sistema monetario depende de la empresa que gestiona la casa de la moneda, ya que todas las transacciones tienen que pasar por ella, como en un banco.”

Satoshi Nakamoto (2009)

Vale la pena señalar que Satoshi no consiguió que la información no fuera copiable. Cada parte de bitcoin, su código fuente, el libro de contabilidad, tu clave privada, se puede copiar. Todo ello puede duplicarse y manipularse. Sin embargo, Satoshi consiguió construir un sistema que hace que las copias que infringen las reglas sean completa y absolutamente inútiles. La red Bitcoin ejecuta una intrincada danza para decidir qué copias son útiles y cuáles no y es esta danza la que introduce la escasez en el reino digital. Y como en todo baile, se necesita una vara de medir temporal para dictar el ritmo

Incluso un libro de contabilidad centralizado sólo puede resolver el problema del doble gasto si dispone de una forma coherente de llevar la cuenta del tiempo. Siempre hay que saber quién dio cuánto a quién y, lo más importante: cuándo. En el ámbito de la información, no hay acuñación de monedas sin un registro de tiempo.

“Hay que destacar que la imposibilidad de asociar eventos con puntos en el tiempo en sistemas distribuidos fue el problema sin resolver que impidió que un libro de contabilidad descentralizado fuera posible hasta que Satoshi Nakamoto inventó una solución.”

Gregory Trubetskoy (2018)

Tiempo Descentralizado

“El tiempo hace que todas las cosas pasen.”

Esquilo (525 a.C.-456 a.C.)

El tiempo y el orden tienen una relación muy íntima. Como señaló Leslie Lamport en su artículo de 1978 Time, Relojes y Ordenación de Eventos en un Sistema Distribuido: "El concepto de tiempo es fundamental para nuestra forma de pensar. Se deriva del concepto más básico del orden en que ocurren los acontecimientos". En ausencia de un punto central de coordinación, las nociones aparentemente intuitivas de "antes", "después" y "simultáneamente" se vienen abajo. En palabras de Lamport "el concepto de 'ocurrir antes' define una ordenación parcial invariable de los acontecimientos en un sistema de multiprocesos distribuido".

Dicho de otro modo: ¿Quién debería estar a cargo del tiempo si no está permitido poner a alguien a cargo? ¿Cómo se puede tener un reloj fiable si no hay un marco de referencia central?

Se podría pensar que resolver este problema es fácil porque todo el mundo podría utilizar su propio reloj. Esto sólo funciona si el reloj de cada uno es preciso y, lo que es más importante, si todos juegan limpio. En un sistema adversario, confiar en los relojes individuales sería un desastre. Y, debido a la relatividad, no funciona de forma coherente en todo el espacio.

Como experimento mental, imagina cómo podrías engañar al sistema si cada uno se encargara de llevar la hora por sí mismo. Podrías fingir que la transacción que estás enviando ahora es en realidad de ayer, simplemente se retrasó por alguna razón, con lo que seguirías teniendo todo el dinero que has gastado hoy. Debido a la comunicación asíncrona inherente a todo sistema descentralizado, este escenario es más que un experimento teórico. En efecto, los mensajes se retrasan, las marcas de tiempo son inexactas y, gracias a los efectos relativistas y al límite de velocidad natural de nuestro universo, es cualquier cosa menos fácil distinguir el orden de las cosas en ausencia de una autoridad u observador central.

“¿Quién está ahí? Toc toc.”

Una broma asíncrona.

Para ilustrar mejor la imposibilidad del problema, veamos un ejemplo concreto. Imagina que tú y tu socio comercial tenéis acceso a la cuenta bancaria de vuestra empresa. Vuestros negocios se desarrollan en todo el mundo, por lo que vuestra cuenta bancaria está en Suiza, tú en Nueva York y tu socio en Sydney. Para ti, es 3 de enero, y estás disfrutando de una bonita tarde de domingo en tu hotel. Para él, ya es lunes por la mañana, así que decide comprar el desayuno utilizando la tarjeta de débito de su cuenta bancaria compartida. El coste es de 27 $. El saldo disponible es de 615 $. La hora local es las 8:21 am.

Al mismo tiempo, tú estás a punto de pagar tu estancia con otra tarjeta de débito vinculada a la misma cuenta bancaria. El coste es de 599 $. El saldo disponible es de 615 $. La hora local es 17:21.

Y ocurre que, exactamente en el mismo momento, ambos pasáis la tarjeta. ¿Qué ocurre? (Queridos físicos, disculpen que diga "en el mismo momento". Por ahora vamos a ignorar los efectos relativistas y el hecho de que en nuestro universo no existe el tiempo absoluto. También ignoraremos que el concepto de eventos sincrónicos no existe realmente. Bitcoin ya es bastante complicado).

El libro contable central de vuestro banco probablemente recibirá una transacción antes que la otra, así que uno de vosotros tendrá suerte, el otro no tanta. Si las transacciones llegaran al mismo tiempo, digamos en el mismo milisegundo, el banco tendría que decidir quién gasta el dinero.

Ahora bien, ¿qué pasaría si no hubiera banco? ¿Quién decide quién es el primero en pasar? ¿Y si no fuerais sólo vosotros dos, sino cientos o incluso miles de personas coordinándose? ¿Y si no te fiaras de esas personas? ¿Y si algunas de esas personas intentaran hacer trampas, por ejemplo, retrasando sus relojes para que parezca que han gastado el dinero un par de minutos antes?

“Se necesita una herramienta relacionada con el tiempo para establecer un orden canónico y aplicar un historial único en ausencia de un coordinador central.”

Giacomo Zucco, Descubriendo Bitcoin (2019)

Este problema es precisamente la razón por la que todos los intentos anteriores de efectivo digital requerían un registro centralizado. Siempre había que confiar en alguien para identificar correctamente el orden de las cosas. Se requería una parte centralizada para mantener el tiempo.

Bitcoin resuelve este problema reinventando el tiempo. Dice no a los segundos y sí a los bloques.

Mantener el Tiempo, Bloque a Bloque

“La gloria del tiempo es calmar a los reyes contendientes, desenmascarar la falsedad y sacar a la luz la verdad, estampar el sello del tiempo en las cosas antiguas, Despertar la mañana y vigilar la noche, Agraviar al que se equivoca hasta que se corrige;”

William Shakespeare, La Violación de Lucrecia (1594)

Todos los relojes se basan en procesos periódicos, algo que podríamos llamar "tic-tac". El conocido tic-tac del reloj del abuelo es, en esencia, lo mismo que el zumbido molecular-atómico de nuestros modernos relojes de cuarzo y cesio. Algo oscila y nosotros nos limitamos a contar esas oscilaciones hasta que suman un minuto o un segundo.

En los grandes relojes de péndulo, estas oscilaciones son largas y fáciles de ver. Para los relojes más pequeños y especializados, se requiere un equipo especial. La frecuencia de un reloj depende de su uso.

La mayoría de los relojes tienen una frecuencia fija. Al fin y al cabo, queremos saber la hora con precisión. Sin embargo, hay relojes que tienen una frecuencia variable. Un metrónomo, por ejemplo, tiene una frecuencia variable que puedes ajustar antes de hacerlo sonar. Mientras que un metrónomo mantiene su ritmo constante una vez ajustado, el tiempo de Bitcoin varía en cada tick porque su mecanismo interno es probabilístico. El propósito, sin embargo, es el mismo: mantener viva la música, para que el baile pueda continuar.

* primer bloque (6 días)
** las marcas de tiempo entre bloques pueden mostrar un delta negativo

El hecho de que Bitcoin sea un reloj se esconde a plena vista. De hecho, Satoshi señala que la red Bitcoin en su conjunto actúa como un reloj, o en sus palabras: un servidor de marcas de tiempo distribuido.

“En esta publicación, proponemos una solución al problema del doble gasto utilizando un servidor de marcas de tiempo distribuido entre pares para generar pruebas computacionales del orden cronológico de las transacciones.”

Satoshi Nakamoto (2009)

Que el registro del tiempo era el principal problema a resolver es también evidente al examinar la referencia al final del whitepaper de Bitcoin. De las ocho referencias en total, tres se refieren al registro del tiempo:

Cómo registrar el sello de tiempo en un documento digital por S. Haber, W.S. Stornetta (1991)

Mejora de la eficacia y fiabilidad de los registros digitales de fecha y hora por D. Bayer, S. Haber, W.S. Stornetta (1992)

Diseño de un servicio seguro de registro de fecha y hora con requisitos mínimos de confianza por H. Massias, X.S. Avila y J.-J. Quisquater (mayo de 1999)

Como señalaron Haber y Stornetta en 1991, el registro de tiempo digital consiste en procedimientos computacionalmente prácticos que hacen inviable para un usuario, o para un adversario, en todo caso, la posibilidad de retroceder o adelantar la fecha de un documento digital. A diferencia de los documentos físicos, los documentos digitales son fáciles de manipular y el cambio no deja necesariamente señales reveladoras en el propio soporte físico. En el ámbito digital, las falsificaciones y manipulaciones pueden ser perfectas.

La naturaleza maleable de la información hace que el registro del tiempo de los documentos digitales sea un proceso elaborado y sofisticado. Las soluciones ingenuas no funcionan. Tomemos un documento de texto, por ejemplo. No puedes simplemente añadir la fecha al final del documento, ya que todo el mundo, incluido tú mismo, podría simplemente cambiar la fecha en el futuro. También podrías inventarte cualquier fecha.

El tiempo es una cadena causal

“En una visión extrema, el mundo puede verse sólo como conexiones, nada más.”

Tim Berners-Lee, Tejiendo la Web (1999)

Inventar fechas es un problema general, incluso en el ámbito no digital. Lo que en el mundo de los secuestros se conoce como "autenticación por periódico" es una solución general al problema de las marcas de tiempo arbitrarias.


Prueba de Tiempo

Funciona porque un periódico es difícil de falsificar y fácil de verificar. Es difícil de falsificar porque la portada de hoy hace referencia a acontecimientos de ayer, acontecimientos que el secuestrador no podría haber previsto si la foto tuviera semanas de antigüedad. Por representación de estos acontecimientos, la foto es la prueba de que el rehén seguía vivo el día en que salió el periódico.

Este método pone de relieve uno de los conceptos clave en lo que se refiere al tiempo: la causalidad. La flecha del tiempo describe la relación causal de los acontecimientos. Sin causalidad, no hay tiempo. La causalidad es también la razón por la que las funciones hash criptográficas son tan cruciales cuando se trata de registrar el tiempo de los documentos en el ciberespacio: introducen una relación causal. Dado que es prácticamente imposible crear un hash criptográfico válido sin tener el documento en primer lugar, se introduce una relación causal entre el documento y el hash: los datos en cuestión existieron primero, el hash se generó después. En otras palabras: sin la irreversibilidad computacional de las funciones unidireccionales, no habría causalidad en el ciberespacio.


A antes que B

Una vez establecida esta base causal, se pueden idear esquemas que creen una cadena de acontecimientos, vinculando causalmente A con B y con C y así sucesivamente. En este sentido, el registro del tiempo digital seguro nos traslada de un lugar atemporal en el éter al reino de la historia digital.

“La causalidad fija los acontecimientos en el tiempo. Si un acontecimiento fue determinado por ciertos acontecimientos anteriores y determina ciertos acontecimientos posteriores, entonces el acontecimiento queda encajado con seguridad en su lugar en la historia.”

Bayer, Haber, Stornetta (1992)

Ni que decir tiene que la causalidad es de suma importancia cuando se trata de cálculos económicos. Y puesto que un libro de contabilidad no es más que la plasmación de los cálculos económicos de múltiples participantes que cooperan, la causalidad es esencial para todo libro de contabilidad.

“Necesitamos un sistema para que los participantes se pongan de acuerdo sobre un único historial [...]. La solución que proponemos comienza con un servidor de marcas de tiempo.”

Satoshi Nakamoto (2009)

Es fascinante que todas las piezas del puzzle que hacen que Bitcoin funcione ya existieran. Ya en 1991, Haber y Stornetta introdujeron dos esquemas que hacen "difícil o imposible producir marcas de tiempo falsas". El primero depende de un tercero de confianza; el segundo, un esquema más elaborado de "confianza distribuida", no. Los autores identificaron incluso los problemas inherentes a la confianza en una cadena causal de acontecimientos y lo que se necesitaría para reescribir la historia. En sus palabras, "la única falsificación posible es preparar una cadena falsa de registros de tiempo, lo suficientemente larga como para agotar al retador más sospechoso que uno prevea". Un vector de ataque similar existe hoy en Bitcoin, en forma de ataque del 51% (más sobre esto en un capítulo posterior).

Un año más tarde, Bayer, Haber y Stornetta desarrollaron su trabajo anterior y propusieron utilizar árboles en lugar de simples listas enlazadas para unir los eventos. Lo que hoy conocemos como árboles de Merkle no son más que estructuras de datos eficientes para crear un hash a partir de múltiples hashes de forma determinista. Para el registro del tiempo, esto significa que se pueden agrupar eficientemente múltiples eventos en un "tick". En el mismo artículo, los autores proponen que el modelo de confianza distribuida introducido en 1991 podría mejorarse llevando a cabo un "torneo mundial" recurrente para determinar un único "ganador" que publique ampliamente el hash resultante en algún lugar público, como un periódico. ¿Le suena?

Como veremos, resulta que los periódicos también son una forma excelente de pensar en el segundo ingrediente del tiempo: la imprevisibilidad.

Causalidad e imprevisibilidad

“El tiempo no es una realidad [hipóstasis], sino un concepto [noema] o una medida [metron]...”

Antifón el Sofista, Sobre la Verdad (siglo III d.C.)

Aunque la causalidad es esencial, no es suficiente. También necesitamos imprevisibilidad para que el tiempo fluya. En el ámbito físico, observamos procesos naturales para describir el flujo del tiempo. Observamos un aumento general de la entropía y lo llamamos la flecha del tiempo. Aunque las leyes de la naturaleza parecen ser ajenas a la dirección de esta flecha en la mayoría de los casos, ciertas cosas no se pueden deshacer, prácticamente hablando. No se puede desromper un huevo como se suele decir.

Del mismo modo, se necesitan funciones que aumenten la entropía para establecer una flecha del tiempo en el ámbito digital. Al igual que es prácticamente imposible desromper un huevo, es prácticamente imposible desromper un hash SHA256 o una firma criptográfica.

Sin este aumento de la entropía, podríamos avanzar y retroceder en el tiempo a nuestro antojo. La secuencia de los números de Fibonacci, por ejemplo, es causal pero no entrópica. Cada número de la secuencia está causado por los dos números que le preceden. En este sentido, se trata de una cadena causal. Sin embargo, no sirve para saber la hora porque es totalmente predecible. Del mismo modo que un secuestrador no puede simplemente ponerse delante de un calendario que muestre la fecha actual, no podemos utilizar procesos predecibles como prueba de tiempo. Siempre tenemos que confiar en algo que no se puede predecir de antemano, como la portada del periódico de hoy

Bitcoin se basa en dos fuentes de imprevisibilidad: las transacciones y la prueba de trabajo. Al igual que nadie puede predecir cómo será el periódico de mañana, nadie puede predecir cómo será el próximo bloque de Bitcoin. No se puede predecir qué transacciones se van a incluir porque no se puede predecir qué transacciones se van a emitir en el futuro. Y, lo que es más importante, no se puede predecir quién encontrará la solución al enigma actual de la prueba de trabajo y cuál será esta solución.

Sin embargo, a diferencia del periódico del secuestrador, la prueba de trabajo está físicamente vinculada a lo que ocurrió directamente. No es sólo un registro de un acontecimiento, es el acontecimiento mismo. El carácter probabilístico directo de la prueba de trabajo elimina la confianza de la ecuación. La única forma de encontrar una prueba de trabajo válida es hacer muchas conjeturas, y hacer una sola conjetura lleva un poco de tiempo. La suma probabilística de estas conjeturas es lo que construye la Cadena de Tiempo que es Bitcoin.

Utilizando la causalidad de las cadenas de hash y la imprevisibilidad de las pruebas de trabajo, la red Bitcoin proporciona un mecanismo para establecer una historia indiscutible de los eventos presenciados. Sin causalidad, es imposible separar lo que vino antes y lo que vino después. Sin imprevisibilidad, la causalidad carece de sentido.

Lo que intuitivamente entiende todo secuestrador fue señalado explícitamente por Bayer, Haber y Stornetta en 1992: "Para establecer que un documento fue creado después de un momento dado en el tiempo, es necesario informar de eventos que no podrían haber sido predichos antes de que ocurrieran."


Prueba de Publicación

Es la combinación de causalidad e imprevisibilidad lo que permite la creación de un "ahora" artificial en el ámbito digital, que de otro modo sería atemporal. Como señalan Bayer, Haber y Stornetta en su artículo de 1991: "la secuencia de clientes que solicitan marcas de tiempo y los hashes que envían no pueden conocerse de antemano. Por tanto, si incluimos bits de la secuencia anterior de solicitudes de clientes en el certificado firmado, sabremos que la marca de tiempo se produjo después de estas solicitudes. [...] Pero el requisito de incluir bits de documentos anteriores en el certificado también puede utilizarse para resolver el problema de la limitación temporal en el otro sentido, porque la empresa de registro de tiempo no puede emitir certificados posteriores a menos que tenga la solicitud actual en la mano".

Todas las piezas del puzzle ya estaban ahí. Lo que Satoshi ha conseguido es unirlas de forma que la "empresa de registro de tiempo" desaparezca de la ecuación.

La Prueba de Tiempo

“Causa latet: vis est notissima. La causa está oculta, pero el resultado es conocido.”
Ovidio, Metamorfosis, IV. 287 (8 D.C.)

Recapitulemos: para utilizar dinero en el ámbito digital, tenemos que basarnos en libros de contabilidad. Para que los libros de contabilidad sean fiables es necesario un orden inequívoco. Para establecer el orden, se necesitan marcas de tiempo. Por lo tanto, si queremos tener dinero fiable en el reino digital, debemos eliminar cualquier entidad que cree y gestione marcas de tiempo y cualquier entidad que esté a cargo del tiempo en sí mismo.

Hizo falta un genio como Satoshi Nakamoto para darse cuenta de la solución: "Para implementar un servidor de marcas de tiempo distribuido de igual a igual, necesitaremos usar un sistema de Prueba de Trabajo similar al Hashcash de Adam Back".

Necesitamos utilizar un sistema de Prueba de Trabajo porque necesitamos algo que sea nativo del reino digital. Una vez que entiendes que el reino digital es informacional por naturaleza, la conclusión obvia es que la computación es todo lo que tenemos. Si tu mundo está hecho de datos, la manipulación de datos es todo lo que hay.

La Prueba de Trabajo funciona en un entorno de igual a igual porque no genera confianza y no genera confianza porque está desconectada de todas las entradas externas, como las lecturas de los relojes (o de los periódicos, para el caso). Se basa en una sola cosa: el cálculo requiere trabajo y, en nuestro universo, el trabajo requiere energía y tiempo.

Unir Tiempos
“Sé que a mí me funciona. Al cruzar el puente - el puente en llamas - Con las llamas detrás de nosotros Enfrentamos la línea. Somos tú y yo, nena, contra el mundo.”

Kate Bush, Puente en Llamas (1985)

Sin Prueba de Trabajo, siempre nos encontraríamos con el problema del Oráculo, porque el reino físico y el reino de la información están eternamente desconectados. Las marcas de tu lista de ovejas no son tus ovejas, el mapa no es el territorio y lo que se escribió en el periódico de ayer no es necesariamente lo que ocurrió en el mundo real. Del mismo modo, el hecho de que utilices un reloj del mundo real para anotar una marca de tiempo no significa que esa sea realmente la hora.

Dicho sin rodeos, simplemente no hay forma de confiar en que los datos representen la realidad, excepto si la realidad en cuestión es inherente a los propios datos. Lo brillante de la Prueba de Trabajo de Bitcoin es que crea su propia realidad, junto con su propio espacio y tiempo.

La prueba de trabajo proporciona una conexión directa entre el reino digital y el reino físico. Y lo que es más importante, es la única conexión que puede establecerse de forma fiable. Todo lo demás dependerá siempre de entradas externas.

La dificultad para minar un nuevo bloque de Bitcoin se ajusta para asegurar que el delgado hilo entre el tiempo de Bitcoin y nuestro tiempo permanezca intacto. Como un reloj, la dificultad de minado se reajusta cada 2016 ticks. El objetivo de este reajuste es mantener el tiempo medio entre ticks en diez minutos. Son estos diez minutos los que mantienen una conexión estable entre el reino físico y el informacional. En consecuencia, se requiere un sentido del tiempo humano para reajustar los ticks del reloj Bitcoin. Un reajuste puramente basado en bloques no funcionaría, ya que estaría completamente desconectado de nuestro mundo humano y todo el propósito del reajuste es evitar que nosotros, ingeniosos humanos, encontremos bloques demasiado rápido (o demasiado lento).

Como nos ha demostrado Einstein, el tiempo no es algo estático. No existe un tiempo universal en el que podamos confiar. El tiempo es relativo y la simultaneidad es inexistente. Este hecho por sí solo hace que todas las marcas de tiempo, especialmente a través de grandes distancias, sean inherentemente poco fiables, incluso sin actores adversarios. (Esta es la razón por la que las marcas de tiempo de los satélites GPS tienen que ajustarse constantemente, por cierto).

Para Bitcoin, el hecho de que nuestras marcas de tiempo humanas sean imprecisas no importa demasiado. Tampoco importa que no tengamos un marco de referencia absoluto. Sólo tienen que ser lo suficientemente precisas como para calcular una media fiable cada 2016 bloques. Para garantizarlo, sólo se acepta el registro de tiempo de un bloque si cumple dos criterios:

1. La marca de tiempo debe ser mayor que la mediana de las marcas de tiempo de los 11 bloques anteriores.
2. La marca de tiempo debe ser inferior a la hora ajustada a la red más dos horas. (La "hora ajustada a la red" es simplemente la mediana de las marcas de tiempo devueltas por todos los nodos conectados a usted).

En otras palabras, el ajuste de la dificultad consiste en mantener un tiempo constante, no un nivel constante de seguridad, dificultad o gasto de energía. Esto es ingenioso porque el dinero bueno tiene que ser costoso en tiempo, no en energía. Vincular el dinero a la energía no basta para producir escasez absoluta, ya que cada mejora en la generación de energía nos permitiría crear más dinero. El tiempo es lo único de lo que nunca podremos obtener más. Es el recurso definitivo como señala Julian Simon. Esto convierte a Bitcoin en la forma definitiva de dinero porque su emisión está directamente vinculada al recurso último de nuestro universo: el tiempo.

El ajuste de la dificultad es esencial porque, sin él, el reloj interno de Bitcoin tendería a ir cada vez más rápido a medida que más mineros se unieran a la red o mejorara la eficiencia de los dispositivos de minería. Rápidamente nos encontraríamos con el problema de coordinación que Bitcoin pretende resolver. Tan pronto como el tiempo de bloque caiga por debajo de un cierto umbral, digamos 50 milisegundos, sería imposible acordar un estado compartido, incluso en teoría. La luz tarda unos 66 milisegundos en viajar de un lado a otro de la Tierra. Por tanto, aunque nuestros ordenadores y routers fueran perfectos, volveríamos al punto de partida: dados dos sucesos, sería inútil decir qué suceso ocurrió antes y qué suceso ocurrió después. Sin un ajuste periódico de los ticks de Bitcoin, nos toparíamos con el desesperante problema de resolver el problema de coordinación más rápido que la velocidad de la luz. El tiempo también está en la raíz del problema de la inestabilidad criptográfica, que se esbozó en el Capítulo 1. La criptografía funciona gracias a una asimetría en el tiempo: se tarda poco en construir un muro criptográfico y mucho en derribarlo, a menos que se tenga una clave.

Así, en cierto sentido, la prueba de trabajo, y el ajuste de dificultad que la acompaña, ralentiza artificialmente el tiempo, al menos desde la perspectiva de la red Bitcoin. En otras palabras: Bitcoin impone un ritmo interno cuya baja frecuencia permite amortiguar ampliamente la latencia de las comunicaciones entre pares. Cada 2016 bloques, el reloj interno de Bitcoin se reajusta, de modo que -de media- sólo se encontrará un bloque válido cada 10 minutos.

Desde una perspectiva externa, Bitcoin canaliza el caótico desorden de los mensajes asíncronos difundidos globalmente hacia un universo paralelo, restringido por sus propias reglas y su propio sentido del espacio y el tiempo. Las transacciones en el mempool son atemporales desde el punto de vista de la red Bitcoin. Sólo cuando una transacción se incluye en un bloque válido se le asigna un tiempo: el número del bloque en el que se incluye.


BitCoin v0.01 ALFA (2009)

Es difícil exagerar la elegancia de esta solución. Una vez que eres capaz de crear tu propia definición del tiempo, descifrar lo que vino antes y lo que vino después es trivial. A su vez, ponerse de acuerdo sobre qué ocurrió, en qué orden y, en consecuencia, quién debe qué a quién, también se convierte en algo trivial

El ajuste de la dificultad asegura que el ritmo del metrónomo interno de Bitcoin sea constante. Es el director de la orquesta de Bitcoin. Es lo que mantiene viva la música.

¿Pero por qué podemos confiar en el trabajo en primer lugar? La respuesta es triple. Podemos confiar en él porque la computación requiere trabajo, el trabajo requiere tiempo y el trabajo en cuestión, adivinar números aleatorios, no puede hacerse eficientemente

Tiempo probabilístico

“El tiempo se bifurca perpetuamente hacia innumerables futuros.”

Jorge Luis Borges, El Jardín de los Senderos que se Bifurcan (1941)

Encontrar un nonce válido para un bloque de Bitcoin es un juego de adivinanzas. Es como tirar un dado, lanzar una moneda o girar una ruleta. En esencia, se trata de encontrar un número aleatorio más allá de lo astronómicamente grande. No se avanza hacia la solución. O te toca el gordo o no te toca.

Cada vez que tiras una moneda, la probabilidad de que salga cara o cruz es del 50%, aunque la hayas tirado veinte veces y siempre haya salido cara. Del mismo modo, cada vez que esperas a que llegue un bloque de bitcoin, la probabilidad de que salga en este segundo es de ~0,16%. No importa cuándo se encontró el último bloque. El tiempo de espera aproximado para el siguiente bloque es siempre el mismo: ~10 minutos.

De ello se deduce que cada tick individual de este reloj es impredecible. En comparación con nuestros relojes humanos, este reloj parece espontáneo e impreciso. Esto es irrelevante, como señala Gregory Trubetskoy: "No importa que este reloj sea impreciso. Lo que importa es que es el mismo reloj para todos y que el estado de la cadena puede vincularse inequívocamente a los tics de este reloj". El reloj de Bitcoin puede ser probabilístico, pero no ilusorio.

“El tiempo es una ilusión, la hora de comer, doblemente.”

Douglas Adams (1979)

El momento presente, sin embargo, puede ser absolutamente una ilusión en Bitcoin. Dado que no existe una autoridad central en la red, pueden surgir situaciones extrañas. Aunque poco probable, es posible que se encuentren dos bloques válidos al mismo tiempo (de nuevo: disculpas a todos los físicos), lo que hará que el reloj avance en dos lugares diferentes a la vez. Sin embargo, como es muy probable que los dos bloques difieran en su contenido, contendrán dos historias diferentes, ambas igualmente válidas.

Esto se conoce como división de la cadena y es un proceso natural del consenso Nakamoto. Al igual que una bandada de pájaros que se divide brevemente en dos para volver a unirse, los nodos de la red Bitcoin acabarán convergiendo en una historia compartida al cabo de un tiempo, gracias a la naturaleza probabilística de las conjeturas.

El consenso Nakamoto simplemente establece que la historia correcta se encuentra en la cadena más pesada, es decir, la cadena con la mayor cantidad de pruebas de trabajo incrustadas en ella. Así, si tenemos dos historias A y B, algunos mineros tratarán de construir sobre la historia A, otros tratarán de construir sobre la historia B. Tan pronto como uno de ellos encuentre el siguiente bloque válido, el otro grupo está programado para aceptar que estaban en el lado equivocado de la historia y cambiar a la cadena más pesada, la cadena que representa lo que realmente sucedió, por definición. En Bitcoin, la historia la escriben realmente los vencedores.

“El beneficiario necesita pruebas de que en el momento de cada transacción, la mayoría de los nodos estaban de acuerdo en que era la primera recibida. [...] Cuando hay múltiples versiones de doble gasto de la misma transacción, una y sólo una será válida. El receptor de un pago debe esperar una hora más o menos antes de creer que es válido. Para entonces, la red resolverá cualquier posible carrera de doble gasto.”

Satoshi Nakamoto (2009)

En esta sencilla afirmación reside el secreto del problema de la coordinación distribuida. Así es como Satoshi resolvió el problema del "pago simultáneo" con el que se encontraron anteriormente nuestros socios comerciales ficticios. Lo resolvió de una vez por todas, ¡al diablo con los efectos relativistas!

Debido a esta naturaleza probabilística del reloj de Bitcoin, el momento presente, lo que llamamos la cabeza de la cadena, es siempre incierto. El pasado, los bloques enterrados bajo la cabeza de la cadena, es cada vez más seguro.

“Cuanto más profunda sea la comprensión necesaria, más atrás en el tiempo hay que ir.”

Gordon Clark, Una Visión Cristiana de los Hombres y las Cosas, p. 58. (1951)

En consecuencia, el reloj de Bitcoin podría rebobinarse de vez en cuando, para algunos pares, por un tictac o dos. Si la cabeza de tu cadena, en el momento presente, pierde ante la cabeza de la cadena de un competidor, primero, tu reloj rebobinará y luego saltará hacia delante, anulando los últimos ticks que pensabas que ya eran historia. Si tu reloj es probabilístico, tu comprensión del pasado también tiene que serlo.

“Tic-tac, tic-tac, tic-tac, ¿qué hora es?
Tick tock tick tock... termina en c619.
¿Estás seguro de que está bien? ¿Es probable que lleguemos tarde?
Los absolutos no importan: antes de las nueve vienen las ocho.
El reloj no es exacto; a veces va al revés.
La hora exacta implica centro; ¡esa es la raíz de esta maldición!
Sin embargo, este reloj sigue haciendo tic-tac y tic-tac,
no hay beneficio en engañar; sólo tic-tac y el siguiente bloque.”
Una rima divertida sobre Bitcoin y el Tiempo (2020)

Conclusión

“El tiempo sigue siendo uno de los grandes misterios de la física, uno que cuestiona la definición misma de lo que es la física.”

Jorge Cham y Daniel Whiteson: No tenemos ni idea: Una Guia al Universo Desconocido, pp. 117 - 118 (2017)

Llevar la cuenta de las cosas en el ámbito informacional implica llevar la cuenta de una secuencia de acontecimientos, lo que a su vez requiere llevar la cuenta del tiempo. Llevar la cuenta del tiempo requiere acordar un "ahora", un momento en el tiempo que vincule eternamente el pasado establecido con el futuro incierto.

En Bitcoin, este "ahora" es la punta de la cadena de prueba de trabajo más pesada.

Dos bloques de construcción son esenciales para la estructura del tiempo: los vínculos causales y los eventos impredecibles. Los vínculos causales son necesarios para definir un pasado y los sucesos impredecibles son necesarios para construir un futuro. Si la secuencia de acontecimientos fuera predecible, sería posible saltar hacia adelante. Si los pasos individuales de la secuencia no estuvieran vinculados, sería trivial cambiar el pasado. Debido a su sentido interno del tiempo, es increíblemente difícil engañar a Bitcoin. Uno tendría que reescribir el pasado o predecir el futuro. La Cadena de Tiempo de Bitcoin impide ambas cosas.

Ver Bitcoin a través de la lente del tiempo debería dejar claro que la "cadena de bloques", la estructura de datos que vincula causalmente múltiples eventos, no es la principal innovación. Ni siquiera es una idea nueva, como resulta evidente al estudiar la literatura sobre marcas de tiempo del pasado

“Una cadena de bloques es una cadena de bloques.”

Peter Todd

Lo que sí es una idea nueva, lo que Satoshi descubrió, es cómo acordar de forma independiente un historial de eventos sin coordinación central. Encontró una forma de implementar un sistema descentralizado de registro de tiempo que (a) no requiere una empresa o servidor de registro de tiempo, (b) no requiere un periódico o cualquier otro medio físico como prueba y (c) puede mantener los ticks más o menos constantes, incluso cuando se opera en un entorno de tiempos de reloj de CPU cada vez más rápidos.

El cronometraje requiere causalidad, imprevisibilidad y coordinación. En Bitcoin, la causalidad la proporcionan las funciones unidireccionales: las funciones hash criptográficas y las firmas digitales que son el núcleo del protocolo. La imprevisibilidad viene dada tanto por el puzzle de Prueba de Trabajo como por la interacción con otros pares: no se puede saber de antemano qué están haciendo los demás y no se puede saber de antemano cuál será la solución al puzzle de prueba de trabajo. La coordinación es posible gracias al ajuste de dificultad, la salsa mágica que une el tiempo de Bitcoin con el nuestro. Sin este puente entre el reino físico y el informacional, sería imposible acordar un tiempo basándose únicamente en datos.

Bitcoin es tiempo en más de un sentido. Sus unidades son tiempo almacenado porque son dinero, y su red es tiempo porque es un reloj descentralizado. El incesante latido de este reloj es lo que da lugar a todas las propiedades mágicas de Bitcoin. Sin él, la intrincada danza de Bitcoin se vendría abajo. Pero con él, todo el mundo tiene acceso a algo verdaderamente maravilloso: Dinero Mágico de Internet.