Først lidt lingo. EN "besked" er en kommunikationsenhed mellem to eller flere deltagere i et blockchain-netværk. Det kan indeholde enhver type data, og de bruges almindeligvis til at få digital godkendelse fra en bruger.
A "transaktion", på den anden side, er en specifik type besked, der involverer overførsel af værdi fra en deltager til en anden. Det omfatter normalt oplysninger såsom afsenderens adresse, modtagerens adresse, mængden af kryptovaluta, der overføres, og en digital signatur, der beviser afsenderens autorisation til overførslen.
Brugere kan allerede rydde fortegnstransaktioner ved hjælp af deres Ledger-enheder, som beskrevet i dette indlæg, og vi har udvidet denne gode praksis ved at bruge de samme principper til også at omfatte beskeder, her er hvordan.
Hvorfor signerer vi beskeder i web3?
Blockchains er baseret på "offentlig nøglekryptografi", hvor brugerne ejer en offentlig nøgle og en privat nøgle, som danner et par. Den offentlige nøgle repræsenterer ejerens identitet, og den private nøgle er hemmelig, hvilket giver dem mulighed for at bevise, at de ejer nøgleparret.
Når du signerer en besked, bruger du din private nøgle i signeringsalgoritmen til at linke en signatur til beskeden og den offentlige nøgle. Ingen kan udlede din private nøgle eller forfalske en gyldig signatur for dig. Alle, der kender din offentlige nøgle, kan dog nemt bekræfte, at meddelelsen blev underskrevet af din private nøgle.
Lang historie kort, det er den samme proces og idé som at underskrive transaktioner, bortset fra at vi her fokuserer på at underskrive beskeder, der tjener et andet formål: godtgørelse. Vi signerer beskeder i krypto-applikationer for at indsamle brugersamtykke, ligesom når du i det virkelige liv ville bruge din skriftlige signatur på et papir. Det er kryptoversionen af "fiat-signering".
Vigtigheden af EIP-712
At signere beskeder er ikke en ny ting. Vi har været i stand til at signere beskeder i årevis nu, og de kan antage forskellige former og former, efterhånden som de forbedres over tid. Faktisk Ethereum forbedringsforslag 191 (EIP-191) blev indsendt i 2016 og introducerede en standard, der tillader meddelelser, der kan læses af mennesker, og som understøttes indbygget af Ledger-enheder. Hvor EIP-191 dog kom til kort, er, at standarden ikke strukturerer dataene. Det er bare et billede af en ubegrænset længde af data i slutningen af beskeden, hvilket gør det svært at bruge. I praksis er meddelelser ofte for lange og ender med at blive afkortet og resulterer i, at brugeren går glip af potentielt nøgleoplysninger; dårlig UX.
Som nævnt i begyndelsen af Ethereum forbedringsforslag 712 (EIP-712): "Signing af data er et løst problem, hvis alt, hvad vi bekymrer os om, er bytestrings. Desværre bekymrer vi os i den virkelige verden om komplekse meningsfulde budskaber." - Jeg kunne ikke være mere enig. Efterhånden som meddelelser voksede til at tage højde for mere komplekse operationer, var indførelsen af maskinskrevne datastrukturer i meddelelser som specificeret i EIP-712 en velkommen ændring.
Hvad dette betyder for brugerne, er, at nu kan udviklere parse dataene i beskeden og vide, hvad der er hvad, som nu kan eksponeres for brugeren. Parsing betyder, at man kan læse indholdet, fordi man ved, hvordan det er opbygget. Det er en game changer med hensyn til brugeroplevelse, men også fra et sikkerhedsperspektiv, da jeg nu kan bekræfte, hvad jeg signerer.
Tilbage i sammenhæng med, hvad beskeder bruges til, hvis du beder Alice om at give dig specifik tilladelse til indholdet af hendes tegnebog, som app-udvikler, bør du være super eksplicit om det for at maksimere dine chancer for, at hun kan fortsætte. Men det er mere end blot en optimering af konverteringsraten.
Hvis du tænker på sikkerhed og forsvar i et modstridende miljø, vil en svindler naturligvis gøre denne besked så uigennemsigtig som muligt for at narre Alice til at tillade den ondsindede handling. Gennemsigtighed og Alices evne til at dobbelttjekke, hvad hun skriver under på, er helt afgørende.
Og det er her, EIP-712 kommer ind i billedet. Før denne EIP var signerede beskeder en uigennemsigtig hex-streng, der blev vist til brugeren med lidt kontekst om de elementer, der udgør beskeden.
Vil du skrive under på dette? Har du nogen idé om, hvad du godkender her?
EIP-712-specifikationen introducerer indtastede datastrukturer for meddelelser, som gør det muligt at analysere disse af tegnebøger og vises på en brugervenlig måde, så Alice kan træffe en informeret beslutning. Ydermere er det en standard og interoperabel på tværs af branchen: Understøtter EIP-712, din besked kan parses af Ledger, MetaMask, Rainbow, Argent, Coinbase Wallet, you name it.
Ledger-understøttelse til EIP-712
Først og fremmest, glade dage, Ledger-enheder har indbygget understøttelse af EIP-712-meddelelser, og som udvikler kan du kontrollere præcist, hvordan dine beskeder vises på enheden.
Der er i det væsentlige 3 niveauer af understøttelse af meddelelser på Ledger-enheder:
Niveau 1: Blind signering
Hvis Bob, en app-udvikler, ikke bruger EIP-712-meddelelser, beder Bob i det væsentlige Alice om at underskrive en ulæselig hex-streng: Bob beder Alice om at underskrive noget, hun ikke engang kan læse, det er blind-signering.
Niveau 2: Gennemsigtig signering
Ved at implementere en EIP-712-meddelelse tager Bob et skridt fremad ved at gå fra en hex-streng til læsbart indhold. Det giver nu Alice mulighed for at læse indholdet af beskeden, men fordi det viser hele indholdet af beskeden til hende, er det svært at få øje på nøgleinformationen, der er blandet med teknisk information. Det er gennemsigtigt, men det er ikke klart endnu.
Niveau 3: Klar signering
Da enheden kan parse indholdet af meddelelsen, ved at angive, hvad der skal vises og hvordan, kan vi opnå klar signering. Så forudsat at Bob indstillede de nødvendige metadata, er her, hvad Alice ville se på sin Ledger-enhed:
Meget bedre end en hex-streng er det ikke?
Et andet vigtigt punkt er, at da det vises på en fuldt sikker, separat enhed, som ikke kan manipuleres, Alice er 100 % sikker på, at det, hun ser på den enhed, er det, hun underskriver: ingen malware eller ondsindet applikation kan ændre, hvad der vises for hende. Hvis det, der vises på enheden, ikke svarer til hendes forventninger, kan hun være sikker og afvise at underskrive beskeden.
For at give denne forbedrede UX og ekstra sikkerhed til sine brugere skal Bob gøre 2 ting: angiv hvilke felter der skal vises for brugeren og giv dem et pænt eksplicit visningsnavn.
Hvis du som udvikler vil slutte dig til Bob og gøre det til din app, du har al dokumentation her, og det bunder i det væsentlige ned til at oprette en pull-anmodning om at hvidliste din kontrakt på Ledgers dApps Asset Registry via en JSON-fil, der indeholder:
- Vælgere til at angive, hvilke felter enheden skal vise Alice,
- Mærk hver vælger med et visningsnavn.
Dette er ikke kosmetik, det er god praksis
Ved at hvidliste din smarte kontrakt og angive, hvordan Ledger-enheder kan vise dine beskeder, forbedrer du ikke kun brugeroplevelsen markant, når du interagerer med din applikation, men endnu vigtigere, beskytter du os alle mod svindel og hjælper med at opbygge gode vaner i web3 økosystem.
Vi skal aldrig skrive under på noget, vi ikke forstår.
Vi kan ikke gøre dette uden dig, hjælp os med at gøre klar signatur til normen.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoAiStream. Web3 Data Intelligence. Viden forstærket. Adgang her.
- Udmøntning af fremtiden med Adryenn Ashley. Adgang her.
- Køb og sælg aktier i PRE-IPO-virksomheder med PREIPO®. Adgang her.
- Kilde: https://www.ledger.com/blog/securing-message-signing
- :er
- :ikke
- :hvor
- $OP
- 1
- 2016
- 22
- 220
- a
- evne
- I stand
- Om
- om det
- absolut
- opnå
- tværs
- adresse
- kontradiktorisk
- algoritme
- Alle
- tillade
- tillade
- tillader
- allerede
- også
- beløb
- an
- ,
- En anden
- enhver
- nogen
- app
- Anvendelse
- godkendelse
- ER
- Argent
- AS
- aktiv
- At
- tilladelse
- baseret
- BE
- fordi
- været
- før
- Begyndelse
- være
- Bedre
- mellem
- Bit
- blockchain
- Blockchain netværk
- bob
- bygge
- men
- by
- CAN
- hvilken
- imødekomme
- odds
- lave om
- Changer
- klar
- coinbase
- Coinbase Wallet
- kommer
- almindeligt
- Kommunikation
- komplekse
- samtykke
- indeholder
- indhold
- indhold
- sammenhæng
- kontrakt
- kontrol
- Konvertering
- Oprettelse af
- cryptocurrency
- DApps
- data
- Dage
- beslutning
- Forsvar
- detaljeret
- Udvikler
- udviklere
- enhed
- Enheder
- forskellige
- digital
- Skærm
- visning
- do
- dokumentation
- Er ikke
- Dont
- ned
- hver
- nemt
- økosystem
- EIP
- ende
- Miljø
- væsentlig
- væsentlige
- ethereum
- Endog
- Undtagen
- forventninger
- erfaring
- udsat
- ekstra
- Faktisk
- Fields
- File (Felt)
- fokusering
- Til
- smede
- formular
- formularer
- Videresend
- fra
- fuld
- fuldt ud
- Endvidere
- spil
- game-changer
- samle
- få
- gif
- gå
- godt
- indrømme
- hånd
- Gem
- Hård Ost
- Have
- hjælpe
- hjælpe
- hende
- link.
- HEX
- hans
- Hvordan
- Men
- HTTPS
- læsbar
- i
- idé
- Identity
- if
- betydning
- Forbedre
- forbedret
- forbedring
- in
- omfatter
- angiver
- industrien
- oplysninger
- informeret
- interaktion
- interoperable
- introduceret
- Introducerer
- Introduktion
- IT
- Varer
- deltage
- jpg
- json
- lige
- Nøgle
- Kend
- Ledger
- Længde
- niveauer
- Livet
- LINK
- lidt
- Lang
- lave
- Making
- malware
- måde
- Match
- max-bredde
- Maksimer
- meningsfuld
- midler
- besked
- beskeder
- Metadata
- MetaMask
- mangler
- blandet
- mere
- navn
- indfødte
- behov
- netværk
- aldrig
- Ny
- rart
- ingen
- nu
- of
- tit
- on
- ONE
- kun
- uigennemsigtig
- drift
- Produktion
- optimering
- or
- Andet
- ud
- i løbet af
- egen
- par
- Papir
- deltagere
- tilladelse
- perspektiv
- plato
- Platon Data Intelligence
- PlatoData
- Punkt
- fattige
- mulig
- potentielt
- praksis
- præcist
- principper
- private
- private nøgle
- Problem
- behandle
- forslag
- beskyttelse
- Bevise
- beviser
- give
- forudsat
- offentlige
- offentlig nøgle
- formål
- Sats
- Læs
- ægte
- I virkeligheden
- virkelige verden
- register
- repræsenterer
- anmode
- påkrævet
- resulterer
- sikker
- samme
- svindel
- Secret
- sikker
- sikkerhed
- se
- Sees
- tjener
- sæt
- former
- hun
- Kort
- bør
- Vis
- underskrive
- underskrevet
- betydeligt
- signering
- siden
- Smart
- smart kontrakt
- So
- noget
- specifikke
- specifikation
- specificeret
- Spot
- standard
- erklærede
- forblive
- Trin
- Story
- String
- struktur
- struktureret
- indsendt
- sådan
- Super
- support
- Understøttet
- Støtte
- Tag
- tech
- vilkår
- end
- at
- deres
- Them
- Disse
- de
- ting
- ting
- tror
- denne
- dem
- selvom?
- tid
- til
- også
- Transaktioner
- overførsel
- overført
- Gennemsigtighed
- gennemsigtig
- to
- typen
- forstå
- desværre
- enhed
- ubegrænset
- us
- brug
- anvendte
- Bruger
- Brugererfaring
- brugervenlig
- brugere
- ved brug af
- sædvanligvis
- ux
- værdi
- verificere
- via
- tegnebog
- Punge
- ønsker
- var
- we
- Web3
- Web3 økosystem
- velkommen
- GODT
- var
- Hvad
- Hvad er
- hvornår
- som
- whitelist
- WHO
- vilje
- med
- uden
- world
- ville
- skriftlig
- år
- Du
- Din
- zephyrnet