En este artículo, hablaré sobre el problema de seguridad en la tecnología blockchain a la luz del crecimiento en el rendimiento de las computadoras cuánticas, discutiré algunos de los métodos de protección contra ataques usando una computadora cuántica y un proyecto reciente: Libro mayor resistente a los cuánticos. Según los desarrolladores, esta será la primera plataforma en el mundo construida sobre los principios del cifrado post-cuántico y diseñada para proporcionar protección contra el "choque cuántico" en caso de un rápido desarrollo de estas tecnologías. Las plataformas construidas utilizando principios de cifrado clásicos pueden ser sometidas a tal golpe. Sin cambios fundamentales, Bitcoin, Ethereum, Ardor y la mayoría de estas plataformas pueden estar en el futuro cercano.
Parte 1. Problema de seguridad
Vulnerabilidad
El algoritmo de protección de Bitcoin y sistemas similares se basa en el principio de cifrado asimétrico con claves públicas y privadas. Una transacción se firma con una clave privada y su validez se verifica utilizando la clave pública.
Usando algoritmos de ataque clásicos, es casi imposible encontrar una clave privada, conociendo la pública. Los sistemas de cifrado asimétrico, como RSA y similares (DSA, DH, etc.), se basan en la afirmación de que la complejidad de factorizar un número crece exponencialmente a partir del tamaño de la clave. Sin embargo, utilizando
el algoritmo Shore en una computadora cuántica, es posible en tiempo polinómico descomponer el número en factores primos y, por lo tanto, encontrar la clave privada, conociendo la clave pública.
En 2001, IBM
demostró esto al dividir el número 15 en dos factores primos, 3 y 5. Para estos fines se utilizó una computadora cuántica que consta de 7 qubits. Desde entonces, el desarrollo de tecnologías de computación cuántica ha progresado más rápido.
En 2016, un grupo de investigadores del Instituto de Tecnología de Massachusetts, junto con el Instituto de Innsbruck, realiza la misma tarea de descomponer el número 15,
utilizando solo 5 qubits .
En julio de 2017, los físicos ruso-estadounidenses crearon una
computadora programable de 51 qubits .
A finales de octubre de 2017, un grupo de investigación internacional de las universidades de Singapur y Australia llegó a la conclusión de que la mayoría de los protocolos criptográficos utilizados en la cadena de bloques son vulnerables a los ataques de una poderosa computadora cuántica. El
informe del grupo proporciona 2 predicciones del crecimiento de potencia de la computadora cuántica: optimista y menos optimista. Según el primero, el número de qubits de una computadora cuántica se duplicará cada 10 meses. Un pronóstico menos optimista indica una duplicación del número de qubits cada 20 meses. La siguiente figura muestra gráficos de ambos pronósticos.
El más vulnerable a los ataques informáticos cuánticos es el algoritmo para crear una firma digital basada en curvas elípticas (
ECDSA ). Por lo tanto, según
el informe del grupo , Bitcoin en su forma clásica se puede descifrar para 2027.
¿Quizás no todo es tan malo? La clave pública no se almacena en texto sin cifrar.
A finales de abril de 2017,
se publicó un
artículo en bitcoin.com para responder a la pregunta de si los titulares de Bitcoin deben tener cuidado de romperlo con una computadora cuántica. Dice que a pesar del hecho de que el cifrado asimétrico se usa en la cadena de bloques de Bitcoin, los usuarios no deben preocuparse por la seguridad de sus monedas. La clave pública no se almacena en texto claro. Entonces, las direcciones para transferir monedas no son claves públicas, sino solo el resultado de aplicar la función hash SHA-256. La función hash realiza una conversión unidireccional y, por lo tanto, es resistente a los ataques de una computadora cuántica.
La clave pública se da a conocer durante la transacción.
La afirmación de que la clave pública no está disponible en claro no es del todo cierto. Sin entrar en pequeños detalles, analizaremos utilizando el ejemplo de Bitcoin (BTC) cómo se transfiere la criptomoneda de una persona a otra.
Deje que Alice en su billetera en una de las direcciones de Bitcoin tenga 100 mBTC (1000 mBTC = 1 BTC). Ella quiere transferir a Bob 1 mBTC. Para hacer esto, indica la dirección de Bitcoin de Bob, la tarifa de transferencia y la dirección de Bitcoin en su billetera para recibir el cambio. Supongamos que Alice indica 1 mBTC como comisión. Por lo tanto, de 100 mBTC que Alice tiene, 1 mBTC se envía a Bob, 1 mBTC se va como comisión en la red de Bitcoin y 98 mBTC se devuelve a la billetera de Alice.
Ahora veamos qué sucede a nivel de red de Bitcoin. Alice y Bob tienen billeteras que contienen direcciones para almacenar monedas. Una billetera puede contener varias direcciones de Bitcoin. Las direcciones se generan al crear carteras. Cada dirección corresponde a un par de claves creado por el algoritmo ECDSA: público y privado. Al transferir monedas, se crea una transacción en la que se transmite información sobre el número de monedas transmitidas por Alice, la dirección de Bitcoin de Bob, una firma hecha por la clave privada de Alice,
la clave pública de Alice y algunos otros datos. A continuación, la transacción
en forma abierta (sin cifrar) se envía a la red . Los anfitriones, antes de aceptar una transacción para su procesamiento, verifican su firma con la clave pública. Si la firma es válida, agregan información de transacción al bloque. Esta operación de conmutación se llama confirmación.
El tiempo promedio de generación de bloques en la red Bitcoin es de 10 minutos. La red busca mantener este tiempo constante. Antes de usar los fondos recibidos,
se recomienda esperar 6 confirmaciones. Por lo tanto, Bob, observando las reglas de seguridad, podrá usar los fondos recibidos aproximadamente una hora después de su transferencia.
Una de las características de transferir monedas en la red de Bitcoin es que no es posible transferir solo parte de las monedas desde una dirección. Las monedas siempre se transfieren en su totalidad, ubicadas en la dirección de Bitcoin de la billetera, y el cambio se devuelve al remitente. Se puede obtener tanto a la dirección desde la cual se enviaron las monedas, como a cualquier otra. Por lo tanto, Alice debe indicar la dirección de entrega. En una cantidad de software que opera la billetera, la dirección de entrega es la dirección de envío.
Una tarifa de transacción, estrictamente hablando, no es obligatoria, pero su ausencia puede retrasar la transacción durante mucho tiempo. Lo contrario también es cierto: puede acelerar un poco la transacción aumentando el tamaño de la comisión. En el momento de escribir este artículo (enero de 2018), la mayoría del software de billetera ofrece una tarifa de 1 mBTC. Existen varios recursos, por ejemplo,
este , que le permiten estimar el tiempo que se incluye una transacción en un bloque dependiendo del tamaño de la comisión.
Usando la clave pública 1 vez
Desde el punto de vista de la seguridad, es mejor recibir el cambio a una nueva dirección, cuya clave pública no será conocida por la red. En este caso, el par de claves se usa solo 1 vez. Sin embargo, según las
estadísticas a diciembre de 2017, aproximadamente el 41.34% de las direcciones se reutilizan.
10 minutos para atacar
Sin embargo, tarde o temprano necesitará usar los fondos en la nueva dirección. La clave pública se transmite a la red en claro. Hasta que llegue la confirmación, los fondos aún están en manos del remitente. Si un atacante recibe una clave pública durante una transacción, tendrá unos 10 minutos para obtener la clave privada utilizando una computadora cuántica e intentar realizar su transacción desde la misma dirección, estableciendo una comisión más alta.
Las direcciones estáticas son más vulnerables.
En sistemas como Ethereum, NXT, Ardor, etc., la clave pública también se conoce después de la primera transacción. La situación se ve agravada por el hecho de que los tokens o los contratos inteligentes están vinculados a direcciones estáticas, que pueden ser atacadas durante mucho tiempo. Si el ataque tiene éxito, el atacante podría destruir todo el sistema económico basado en estas direcciones.
Parte 2. Soluciones
¿Cómo proporcionar resistencia a los ataques de una computadora cuántica?
Actualmente, hay varios métodos básicos que brindan protección contra los ataques informáticos cuánticos:
- criptografía basada en hash;
- criptografía basada en código;
- criptografía basada en matriz;
- criptografía basada en sistemas cuadráticos multidimensionales;
- criptografía de clave privada.
Con claves suficientemente largas y el cumplimiento de los requisitos de seguridad, estos métodos de protección pueden resistir ataques clásicos y ataques utilizando una computadora cuántica.
El más estudiado es el uso de firmas digitales basadas en funciones hash.
Como se mencionó anteriormente, la función hash realiza la conversión de mensajes unidireccionales. El mensaje se convierte en un valor hash de una longitud fija. El uso de una función hash, por un lado, debería tener sentido buscar en los mensajes para obtener un valor hash similar. Por otro lado, el algoritmo debe ser resistente a colisiones: cuando 2 mensajes diferentes corresponden al mismo valor de la función hash.
El algoritmo cuántico de Grover se puede usar para tratar de encontrar una colisión o realizar un ataque preliminar para encontrar el mensaje original. Esto requerirá
O ( 2 f r a c n 2 ) operaciones Por lo tanto, para mantener la seguridad de 128 bits, la longitud del hash resultante es de al menos 256 bits. Como tal función, se puede seleccionar SHA-256.
Lampport Signature
Una opción para usar una función hash en una firma digital es la firma de Lamport. Se puede construir sobre la base de cualquier función hash unidireccional. La estabilidad criptográfica del algoritmo se basa en la estabilidad criptográfica de las funciones hash utilizadas.
Esquema de firmaPara mensaje
M largo
m Se generan claves. Primero, las claves privadas se generan en pares.
SK largo
n , luego, usando una función hash, los pares de claves públicas se forman a partir de claves privadas
PK . El número de pares de claves privadas y públicas es igual al número de bits en el mensaje original.
Al firmar, se lee un mensaje poco a poco y, según el valor del bit actual, se selecciona una de las claves privadas del par correspondiente. Las claves privadas seleccionadas se combinan en una firma. A continuación, la firma resultante y
m Se envían pares de claves públicas al destinatario.

