Najprej malo žargona. A "sporočilo" je enota komunikacije med dvema ali več udeleženci v omrežju blockchain. Vsebuje lahko katero koli vrsto podatkov in se običajno uporabljajo za pridobitev digitalne odobritve uporabnika.
A "transakcija", na drugi strani pa je posebna vrsta sporočila, ki vključuje prenos vrednosti od enega udeleženca do drugega. Običajno vključuje podatke, kot so naslov pošiljatelja, naslov prejemnika, znesek kriptovalute, ki se prenaša, in digitalni podpis, ki dokazuje avtorizacijo pošiljatelja za prenos.
Uporabniki že lahko počistijo podpis transakcij s svojimi napravami Ledger, kot je podrobno opisano v tej objavi, to dobro prakso pa smo z uporabo istih načel razširili tudi na sporočila. Evo kako.
Zakaj podpisujemo sporočila v web3?
Blockchains temeljijo na "kriptografija javnega ključa", kjer si uporabniki lastijo javni in zasebni ključ, ki tvorita par. Javni ključ predstavlja identiteto lastnika, zasebni ključ pa je tajen, kar jim omogoča, da dokažejo, da so lastniki para ključev.
Ko podpisujete sporočilo, uporabljate svoj zasebni ključ v algoritmu za podpisovanje, da povežete podpis s sporočilom in javnim ključem. Nihče ne more pridobiti vašega zasebnega ključa ali ponarediti veljavnega podpisa namesto vas. Vendar lahko vsak, ki pozna vaš javni ključ, zlahka preveri, ali je bilo sporočilo podpisano z vašim zasebnim ključem.
Na kratko, to je enak postopek in ideja kot podpisovanje transakcij, le da se tukaj osredotočamo na podpisovanje sporočil, ki služijo drugačnemu namenu: nadomestilo. Podpisujemo sporočila v kripto-aplikacijah, da pridobimo soglasje uporabnikov, tako kot bi v resničnem življenju uporabili svoj pisni podpis na papirju. To je kripto-različica "fiat signing".
Pomen EIP-712
Podpisovanje sporočil ni nova stvar. Sporočila lahko podpisujemo že leta in ta imajo lahko drugačne oblike in oblike, ko se sčasoma izboljšujejo. Pravzaprav je Predlog za izboljšavo Ethereuma 191 (EIP-191) je bil predložen leta 2016 in je uvedel standard, ki omogoča človeku berljiva sporočila, ki jih izvorno podpirajo naprave Ledger. Kjer pa je EIP-191 zaostal, je to, da standard ne strukturira podatkov. To je samo poudarek neomejene dolžine podatkov na koncu sporočila, kar otežuje uporabo. V praksi so sporočila pogosto predolga in se na koncu skrajšajo, zaradi česar uporabnik izgubi potencialno ključne informacije; slab UX.
Kot rečeno na začetku Predlog za izboljšavo Ethereuma 712 (EIP-712): »Podpisovanje podatkov je rešen problem, če so vse, kar nas zanima, bajtni nizi. Na žalost v resničnem svetu skrbimo za kompleksna in smiselna sporočila.« – Ne bi se mogel bolj strinjati. Ko so sporočila rasla, da bi lahko poskrbela za bolj zapletene operacije, je bila uvedba tipiziranih podatkovnih struktur v sporočilih, kot je določeno v EIP-712, dobrodošla sprememba.
Za uporabnike to pomeni, da lahko zdaj razvijalci razčlenijo podatke v sporočilu in vedo, kaj je kaj, kar je zdaj lahko izpostavljeno uporabniku. Razčlenjevanje pomeni biti sposoben prebrati vsebino, ker veste, kako je strukturirana. To je sprememba v smislu uporabniške izkušnje, pa tudi z vidika varnosti, saj zdaj lahko preverim, kaj podpisujem.
Nazaj v kontekstu tega, za kaj se uporabljajo sporočila, če prosite Alice, da vam podeli posebno dovoljenje za vsebino njene denarnice, kot razvijalec aplikacije, morate biti zelo jasni glede tega, da povečate svoje možnosti, da nadaljuje. Vendar je več kot le optimizacija stopnje konverzije.
Če razmišljate o varnosti in obrambi v nasprotnem okolju, bo goljuf očitno naredil to sporočilo čim manj pregledno, da bi Alice zavedel, da bi dovolila to zlonamerno operacijo. Preglednost in možnost Alice, da dvakrat preveri, kaj podpisuje, sta absolutno bistvenega pomena.
In tu nastopi EIP-712. Pred tem EIP so bila podpisana sporočila neprozoren šestnajstiški niz, prikazan uporabniku z malo konteksta o elementih, ki sestavljajo sporočilo.
Bi to podpisali? Imate kakšno idejo, kaj dovoljujete tukaj?
Specifikacija EIP-712 uvaja tipizirane podatkovne strukture za sporočila, ki omogočajo, da jih denarnice razčlenijo in prikažejo na uporabniku prijazen način, da lahko Alice sprejme informirano odločitev. Poleg tega je standard in interoperabilen v celotni industriji: s podporo EIP-712 lahko vaše sporočilo razčlenijo Ledger, MetaMask, Rainbow, Argent, Coinbase Wallet, če želite.
Podpora za Ledger za EIP-712
Najprej, veseli dnevi, naprave Ledger imajo izvorno podporo za sporočila EIP-712 in kot razvijalec lahko natančno nadzirate, kako so vaša sporočila prikazana v napravi.
V bistvu obstajajo 3 ravni podpore za sporočila v napravah Ledger:
1. stopnja: slepo podpisovanje
Če Bob, razvijalec aplikacije, ne uporablja sporočil EIP-712, Bob v bistvu zahteva od Alice, da podpiše neberljiv šestnajstiški niz: Bob od Alice zahteva, da podpiše nekaj, česar ne zna niti prebrati, to je slepo podpisovanje.
Raven 2: Transparentno podpisovanje
Z uvedbo sporočila EIP-712 Bob naredi korak naprej od šestnajstiškega niza do berljive vsebine. Zdaj omogoča Alice, da prebere vsebino sporočila, ker pa ji prikaže celotno vsebino sporočila, je težko opaziti ključne informacije, ki so pomešane s tehničnimi informacijami. Je pregledno, ni pa še jasno.
3. stopnja: jasno podpisovanje
Ker zna naprava razčleniti vsebino sporočila z navedbo, kaj prikazati in kako, lahko dosežemo jasno podpisovanje. Torej, pod pogojem, da je Bob nastavil zahtevane metapodatke, bi Alice videla tole v svoji napravi Ledger:
Veliko bolje kot šestnajstiški niz, kajne?
Druga ključna točka je, da ker je prikazan na popolnoma varnem, ločeno napravo, v katero ni mogoče posegati, je Alice 100 % prepričana, da tisto, kar vidi na tej napravi, podpisuje: nobena zlonamerna programska oprema ali zlonamerna aplikacija ne more spremeniti tega, kar ji je prikazano. Če tisto, kar je prikazano na napravi, ne ustreza njenim pričakovanjem, lahko ostane varna in zavrne podpis sporočila.
Da bi svojim uporabnikom zagotovil ta izboljšan UX in dodatno varnost, mora Bob narediti 2 stvari: določite, katera polja naj bodo prikazana uporabniku, in zagotovite lepo, eksplicitno ime za prikaz.
Če se kot razvijalec želite pridružiti Bobu in narediti to za svojo aplikacijo, tukaj imaš vso dokumentacijo, in se v bistvu zmanjša na ustvarjanje zahteve za vlečenje za vašo pogodbo na seznam dovoljenih v Ledgerjevem registru sredstev dApps prek datoteke JSON, ki vsebuje:
- Izbirniki, ki označujejo, katera polja mora naprava prikazati Alice,
- Vsak izbirnik označite s prikaznim imenom.
To ni kozmetika, je dobra praksa
Če vašo pametno pogodbo uvrstite na seznam dovoljenih in navedete, kako lahko naprave Ledger prikažejo vaša sporočila, ne le znatno izboljšate uporabniško izkušnjo pri interakciji z vašo aplikacijo, ampak kar je še pomembneje, vse nas zaščitite pred goljufijami in pomagate graditi dobre navade v ekosistem web3.
Nikoli ne smemo podpisati nečesa, česar ne razumemo.
Brez vas tega ne moremo storiti, pomagajte nam, da postane jasno podpisovanje pravilo.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- PlatoAiStream. Podatkovna inteligenca Web3. Razširjeno znanje. Dostopite tukaj.
- Kovanje prihodnosti z Adryenn Ashley. Dostopite tukaj.
- Kupujte in prodajajte delnice podjetij pred IPO s PREIPO®. Dostopite tukaj.
- vir: https://www.ledger.com/blog/securing-message-signing
- : je
- :ne
- :kje
- $GOR
- 1
- 2016
- 22
- 220
- a
- sposobnost
- Sposobna
- O meni
- o IT
- absolutno
- Doseči
- čez
- Naslov
- kontradiktorno
- algoritem
- vsi
- omogočajo
- Dovoli
- omogoča
- že
- Prav tako
- znesek
- an
- in
- Še ena
- kaj
- kdo
- aplikacija
- uporaba
- odobritev
- SE
- Argent
- AS
- sredstvo
- At
- pooblastilo
- temeljijo
- BE
- ker
- bilo
- pred
- Začetek
- počutje
- Boljše
- med
- Bit
- blockchain
- Omrežje Blockchain
- zrna
- izgradnjo
- vendar
- by
- CAN
- ki
- poskrbi
- kvote
- spremenite
- Spreminjevalec
- jasno
- coinbase
- Coinbase Denarnica
- prihaja
- pogosto
- Komunikacija
- kompleksna
- Soglasje
- vsebujejo
- vsebina
- Vsebina
- ozadje
- Naročilo
- nadzor
- Pretvorba
- Ustvarjanje
- cryptocurrency
- DApps
- datum
- Dnevi
- Odločitev
- Defense
- podrobno
- Razvojni
- Razvijalci
- naprava
- naprave
- drugačen
- digitalni
- zaslon
- prikazovanje
- do
- Dokumentacija
- Ne
- dont
- navzdol
- vsak
- enostavno
- ekosistem
- EIP
- konec
- okolje
- bistvena
- v bistvu
- ethereum
- Tudi
- Razen
- pričakovanja
- izkušnje
- izpostavljena
- dodatna
- Dejstvo
- Področja
- file
- osredotoča
- za
- ponarejali
- obrazec
- Obrazci
- Naprej
- iz
- polno
- v celoti
- Poleg tega
- igra
- game-changer
- zbiranje
- dobili
- gif
- dogaja
- dobro
- odobri
- strani
- srečna
- Trdi
- Imajo
- pomoč
- pomoč
- jo
- tukaj
- HEX
- njegov
- Kako
- Vendar
- HTTPS
- človeško berljivo
- i
- Ideja
- identiteta
- if
- Pomembnost
- izboljšanje
- izboljšalo
- Izboljšanje
- izboljšanju
- in
- vključuje
- Navedite
- Industrija
- Podatki
- obvestila
- medsebojno delovanje
- interoperabilno
- Uvedeno
- Predstavlja
- Predstavitev
- IT
- Izdelkov
- pridružite
- jpg
- json
- samo
- Ključne
- Vedite
- Ledger
- dolžina
- ravni
- življenje
- LINK
- malo
- Long
- Znamka
- Izdelava
- zlonamerna programska oprema
- Način
- Stave
- max širine
- Povečajte
- smiselna
- pomeni
- Sporočilo
- sporočil
- metapodatki
- MetaMask
- manjka
- mešano
- več
- Ime
- materni
- potrebe
- mreža
- nikoli
- Novo
- lepo
- št
- zdaj
- of
- pogosto
- on
- ONE
- samo
- motno
- Delovanje
- operacije
- optimizacija
- or
- Ostalo
- ven
- več
- lastne
- par
- Papir
- Udeleženci
- Dovoljenje
- perspektiva
- platon
- Platonova podatkovna inteligenca
- PlatoData
- Točka
- slaba
- mogoče
- potencialno
- praksa
- Ravno
- Načela
- zasebna
- zasebni ključ
- problem
- Postopek
- snubitev
- zaščito
- Dokaži
- dokazuje
- zagotavljajo
- če
- javnega
- javni ključ
- Namen
- Oceniti
- Preberi
- pravo
- resnično življenje
- resnični svet
- registra
- predstavlja
- zahteva
- obvezna
- rezultat
- varna
- Enako
- prevare
- skrivnost
- zavarovanje
- varnost
- glej
- vidi
- služijo
- nastavite
- Oblike
- je
- Kratke Hlače
- shouldnt
- Prikaži
- podpisati
- podpisano
- bistveno
- podpis
- saj
- pametna
- pametna pogodba
- So
- Nekaj
- specifična
- specifikacija
- določeno
- Komercialni
- standardna
- navedla
- bivanje
- Korak
- Zgodba
- String
- Struktura
- strukturirano
- predložen
- taka
- Super
- podpora
- Podprti
- Podpora
- Bodite
- tech
- Pogoji
- kot
- da
- O
- njihove
- Njih
- te
- jih
- stvar
- stvari
- mislim
- ta
- tisti,
- čeprav?
- čas
- do
- tudi
- Transakcije
- prenos
- prenese
- Preglednost
- pregleden
- dva
- tip
- razumeli
- na žalost
- Enota
- neomejeno
- us
- uporaba
- Rabljeni
- uporabnik
- Uporabniška izkušnja
- Uporabniku prijazen
- Uporabniki
- uporabo
- navadno
- ux
- vrednost
- preverjanje
- preko
- denarnica
- Denarnice
- želeli
- je
- we
- Web3
- Ekosistem Web3
- dobrodošli
- Dobro
- so bili
- Kaj
- Kaj je
- kdaj
- ki
- whitelist
- WHO
- bo
- z
- brez
- svet
- bi
- pisni
- let
- Vi
- Vaša rutina za
- zefirnet