Un reloj luminoso contra el cielo
Robert Frost, Familiarizados con la noche (1928)
Proclamaba que el tiempo no era malo ni bueno.”
El tiempo sigue siendo el 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 al principio. Si el dinero no requiere tiempo para crear, no funciona muy bien como dinero, o no por mucho tiempo. Más profundamente, como veremos, hacer un seguimiento de las cosas en el ámbito de la información siempre implica llevar la cuenta del tiempo.
Tan pronto como el dinero se vuelve digital, tenemos que acordar una definición de tiempo, y aquí radica todo el problema. Puede que piense que saber la hora es tan fácil como mirar cualquier reloj que esté cerca, y estaría en lo cierto cuando se trata de las tareas cotidianas. Pero cuando se trata de sincronizar el estado de una red distribuida, publicitaria y global, saber la hora se convierte en un problema casi irresoluble. ¿Cómo se puede saber la hora si no se puede confiar en los relojes? ¿Cómo se crea el concepto de un tiempo singular si el sistema abarca toda la galaxia? ¿Cómo se mide el tiempo en un reino atemporal? ¿Y qué es el tiempo de todos modos?
Para responder a estas preguntas, tendremos que analizar más de cerca el concepto de tiempo en sí mismo y cómo Bitcoin crea su propio tiempo: tiempo de bloque, más comúnmente conocido como altura de bloque. Exploraremos por qué el problema de la medición del tiempo está íntimamente relacionado con el mantenimiento de registros, por qué no hay un tiempo absoluto en un sistema descentralizado y cómo Bitcoin usa la causalidad y la imprevisibilidad para construir su propio sentido del ahora.
Los dispositivos de medición del tiempo han transformado las 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 máquina clave de la era industrial moderna”. Hoy en día, es nuevamente un dispositivo de cronometraje el que está transformando nuestra civilización: un reloj, no computadoras, es la verdadera máquina clave de la era moderna de la información. Y este reloj es Bitcoin.
Hacer un Seguimiento de las Cosas
Deje que el niño aprenda a contar cosas, adquiriendo así la noción de número. Estas cosas, con el propósito de contar, 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 realizar un seguimiento de las cosas: fichas físicas y libros de contabilidad. Se pueden usar directamente artefactos del mundo real, por ejemplo, darle a alguien una concha de mar, una moneda o alguna otra cosa tangible, o se puede replicar el estado del mundo escribiendo en una hoja de papel lo que sucedió.
Imagine ser un pastor que quiere asegurarse de que todo su rebaño regrese a casa. Puede poner un collar a cada oveja y, tan pronto como una oveja regrese a casa, simplemente quítele el collar y cuélguelo en su cobertizo. Si tiene una percha para cada collar, sabrá que todas las ovejas regresaron a salvo en cuanto se llenaron todas las perchas. Por supuesto, también puede contarlas y llevar una lista. Sin embargo, tendrá que asegurarse de crear una nueva lista cada vez que empiece a contar, y también tendrá que asegurarse de no contar una sola oveja dos veces (o ninguna).
El dinero es esencialmente una herramienta para realizar un seguimiento de quién debe qué a quién. En términos generales, todo lo que hemos usado como dinero hasta ahora se divide en dos categorías: artefactos físicos y listas de información. O, para usar un lenguaje más común: fichas (tokens) y 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, una ficha física, representa directamente el estado de las cosas. El segundo, un libro de contabilidad, refleja indirectamente el estado de las cosas. Cada uno tiene sus ventajas y desventajas. Por ejemplo, los tokens son físicos y se distribuyen; los libros de contabilidad son informativos y están centralizados. Los tokens son inherentemente poco fiables, mientras que los libros de contabilidad no lo son.
En el ámbito digital, no importa cuán intensamente los gurús del marketing intenten convencerlo de lo contrario, solo podemos usar libros de contabilidad. Es un reino informativo, no físico. Incluso si llama a cierto tipo de información “token”, sigue siendo una pieza de información maleable, escrita en un disco duro o en algún otro medio que pueda contener información, convirtiéndolo efectivamente en un registro informativo.
El carácter de libro mayor de contabilidad de toda la información digital es la causa principal del problema del doble gasto. La información nunca representa directamente el estado del mundo. Además, el movimiento de la información implica una 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 ámbito físico. En el ámbito físico, en realidad podemos mover cosas de A a B. El ámbito de la información no tiene esta propiedad. Si desea “mover” información de la lista A a la lista B, debe copiarla de A a B. No hay otra manera.
Otra forma de pensar en ello es en términos de singularidad. Los tokens físicos son compuestos únicos de átomos cuyo ensamblaje no se puede reproducir fácilmente. La información pura no tiene esta propiedad. Si puede leer la información, también puede copiarla perfectamente. Hablando en términos prácticos, se deduce que los tokens físicos son únicos y los tokens digitales no lo son. Incluso diría que “token digital” es un nombre inapropiado. Un token puede representar información secreta, pero nunca representará información única, singular e imposible de copiar.
Esta diferencia en las propiedades muestra que realmente no hay forma de “entregar” información. Es imposible transmitir un token digital como lo haría con uno físico, ya que nunca se puede estar seguro de que el propietario original haya destruido la información en su extremo. Los tokens digitales, como toda la información, solo se pueden difundir como una idea.
…si usted tiene una manzana y yo tengo una manzana, y las intercambiamos, cada uno termina con una sola manzana. Pero si tú y yo tenemos una idea y las intercambiamos, cada uno de nosotros acaba 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, tu moneda desaparece. No hay duplicación mágica de la moneda, y la única forma de dármela es entregándola físicamente. Las leyes de la física no le permiten gastarlo dos veces.
Si bien el doble gasto sí existe en el ámbito no digital -me viene a la mente George Parker, un estafador famoso por “gastar dos veces” en el puente de Brooklyn y en otros lugares emblemáticos- requiere un engaño elaborado a gran escala y compradores crédulos. No es así en el ámbito digital.
En el ámbito digital, debido a que siempre estamos tratando con información, el doble gasto es un problema inherente. Como saben todos los que alguna vez copiaron un archivo o usaron el método de copiar y pegar, la información es algo que puede copiar perfectamente y no está vinculada al medio que la aloja. Si tiene una fotografía digital, por ejemplo, puede 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 por si fuera poco, virtualmente no hay costo para la duplicación y no hay forma de saber cuál era el original.
Nuevamente: cuando se trata de información, copiar es todo lo que hay. Simplemente no hay forma de mover la información digital de A a B. La información siempre se copia de A a B, y si el proceso de copia fue exitoso, la copia original de A se elimina. Por eso el problema del doble gasto es tan complicado. En ausencia de una autoridad central, no hay forma de mover nada de A a B sin que haya confianza. Siempre hay que confiar en que se borrará 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 podrían estar esas copias.
Debido a esto, el uso de “tokens” digitales como dinero no puede funcionar y nunca funcionará. Dado que los tokens derivan su confiabilidad de ser difíciles de reproducir como resultado de su construcción física única, esta ventaja desaparece en el ámbito 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 una ficha, sino un libro de contabilidad, lo que nos lleva al problema del tiempo.
Los tokens son atemporales, los libros de contabilidad 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 fichas físicas, el momento de una transacción no importa. O tiene las monedas en el bolsillo o no; puede gastarlas o no. El simple hecho de poseerlas es el único requisito previo para gastarlas. Las leyes de la naturaleza se encargan del resto. En ese sentido, los tokens físicos no no son fiables y son atemporales.
Cuando se trata de libros de contabilidad, la posesión física queda en el camino. Quien tenga el control del libro mayor debe asegurarse de que todo esté en orden. Lo que de otra manera es dado por las leyes físicas, a saber, que no puede gastar dinero que no tiene y no puede gastar dinero que ya ha gastado anteriormente, tiene que ser aplicado por reglas creadas por el hombre. Son estas reglas las que gobiernan 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 creadas por el hombre es el quid de la cuestión. Las reglas creadas por el hombre pueden doblarse y romperse, las leyes físicas no tanto. Por ejemplo, no se puede simplemente “inventar” una moneda de oro física. Hay que sacarla de la tierra. Sin embargo, sí se puede inventar una moneda de oro en papel. Para ello, basta simplemente con agregar una entrada al libro de contabilidad y darse un par de monedas. O, en el caso de los bancos centrales, simplemente agregar un par de billones con unas pocas teclas de computadora. (La gente sofisticada de finanzas llama a esto “Rehipotecación”, “Banca de reserva fraccionada” o “Flexibilización cuantitativa”, pero no se deje engañar, es todo lo mismo: inventar dinero).
Para mantener la honestidad de los libros de contabilidad y de quienes los manipulan, se requieren auditorías periódicas e independientes. La capacidad de contabilizar cada una de las entradas en un libro mayor no es un lujo. Los auditores deben poder repasar los libros, hacia atrás en el tiempo, para mantener la honestidad 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 para establecer 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 transacciones, no se pueden seguir las reglas de un libro mayor. ¿De qué otra manera se puede asegurar la cantidad de dinero que se tiene realmente? ¿De qué otra manera se puede asegurar que las cosas están en orden?
La distinción entre tokens y libros de contabilidad destaca la necesidad de llevar un registro del tiempo. En el ámbito físico, las monedas son artefactos atemporales que se pueden intercambiar sin supervisión. En el ámbito digital, el sellado de monedas requiere un sellado de tiempo.
Sellado de Monedas Centralizado
El Tiempo: un gran grabador o borrador.”
Yahia Lababidi (n. 1973)
La forma común de resolver el problema del doble gasto, el problema de asegurarse de que una transferencia digital solo ocurra una vez, es tener una lista central de transacciones. Una vez que tenga una lista central de transacciones, tendrá un único libro de contabilidad que puede actuar como fuente única de la verdad. Resolver el problema del doble gasto es tan fácil como revisar la lista y asegurarse de que todo cuadre correctamente. Así es como PayPal, Venmo, Alipay y todos los bancos de este mundo, incluidos los bancos centrales, resuelven el problema del doble gasto: a través de la autoridad central.
El problema, por supuesto, es que el beneficiario no puede verificar que uno de los propietarios no haya gastado dos veces la misma moneda. Una solución común es introducir una autoridad central confiable, o una casa de moneda, que verifique cada transacción en busca de un doble gasto. […] El problema con 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 cada transacción tiene que pasar por ella, como si fuera un banco.
Satoshi Nakamoto (2009)
Vale la pena señalar que Satoshi no logró que la información no se pudiera copiar. Cada parte de bitcoin (su código fuente, el libro mayor, su clave privada) se puede copiar. Todo puede ser duplicado y manipulado. Sin embargo, Satoshi logró construir un sistema que hace que las copias que rompan las reglas sean completamente inútiles. La red de Bitcoin realiza una intrigante danza para decidir qué copias son útiles y cuáles no, y es esta danza la que trae escasez al ámbito digital. Y como con todo baile, se requiere una vara de medir temporal para dictar el ritmo.
Incluso un libro mayor centralizado solo puede resolver el problema del doble gasto si tiene una forma coherente de realizar un seguimiento del tiempo. Siempre necesitas saber quién dio a quién, cuánto, y lo que es más importante, cuándo. En el ámbito de la información, no hay sellado de monedas sin sellado de tiempo.
Debe enfatizarse 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 Trubet¬skoy (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, Clocks, and the Ordering of Events in a Distributed System: “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 eventos”. En ausencia de un punto central de coordinación, las nociones aparentemente intuitivas de “antes”, “después” y “simultáneamente” se rompen. En palabras de Lamport: “el concepto de ‘suceder antes’ define un orden parcial invariable de los eventos en un sistema multiproceso distribuido”.
Dicho de otro modo: ¿Quién debería estar a cargo del tiempo si no se permite poner a alguien a cargo? ¿Cómo se puede tener un reloj confiable si no hay un marco de referencia central?
Se podría pensar que resolver este problema es fácil porque cada uno puede usar su propio reloj. Esto solo funciona si el reloj de todos es preciso y, lo que es más importante, si todo el mundo se porta bien. En un sistema competitivo, confiar en los relojes individuales sería un desastre. Y, debido a la relatividad, no funciona de manera consistente en todo el espacio.
Como experimento mental, imagine cómo podría engañar al sistema si cada uno estuviera a cargo de controlar el tiempo para sí mismo. Podría fingir que la transacción que estás enviando ahora es en realidad de ayer, simplemente se ha retrasado por alguna razón, por lo que aún tendría todo el dinero que ha gastado. Debido a la comunicación asíncrona que es inherente a todo sistema descentralizado, este escenario es más que un experimento de pensamiento teórico. De hecho, 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 todo menos fácil distinguir el orden de las cosas sin una autoridad central u observador.
¿Quién está ahí? Toc Toc.”
Una broma asincrónica
Para ilustrar mejor la imposibilidad del problema, veamos un ejemplo concreto. Imagine que usted y su socio comercial tienen acceso a la cuenta bancaria de su empresa. Sus negocios se desarrollan en todo el mundo, por lo que su cuenta bancaria está en Suiza, usted está en Nueva York y su socio comercial está en Sydney. Para usted, es el 3 de enero y está disfrutando de una hermosa tarde de domingo en su hotel. Para ella, ya es lunes por la mañana, así que decide comprar el desayuno con la tarjeta de débito de su cuenta bancaria compartida. El costo es de $ 27. El saldo disponible es de $ 615. La hora local es 8:21 am.
Al mismo tiempo, está a punto de pagar su estancia con otra tarjeta de débito vinculada a la misma cuenta bancaria. El costo es de $ 599. El saldo disponible es de $ 615. La hora local es 5:21 pm. Y resulta que, exactamente en el mismo momento, ambos pasan la tarjeta. ¿Qué ocurre? (Estimados físicos, disculpen mi uso de “el mismo momento”; ignoraremos los efectos relativistas y el hecho de que no hay tiempo absoluto en nuestro universo por ahora. También ignoraremos que el concepto de eventos sincrónicos realmente no existe. ¡Bitcoin ya es lo suficientemente complicado como está!).
El libro mayor central de su banco probablemente recibirá una transacción antes que la otra, por lo que uno de ustedes tendrá suerte y el otro no tanto. Si las transacciones llegan en el mismo tick, digamos en el mismo milisegundo, el banco tendría que decidir quién gasta el dinero.
Ahora bien, ¿qué pasaría si no hubiera un banco? ¿Quién decide quién fue el primero en deslizar? ¿Qué pasaría si no fueran solo ustedes dos, sino cientos o incluso miles de personas coordinando? ¿Y si no confiaras en esas personas? ¿Qué pasa si algunas de esas personas están tratando de hacer trampa, por ejemplo, retrasando sus relojes para que parezca que gastaron el dinero un par de minutos antes?
Se necesita una herramienta relacionada con el tiempo para establecer un ordenamiento canónico y hacer cumplir una historia única 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 que identificara correctamente el orden de las cosas. Se requería una parte centralizada para mantener el tiempo.
Bitcoin resuelve este problema reinventando el tiempo en sí. Dice no a los segundos y sí a los bloques.
Mantener el tiempo, un bloque a la vez
La gloria del tiempo es calmar a los reyes contendientes,
William Shakespeare, La violación de Lucrece (1709)
Para desenmascarar la falsedad y sacar a la luz la verdad,
Para estampar el sello del tiempo en cosas viejas,
Para despertar la mañana y vigilar la noche,
Para agraviar al malhechor hasta que haga lo correcto;”
Todos los relojes se basan en procesos periódicos, algo que podríamos llamar un “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 se balancea, u oscila, y simplemente contamos estos cambios hasta que suman un minuto o un segundo.
En los relojes de péndulo grandes, estas oscilaciones son largas y fáciles de ver. Para relojes más pequeños y más especializados, se requiere equipo especial. La frecuencia de un reloj, la frecuencia con la que hace tic-tac, depende de su uso.
La mayoría de los relojes tienen una frecuencia fija. Después de todo, 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 puede configurar antes de activarla. Mientras que un metrónomo mantiene su ritmo constante una vez que está configurado, el tiempo de Bitcoin varía para cada tic-tac 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.
Reloj del abuelo | ~0,5 Hz |
Metrónomo | ~0.67 Hz to ~4,67 Hz |
Reloj de cuarzo | 9.192.631.770 Hz |
Reloj atómico de cesio-133 | |
Bitcoin | 1 bloque (0.00000192901 Hz* to ∞ Hz**) |
**las marcas de tiempo entre bloques pueden mostrar un delta negativo
El hecho de que Bitcoin sea un reloj se esconde a la 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 este artículo, proponemos una solución al problema del doble gasto utilizando un servidor de marca de tiempo distribuido entre iguales (peer-to-peer) para generar una prueba computacional del orden cronológico de las transacciones.”
Satoshi Nakamoto (2009)
El hecho de que la marca de tiempo fuera la raíz del problema a resolver también es evidente al examinar la referencia al final del documento técnico (libro blanco) de Bitcoin. De las ocho referencias en total, tres son sobre el sellado del tiempo:
- Cómo sellar la hora en un documento digital (How to time-stamping a digital document) por S. Haber por S. Haber, W.S. Stornetta (1991)
- Mejora de la eficiencia y confiabilidad del sellado de tiempo digital (Improving the efficiency and reliability of digital time-stamping) por D. Bayer, S. Haber, W.S. Stornetta (1992)
- Diseño de un servicio de sellado de tiempo seguro con requisitos mínimos de confianza (Design of a secure timestamping service with minimal trust requirements) por H. Massias, X.S. Ávila y J.-J. Quisquater (mayo de 1999)
Como describieron Haber y Stornetta en 1991, el sellado de tiempo digital consiste en procedimientos prácticos computacionales que hacen imposible que un usuario -o un anunciante, en realidad- pueda 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 ningún signo revelador en el soporte físico en sí. En el ámbito digital, las falsificaciones y manipulaciones pueden ser perfectas.
La naturaleza maleable de la información hace que el sellado de tiempo en los documentos digitales sea un proceso elaborado y sofisticado. Las soluciones ingenuas no funcionan. Tome un documento de texto, por ejemplo. No puede simplemente agregar la fecha al final del documento, ya que todos, incluido usted mismo, podrían simplemente cambiar la fecha en el futuro. En primer lugar, también podría inventar cualquier fecha.
El Tiempo es una Cadena Causal
Desde un punto de vista extremo, el mundo puede verse sólo como conexiones, nada más.”
Tim Berners-Lee, Weaving the Web (1999)
Inventar las fechas es un problema general, incluso en el ámbito no digital. Lo que se conoce en el mundo del secuestro como “Autenticación por periódico” es una solución general al problema de las marcas de tiempo arbitrarias.
Prueba de tiempo
Esto 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 se refiere a los eventos de ayer, eventos que el secuestrador no podría haber predicho si la imagen tuviera semanas de antigüedad. Por medio de estos hechos, la imagen es una prueba de que el rehén aún seguía vivo el día que salió el periódico.
Este método destaca uno de los conceptos clave cuando se trata de tiempo: la causalidad. La flecha del tiempo describe la relación causal de los eventos. 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 sellar 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 existían primero, el hash se generó más tarde. En otras palabras: sin la irreversibilidad computacional de las funciones unidireccionales, no habría causalidad en el ciberespacio.
A antes que B
Con este bloque de construcción causal en su lugar, uno puede idear esquemas que creen una cadena de eventos, vinculando causalmente A con B a C y así sucesivamente. En ese sentido, la marca de tiempo digital segura nos lleva de un lugar atemporal en el éter al reino de la historia digital.
La causalidad fija los eventos en el tiempo. Si un evento fue determinado por ciertos acontecimientos anteriores, y determina ciertos acontecimientos subsecuentes, entonces el evento se intercala de manera segura en su lugar en la historia.”
Bayer, Haber, Stornetta (1992)
No hace falta decir que la causalidad es de suma importancia cuando se trata de cálculos económicos. Y dado que un libro de contabilidad no es más que la plasmación de cálculos económicos de múltiples participantes que cooperan, la causalidad es esencial para cada libro mayor.
Necesitamos un sistema para que los participantes se pongan de acuerdo sobre una historia única […]. La solución que proponemos comienza con un servidor de marcas de tiempo.”
Satoshi Nakamoto (2009)
Es fascinante que todas las piezas del rompecabezas que hacen que Bitcoin funcione ya existieran. Ya en 1991, Haber y Stornetta introdujeron dos esquemas que hacen que sea “difícil o imposible producir sellos de tiempo falsos”. El primero depende de un tercero de confianza; el segundo, un esquema más elaborado de “confianza distribuida”, no. Los autores incluso identificaron los problemas inherentes a la confianza en una cadena causal de eventos y lo que se requeriría para reescribir la historia. En sus palabras, “la única falsificación posible es preparar una cadena falsa de sellos de tiempo, lo suficientemente larga como para agotar al retador más sospechoso que uno pueda anticipar”. Hoy en día existe un vector de ataque similar en Bitcoin, en forma de un ataque del 51% (más sobre esto en un capítulo posterior).
Un año después, Bayer, Haber y Stornetta se basaron en su trabajo anterior y propusieron usar árboles en lugar de simples listas vinculadas para unir eventos. Lo que hoy conocemos como Merkle Trees son simplemente estructuras de datos eficientes para crear un hash a partir de múltiples hashes de manera determinante. Para el caso de las marcas de tiempo, esto significa que se pueden agrupar de manera eficiente varios eventos en una “marca” (tick). En el mismo artículo, los autores proponen que el modelo de confianza distribuida introducido en 1991 podría mejorarse mediante la realización de un “torneo de campeonato mundial” recurrente para determinar un único “ganador” que publique el hash resultante en un lugar público, como un periódico. ¿Le suena familiar?
Como veremos, resulta que los periódicos son también una excelente manera de pensar sobre el segundo ingrediente del tiempo: la imprevisibilidad.
Causalidad e Imprevisibilidad
El tiempo no es una realidad [hupostasis], sino un concepto [noêma] o una medida [metron]…”
Antifón el sofista, Sobre la verdad (siglo III d.C.)
Si bien 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 ignorar 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 descifrar un huevo, como dicen.
De manera similar, se requieren funciones que aumenten la entropía para establecer una flecha de tiempo en el ámbito digital. Así como es prácticamente imposible descifrar un huevo, es prácticamente imposible descifrar un hash SHA256 o una firma criptográfica.
Sin este aumento de la entropía, podríamos avanzar y retroceder en el tiempo, queramos o no. 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 anteriores. En ese sentido, es una cadena causal. Sin embargo, no es útil decir la hora porque es completamente predecible. De la misma manera que un secuestrador no puede simplemente pararse frente a un calendario que muestra la fecha actual, no podemos usar procesos predecibles como prueba de tiempo. Siempre tenemos que confiar en algo que no se pueda 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 se verá 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 incluirán porque no puede predecir qué transacciones se emitirán en el futuro. Y, lo que es más importante, no se puede predecir quién encontrará la solución al acertijo de prueba de trabajo actual ni cuál será esta solución.
Sin embargo, a diferencia del periódico del secuestrador, la prueba de trabajo está ligada físicamente a lo que sucedió directamente. No es solo un registro de un evento, es el evento en sí. Es la franqueza probabilística de la prueba de trabajo lo que elimina la confianza de la ecuación. La única forma de encontrar una prueba de trabajo válida es haciendo muchas conjeturas, y hacer una sola conjetura lleva un poco de tiempo. La suma probabilística de estas suposiciones es lo que construye la cadena de tiempo que es Bitcoin.
Al utilizar la causalidad de las cadenas hash y la imprevisibilidad de la prueba de trabajo, la red Bitcoin proporciona un mecanismo para establecer una historia indiscutible de los eventos presenciados. Sin causalidad, lo que vino antes y lo que vino después es imposible de separar. Sin imprevisibilidad, la causalidad no tiene sentido.
Lo que todo secuestrador entiende intuitivamente 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, es necesario informar de hechos que no se podría haber predicho antes de que sucedieran”.
Prueba de la Publicación
Es la combinación de causalidad e imprevisibilidad lo que permite la creación de un “ahora” artificial en el reino digital atemporal de otra manera. Como señalan Bayer, Haber y Stornetta en su artículo de 1991: “la secuencia de clientes que solicitan sellos de tiempo y los valores hash que envían no se pueden conocer de antemano. Entonces, si incluimos bits de la secuencia anterior de solicitudes de clientes en el certificado firmado, entonces sabemos que la marca de tiempo ocurrió después de estas solicitudes. […] Pero el requisito de incluir bits de documentos anteriores en el certificado también se puede utilizar para resolver el problema de limitar el tiempo en la otra dirección, porque la empresa de sellado de tiempo no puede emitir certificados posteriores, a menos que tenga la solicitud actual en la mano”.
Todas las piezas del rompecabezas ya estaban allí. Lo que Satoshi logró hacer fue juntarlas de una manera que elimine a la “empresa de sellado de tiempo” de la ecuación.
Prueba del Tiempo
Causa latet: vis est notissima.
Ovidio, Metamorfosis, IV. 287 (8 d.C.)
La causa está oculta, pero el resultado es conocido.”
Recapitulemos: para usar el dinero en el ámbito digital, tenemos que confiar en los libros de contabilidad. Para que los libros de contabilidad sean fiables, se requiere un orden inequívoco. Para establecer el orden, las marcas de tiempo son necesarias. Por lo tanto, si queremos tener dinero sin confianza en el ámbito digital, debemos eliminar cualquier entidad que cree y administre marcas de tiempo y cualquier entidad única que esté a cargo del tiempo mismo.
Se necesitó un genio como Satoshi Nakamoto para darse cuenta de la solución: “Para implementar un servidor de marcas de tiempo distribuido sobre una base peer-to-peer, necesitaremos usar un sistema de prueba de trabajo similar al Hashcash de Adam Back. “
Necesitamos utilizar un sistema de prueba de trabajo porque se requiere algo que sea nativo del ámbito digital. Una vez que se comprende que el reino digital es de naturaleza informativa, la conclusión obvia es que la computación es todo lo que tenemos. Si su 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 tiene confianza y no es confiable porque está desconectada de todas las entradas externas, como las lecturas de relojes (o periódicos, por ejemplo). Se basa en una cosa y solo en una cosa: la computación requiere trabajo, y en nuestro universo, el trabajo requiere energía y tiempo.
Tiempos de Transición
Sé que a mí me funciona.
Kate Bush, Burning Bridge (1985)
Mientras cruzamos el puente -el puente en llamas-
Con las llamas detrás de nosotros
Nos ponemos al frente de la línea.
Somos tú y yo, cariño, contra el mundo.”
Sin una prueba de trabajo, uno siempre se encontraría con el problema de Oracle porque el reino físico y el reino de la información están eternamente desconectados. Las marcas en tu lista de ovejas no son tus ovejas, el mapa no es el territorio y lo que esté escrito en el periódico de ayer no es necesariamente lo que sucedió en el mundo real. De la misma manera, el hecho de que use un reloj del mundo real para escribir una marca de tiempo no significa que esta 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 datos en sí. Lo brillante de la prueba de trabajo (proof-of-work) ajustada a la dificultad 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 ámbito digital y el ámbito físico. Y lo que es más importante, es la única conexión que puede establecerse sin confianza. Todo lo demás dependerá siempre de las entradas externas.
La dificultad para minar un nuevo bloque de Bitcoin se ajusta para asegurarse de que el delgado hilo entre el tiempo de Bitcoin y el nuestro permanezca intacto. Como un reloj, la dificultad de minado se reajusta cada 2016 tics. El objetivo de este reajuste es mantener el tiempo medio entre tics en diez minutos. Son estos diez minutos los que mantienen una conexión estable entre el reino físico y el de la información. En consecuencia, se requiere un sentido del tiempo humano para reajustar los tics del reloj de 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, los humanos ingeniosos, 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 solo hecho hace que todas las marcas de tiempo, especialmente a grandes distancias, sean intrínsecamente poco confiables, incluso sin actores adversarios. (Por cierto, esta es la razón por la que las marcas de tiempo de los satélites GPS deben ajustarse constantemente).
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 en primer lugar. Solo tienen que ser lo suficientemente precisas como para calcular un promedio algo confiable en los bloques de 2016. Para garantizar eso, la marca de tiempo “meatspace” de un bloque solo se acepta si cumple dos criterios:
- La marca de tiempo debe ser mayor que la marca de tiempo mediana de los 11 bloques anteriores.
- La marca de tiempo debe ser menor que 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 un buen dinero tiene que ser costoso en tiempo, no en energía. Vincular el dinero a la energía por sí solo no es suficiente para producir una 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 hacer 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 relacionada con el último recurso 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 se pretende resolver. Tan pronto como el tiempo de bloqueo cae por debajo de cierto umbral, digamos, 50 milisegundos, sería imposible ponerse de acuerdo sobre un estado compartido, incluso en teoría. La luz tarda unos 66 milisegundos en viajar de un lado de la Tierra al otro. Por lo tanto, incluso si nuestras computadoras y enrutadores fueran perfectos, estaríamos de vuelta en el punto de partida: dados dos eventos, sería inútil decir qué evento sucedió antes y qué evento sucedió después. Sin un ajuste periódico de los tics de Bitcoin, nos encontraríamos con el problema irremediable de resolver el problema de la 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 describió en el capítulo 1. La criptografía funciona debido a una asimetría en el tiempo: se necesita poco tiempo para construir un muro criptográfico y mucho tiempo para derribarlo, a menos que se tenga una clave.
Por lo tanto, en cierto sentido, la prueba de trabajo, y la dificultad de ajuste 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, en promedio, solo se encontrará un bloque válido cada 10 minutos.
Desde una perspectiva externa, Bitcoin canaliza el caótico desorden de mensajes asincrónicos transmitidos globalmente en 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. Solo cuando una transacción se incluye en un bloque válido, se le asigna un tiempo: el número del bloque en el que está incluida.
Es difícil exagerar lo elegante que es esta solución. Una vez que sea capaz de crear su propia definición de tiempo, descifrar lo que vino antes y lo que vino después es trivial. A su vez, ponerse de acuerdo sobre lo que sucedió, en qué orden y, en consecuencia, quién debe qué a quién, también se vuelve algo trivial.
El ajuste de la dificultad asegura que el ritmo del metrónomo interno de Bitcoin sea algo 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 se puede hacer de manera eficiente.
Tiempo Probabilístico
El tiempo se bifurca perpetuamente hacia innumerables futuros.”
Jorge Luis Borges, El jardín de los senderos que se bifurcan (1958)
Encontrar un nonce válido para un bloque de Bitcoin es un juego de adivinanzas. Es muy parecido a lanzar un dado, lanzar una moneda o hacer girar una ruleta. En esencia, se trata de encontrar un número aleatorio más allá de lo astronómicamente grande. No hay progreso hacia la búsqueda de una solución. O le toca ganar el premio gordo o no.
Cada vez que lanza una moneda, la probabilidad de que salga cara o cruz es del 50%, incluso si la ha lanzado veinte veces antes y siempre ha salido cara. De manera similar, cada vez que espera a que ingrese un bloque de bitcoin, la probabilidad de que se encuentre en este segundo es ~ 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 tic-tac individual de este reloj es impredecible. En relación con nuestros relojes humanos, este reloj parece ser 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 con los tics de este reloj”. El reloj de Bitcoin puede ser probabilístico, pero no es ilusorio.
El tiempo es una ilusión, la hora del almuerzo lo es 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. Si bien es poco probable, es posible que se encuentre un bloqueo válido al mismo tiempo (nuevamente: disculpas a todos los físicos), lo que hará que el reloj avance en dos lugares diferentes a la vez. Sin embargo, dado que los dos bloques diferentes muy probablemente diferirán en su contenido, contendrán dos historias diferentes, ambas igualmente válidas.
Esto se conoce como división de cadena y es un proceso natural del consenso de Nakamoto. Como una bandada de pájaros que se divide brevemente en dos solo para unirse nuevamente, los nodos en la red de Bitcoin eventualmente convergerán en una historia compartida después de un tiempo, gracias a la naturaleza probabilística de las adivinanzas.
El consenso de Nakamoto simplemente establece que el historial correcto se encuentra en la cadena más pesada, es decir, la cadena con la mayor cantidad de pruebas de trabajo incrustadas. Por lo tanto, si tenemos dos historias A y B, algunos mineros intentarán construir sobre la historia A, otros intentarán 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 está verdaderamente escrita por los vencedores.
El beneficiario necesita pruebas de que en el momento de cada transacción, la mayoría de los nodos estuvieron de acuerdo en que fue el primero en recibir. […] Cuando hay varias versiones de la misma transacción con doble gasto, una y solo una será válida. El receptor de un pago debe esperar aproximadamente una hora antes de creer que es válido. Para entonces, la red resolverá las posibles carreras de doble gasto.”
Satoshi Nakamoto (2009)
En esta simple afirmación se encuentra el secreto del problema de coordinación distribuida. Así es como Satoshi resolvió el problema del “pago simultáneo” que nuestros socios comerciales ficticios encontraron anteriormente. 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 punta de la cadena, es siempre incierto. El pasado, bloques enterrados debajo de la punta de la cadena, es cada vez más cierto.
Cuanto más exhaustiva sea la comprensión necesaria, más atrás en el tiempo se debe ir.”
Gordon Clark, A Christian View of Men and Things, pág. 58. (1951)
En consecuencia, el reloj de Bitcoin puede retroceder de vez en cuando, para algunos pares, durante un tic o dos. Si la punta de su cadena, el momento presente, pierde frente a la punta de una cadena de la competencia, su reloj primero retrocederá y luego saltará hacia adelante, anulando los últimos tics que pensaba que ya eran historia. Si su reloj es probabilístico, su comprensión del pasado también debe serlo.
Tic-tac, tic-tac, tic-tac: ¿qué hora es?
Una pequeña rima divertida sobre Bitcoin y el tiempo (2020)
“Tick tock tick tock… termina en c619.
¿Estás seguro de que esto está bien? ¿Probablemente llegamos tarde?
Los absolutos no importan: antes del nueve viene el ocho.
El reloj no es exacto; a veces va al revés.
El tiempo exacto implica el centro; ¡esa es la raíz de esta maldición!
Sin embargo, este reloj sigue haciendo tic-tac, tic-tac y tic-tac,
No hay beneficio en engañar; solo tic-tac y el siguiente bloque.”
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 idea: Una guía para el universo desconocido, págs.117-118 (2017)
Llevar la cuenta de las cosas en el ámbito de la información implica realizar un seguimiento de una secuencia de eventos, lo que a su vez requiere llevar un registro del tiempo. Hacer un seguimiento del tiempo requiere acordar un “ahora”, un momento en el tiempo que une eternamente el pasado asentado con el futuro incierto. En Bitcoin, este “ahora” es la punta de la cadena de prueba de trabajo más pesada.
Hay dos elementos esenciales para la estructura del tiempo: vínculos causales y eventos impredecibles. Se requieren vínculos causales para definir un pasado, y se requieren eventos impredecibles para construir un futuro. Si la secuencia de eventos fuera predecible, sería posible saltar hacia adelante. Si los pasos individuales de la secuencia no están vinculados, sería trivial cambiar el pasado. Debido a su sentido interno del tiempo, es increíblemente difícil engañar a Bitcoin. Habría que reescribir el pasado o predecir el futuro. La cadena de tiempo de Bitcoin evita ambos.
Ver Bitcoin a través de la lente del tiempo debería dejar en claro que la “cadena de bloques”, la estructura de datos que une causalmente múltiples eventos, no es la principal innovación. Ni siquiera es una idea nueva, como es evidente al estudiar la literatura de marcas de tiempo del pasado.
Una cadena de bloques es una cadena de bloques.”
Peter Todd
Lo que es una nueva idea, lo que Satoshi descubrió, es cómo ponerse de acuerdo de manera independiente sobre una historia de eventos sin una coordinación central. Encontró una manera de implementar un esquema de sellado de tiempo descentralizado que (a) no requiere una empresa o servidor de sellado de tiempo, (b) no requiere un periódico o cualquier otro medio físico como prueba, y © puede mantener los tics 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 funciones unidireccionales: las funciones de hash criptográficas y las firmas digitales que son el núcleo del protocolo. La imprevisibilidad la proporciona tanto el acertijo de prueba de trabajo como la interacción con otros pares: no se puede saber de antemano lo que están haciendo los demás y no se puede saber de antemano cuál será la solución al acertijo de prueba de trabajo. La coordinación es posible gracias al ajuste de la dificultad, la salsa mágica que une el tiempo de Bitcoin con el nuestro. Sin este puente entre el reino físico y el de la información, sería imposible llegar a un acuerdo sobre un momento basándose únicamente en los 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 latido implacable de este reloj es lo que da lugar a todas las propiedades mágicas de Bitcoin. Sin él, la intrincada danza de Bitcoin se desmoronaría. Pero con él, todo el mundo tiene acceso a algo verdaderamente maravilloso: Magic Internet Money.