dimanche, novembre 17, 2024

Les portefeuilles comme MetaMask doivent devenir plus conviviaux

Après la fusion tant attendue d’Ethereum, c’est le moment idéal pour réfléchir à la manière dont nous pouvons également améliorer les contrats intelligents. Essentiellement des applications qui s’exécutent sur des chaînes de blocs, les contrats intelligents sont un élément essentiel de nos applications Web3. Mais interagir avec eux reste assez dangereux, surtout pour les non-développeurs. De nombreux incidents où les utilisateurs perdent leurs actifs cryptographiques sont causés par des contrats intelligents bogués ou malveillants.

En tant que développeur d’applications Web3, c’est un défi auquel je pense souvent, d’autant plus que des vagues de nouveaux utilisateurs continuent de s’intégrer dans diverses applications blockchain. Pour faire pleinement confiance à un contrat intelligent, un consommateur doit savoir exactement ce qu’il va faire lorsqu’ils effectuent une transaction – car contrairement au monde du Web2, il n’y a pas de ligne d’assistance téléphonique pour appeler et récupérer les fonds en cas de problème. Mais actuellement, il est presque impossible de savoir si un contrat intelligent est sûr ou digne de confiance.

En relation: Le jalonnement liquide est la clé de la sécurité interchaîne

Une solution consiste à rendre les portefeuilles eux-mêmes plus intelligents. Par exemple, que se passerait-il si les portefeuilles pouvaient nous dire s’il est sûr d’interagir avec un contrat intelligent ? Il est probablement impossible de le savoir avec une certitude à 100 %, mais les portefeuilles pourraient, au minimum, regrouper et afficher un grand nombre des signaux que les développeurs recherchent déjà. Cela rendrait le processus plus simple et plus sûr, en particulier pour les non-développeurs.

Voici un aperçu plus approfondi des avantages et des inconvénients des contrats intelligents, pourquoi ils ressemblent maintenant au Far West et comment nous pourrions améliorer l’UX pour les utiliser.

La promesse et le péril des contrats intelligents

Pour les développeurs, l’utilisation d’un contrat intelligent comme backend pour leur application a un énorme potentiel. Cela augmente également le potentiel de bugs et d’exploits. C’est formidable que des contrats intelligents puissent être créés par des développeurs sans demander l’autorisation à personne, mais cela peut également exposer les utilisateurs à des risques considérables. Nous avons maintenant des applications qui transigent des centaines de millions de dollars sans aucune garantie de sécurité. Dans l’état actuel des choses, nous devons simplement croire que ces applications sont exemptes de bogues et font ce qu’elles promettent.

De nombreux non-développeurs ne sont même pas conscients des problèmes de sécurité impliqués et ne prennent pas les précautions appropriées lorsqu’ils interagissent avec des applications basées sur la blockchain. L’utilisateur moyen peut signer une transaction en pensant qu’il va faire une chose, pour découvrir que le contrat intelligent fait autre chose. C’est pourquoi les contrats intelligents malveillants sont un vecteur d’attaque principal pour les acteurs malveillants.

Pourquoi les contrats intelligents sont-ils le Far West ?

Lorsqu’une application Web3 effectue un appel de contrat intelligent, vous ne savez pas exactement ce que la transaction fera jusqu’à ce que vous le fassiez réellement. Monnayera-t-il votre jeton non fongible (NFT) ou enverra-t-il votre argent et vos jetons à un pirate ? Cette imprévisibilité est vraie pour toute application en ligne, bien sûr, pas seulement pour les applications Web3 ; prédire ce que le code fera est très difficile. Mais c’est un problème plus important dans le monde du Web3, car la plupart de ces applications sont intrinsèquement à gros enjeux (elles sont conçues pour gérer votre argent), et il y a si peu de protection pour les consommateurs.

L’App Store est en grande partie sûr en raison du processus de révision d’Apple, mais cela n’existe pas dans Web3. Si une application iOS commence à voler l’argent des utilisateurs, Apple la supprimera immédiatement pour atténuer les pertes et révoquer le compte de son créateur.

Lié: L’Amérique latine est prête pour la cryptographie – Intégrez-la simplement à leurs systèmes de paiement

Les contrats intelligents malveillants, en revanche, ne peuvent pas être supprimés par n’importe qui. Il n’y a également aucun moyen de récupérer les actifs volés. Si un contrat malveillant vide votre portefeuille, vous ne pouvez pas simplement contester la transaction auprès de votre compagnie de carte de crédit. Si le développeur est anonyme, comme c’est généralement le cas avec les contrats malveillants, il n’y a souvent même pas la possibilité d’intenter une action en justice.

