Después de la tan esperada fusión de Ethereum, es un momento ideal para pensar en cómo podemos mejorar también los contratos inteligentes. Esencialmente aplicaciones que se ejecutan en cadenas de bloques, los contratos inteligentes son un componente vital de nuestras aplicaciones Web3. Pero interactuar con ellos sigue siendo bastante peligroso, especialmente para los que no son desarrolladores. Muchos de los incidentes en los que los usuarios pierden sus criptoactivos son causados ​​por contratos inteligentes con errores o maliciosos.

Como desarrollador de aplicaciones Web3, este es un desafío en el que pienso a menudo, especialmente a medida que las oleadas de nuevos usuarios continúan incorporándose a varias aplicaciones de blockchain. Para confiar plenamente en un contrato inteligente, un consumidor necesita saber exactamente qué va a hacer cuando realicen una transacción, porque a diferencia del mundo Web2, no hay una línea directa de atención al cliente para llamar y recuperar fondos si algo sale mal. Pero actualmente, es casi imposible saber si un contrato inteligente es seguro o confiable.

Relacionado: El staking líquido es clave para la seguridad entre cadenas

Una solución es hacer que las billeteras sean más inteligentes. Por ejemplo, ¿qué pasaría si las billeteras pudieran decirnos si es seguro interactuar con un contrato inteligente? Probablemente sea imposible saberlo con 100 % de certeza, pero las billeteras podrían, como mínimo, agregar y mostrar muchas de las señales que los desarrolladores ya buscan. Esto haría que el proceso fuera más simple y seguro, especialmente para los que no son desarrolladores.

Aquí hay una mirada más profunda a las ventajas y desventajas de los contratos inteligentes, por qué ahora parecen el Salvaje Oeste y cómo podemos mejorar la UX para usarlos.

La promesa y el peligro de los contratos inteligentes

Para los desarrolladores, el uso de un contrato inteligente como backend para su aplicación tiene un enorme potencial. También aumenta el potencial de errores y exploits. Es genial que los desarrolladores puedan crear contratos inteligentes sin pedir permiso a nadie, pero eso también puede exponer a los usuarios a un riesgo considerable. Ahora tenemos aplicaciones que realizan transacciones de cientos de millones de dólares sin garantías de seguridad. Tal como está, simplemente tenemos que confiar en que estas aplicaciones están libres de errores y hacen lo que prometen.

Muchos no desarrolladores ni siquiera son conscientes de los problemas de seguridad involucrados y no toman las precauciones adecuadas cuando interactúan con aplicaciones basadas en blockchain. El usuario promedio puede firmar una transacción pensando que va a hacer una cosa, solo para descubrir que el contrato inteligente hace algo completamente diferente. Es por eso que los contratos inteligentes maliciosos son un vector de ataque principal para los malos actores.

¿Por qué los contratos inteligentes son el Salvaje Oeste?

Cuando una aplicación Web3 realiza una llamada de contrato inteligente, no sabe exactamente qué hará la transacción hasta que realmente la haga. ¿Acuñará su token no fungible (NFT) o enviará su dinero y tokens a un hacker? Esta imprevisibilidad es cierta para cualquier aplicación en línea, por supuesto, no solo para las aplicaciones Web3; predecir qué hará el código es muy difícil. Pero es un problema mayor en el mundo Web3, ya que la mayoría de estas aplicaciones son inherentemente de alto riesgo (están diseñadas para manejar su dinero) y hay muy poca protección para los consumidores.

La App Store es en gran parte segura debido al proceso de revisión de Apple, pero eso no existe en Web3. Si una aplicación de iOS comienza a robar el dinero de los usuarios, Apple la eliminará de inmediato para mitigar las pérdidas y revocará la cuenta de su creador.

Relacionado: América Latina está lista para las criptomonedas: solo intégrelas con sus sistemas de pago

Los contratos inteligentes maliciosos, por otro lado, no se pueden eliminar por cualquiera. Tampoco hay forma de recuperar los activos robados. Si un contrato malicioso agota su billetera, no puede simplemente disputar la transacción con la compañía de su tarjeta de crédito. Si el desarrollador es anónimo, como suele ser el caso con los contratos maliciosos, a menudo ni siquiera existe la opción de emprender acciones legales.

