El código abierto no equivale a seguridad: ¿cómo pueden los usuarios comunes comprobar los riesgos reales de un contrato inteligente?


En el mundo Web3, a menudo escuchamos algunas palabras:


Código abierto, descentralización, contratos inteligentes, auditorías, transparencia en la cadena.


Todas estas palabras suenan muy fiables.


Pero hay una pregunta que merece una reflexión seria:


Si el código de un proyecto es público, ¿por qué los usuarios aún pueden correr el riesgo de perder sus activos?


La razón es que publicar el código solo hace posible verificarlo; no significa que todo el mundo lo haya verificado, ni que el contrato no tenga vulnerabilidades, que los administradores carezcan de permisos especiales o que los usuarios no puedan cometer errores.


Para los usuarios comunes, lo verdaderamente importante no es ver que el proyecto dice que es de código abierto, sino poder determinar:



  • ¿Puedo comprobar el contrato que está realmente en funcionamiento?


  • ¿Tiene el contrato permisos especiales que podrían afectar a los activos?


  • ¿Qué examina realmente un informe de auditoría?


  • ¿La operación que he autorizado al contrato supera lo que realmente necesito?


  • Si ocurre algo anómalo, ¿podré reconocer el riesgo a tiempo?


Hoy no vamos a decir qué proyecto es seguro ni a recomendar ningún token.


Desde la perspectiva de un usuario común, establecemos un marco práctico para comprobar los riesgos de los contratos inteligentes.


I. Primer paso: confirmar que el contrato que ves es realmente el que está en funcionamiento


Muchos usuarios ven una dirección de contrato en el sitio web oficial de un proyecto y creen que ya han completado el primer paso de verificación.


Pero eso no basta.


Debes confirmar algunos datos básicos.


1. ¿Coincide la dirección del contrato?


Comprueba la dirección del contrato publicada en los canales oficiales del proyecto y consúltala en un explorador de bloques fiable de la cadena correspondiente.


No confirmes una dirección basándote únicamente en resultados de búsqueda, comentarios en redes sociales, mensajes de grupos o enlaces enviados por otros usuarios.


Presta especial atención a los tokens con el mismo nombre, los sitios web falsos y las direcciones parecidas.


2. ¿Es correcta la red blockchain?


Un mismo proyecto puede desplegar distintos contratos en diferentes cadenas de bloques.


Aunque tengan el mismo nombre y el mismo icono, eso no significa que esos contratos tengan los mismos permisos, activos o condiciones de seguridad.


Al comprobar una dirección, también debes confirmar la red.


3. ¿Se ha verificado el código fuente?


Si el explorador de bloques indica que se ha verificado el código fuente del contrato, significa que la relación entre el código fuente publicado y el bytecode desplegado correspondiente cumple los requisitos de verificación de ese explorador.


Esto permite que terceros examinen la lógica del contrato.


Pero es importante tener claro que:


Que el código fuente esté verificado no significa que esté libre de vulnerabilidades.


La verificación resuelve la cuestión de la correspondencia entre el código y el contrato, no la de su seguridad.


Además, debes confirmar que estás examinando el contrato que realmente se utiliza, y no una dirección de contrato irrelevante del proyecto.


II. Segundo paso: comprobar los permisos del contrato, no limitarse a ver si el código es público


Este es uno de los aspectos que los usuarios comunes suelen pasar por alto.


Algunos contratos conservan los permisos de administrador incluso después de desplegarse.


Estos permisos no implican necesariamente que el proyecto actúe de forma maliciosa, pero pueden afectar a los activos de los usuarios, las reglas de las transacciones o el funcionamiento del protocolo.


Conviene prestar especial atención a los siguientes tipos de permisos.


1. Permiso para pausar


Algunos contratos permiten que direcciones específicas pausen las transferencias, las transacciones u otras funcionalidades.


Debes averiguar:



  • ¿Quién tiene el permiso para pausar?


  • ¿Qué funcionalidades se pueden pausar?


  • ¿Qué consecuencias tiene la pausa para los usuarios?


  • ¿Existe un mecanismo claro para reanudar la actividad?


En ocasiones, la función de pausa sirve como medida de protección de emergencia. Sin embargo, si el alcance de los permisos y las reglas de uso no son transparentes, a los usuarios les resulta difícil evaluar los riesgos correspondientes.


2. Permiso para acuñar


En el caso de tokens con mecanismos de emisión adicional, debes comprobar quién puede crear nuevos tokens y si la emisión está sujeta a límites de cantidad, plazos o reglas de gobernanza.


