El bug de Ethereum que cuesta 300 millones de dólares

 

Encontraron un bug en la billetera de Parity que accidentalmente hizo que se perdiera alrededor de 280 millones de dolares en ethers, de los cuales un poco más de 90 millones de los mismos pertenece a Gavin Woods, ex-desarrollador de Ethereum.

¿Cómo pasó esto?

Un usuario denominado devops199 (ghost) dice que ejecutó accidentalmente el bug mencionado y lo reportó en Github.

El contrato que se ejecutó, contenía una vulnerabilidad que el dueño del contrato pudo des-inicializar, dejando la posibilidad al usuario de convertir a Parity de una billetera regular a una multi-sig wallet. Este sucede, debido a que Ethereum no posee una diferenciación correcta de que es librería, contrato o cuentas.
Vale la pena acotar que la vulnerabilidad encontrada aquí estaba dentro de un parche liberada el 20 de julio, es decir, tenía más de 100 días de antigüedad. Esto se pudo dar en dos pasos:

Transacción 1

En una primera transacción, el usuario inició el mismo siendo el dueño de la librería -transacción 0xae7168deb525862f4fee3d987a971b385b96952– de Parity utilizando la función initWallet() que irónicamente fue una función originalmente utilizada en otro ataque el 19 de julio pasado. Haciendo esta pequeña modificación, el usuario convierte la librería-billetera en una billetera multi-sig regular (billetera multi-uso).

Transacción 2

Ya siendo el dueño (owner) de la librería (y ya siendo una multi-sig wallet), llamó a una rutina kill que paralizó todas las wallets que dependían de esta librería. Esto significa, que todas las wallets creadas luego del 20 de julio, están afectadas, dado que no pueden usar más esta librería.

En defensa del usuario que realizó todo esto(devops199 o ghost), no ha robado ni un ether de las cuentas ni tampoco intentó estafar a nadie pero congeló completamente todas las billeteras que dependían de Parity y tuvo la gentileza de notificar dicha vulnerabilidad.

Conclusión

Aquí me encontré con dos posturas sobre este accidente. La primera postura es la de Matt Suiche, quien alega que aquí hay una responsabilidad por parte del equipo de Parity que se les escapó completamente este bug. ¿Porque aquí hay una responsabilidad? Pues debido a que los smart-contracts que se utilizan en ethereum no son fácilmente parcheables, por lo tanto esta clase de errores no son algo que se pueda aceptar a la ligera dado el precio que se paga.

En el otro lado, está Dan Walton, quien alega que Ethereum está hecho para ser algo así como una sociedad sin seguros, sin jueces ni contratistas que quieran hacer una especie de escalada de desarrollo, como piensan las personas. Son muy pocos los desarrolladores de Ethereum –alega– y pasan más mucho más tiempo creando cosas antes que revisando contratos. Traduzco más corto: aquí hay una responsabilidad mínima por parte de Parity y su equipo.

Si bien es cierto que hay una responsabilidad por parte de la comunidad, también le excluye de la culpa a devops199-quien encontró el bug- pues no ha hecho otra cosa que un accidente al experimentar con Ethereum

¿Qué digo yo? Que los accidentes no existen. Por más feo que esto suene.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.