Desde la perspectiva de un desarrollador, es mucho mejor si el código de un contrato inteligente es de código abierto. Los contratos inteligentes populares suelen publicar su código fuente, una gran mejora con respecto a las aplicaciones Web2. Pero incluso entonces, es fácil pasar por alto lo que realmente está pasando. También puede ser muy difícil predecir cómo se ejecutará el código en todos los escenarios. (Considere este largo y aterrador Twitter hilo por un desarrollador experimentado que casi cae en una compleja estafa de phishing, incluso después de leer los contratos involucrados. Solo después de una segunda inspección más cercana se dio cuenta de la hazaña.)

Para agravar estos problemas, las personas a menudo se ven presionadas a actuar rápidamente cuando interactúan con contratos inteligentes. Considere una caída de NFT promovida por personas influyentes: a los consumidores les preocupará que la colección se agote rápidamente, por lo que a menudo intentarán realizar una transacción lo más rápido posible, ignorando cualquier señal de alerta que puedan encontrar en el camino.

En resumen, las mismas características que hacen que los contratos inteligentes sean poderosos para los desarrolladores, como la publicación sin permiso y el dinero programable, los hacen bastante peligrosos para los consumidores.

No creo que este sistema sea fundamentalmente defectuoso. Pero hay un montón de oportunidades para que los desarrolladores de Web3 como yo brinden mejores medidas de seguridad para los consumidores que usan billeteras y contratos inteligentes en la actualidad.

La UX de billeteras y contratos inteligentes hoy

En muchos sentidos, las billeteras como MetaMask parecen haber sido creadas para desarrolladores. Muestran muchos detalles técnicos profundos y minucias de blockchain que son útiles al crear aplicaciones.

El problema con eso es que los no desarrolladores también usan MetaMask, sin entender lo que significa todo. Nadie esperaba que Web3 se generalizara tan rápido, y las billeteras no se han puesto al día con las necesidades de su nueva base de usuarios.

Relacionado: Aprenda de Celsius: evite que los intercambios se apoderen de su dinero

MetaMask tiene ya hizo un gran trabajo al cambiar el nombre de la “frase mnemotécnica” a “frase secreta” para evitar que los consumidores la compartan sin saberlo con los piratas informáticos. Sin embargo, hay mucho más margen de mejora.

Echemos un vistazo a la interfaz de usuario (UI) de MetaMask, seguido de un par de maquetas que creé que describen algunas mejoras potenciales que podrían guiar a los consumidores hacia el “pozo de éxito.” (Por cierto, MetaMask aquí sirve como referencia, ya que se usa mucho en todo el mundo Web3, pero estas ideas de interfaz de usuario también deberían aplicarse a prácticamente cualquier aplicación de billetera). Algunos de estos ajustes de diseño podrían construirse hoy, mientras que otros pueden requerir técnico avances en el lado del contrato inteligente.

La siguiente imagen muestra cómo se ve la ventana actual de transacciones de contratos inteligentes de MetaMask.

Vemos la dirección del contrato inteligente con el que estamos interactuando, el sitio web que inició la transacción y luego muchos detalles sobre los fondos que estamos enviando al contrato. Sin embargo, no hay indicios de lo que hace esta llamada de contrato o cualquier indicador de que es seguro para interactuar con.

Posibles soluciones para mejorar los contratos inteligentes

Lo que realmente nos gustaría ver aquí son señales que nos ayuden como usuarios finales a determinar si confiamos o no en esta transacción de contrato inteligente. Como analogía, piense en el pequeño candado verde o rojo en la barra de direcciones de los navegadores web modernos, que indica si la conexión está encriptada o no. Este indicador codificado por colores ayuda a alejar a los usuarios inexpertos de peligros potenciales, mientras que los usuarios avanzados pueden ignorarlo fácilmente si lo prefieren.

Como ejemplo visual, aquí hay dos maquetas de diseño de experiencia de usuario rápida (UX) de transacciones MetaMask: una que probablemente sea segura y otra menos segura.

