Pasar al contenido principal

Pierden medio millón en criptomonedas y acusan al informático: "El error es de la empresa"

Pierden medio millón en criptomonedas
Marco Verch/Flickr
  • La empresa PayPro, fundada por dos españoles, ha perdido todo el dinero recaudado en una emisión de criptomoneda (ICO) por un "error de programación"
  • La compañía subcontrató la programación de su ICO y culpa del fallo al desarrollador, a quien va a demandar
  • Pero el error estuvo en el despliegue del código, que ejecutó la propia empresa
  • Varios abogados consultados consideran que la responsabilidad es de PayPro, no del desarrollador subcontratado ni de la empresa que auditó el código

Han sido 1.000 ethers, unos 450.000 euros al cambio actual. La empresa PayPro, fundada por Pablo Ruiz y Gabriel Llamas, con sede en Londres y oficina en Barcelona, ha perdido todo el dinero recaudado en su emisión de criptomonedas por un "error de programación", tal y como adelantó La Vanguardia el jueves.

El fallo estuvo en unas comillas: al desplegar el código (al ponerlo en marcha), olvidaron entrecomillar la dirección de Ethereum (una serie de letras y números) donde debían recibir el dinero y JavaScript, el lenguaje de programación usado, lo interpretó de otra manera. Resultado: todo el dinero ha ido a una cuenta que no es y a la que nadie puede acceder.

En lugar de escribir esto: web3.toHex("0x132623d797FE61f8E1D1aE2aA17Fc997a4f9bf77")
Escribieron esto, sin comillas: web3.toHex(0x132623d797FE61f8E1D1aE2aA17Fc997a4f9bf77)

Así que en lugar de ir a esta cuenta han ido a esta. En blockchain, cada clave pública lleva asociada una clave privada: en este caso, nadie tiene la clave privada asociada a la clave pública en la que está el dinero perdido.

¿Quién tiene la culpa?

PayPro pretendía crear un banco descentralizado basado en blockchain y lanzó su ICO (initial coin offer o emisión de criptomoneda, destinada a recaudar financiación) el pasado mes de noviembre. Subcontrató el desarrollo a la empresa NineBells Networks SL, con sede en Pozuelo (Madrid). Tras el desarrollo, PayPro también contrató a un auditor acreditado por Consensys (una respetada consultora dentro del mundillo Ethereum) que dio el visto bueno y no vio ningún error.

Anuncio de la ICO de PayPro
Anuncio de la ICO de PayPro PayPro

Si el error está en el código, el código está desarrollado por una empresa externa y la auditora responsable no lo vio, ¿quién tiene la culpa? ¿La empresa que emite la criptomoneda o los que le desarrollaron esa emisión?

PayPro ha anunciado que demandará tanto a NineBells Networks como al auditor porque considera que la culpa es suya: de hecho, ha enviado un email a todos los inversores afectados explicando lo que ha pasado e incluyendo dos formularios, uno para que se unan a la demanda (y reciban su compensación en caso de ganar el juicio) y otro para recaudar otro medio millón de euros y continuar con su proyecto.

Sin embargo, el error no está en el código en sí, sino en su despliegue. Y ese despliegue lo hizo PayPro.

"Si fue un error de código, que parece que no, la culpa sería del programador o en su caso del auditor, aunque dependería también del nivel del error (básico, imprevisible...)", explica Cristina Carrascosa, abogada y profesora experta en blockchain. "Por la explicación dada, parece que el error fue de despliegue del contrato, aunque desconocemos quién lo realizó (el equipo de desarrollo o la propia empresa). Lo que parece ser claro es que el código era correcto y el problema estuvo en la 'traducción' de un lenguaje a otro en el despliegue".

Pablo Ruiz, uno de los fundadores del proyecto, explica que "el deploy (despliegue) lo hicimos nosotros siguiendo el código que había hecho el desarrollador externo. Quien le da a la tecla 'enter' somos nosotros. Es como si compras un ordenador y cuando lo enchufas se rompe: la culpa no es tuya, sino del fabricante".

"Si lo desplegaron ellos y el fallo fue al desplegar (como se ha demostrado) entonces la pregunta es si asumen el error, o dicen que las instrucciones estaban mal", añade Raúl Marcos, analista de criptomonedas en NextChance Group.

Es decir: la empresa que desarrolló el smart contract (el código necesario para lanzar una ICO) se lo entregó a PayPro con las instrucciones para poner en marcha ese código y, o bien no indicaba que el número de cuenta tenía que ir entre comillas o bien los empresarios no lo vieron y lo editaron mal, con el consecuente fallo y medio millón perdido.

"Como mucho, las instrucciones no hablaban de que había que poner comillas", continúa Marcos. "Pero aun así la culpa es suya: son ellos los que despliegan y los que no saben editar bien un smart contract".

¿Por qué no se probó antes de hacerlo público?

Otra de las dudas que tienen los expertos consultados es si antes de hacer pública la ICO y la dirección de envío de dinero se hicieron pruebas para comprobar que todo estaba bien, porque si se hicieron tendrían que haber detectado el error.

"Es raro que no se hiciesen pruebas para ver dónde iba el dinero antes de hacerlo público", considera el abogado David Maeztu. "Lo que deberían haber hecho es probar a desplegar esos smart contract en alguno de los entornos de prueba de ethereum y comprobar que las direcciones escritas en blockchain estaban bien", añade Marcos.

Según PayPro, estas pruebas sí se hicieron pero no detectaron el fallo.

"Se hicieron pruebas", explica Ruiz. "El informe no hizo ningún tipo de referencia al error que surgió al final. Entre sus conclusiones, destacó que la calidad del smart contract era 'superior a la media'".

El informe del auditor, al que también demandará la empresa, dice de "forma implícita" que sí se hicieron pruebas. En cualquier caso, si de verdad se han hecho es fácil demostrarlo. "Todo en blockchain es público, tanto la main net como la test net (entorno de prueba), así que sólo tienen que mostrar dónde está la ICO de PayPro en test net", añade Marcos. Esto es un simple enlace.

Desde PayPro aseguran que pueden demostrar que hicieron las pruebas aunque no detectaran el fallo y que pueden mostrar su ICO en entorno de pruebas.

¿Y ahora qué?

De momento, PayPro ha echado balones fuera: no devolverá el dinero a sus inversores, demandará a las terceras partes (empresa de desarrollo y auditor) y pedirá otro medio millón de euros a la comunidad. También ha enviado una carta a la fundación Ethereum esperando una solución.

"Lo que solicitan es el llamado rollback", explica la abogada Carrascosa. "En Ethereum últimamente está habiendo mucho debate en torno a la recuperación de fondos, especialmente desde que a través de un EIP (Ethereum Improvement Proposal) se propuso recuperar los fondos perdidos por Parity [otra empresa que perdió el dinero en una ICO]. He tenido ocasión de conversar con algunos de los desarrolladores core de Ethereum, y con algunos de los que están involucrados en ese EIP, y aunque en el caso de Parity pudiese haber tenido algún sentido, creo que en el de PayPro no lo tiene. Al final, esto es una ICO, un proyecto privado en el que parece que se ha cometido un error de bulto. La Fundación aún no ha tomado decisiones sobre la recuperación de fondos como herramienta en la red Ethereum, aún queda mucha discusión y dudo mucho que vayan a admitir la petición. Recordemos que hasta ahora las reglas del juego en esta red (salvo alguna excepción) han sido claras: la pérdida de fondos es absolutamente posible y no existe obligación de recuperarlos".

Te puede interesar