¿Qué es un Auditor de Smart Contracts? El trabajo mejor pagado en blockchain.

¿Sabias que existe un nicho dentro del desarrollo blockchain en el que los salarios rondan los 200.000 y 300.000 dólares al año? Sé que esto suena loquísimo pero así es, se trata de los auditores de smart contracts

Los auditores de smart contracts son profesionales expertos en desarrollo blockchain, y además también, especializados en la seguridad de estos contratos inteligentes. Su trabajo consiste en validar la seguridad y la integridad de los smart contracts, ellos tienen que asegurar que estos programas informáticos cumplen con todos los requisitos y especificaciones  dadas en cada momento, para que se comporten tal y como se espera.

Estos expertos lo que hacen es ir buscando vulnerabilidades y posibles errores en el código para corregirlos antes de que se desplieguen en la Blockchain. Si has visto algunos vídeos de este canal, sabrás que todo lo que se despliega la Blockchain se vuelve inmutable.

Esto quiere decir básicamente que no se puede modificar, y tampoco se puede borrar. Por esto la figura de los auditores de contratos inteligentes es tan tan importante. Ellos hacen posible que los smart contracts desplegados en la blockchain sean seguros y confiables.

Y precisamente por esta razón, son la auténtica Élite de los desarrolladores blockchain. Si un desarrollador Blockchain ya tiene un salario medio de 100 mil dólares al año, tratándose de este perfil de desarrollador, estamos hablando de literalmente más del doble.

Hay ofertas de trabajo como auditor de smart contracts por más de 200 mil e incluso de 300 mil dólares al año.

Y al final esto es un poco por lo que siempre comentamos. A día de hoy ya hay escasez de desarrolladores Blockchain normales y las empresas ofrecen altísimos salarios por ellos. Pues si hay falta de los desarrolladores estándar, imaginad el nivel de escasez al que llegamos si se trata de auditores de contratos inteligentes, que son este mismo tipo de profesional pero más especializado.

Como quizá haya mucha gente que no tiene muy claro qué hay que hacer para llegar a ser auditor de contratos inteligentes, o directamente no sabía ni que este tipo de profesional existía y ni siquiera estaba en su abanico de posibilidades para el futuro, vamos a explicar todos los pasos que hay que seguir para llegar a serlo.

APRENDE A PROGRAMAR

Aprender a programar es algo fundamental para ser auditor. Los smart contracts al final son programas informáticos escritos en algún lenguaje de programación y precisamente por eso, es muy importante que tengas algo de experiencia programando.

Si ya eres programador, este primer paso ya lo llevas avanzado así que ya estás un poco más cerca. Pero si en cambio, todavía no tienes conocimientos sobre programación o estás empezando, nosotros en Conquer Blocks siempre te recomendaremos que comiences por lenguajes de programación como por ejemplo JavaScript.

JavaScript es uno de los lenguajes de programación más utilizados a día de hoy, y de hecho, casi todos los desarrolladores (por no decir todos) han utilizado en su aprendizaje o trabajo este lenguaje.

Otra opción también es Python, que también es uno de los lenguajes que más se utiliza hoy en día en el desarrollo de software y además es muy fácil de aprender porque la sintaxis es muy sencilla.


APRENDE DESARROLLO BLOCKCHAIN

Este puede que sea el paso más importante de todos los que vamos a comentar hoy. Evidentemente, para ser auditor de contratos inteligentes, tienes que saber como funciona el desarrollo blockchain en primer lugar. De lo contrario estaríamos construyendo básicamente la casa por el tejado.

Y para aprender desarrollo blockchain, lo principal es saber qué es la blockchain y como funciona. Si todavía no sabes esto, te recomiendo que vayas a un vídeo que tenemos en nuestro canal, explicándote detalladamente precisamente esto. Esto es vital, porque por muy buen desarrollador de software que seas, no puedes programar sobre una tecnología que no conoces.

Una vez ya sabes cómo funciona la tecnología blockchain, lo siguiente es elegir la Blockchain en la que quieras trabajar. Hoy en día existen muchísimas redes en las que puedes desarrollar smart contracts, y eso es genial porque quiere decir que hay competencia y que la tecnología está evolucionando y creciendo. Pero también hay que ser prácticos en este sentido.

