Primero, un poco de jerga. A "mensaje" es una unidad de comunicación entre dos o más participantes en una red blockchain. Puede contener cualquier tipo de datos y se utilizan comúnmente para obtener la aprobación digital de un usuario.
A "transacción", por otro lado, es un tipo específico de mensaje que implica la transferencia de valor de un participante a otro. Generalmente incluye información como la dirección del remitente, la dirección del destinatario, la cantidad de criptomoneda que se transfiere y una firma digital que demuestra la autorización del remitente para la transferencia.
Los usuarios ya pueden borrar transacciones firmadas utilizando sus dispositivos Ledger. como se detalla en esta publicación, y hemos extendido esta buena práctica utilizando los mismos principios a los mensajes también. Aquí se explica cómo hacerlo.
¿Por qué firmamos mensajes en web3?
Las cadenas de bloques se basan en “criptografía de clave pública”, donde los usuarios poseen una clave pública y una clave privada, que forman un par. La clave pública representa la identidad del propietario y la clave privada es secreta, lo que le permite demostrar que posee el par de claves.
Al firmar un mensaje, utiliza su clave privada en el algoritmo de firma para vincular una firma al mensaje y la clave pública. Nadie puede derivar su clave privada ni falsificar una firma válida para usted. Sin embargo, cualquiera que conozca su clave pública puede verificar fácilmente que el mensaje fue firmado con su clave privada.
En pocas palabras, es el mismo proceso e idea que firmar transacciones, excepto que aquí nos centramos en firmar mensajes que tienen un propósito diferente: la asignación. Estamos firmando mensajes en aplicaciones criptográficas para obtener el consentimiento del usuario, tal como cuando en la vida real usarías tu firma escrita en un papel. Es la versión criptográfica de la "firma fiduciaria".
La importancia de EIP-712
Firmar mensajes no es algo nuevo. Hemos podido firmar mensajes durante años, y estos pueden tomar diferentes formas a medida que mejoran con el tiempo. De hecho, el Propuesta de mejora de Ethereum 191 (EIP-191) se presentó en 2016 e introdujo un estándar que permite mensajes legibles por humanos y que es compatible de forma nativa con los dispositivos Ledger. Sin embargo, donde EIP-191 se quedó corto es en que el estándar no estructura los datos. Es sólo una propaganda de una longitud ilimitada de datos al final del mensaje, lo que dificulta su uso. En la práctica, los mensajes suelen ser demasiado largos y terminan truncados, lo que hace que el usuario pierda información potencialmente clave; mala experiencia de usuario.
Como se dijo al comienzo del Propuesta de mejora de Ethereum 712 (EIP-712): “La firma de datos es un problema resuelto si lo único que nos importa son las cadenas de bytes. Lamentablemente, en el mundo real nos preocupamos por los mensajes complejos y significativos”. - No podría estar mas de acuerdo. A medida que los mensajes crecieron para atender operaciones más complejas, la introducción de estructuras de datos tipificados en los mensajes como se especifica en EIP-712 fue un cambio bienvenido.
Lo que esto significa para los usuarios es que ahora los desarrolladores pueden analizar los datos del mensaje y saber qué es qué, que ahora puede exponerse al usuario. Analizar significa poder leer el contenido, porque sabes cómo está estructurado. Esto supone un gran cambio en términos de experiencia del usuario, pero también desde una perspectiva de seguridad, ya que ahora puedo verificar lo que estoy firmando.
Volviendo al contexto de para qué se utilizan los mensajes, si le pides a Alice que te otorgue un permiso específico sobre el contenido de su billetera, como desarrollador de aplicaciones, debes ser muy explícito al respecto para maximizar tus posibilidades de que ella continúe. Pero es más que una simple optimización de la tasa de conversión.
Si piensa en la seguridad y la defensa en un entorno adversario, un estafador obviamente hará que ese mensaje sea lo más opaco posible para engañar a Alice y permitir esa operación maliciosa. La transparencia y la capacidad de Alice de volver a verificar lo que está firmando son absolutamente esenciales.
Y ahí es donde entra en juego EIP-712. Antes de este EIP, los mensajes firmados eran una cadena hexadecimal opaca que se mostraba al usuario con poco contexto sobre los elementos que componen el mensaje.
¿Firmarías esto? ¿Alguna idea de lo que estás autorizando aquí?
La especificación EIP-712 introduce estructuras de datos tipificados para mensajes que permiten que las billeteras los analicen y los muestren de una manera fácil de usar para que Alice tome una decisión informada. Además, es un estándar e interoperable en toda la industria: al admitir EIP-712, su mensaje puede ser analizado por Ledger, MetaMask, Rainbow, Argent, Coinbase Wallet, lo que sea.
Soporte de libro mayor para EIP-712
En primer lugar, felices días, los dispositivos Ledger tienen soporte nativo para mensajes EIP-712 y, como desarrollador, puede controlar con precisión cómo se muestran sus mensajes en el dispositivo.
Básicamente, existen 3 niveles de soporte para mensajes en dispositivos Ledger:
Nivel 1: Firma a ciegas
Si Bob, un desarrollador de aplicaciones, no está usando mensajes EIP-712, Bob esencialmente le está pidiendo a Alice que firme una cadena hexadecimal ilegible: Bob le está pidiendo a Alice que firme algo que ni siquiera puede leer, eso es. firma a ciegas.
Nivel 2: Firma transparente
Al implementar un mensaje EIP-712, Bob está dando un paso adelante al pasar de una cadena hexadecimal a contenido legible. Ahora le permite a Alice leer el contenido del mensaje; sin embargo, debido a que le muestra el contenido completo del mensaje, es difícil detectar la información clave que está mezclada con información técnica. Es transparente, pero aún no está claro..
Nivel 3: Firma clara
Dado que el dispositivo puede analizar el contenido del mensaje, indicando qué mostrar y cómo, podemos lograr una firma clara. Entonces, siempre que Bob establezca los metadatos requeridos, esto es lo que Alice vería en su dispositivo Ledger:
Mucho mejor que una cadena hexadecimal, ¿no?
Otro punto clave es que, dado que se muestra en un lugar totalmente seguro, Dispositivo separado que no puede ser manipulado., Alice está 100% segura de que lo que ve en ese dispositivo es lo que está firmando: ningún malware o aplicación maliciosa puede alterar lo que se le muestra. Si lo que se muestra en el dispositivo no coincide con sus expectativas, puede mantenerse a salvo y rechazar firmar el mensaje.
Para brindar esta UX mejorada y seguridad adicional a sus usuarios, Bob debe hacer 2 cosas: especifique qué campos se deben mostrar al usuario y proporcione un nombre para mostrar agradable y explícito para ellos.
Si como desarrollador quieres unirte a Bob y hacerlo para tu aplicación, Tienes toda la documentación aquí., y esencialmente se reduce a crear una solicitud de extracción para incluir su contrato en la lista blanca en el Registro de activos dApps de Ledger a través de un archivo JSON que contiene:
- Selectores para indicar qué campos el dispositivo necesita mostrar Alice,
- Etiquete cada selector con un nombre para mostrar.
Esto no es cosmética, es una buena práctica.
Al incluir su contrato inteligente en la lista blanca e indicar cómo los dispositivos Ledger pueden mostrar sus mensajes, no solo mejora significativamente la experiencia del usuario al interactuar con su aplicación, sino que, lo que es más importante, nos protege a todos de estafas y ayuda a desarrollar buenos hábitos en el ecosistema web3.
Nunca debemos firmar algo que no entendemos.
No podemos hacer esto sin ti, ayúdanos a dejar claro firmar la norma.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoAiStream. Inteligencia de datos Web3. Conocimiento amplificado. Accede Aquí.
- Acuñando el futuro con Adryenn Ashley. Accede Aquí.
- Compra y Vende Acciones en Empresas PRE-IPO con PREIPO®. Accede Aquí.
- Fuente: https://www.ledger.com/blog/securing-message-signing
- :es
- :no
- :dónde
- $ UP
- 1
- 2016
- 22
- 220
- a
- capacidad
- Poder
- Nuestra Empresa
- sobre TI
- absolutamente
- Lograr
- a través de
- dirección
- adversario
- algoritmo
- Todos
- permitir
- Permitir
- permite
- ya haya utilizado
- también
- cantidad
- an
- y
- Otra
- cualquier
- nadie
- applicación
- Aplicación
- aprobación
- somos
- Argén
- AS
- activo
- At
- autorización
- basado
- BE
- porque
- esto
- antes
- Comienzo
- "Ser"
- mejores
- entre
- Poco
- blockchain
- red blockchain
- grano
- build
- pero
- by
- PUEDEN
- servicios sociales
- abastecer
- posibilidades
- el cambio
- Cambiador
- limpiar
- coinbase
- Monedero de Coinbase
- proviene
- comúnmente
- Comunicación
- integraciones
- consentimiento
- contenido
- contenido
- contexto
- contrato
- control
- Conversión
- Creamos
- criptomoneda
- DApps
- datos
- Días
- Koops
- Defensa
- detallado
- Developer
- desarrolladores
- dispositivo
- Dispositivos
- una experiencia diferente
- digital
- Pantalla
- mostrar
- do
- documentación
- No
- No
- DE INSCRIPCIÓN
- cada una
- pasan fácilmente
- ecosistema
- EIP
- final
- Entorno
- esencial
- esencialmente
- Etereum
- Incluso
- Excepto
- las expectativas
- experience
- expuesto
- extra
- seguridad extra
- hecho
- Terrenos
- Archive
- enfoque
- forjar
- formulario
- Formularios
- adelante
- en
- ser completados
- completamente
- Además
- juego
- cambio de juego
- reunir
- obtener
- gif
- va
- candidato
- conceder
- mano
- Ahorrar
- Difícil
- Tienen
- ayuda
- ayudando
- aquí
- esta página
- HEX
- su
- Cómo
- Sin embargo
- HTTPS
- legible por humanos
- i
- idea
- Identidad
- if
- importancia
- mejorar
- mejorado
- es la mejora continua
- la mejora de
- in
- incluye
- indicar
- indicando
- energético
- información
- informó
- interactuando
- interoperable
- Introducido
- Presenta
- Introducción
- IT
- artículos
- únete
- jpg
- json
- solo
- Clave
- Saber
- Libro mayor
- Longitud Mínima
- Vida
- LINK
- pequeño
- Largo
- para lograr
- Realizar
- el malware
- manera
- Match
- max-ancho
- Maximizar
- significativo
- significa
- mensaje
- la vida
- metadatos
- MetaMask
- que falta
- mezclado
- más,
- nombre
- nativo
- del sistema,
- nunca
- Nuevo
- agradable
- no
- ahora
- of
- a menudo
- on
- ONE
- , solamente
- opaco
- Inteligente
- Operaciones
- optimización
- or
- Otro
- salir
- Más de
- EL DESARROLLADOR
- par
- Papel
- Participantes
- permiso
- la perspectiva
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- punto
- pobre
- posible
- la posibilidad
- precisamente
- principios
- privada
- clave privada
- Problema
- propuesta
- protector
- Demostrar.
- Demuestra
- proporcionar
- previsto
- público
- clave pública
- propósito
- Rate
- Leer
- real
- vida real
- mundo real
- registro
- representa
- solicita
- Requisitos
- resultante
- ambiente seguro
- mismo
- estafas
- Secreto
- seguro
- EN LINEA
- ver
- ve
- ayudar
- set
- formas
- ella
- En Corto
- tienes
- Mostrar
- firmar
- firmado
- significativamente
- firma
- desde
- inteligente
- contrato inteligente
- So
- algo
- soluciones y
- especificación
- especificado
- Spot
- estándar
- dijo
- quedarse
- paso
- Historia
- Cordón
- estructura
- estructurado
- Subido
- tal
- súper
- SOPORTE
- Soportado
- Apoyar
- ¡Prepárate!
- tecnología
- términos
- que
- esa
- El
- su
- Les
- Estas
- ellos
- cosa
- cosas
- pensar
- así
- aquellos
- ¿aunque?
- equipo
- a
- demasiado
- Transacciones
- transferir
- transferido
- Transparencia
- transparente
- dos
- tipo
- entender
- Desafortunadamente
- unidad
- ilimitado
- us
- utilizan el
- usado
- Usuario
- experiencia como usuario
- fácil de utilizar
- usuarios
- usando
- generalmente
- ux
- propuesta de
- verificar
- vía
- Billetera
- Carteras
- quieres
- fue
- we
- Web3
- Ecosistema Web3
- bienvenido
- WELL
- tuvieron
- ¿
- Que es
- cuando
- que
- lista blanca
- QUIENES
- seguirá
- sin
- mundo
- se
- escrito
- años
- Usted
- tú
- zephyrnet