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.
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?
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?
Figura 2: Libro dedicado a "Bitcoin: La tecnología Blockchain y su investigación" de Yaiza Rubio y Félix Brezo |
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
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.
Figura 4: Webapp de Gnosis Safe
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.
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
- Blockchain & SmartContracts: Una serie para aprender
- BlockChain & SmartContrats: Primer SmartContract con Solidity
- Blockchain & SmartContracts: Cómo probar y desplegar un SmartContract en Ethereum
- WWW, Web 1.0, Web 2.0, Web 3.0, Web3 y ¿Web 4.0?
- Metaverso, multiverso y las tierras digitales en que vivimos en forma de avatar
- Los Fan Tokens vs. las Criptomonedas y los NFTs: Level 101
- Tokenomics: Las criptomonedas y las "Proof-of-work": Level 101
- Los NFTs y el registro mundial de los dueños de activos digitales en el Metaverso
- BitCoin: Blockchain y su investigación
- BlockChain & SmartContrats: El Internet descentralizado y el almacenamiento off-chain en IPFS
- Reentrancy Attack: Cómo te roban criptomonedas por un bug en tu SmartContract
- BlockChain & SmartContract: Bugs que pueden dejar tu SmartContrat "fuera de juego"
- Blockchain & SmartContracts: Patrones y buenas prácticas de seguridad
- Blockchain & SmartContracts: Herramientas de Auditoría de Seguridad de SmartContracts
- BlockChain & SmartContracts: Ataque de phishing a tx.origin y robo de criptomonedas
- BlockChain & SmartContracts: Ataques de Ice Phishing
- Blockchain & SmartContracts: Herramientas de análisis dinámico
- ZIION: Una distribución Linux para auditar SmartContracts (& BlockChain)
- Dominios Web3 en Etherenum Name Service y la trazabilizad de las transacciones Blockchain
- BlockChain & SmartContracts: Actualizar SmartContracts como los grandes protocolos
- Jumping level up (from) web2 (to) web3: Vulnerabilities & SCAMs - SmartContracts
- 20 millones (Euros) en Tokens de Optimism perdidos por no saber cómo funcionan los Wallets Multifirma
No hay comentarios:
Publicar un comentario