Verificar una firma es similar al proceso de crearla. La firma se divide en fragmentos de longitud.
n que luego se convierten utilizando la misma función hash. El mensaje se lee bit a bit y el valor del bit selecciona la clave pública, que se compara con el valor hash recibido.
Por lo general, antes de aplicar una firma, el mensaje original se codifica para reducir su tamaño. Deje que SHA-256 sea seleccionado como una función hash, luego
m=n=256 . En este caso, la longitud total de la clave pública (así como privada)
LPK Resulta igual:
LPK=n∗2∗m=256∗2∗256=128KB=16KB.
Longitud de la firma
LS es:
LS=n∗m=64KB=8KB.
La firma de Lamport es de una sola vez (permanece segura solo cuando se usa una vez), porque cuando se ejecuta y se transmite, se conoce la mitad de la clave privada. Deje que la longitud del mensaje sea de 256 bytes y la longitud del hash 256. Antes de que Alice publique la firma del mensaje, nadie conoce 2 * 256 números aleatorios en una clave secreta. Por lo tanto, nadie puede crear el conjunto correcto de 256 números para la firma.
Después de que Alice publique la firma, nadie sabrá los 256 números restantes y, por lo tanto, no podrá crear una firma para mensajes que tengan un hash diferente.
El hecho de que la firma de Lamport sea única, combinada con una cantidad total impresionante de la firma y la clave pública (24 KB con una longitud de mensaje de 256 bytes y una longitud de hash de 256 bytes) hace que su uso en un bloque de transacción pública sea inapropiado.
Firma Winternitz
Existen otros algoritmos de firma digital únicos. En la firma de Vinternytsia, en contraste con la firma de Lamport, el mensaje original se firma no a nivel de bit, sino en bloque. La firma única de Winternitz, como Lamport, se puede construir sobre la base de cualquier función criptográfica fuerte.
Esquema de firmaMensaje
M largo
m roto en fragmentos
Mi largo
w . Se genera una clave privada para cada fragmento
SK longitudes
n . Para cada clave privada, se aplica una operación hash secuencialmente
2w−1 veces (rondas
R ) Como resultado de las operaciones, se obtienen las claves públicas correspondientes.
PK misma longitud
n .