Desde luego, si hay una blockchain que marca la diferencia con todas las demás en cuanto al desarrollo blockchain, es sin duda Ethereum.

Ethereum fue la primera cadena de bloques en la que se pudo desarrollar software complejo, y después de ella vinieron todas las demás. ¿Cuál es la ventaja entonces de elegir Ethereum?  Pues básicamente, ademas de ser la mejor, la mayoría de las redes que se crearon después que permitían desarrollar software complejo, lo hicieron basándose en la Ethereum Virtual Machine. Con lo cual, tu código va a ser desplegable en cualquiera de estas redes.

Es decir, que si eliges Ethereum, básicamente estás eligiendo también indirectamente un montón de redes más.

Genial. Ya hemos elegido blockchain y ahora toca especializarse en ella. Toca aprender un lenguaje con el que desarrollar smart contracts y este no puede ser otro que Solidity.

Solidity es el lenguaje de programación oficial de la blockchain de Ethereum y como os he comentado hace un momento, también es compatible con otras blockchains. Este lenguaje es muy parecido a JavaScript y a Python así que si ya eres desarrollador, no te costará aprenderlo.

Aprender Solidity es algo sencillo si vienes de saber programar, y por eso el camino va a ser muy llevadero. Es muy importante aprender todas las bases que sustentan este lenguaje, y también saber todas las bibliotecas y estándares que más se utilizan.

Esto último es algo imprescindible por que estamos hablando de que la tecnología blockchain se caracteriza básicamente por que todo es público, con lo cual hay muchísimas plataformas de código abierto que podemos usar para nuestros desarrollos, aunque es importante elegir aquellas que garantizan la seguridad y la integridad de los contratos inteligentes. La más conocida de estas bibliotecas es OpenZeppelin.

Otra cosa vital en el desarrollo blockchain, es la depuración y el testing de los contratos inteligentes. Pensad que, como os he comentado antes, lo que se despliega en la blockchain no se puede modificar ni borrar, por lo tanto hay que asegurarse de que los smart contracts que desplegamos están construidos lo mejor posible.


SABER LAS BUENAS PRÁCTICAS

A medida que aprendes a programar en Solidity, también tienes que ir adquiriendo buenas costumbres con escribiendo tu código. Solidity no es como otros lenguajes de programación, ya que en el desarrollo en la blockchain de Ethereum tenemos que tener en cuenta que todas las acciones que programemos, van a llevar asociado un coste en gas.

Un código eficiente gasta mucho menos gas que otro código lleno de redundancias y bucles innecesarios. Por eso es importante que te acostumbres a una serie de reglas no escritas para que tu código sea mejor.

Un ejemplo de esto sería por ejemplo, utilizar en cada momento el tipo de dato adecuado, evitar utilizar variables globales, intentar usar versiones recientes del compilador de Solidity, y bueno, un montón más.


VULNERABILIDADES TÍPICAS

Cuando ya se puede decir que eres un buen programador blockchain que aplica todas estas cosas que estamos contando a lo largo del vídeo, el siguiente paso ya es empezar a investigar sobre las vulnerabilidades más típicas de los contratos inteligentes.

Esto es vital si eres programador, pero todavía lo es más si quieres ser auditor de smart contracts. Tienes que tener en cuenta que hoy en día, TODO se puede hackear, pero imaginad lo atractivo que tiene que ser para estos atacantes maliciosos, intentar atacar contratos inteligentes que contienen fondos para hacerse con ellos.

Este tipo de ataques están a la orden del día así que es importante que aprendas a protegerte de estos riesgos. Si sabes protegerte como programador, sabrás identificar estas brechas de seguridad cuando seas auditor.

Un ataque típico, es por ejemplo el Reentrancy attack. Si quieres saber de qué se trata, te lo explicamos y también te demostramos cómo te pueden robar todos los fondos de un smart contract utilizando este ataque. Ve a verlo, porque te va a encantar, y te vas a dar cuenta de la importancia que tiene esto.


