¿Por qué son tan importantes las auditorías de seguridad de contratos inteligentes?

Decir que vivimos en la “era de las ICO” es una gran subestimación..

Han generado miles de millones de dólares en ingresos y prácticamente se han convertido en un nombre familiar en el proceso. Sin embargo, con tanto dinero circulando, se debe tener especial cuidado para asegurarse de que los contratos inteligentes no sean explotados y que el dinero generado sea seguro..

La codificación defectuosa o descuidada puede llevar a una serie de ataques de piratas informáticos como el ataque de reentrada, el ataque de desbordamiento / desbordamiento, etc. Recuerde, al final del día, no es solo su dinero lo que está en juego.

Entonces, habiendo dicho eso, entendamos qué son los contratos inteligentes y los diferentes tipos de contratos que existen..

¿Por qué son tan importantes las auditorías de seguridad de contratos inteligentes??

¿Por qué son tan importantes las auditorías de seguridad de contratos inteligentes?

Diferentes tipos de contrato inteligente

Los contratos inteligentes son contratos automatizados. Son autoejecutables con instrucciones específicas escritas en su código que se ejecutan cuando se cumplen ciertas condiciones..

¿Por qué son tan importantes las auditorías de seguridad de contratos inteligentes?

Puede obtener más información sobre los contratos inteligentes en nuestra guía detallada aquí.

Los contratos inteligentes son cómo se hacen las cosas en el ecosistema ethereum. Cuando alguien quiere realizar una tarea en particular en ethereum, inicia un contrato inteligente con una o más personas.

Los contratos inteligentes son una serie de instrucciones, escritas utilizando el lenguaje de programación “solidez”, Que funciona sobre la base de Lógica IFTTT también conocido como el SI-ESTE-ENTONCES-ESA lógica. Básicamente, si se realiza el primer conjunto de instrucciones, ejecute la siguiente función y luego la siguiente y continúe repitiendo hasta llegar al final del contrato..

Hay tres tipos de contratos inteligentes:

  • Totalmente en contratos que cumplen con los estándares de la cadena y que no tienen transferencias de ether (o tokens compatibles). Estos son los más fáciles de auditar ya que siguen un estándar particular. Dado que están completamente en la cadena de bloques y no tienen transferencias de éter, no es vulnerable a los ataques.
  • Totalmente en contratos que cumplen con los estándares de la cadena que han permitido transferencias de Ether como ICO. Estos contratos son un poco más difíciles de auditar que los anteriores. Dicho esto, los contratos que habilitan las ICO suelen seguir plantillas que facilitan la auditoría..
  • Finalmente, tenemos contratos que tienen interacciones fuera de la cadena como Oráculos, canales, etc. Estos son extremadamente difíciles de auditar ya que involucran algunas operaciones que están fuera de la cadena de bloques. De hecho, no será exagerado decir que auditar completamente estos contratos es casi imposible.

Muy bien, ahora que sabemos qué son los contratos inteligentes, veamos la importancia de auditar estos contratos.

Importancia de la auditoría

Es inútil contarle sobre la importancia de la auditoría sin contarle sobre el truco más famoso en la corta historia de las ICO..

El DAO, también conocido como la Organización Autónoma Descentralizada, era un contrato inteligente complejo que iba a revolucionar Ethereum para siempre. Básicamente, iba a ser un fondo de capital de riesgo descentralizado que financiaría todos los DAPPS futuros realizados en el ecosistema..

La forma en que funcionó fue bastante sencilla. Si quisiera tener algo que decir en la dirección de DAPPS que se financiaría, entonces tendría que comprar “Tokens DAO” por una cierta cantidad de Ether. Los tokens DAO eran indicadores de que ahora eres oficialmente parte del sistema DAO.

Entonces, ¿cómo se iba a aprobar y construir DAPPS? Bueno, en primer lugar necesitan que los curadores los incluyan en la lista blanca, que eran básicamente figuras decorativas en el mundo ethereum. Después de obtener su sello de aprobación, los titulares de tokens DAO los votarán. Si la propuesta obtiene una aprobación del 20% en la votación, obtendrán los fondos necesarios para comenzar..

