4 minutos
Jan 16th, 2023 - 10:36 am
Hay muchos conceptos erróneos sobre las firmas. En este artículo quiero repasar cuatro tipos de firmas de mensajes para ayudar a los usuarios a entender los riesgos asociados a la firma de mensajes (también llamadas a veces firmas sin gas) en Ethereum u otras blockchains compatibles con EVM.
Estos tipos de firma son absolutamente críticos para que todos los usuarios de Ethereum en web3 los entiendan.
Esto es principalmente para lo que se utilizan las firmas en web3. Aunque no hay un estándar unificado sobre cómo son, algunas cosas comunes incluyen los Términos de Servicio, la dirección de tu Billetera, y a veces un nonce para prevenir ataques de repetición, y potencialmente una cadena corta hexadecimal para asegurar que el mensaje que estás firmando en la Software Wallet es el mismo en la Hardware Wallet. Veremos un par de ejemplos a continuación:
A menudo, algunas partes de los contratos inteligentes se basan en firmas fuera de la cadena para que las cosas sucedan. Estos tipos de firmas desglosarán todos los datos que formarán parte de la interacción del contrato. Bastante práctico, pero aquí es donde si tienes aprobaciones abiertas necesitas tener cuidado. Como comentamos en nuestro artículo sobre aprobaciones, aunque en este ejemplo puedes saber exactamente lo que están haciendo, tienes que asegurarte de que la fuente de donde provienen este tipo de solicitudes de firma es de confianza.
Por ejemplo, si recibiste la solicitud de aprobación de firma de la imagen fuera de Opensea, deberías estar muy preocupado, y nunca firmarla. Esto es particularmente cierto si estás usando la dirección de tu billetera "Compra/Venta", como introdujimos en nuestro artículo “Una Wallet para Cada Ocasión”.
El hecho de que algo no tenga una firma perfectamente escrita de acuerdo con la norma EIP-712 no significa que sea una estafa. Sin embargo, esto significa que estás confiando en la contraparte con cualquier tipo de mensaje que pueda estar firmando, ya que esencialmente está "firmando a ciegas" un mensaje. Aunque no estamos viendo esto en Opensea en estos días debido a las mejoras en el contrato de Seaport, yo todavía realizaría una pausa antes de firmar este tipo de mensajes, sobre todo si estás en una dirección de cartera con aprobaciones abiertas. ¿No estás seguro? Echa un vistazo a nuestro artículo sobre la revocación de aprobaciones y comprueba que aprobaciones tienes abiertas en esa dirección de billetera.
Este es un tipo de firma muy peligroso, básicamente el "cheque en blanco" de Ethereum. El solicitante puede usarla para firmar cualquier transacción con tu clave privada. La buena noticia es que Metamask muestra una gran advertencia roja si alguna vez se solicita. Permite que alguien, si elabora adecuadamente la firma, pueda "reproducir" una transacción en su propio beneficio, como enviarse a sí mismo ETH. Esto no depende de aprobaciones como lo hacen los wETH robados, los NFT y otros tokens. Este es el único tipo de firma que corre este tipo de riesgo, y en general debe evitarse a toda costa, ¡ya que es raro que los servicios la utilicen legítimamente!
ACTUALIZACIÓN: Gracias a nuestros comentarios y los de otros miembros de la comunidad, ETH_SIGN ahora está desactivado de forma predeterminada en Metamask (pero puedes activarlo en la configuración avanzada, vemos esto como una gran victoria de UI/UX en el espacio y simplifica nuestros mensajes relacionados con las firmas.
Entendemos que estamos simplificando algunos de los términos técnicos aquí, por lo que antes de decir "¡Están utilizando las palabras equivocadas para esto!", ¡solo sepan que estamos tratando de simplificar para que sea más comprensible para todos! ¡A continuación se presentan más recursos y explicaciones técnicas de firmas, tipos de firma y sus implementaciones!
Más información sobre los aspectos técnicos aquí:
Otros artículos útiles sobre Firmas:
¿Tienes alguna pregunta o quieres saber más sobre ciberseguridad en web3 y estar al día de la información, los fraudes y las tácticas de seguridad más recientes? Unéte a nosotros en un nuestro discord https://discord.gg/boringsecurity .