En 2021, las ventas totales de NFT aumentaron de los 1.300 millones de dólares en el segundo trimestre hasta los 10.700 millones de dólares en el tercer trimestre. Las ventas de NFT coleccionables han subido aún más drásticamente: más de 100 veces, de los 55,5 millones de dólares de principios de 2021 hasta los 5.600 millones de dólares en el tercer trimestre. Incluso las dos casas de subastas más populares, Sotheby’s y Christie’s, se unieron al boom de los NFT y empezaron a aceptar criptomonedas como forma de pago para permitir que los poseedores de criptomonedas de alto valor neto se convirtieran en postores de sus subastas.
Ni que decir tiene que el auge del mercado de los NFT no ha pasado desapercibido entre los hackers. Y estos están preparados para mostrar su ingenio al tratar de expropiar o fabricar tokens no fungibles. No se conocen muchos casos de ataques a contratos inteligentes de NFT, pero los mercados basados en servidores han sufrido ataques, y algunos de ellos han llegado a materializarse. Por lo tanto, si no quieres ser víctima de este tipo de ataques algún día, debes saber cómo protegerte contra ellos.
¿Cómo protegerse de un NFT falsificado?
Para empezar, los NFT no se pueden replicar. Así que, por esa parte, puedes estar tranquilo. Sin embargo, todavía se pueden emitir NFT con ID similares, pero a partir de un contrato inteligente diferente. Para verificar la autenticidad de un NFT, tienes que copiar la dirección del contrato inteligente que lo acuñó y hacer una búsqueda en el explorador del respectivo blockchain.
Si el contrato inteligente es falso, estará marcado como no verificado y no tendrá metadatos. Si el contrato inteligente es válido, lo verás marcado como verificado y tendrá metadatos que expliquen quién es el propietario del contrato inteligente y otros datos relevantes.
Son comprobaciones que tienes que hacer ti mismo, y ninguna auditoría de contratos inteligentes te será de ayuda en esta situación.
Cómo mantener tus NFT seguros
En lo que respecta a la seguridad de los NFT que poseas, deberás almacenarlos de forma segura para evitar que te los roben. La principal vulnerabilidad en este caso sería almacenar tus NFT en mercados de NFT centralizados. Estas plataformas están basadas en servidor y guardan tus NFT en una cartera. Por lo tanto, si un hacker consigue entrar en tu cuenta, podrá transferir tus NFT a una dirección diferente.
Esto ocurrió con el mercado Nifty Gateway en marzo de 2021. Uno de los usuarios de la plataforma escribió el 14 de marzo que alguien le había robado sus NFT y había comprado más de 10.000 dólares en NFT ese día usando sus fondos. Este caso pone de manifiesto las vulnerabilidades de los mercados centralizados y las amenazas de las que pueden ser víctimas sus usuarios.
Este tipo de amenaza no tiene nada que ver con los contratos inteligentes que acuñan los NFT, sino con la seguridad de la plataforma. Por tanto, será más seguro que transfieras tus NFT a tu cartera personal sobre la que tengas control total.
El ataque de ‘reentrada’
El ataque de reentrada es un conocido exploit que tiene como objetivo la función de retirada de los contratos de Ethereum. En los contratos ERC-20, las funciones de retirada envían Ether; ejecutan transacciones que no pueden ser ejecutadas por ninguna otra función en un contrato. Específicamente, ejecutan las transacciones que no tienen datos complementarios.
Para ejecutar un ataque de reentrada, primero el atacante necesita asignar un saldo basado en Ethereum a su contrato inteligente. A continuación, este puede usar la función de retirada de su contrato inteligente para solicitar un comando de “retirada” del contrato inteligente del que quiera retirar fondos. Si el contrato inteligente al que ataca el hacker ejecuta la transferencia antes de reajustar el saldo, este podrá repetir el comando «retirada» varias veces y agotar el contrato.
Con los contratos inteligentes de NFT, la función de retirada de un contrato de NFT puede solicitar una «retirada» de un contrato de NFT diferente para transferir sus tokens. El contrato inteligente del hacker también necesitará que se le asigne un saldo para que el contrato inteligente NFT objetivo pueda leerlo antes de ejecutar la transferencia. Entonces, si el ataque de reentrada funciona en un NFT, el vendedor será la víctima.
Básicamente, lo que hacen los ataques de reentrada es explotar la orden de ejecución de las funciones en un contrato inteligente. La forma más fiable de proteger un contrato inteligente contra ataques de este tipo será utilizando la llamada orden de ejecución de verificación-efecto-interacciones, que asegura que la función verifique el saldo primero y, solo después, transfiera los activos. Es algo en lo que podría ayudarte una auditoría de contratos inteligentes y lo que deben hacer siempre los mercados de NFT antes de implementar sus contratos inteligentes.
Conclusión
Los NFT son únicos y no pueden falsificarse. Solo un contrato inteligente diferente puede emitir un NFT similar, que será diferente y se puede identificar como tal por la dirección del contrato inteligente que lo acuñó. Esto es algo a lo que el comprador debe prestar atención, y las auditorías de contratos inteligentes no tienen nada que ver con eso.
Otro riesgo es el peligro de robo: los NFT se pueden robar de los mercados de NFT centralizados si el atacante consigue entrar en la cuenta de su usuario. Para evitar que ocurra esto, lo más seguro será que transfieras tus NFT a una cartera de la que tú tengas el control, y no el mercado. Además, los mercados deben tomarse muy en serio la seguridad de la plataforma y seguir protocolos estrictos a nivel interno, así como tomar medidas serias contra ataques externos.
Y, por último, es necesario analizar si un determinado contrato inteligente NFT podría ser vulnerable a un ataque de reentrada. Esto también es aplicable a los mercados, ya que sus contratos inteligentes dominan masivamente la emisión de NFT.