Du point de vue d’un développeur, il est préférable que le code d’un contrat intelligent soit open source. Les contrats intelligents populaires publient généralement leur code source – une amélioration considérable par rapport aux applications Web2. Mais même alors, il est facile de manquer ce qui se passe vraiment. Il peut également être très difficile de prédire comment le code s’exécutera dans tous les scénarios. (Considérez ce Twitter long et effrayant fil de discussion par un développeur expérimenté qui a failli tomber dans le piège d’une escroquerie de phishing complexe, même après avoir lu les contrats impliqués. Ce n’est qu’après une deuxième inspection plus approfondie qu’il a remarqué l’exploit.)

Pour aggraver ces problèmes, les gens sont souvent contraints d’agir rapidement lorsqu’ils interagissent avec des contrats intelligents. Considérez une baisse NFT promue par les influenceurs : les consommateurs craindront que la collection ne se vende rapidement, ils essaieront donc souvent d’effectuer une transaction aussi rapidement que possible, en ignorant les drapeaux rouges qu’ils pourraient rencontrer en cours de route.

En bref, les mêmes fonctionnalités qui rendent les contrats intelligents puissants pour les développeurs – telles que la publication sans autorisation et l’argent programmable – les rendent assez dangereux pour les consommateurs.

Je ne pense pas que ce système soit fondamentalement défectueux. Mais il existe une tonne d’opportunités pour les développeurs Web3 comme moi de fournir de meilleures barrières de sécurité aux consommateurs utilisant des portefeuilles et des contrats intelligents aujourd’hui.

L’UX des portefeuilles et des contrats intelligents aujourd’hui

À bien des égards, les portefeuilles comme MetaMask donnent l’impression d’avoir été créés pour les développeurs. Ils affichent de nombreux détails techniques approfondis et des détails de blockchain utiles lors de la création d’applications.

Le problème avec cela est que les non-développeurs utilisent également MetaMask – sans comprendre ce que tout signifie. Personne ne s’attendait à ce que Web3 se généralise aussi rapidement, et les portefeuilles n’ont pas tout à fait rattrapé les besoins de leur nouvelle base d’utilisateurs.

Lié: Apprenez de Celsius – Empêchez les échanges de saisir votre argent

MetaMask a a déjà fait un excellent travail en renommant la « phrase mnémonique » en « phrase secrète » pour empêcher les consommateurs de la partager involontairement avec des pirates. Cependant, il y a encore beaucoup de place pour l’amélioration.

Jetons un coup d’œil à l’interface utilisateur (UI) de MetaMask, suivie de quelques maquettes que j’ai créées décrivant quelques améliorations potentielles qui pourraient guider les consommateurs dans le « gouffre du succès.” (Au fait, MetaMask sert ici de référence car il est largement utilisé dans le monde Web3, mais ces idées d’interface utilisateur devraient également s’appliquer à pratiquement toutes les applications de portefeuille.) Certains de ces ajustements de conception pourraient être construits aujourd’hui, tandis que d’autres pourraient nécessiter des avancées du côté des contrats intelligents.

L’image ci-dessous montre à quoi ressemble la fenêtre de transaction actuelle du contrat intelligent MetaMask.

Nous voyons l’adresse du contrat intelligent avec lequel nous interagissons, le site Web qui a initié la transaction, puis de nombreux détails sur les fonds que nous envoyons au contrat. Cependant, il n’y a aucune indication de ce que fait cet appel de contrat ou tout indicateur qu’il est sûr pour interagir avec.

Solutions potentielles pour améliorer les contrats intelligents

Ce que nous aimerions vraiment voir ici, ce sont des signaux qui nous aident, en tant qu’utilisateurs finaux, à déterminer si nous faisons confiance ou non à cette transaction de contrat intelligent. Par analogie, pensez au petit cadenas vert ou rouge dans la barre d’adresse des navigateurs web modernes, qui indique si la connexion est cryptée ou non. Cet indicateur à code couleur aide à éloigner les utilisateurs inexpérimentés des dangers potentiels, tandis que les utilisateurs expérimentés peuvent facilement l’ignorer s’ils le préfèrent.

À titre d’exemple visuel, voici deux maquettes de conception d’expérience utilisateur rapide (UX) de transactions MetaMask – une qui est susceptible d’être sûre et une qui est moins certaine.