Si una dirección concreta puede emitir tokens adicionales sin límites claros, esto podría afectar a la oferta del token y a los intereses de sus titulares.


Sin embargo, no todos los tokens tienen una función de acuñación, y no todos los mecanismos de emisión adicional significan que un proyecto sea inseguro.


Lo fundamental es que los permisos sean claros y las reglas verificables.


3. Permiso del administrador para modificar parámetros


Algunos protocolos permiten que los administradores modifiquen las comisiones, las restricciones de transacción, las listas blancas, las reglas de uso de los fondos u otros parámetros clave.


Estos permisos pueden tener una finalidad operativa legítima, pero los usuarios deberían saber:


¿Quién puede hacer modificaciones?


¿Qué se puede modificar?


¿Las modificaciones están sujetas a un bloqueo temporal o a un mecanismo de gobernanza?


¿Se pueden consultar las operaciones correspondientes en la cadena?


No des por sentado que todas las operaciones importantes las decide la comunidad solo porque el proyecto afirme utilizar una gobernanza descentralizada.


4. Permiso para actualizar contratos proxy


Este aspecto merece especial atención.


Algunos contratos inteligentes utilizan un modelo proxy que permite actualizar la lógica de implementación conservando la dirección original o parte del estado del contrato.


Este diseño facilita la corrección de vulnerabilidades y la incorporación de funcionalidades, pero también plantea un problema:


Si un administrador o una dirección multifirma puede actualizar el contrato de implementación, el código que se ejecute en el futuro podría ser distinto del que ves hoy.


Por lo tanto, también debes comprobar:



  • ¿El contrato utiliza un modelo proxy?


  • ¿A qué contrato de implementación apunta actualmente?


  • ¿Quién tiene el permiso para actualizar?


  • ¿Las actualizaciones requieren una multifirma o un bloqueo temporal?


  • ¿Se publican y se pueden rastrear los registros de actualización?


Que el código de hoy se pueda examinar no significa que el código futuro no pueda cambiar nunca.


Por eso, al evaluar un contrato inteligente, no basta con analizar el código de un único momento.


III. Tercer paso: ¿qué puede demostrar realmente un informe de auditoría?


Cuando un proyecto dice que ha superado una auditoría de seguridad, muchos usuarios concluyen directamente:


«Si ya lo han auditado, no debería haber ningún problema».


Esta interpretación no es rigurosa.


Una auditoría puede ayudar a detectar vulnerabilidades en el código, problemas de diseño de permisos y otros riesgos de seguridad, pero sus resultados tienen un alcance y un periodo de validez definidos.


Como mínimo, los usuarios comunes deberían comprobar cuatro aspectos.


Primero: ¿quién realizó la auditoría?


Comprueba si el informe de auditoría procede de una fuente oficial que se pueda verificar de forma independiente, en lugar de ser solo una imagen en la página promocional del proyecto.


Segundo: ¿qué versión se auditó?


¿Coincide la versión del código a la que se refiere el informe con el contrato que está desplegado actualmente?


Si el proyecto modificó el código después de la auditoría, debes averiguar qué cambios se hicieron y si volvieron a revisarse.


Tercero: ¿qué abarcó la auditoría?


¿El informe cubre los contratos principales, los módulos de gestión de fondos, la gestión de permisos y los componentes relacionados?


Que un módulo haya superado una auditoría no significa que todos los componentes del proyecto se hayan examinado con el mismo nivel de detalle.


Cuarto: ¿se resolvieron los problemas detectados?


Debes comprobar los problemas detectados en la auditoría, las explicaciones del equipo sobre las correcciones y si la entidad auditora confirmó que se aplicaron.


Aunque el informe no señale problemas de alto riesgo sin resolver, eso no permite concluir que el contrato sea absolutamente seguro.


Las conclusiones de la auditoría deben interpretarse teniendo en cuenta el código real, la configuración de permisos y el funcionamiento del contrato.


Recuerda:


Una auditoría es una evaluación de seguridad, no una garantía de que tus activos estarán seguros en el futuro.


IV. Cuarto paso: a veces, las operaciones realmente peligrosas se originan en las autorizaciones del propio usuario


Además del diseño del contrato, las acciones de los usuarios también pueden entrañar riesgos.


Por ejemplo, en ciertas operaciones con tokens, DeFi o NFT, un sitio web puede pedirte que autorices a un contrato para usar tus tokens o realizar determinadas operaciones.


Muchos usuarios solo se fijan en si la transacción se completa y pasan por alto lo que implica la autorización en sí.


¿Qué es una autorización de tokens?


