El 27 de julio fue presentado al mundo Porosity, el decompilador de contratos inteligentes para Ethereum. El fundador de Comae Technologies, Matt Suiche, publicó en el blog oficial de la empresa los detalles de este nuevo programa para la plataforma Ethereum.
De acuerdo con la publicación realizada por Suiche, esta invención surge de la necesidad de revisar los contratos inteligentes, los cuales son susceptibles de contener errores. Cabe destacar que en Ethereum, una vez que estos son compilados en el formato binario específico (bytecode EVM) e iniciados en la red, no hay manera de demostrar y garantizar que estos códigos no contengan fallas, que pueden ser aprovechadas por los hackers malintencionados, tal como sucedió con el robo a DAO el año pasado, en donde un código mal escrito fue el talón de Aquiles.
Bajo este orden de ideas, es necesario recalcar que Solidity es el lenguaje de alto nivel de programación más empleado por los desarrolladores de Ethereum. Por tal motivo, Porosity, surge como un programa complementario para revisar los códigos en dicho lenguaje, y de esa manera detectar sus errores, y consecutivamente, disminuir su vulnerabilidad frente a ataques cibernéticos.
Porosity es el primer decompilador que genera contratos inteligentes de sintáxis de Solidity legibles por humanos desde cualquier bytecode EVM, ya que los contratos inteligentes compilados son todos visibles en la red Ethereum, esto significa que ahora todos los contratos pueden ser revisados en cualquier momento. Porosity elimina un obstáculo principal para interactuar con contratos de origen desconocido y ayuda a fomentar el pensamiento de la blockchain de «confiar pero verificar”.
Matt Suiche
Fundador
Aun cabe señalar que el uso de esta herramienta de código abierto (disponible en GitHub) para analizar contratos inteligentes también va dirigida a las empresas que utilizan redes privadas de Ethereum (conocidas como Quorum), quienes podrán analizar los contratos que reciban de otros miembros de dicha red privada, podrán llevar a cabo de manera automatizada las revisiones y análisis de riesgos en redes semi-públicas, así como también podrán emplearlo con fines de seguridad en la red privada.
Si deseas conocer más acerca de este proyecto, puedes consultar las diapositivas y el Libro Blanco de Porosity, puestos a disposición del público, de parte de Suiche.
4
Tengo entendido que una vez un contrato inteligente este hecho y corriendo no tiene forma de corregir esos errores a través de actualizaciones a menos que se realice algún fork al mismo para corregir el código, así que ; cual seria la finalidad de este decompilador mas que el de analizar el contrato inteligente sin opción a modificar el código del mismo en caso de errores ?.
si tu primero despliegas en una testnet o una private chain en la cual tu seas el que controla todos los nodos puedes hacer dichas pruebas y mejoras ya que si tuvieras que reiniciar algo solo tendrian que borrar y crear de nuevo la cadena, nunca se debe crear un contrato sin antes probarlo en estas cadenas privadas, teniendo esta herramienta de porosity se agilizaría el tiempo de búsqueda de bugs por lo cual es muy posible que empecemos a ver mas desarrolladores lanzando nuevos contratos
Bueno seria un avance , pequeño pero avance al fin, teniendo presente que los ajustes podrían hacerse sin necesidad de «tumbar» la red antes de lanzar el Smart Contract ,ya esto se hace es la fase de depuración del código, el problema radica en esos errores que se encuentran o que alguien por «casualidad» encuentra en el contrato justo cuando este esta corriendo ( lo que sucedió hace unos días con Parity ), es allí donde se presenta la tarea hasta ahora imposible de introducir una actualización de seguridad sin necesidad de bifurcar la red, digo imposible por que todas estas plataformas, me refiero al mundo de las criptos en general ; se basan en la descentralización , donde tienes millones de nodos corriendo de forma independiente y autónoma así que , cualquier modificación del código de un contrato inteligente siempre pasara obligatoriamente por el consenso de toda una red sin embargo ; como escribí mas arriba, es un avance y hasta ahora están apuntando en la dirección correcta.