El potencial del DAO y la flexibilidad, control y total transparencia que ofrecía no tenía precedentes; la gente se apresuró a conseguir su parte del pastel. Dentro de los 28 días de su formación, acumuló más de $ 150 millones en éter en una venta colectiva. En ese momento, tenía el 14% de todos los tokens de éter emitidos hasta la fecha..

Puede que se pregunte, todo está bien, pero ¿cómo sale uno del DAO? ¿Qué pasa si se aprueba algún DAPP del que no eres un gran admirador, entonces cómo puedes optar por no participar en el DAO? Para habilitar esto, se creó una puerta de salida llamada “Función de división”. Con esta función, recuperaría el éter que ha invertido y, si así lo desea, incluso podría crear su propio “DAO infantil”. De hecho, puede separarse de varios titulares de tokens DAO y crear su propio DAO Child y comenzar a aceptar propuestas.

Sin embargo, había una condición en el contrato: después de separarse del DAO, tendría que conservar su éter durante 28 días antes de poder gastarlos..

Así que todo se ve bonito y elegante por ahora… excepto que había un pequeño problema. Mucha gente vio esta posible laguna y la señaló. Los creadores de DAO aseguraron que esto no sería un gran problema. Lo único es que realmente fue un gran problema. Esto mismo creó toda la tormenta que dividió a Ethereum en Ethereum y Ethereum Classic..

El 17 de junio de 2016, alguien aprovechó esta laguna jurídica en la DAO y desvió un tercio de los fondos de la DAO. Eso es alrededor de $ 50 millones de dólares. La laguna jurídica que descubrieron los hackers fue bastante sencilla en retrospectiva.

Si uno desea salir del DAO, puede hacerlo enviando una solicitud. La función de división seguirá los siguientes dos pasos:

  • Devolver al usuario su Ether a cambio de sus tokens DAO.
  • Registre la transacción en el libro mayor y actualice el saldo interno del token.

Lo que hizo el hacker fue crear una función recursiva en la solicitud, así es como fue la función de división:

  • Toma los tokens DAO del usuario y dales el Ether solicitado.
  • Antes de que pudieran registrar la transacción, la función recursiva hizo que el código regresara y transfiriera aún más Ether para los mismos tokens DAO..
  • Esto siguió y siguió hasta que se sacaron $ 50 millones en Ether y se almacenaron en un DAO infantil y, como era de esperar, el pandemonio atravesó toda la comunidad de ethereum..

Entonces, para resumir todo.

Se suponía que el DAO era una dApp revolucionaria que iba a cambiar Ethereum para siempre. Sin embargo, debido a una simple falla en el código de contrato inteligente, un hacker pudo desviar $ 50 millones en Ether. Como resultado, sucedió lo siguiente:

  • El DAO cerró
  • El valor del éter se desplomó
  • El drama resultante dividió a toda la comunidad Ethereum en dos, Ethereum y Ethereum Classic..

El DAO, más que nada, sirve como un recordatorio de por qué las ICO deben asegurarse de invertir en servicios de auditoría de calidad. La parte realmente triste es que esto podría haberse evitado si el contrato se hubiera presentado a un servicio de auditoría lo suficientemente decente..

Esto también personifica el principal problema al que se enfrentan la mayoría de los contratos inteligentes modernos: la ingeniería excesiva.

La mayoría de los contratos son desarrollados por varios desarrolladores, lo que inevitablemente conduce a un nivel de complejidad innecesariamente alto. Este alto nivel de complejidad conduce a una mayor vulnerabilidad que aumenta la superficie de ataque del Dapp.

Entonces, habiendo dicho eso, veamos los enfoques fundamentales que existen para contratar la auditoría.

Enfoques fundamentales de la auditoría

Existen dos enfoques fundamentales a la auditoría de contratos inteligentes:

  • Análisis de código manual
  • Análisis de código automático.

Análisis de código manual