Voici quelques-uns des signaux de ma maquette :

  • Le code source du contrat est-il publié ? Les contrats open source sont généralement plus fiables car n’importe quel développeur peut les lire pour trouver des bogues et du code malveillant. MetaMask inclut déjà divers liens vers Etherscan, ce serait donc un signal simple et pratique à ajouter.
  • Note d’audit. Un audit tiers est un autre signal qui peut déterminer la fiabilité. La principale question de mise en œuvre ici est de savoir comment déterminer ce score. Existe-t-il déjà des normes acceptées pour cela? Sinon, un moyen simple pourrait être d’utiliser Etherscan, qui prend en charge le téléchargement des audits. MetaMask, dans cet exemple, pourrait également maintenir sa propre liste d’auditeurs ou s’appuyer sur une liste de tiers. (D’après ce que je peux dire, MetaMask le fait déjà pour les API NFT et la détection de jetons.) À l’avenir, il est facile d’imaginer une organisation autonome décentralisée pour déterminer les scores d’audit de manière plus décentralisée.
  • Que peut faire cette transaction ? Peut-il faire appel à des contrats externes, et si oui lesquels ? Ce serait très difficile à déterminer parfaitement, mais je me demande si une version simple pour les contrats open-source serait faisable. Il existe déjà de nombreux scanners de vulnérabilité de contrats intelligents automatisés. Si ce n’est pas possible pour Solidity, je me demande si nous pourrions concevoir un langage de programmation de contrat intelligent qui Est-ce que permettre ce niveau d’analyse statique. Peut-être que des fonctions individuelles pourraient déclarer les autorisations dont elles ont besoin, et le compilateur pourrait garantir la conformité.
  • Conseils et éducation à la sécurité. Si un contrat intelligent n’a pas beaucoup de signaux de fiabilité (voir la maquette ci-dessus à droite), l’interface utilisateur peut recommander un ensemble approprié de précautions à prendre, comme vérifier si l’adresse du contrat est correcte et utiliser un autre compte. Ce sont des suggestions faites dans le texte orange, par opposition au rouge, car un manque de signaux n’est pas nécessairement dangereux; ici, nous recommandons simplement aux utilisateurs d’être un peu plus prudents quant aux prochaines étapes.

Comme de nombreuses fonctionnalités existantes dans MetaMask, ces fonctionnalités proposées pourraient être désactivées dans les paramètres.

Vers un avenir plus sûr

À l’avenir, il y aura probablement de nombreux outils axés sur la sécurité construits sur les composants primitifs fournis par les blockchains. Par exemple, il est probable que nous verrons des protocoles d’assurance qui protègent les utilisateurs contre les contrats intelligents bogués devenir monnaie courante. (Celles-ci existent déjà, mais elles sont encore assez niches.)

Lié: Qu’est-ce qui motivera la probable course haussière de la crypto en 2024?

Cependant, les consommateurs utilisent déjà des applications Web3, même à ces débuts, donc j’aimerais voir la communauté des développeurs ajouter plus de protections pour eux à présent. Quelques améliorations simples aux portefeuilles pourraient faire beaucoup. Certaines des idées susmentionnées aideraient à protéger les utilisateurs inexpérimentés tout en rationalisant simultanément le processus de transaction pour les vétérans du Web3.

De mon point de vue, tout ce qui n’est pas le trading d’actifs cryptographiques sur Coinbase (ou d’autres grandes entreprises) est encore beaucoup trop risqué pour le consommateur moyen. Lorsque vos amis et votre famille vous demandent de configurer un portefeuille crypto en libre-service pour utiliser des applications Web3 (avouons-le, généralement pour acheter des NFT), commencez toujours par les avertir des risques. Cela en effraie certains, mais les plus déterminés veulent quand même les utiliser. Lorsque nos portefeuilles seront plus intelligents, nous pourrons nous sentir beaucoup mieux dans l’intégration de la prochaine vague de nouveaux utilisateurs sur Web3.

Devin Abbott (@dvnabbott) est le fondateur de Deco, une startup rachetée par Airbnb. Il se spécialise dans les outils de conception et de développement, les applications React et Web3, plus récemment avec The Graph.

Cet article est à des fins d’information générale et n’est pas destiné à être et ne doit pas être considéré comme un conseil juridique ou d’investissement. Les vues, pensées et opinions exprimées ici sont celles de l’auteur seul et ne reflètent pas ou ne représentent pas nécessairement les vues et opinions de Cointelegraph.


source site-12

- Advertisement -

Latest