Al firmar, como en la generación de claves públicas, se realiza un cálculo iterativo del hash sobre las claves privadas. El número de repeticiones en cada caso depende del mensaje que se firma. Como se mencionó anteriormente, el mensaje se divide en bloques de longitud.
w . El valor numérico de este bloque.
Mi y es el número de iteraciones que se deben realizar en claves privadas para obtener una firma. La conexión de los bloques recibidos será la firma de este mensaje.

Al verificar una firma en fragmentos de su longitud
n calcula iterativamente el hash. Numero de rondas
Ri La aplicación de la función hash se define como la diferencia entre el número de iteraciones para obtener la clave pública y el valor numérico del bloque de mensajes, es decir.
Ri=2w−1−Mi tiempos Luego, los valores obtenidos se comparan con la clave pública correspondiente.
EjemploIlustraré lo anterior con un pequeño ejemplo. Deja que el mensaje sea dado
M (en representación de bits) longitud
m , parámetro Vinternitsa
w y alguna función hash de longitud
n :
M=1100011101100111,m=16,w=8,n=256.
Generar
m/w=2 clave privada basada en un generador de números pseudoaleatorios. Para cada clave privada aplicamos
2w−1=$25 veces una función hash, obteniendo así
2 claves públicas que se combinan en una clave común de longitud
2∗n=512 poco Siguiente para cada bloque de mensaje
M longitudes
w determinar el número de operaciones hash aplicadas a la clave privada
Ri . En este caso, estos serán los valores
110001112=19910 y
011001112=10310 en consecuencia Después de realizar la operación de hash en claves privadas, obtenemos una firma de longitud
2∗n=512 poco
Para verificar la firma, divídala en partes de longitud
n . Producimos sobre cada parte
Ri=2w−1−Mi operaciones hash. Es decir
255−199=56 y
255−103=$15 veces respectivamente. Si el resultado de las operaciones da como resultado un valor que coincide con la clave pública, entonces el mensaje es confiable.
Cuando se utiliza SHA-256 como una función hash para firmar Winternitz,
m=n=256 .
Dejar
w=8 poco Luego, el tamaño completo de la clave pública
LPK y firmas
LS igual a:
LPK=LS=m/w∗n=256/8∗256=8KB=1KB.
El número de operaciones de cálculo de hash en este caso es igual a:
P=(2w−1)∗m/w=(28−1)∗256/8=8160.
Para el caso de
w=16 , este valor aumenta a
P=1048560 .
Los tamaños de la clave pública y la firma, con los mismos parámetros que en el ejemplo de la firma Lamport, son de 1 KB. En total, esto es menor que en la firma de Lamport (24 KB). Sin embargo, el número de cálculos hash en este caso es 8160. Lo cual, por supuesto, es mucho. Además, al verificar la firma, se realiza un promedio de la mitad de este número de iteraciones. Esto hace que esta opción de firma sea inapropiada para usar en blockchain.
Hay varias opciones para firmar Winternitz, incluso con la extensión de la firma para aumentar la confiabilidad y reducir el número de usos de la función hash. Su descripción está más allá del alcance de este artículo. Los interesados pueden ver más
aquí . Aquí se puede ver la aplicación de la firma Vinternitsa basada en la función hash doméstica de GOST 34.11-12.
Árbol Merkle (MSS)
Las firmas únicas pueden proporcionar una seguridad criptográfica satisfactoria, sin embargo, es su uso único que puede convertirse en un problema grave. Deje que sea necesario transferir los ahorros de una dirección a otra. Resulta que cuando se usan firmas únicas, será necesario transferir la cantidad total de fondos cada vez, y para cada transacción se necesitará una nueva dirección. Con cada transacción, deberá publicar una nueva clave pública. Además, almacenar nuevas transacciones en blockchain requerirá gradualmente más y más tiempo para buscarlas.
Para resolver el problema, expanden el esquema de firma realizando varias firmas basadas en varios pares de claves para cada dirección. El uso de varias firmas se realiza sobre la base de un árbol de hash binario: el árbol de Merkle.
Más detallesEl cálculo de un árbol se realiza desde las hojas hasta la raíz. Cada hoja de nodo del árbol se calcula como un hash de la clave pública generada. Los nodos restantes se calculan obteniendo un hash de la concatenación (pegado) de los nodos secundarios. Por lo tanto, todo el árbol se calcula a la raíz. Supongamos que hay 4 pares de claves, el árbol de Merkle se calcula calculando 7 hashes (consulte la figura anterior).
Una característica del árbol de Merkle es que la existencia de cualquier nodo u hoja se puede probar criptográficamente calculando la raíz.
La firma del mensaje se crea utilizando la clave privada del par de claves seleccionado.
La verificación de firma implica calcular la raíz en función de los parámetros pasados y compararla con una clave pública reutilizable. Estos parámetros son:
- firma
- raíz
- clave única, la parte cerrada de la cual se firmó el mensaje;
- hashes de árboles que se encuentran a lo largo del camino desde la hoja seleccionada hasta la raíz.
Cuando se usan firmas únicas de Merkle o Winternitz, no hay necesidad de transferir una clave pública única seleccionada por separado, ya que se puede obtener de la firma del mensaje. Es suficiente para pasar su número, reflejando su posición en el árbol. , : , , — 0 (
PK1 )
H2 y
H6 .
PK1 , ,
H1 .
H1 y
H2 H5 .
H5 y
H6 R , .
El árbol de Merkle, compilado y calculado a partir de claves públicas, permite en lugar de publicar todo el conjunto de ellos para publicar solo la raíz del árbol. Esto aumenta el tamaño de la firma al incluir parte del árbol en la firma, pero hace posible usar solo 1 hash para verificar muchas firmas. Entonces, con la profundidad del árbolN puede ser firmado2 N publicaciones. El árbol de Merkle para claves basado en el algoritmo de curva elíptica se usa en Bitcoin y Ethereum, hay un excelenteartículosobre este último con un examen del árbol de Merkle.Hipertrees
La principal desventaja del esquema básico de Merkle es que el número de firmas disponibles es limitado, y todos los pares clave de firmas únicas deben generarse antes de calcular el árbol de Merkle. La generación de claves y el tiempo de firma crecen exponencialmente con respecto a la altura del árbol. Es posible retrasar la generación de nuevas claves, así como aumentar el número de pares disponibles, cuando se utiliza un hiperárbol.Más detalles, . 2 : . , . . , (. ).
, , . , , . , .
. . , , .
Estructura de árbol Merkle extendida (XMSS)
Una descripción completa del circuito va mucho más allá del alcance de este artículo; más detalles se pueden encontrar aquí . Solo tocaré conceptos y características básicas. El esquema XMSS, como el árbol Merkle, le permite extender firmas únicas. El uso de una máscara de bits con OR exclusivos (XOR) de los nodos secundarios antes de que los hashes se concatenen con el nodo primario hace posible aumentar la resistencia a las colisiones de las funciones hash utilizadas. Entonces, cuando se usa SHA-256 como una función hash en combinación con un esquema extendido, Winternitz con un parámetro de seguridad (W-OTS +) le permite aumentar la seguridad de 128 a 196 bits. De acuerdo con lenstraLa defensa de 196 bits es suficiente para considerarse segura contra el ataque de un simple ataque de fuerza bruta hasta 2169. Con todas las ventajas del esquema XMSS, su principal inconveniente es el largo tiempo de generación de claves.Actualmente, hay otros esquemas de extensión de árbol de Merkle ( GMSS , CMSS ) que, en combinación con algoritmos de firma única, también se pueden usar en una cadena de bloques que es resistente a los ataques utilizando una computadora cuántica.Parte 3. Realización de ideas.
Proyecto Quantum Sustainable Blockchain - QRL
En la segunda mitad de 2016, el Dr. P. Waterland creó un grupo para desarrollar una cadena de bloques que sea estable tanto para ataques clásicos como para ataques que usan una computadora cuántica. De acuerdo con los resultados del desarrollo de la parte teórica al final del mismo año, el documento principal de la cadena de bloques desarrollada, el "libro blanco", se puso a disposición del público. El documento está actualmente disponible en varios idiomas, incluido el ruso.Características clave de QRL
1. Esquema de firma y seguridadSe aplica un esquema de firma basado en el algoritmo de firma extendido de Winternitz (W-OTS +, w = 16, SHA-256) basado en estructuras conectadas XMSS. Este enfoque le permite generar direcciones con la posibilidad de firmar, evitando el largo retraso computacional observado al crear construcciones XMSS gigantes. Proporciona protección de 196 bits con seguridad predecible contra ataques mediante enumeración simple hasta 2169.
2. Algoritmo de consenso: prueba de trabajoEn la primera iteración de la red principal, se anunció un algoritmo de consenso de prueba de trabajo.
3. Comisión flotanteLos tamaños de transacción más grandes en comparación con otros bloques de la cadena de transacción requieren el pago de cada transacción. Según Waterland, los mercados con una comisión artificial (por ejemplo, Bitcoin) no son necesarios y contradicen el ideal de una cadena de bloques abierta. Cada transacción, si va acompañada de un pago mínimo, debe ser tan válida como cualquier otra. El monto mínimo de pago aceptable para los mineros debe ser flotante y establecido por el mercado. Es decir los nodos (mineros) deben establecer competitivamente un límite inferior para el pago entre ellos. El valor mínimo absoluto se respetará a nivel de protocolo. Por lo tanto, los mineros ordenarán transacciones del mempool para su inclusión en el bloque a su discreción.
4. Cálculo de recompensa de bloque dinámicoCada bloque recién creado incluirá la primera transacción de coinbase que contenga la dirección de minería, para la cual la recompensa se definirá como el monto de recompensa por la tasa de monedas con el monto total de comisiones por transacciones dentro del bloque.
5. El tiempo que pasan los bloques es de 1 minuto.El tiempo entre bloques en la red de Bitcoin es de aproximadamente 10 minutos. Con las 6 confirmaciones requeridas, esto aumenta adicionalmente el tiempo de espera para la finalización de la transacción. Los nuevos esquemas de bloques de cadena de transacciones, como Ethereum, se mejoran en este aspecto y se benefician de un tiempo de bloque más corto sin perder seguridad o centralizar a los mineros debido a la alta tasa de aparición de bloques huérfanos / obsoletos.
Para QRL, este tiempo de bloqueo es de 1 minuto.
6. Tamaño de bloque adaptativoPara evitar posibles disputas, se modeló una solución adaptativa preparada basada en la propuesta de Bitpay, que utiliza un multiplicador para aumentar el tamaño del bloque
x tamaño mediano
y el ultimo
z bloques El uso de un valor promedio no permite que los mineros manipulen, incluidos los bloques vacíos o desbordados para cambiar el tamaño promedio del bloque.
x y
z entonces habrá reglas de consenso estrictas para la red que deberán obedecer. Por lo tanto, el tamaño máximo de bloque
b simplemente se puede calcular como:
b = x y .
7. Moneda - cuánticaLa unidad básica de la moneda es un cuanto. Cada cuanto se divide en los elementos más pequeños. A continuación se muestran los nombres de todos los elementos en orden ascendente:
Artículo | Valor |
---|
Orilla | 1 |
Nakamoto | 10 3 |
Buterin | 10 6 |
Merkle | 10 10 |
Lampport | 10 13 |
Quantum | 10 16 |
Por lo tanto, cada transacción que involucra parte del cuanto es en realidad un número muy grande de unidades Shore. La tarifa de transacción se calcula y se registra en unidades Shore.
8. Cuentas y direccionesLos saldos de los usuarios se almacenan en las cuentas. Cada cuenta es una dirección de bloque de cadena de transacciones única y reutilizable, indicada por una línea que comienza con "Q".
La dirección se crea ejecutando SHA-256 en la raíz de Merkle del árbol de certificación XMSS más alto. A esto se agrega una suma de verificación de cuatro bytes formada a partir de los primeros cuatro bytes del hash SHA-256 doble de la raíz de Merkle y la letra "Q".
Por ejemplo, en el seudocódigo de Python, esto se describirá de la siguiente manera:
Q + sha256(merkle root) + sha256(sha256(merkle root))[: 4]
Dirección de cuenta típica:
Qcea29b1402248d53469e352de662923986f3a94cf0f51522bedd08fb5e64948af479
Cada cuenta tiene un saldo, denominado en cuantos, divisible hasta una sola unidad Shore. Las direcciones con cada transacción usan un nuevo par de claves de firma de un solo uso. Un contador de transacciones llamado nonce se incrementará con cada transacción enviada desde su cuenta. Esto permite que las billeteras que no almacenan toda la cadena de bloques rastreen su ubicación en el esquema de firma de hipertree con preservación del estado.
Estado actual del proyecto y planes para el futuro.
Después del lanzamiento del "libro blanco", el grupo se reponía con varios desarrolladores nuevos y se comenzó a trabajar en la implementación del plan. Informes de progreso regulares han aparecido en el sitio web del proyecto. Y para abril de 2017, la red de prueba QRL blockchain ya se había lanzado. El código fuente del proyecto se publica en Github. El proyecto se está discutiendo activamente en Bitcointalk y Reddit.
En mayo de 2017, se realizó una ICO en el ecosistema Ethereum. ERC20 QRL token emitido. En total, se emitieron 65 millones de tokens. De estos, 52 millones de tokens están en circulación. En el transcurso de 200 años, se emitirán gradualmente otros 40 millones de monedas. Por lo tanto, el volumen total de emisión será de 105 millones de monedas. Cuando se inicia la red principal, estos tokens se pueden cambiar por monedas QRL en una proporción de 1: 1. Actualmente, los tokens están disponibles para su compra en intercambios como Bittrex, Upbit y Liqui. Las cotizaciones de QRL, según el sitio
coinmarketcap.com , se presentan en las siguientes figuras.