Se debe realizar un análisis manual si tiene un equipo de desarrollo de tamaño decente. Básicamente, el equipo revisará y examinará todas y cada una de las líneas de código y las probará para detectar diferentes problemas de seguridad. Si bien no hace falta decir que esta es la mejor manera de realizar una auditoría, el problema sigue siendo el hecho de que consume mucho tiempo. Además, si aún no tiene su propio equipo de desarrollo, le costará mucho dinero contratar la cantidad requerida de desarrolladores para revisar su código en profundidad..

Análisis de código automático

Por otro lado, el análisis automático de código ahorra a los desarrolladores una tonelada de dinero ya que utilizan sofisticadas pruebas de penetración para ayudarlos a encontrar vulnerabilidades. Los desarrolladores utilizan software como Truffle para realizar pruebas de código automáticas. También pueden usar Populus, que es un marco basado en Python.

Si bien este método es rápido y rentable, tiene varios problemas.

Las pruebas automáticas pueden pasar por alto muchas vulnerabilidades y también pueden identificar erróneamente un código como problemático aunque no lo sea.

Entonces, la solución más ideal será una combinación de la minuciosidad del análisis manual y el tiempo y la eficiencia económica del análisis automático. Eso es lo que hemos logrado con BountyOne.

Le presentaremos BountyOne pronto, sin embargo, antes de hacerlo, necesitamos que le informe sobre el estado actual de la industria de auditoría..

El estado actual de la auditoría

Bueno, para decirlo suavemente, el estado actual de la industria de la auditoría está roto. Hay dos cosas que vale la pena tener en cuenta:

  • En primer lugar, la oferta de desarrolladores con conocimientos suficientes para ejecutar diferentes iteraciones del código para encontrar vulnerabilidades es extremadamente baja. Es una zona muy enrejada.
  • En segundo lugar, la demanda es extremadamente alta. Solo mire la gran cantidad de ICO que existen. Obviamente, todos quieren auditores adecuados para sus contratos inteligentes..

Por estas razones, el precio de las auditorías y las pruebas adecuadas se dispara..

El costo exacto de realizar una auditoría de contrato inteligente realmente depende de una serie de factores clave.

Como hemos dicho antes, si no tiene su propio equipo de desarrolladores, deberá subcontratar su contrato, lo que inflará enormemente su presupuesto..

Dicho esto, un contrato inteligente simple sin lógica comercial cuesta alrededor de $ 4000. Los contratos inteligentes más complicados y avanzados pueden ir desde $ 50,000 hasta $ 100,000.

Además, si eso no es suficiente. Por lo general, hay una lista de espera de 3 a 4 semanas y luego se necesitan 8 semanas para completar el proceso de auditoría..

Entonces, no solo está gastando mucho dinero, sino que también está perdiendo mucho tiempo. Es por eso que hemos introducido la plataforma BountyOne, para:

  • Reúna a diferentes desarrolladores de todo el mundo en una plataforma
  • En segundo lugar, ayudará a los creadores de proyectos a ahorrar mucho tiempo y dinero y aún así lograr la mejor auditoría posible..

Muy bien, así que te presentamos BountyOne.

¿Qué tiene de diferente BountyOne??

Piense en BountyOne como el “Uber” de los auditores de contratos inteligentes. Cualquier auditor puede optar por trabajar en cualquier contrato que esté actualmente activo en la plataforma. Todos y cada uno de estos auditores son examinados exhaustivamente por nosotros. Pasan por un proceso de solicitud detallado que se asegura de que solo los mejores auditores accedan a nuestra plataforma.

Todo el proceso de auditoría pasa por tres etapas:

  • Nivel 1: Los auditores trabajan en el contrato y envían sus versiones.
  • Etapa 2: Los auditores senior luego miran el trabajo realizado por los auditores y lo califican de 0 a 10
  • Etapa 3: La comunidad verifica el trabajo que han realizado los auditores senior y los auditores para ver si todo está en su lugar..

Esta “auditoría de tres pasos” asegura que el trabajo de todos sea verificado, no solo dos veces, sino tres veces. Entonces, ahora que conocemos una descripción general, entremos en detalles.

Etapa 1: Auditoría

