Después de aterrizar en la isla, me desperté y encontré a mis hermanos Diego y María todavía durmiendo.
«¡Ya llegamos!» solté. Diego ni siquiera se inmutó. María abrió un ojo y me miró. Todavía estábamos somnolientos cuando salimos del aeropuerto y dos policías nos detuvieron.
«Por favor, ven conmigo», nos dijeron.
Mis padres, más despiertos que nosotros, no parecían preocupados. La policía nos explicó que en la isla no hay moneda de curso legal y tenemos que adaptarnos. Solo podemos usar criptomonedas.
«¿Esa cosa de bitcoin?» Pregunté.
Ellos asintieron. Nos dieron un manual de instrucciones y lo leímos con atención. Bitcoin se describe allí como una moneda digital, una moneda completamente virtual. Cada bitcoin es un archivo de computadora almacenado en una aplicación de «billetera digital» en un dispositivo como un teléfono móvil o una computadora.
Entonces no es demasiado complicado, les digo a mis hermanos que las personas pueden enviar bitcoins a sus billeteras digitales, por lo que es fácil enviar bitcoins a otras personas o comerciantes. Cada transacción se registra en una lista pública llamada blockchain.
Más información
Sigo leyendo y me sorprende que gracias a esto se pueda rastrear el historial de bitcoin para evitar que la gente gaste monedas que no son de su propiedad, copiando o revirtiendo transacciones.
— Una cadena de bloques, como me explicó mi hermano, es una estructura de datos. Una cadena de bloques donde cada bloque contiene un conjunto de transacciones. Un libro mayor distribuido que contiene todas las transacciones en orden cronológico; este libro es compartido por una red de muchas, muchas computadoras.
«Con tantas computadoras, ¿cómo llegaron a un acuerdo?», preguntó mi hermana.
-buena pregunta.A ver que dice el folleto – respondí impacientándome un poco
Como hemos leído, cuando alguien quiere hacer una transacción, digamos comprar algo, envía la solicitud a la red informática. Allí, computadoras especiales llamadas mineros son responsables de recopilar solicitudes (y hacer ciertos controles, como tener suficiente dinero para realizar una compra) e incorporarlos a la cadena de bloques.
“Pero si hay tantas computadoras, ¿quién se encarga de actualizar esa cadena de bloques?”, pregunté.
Bueno, se presenta un acertijo, que en realidad es un cálculo muy simple de algunos valores, por lo que el resultado es un valor aparentemente elegido al azar. Por ejemplo, una versión simplificada sería pedirles que calculen un primo p y un valor x dado, el cubo de x, y mantener el resto del cálculo del cubo de x dividido por la división entera de p. Es decir, si x = 20 y p = 541, el resultado será 426, o si x = 21, con el mismo p, obtendremos 64.
«¿Así que solo cambiaste un número y el resultado es completamente diferente?», preguntó María sorprendida.
– Absolutamente – observó Diego – si no haces el cómputo, pasa algo diferente e impredecible, por eso se llama Prueba de Trabajo. Vamos, te haré una prueba para ver quién es el primero en encontrar un valor terminado en cero para el resto de x dividido por 541.
Mi hermana y yo encendimos el teléfono. Unos minutos más tarde, anunció los resultados con una gran sonrisa.
«¡Número 36!»
Mi hermano y yo confirmamos que tenía razón. El cubo de 36 es 46656, y el resto al dividirlo por 541 es 130.
«Y solo pido que termines con un cero, un cero», continuó mi hermano. Imagínese si el objetivo fuera usar el mismo programa para terminar con dos ceros. ¿Quieres probártelo?
Nuestros dedos se deslizan por la pantalla a una velocidad vertiginosa.En menos de un minuto, tengo
«¡481!», grité desde el techo. Mi estrategia de comenzar en 540 y bajar no fue tan mala.
Nuevamente, verificarlo lleva unos segundos, calcularlo requiere más trabajo. Ahora entiendo por qué se llama Prueba de trabajo, pero todavía tenemos que entender cómo blockchain hace que el dinero esté disponible para todos. Hay una figura en el folleto.
Decidimos que cada rectángulo representa un bloque. En cada uno de ellos aparecen reflejadas tres transacciones, por ejemplo, en el primer bloque explicamos que D entregó a M 5 monedas, y M y D pagaron a R 3 y 4 monedas, respectivamente. La etiqueta B es probablemente algún tipo de nombre de bloque, y el número junto a la etiqueta BA parece referirse al bloque anterior.
–oye-oye! ! ¿Notaste que son nuestras iniciales? – dijo mi hermana – Diego, Roger, María.
«Sí, tal vez muchas coincidencias», le dije.
Dado que 541 desempeña el papel del divisor p en los ejemplos del manual, intentamos dividir 82821 entre 541 y, felizmente, resultó 48. Ya sabemos cómo se relaciona la etiqueta BA del segundo bloque, pero ¿de dónde viene B?
«¿Notaste que comienza con 48 y luego concatena 3 valores de transacción?», observó mi hermana.
— ummm… bueno, ya que lo mencionas, totalmente de acuerdo — respondí. Pero, ¿cómo se calculan otros valores? Seguimos leyendo.
Tener un certificado de trabajo. Jugando con los números del cuadernillo, encontramos el acertijo: tenemos que calcular un número cuya primera cifra sea 48421, y cuando se eleva al cubo y se divide por 541, las dos últimas cifras que quedan son 00. Salió solo 4842176!
«Bueno, ya lo soy», dijo Diego. El minero que obtiene el valor lo anuncia, los otros mineros (como lo hizo María) verifican si es correcto y, si están de acuerdo, agregan el bloque a la cadena.
Fuimos a la policía y le explicamos que lo habíamos descubierto. La mujer policía sonrió misteriosamente, nos entregó un papel y preguntó, ¿cuánto dinero tiene cada uno?
Pasamos con éxito la prueba y recibimos una pequeña recompensa por gastar en una pizza que costó nada menos que 10 000 bitcoins. Eso fue 2010. ¡Considera que en euros, la pizza ya vale más de 500 millones de euros!
¿Puedes aprobar el examen también?
Los Crypto Challenges se publicarán cada 15 días. Los lectores pueden dejar sus soluciones y discutir problemas en los comentarios de esta página, por lo que se recomienda a cualquiera que quiera resolver el problema por su cuenta que no lo lea hasta que descifre el rompecabezas. También puede enviar su respuesta por correo electrónico a desafioscriptograficos@gmail.com. Con cada nuevo desafío, publicamos la solución al desafío anterior, con comentarios sobre algunas de las ideas originales o inspiradoras que hemos recibido.
Vanesa Daza Fernández es profesora e investigadora del Departamento de Tecnologías de la Información y la Comunicación de la Universidad Pompeu Fabra de Barcelona.
Soluciones a retos anteriores
La herramienta criptográfica que surge de este desafío es un esquema de intercambio de secretos: cómo asignar un valor secreto s entre diferentes participantes, dar a cada participante Pi un fragmento fi, y solo esos participantes pueden recuperar el secreto de su fragmento. Un subconjunto de actores autorizados (que definen las llamadas estructuras de acceso).
En las dos primeras acciones del secreto (contraseña de candado), el subconjunto autorizado es el subconjunto de todos con dos (o más) participantes. Esto se denomina estructura de acceso de umbral (en este caso, el umbral es 2).El criptógrafo israelí Adi Shamir (S de RSA) propuso una forma segura de compartir el secreto de una estructura de acceso sobre un umbral t: elegir un polinomio secreto f(x) de grado t-1, donde el secreto como término independiente es, Ese es
f(x) = s + a1 x + a2 x² + a3 x³ + … + at-1 x elevado a t-1
Y el punto (i,f(i)) del plano cartesiano se designa como el segmento del participante Pi.
El polinomio secreto f(x) tiene t coeficientes desconocidos, s, a1,…,at-1. La intuición (y las matemáticas) nos dice que para encontrar esos valores de t, necesitamos conocer al menos t datos sobre el polinomio, como su evaluación en t puntos diferentes. Si hay menos de t puntos/evaluaciones/rebanadas, cualquier polinomio de grado t-1 es posible, por lo que el valor secreto s=f(0) es completamente indeterminado.
En el caso del umbral 2, el grado del polinomio es 1, que corresponde a una recta f(x) = s + a1 x. En la segunda distribución de fragmentos realizada por Forest Wizard, también correspondiente a una recta, tenemos la recta que pasa por los puntos (1.15) y (2.17) que es la recta de la ecuación y = 2x + 13. La recta corta el eje OY en el punto (0,13), por lo que el secreto en este caso es 13.
Con un umbral de 3, el grado del polinomio secreto es 2, y su gráfica será una parábola: f(x) = s + a1 x + a2 x².
Para recuperar este polinomio (o parábola) secreto, se requieren tres evaluaciones del polinomio, tres fragmentos de tres reinos diferentes, por ejemplo tomaremos los reinos 1, 2 y 3. Armados con esta información, propondremos tres ecuaciones para un sistema de tres incógnitas; las incógnitas son s, a1 y a2:
Fragmento(1,22) -> 22 = f(1) = s + a1 1 + a2 1²= s + a1 + a2
Fragmento(2,29) -> 29 = f(2) = s + a1 2 + a2 2²= s + 2 a1 + 4 a2
Fragmento(3,32) -> 32 = f(3) = s + a1 3 + a2 3²= s + 3 a1 + 9 a2
La solución a este sistema de ecuaciones es s=11, a1=13, a2=-2, lo que significa que el polinomio secreto es f(x) = 11 + 13 x – 2 x², por lo que el candado abierto es s=11.
La parábola secreta, la ecuación y = 11 + 13 x – 2 x².
Desde ese día, dado que se requieren t=5 fragmentos (es decir, todos los fragmentos de los cinco reinos) para recuperar el secreto, una posibilidad es usar un polinomio secreto de grado 4. Pero existe otra posibilidad más simple y eficiente (funciona siempre que el umbral t sea igual al número total de participantes): dado un secreto s para compartir, el guía del bosque simplemente elige cuatro fragmentos al azar, por ejemplo, f1, f2 , f3 y f4, y defina el último como f5 = s – f1 – f2 – f3 – f4. Entonces la suma de cinco segmentos dará el secreto, pero si son menos o iguales a 4 segmentos, no se obtendrá información sobre el secreto.
Cuando se comparten secretos utilizando estos esquemas en la vida real, el secreto y el fragmento no tienen tamaño libre, pero por ejemplo, el secreto es un número primo q elegido del conjunto de enteros {0,1,2,3,…,q -1}, usamos la operación módulo módulo q, es decir, q es igual a 0, q+3 es igual a 3, y así sucesivamente. Esto asegura que también se controlen los tamaños de los fragmentos f(i), ya que pertenecen al mismo conjunto {0,1,2,3,…,q-1} que el secreto distribuido.
Muchos de nuestros lectores (por ejemplo, Javier, Ramiro o Joaquín) abordaron este desafío muy rápido… así que les hacemos una pregunta adicional: los magos del bosque deben implementar los reinos 1, 3 y 4 implementar el subconjunto {2, 5} El secreto no se puede recuperar , se pretendía dividir el secreto para una estructura de acceso que contenía todos los subconjuntos de base 2 excepto {2,5}. En ese caso, ¿te atreverías a encontrar la manera de compartir el secreto?
PD: Aún nos falta resolver el reto de criptografía musical que nos envió Salva Fuster en un comentario de uno de los retos. Hemos recibido algunas respuestas en nuestro correo desafioscriptograficos@gmail.com. Te animamos a que también lo abordes. En el próximo desafío, publicaremos la solución que nos envió su autor.
Puedes seguir a PeriodistasdeGénero TECNOLOGÍA en Facebook y Twitter o darte de alta aquí para recibir nuestra newsletter semanal.