Un contrato inteligente alojado en una blockchain se ejecuta de forma autónoma una vez que se cumplen todos los términos o condiciones especificados en un contrato o acuerdo, eliminando la necesidad de intervención de un intermediario.
Los términos del contrato se escriben en código legible por máquina. Una vez que el contrato inteligente está completo, es irreversible y legalmente vinculante, lo que plantea la pregunta: ¿Es posible rescindir un contrato inteligente? Y lo que es más importante, ¿pueden anularse los contratos inteligentes?
Este artículo analiza si es posible revocar los contratos inteligentes y, si es posible, cómo se puede revocar el acceso de un contrato inteligente a las tenencias de criptomonedas.
¿Qué significa revocar contratos inteligentes?
Revocar un contrato inteligente normalmente significa desactivar o terminar su funcionalidad en una blockchain. Por ejemplo, la revocación puede detener el acceso al monedero de criptomonedas de un usuario y la capacidad de mover tokens. Además, la revocación de un contrato inteligente detiene el permiso para ver el saldo de tokens o la dirección pública de un usuario.
¿Por qué se revocan los contratos inteligentes?
Se puede revocar un contrato inteligente en varias circunstancias, como por ejemplo si no tiene intención de comprar, vender o transferir un activo o volver a utilizar el contrato inteligente.
En otros casos, desarrolladores malintencionados construyen puertas traseras en los contratos inteligentes, permitiendo el acceso no autorizado a los fondos.
¿Quién puede modificar un contrato inteligente?
Como cualquier contrato, una vez que las partes han acordado los términos del contrato, éstos son inalterables. Incluso si las partes quisieran hacerlo, los términos están escritos en la blockchain, que es inalterable. Esto hace que los contratos inteligentes sean inmutables.
La única forma de "cambiar" los términos de un contrato es "actualizar" el contrato, es decir, cambiar el contrato inteligente subyacente de una aplicación descentralizada (DApp) por otro. Alternativamente, las partes pueden elegir tener un contrato actualizable desde el principio, lo que permite modificaciones en el contrato inteligente.
¿Quién controla un contrato inteligente?
Nadie controla el contrato inteligente una vez que el código está escrito en la blockchain. El código se ejecutará si o cuando se cumpla o verifique una condición o estipulación predeterminada. La acción implica la actualización de la blockchain y el envío de notificaciones. Sólo las partes con acceso al contrato inteligente pueden ver los detalles de la transacción.
Dado que nadie tiene el control expreso del contrato, las partes deben determinar las estipulaciones y describirlas adecuadamente sin ambigüedades para garantizar su ejecución. Y esto lleva a la pregunta: ¿pueden bloquearse los tokens dentro de un contrato inteligente? Cuando un usuario envía tokens a un contrato inteligente, nadie puede comerciar con ellos ni retirarlos, lo que esencialmente los bloquea en él.
El contrato inteligente sólo liberará los tokens tras un periodo determinado o cuando se cumplan ciertas condiciones. Algunas plataformas permiten incluso personalizar el bloqueo de tokens, especificando el usuario la fecha y hora en que los tokens pueden estar disponibles.
¿Qué son las aprobaciones y permisos de tokens en los contratos inteligentes?
La única forma de protegerse contra la explotación de los contratos inteligentes es aprobar sólo el retiro de fondos necesario, evitar las plataformas no probadas y revocar las aprobaciones y permisos de tokens.
Pero, ¿qué son las aprobaciones y los permisos de tokens? Los contratos inteligentes permiten a las DApps automatizar el movimiento de tokens en el monedero de cada uno, de ahí las aprobaciones y permisos de tokens. Por lo tanto, las aprobaciones y permisos de tokens significan la aprobación del propietario de un contrato inteligente para retirar tokens de un monedero para ejecutar una operación. Un usuario puede utilizar varios medios para revocar el acceso de un contrato inteligente a sus tokens:
Revocar contratos inteligentes a través del explorador de bloques de tokens
Las redes individuales suelen tener exploradores de bloques, como Polygonscan y Etherscan, que contienen una sección de aprobación donde los usuarios pueden utilizar la herramienta de aprobación de tokens para revocar permisos y aprobaciones.
Estos son los pasos típicos que se siguen cuando se utiliza una herramienta de aprobación de tokens, y ten en cuenta que sólo el propietario de la dirección puede revocar los contratos inteligentes conectados:
1. Navega a la página de aprobación de tokens.
2. Escribe tu dirección en la barra de búsqueda y haz clic en "buscar".

