lunes, septiembre 19, 2022

20 millones (Euros) en Tokens de Optimism perdidos por no saber cómo funcionan los Wallets Multifirma

El pasado 1 de Junio, Optimism, una conocida Blockchain de tipo L2 (Layer 2) anunció que sacaría su propio Token $OP, un Token que permitiría votar sobre el futuro del desarrollo de esta plataforma Blockchain. Optimism aportó 20 millones de unidades de su nuevo Token a Wintermute, una empresa que se encarga de repartir está liquidez entre diferentes Exchangers, para que el Token se pudiera comprar/vender en el mercado. 

Figura 1: 20 millones de Tokens de Optimism perdidos por
no saber cómo funcionan los Wallets Multifirma.
(Imagen: “Hooded person stealing coins from an ATM” por Dall-e)

Lo cierto es que, en realidad, Optimisim envió las unidades del Token a un Wallet Multifirma proporcionado por Wintermute, pero estos 20 millones nunca llegaron a su destinatario. ¿Cómo pudo pasar esto? ¿Quizás fue culpa de Optimism que no los envió nunca? ¿Alguien les robó por el camino? 
Como os podéis imaginar, los Tokens sí que salieron de la cartera de Optimism, ya que esto se puede ver en la Blockchain, y también que fueron a parar a la dirección proporcionada por Wintermute. ¿Pero entonces qué sucedió? Pues parece ser que la respuesta correcta es que alguien los robó por el camino, pero para poder entenderlo vamos a ver primero qué son los Wallet Multifirma.

Wallets multifirma

Un Wallet Multifirma no es más que un “Wallet” que ejecuta transacciones si todos los “dueños” de este están de acuerdo en llevar a cabo esa acción. En casi todas las plataformas de Blockchain basadas en la EVM (Ethereum Virtual Machine) no existen por defecto más que los Wallets normales, en los que si tienes la clave privada puedes llevar a cabo transacciones. Es por eso que, si queremos Wallets de este tipo ,tenemos que recurrir a SmartContracts que pueden ejecutar transacciones de manera arbitraria, siempre y cuando se cumplan unas pre-condiciones para cada transacción.

Figura 3: Ilustración del funcionamiento de un Wallet Multifirma
  
Lo más común es que estos Wallets Multifirma tengan varios “dueños” (Wallets partícipes), de los cuales se necesita la aprobación de más de un 50% como requisito mínimo para poder validar la transacción. Un uso muy frecuente de estas Wallets es poder manejar Tokens con una mayor seguridad, ya que si se piden dos firmas de tres que haya, hará falta que los criminales tomen el control de dos Wallets para poder robar los Tokens.

Un tipo de Wallet Multifirma muy famoso es el Gnosis Wallet, que desde su web te permite iniciar sesión en Dapps que requieran de login mediante Wallet. Esto es muy importante dado que los “Wallets Multifirma” son solo contratos con lo que ciertas acciones no se pueden llevar a cabo, pero desde Gnosis han hecho compatible un montón de sistemas.


Este tipo de Wallets son contratos, por lo que para poder usarlo primero tenemos que desplegar un contrato en la Blockchain, pero si recordáis de anteriores artículos podemos desplegar contratos en diferentes plataformas de Blockchains y esto también sucede con los Wallets Multifirma. Debemos desplegarlos en cada una de las cadenas de Blockchains en las que lo queramos usar porque sino no existirá un SmartContract con el que podamos interactuar.

Al desplegar un SmartContract en una Blockchain, éste recibirá una dirección, pero si lo desplegamos en otra Blockchain no tiene porque tener la misma dirección; aunque normalmente, si somos ágiles, podremos hacer que los dos tengan la misma dirección. 

¿Cómo? Pues copiando y pegando “exactamente” los mismos datos de la primera transacción en la que desplegamos el Wallet y pegar la transacción en las demás platafromas de Blockchains EVM, pero no siempre saldrá bien. Puede que otra persona despliegue antes esa misma transacción y se quede con esa dirección en concreto en una cadena de Blockchain en particular. En este artículo se explica bien el problema.

El robo de los tokens de Optimism. ¿Qué ocurrió?

Ahora que sabemos qué son los Wallet Multifirma y cómo funcionan, podemos entender qué es lo que pasó en realidad. Wintermute había desplegado un Wallet Multifirma en la Blockchain de Ethereum para tener una mayor seguridad a la hora de manejar sus activos, pero se olvidaron de desplegarlo en la Blockchain de Optimism en la que se realizaría el Airdrop de los Tokens. 

Finalmente, Optimism envió los Tokens a esa dirección que no tenía desplegado ningún contrato y por lo tanto estos se habían quedado en el “limbo” dado que nadie tenía control sobre ellos. Una persona se dio cuenta de esto, y antes de que Wintermute pudiera arreglarlo, usó el truco que antes os mencioné para adueñarse de esa dirección que había recibido 20 millones de Tokens
Las consecuencias ya las conocéis, Por el error de comunicación, o por no saber cómo funcionan los Wallet Multifirma, 20 millones de Tokens fueron robados. Afortunadamente 18 millones de estos Tokens fueron devueltos por la persona que los cogió; de los otros dos millones, uno lo vendió al instante en un DEX y otro se lo quedó como “regalo” de parte de Wintermute por lo sucedido. Ahora que sabéis qué son los Wallet Multifirma, tened cuidado y no perdáis vuestros Tokens.

Más artículos de Web3, Blockchain & SmartContracts
Saludos,

AutorChema Garabito. Desarrollador Full-Stack. Ideas Locas Telefónica CDO.

No hay comentarios:

Entrada destacada

Tu Latch "Hack Your Innovation Contest": Haz un PoC & Hack por 1.000 €

El pasado Telefónica Innovation Day 2024 lanzamos oficialmente el " Tu Latch Hack Your Innovation Contest " en el que repartimos ...

Entradas populares