Por ejemplo, en el caso de los habituales tokens ERC-20, una autorización suele permitir que la dirección de un contrato especificado use los tokens correspondientes en tu nombre, hasta cierto límite.


El límite de autorización puede ser reducido o muy elevado, e incluso no tener un límite máximo explícito.


Aquí conviene distinguir dos conceptos:


Conectar la cartera no es lo mismo que autorizar la transferencia de tokens.


Conectar la cartera sirve principalmente para establecer una interacción entre el sitio web y la cartera; firmar una transacción de autorización puede conceder al contrato especificado permiso para usar realmente tus tokens.


Por lo tanto, cada vez que recibas una solicitud de autorización, debes comprobar:



  • ¿Cuál es la dirección del contrato que recibirá la autorización?


  • ¿A qué token se aplica la autorización?


  • ¿Cuál es el límite de la autorización?


  • ¿Es necesario este permiso para la operación que quieres realizar?


  • ¿El sitio web y la dirección del contrato proceden de canales oficiales fiables?


Si el límite de autorización supera claramente lo que necesitas, evalúa detenidamente si es necesario continuar.


Puedes comprobar y revocar los permisos que ya no necesites mediante un explorador de bloques fiable o una herramienta de gestión de autorizaciones.


Ten en cuenta, sin embargo, que revocar una autorización suele requerir una transacción en la cadena y puede generar comisiones de red. Revocar la autorización de un token tampoco elimina automáticamente otras autorizaciones ni otros tipos de riesgos.


Además, no todas las firmas corresponden a una transferencia ordinaria.


Algunas firmas pueden autorizar operaciones fuera de línea, órdenes u otras operaciones en la cadena. Por eso, no debes asumir que una firma no entraña riesgos solo porque la interfaz no muestre directamente un importe de transferencia.


Si no entiendes qué significa una firma en concreto, lo más prudente es detenerte y confirmar primero el contenido de la solicitud.


V. Quinto paso: no te fijes solo en lo que dice el proyecto; comprueba también lo que ocurre realmente en la cadena


Una característica importante de Web3 es que muchas operaciones clave dejan registros públicos en la cadena.


Esto permite realizar verificaciones independientes.


Por ejemplo, según el protocolo en cuestión, puedes comprobar:



  • los registros de despliegue y actualización de contratos;


  • los cambios en los permisos de administrador;


  • los ajustes de parámetros importantes;


  • las entradas y salidas de fondos;


  • los registros de eventos correspondientes;


  • las propuestas de gobernanza publicadas y sus registros de ejecución.


Sin embargo, que algo sea visible en la cadena no significa que sea fácil de entender directamente.


Para interpretar correctamente algunas operaciones, hay que consultar los registros de eventos, el código del contrato, los datos de llamada de la transacción y la documentación pertinente del protocolo.


Por lo tanto, los usuarios comunes no necesitan intentar comprender de una sola vez todos los datos de la cadena.


Puedes empezar con un hábito sencillo:


Cuando el proyecto anuncie una actualización importante, intenta comprobar la transacción correspondiente en la cadena, la dirección que la ejecutó y el contenido de los cambios.


Si un proyecto afirma haber completado una funcionalidad clave, pero no puede proporcionar información de despliegue o registros de operaciones verificables, al menos merece la pena pedir más explicaciones.


Del mismo modo, no deberías concluir de inmediato que un proyecto está falseando información porque no encuentres un registro concreto. También debes tener en cuenta la red correspondiente, el alcance de la búsqueda, la indexación y la forma específica en que se implementó.


La transparencia realmente valiosa no consiste solo en proporcionar información, sino en permitir que terceros la verifiquen de forma independiente.


VI. Sexto paso: una lista de comprobación de seguridad práctica para usuarios comunes


Antes de interactuar con un proyecto Web3 o un contrato inteligente desconocido, puedes realizar estas comprobaciones.


A. Proyecto y direcciones



  • ☐ Confirma el sitio web y la dirección del contrato a través de canales oficiales fiables.


  • ☐ Confirma la red blockchain correspondiente.


  • ☐ Comprueba si existen proyectos con el mismo nombre o direcciones fraudulentas.


  • ☐ Comprueba el estado de verificación del código fuente y su correspondencia con el contrato.


B. Permisos del contrato



  • ☐ Comprueba si existen permisos para pausar, acuñar o modificar parámetros clave.


  • ☐ Comprueba si se utiliza un mecanismo proxy de actualización.


  • ☐ Confirma quién controla los permisos de administrador o de actualización.


  • ☐ Averigua qué función cumplen realmente la multifirma, el bloqueo temporal y los mecanismos de gobernanza.


