¿Contrato inteligente malicioso y tokens robados de otros contratos?

Me pregunto si al interactuar con un contrato, podría afectar mi ETH o tokens en otros contratos.

Pregunto porque veo muchos airdrops de EOS en ethereum que requieren que enviemos una transacción de 0 ETH, algunas con datos, a su dirección de contrato para reclamar sus tokens.

Y como nunca escuché que tal estafa sucediera, participé en un airdrop que requería que enviara 0 ETH pero ningún dato a un contrato. Recibí sus tokens inmediatamente después de enviarlos, pero no puedo evitar preguntarme si más tarde podría interferir con alguno de mis otros tokens.

El contrato fue el siguiente: https://etherscan.io/address/0xb562ec0261a9cb550a5fbcb46030088f1d6a53cf#code

Respuestas (1)

Generalmente no, una dirección se puede usar para interactuar con varios contratos diferentes y su dirección que interactúa con el Contrato A no debe otorgar ningún permiso especial a ese contrato con respecto al Contrato B.

Sin embargo, hay varias formas de engañar a alguien para que piense que está interactuando con el Contrato A cuando en realidad está interactuando con el Contrato B. Esto es particularmente cierto si está usando un dapp, porque el dapp es responsable de formatear las transacciones. que envía al contrato, y aunque herramientas como Metamask le pedirán al usuario que las obtenga una vista previa, es difícil examinar de manera confiable las transacciones que está enviando.

Además, algunos contratos usan datos firmados en lugar de confiar únicamente en el remitente de la transacción, y esos datos firmados podrían usarse con un contrato diferente al que espera.

Por lo general, es más seguro usar diferentes direcciones con diferentes contratos. Dependiendo del valor que se tenga, también puede ser una buena idea almacenar las direcciones más valiosas en una computadora o billetera de hardware diferente.

Entonces, por ejemplo, para engañar a alguien incluso cuando envía 0 ETH, un sitio de airdrop podría enumerar la dirección del contrato de un token que poseo y decirme 'Oye, envía 0 ETH a este contrato con los datos XXXXX...' y, sin saberlo, yo estaría llamando a una función en ese contrato con argumentos que enviarían mis tokens de ese contrato a la dirección de los piratas informáticos.
Además, en su último párrafo mencionó que puede ser una buena idea almacenar las direcciones más valiosas en una computadora o billetera de hardware diferente. Pero si una dirección de una billetera de hardware interactúa con un contrato, otras direcciones en esa misma billetera de hardware no se verán afectadas aunque las claves privadas se derivaron de la misma semilla, ¿verdad?
Correcto, usar una dirección diferente en la misma billetera de hardware cerraría algunos ángulos de ataque en comparación con usar la misma dirección en la misma billetera de hardware. Las cosas que nos preocupan involucran que el sitio de alguna manera te engañe para que hagas una cosa cuando crees que estás haciendo otra cosa, y más separación hace que sea más difícil para ellos.