În primul rând, un pic de jargon. A "mesaj" este o unitate de comunicare între doi sau mai mulți participanți într-o rețea blockchain. Poate conține orice tip de date și sunt utilizate în mod obișnuit pentru a obține aprobarea digitală de la un utilizator.
A "tranzacţie", pe de altă parte, este un tip specific de mesaj care implică transferul de valoare de la un participant la altul. De obicei, include informații precum adresa expeditorului, adresa destinatarului, cantitatea de criptomonedă transferată și o semnătură digitală care dovedește autorizarea expeditorului pentru transfer.
Utilizatorii pot deja șterge tranzacțiile semnate folosind dispozitivele lor Ledger, așa cum este detaliat în această postare, și am extins această practică bună folosind aceleași principii și la mesaje, iată cum.
De ce semnăm mesajele în web3?
Blockchain-urile se bazează pe „criptografia cu cheie publică”, unde utilizatorii dețin o cheie publică și o cheie privată, care formează o pereche. Cheia publică reprezintă identitatea proprietarului, iar cheia privată este secretă, permițându-le să demonstreze că dețin perechea de chei.
Când semnați un mesaj, utilizați cheia privată în algoritmul de semnare pentru a lega o semnătură la mesaj și la cheia publică. Nimeni nu poate obține cheia dvs. privată sau falsifica o semnătură validă pentru dvs. Cu toate acestea, oricine vă cunoaște cheia publică poate verifica cu ușurință dacă mesajul a fost semnat de cheia dvs. privată.
Pe scurt, este același proces și idee ca semnarea tranzacțiilor, cu excepția faptului că ne concentrăm aici pe semnarea mesajelor care servesc unui scop diferit: alocația. Semnăm mesaje în aplicații cripto pentru a aduna consimțământul utilizatorului, la fel ca atunci când în viața reală ai folosi semnătura ta scrisă pe o hârtie. Este versiunea cripto a „fiat signing”.
Importanța EIP-712
Semnarea mesajelor nu este ceva nou. Am reușit să semnăm mesaje de ani de zile, iar acestea pot lua forme și forme diferite, pe măsură ce se îmbunătățesc în timp. De fapt, cel Propunerea de îmbunătățire Ethereum 191 (EIP-191) a fost trimis în 2016 și a introdus un standard care permite mesajele care pot fi citite de om, care este acceptat nativ de dispozitivele Ledger. În cazul în care EIP-191 a căzut scurt, este că standardul nu structurează datele. Este doar o informație a unei lungimi nelimitate de date la sfârșitul mesajului, ceea ce îl face dificil de utilizat. În practică, mesajele sunt adesea prea lungi, ajungând să fie trunchiate și ducând utilizatorului să piardă informații potențial cheie; UX slab.
După cum sa spus la începutul Propunerea de îmbunătățire Ethereum 712 (EIP-712): „Semnarea datelor este o problemă rezolvată dacă tot ce ne pasă sunt șirurile de octeți. Din păcate, în lumea reală, ne pasă de mesajele complexe cu sens.” – Nu aș putea fi mai de acord. Pe măsură ce mesajele au crescut pentru a satisface operațiuni mai complexe, introducerea structurilor de date tipizate în mesaje, așa cum este specificat în EIP-712, a fost o schimbare binevenită.
Ceea ce înseamnă acest lucru pentru utilizatori este că acum dezvoltatorii pot analiza datele din mesaj și pot ști ce este, ceea ce poate fi acum expus utilizatorului. Analiza înseamnă a putea citi conținutul, pentru că știi cum este structurat. Este o schimbare în ceea ce privește experiența utilizatorului, dar și din punct de vedere al securității, deoarece acum pot verifica ce semnez.
În contextul pentru care sunt folosite mesajele, dacă îi cereți lui Alice să vă acorde permisiunea specifică asupra conținutului portofelului ei, în calitate de dezvoltator de aplicații, ar trebui să fiți foarte explicit în acest sens pentru a vă maximiza șansele ca ea să continue. Dar este mai mult decât o simplă optimizare a ratei de conversie.
Dacă te gândești la securitate și apărare într-un mediu advers, un escroc va face în mod evident acel mesaj cât mai opac posibil pentru a păcăli Alice să permită acea operațiune rău intenționată. Transparența și capacitatea lui Alice de a verifica din nou ceea ce semnează sunt absolut esențiale.
Și aici intervine EIP-712. Înainte de acest EIP, mesajele semnate erau un șir hexadecimal opac afișat utilizatorului cu puțin context despre elementele care compun mesajul.
Ai semna asta? Ai idee ce autorizezi aici?
Specificația EIP-712 introduce structuri de date tipizate pentru mesaje, ceea ce permite ca acestea să fie analizate de portofele și afișate într-un mod ușor de utilizat pentru ca Alice să ia o decizie în cunoștință de cauză. În plus, este un standard și interoperabil în întreaga industrie: acceptând EIP-712, mesajul tău poate fi analizat de Ledger, MetaMask, Rainbow, Argent, Coinbase Wallet, cum vrei.
Suport registru pentru EIP-712
În primul rând, zile fericite, dispozitivele Ledger au suport nativ pentru mesajele EIP-712, iar în calitate de dezvoltator poți controla exact modul în care mesajele tale sunt afișate pe dispozitiv.
Există în esență 3 niveluri de suport pentru mesaje pe dispozitivele Ledger:
Nivelul 1: Semnarea oarbă
Dacă Bob, un dezvoltator de aplicații, nu folosește mesaje EIP-712, Bob îi cere lui Alice să semneze un șir hexadecimal care nu poate fi citit: Bob îi cere lui Alice să semneze ceva pe care nici măcar nu poate citi, acesta este orb-semnare.
Nivelul 2: Semnarea transparentă
Implementând un mesaj EIP-712, Bob face un pas înainte trecând de la un șir hexadecimal la conținut care poate fi citit. Acum îi permite lui Alice să citească conținutul mesajului, totuși, deoarece îi afișează întregul conținut al mesajului, este greu de identificat informațiile cheie care sunt amestecate cu informații tehnice. Este transparent, dar încă nu este clar.
Nivelul 3: Semnarea clară
Deoarece dispozitivul poate analiza conținutul mesajului, indicând ce să afișați și cum, putem obține o semnare clară. Deci, cu condiția ca Bob să stabilească metadatele necesare, iată ce ar vedea Alice pe dispozitivul ei Ledger:
Mult mai bine decât un șir hexagonal, nu-i așa?
Un alt punct cheie este că, deoarece este afișat pe o pagină complet securizată, dispozitiv separat care nu poate fi manipulat, Alice este 100% sigură că ceea ce vede pe acel dispozitiv este ceea ce semnează: niciun program malware sau aplicație rău intenționată nu poate modifica ceea ce i se afișează. Dacă ceea ce este afișat pe dispozitiv nu corespunde așteptărilor ei, ea poate rămâne în siguranță și poate respinge semnarea mesajului.
Pentru a oferi acest UX îmbunătățit și securitate suplimentară utilizatorilor săi, Bob trebuie să facă două lucruri: specificați ce câmpuri ar trebui să fie afișate utilizatorului și furnizați un nume de afișat frumos și explicit pentru ele.
Dacă, în calitate de dezvoltator, doriți să vă alăturați lui Bob și să o faceți pentru aplicația dvs., ai toata documentatia aiciși, în esență, se rezumă la crearea unei cereri de extragere pentru a vă lista albă contractul în Registrul de active dApps al Ledger printr-un fișier JSON care conține:
- Selectoare pentru a indica ce câmpuri trebuie să arate dispozitivul pe Alice,
- Etichetați fiecare selector cu un nume afișat.
Aceasta nu este cosmetică, este o practică bună
Prin introducerea pe lista albă a contractului dvs. inteligent și indicând modul în care dispozitivele Ledger vă pot afișa mesajele, nu numai că îmbunătățiți semnificativ experiența utilizatorului atunci când interacționați cu aplicația dvs., dar, mai important, ne protejați pe toți de escrocherii și ne ajutați la construirea de obiceiuri bune în ecosistem web3.
Nu ar trebui să semnăm niciodată ceva ce nu înțelegem.
Nu putem face asta fără tine, ajută-ne să facem ca semnarea clară să devină norma.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoAiStream. Web3 Data Intelligence. Cunoștințe amplificate. Accesați Aici.
- Mintând viitorul cu Adryenn Ashley. Accesați Aici.
- Cumpărați și vindeți acțiuni în companii PRE-IPO cu PREIPO®. Accesați Aici.
- Sursa: https://www.ledger.com/blog/securing-message-signing
- :este
- :nu
- :Unde
- $UP
- 1
- 2016
- 22
- 220
- a
- capacitate
- Capabil
- Despre Noi
- despre
- absolut
- Obține
- peste
- adresa
- contradictorialității
- Algoritmul
- TOATE
- permite
- Permiterea
- permite
- deja
- de asemenea
- sumă
- an
- și
- O alta
- Orice
- oricine
- aplicaţia
- aplicație
- aprobare
- SUNT
- Argint
- AS
- activ
- At
- autorizare
- bazat
- BE
- deoarece
- fost
- înainte
- Început
- fiind
- Mai bine
- între
- Pic
- blockchain
- rețea blockchain
- Bob
- construi
- dar
- by
- CAN
- pasă
- satisface
- șansele
- Schimbare
- Changer
- clar
- coinbase
- Portofel Coinbase
- vine
- în mod obișnuit
- Comunicare
- complex
- consimţământ
- conţinut
- conținut
- context
- contract
- Control
- Convertire
- Crearea
- cryptocurrency
- DApps
- de date
- Zi
- decizie
- Apărare
- detaliat
- Dezvoltator
- Dezvoltatorii
- dispozitiv
- Dispozitive
- diferit
- digital
- Afişa
- afișarea
- do
- documentaţie
- Nu
- Dont
- jos
- fiecare
- cu ușurință
- ecosistem
- PEI
- capăt
- Mediu inconjurator
- esenţial
- În esență,
- ethereum
- Chiar
- Cu excepția
- aşteptări
- experienţă
- expus
- suplimentar
- un plus de securitate
- fapt
- Domenii
- Fișier
- concentrându-se
- Pentru
- falsifica
- formă
- formulare
- Înainte
- din
- Complet
- complet
- În plus
- joc
- joc schimbător
- aduna
- obține
- gif
- merge
- bine
- acordarea
- mână
- fericit
- Greu
- Avea
- ajutor
- ajutor
- ei
- aici
- HEX
- lui
- Cum
- Totuși
- HTTPS
- uman poate fi citit
- i
- idee
- Identitate
- if
- importanță
- îmbunătăţi
- îmbunătățit
- îmbunătățire
- îmbunătățirea
- in
- include
- indica
- indicând
- industrie
- informații
- informat
- interacționând
- interoperabilă
- introdus
- Prezintă
- Introducere
- IT
- articole
- alătura
- jpg
- JSON
- doar
- Cheie
- Cunoaște
- carte mare
- Lungime
- nivelurile de
- Viaţă
- LINK
- mic
- Lung
- face
- Efectuarea
- malware
- manieră
- Meci
- max-width
- Maximaliza
- semnificativ
- mijloace
- mesaj
- mesaje
- Metadata
- MetaMask
- dispărut
- mixt
- mai mult
- nume
- nativ
- nevoilor
- reţea
- nu
- Nou
- frumos
- Nu.
- acum
- of
- de multe ori
- on
- ONE
- afară
- opac
- operaţie
- Operațiuni
- optimizare
- or
- Altele
- afară
- peste
- propriu
- pereche
- Hârtie
- participanţi
- permisiune
- perspectivă
- Plato
- Informații despre date Platon
- PlatoData
- Punct
- sărac
- posibil
- potenţial
- practică
- tocmai
- Principiile
- privat
- cheie privată
- Problemă
- proces
- propunere
- protectoare
- Dovedi
- dovedește
- furniza
- prevăzut
- public
- Cheia publică
- scop
- rată
- Citeste
- real
- viata reala
- lumea reală
- registru
- reprezintă
- solicita
- necesar
- rezultând
- sigur
- acelaşi
- escrocherii
- Secret
- sigur
- securitate
- vedea
- vede
- servi
- set
- forme
- ea
- Pantaloni scurți
- să
- Arăta
- semna
- semnat
- semnificativ
- semnare
- întrucât
- inteligent
- contract inteligent
- So
- ceva
- specific
- specificație
- specificată
- Loc
- standard
- stabilit
- şedere
- Pas
- Poveste
- Şir
- structura
- structurat
- prezentat
- astfel de
- Super
- a sustine
- Suportat
- De sprijin
- Lua
- tech
- termeni
- decât
- acea
- lor
- Lor
- Acestea
- ei
- lucru
- lucruri
- crede
- acest
- aceste
- deşi?
- timp
- la
- de asemenea
- Tranzacții
- transfer
- transferat
- Transparență
- transparent
- Două
- tip
- înţelege
- din pacate
- unitate
- nelimitat
- us
- utilizare
- utilizat
- Utilizator
- Experiența de utilizare
- ușor de utilizat
- utilizatorii
- folosind
- obișnuit
- ux
- valoare
- verifica
- de
- Portofel
- Portofele
- vrea
- a fost
- we
- Web3
- Ecosistem Web3
- bun venit
- BINE
- au fost
- Ce
- Ce este
- cand
- care
- Listă albă
- OMS
- voi
- cu
- fără
- lume
- ar
- scris
- ani
- tu
- Ta
- zephyrnet