3. Cualquier contrato inteligente asociado a la dirección que pueda gastar en nombre del usuario aparecerá en la lista de activos, que proporciona más información como la asignación de tokens del contrato inteligente, el hash de la transacción y los estándares de los tokens.
4. Conéctate al monedero haciendo clic en el botón "conectarse a Web3".

5. Una vez confirmada la conexión, selecciona qué contrato(s) deseas revocar.
Cómo revocar aprobaciones de tokens y permisos de contratos inteligentes en Ethereum
Estos son los pasos habituales para revocar contratos inteligentes en la mainnet de Ethereum:
Paso 1: Herramientas de revocación de acceso
Los usuarios pueden rastrear y revocar contratos inteligentes conectados a sus direcciones utilizando varias herramientas de revocación de acceso de terceros. Conéctate a cualquiera de estos sitios web para iniciar el proceso:
- approved.zone: Ethereum
- Revoke: múltiples redes
- EverRise: múltiples redes
- Ethallowance: Ethereum
- Unrekt: múltiples redes
- Beefy.finance: BNB Smart Chain
- Etherscan: Ethereum
- Cointool: múltiples redes
Paso 2: Conectar el monedero
Una vez conectado al sitio web, busca y haz clic en el botón "conectar monedero". Cuando conectes el sitio web a tu monedero, asegúrate de que están en la misma red, ya que las herramientas de revocación de acceso sólo funcionan en un tipo de cadena.
Por ejemplo, si se conecta a la red principal de Ethereum, no se puede revocar un contrato inteligente de Polygon, ya que sólo se admiten y muestran contratos inteligentes de Ethereum.
Paso 3: Seleccionar el contrato inteligente
La herramienta de contratos inteligentes presentará todos los contratos inteligentes compatibles, mostrando sus permisos de acceso y límites de gasto. Los usuarios deben seleccionar los que desean revocar. Si no estás seguro, selecciona todos y concede nuevos permisos en el siguiente lanzamiento de cada DApp.
Paso 4: Revocar el acceso
Haz clic en el botón "revocar", paga la transacción y espera un minuto o dos para completar la transacción. Cierra la sesión y vuelve a entrar en el sitio web para confirmar que la transacción revocada se ha realizado correctamente (el contrato inteligente no debería aparecer en la lista).

¿La revocación del acceso al token también pone fin a las estrategias DeFi?
No. Los usuarios conservarán sus posiciones en las estrategias de finanzas descentralizadas (DeFi), como pooling, staking y préstamos, lo que les permitirá seguir recibiendo recompensas. Sin embargo, puede afectarles significativamente, dependiendo del contexto y de cómo esté estructurada la estrategia.
En los ecosistemas DeFi, los usuarios suelen conceder a los contratos inteligentes permiso para acceder a sus tokens para diversas funciones como trading, préstamos o staking. Si un usuario revoca este acceso, el contrato inteligente ya no puede mover o gestionar los tokens del usuario en su nombre.
Esta acción puede interrumpir las estrategias en curso que dependen de la capacidad del contrato para interactuar con los tokens. Sin embargo, la estrategia DeFi subyacente no se termina, sino que se pausa o se hace inactiva hasta que se conceda de nuevo el acceso o se ajuste la estrategia.
¿Es lo mismo desconectar un monedero de un proyecto que retirar el permiso para utilizar fondos?
No, no es lo mismo. Desconectar un monedero de un proyecto sólo cancela los permisos que permiten a otros usuarios ver los saldos de tokens, la dirección pública y las actividades pasadas, y detiene el inicio de transacciones. Sin embargo, ten en cuenta que esto no impedirá la ejecución de transacciones.
Por otro lado, eliminar el permiso para utilizar fondos significa revocar el permiso de una DApp para acceder y mover el contenido de un monedero.
Aclaración: La información y/u opiniones emitidas en este artículo no representan necesariamente los puntos de vista o la línea editorial de Cointelegraph. La información aquí expuesta no debe ser tomada como consejo financiero o recomendación de inversión. Toda inversión y movimiento comercial implican riesgos y es responsabilidad de cada persona hacer su debida investigación antes de tomar una decisión de inversión.