Ver más

Mira dos veces antes de cruzar ese puente ¿Son seguros los bridges?

4 mins
Únete a Nuestra Comunidad de Trading en Telegram

EN RESUMEN

  • El sector está actualmente usando Bridges de low-cost.
  • Los ataques a los bridges Wormhole y Meter.io han hecho sonar todas las alarmas.
  • Vitalik aboga por el multi-chain en lugar del cross-chain.
  • promo

Los recientes ataques sobre Wormhole y Meter.io han comenzado a generar innumerables dudas entre los expertos y los usuarios sobre la seguridad en los bridges (Puentes), o plataformas para realizar cross-chain, es decir, intercambiar activos entre blockchains diferentes. ¿Quizás no estábamos preparados aún para esto o es que (como dijo Vitalik) podemos aspirar a intercambiar activos dentro de blockchains de las mismas características en la misma capa (multi-chain) y no al cross-chain?

El uso de los puentes

Intercambiar activos de diferentes blockchains ha sido uno de los mayores desafíos una vez que las criptomonedas comenzaron a subir con fuerza. Poder realizar arbitraje entre blockchains, es una de las técnicas más utilizadas por usuarios avanzados a la hora de obtener altas rentabilidades.

En un principio, la solución fue emplear préstamos donde la garantía era la cantidad equivalente por la que querías cambiar tus activos. Es decir, si quieres cambiar 1 BTC  por la cantidad equivalente en ethers, pones ese bitcoin como garantía y los ethers equivalentes serán prestados al usuario.

De repente el uso de puentes lo cambió todo. Poder cambiar tus activos directamente de una blockchain a otra supuso un gran cambio y permitió a los usuarios hacerlo sin la fórmula del préstamo. Sin embargo, todo avance conlleva un riesgo y el empleo de los puentes no podía ser menos. La centralización y el control de accesos en los contratos inteligentes que gobiernan los puentes tarde o temprano iban a ser atacados por la manera en la que se estaban implementando.

Bridges low-cost

Técnicamente, un puente simple funciona de la siguiente manera:

  • Tenemos una blockchain A de donde se quiere pasar activos a la Blockchain B
  • En el medio colocamos un relé, conocido como relayer que permitirá procesar y enviar las transacciones de una blockchain a otra interactuando con los contratos inteligentes desplegados en ambas blockchains. Se podría decir que es una especie de validador.

El principal problema de esto es: ¿quién valida al validador?. Existen soluciones de código abierto que permiten construir puentes en un tiempo relativamente corto.