¿Por qué son tan importantes las auditorías de seguridad de contratos inteligentes?

El contratante envía un contrato y le asigna una cantidad particular de Ether. Las recompensas se enumerarán en la plataforma como una especie de tablero de anuncios. Los contratos aparecerán como “En curso”.

¿Por qué son tan importantes las auditorías de seguridad de contratos inteligentes?

Ahora, cualquier auditor que haya sido autorizado por BountyOne puede optar por trabajar en este contrato. La forma en que lo inician es apostando algo de su éter en el contrato. El razonamiento detrás de esta apuesta es simple, para asegurarse de que las cosas se hagan a tiempo.

Uno de los mayores problemas con los servicios de auditoría de contratos inteligentes actuales es que consume mucho. Como hemos mencionado antes, puede que sea necesario >50 días para que se audite un contrato normal.

En BountyOne nos aseguramos de que el tiempo sea una prioridad al permitir que nuestros auditores firmen un contrato urgente. Básicamente, si no completan su trabajo en la cantidad de tiempo dada, perderán su participación..

10 auditores pueden trabajar en un proyecto a la vez.

Etapa 2: Calificación

¿Por qué son tan importantes las auditorías de seguridad de contratos inteligentes?

Ahora viene la segunda etapa del proceso..

Los auditores han creado y presentado sus versiones del contrato, así que ahora, ¿cómo elegimos el mejor contrato de manera justa? Para ello, es necesario seleccionar un jurado..

Tres auditores senior pueden optar por convertirse en jurados para un caso de auditoría en particular al apostar ethereum en el contrato. Un auditor senior es básicamente un auditor que ha realizado al menos 3 auditorías exitosas en el ecosistema BountyOne. Por lo tanto, estos auditores senior pueden clasificar el trabajo de cada auditor individualmente de 0 a 10, siendo 0 el más bajo y 10 el excepcional..

Imagine que tenemos un hipotético contrato inteligente A y solo dos auditores están trabajando en él, Alice y Bob. Imagínese que tres auditores senior marcan a Alice y Bob así:

¿Por qué son tan importantes las auditorías de seguridad de contratos inteligentes?

Bien, resulta que Alice ha hecho un gran trabajo y Bob ha hecho un trabajo terrible. Esto es al menos lo que ha decidido nuestro jurado.

Sin embargo, es necesario realizar un nivel más de verificación. ¿Recuerda cómo dijimos que cada auditor senior debe apostar su propio ethereum para convertirse en miembro del jurado? Aquí es donde entra en juego esa apuesta.

Etapa 3: Verificación

¿Por qué son tan importantes las auditorías de seguridad de contratos inteligentes?

La etapa final de la auditoría es el control de la comunidad. Toda la comunidad de auditores de BountyOne tendrá en sus manos lo siguiente:

  • El contrato original que se otorgó para la auditoría.
  • Todos los contratos auditados que fueron presentados por los auditores
  • Las calificaciones otorgadas a los contratos auditados por los auditores senior

El control de la comunidad aprovecha la “sabiduría de la multitud” para asegurarse de que los auditores superiores hayan calificado los contratos auditados de manera justa.

Para hacer esto, verificarán todos y cada uno de los contratos auditados y verán qué grado de mejora tiene con respecto al contrato original presentado. Después de eso, revisarán las calificaciones otorgadas por el Auditor Sr. y verán si es justo o no..

Si la comunidad no encuentra ninguna falla, entonces muy bien. Sin embargo, suponga que encuentran algunas discrepancias evidentes. Supongamos que verificaron las auditorías de Bob y piensan que ha hecho un buen trabajo y que 2/10 es una puntuación demasiado baja para él. Si eso sucede, levantarán una bandera roja..

Esto también funciona a la inversa..

Suponga que un auditor senior dio muy buenas calificaciones a una auditoría por debajo del promedio. Entonces la comunidad hará una señal de alerta que auditará y anulará las calificaciones que el auditor ha recibido..

Etapa 3B: Bandera roja (opcional)