C. Auditoría de seguridad



  • ☐ Consulta el informe de auditoría completo, no solo las imágenes promocionales.


  • ☐ Comprobar que la versión auditada coincide con la versión desplegada actualmente.


  • ☐ Informarse sobre el alcance de la auditoría y el estado de los problemas detectados.


  • ☐ No interpretar los resultados de la auditoría como una garantía absoluta de seguridad.


D. Autorizaciones del usuario



  • ☐ Confirmar el destinatario y los activos de la autorización.


  • ☐ Comprobar el límite de la autorización y si es necesario.


  • ☐ Leer atentamente las solicitudes de firma y de transacción.


  • ☐ Revisar periódicamente las autorizaciones que ya no se necesitan.


E. Verificación continua



  • ☐ Prestar atención a los cambios importantes en los permisos y al historial de actualizaciones.


  • ☐ Comprobar si los avances clave anunciados por el proyecto cuentan con pruebas verificables.


  • ☐ Evitar tomar decisiones basándose únicamente en la popularidad en redes sociales o en las recomendaciones de otras personas.


  • ☐ Actuar con cautela ante operaciones anómalas que no se puedan explicar.


Si no puedes verificar algunos de estos puntos, no hace falta concluir de inmediato que el proyecto tiene problemas. Sin embargo, deberías confiar menos en él y evitar invertir fondos que no puedas permitirte perder mientras no se hayan aclarado los riesgos.


VII. Una última pregunta que merece más reflexión: ¿quién debería demostrar que algo es seguro?


Muchos proyectos quieren que los usuarios confíen en ellos.


Puede que presenten su arquitectura técnica, informes de auditoría, socios, hojas de ruta y una gran cantidad de descripciones de funcionalidades.


Pero, desde la perspectiva del usuario, lo verdaderamente importante es si esa información se puede verificar.


Como mínimo, un proyecto Web3 que merezca un análisis serio debería explicar con la mayor claridad posible:


¿Qué funcionalidades ya se han implementado?


¿Qué funcionalidades siguen en desarrollo?


¿Qué permisos controla el equipo?


¿Qué riesgos siguen existiendo?


¿Cómo pueden los usuarios verificar la información de forma independiente?


Esto no significa que todos los proyectos deban utilizar exactamente la misma arquitectura técnica ni que tener menos permisos garantice una mayor seguridad.


Lo fundamental es que los usuarios entiendan cómo funciona realmente el sistema y qué riesgos deben asumir.


En el caso de ONEA, también deberíamos aplicar el mismo criterio: al hablar de funcionalidades ya implementadas, aportar pruebas verificables; al mencionar planes futuros, distinguir claramente entre lo previsto y los resultados reales, sin presentar una visión de futuro como si ya se hubiera hecho realidad.


En Web3, la confianza no debería basarse únicamente en promesas, sino en pruebas continuas, independientes y verificables.


Debate interactivo


Supón que vas a utilizar un protocolo DeFi que nunca has probado. ¿Qué aspecto te gustaría verificar primero?


A. Si el contrato inteligente ha sido auditado de forma independiente y si el informe de auditoría corresponde a la versión actual.


B. Si el administrador tiene permisos para actualizar, pausar o modificar parámetros clave.


C. Qué autorizaciones tienes que firmar y qué operaciones podrá realizar el contrato después de la autorización.


D. Si las funcionalidades, los cambios en los fondos y las actualizaciones importantes anunciadas por el proyecto se pueden verificar mediante registros en la cadena.


Te invitamos a elegir una opción en los comentarios. También puedes contarnos qué riesgo crees que los usuarios comunes suelen pasar por alto.


Si te resulta útil esta lista, guárdala y vuelve a revisarla antes de conectarte a un protocolo Web3 que no conozcas.


Avance del próximo artículo: ¿cuál es la diferencia entre las listas negras, las listas blancas, la pausa de transferencias y las restricciones de transacción? ¿Cómo deberían evaluar los usuarios comunes lo que estos mecanismos implican para sus activos?


Aviso legal: este artículo tiene fines exclusivamente educativos sobre tecnología Web3 y riesgos de seguridad. No constituye asesoramiento de inversión ni garantiza la seguridad de ningún proyecto. Las auditorías de contratos inteligentes, la verificación del código fuente y los registros públicos en la cadena tienen sus propias limitaciones. Antes de realizar operaciones en la cadena, verifica de forma independiente las direcciones, los permisos y el contenido de las transacciones, y evalúa los riesgos por tu cuenta.