-
La propuesta de mejora solo aplicaría a las llaves privadas de las direcciones de cartera.
-
Aumentar la resistencia a colisiones es el objetivo principal de la mejora.
Recientemente Vitalik Buterin, cocreador de Ethereum, publicó una propuesta de mejora de seguridad en la que se plantea cambiar el tamaño de las direcciones de cartera de Ethereum, pasando de los 20 a los 32 bytes.
El propósito que busca esta mejora es aumentar «la resistencia a colisiones que poseen los hashes de las direcciones públicas» o lo que es lo mismo, evitar que dos llaves privadas diferentes tengan acceso a la misma dirección pública.
Cabe resaltar que esta mejora, por lo menos en la propuesta publicada por Buterin, solo aplicaría para las claves privadas EOA, que corresponden a las direcciones de cartera, y no para los contratos inteligentes, que continuarían utilizando las direcciones de 20 bytes. No obstante, se establece la creación de una «tabla de traducción» la cual es un algoritmo para comprimir y descomprimir las nuevas direcciones de 32 bytes, para que así puedan funcionar sin problemas con los contratos inteligentes.
Resistencia a colisiones: lo posible de lo imposible
Un hash es un algoritmo básico. Posee una entrada y una salida bajo un formato único. Si la entrada tiene un cambio mínimo, sea una coma o un acento, la salida será totalmente diferente.
En criptografía, la resistencia a colisiones hace alusión a la imposibilidad de que 2 entradas diferentes generen la misma salida. Cosa que, si bien parece imposible, matemáticamente es una posibilidad que existe. Esto se podría traducir en que dos llaves privadas diferentes puedan tener acceso a una misma dirección pública.
Actualmente, la resistencia a colisiones de las direcciones de Ethereum es de 2^80. Esto indica que existe una probabilidad bastante pequeña de que se puedan crear dos entradas diferentes para una misma salida. Poniéndola en términos más visuales, el valor de 2^80 es un 1 acompañado por otros 32 dígitos.
En perspectiva, un millón de trillones (cuatrillón) posee 25 dígitos. Con la nueva actualización se pretende aumentar la imposibilidad hasta 2^160. Bitcoin actualmente cuenta con una resistencia a colisiones de 2^90.
Claro está, si bien es un dilema presente, el ser vulnerable a un ataque de esta índole requiere que el atacante posea conocimientos muy avanzados en criptografía, además de contar con un supercomputador que permita ejecutar tal cantidad de iteraciones, hasta dar con las entradas del hash correspondientes.
Protección ante la computación cuántica
Dentro del foro en que fue publicada la propuesta de Vitalik, un usuario inquirió que la propuesta de mejora debería ir de la mano como protección ante una potencial sorpresa de la computación cuántica. Como ya reportó CriptoNoticias sobre la supuesta supremacía cuántica declarada por Google. Esto debido a que, de ser cierto, la computación cuántica implicaría un crecimiento exponencial del poder de cálculo actual, lo que rompería, no solo las claves privadas de las criptomonedas, sino la criptografía del Internet tal y como lo conocemos.
Vitalik aseveró, respondiendo la pregunta del usuario, que direcciones inclusive de 26 bytes son suficientes para la era postcuántica.
Alternativa de 20 bytes
Al final de la propuesta, Buterin deja abierta la alternativa de que, si bien las direcciones de 32 bytes no sean aceptadas, se utilice un esquema de 20 bytes.
Estos serán utilizados en un formato divido: 15 bytes para el esquema de la dirección y los 5 restantes para fijar una identificación, que permitirá validar que el dueño de la dirección sea una única clave privada. El identificador sería el mismo que se establecería en las direcciones propuestas de 32 bytes.