APRENDER HERRAMIENTAS DE AUDITORÍA

Bueno, pues cada vez nos vamos acercando más al fin último que es, ser auditor de contratos inteligentes, y por eso llegados este punto en el que ya sabemos programar en Solidity, lo hacemos teniendo en cuenta las buenas prácticas, asegurándonos de que nuestros contratos son seguros y además ya conocemos las vulnerabilidades más comunes y sabemos cómo solucionarlas, llegamos ya al siguiente nivel y es un cambio ABSOLUTO de mentalidad.

Hasta el paso anterior éramos desarrolladores blockchain así que teníamos mente de desarrollador. Y qué significa esto? Pues que actuábamos a la defensiva. Es decir, ponemos empeño continuamente en defender nuestros smart contracts, en tratar de que no tengan brechas de seguridad.

Pero ahora ya estamos a un paso de poder ser auditores de contratos inteligentes, por lo tanto no tenemos que defender contratos inteligentes, sino que tenemos que tomar el papel del atacante.

Después de tener experiencia como desarrollador y después de haber aprendido y practicado todas las posibles vulnerabilidades que puede tener un contrato inteligente, te será fácil encontrar la manera de literalmente ATACAR el contrato que estás auditando.

Esta es la mejor forma de medir las consecuencias del ataque, y también es la mejor forma de darse cuenta de qué brechas de seguridad existen para poder cubrirlas.

Para esto, hace falta tu conocimiento evidentemente. Pero también es importante que aprendas a manejar algunas herramientas que te van a facilitar mucho la vida en este trabajo de auditor de contratos inteligentes.


Te vamos a enseñar dos ejemplos que te van a servir si decides tomar este camino:

1. La primera herramienta, es Slither. Slither es un framework de análisis estático Solidity escrito en Python3. Ejecuta un conjunto de detectores de vulnerabilidades, imprime información visual sobre los detalles del contrato y proporciona una API para escribir fácilmente análisis personalizados. Slither permite a los desarrolladores encontrar vulnerabilidades, mejorar la comprensión del código y crear rápidamente prototipos de análisis personalizados.

2. La otra herramienta de la que os queremos hablar es Mythril. Mythril es una herramienta de análisis de seguridad para bytecode EVM. Detecta vulnerabilidades de seguridad en contratos inteligentes construidos para Ethereum, Hedera, Quorum, Vechain, Roostock, Tron y otras blockchains compatibles con EVM. Utiliza la ejecución simbólica, la resolución SMT y el análisis de taint para detectar una variedad de vulnerabilidades de seguridad. También se utiliza (en combinación con otras herramientas y técnicas) en la plataforma de análisis de seguridad MythX.


MANTENERSE INFORMADO

Y para terminar, el último paso que tienes que seguir y que, si vas a dedicarte a esto, vas a tener que seguir haciendo hasta que se acabe tu carrera profesional, es mantenerte informado.

El conocimiento técnico que ya has aprendido, te ayudará muchísimo a evolucionar como auditor, pero también es vital que una vez ya sepas todo esto, te mantengas al tanto de todas las novedades que van surgiendo en la tecnología blockchain.

La tecnología avanza a pasos agigantados, y con ella también, los actores maliciosos, que cada vez usan técnicas más complejas para atacar las redes que les interesan.

Por eso, es tu obligación como auditor, estar alerta para enterarte de todas las metodologías nuevas de ataque que pueden ir surgiendo con el paso del tiempo, y también es tu obligación aprender a resolverlas.

Clase gratuita sobre programación blockchain

En Conquer Blocks hemos creado una masterclass 100% gratuita y al grano, con el camino que debes seguir para convertirte en desarrollador blockchain de éxito.

📖 Si prefieres seguir leyendo, accede a este artículo: Aprender a programar en Solidity desde cero.

🎥 Si quieres acceder a la clase gratis de Desarrollo Blockchain, puedes acceder ahora mismo pulsando aquí.



El programa de Desarrollo Blockchain más vendido del mercado

Descubre el Máster en Desarrollo Blockchain de Conquer Blocks

Descubre el Máster en Desarrollo Blockchain de Conquer Blocks