Estas son algunas de las señales en mi maqueta:

  • ¿Está publicado el código fuente del contrato? Los contratos de código abierto generalmente son más confiables porque cualquier desarrollador puede leerlos para encontrar errores y códigos maliciosos. MetaMask ya incluye varios enlaces a Etherscan, por lo que esta sería una señal simple y conveniente para agregar.
  • Puntuación de auditoría. Una auditoría de terceros es otra señal que puede determinar la confiabilidad. La principal pregunta de implementación aquí es cómo determinar este puntaje. ¿Ya existen estándares aceptados para esto? De lo contrario, una forma sencilla podría ser usar Etherscan, que admite la carga de auditorías. MetaMask, en este ejemplo, también podría mantener su propia lista de auditores o confiar en una lista de terceros. (Por lo que puedo decir, MetaMask ya hace esto para las API de NFT y la detección de tokens). En el futuro, es fácil imaginar una organización autónoma descentralizada para determinar los puntajes de auditoría de una manera más descentralizada.
  • ¿Qué puede hacer esta transacción? ¿Puede llamar contratos externos, y si es así, cuáles? Esto sería muy difícil de determinar a la perfección, pero me pregunto si sería factible una versión simple para contratos de código abierto. Ya existen muchos escáneres automatizados de vulnerabilidades de contratos inteligentes. Si esto no es posible para Solidity, me pregunto si podríamos diseñar un lenguaje de programación de contrato inteligente que lo hace permitir este nivel de análisis estático. Quizás las funciones individuales podrían declarar los permisos que necesitan y el compilador podría garantizar la conformidad.
  • Consejos de seguridad y educación. Si un contrato inteligente no tiene muchas señales de confiabilidad (vea la maqueta arriba a la derecha), la interfaz de usuario podría recomendar un conjunto apropiado de precauciones a tomar, como verificar si la dirección del contrato es correcta y usar una cuenta diferente. Estas son sugerencias hechas en el texto naranja, a diferencia del rojo, ya que la falta de señales no es necesariamente peligrosa; aquí, simplemente recomendamos que los usuarios opten por ser un poco más cautelosos con sus próximos pasos.

Al igual que muchas funciones existentes en MetaMask, estas funciones propuestas podrían desactivarse en la configuración.

Hacia un futuro más seguro

En el futuro, probablemente habrá muchas herramientas centradas en la seguridad basadas en los componentes primitivos que proporcionan las cadenas de bloques. Por ejemplo, es probable que veamos que los protocolos de seguros que protegen a los usuarios de los contratos inteligentes con errores se vuelven comunes. (Estos ya existen, pero siguen siendo bastante específicos).

Relacionado: ¿Qué impulsará la probable carrera alcista de las criptomonedas en 2024?

Sin embargo, los consumidores ya están usando aplicaciones Web3, incluso en estos primeros días, por lo que me encantaría ver que la comunidad de desarrolladores agregue más protecciones para ellos. ahora. Algunas mejoras simples a las billeteras podrían ser muy útiles. Algunas de las ideas antes mencionadas ayudarían a proteger a los usuarios sin experiencia y, al mismo tiempo, agilizarían el proceso de transacción para los veteranos de Web3.

Desde mi perspectiva, todo lo que no sea el comercio de criptoactivos en Coinbase (u otras grandes empresas) sigue siendo demasiado arriesgado para el consumidor medio. Cuando los amigos y la familia pregunten sobre la configuración de una billetera criptográfica de autocustodia para usar aplicaciones Web3 (seamos realistas, generalmente, para comprar NFT), comience siempre advirtiéndoles sobre los riesgos. Esto ahuyenta a algunos de ellos, pero las personas más decididas quieren usarlos de todos modos. Cuando nuestras billeteras sean más inteligentes, podremos sentirnos mucho mejor al incorporar la próxima ola de nuevos usuarios a Web3.

Devin Abbott es el fundador de Deco, una startup adquirida por Airbnb. Se especializa en herramientas de diseño y desarrollo, aplicaciones React y Web3, más recientemente con The Graph.

Este artículo es para fines de información general y no pretende ser ni debe tomarse como asesoramiento legal o de inversión. Los puntos de vista, pensamientos y opiniones expresados ​​aquí son solo del autor y no reflejan ni representan necesariamente los puntos de vista y opiniones de Cointelegraph.







Source link