Innanzitutto, un po' di gergo. UN "Messaggio" è un'unità di comunicazione tra due o più partecipanti in una rete blockchain. Può contenere qualsiasi tipo di dati e vengono comunemente utilizzati per ottenere l'approvazione digitale da un utente.
A "transazione", invece, è una tipologia specifica di messaggio che comporta il trasferimento di valore da un partecipante all'altro. Di solito include informazioni come l'indirizzo del mittente, l'indirizzo del destinatario, la quantità di criptovaluta trasferita e una firma digitale che dimostra l'autorizzazione del mittente per il trasferimento.
Gli utenti possono già cancellare e firmare le transazioni utilizzando i propri dispositivi Ledger, come dettagliato in questo post, e abbiamo esteso questa buona pratica utilizzando gli stessi principi anche ai messaggi, ecco come.
Perché firmiamo i messaggi in web3?
Le blockchain sono basate su “crittografia a chiave pubblica”, dove gli utenti possiedono una chiave pubblica e una chiave privata, che formano una coppia. La chiave pubblica rappresenta l'identità del proprietario e la chiave privata è segreta, consentendogli di dimostrare di possedere la coppia di chiavi.
Quando firmi un messaggio, utilizzi la tua chiave privata nell'algoritmo di firma per collegare una firma al messaggio e alla chiave pubblica. Nessuno può ricavare la tua chiave privata o falsificare una firma valida per te. Tuttavia, chiunque conosca la tua chiave pubblica può facilmente verificare che il messaggio sia stato firmato con la tua chiave privata.
Per farla breve, è lo stesso processo e lo stesso concetto della firma delle transazioni, tranne per il fatto che qui ci concentriamo sulla firma di messaggi che hanno uno scopo diverso: l'indennità. Firmiamo messaggi in applicazioni crittografiche per raccogliere il consenso dell'utente, proprio come quando nella vita reale utilizzeresti la tua firma scritta su un foglio. È la versione crittografica della “firma fiat”.
L'importanza di EIP-712
Firmare i messaggi non è una cosa nuova. Siamo in grado di firmare messaggi ormai da anni, e questi possono assumere forme e forme diverse man mano che migliorano nel tempo. In effetti, il Proposta di miglioramento di Ethereum 191 (EIP-191) è stato presentato nel 2016 e ha introdotto uno standard che consente messaggi leggibili dall'uomo supportato nativamente dai dispositivi Ledger. Il punto in cui l’EIP-191 non è stato all’altezza è che lo standard non struttura i dati. È solo una descrizione di una lunghezza illimitata di dati alla fine del messaggio, che ne rende difficile l'utilizzo. In pratica, i messaggi sono spesso troppo lunghi e finiscono per essere troncati, facendo perdere all'utente informazioni potenzialmente importanti; scarsa UX.
Come affermato all'inizio del Proposta di miglioramento di Ethereum 712 (EIP-712): “La firma dei dati è un problema risolto se tutto ciò che ci interessa sono le stringhe di byte. Sfortunatamente nel mondo reale ci preoccupiamo di messaggi complessi e significativi”. – Non potrei essere più d'accordo. Man mano che i messaggi crescevano per soddisfare operazioni più complesse, l'introduzione di strutture di dati digitati nei messaggi come specificato in EIP-712 è stato un cambiamento positivo.
Ciò che questo significa per gli utenti è che ora gli sviluppatori possono analizzare i dati nel messaggio e sapere cosa è cosa, che ora può essere esposto all'utente. Analizzare significa saper leggere il contenuto, perché sai come è strutturato. Questo è un punto di svolta in termini di esperienza utente ma anche dal punto di vista della sicurezza poiché ora posso verificare ciò che sto firmando.
Tornando al contesto per cui vengono utilizzati i messaggi, se stai chiedendo ad Alice di concederti un'autorizzazione specifica sul contenuto del suo portafoglio, come sviluppatore di app, dovresti essere molto esplicito al riguardo per massimizzare le tue possibilità che lei proceda. Ma è molto più di una semplice ottimizzazione del tasso di conversione.
Se si pensa alla sicurezza e alla difesa in un ambiente contraddittorio, un truffatore ovviamente renderà quel messaggio il più opaco possibile per ingannare Alice e consentire quell'operazione dannosa. La trasparenza e la capacità di Alice di ricontrollare ciò che sta firmando sono assolutamente essenziali.
Ed è qui che entra in gioco EIP-712. Prima di questo EIP, i messaggi firmati erano una stringa esadecimale opaca visualizzata all'utente con poco contesto sugli elementi che compongono il messaggio.
Lo firmeresti? Hai idea di cosa stai autorizzando qui?
La specifica EIP-712 introduce strutture di dati tipizzati per i messaggi che consentono a questi di essere analizzati dai portafogli e visualizzati in modo intuitivo affinché Alice possa prendere una decisione informata. Inoltre, è uno standard interoperabile in tutto il settore: supportando EIP-712, il tuo messaggio può essere analizzato da Ledger, MetaMask, Rainbow, Argent, Coinbase Wallet, come lo chiami.
Supporto registro per EIP-712
Prima di tutto, giorni felici, i dispositivi Ledger hanno il supporto nativo per i messaggi EIP-712 e come sviluppatore puoi controllare con precisione il modo in cui i tuoi messaggi vengono visualizzati sul dispositivo.
Esistono essenzialmente 3 livelli di supporto per i messaggi sui dispositivi Ledger:
Livello 1: firma cieca
Se Bob, uno sviluppatore di app, non utilizza i messaggi EIP-712, Bob sta essenzialmente chiedendo ad Alice di firmare una stringa esadecimale illeggibile: Bob sta chiedendo ad Alice di firmare qualcosa che non può nemmeno leggere, cioè firma alla cieca.
Livello 2: firma trasparente
Implementando un messaggio EIP-712, Bob sta facendo un passo avanti passando da una stringa esadecimale a un contenuto leggibile. Ora consente ad Alice di leggere il contenuto del messaggio, tuttavia, poiché le viene visualizzato l'intero contenuto del messaggio, è difficile individuare le informazioni chiave mescolate con informazioni tecniche. È trasparente, ma non è ancora chiaro.
Livello 3: firma chiara
Poiché il dispositivo è in grado di analizzare il contenuto del messaggio, indicando cosa visualizzare e come, possiamo ottenere una firma chiara. Quindi, a condizione che Bob imposti i metadati richiesti, ecco cosa vedrebbe Alice sul suo dispositivo Ledger:
Molto meglio di una stringa esadecimale, non è vero?
Un altro punto chiave è che, poiché viene visualizzato in modo completamente sicuro, dispositivo separato che non può essere manomesso, Alice è sicura al 100% che ciò che vede su quel dispositivo è ciò che sta firmando: nessun malware o applicazione dannosa potrà alterare ciò che le viene visualizzato. Se ciò che viene visualizzato sul dispositivo non corrisponde alle sue aspettative, può stare al sicuro e rifiutare di firmare il messaggio.
Per fornire questa UX migliorata e maggiore sicurezza ai suoi utenti, Bob deve fare 2 cose: specificare quali campi devono essere visualizzati all'utente e fornire loro un nome visualizzato gradevole ed esplicito.
Se come sviluppatore vuoi unirti a Bob e farlo per la tua app, hai tutta la documentazione quie si riduce essenzialmente alla creazione di una richiesta pull per inserire nella whitelist il tuo contratto nel registro delle risorse dApps di Ledger tramite un file JSON contenente:
- Selettori per indicare quali campi il dispositivo deve mostrare ad Alice,
- Etichetta ciascun selettore con un nome visualizzato.
Questo non è un cosmetico, è una buona pratica
Autorizzando il tuo contratto intelligente e indicando in che modo i dispositivi Ledger possono visualizzare i tuoi messaggi, non solo migliorerai in modo significativo l'esperienza dell'utente quando interagisce con la tua applicazione, ma, cosa ancora più importante, stai proteggendo tutti noi dalle truffe e aiutando a costruire buone abitudini nel mondo del lavoro. ecosistema web3.
Non dovremmo mai firmare qualcosa che non comprendiamo.
Non possiamo farcela senza di te, aiutaci a rendere la firma chiara la norma.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoAiStream. Intelligenza dei dati Web3. Conoscenza amplificata. Accedi qui.
- Coniare il futuro con Adryenn Ashley. Accedi qui.
- Acquista e vendi azioni in società PRE-IPO con PREIPO®. Accedi qui.
- Fonte: https://www.ledger.com/blog/securing-message-signing
- :È
- :non
- :Dove
- $ SU
- 1
- 2016
- 22
- 220
- a
- capacità
- capace
- Chi siamo
- a proposito
- assolutamente
- Raggiungere
- operanti in
- indirizzo
- contraddittorio
- algoritmo
- Tutti
- consentire
- Consentire
- consente
- già
- anche
- quantità
- an
- ed
- Un altro
- in qualsiasi
- chiunque
- App
- Applicazioni
- approvazione
- SONO
- Argento
- AS
- attività
- At
- autorizzazione
- basato
- BE
- perché
- stato
- prima
- Inizio
- essendo
- Meglio
- fra
- Po
- blockchain
- Rete blockchain
- peso
- costruire
- ma
- by
- Materiale
- che
- approvvigionare
- probabilità
- il cambiamento
- Changer
- pulire campo
- coinbase
- Portafoglio Coinbase
- viene
- comunemente
- Comunicazione
- complesso
- consenso
- contenere
- contenuto
- testuali
- contesto
- contratto
- di controllo
- Conversione
- Creazione
- criptovaluta
- DApp
- dati
- Giorni
- decisione
- Difesa
- dettagliati
- Costruttori
- sviluppatori
- dispositivo
- dispositivi
- diverso
- digitale
- Dsiplay
- visualizzazione
- do
- documentazione
- non
- Dont
- giù
- ogni
- facilmente
- ecosistema
- EIP di
- fine
- Ambiente
- essential
- essenzialmente
- Ethereum
- Anche
- Tranne
- le aspettative
- esperienza
- esposto
- extra
- fatto
- campi
- Compila il
- messa a fuoco
- Nel
- forgiare
- modulo
- forme
- Avanti
- da
- pieno
- completamente
- Inoltre
- gioco
- game-changer
- raccogliere
- ottenere
- gif
- andando
- buono
- concedere
- cura
- contento
- Hard
- Avere
- Aiuto
- aiutare
- suo
- qui
- HEX
- il suo
- Come
- Tuttavia
- HTTPS
- leggibile dagli umani
- i
- idea
- Identità
- if
- importanza
- competenze
- migliorata
- miglioramento
- miglioramento
- in
- inclusi
- indicare
- industria
- informazioni
- informati
- si interagisce
- interoperabile
- introdotto
- Introduce
- Introduzione
- IT
- elementi
- join
- jpg
- json
- ad appena
- Le
- Sapere
- Ledger
- Lunghezza
- livelli
- Vita
- LINK
- piccolo
- Lunghi
- make
- Fare
- il malware
- modo
- partita
- max-width
- Massimizzare
- significativo
- si intende
- messaggio
- messaggi
- Metadati
- MetaMask
- mancante
- misto
- Scopri di più
- Nome
- nativo
- esigenze
- Rete
- mai
- New
- bello
- no
- adesso
- of
- di frequente
- on
- ONE
- esclusivamente
- opaco
- operazione
- Operazioni
- ottimizzazione
- or
- Altro
- su
- ancora
- proprio
- coppia
- Carta
- partecipanti
- autorizzazione
- prospettiva
- Platone
- Platone Data Intelligence
- PlatoneDati
- punto
- povero
- possibile
- potenzialmente
- pratica
- precisamente
- principi
- un bagno
- chiave privata
- Problema
- processi
- proposta
- proteggere
- Dimostra
- dimostra
- fornire
- purché
- la percezione
- chiave pubblica
- scopo
- tasso
- Leggi
- di rose
- vita reale
- mondo reale
- registro
- rappresenta
- richiesta
- necessario
- risultante
- sicura
- stesso
- truffe
- Segreto
- sicuro
- problemi di
- vedere
- vede
- servire
- set
- forme
- lei
- Corti
- dovrebbero
- mostrare attraverso le sue creazioni
- segno
- firmato
- significativamente
- firma
- da
- smart
- smart contract
- So
- qualcosa
- specifico
- specificazione
- specificato
- Spot
- Standard
- ha dichiarato
- soggiorno
- step
- Storia
- Corda
- La struttura
- strutturato
- presentata
- tale
- Super
- supporto
- supportato
- Supporto
- Fai
- Tech
- condizioni
- di
- che
- I
- loro
- Li
- Strumenti Bowman per analizzare le seguenti finiture:
- di
- cosa
- cose
- think
- questo
- quelli
- anche se?
- tempo
- a
- pure
- Le transazioni
- trasferimento
- trasferito
- Trasparenza
- trasparente
- seconda
- Digitare
- capire
- purtroppo
- unità
- illimitato
- us
- uso
- utilizzato
- Utente
- Esperienza da Utente
- user-friendly
- utenti
- utilizzando
- generalmente
- ux
- APPREZZIAMO
- verificare
- via
- Portafoglio
- Portafogli
- volere
- Prima
- we
- Web3
- Ecosistema Web3
- il benvenuto
- WELL
- sono stati
- Che
- Che cosa è l'
- quando
- quale
- whitelist
- OMS
- volere
- con
- senza
- mondo
- sarebbe
- scritto
- anni
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro