EIP-712 es un método estandarizado para estructurar y firmar datos legibles por humanos y verificables por máquinas. Este método permite a los usuarios comprender el contenido que están firmando, al tiempo que permite a los desarrolladores crear aplicaciones más seguras y fáciles de usar.
En este artículo analizaremos los conceptos básicos de EIP-712, su funcionamiento y las ventajas que ofrece a desarrolladores y usuarios finales.
EIP-712: Conceptos básicos
Antes de sumergirnos en la mecánica de EIP-712, es esencial entender los conceptos clave que forman la base de esta propuesta:
- Datos tipificados: EIP-712 introduce el concepto de “datos tipificados”, que son datos estructurados que incluyen información de tipo, haciéndolos tanto legibles por humanos como verificables por máquinas. Los datos tipificados pueden consistir en varios tipos de datos, como cadenas, números enteros, direcciones y matrices.
- Separador de dominio: Este identificador único distingue diferentes aplicaciones o servicios, previniendo potenciales ataques de repetición de firma a través de múltiples aplicaciones.
- Firma estructurada: EIP-712 impone una forma estandarizada de firmar datos tipificados, lo que garantiza que los usuarios sepan exactamente lo que están firmando y proporciona una experiencia de firma coherente en diferentes aplicaciones de Ethereum.
Cómo funciona EIP-712
EIP-712 logra sus objetivos introduciendo un método para crear un hash único de los datos tecleados que firma el usuario. El proceso consta de los siguientes pasos:
- Definir la estructura de datos: Los desarrolladores definen la estructura de datos con información de tipos mediante un esquema JSON, que incluye los tipos de datos y sus respectivos nombres.
- Codificar los datos tipificados: Los datos tipados se codifican según la especificación EIP-712. Este proceso implica la generación de un hash único de la estructura de datos, el separador de dominio y los datos reales.
- Firma del hash: Los usuarios firman el hash resultante con su clave privada a través de un monedero web3 como MetaMask u otra herramienta de firma.
- Verificar la firma: La parte receptora, normalmente un contrato inteligente o un servicio backend, puede verificar la firma utilizando la clave pública del firmante y los datos originales tecleados.
Ventajas de EIP-712
EIP-712 ofrece varias ventajas tanto a los desarrolladores como a los usuarios:
- Mejora de la experiencia del usuario: EIP-712 permite a los usuarios comprender el contenido que están firmando, ya que los datos se presentan en un formato legible por humanos. Esto ayuda a evitar confusiones y malentendidos, que pueden dar lugar a transacciones o aprobaciones involuntarias.
- Mayor seguridad: El proceso de firma estructurado garantiza que los usuarios sepan exactamente lo que están firmando, lo que dificulta que los atacantes engañen a los usuarios para que firmen datos maliciosos.
- Reducción del riesgo de ataques de repetición de firma: La función de separador de dominio ayuda a evitar los ataques de repetición de firma entre diferentes aplicaciones añadiendo un identificador único a los datos firmados de cada aplicación.
- Estandarización: EIP-712 proporciona un método estandarizado para firmar y verificar datos mecanografiados, lo que facilita a los desarrolladores la creación de aplicaciones seguras y fáciles de usar que interactúan con la blockchain de Ethereum.
Conclusión
EIP-712 es una mejora vital para el ecosistema Ethereum, que mejora la experiencia del usuario y la seguridad mediante la introducción de un método estandarizado para firmar y verificar los datos tecleados.
Fuente: Medium
Libre Traducción: LBC