Najpierw trochę żargonu. A "wiadomość" to jednostka komunikacji między dwoma lub większą liczbą uczestników w sieci blockchain. Może zawierać dowolne dane i są one powszechnie używane do uzyskiwania cyfrowej zgody użytkownika.
A "transakcja", z drugiej strony, jest specyficznym rodzajem komunikatu, który polega na przekazywaniu wartości od jednego uczestnika do drugiego. Zwykle zawiera takie informacje, jak adres nadawcy, adres odbiorcy, ilość przesyłanej kryptowaluty oraz podpis cyfrowy potwierdzający autoryzację nadawcy do przelewu.
Użytkownicy mogą już rozliczać transakcje podpisu za pomocą swoich urządzeń Ledger, jak szczegółowo w tym pościei rozszerzyliśmy tę dobrą praktykę, stosując te same zasady, również do wiadomości. Oto jak to zrobić.
Dlaczego podpisujemy wiadomości w web3?
Blockchainy są oparte na „kryptografia klucza publicznego”, gdzie użytkownicy posiadają klucz publiczny i klucz prywatny, które tworzą parę. Klucz publiczny reprezentuje tożsamość właściciela, a klucz prywatny jest tajny, co pozwala mu udowodnić, że jest właścicielem pary kluczy.
Podczas podpisywania wiadomości używasz swojego klucza prywatnego w algorytmie podpisywania, aby połączyć podpis z wiadomością i kluczem publicznym. Nikt nie może uzyskać twojego klucza prywatnego ani sfałszować dla ciebie ważnego podpisu. Jednak każdy, kto zna Twój klucz publiczny, może łatwo sprawdzić, czy wiadomość została podpisana Twoim kluczem prywatnym.
Krótko mówiąc, jest to ten sam proces i pomysł, co podpisywanie transakcji, z wyjątkiem tego, że skupiamy się tutaj na podpisywaniu wiadomości, które służą innemu celowi: zasiłkowi. Podpisujemy wiadomości w aplikacjach kryptograficznych, aby uzyskać zgodę użytkownika, tak jak w prawdziwym życiu używałbyś swojego pisemnego podpisu na papierze. To krypto-wersja „podpisywania fiat”.
Znaczenie EIP-712
Podpisywanie wiadomości nie jest niczym nowym. Od lat możemy podpisywać wiadomości, które z biegiem czasu mogą przybierać różne kształty i formy. W rzeczywistości Propozycja ulepszenia Ethereum 191 (EIP-191) został złożony w 2016 roku i wprowadził standard pozwalający na czytelne dla człowieka wiadomości, który jest natywnie obsługiwany przez urządzenia Ledger. Tam, gdzie EIP-191 zawiódł, jest to, że standard nie porządkuje danych. To tylko streszczenie nieograniczonej długości danych na końcu wiadomości, co utrudnia korzystanie z niego. W praktyce wiadomości są często zbyt długie i ostatecznie są skracane, co powoduje, że użytkownik traci potencjalnie kluczowe informacje; biedny UX.
Jak podano na początku ww Propozycja ulepszenia Ethereum 712 (EIP-712): „Podpisywanie danych jest rozwiązanym problemem, jeśli zależy nam tylko na testach bajtowych. Niestety w prawdziwym świecie zależy nam na złożonych, znaczących przekazach”. – Nie mogłem się bardziej zgodzić. Ponieważ komunikaty rosły w celu obsługi bardziej złożonych operacji, wprowadzenie struktur danych typowanych w komunikatach, jak określono w EIP-712, było pożądaną zmianą.
Dla użytkowników oznacza to, że teraz programiści mogą analizować dane w wiadomości i wiedzieć, co jest czym, co może teraz zostać ujawnione użytkownikowi. Parsowanie oznacza możliwość odczytania treści, ponieważ wiesz, jaka jest jej struktura. To zmienia zasady gry pod względem doświadczenia użytkownika, ale także z punktu widzenia bezpieczeństwa, ponieważ teraz mogę zweryfikować, co podpisuję.
Wracając do kontekstu tego, do czego używane są wiadomości, jeśli prosisz Alice o udzielenie ci konkretnego pozwolenia na zawartość jej portfela, jako twórca aplikacji, powinieneś bardzo wyraźnie o tym powiedzieć, aby zmaksymalizować swoje szanse na kontynuację. Ale to coś więcej niż tylko optymalizacja współczynnika konwersji.
Jeśli myślisz o bezpieczeństwie i obronie w środowisku przeciwnika, oszust oczywiście uczyni tę wiadomość tak nieprzejrzystą, jak to tylko możliwe, aby oszukać Alice, aby zezwoliła na tę złośliwą operację. Przejrzystość i możliwość podwójnego sprawdzenia przez Alice tego, co podpisuje, są absolutnie niezbędne.
I tu wkracza EIP-712. Przed tym EIP podpisane wiadomości były nieprzezroczystym ciągiem szesnastkowym wyświetlanym użytkownikowi z niewielkim kontekstem dotyczącym elementów składających się na wiadomość.
Podpisałbyś to? Masz pojęcie, co tutaj autoryzujesz?
Specyfikacja EIP-712 wprowadza wpisane struktury danych dla wiadomości, które umożliwiają ich analizowanie przez portfele i wyświetlanie w sposób przyjazny dla użytkownika, aby Alice mogła podjąć świadomą decyzję. Co więcej, jest to standard i interoperacyjność w całej branży: obsługując EIP-712, Twoja wiadomość może zostać przeanalizowana przez Ledger, MetaMask, Rainbow, Argent, Coinbase Wallet, co tylko chcesz.
Obsługa księgi dla EIP-712
Po pierwsze, szczęśliwe dni, urządzenia Ledger mają natywną obsługę wiadomości EIP-712, a jako programista możesz dokładnie kontrolować sposób wyświetlania wiadomości na urządzeniu.
Zasadniczo istnieją 3 poziomy obsługi wiadomości na urządzeniach Ledger:
Poziom 1: Podpisywanie w ciemno
Jeśli Bob, twórca aplikacji, nie używa komunikatów EIP-712, Bob zasadniczo prosi Alice o podpisanie nieczytelnego ciągu szesnastkowego: Bob prosi Alice o podpisanie czegoś, czego ona nawet nie może przeczytać, to znaczy podpisywanie na ślepo.
Poziom 2: Przejrzyste podpisywanie
Implementując komunikat EIP-712, Bob robi krok naprzód, przechodząc od ciągu szesnastkowego do czytelnej treści. Teraz pozwala Alicji odczytać treść wiadomości, jednak ponieważ wyświetla jej pełną treść wiadomości, trudno jest dostrzec kluczowe informacje, które są wymieszane z informacjami technicznymi. Jest przezroczysty, ale jeszcze nie jest jasny.
Poziom 3: Wyczyść podpisywanie
Ponieważ urządzenie może analizować treść wiadomości, wskazując, co i jak wyświetlić, możemy osiągnąć czytelne podpisywanie. Tak więc, pod warunkiem, że Bob ustawi wymagane metadane, Alicja zobaczy to na swoim urządzeniu Ledger:
O wiele lepsze niż ciąg szesnastkowy, prawda?
Inną kluczową kwestią jest to, że ponieważ jest wyświetlany na w pełni bezpiecznym, oddzielne urządzenie, przy którym nie można manipulować, Alice jest w 100% pewna, że to, co widzi na tym urządzeniu, jest tym, co podpisuje: żadne złośliwe oprogramowanie ani złośliwa aplikacja nie może zmienić tego, co jest jej wyświetlane. Jeśli to, co wyświetla się na urządzeniu, nie odpowiada jej oczekiwaniom, może zachować bezpieczeństwo i odmówić podpisania wiadomości.
Aby zapewnić swoim użytkownikom ten ulepszony interfejs użytkownika i dodatkowe zabezpieczenia, Bob musi zrobić 2 rzeczy: określ, które pola powinny być wyświetlane użytkownikowi i podaj im ładną, wyraźną nazwę wyświetlaną.
Jeśli jako programista chcesz dołączyć do Boba i zrobić to dla swojej aplikacji, masz tutaj całą dokumentacjęi zasadniczo sprowadza się to do utworzenia żądania ściągnięcia, aby umieścić Twoją umowę na białej liście w rejestrze zasobów dApps firmy Ledger za pośrednictwem pliku JSON zawierającego:
- Selektory wskazujące, które pola urządzenie musi pokazać Alice,
- Oznacz każdy selektor wyświetlaną nazwą.
To nie kosmetyka, to dobra praktyka
Umieszczając swoją inteligentną umowę na białej liście i wskazując, w jaki sposób urządzenia Ledger mogą wyświetlać Twoje wiadomości, nie tylko znacznie poprawiasz wrażenia użytkownika podczas interakcji z aplikacją, ale co ważniejsze, chronisz nas wszystkich przed oszustwami i pomagasz budować dobre nawyki w ekosystem web3.
Nigdy nie powinniśmy podpisywać czegoś, czego nie rozumiemy.
Nie możemy tego zrobić bez Ciebie, pomóż nam uczynić jasne podpisywanie normą.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoAiStream. Analiza danych Web3. Wiedza wzmocniona. Dostęp tutaj.
- Wybijanie przyszłości w Adryenn Ashley. Dostęp tutaj.
- Kupuj i sprzedawaj akcje spółek PRE-IPO z PREIPO®. Dostęp tutaj.
- Źródło: https://www.ledger.com/blog/securing-message-signing
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- 1
- 2016
- 22
- 220
- a
- zdolność
- Zdolny
- O nas
- o tym
- absolutnie
- Osiągać
- w poprzek
- adres
- przeciwny
- algorytm
- Wszystkie kategorie
- dopuszczać
- Pozwalać
- pozwala
- już
- również
- ilość
- an
- i
- Inne
- każdy
- ktoś
- Aplikacja
- Zastosowanie
- zatwierdzenie
- SĄ
- Srebrzysty
- AS
- kapitał
- At
- autoryzacja
- na podstawie
- BE
- bo
- być
- zanim
- Początek
- jest
- Ulepsz Swój
- pomiędzy
- Bit
- blockchain
- blockchain
- bob
- budować
- ale
- by
- CAN
- który
- zaopatrywać
- duża szansa,
- zmiana
- Changer
- jasny
- coinbase
- Coinbase Wallet
- byliśmy spójni, od początku
- powszechnie
- Komunikacja
- kompleks
- zgoda
- zawartość
- treść
- kontekst
- umowa
- kontrola
- Konwersja
- Tworzenie
- kryptowaluta
- DApps
- dane
- Dni
- decyzja
- Obrona
- szczegółowe
- Deweloper
- deweloperzy
- urządzenie
- urządzenia
- różne
- cyfrowy
- Wyświetlacz
- wyświetlanie
- do
- dokumentacja
- Nie
- nie
- na dół
- każdy
- z łatwością
- Ekosystem
- EIP
- zakończenia
- Środowisko
- niezbędny
- istotnie
- ethereum
- Parzyste
- Z wyjątkiem
- oczekiwania
- doświadczenie
- narażony
- dodatkowy
- dodatkowe bezpieczeństwo
- fakt
- Łąka
- filet
- skupienie
- W razie zamówieenia projektu
- wykuć
- Nasz formularz
- formularze
- Naprzód
- od
- pełny
- w pełni
- Ponadto
- gra
- game-changer
- zbierać
- otrzymać
- gif
- będzie
- dobry
- przyznać
- ręka
- Zaoszczędzić
- Ciężko
- Have
- pomoc
- pomoc
- jej
- tutaj
- HEX
- jego
- W jaki sposób
- Jednak
- HTTPS
- czytelne dla człowieka
- i
- pomysł
- tożsamość
- if
- znaczenie
- podnieść
- ulepszony
- poprawa
- poprawy
- in
- obejmuje
- wskazać
- wskazując,
- przemysł
- Informacja
- poinformowany
- interakcji
- interoperacyjne
- wprowadzono
- Przedstawia
- Wprowadzenie
- IT
- szt
- przystąpić
- jpg
- json
- właśnie
- Klawisz
- Wiedzieć
- Księga główna
- Długość
- poziomy
- życie
- LINK
- mało
- długo
- robić
- Dokonywanie
- malware
- sposób
- Mecz
- Maksymalna szerokość
- Maksymalizuj
- wymowny
- znaczy
- wiadomość
- wiadomości
- Metadane
- MetaMask
- brakujący
- mieszany
- jeszcze
- Nazwa
- rodzimy
- wymagania
- sieć
- nigdy
- Nowości
- miło
- Nie
- już dziś
- of
- często
- on
- ONE
- tylko
- nieprzezroczysty
- działanie
- operacje
- optymalizacja
- or
- Inne
- na zewnątrz
- koniec
- własny
- đôi
- Papier
- Uczestnicy
- pozwolenie
- perspektywa
- plato
- Analiza danych Platona
- PlatoDane
- punkt
- biedny
- możliwy
- potencjalnie
- praktyka
- precyzyjnie
- Zasady
- prywatny
- Klucz prywatny
- Problem
- wygląda tak
- wniosek
- ochrony
- Udowodnij
- dowodzi
- zapewniać
- pod warunkiem,
- publiczny
- Klucz publiczny
- cel
- Kurs
- Czytaj
- real
- prawdziwe życie
- Prawdziwy świat
- rejestr
- reprezentuje
- zażądać
- wymagany
- wynikły
- "bezpiecznym"
- taki sam
- oszustwa
- Tajemnica
- bezpieczne
- bezpieczeństwo
- widzieć
- widzi
- służyć
- zestaw
- kształty
- ona
- Short
- powinien
- pokazać
- znak
- podpisana
- znacznie
- podpisywanie
- ponieważ
- mądry
- inteligentna umowa
- So
- coś
- specyficzny
- specyfikacja
- określony
- Spot
- standard
- stwierdził,
- pobyt
- Ewolucja krok po kroku
- Historia
- sznur
- Struktura
- zbudowany
- składane
- taki
- Wspaniały
- wsparcie
- Utrzymany
- Wspierający
- Brać
- tech
- REGULAMIN
- niż
- że
- Połączenia
- ich
- Im
- Te
- one
- rzecz
- rzeczy
- myśleć
- to
- tych
- chociaż?
- czas
- do
- także
- transakcje
- przenieść
- przeniesione
- Przezroczystość
- przezroczysty
- drugiej
- rodzaj
- zrozumieć
- Niestety
- jednostka
- nieograniczone
- us
- posługiwać się
- używany
- Użytkownik
- Doświadczenie użytkownika
- łatwy w obsłudze
- Użytkownicy
- za pomocą
- zazwyczaj
- ux
- wartość
- zweryfikować
- przez
- Portfel
- Portfele
- chcieć
- była
- we
- Web3
- Ekosystem Web3
- powitanie
- DOBRZE
- były
- Co
- Co to jest
- jeśli chodzi o komunikację i motywację
- który
- whitelist
- KIM
- będzie
- w
- bez
- świat
- by
- napisany
- lat
- ty
- Twój
- zefirnet