En este ejemplo (haciendo un bridge entre dos redes de test de Ethereum, Rinkeby y Goerli, se puede ver cómo el relayer está procesando los bloques a la espera de una transacción:

Sin embargo, si paramos el relayer, podemos ver qué ocurrirá a la hora de hacer el cambio de assets de una blockchain a otra.

Idealmente, un puente debería tener al menos 3 relayers, pero vemos como la plataforma nos permite tener solo uno… incluso ninguno.

Intentamos ahora pasar una cantidad de 100 tokens de una blockchain a otra. Primero aprobamos la transacción.

Y podemos ver que se aprueba:

Como vemos no ha afectado para nada que tengamos el relayer parado. Ahora vamos a depositar los tokens para realizar la transacción entre blockchains:

La transacción se ha realizado con éxito:

Al comprobar la cartera de la blockchain A comprobamos que los 100 tokens han desaparecido; sin embargo, nunca llegarán a la otra blockchain, ya que el relayer está parado. ¿Dónde están los tokens?.

Buscando en los contratos inteligentes desplegados en la Blockchain A, vemos que los 100 tokens están almacenados en un contrato llamado Handler, que es el encargado de manejar las transacciones. Por otra parte, este contrato tiene un mecanismo para enviar los fondos que se han quedado “perdidos” en el bridge:

Esta función, adminWithdraw, puede enviar fondos desde la dirección del contrato inteligente del handler a cualquier receptor y solo la puede llamar el que desplegó el contrato inteligente del handler, o sea, el administrador. 

Esta solución es altamente peligrosa, ya que se está confiando en la buena fe de alguien simplemente porque el puente no está correctamente implementado.

Ataque a Wormhole y Meter.io

El pasado 2 de febrero de 2021, el bridge llamado Wormhole entre Solana y Ethereum sufrió un ataque por valor de aproximadamente 325 millones de dólares.

Sin entrar en muchos detalles técnicos, el atacante fue capaz de imprimir 120,000 wETH en el lado de Solana. Es decir, fue capaz de generar de la nada 120,000 tokens equivalentes a ETH en el lado de Solana del puente. El problema fue que cuando se dispuso a cambiarlos de wETH a ETH el sistema no comprobó en ningún momento que dichos tokens eran wETH válidos. En resumen, no se realizó una correcta verificación de la firma en el proceso de creación de la aprobación de la acción del validador (VAA por sus siglas en inglés).

Hack ethereum

Días más tarde, Meter.io sufrió un ataque en su bridge por un valor aproximado de 4,3 millones de dólares. En este caso, un error en el código que emitía los mismos eventos para depositar diferentes tipos de tokens ayudó a los atacantes a hacer falsos eventos de  depósitos sin tener realmente fondos.

La idea de Vitalik

Vitalik Buterin, uno de los creadores de Ethereum, escribió una serie de tuits en enero de este año que parecían premonitorios. Vitalik aboga por el multi-chain en lugar del cross-chain.

Para poder realizar cross-chain se deberían seguir dos reglas fundamentales:

  1. La primera que se usen wrapped tokens, es decir versiones de ese token con un valor copiado del token original en una blockchain donde no es token nativo y segundo solo usar tokens nativos. Es decir, podemos cambiar ETH por SOL de Ethereum a Solana, pero no cambiar ETH por wETH en Solana.
  2. Por otra parte, Vitalik imagina zonas de soberanía donde haya un universo de Ethereum donde muchos activos puedan intercambiarse entre sí y lo mismo para un universo de Avalanche, etc., pero no intercambiar activos entre universos. Es decir, multi-chain en lugar de cross-chain.

Para explicar esto, pone un ejemplo sencillo: Si tenemos 100 ETH y los cambiamos por DAI (en la misma capa), incluso si un ataque del 51% se lleva a cabo, es decir, que el 51% de los mineros o validadores se pongan de acuerdo  para llevar a cabo ciertas acciones en la red, seguirías teniendo tus 100 ETH o lo equivalente en DAI. Sin embargo, si tienes 100 ETH y los cambias por wETH en el lado de Solana, cuando el ataque del 51% sea llevado a cabo, quizás tus wETH valen ahora 60ETH, ya que los wETH no están completamente respaldados. Por último resaltar, que ni siquiera aplicar mecanismos criptográficos tan avanzados como las pruebas de conocimiento cero podrían solucionar este problema.

Dicho todo esto, a partir de ahora…¿mirarás dos veces antes de cruzar algún puente?

Trusted

Descargo de responsabilidad

Descargo de responsabilidad: De conformidad con las pautas de Trust Project, este artículo de opinión presenta la perspectiva del autor y puede no reflejar necesariamente los puntos de vista de BeInCrypto. BeInCrypto sigue comprometido con la transparencia de los informes y la defensa de los más altos estándares periodísticos. Se recomienda a los lectores que verifiquen la información de forma independiente y consulten con un profesional antes de tomar decisiones basadas en este contenido.

gabi-urrutia-e1622551651519.jpeg
Gabi Urrutia
Director de Seguridad en Halborn, que ofrece ciberseguridad a empresas cuyo core es Blockchain. Ha auditado cientos de proyectos de Ethereum, Cosmos, Polkadot o Tezos. Es co-autor del curso de SANS Institute: SEC554 Blockchain and Smart Contract Security.
READ FULL BIO
Patrocinado
Patrocinado