Tout d’abord, un peu de jargon. UN "un message" est une unité de communication entre deux ou plusieurs participants dans un réseau blockchain. Il peut contenir tout type de données et est couramment utilisé pour obtenir l’approbation numérique d’un utilisateur.
A "transaction", en revanche, est un type spécifique de message qui implique le transfert de valeur d'un participant à un autre. Il comprend généralement des informations telles que l'adresse de l'expéditeur, l'adresse du destinataire, le montant de cryptomonnaie transféré et une signature numérique qui prouve l'autorisation de l'expéditeur pour le transfert.
Les utilisateurs peuvent déjà effacer les transactions de signature à l'aide de leurs appareils Ledger, comme détaillé dans cet article, et nous avons également étendu cette bonne pratique en utilisant les mêmes principes aux messages, voici comment procéder.
Pourquoi signons-nous des messages dans Web3 ?
Les blockchains sont basées sur « cryptographie à clé publique », où les utilisateurs possèdent une clé publique et une clé privée, qui forment une paire. La clé publique représente l'identité du propriétaire et la clé privée est secrète, lui permettant de prouver qu'il possède la paire de clés.
Lorsque vous signez un message, vous utilisez votre clé privée dans l'algorithme de signature pour lier une signature au message et à la clé publique. Personne ne peut dériver votre clé privée ou forger une signature valide pour vous. Cependant, toute personne connaissant votre clé publique peut facilement vérifier que le message a été signé par votre clé privée.
Pour faire court, c'est le même processus et la même idée que la signature de transactions, sauf que nous nous concentrons ici sur la signature de messages qui servent un objectif différent : l'allocation. Nous signons des messages dans des applications cryptographiques pour recueillir le consentement des utilisateurs, tout comme dans la vraie vie, vous utiliseriez votre signature écrite sur un papier. C'est la version crypto de la « signature fiduciaire ».
L'importance de EIP-712
Signer des messages n’est pas une nouveauté. Nous sommes capables de signer des messages depuis des années maintenant, et ceux-ci peuvent prendre différentes formes à mesure qu'ils s'améliorent au fil du temps. En fait, le Proposition d'amélioration d'Ethereum 191 (EIP-191) a été soumis en 2016 et a introduit une norme permettant des messages lisibles par l'homme qui est pris en charge nativement par les appareils Ledger. Mais là où l’EIP-191 n’a pas fonctionné, c’est que la norme ne structure pas les données. Il s'agit simplement d'un texte de présentation d'une longueur illimitée de données à la fin du message, ce qui le rend difficile à utiliser. En pratique, les messages sont souvent trop longs, finissent par être tronqués et font passer l'utilisateur à côté d'informations potentiellement clés ; mauvaise UX.
Comme indiqué au début du Proposition d'amélioration d'Ethereum 712 (EIP-712): « La signature des données est un problème résolu si nous ne nous soucions que des chaînes d'octets. Malheureusement, dans le monde réel, nous nous soucions des messages complexes et significatifs. - Je ne pourrais pas être plus d'accord. Alors que les messages se sont développés pour répondre à des opérations plus complexes, l'introduction de structures de données typées dans les messages, comme spécifié dans EIP-712, était un changement bienvenu.
Ce que cela signifie pour les utilisateurs, c'est que les développeurs peuvent désormais analyser les données du message et savoir quoi, qui peuvent désormais être exposées à l'utilisateur. Analyser signifie être capable de lire le contenu, car vous savez comment il est structuré. Cela change la donne en termes d'expérience utilisateur mais aussi du point de vue de la sécurité puisque je peux désormais vérifier ce que je signe.
De retour dans le contexte de l'utilisation des messages, si vous demandez à Alice de vous accorder une autorisation spécifique sur le contenu de son portefeuille, en tant que développeur d'applications, vous devez être très explicite à ce sujet afin de maximiser vos chances qu'elle continue. Mais c'est bien plus qu'une simple optimisation du taux de conversion.
Si vous pensez à la sécurité et à la défense dans un environnement conflictuel, un escroc rendra évidemment ce message aussi opaque que possible pour tromper Alice et permettre cette opération malveillante. La transparence et la possibilité pour Alice de vérifier ce qu'elle signe sont absolument essentielles.
Et c'est là qu'intervient l'EIP-712. Avant cet EIP, les messages signés étaient une chaîne hexadécimale opaque affichée à l'utilisateur avec peu de contexte sur les éléments qui composent le message.
Voudriez-vous signer ceci ? Une idée de ce que vous autorisez ici ?
La spécification EIP-712 introduit des structures de données typées pour les messages qui permettent à ceux-ci d'être analysés par des portefeuilles et affichés de manière conviviale pour qu'Alice puisse prendre une décision éclairée. De plus, il s'agit d'un standard interopérable dans tout le secteur : prenant en charge EIP-712, votre message peut être analysé par Ledger, MetaMask, Rainbow, Argent, Coinbase Wallet, etc.
Prise en charge du grand livre pour EIP-712
Tout d'abord, bons jours, les appareils Ledger prennent en charge nativement les messages EIP-712 et, en tant que développeur, vous pouvez contrôler précisément la manière dont vos messages sont affichés sur l'appareil.
Il existe essentiellement 3 niveaux de prise en charge des messages sur les appareils Ledger :
Niveau 1 : Signature aveugle
Si Bob, un développeur d'applications, n'utilise pas les messages EIP-712, Bob demande essentiellement à Alice de signer une chaîne hexadécimale illisible : Bob demande à Alice de signer quelque chose qu'elle ne peut même pas lire, c'est-à-dire signature à l'aveugle.
Niveau 2 : Signature transparente
En implémentant un message EIP-712, Bob fait un pas en avant en passant d'une chaîne hexadécimale à un contenu lisible. Il permet désormais à Alice de lire le contenu du message. Cependant, comme il lui affiche l'intégralité du contenu du message, il est difficile de repérer les informations clés mélangées aux informations techniques. C'est transparent, mais ce n'est pas encore clair.
Niveau 3 : Signature claire
Puisque l’appareil peut analyser le contenu du message, en indiquant ce qu’il faut afficher et comment, nous pouvons obtenir une signature claire. Ainsi, à condition que Bob définisse les métadonnées requises, voici ce qu'Alice verrait sur son appareil Ledger :
Bien mieux qu'une chaîne hexagonale, n'est-ce pas ?
Un autre point clé est que puisqu'il est affiché sur un site entièrement sécurisé, appareil séparé qui ne peut pas être altéré, Alice est sûre à 100 % que ce qu'elle voit sur cet appareil est ce qu'elle signe : aucun malware ou application malveillante ne peut modifier ce qui lui est affiché. Si ce qui est affiché sur l'appareil ne correspond pas à ses attentes, elle peut rester en sécurité et refuser de signer le message.
Pour offrir cette UX améliorée et une sécurité supplémentaire à ses utilisateurs, Bob doit faire 2 choses : spécifiez quels champs doivent être affichés à l'utilisateur et fournissez-leur un nom d'affichage agréable et explicite.
Si en tant que développeur, vous souhaitez rejoindre Bob et le faire pour votre application, tu as toute la documentation ici, et cela se résume essentiellement à créer une pull request pour mettre votre contrat sur liste blanche dans le registre d'actifs dApps de Ledger via un fichier JSON contenant :
- Des sélecteurs pour indiquer les champs que l'appareil doit afficher Alice,
- Étiquetez chaque sélecteur avec un nom d’affichage.
Ce n'est pas du cosmétique, c'est une bonne pratique
En mettant votre contrat intelligent sur liste blanche et en indiquant comment les appareils Ledger peuvent afficher vos messages, non seulement vous améliorez considérablement l'expérience utilisateur lors de l'interaction avec votre application, mais plus important encore, vous nous protégez tous des escroqueries et contribuez à développer de bonnes habitudes dans le domaine. écosystème web3.
Nous ne devrions jamais signer quelque chose que nous ne comprenons pas.
Nous ne pouvons pas y parvenir sans vous, aidez-nous à faire de la signature claire la norme.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoAiStream. Intelligence des données Web3. Connaissance Amplifiée. Accéder ici.
- Frapper l'avenir avec Adryenn Ashley. Accéder ici.
- Achetez et vendez des actions de sociétés PRE-IPO avec PREIPO®. Accéder ici.
- La source: https://www.ledger.com/blog/securing-message-signing
- :est
- :ne pas
- :où
- $UP
- 1
- 2016
- 22
- 220
- a
- capacité
- Capable
- Qui sommes-nous
- à propos de ça
- absolument
- atteindre
- à travers
- propos
- contradictoire
- algorithme
- Tous
- permettre
- Permettre
- permet
- déjà
- aussi
- montant
- an
- ainsi que
- Une autre
- tous
- chacun.e
- appli
- Application
- approbation
- SONT
- Argent
- AS
- atout
- At
- autorisation
- basé
- BE
- car
- était
- before
- Début
- va
- Améliorée
- jusqu'à XNUMX fois
- Bit
- blockchain
- réseau blockchain
- grain
- construire
- mais
- by
- CAN
- les soins
- répondre
- chances
- Change
- Échangeur
- clair
- coinbase
- Portefeuille Coinbase
- vient
- communément
- Communication
- complexe
- consentement
- contenu
- contenu
- contexte
- contrat
- des bactéries
- Conversion
- La création
- crypto-monnaie
- DApps
- données
- jours
- décision
- Défense
- détaillé
- Développeur
- mobiles
- dispositif
- Compatibles
- différent
- numérique
- Commande
- afficher
- do
- Documentation
- Ne fait pas
- Ne pas
- down
- chacun
- même
- risque numérique
- EIP
- fin
- Environment
- essential
- essentiellement
- Ethereum
- Pourtant, la
- Sauf
- attentes
- Découvrez
- exposé
- supplémentaire
- sécurité supplémentaire
- fait
- Des champs
- Déposez votre dernière attestation
- mettant l'accent
- Pour
- forger
- formulaire
- document
- Avant
- de
- plein
- d’étiquettes électroniques entièrement
- En outre
- jeu
- changeur de jeu
- recueillir
- obtenez
- gif
- aller
- Bien
- subvention
- main
- heureux vous
- Dur
- Vous avez
- aider
- aider
- ici
- ici
- HEX
- sa
- Comment
- Cependant
- HTTPS
- lisible par l'homme
- i
- idée
- Active
- if
- importance
- améliorer
- amélioré
- amélioration
- l'amélioration de
- in
- inclut
- indiquer
- indiquant
- industrie
- d'information
- Actualités
- interagissant
- interopérable
- introduit
- Introduit
- Introduction
- IT
- articles
- rejoindre
- jpg
- json
- juste
- ACTIVITES
- Savoir
- Ledger
- Longueur
- niveaux
- VIE
- LINK
- peu
- Location
- faire
- Fabrication
- malware
- manière
- Match
- largeur maximale
- Maximisez
- significative
- veux dire
- message
- messages
- Métadonnées
- MetaMask
- manquant
- mixte
- PLUS
- prénom
- indigène
- Besoins
- réseau et
- n'allons jamais
- Nouveauté
- agréable
- aucune
- maintenant
- of
- souvent
- on
- ONE
- uniquement
- opaque
- opération
- Opérations
- à mettre en œuvre pour gérer une entreprise rentable. Ce guide est basé sur trois décennies d'expérience
- or
- Autre
- ande
- plus de
- propre
- paire
- Papier
- participants
- autorisation
- objectifs
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Point
- pauvres
- possible
- l'éventualité
- pratique
- précisément
- principes
- Privé
- Clé privée
- Problème
- processus
- proposition
- L'utilisation de sélénite dans un espace est un excellent moyen de neutraliser l'énergie instable ou négative.
- Prouver
- Prouve
- fournir
- à condition de
- public
- Clé publique
- but
- Tarif
- Lire
- réal
- la vie réelle
- monde réel
- enregistrement
- représente
- nécessaire
- conditions
- résultant
- des
- même
- les escroqueries
- secret
- sécurisé
- sécurité
- sur le lien
- voit
- besoin
- set
- formes
- elle
- Shorts
- devrait
- montrer
- signer
- signé
- de façon significative
- signature
- depuis
- smart
- contrat intelligent
- So
- quelque chose
- groupe de neurones
- spécification
- spécifié
- Spot
- Standard
- A déclaré
- rester
- étapes
- Histoire
- Chaîne
- structure
- structuré
- soumis
- tel
- Super
- Support
- Appareils
- Appuyer
- Prenez
- technologie
- conditions
- que
- qui
- Les
- leur
- Les
- Ces
- l'ont
- chose
- des choses
- penser
- this
- ceux
- bien que?
- fiable
- à
- trop
- Transactions
- transférer
- transféré
- Transparence
- communication
- deux
- type
- comprendre
- malheureusement
- unité
- illimité
- us
- utilisé
- d'utiliser
- Utilisateur
- Expérience utilisateur
- convivial
- utilisateurs
- en utilisant
- d'habitude
- ux
- Plus-value
- vérifier
- via
- Wallet
- Portefeuilles
- souhaitez
- était
- we
- Web3
- Écosystème Web3
- bienvenu
- WELL
- ont été
- Quoi
- Qu’est ce qu'
- quand
- qui
- whitelist
- WHO
- sera
- comprenant
- sans
- world
- pourra
- code écrit
- années
- you
- Votre
- zéphyrnet