El lanzamiento de la red principal está programado para febrero-marzo de 2018.
En el futuro, se planea cambiar el algoritmo de consenso de la confirmación del trabajo a la confirmación de la participación (prueba de participación). El tiempo de residencia seguro esperado de los bloques será de 15-30 segundos.
Conclusión
El progreso de las tecnologías cuánticas se ha lanzado y no se puede detener. A medida que aparezcan máquinas cuánticas cada vez más productivas, la gama de tareas que resuelven crecerá continuamente. Hackear una defensa criptográfica existente, no adaptada a los ataques de una computadora cuántica, ha sido uno de los temas centrales de muchos
foros de seguridad .
QRL es la primera tecnología blockchain diseñada para resolver este problema. En el futuro, por supuesto, aparecerán otros. ¿Cuál de ellos será el más exitoso? El tiempo lo dirá.
Agradecimientos
El autor agradece a
kamnik por preparar una parte significativa del material, y especialmente por la parte técnica, así como a
SannX por las críticas constructivas y las correcciones.
Referencias
- Algoritmo de orilla .
- Factorización prima en una computadora cuántica (IBM) .
- Factorización del número 15 en factores simples en una computadora cuántica (MIT) .
- Informe sobre experimentos en una computadora de 51 qubits .
- Informe del Grupo de Investigación Internacional sobre la estabilidad de Bitcoin frente a una computadora cuántica .
- Usando el algoritmo de generación de claves ECDSA en la cadena de bloques de Bitcoin .
- Sobre la resistencia de Bitcoin a los ataques informáticos cuánticos .
- Confirmación de transacción en la red Bitcoin .
- Información sobre comisiones en la red Bitcoin .
- Estadísticas de reutilización de direcciones de Bitcoin .
- Algoritmo de Quantum Grover .
- Firma extendida Winternitz .
- Aplicación de una firma única Vinternitsa basada en la función hash de GOST 34.11-12 .
- Geektimes sobre Ethereum .
- Esquema XMSS .
- Lenstra La elección de tamaños de claves criptográficas .
- GMSS
- CMSS
- Cursos de sistemas de criptomonedas .
- Foro anual de seguridad post-cuántica .
Material adicional
- ¿Es una computadora cuántica peligrosa para Bitcoin ?
Proyecto QRL
- Sitio del proyecto .
- Papel blanco .
- Presentación
- El blog
- Código fuente de GitHub .
- Hilo de discusión sobre Bitcointalk .