SI la comunidad levanta una bandera roja, entonces y solo entonces se forma este segundo grupo de jurados de auditores senior. Los auditores senior que formaron parte del jurado original no podrán participar en este..

Si este jurado descubre que ciertos auditores senior no han hecho su trabajo correctamente en el jurado original, entonces su participación se retira inmediatamente. Como tal, los auditores senior siempre tienen un incentivo económico para asegurarse de que están marcando adecuadamente las auditorías..

Etapa 4: Recompensa

¿Por qué son tan importantes las auditorías de seguridad de contratos inteligentes?

Muy bien, ahora que sabemos cómo funciona todo el proceso, veamos más en profundidad el mecanismo de recompensa. ¿Cómo recompensa la plataforma BountyOne a sus participantes para asegurarse de que todos obtengan sus recompensas justas??

El desglose funciona así:

  • El 70% de la recompensa total de éter va a los auditores.
  • 20% del éter total va a los señores auditores.
  • SI la comunidad encuentra algo malo en las auditorías o en el trabajo del Auditor Senior, entonces pueden levantar una bandera roja que será verificada por un nuevo jurado de Auditores Senior. Si esto funciona, entonces la comunidad y este segundo jurado de auditores senior obtendrán el 10% del Ether total..
  • Sin embargo, si la comunidad no encuentra absolutamente nada malo, entonces el 10% adicional del éter total volverá a los auditores. Entonces, en este caso, obtienen un total del 80%
  • A los auditores se les pagará en proporción a las calificaciones que hayan recibido..

Tomemos un ejemplo de esto y veamos cómo se desarrollará el desglose de recompensas.

Supongamos que tenemos un contrato con un precio de recompensa de 10 ETH. Supongamos que solo dos auditores, Alice y Bob, estaban trabajando en ello, y durante el proceso de auditoría, la comunidad no lo hizo tienes que entrar en juego.

Entonces, Alice y Bob recibirán el 80% del precio total de recompensa de Ether, que es, 8 ETH.

Ahora, supongamos que los auditores senior calificaron a Alice y Bob así:

¿Por qué son tan importantes las auditorías de seguridad de contratos inteligentes?

La puntuación total recibida es: 9 + 10 + 9 + 3 + 3 + 2 = 36

De esto, la parte de Alice es: 9 + 10 + 9 = 28 de 36 que es 28/36 * 100 = 77,78%

La participación de Bob es: 3 + 3 + 2 = 8 de 36 que 8/36 * 100 = 22.22%

Entonces, después de la auditoría, Alice obtendrá 6.24 ETH (77.78% de 8) y Bob obtendrá 1.76 ETH.

Puedes ver el infografia de todos los procesos en BountyOne aquí.

Por qué BountyOne sobre otras plataformas?

Entonces, ¿por qué debería seleccionar BountyOne sobre otras plataformas de auditoría? Bueno, echemos un vistazo:

  • Es más barato porque no tenemos auditores a tiempo completo para los que debemos pagar cientos de miles de dólares. Tienen otros trabajos de desarrollo de solidez y simplemente hacen esto como un conductor de Uber..
  • Les pagamos en función del rendimiento y no simplemente por decir que leen el código. Esta es la razón por la que los auditores están económicamente incentivados para hacer el mejor trabajo posible..
  • Los auditores corren el riesgo de perder todo su dinero apostado si no hacen un buen trabajo y no presentan su trabajo a tiempo. Esto asegura que no haya retrasos innecesarios.
  • Además, la comunidad (incluidos otros auditores) puede ganar una cantidad significativa de dinero refutando los trabajos que otros han realizado..

Todos estos factores se combinan para garantizar que el producto final que está obteniendo sea la mejor auditoría posible de su contrato inteligente..

Conclusión

Ahí lo tienes, BountyOne, el mercado descentralizado de Bounty. Creemos que este modelo, que utiliza incentivos económicos y un entorno más amigable para el usuario, ayudará a traer un orden muy necesario en un espacio altamente caótico y roto, es decir, auditoría de contratos inteligentes..

Si desea obtener más información sobre nosotros, puede empieza aquí

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me