Zuerst ein bisschen Fachjargon. A "Nachricht" ist eine Kommunikationseinheit zwischen zwei oder mehr Teilnehmern in einem Blockchain-Netzwerk. Es kann jede Art von Daten enthalten und wird häufig verwendet, um die digitale Genehmigung eines Benutzers einzuholen.
A "Transaktion"Andererseits handelt es sich um eine bestimmte Art von Nachricht, bei der es um die Übertragung von Werten von einem Teilnehmer auf einen anderen geht. Dazu gehören in der Regel Informationen wie die Adresse des Absenders, die Adresse des Empfängers, der Betrag der übertragenen Kryptowährung und eine digitale Signatur, die die Autorisierung des Absenders für die Übertragung nachweist.
Benutzer können Signiertransaktionen bereits mit ihren Ledger-Geräten löschen, wie in diesem Beitrag beschrieben, und wir haben diese bewährte Vorgehensweise unter Verwendung derselben Prinzipien auch auf Nachrichten ausgeweitet. Hier erfahren Sie, wie.
Warum signieren wir Nachrichten in web3?
Blockchains basieren auf „Public-Key-Kryptographie“, wobei Benutzer einen öffentlichen Schlüssel und einen privaten Schlüssel besitzen, die ein Paar bilden. Der öffentliche Schlüssel repräsentiert die Identität des Eigentümers und der private Schlüssel ist geheim, sodass dieser nachweisen kann, dass er der Eigentümer des Schlüsselpaars ist.
Beim Signieren einer Nachricht verwenden Sie Ihren privaten Schlüssel im Signaturalgorithmus, um eine Signatur mit der Nachricht und dem öffentlichen Schlüssel zu verknüpfen. Niemand kann Ihren privaten Schlüssel ableiten oder eine gültige Signatur für Sie fälschen. Allerdings kann jeder, der Ihren öffentlichen Schlüssel kennt, leicht überprüfen, ob die Nachricht mit Ihrem privaten Schlüssel signiert wurde.
Um es kurz zu machen: Es handelt sich um den gleichen Prozess und die gleiche Idee wie beim Signieren von Transaktionen, mit der Ausnahme, dass wir uns hier auf das Signieren von Nachrichten konzentrieren, die einem anderen Zweck dienen: der Vergütung. Wir signieren Nachrichten in Krypto-Anwendungen, um die Zustimmung der Benutzer einzuholen, so wie Sie im wirklichen Leben Ihre schriftliche Unterschrift auf einem Papier verwenden würden. Es handelt sich um die Krypto-Version des „Fiat-Signierens“.
Die Bedeutung von EIP-712
Das Signieren von Nachrichten ist keine neue Sache. Wir sind schon seit Jahren in der Lage, Nachrichten zu signieren, und diese können mit der Zeit unterschiedliche Formen annehmen und sich verbessern. Tatsächlich ist die Ethereum-Verbesserungsvorschlag 191 (EIP-191) wurde 2016 eingereicht und führte einen Standard ein, der menschenlesbare Nachrichten ermöglicht, der von Ledger-Geräten nativ unterstützt wird. Der Nachteil von EIP-191 besteht jedoch darin, dass der Standard die Daten nicht strukturiert. Am Ende der Nachricht handelt es sich lediglich um einen Auszug aus einer unbegrenzten Datenlänge, was die Verwendung erschwert. In der Praxis sind Nachrichten oft zu lang, was dazu führt, dass sie abgeschnitten werden und dem Benutzer potenziell wichtige Informationen entgehen. schlechte UX.
Wie bereits zu Beginn erwähnt Ethereum-Verbesserungsvorschlag 712 (EIP-712): „Das Signieren von Daten ist ein gelöstes Problem, wenn wir uns nur um Bytestrings kümmern. Leider kümmern wir uns in der realen Welt um komplexe, bedeutungsvolle Botschaften.“ – Ich kann nur zustimmen. Da Nachrichten wuchsen, um komplexere Vorgänge zu ermöglichen, war die Einführung typisierter Datenstrukturen in Nachrichten gemäß EIP-712 eine willkommene Änderung.
Für Benutzer bedeutet dies, dass Entwickler jetzt die Daten in der Nachricht analysieren und wissen können, was was ist, was nun dem Benutzer angezeigt werden kann. Parsen bedeutet, den Inhalt lesen zu können, weil man weiß, wie er aufgebaut ist. Das ist eine Wende im Hinblick auf die Benutzererfahrung, aber auch aus Sicherheitsgründen, da ich jetzt überprüfen kann, was ich unterschreibe.
Zurück zum Zweck der Verwendung von Nachrichten: Wenn Sie Alice bitten, Ihnen eine spezifische Erlaubnis für den Inhalt ihrer Wallet zu erteilen, sollten Sie als App-Entwickler dies sehr deutlich machen, um Ihre Chancen zu maximieren, dass sie fortfährt. Aber es ist mehr als nur eine Conversion-Rate-Optimierung.
Wenn Sie über Sicherheit und Verteidigung in einer gegnerischen Umgebung nachdenken, wird ein Betrüger diese Nachricht offensichtlich so undurchsichtig wie möglich gestalten, um Alice dazu zu bringen, diesen böswilligen Vorgang zuzulassen. Transparenz und die Möglichkeit für Alice, noch einmal zu überprüfen, was sie unterschreibt, sind absolut unerlässlich.
Und hier kommt EIP-712 ins Spiel. Vor dieser EIP waren signierte Nachrichten eine undurchsichtige Hex-Zeichenfolge, die dem Benutzer mit wenig Kontext zu den Elementen angezeigt wurde, aus denen die Nachricht besteht.
Würden Sie das unterschreiben? Irgendeine Idee, was Sie hier genehmigen?
Die EIP-712-Spezifikation führt typisierte Datenstrukturen für Nachrichten ein, die es ermöglichen, diese von Wallets zu analysieren und auf benutzerfreundliche Weise anzuzeigen, damit Alice eine fundierte Entscheidung treffen kann. Darüber hinaus ist es branchenweit ein Standard und interoperabel: Durch die Unterstützung von EIP-712 kann Ihre Nachricht von Ledger, MetaMask, Rainbow, Argent, Coinbase Wallet und vielem mehr geparst werden.
Ledger-Unterstützung für EIP-712
Zunächst einmal, glückliche Tage, Ledger-Geräte bieten native Unterstützung für EIP-712-Nachrichten, und als Entwickler können Sie genau steuern, wie Ihre Nachrichten auf dem Gerät angezeigt werden.
Es gibt im Wesentlichen drei Unterstützungsstufen für Nachrichten auf Ledger-Geräten:
Stufe 1: Blindes Signieren
Wenn Bob, ein App-Entwickler, keine EIP-712-Nachrichten verwendet, bittet Bob Alice im Wesentlichen, eine unlesbare Hex-Zeichenfolge zu signieren: Bob bittet Alice, etwas zu signieren, das sie nicht einmal lesen kann, das heißt blind signieren.
Stufe 2: Transparentes Signieren
Durch die Implementierung einer EIP-712-Nachricht macht Bob einen Schritt vorwärts und geht von einer Hex-Zeichenfolge hin zu lesbarem Inhalt. Jetzt kann Alice den Inhalt der Nachricht lesen. Da ihr jedoch der gesamte Inhalt der Nachricht angezeigt wird, ist es schwierig, die wichtigen Informationen zu erkennen, die mit technischen Informationen vermischt sind. Es ist transparent, aber noch nicht klar.
Stufe 3: Klare Signatur
Da das Gerät den Inhalt der Nachricht analysieren kann, indem es angibt, was und wie angezeigt werden soll, können wir eine klare Signatur erreichen. Vorausgesetzt, Bob hat die erforderlichen Metadaten festgelegt, würde Alice Folgendes auf ihrem Ledger-Gerät sehen:
Viel besser als eine Sechskantsaite, nicht wahr?
Ein weiterer wichtiger Punkt ist, dass die Anzeige auf einem völlig sicheren, separates Gerät, das nicht manipuliert werden kannAlice ist zu 100 % sicher, dass das, was sie auf diesem Gerät sieht, auch das ist, was sie signiert: Keine Schadsoftware oder schädliche Anwendung kann das, was ihr angezeigt wird, verändern. Wenn die Anzeige auf dem Gerät nicht ihren Erwartungen entspricht, kann sie auf Nummer sicher gehen und das Signieren der Nachricht ablehnen.
Um seinen Benutzern diese verbesserte UX und zusätzliche Sicherheit zu bieten, muss Bob zwei Dinge tun: Geben Sie an, welche Felder dem Benutzer angezeigt werden sollen, und geben Sie ihnen einen schönen, eindeutigen Anzeigenamen.
Wenn Sie als Entwickler Bob beitreten und dies für Ihre App tun möchten, Sie haben hier die gesamte Dokumentation, und es läuft im Wesentlichen darauf hinaus, eine Pull-Anfrage zu erstellen, um Ihren Vertrag über eine JSON-Datei, die Folgendes enthält, in der dApps Asset Registry von Ledger auf die Whitelist zu setzen:
- Selektoren, um anzugeben, welche Felder das Gerät Alice anzeigen muss,
- Beschriften Sie jeden Selektor mit einem Anzeigenamen.
Das ist keine Kosmetik, sondern eine gute Praxis
Indem Sie Ihren Smart Contract auf die Whitelist setzen und angeben, wie Ledger-Geräte Ihre Nachrichten anzeigen können, verbessern Sie nicht nur die Benutzererfahrung bei der Interaktion mit Ihrer Anwendung erheblich, sondern, was noch wichtiger ist, Sie schützen uns alle vor Betrügereien und tragen dazu bei, gute Gewohnheiten in der Anwendung zu entwickeln web3-Ökosystem.
Wir sollten niemals etwas unterschreiben, das wir nicht verstehen.
Ohne Sie können wir das nicht schaffen. Helfen Sie uns, klare Unterzeichnungen zur Norm zu machen.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- PlatoAiStream. Web3-Datenintelligenz. Wissen verstärkt. Hier zugreifen.
- Die Zukunft prägen mit Adryenn Ashley. Hier zugreifen.
- Kaufen und verkaufen Sie Anteile an PRE-IPO-Unternehmen mit PREIPO®. Hier zugreifen.
- Quelle: https://www.ledger.com/blog/securing-message-signing
- :Ist
- :nicht
- :Wo
- $UP
- 1
- 2016
- 22
- 220
- a
- Fähigkeit
- Fähig
- Über uns
- darüber
- absolut
- Erreichen
- über
- Adresse
- widersprüchlich
- Algorithmus
- Alle
- erlauben
- Zulassen
- erlaubt
- bereits
- ebenfalls
- Betrag
- an
- und
- Ein anderer
- jedem
- jemand
- App
- Anwendung
- Genehmigung
- SIND
- Argent
- AS
- Vermögenswert
- At
- Genehmigung
- basierend
- BE
- weil
- war
- Bevor
- Anfang
- Sein
- Besser
- zwischen
- Bit
- Blockchain
- Blockchain-Netzwerk
- Getreide
- bauen
- aber
- by
- CAN
- österreichische Unternehmen
- sorgen
- Chancen
- Übernehmen
- Changer
- klar
- coinbase
- Münzbörse
- kommt
- häufig
- Kommunikation
- Komplex
- Zustimmung
- Inhalt
- Inhalt
- Kontext
- Vertrag
- Smartgeräte App
- Umwandlung (Conversion)
- Erstellen
- kryptowährung
- DApps
- technische Daten
- Tage
- Entscheidung
- Militär
- detailliert
- Entwickler:in / Unternehmen
- Entwickler
- Gerät
- Geräte
- anders
- digital
- Display
- Anzeige
- do
- Dokumentation
- Tut nicht
- Nicht
- nach unten
- jeder
- leicht
- Ökosystem
- EIP
- Ende
- Arbeitsumfeld
- essential
- im Wesentlichen
- Astraleum
- Sogar
- Außer
- Erwartungen
- ERFAHRUNGEN
- ausgesetzt
- extra
- zusätzliche Sicherheit
- Tatsache
- Felder
- Reichen Sie das
- Fokussierung
- Aussichten für
- schmieden
- unten stehende Formular
- Formen
- vorwärts
- für
- voller
- voll
- Außerdem
- Spiel
- Game-Changer
- sammeln
- bekommen
- gif
- gehen
- gut
- gewähren
- Pflege
- glücklich
- hart
- Haben
- Hilfe
- Unternehmen
- hier (auf dänisch)
- hier
- HEX
- seine
- Ultraschall
- aber
- HTTPS
- für Menschen lesbar
- i
- Idee
- Identitätsschutz
- if
- Bedeutung
- zu unterstützen,
- verbessert
- Verbesserung
- Verbesserung
- in
- Dazu gehören
- zeigen
- Anzeige
- Energiegewinnung
- Information
- informiert
- Interaktion
- interoperabel
- eingeführt
- Stellt vor
- Einleitung
- IT
- Artikel
- join
- jpg
- JSON
- nur
- Wesentliche
- Wissen
- Ledger
- Länge
- Cholesterinspiegel
- Lebensdauer
- LINK
- wenig
- Lang
- um
- Making
- Malware
- Weise
- Spiel
- max-width
- Maximieren
- sinnvoll
- Mittel
- Nachricht
- Nachrichten
- Metadaten
- MetaMask
- Kommt demnächst...
- gemischt
- mehr
- Name
- nativen
- Bedürfnisse
- Netzwerk
- hört niemals
- Neu
- schön
- nicht
- jetzt an
- of
- vorgenommen,
- on
- EINEM
- einzige
- undurchsichtig
- Betrieb
- Einkauf & Prozesse
- Optimierung
- or
- Andere
- übrig
- besitzen
- Paar
- Papier
- Teilnehmer
- Erlaubnis
- Perspektive
- Plato
- Datenintelligenz von Plato
- PlatoData
- Points
- Arm
- möglich
- möglicherweise
- Praxis
- genau
- Grundsätze
- privat
- Private Key
- Aufgabenstellung:
- Prozessdefinierung
- Angebot
- Schutz
- Belegen
- Beweist
- die
- vorausgesetzt
- Öffentlichkeit
- public Key
- Zweck
- Bewerten
- Lesen Sie mehr
- echt
- wahres Leben
- realen Welt
- Registratur
- representiert
- Anforderung
- falls angefordert
- was zu
- safe
- gleich
- Betrug
- Die Geheime
- Verbindung
- Sicherheitdienst
- sehen
- sieht
- brauchen
- kompensieren
- Formen
- sie
- Short
- sollte
- erklären
- Schild
- unterzeichnet
- bedeutend
- Unterzeichnung
- da
- smart
- Smart-Vertrag
- So
- etwas
- spezifisch
- Spezifikation
- angegeben
- Spot
- Standard
- angegeben
- bleiben
- Schritt
- Geschichte
- Schnur
- Struktur
- strukturierte
- eingereicht
- so
- Super
- Support
- Unterstützte
- Unterstützung
- Nehmen
- Tech
- AGB
- als
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- ihr
- Sie
- Diese
- vom Nutzer definierten
- Ding
- think
- fehlen uns die Worte.
- diejenigen
- obwohl?
- Zeit
- zu
- auch
- Transaktionen
- privaten Transfer
- übertragen
- Transparenz
- transparent
- XNUMX
- tippe
- verstehen
- Unglücklicherweise
- Einheit
- unbegrenzt
- us
- -
- benutzt
- Mitglied
- Benutzererfahrung
- benutzerfreundlich
- Nutzer
- Verwendung von
- gewöhnlich
- ux
- Wert
- überprüfen
- Wallet
- Börsen
- wollen
- wurde
- we
- Web3
- Web3-Ökosystem
- willkommen
- GUT
- waren
- Was
- Was ist
- wann
- welche
- Whitelist
- WHO
- werden wir
- mit
- ohne
- weltweit wie ausgehandelt und gekauft ausgeführt wird.
- würde
- geschrieben
- Jahr
- U
- Ihr
- Zephyrnet