Funciones de contrato inteligente: cómo detectar una estafa
![](https://www.ledger.com/wp-content/uploads/2022/09/cover-17-1024x421.png)
Aspectos clave: |
— Las funciones de contrato inteligente son instrucciones para la cadena de bloques. Nos permiten aprobar interacciones concretas entre nuestras billeteras y terceros, como plataformas NFT y servicios DeFi. — Muchas personas no saben cómo interpretar estas funciones, así que confirman la transacción basándose en la confianza, sin verificar realmente lo que firman. Este punto ciego es una oportunidad inmejorable para los estafadores. — La cantidad de estafas basadas en la aprobación incorrecta de un contrato inteligente va en aumento. Nunca ha sido tan importante saber lo que firmas. — Aquí te mostramos cómo detectar una señal de alerta para que no te estafen. |
Las funciones de contrato inteligente son actualmente el medio que utilizan más habitualmente los estafadores para robar las cripto y los NFTs que tanto te ha costado ganar. ¿No crees que es hora de aprender a leer esos contratos?
El espacio cripto está lleno de nuevas oportunidades y nuevos tipos de interacciones, y la mayor parte utiliza la tecnología de los humildes contratos inteligentes. Los contratos inteligentes son los que dictan cuál será la interacción de tu billetera con las plataformas y los servicios de la Web3, y te ofrecen la libertad sin precedentes de utilizar tus activos digitales y desbloquear un universo digital completamente nuevo gracias a la propiedad de tus claves privadas.
Sin embargo, con esta libertad adquieres una nueva e importante responsabilidad. En el desconocido terreno de las cripto, los usuarios son más vulnerables de lo habitual ante los errores: es algo nuevo, todo se mueve a alta velocidad y la UX de la Web3, que suele ser compleja, hace que sea más difícil de lo normal interpretar lo que significa cada interacción. En resumen, la Web3 es un espacio complicado donde puedes conseguir valor real, pero también donde los estafadores esperan a que cometas un error.
Poder detectar las señales de alarma cuando interactúas con la Web3 es una competencia esencial si no quieres que te engañen. Y no es tan difícil como podrías esperar: solo hace falta un poco de orientación.
En este artículo te mostramos algunas de las principales funciones de contrato inteligente que encontrarás en tus interacciones, qué significan y cómo detectar una estafa cuando la ves.
¿Qué es una función de contrato inteligente?
Empecemos por lo básico: ¿qué es exactamente una función de contrato inteligente?
Las funciones son, sencillamente, fragmentos de código de un contrato inteligente que le permiten realizar acciones específicas: “llamar a una función” inicia una interacción concreta entre tu billetera y la plataforma que utilices.
La interacción con los contratos inteligentes es una parte no negociable de la Web3, y los contratos inteligentes no son inherentemente peligrosos.
Sin embargo, como en cualquier estafa no virtual, el contexto lo es todo, por lo que es fundamental poder detectar las señales de alerta que muestran que algo no va bien.
Señales de alerta de las funciones de contrato inteligente: glosario
Para navegar por la Web3 con seguridad, hay unas cuantas funciones de contrato inteligente clave con las que deberías familiarizarte. Veámoslas una por una y expliquemos su función, las estafas asociadas y cómo puedes detectar el peligro por tu cuenta.
1) SetApprovalForAll
SetApprovalForAll es una función que encontrarás con bastante frecuencia cuando interactúes con la Web3, de modo que es importante que la comprendas. Verás esta función sobre todo cuando pongas a la venta tus NFTs en un marketplace, y su objetivo es sencillo: le permite a ese marketplace enviar tus NFTs desde tu billetera a la del comprador cuando se realice la venta.
Tiene sentido, ¿no? Pero también tiene algunas repercusiones.
Riesgos asociados a SetApprovalForAll
Es posible que la función SetApprovalForAll sea muy común, pero también es una interacción bastante riesgosa para los usuarios, porque su alcance es muy amplio.
Aprobar esta función significa dar a la plataforma con la que interactúas acceso a todos los tokens ERC-20 o NFTs de un contrato inteligente concreto de tu billetera y, al ser un acuerdo de final abierto, se aplica a todos los tokens futuros de esos contratos inteligentes que lleguen a tu billetera.
Es como firmar un cheque en blanco a un amigo. Básicamente, estás diciendo: “Confío en que esta plataforma hará lo que dice que hará y actuará dentro de los límites que espero”. Pero ¿y si cometes un error?
Estafas y cómo detectarlas
SetApprovalForAll es un peso pesado en lo que se refiere a las estafas del mundo de las cripto, por lo que es esencial poder determinar cuándo es seguro firmar y cuándo no.
![](https://www.ledger.com/wp-content/uploads/2022/09/image-4.png)
La única ocasión en que deberías encontrar este mensaje es cuando pones a la venta tus NFTs en un mercado o cuando interactúas con un DEX. Esto tiene sentido, pues debes dar a esa plataforma permiso para sacar los tokens de tu billetera cuando los vendas o cuando realices operaciones con ellos. Sin embargo, fuera de estas situaciones, ver esta función de contrato inteligente debe hacer saltar las alarmas.
Hazte siempre esta pregunta: ¿por qué transfiero el acceso a mis tokens a otra persona? Pensar en ello así hace más fácil evaluar si la transacción es legítima.
¿Estás creando un NFT?: no deberías ver esta función.
¿Estás comprando un NFT? : no deberías ver esta función.
¿Te estás inscribiendo en una lista de permitidos? : lo has adivinado. NO deberías ver esta función.
Ahora que comprendes qué significa firmar este tipo de transacciones, puedes evaluar cada situación en la que aparezca y decidir por tu cuenta si es una señal de alerta.
2) SafeTransferFrom
Otra función de contrato inteligente muy común con la que te puedes encontrar es SafeTransferFrom: este mensaje aparecerá durante cualquier transacción en la que envíes un NFT desde tu billetera a otra.
Supongamos, por ejemplo, que te acabas de comprar un Ledger y quieres enviar los NFTs de tu billetera con conexión a la nueva y segura cuenta de Ethereum de tu Ledger Nano: verías SafeTransferFrom en tu billetera con conexión y deberías confirmar el mensaje. Lo que tiene mucho sentido en este contexto.
Riesgos asociados a SafeTransferFrom
El problema surge cuando encuentras esta función en otras situaciones: recuerda que lo que confirmas aquí es que quieres enviar un NFT a otra billetera y, a menos que esa billetera sea tuya, hay pocas situaciones en las que querrías hacer esto.
Estafas y cómo detectarlas
¿Qué tipo de estafas utilizan la llamada a esta función para robar tus cripto?
Un ejemplo reciente: el sitio web Momoco ofrecía una acuñación gratuita de NFTs, lo que hizo que hordas de personas esperanzadas entraran en el sitio para usar esa opción. ¿El problema? Que no había ninguna acuñación.
Al presionar el botón “acuñar”, se llamaba a SafeTransferFrom (y los usuarios aprobaban esta función porque pensaban que formaba parte del proceso de creación, gracias a la ingeniería social). Esto daba al contrato la autorización para transferir un NFT desde la billetera apuntada por la estafa, por lo que cientos de personas perdieron un token no fungible.
¿Cómo podrían esas personas haber detectado la estafa antes de caer en ella?
![](https://www.ledger.com/wp-content/uploads/2022/09/image-5.png)
Recuerda que, en las llamadas a funciones de contrato inteligente, lo único que pasará es lo que está escrito en el cuadro de función: en este caso, una transferencia de una billetera a otra.
Esto es una señal de alerta instantánea: si estás creando un NFT, debes ver una llamada a una función de “acuñación”, no a una transferencia. En este caso, la transacción muestra claramente una transferencia. Además, el NFT se mueve de una billetera Ledger a la dirección de otra billetera, lo que significa que tu billetera va a enviar un NFT, no recibir uno.
En resumen, un rápido vistazo a los detalles de la llamada a la función (lo que incluye comprobar el tipo de interacción que vas a confirmar y el sentido en el que se mueve la transferencia) te permitirá verificar la transacción en lugar de confiar en las circunstancias.
3) SendEth
Y por último. Si has interactuado en la Web3, es probable que ya hayas visto la función SendEth: significa literalmente que vas a enviar ethers a otra billetera. Esto puede deberse a que vas a enviar ETH de la dirección de una billetera de tu propiedad a la dirección de otra billetera de tu propiedad (si acabas de comprar un Ledger, por ejemplo, y vas a transferir tus fondos a un sitio seguro) o a que vas a hacer una compra en un mercado.
Riesgos asociados a SendEth
Pero, si tienes mala suerte, también puedes ver esta función cuando no lo esperas. Un buen ejemplo sería la creación de un NFT: aquí, los usuarios creen que están creando un NFT cuando, en realidad, están transfiriendo sus fondos a otra dirección.
Estafas y cómo detectarlas
Puedes ver esto no solo si observas la llamada a la función (en la que debería aparecer “acuñación” si realmente fuera una acuñación), sino también si observas la dirección de recepción en la parte superior derecha: la creación es una transacción directa con la propia cadena de bloques, no con otra billetera, por lo que, una vez más, la presencia de una dirección de recepción aquí debería ser otra gran señal de alerta.
![](https://www.ledger.com/wp-content/uploads/2022/09/image-6.png)
Estafas en contratos inteligentes: no confíes, verifica
Aquí lo tienes: un glosario de las funciones de contrato inteligente (y sus riesgos) que puedes encontrar al interactuar con la Web3.
Ahora que conoces el significado de estas diferentes funciones, probablemente las estafas asociadas te parezcan bastante obvias, pero el poder de la ingeniería social puede ser muy grande, sobre todo cuando se combina con las complicadas nuevas normas de la Web3. Por eso es tan importante que adquieras conocimientos antes de iniciar tu experiencia.
Así que debes continuar aprendiendo y disfrutando de las infinitas posibilidades de la Web3. El poder está en tus manos, y Ledger Academy está aquí para garantizar que siga siendo así.