Gavin Wood: Comment prévenir les attaques Sybil pour un largage aérien efficace?

IntermédiaireSep 18, 2024
Gavin s'est récemment concentré sur la question des attaques Sybil (résistance civile). Cet article revisite le discours liminaire du Dr Gavin Wood lors de Polkadot Decoded 2024, explorant certaines de ses idées sur la prévention des attaques Sybil.
Gavin Wood: Comment prévenir les attaques Sybil pour un largage aérien efficace?

Récemment, Gavin s’est concentré sur la question des attaques Sybil (résistance civile). PolkaWorld a passé en revue le discours liminaire du Dr Gavin Wood à Polkadot Decoded 2024, explorant certaines de ses réflexions sur la façon de prévenir les attaques Sybil. Si cela vous intéresse, continuez à lire !

Qu'est-ce qu'une attaque Sybil?

Vous savez peut-être déjà que je travaille sur plusieurs projets. J'écris un « livre gris » et je me concentre sur le projet JAM, faisant en même temps un peu de codage. Au cours des deux dernières années, j'ai beaucoup réfléchi à un problème crucial qui est très important dans cet espace - comment prévenir les attaques Sybil (résistance civile). Ce problème est partout. Les systèmes blockchain sont construits sur la théorie des jeux, et lors de l'analyse de jeux, nous devons souvent limiter le nombre de participants ou gérer les comportements imprévisibles qu'ils peuvent manifester.

Lors de la conception de systèmes numériques, nous voulons déterminer si un point final spécifique — une interface numérique — est exploité par un humain. Pour clarifier, je ne discute pas de l'identité ici. L'identité est évidemment importante, mais nous ne nous concentrons pas sur la détermination de l'identité réelle de quelqu'un ici. Au lieu de cela, le but est de distinguer entre les appareils et de déterminer s'ils sont exploités activement par un humain à un moment donné. De plus, une autre question importante se pose : si un appareil est effectivement exploité par un humain, pouvons-nous leur fournir un pseudonyme qui nous permet de les identifier dans un contexte particulier, et s'ils reviennent pour interagir avec nous, pouvons-nous les reconnaître à nouveau?

Comme nos interactions sont passées principalement de la communication avec d'autres personnes (dans les années 80, lorsque je suis né) à l'interaction avec des systèmes, des systèmes numériques, en particulier des systèmes décentralisés Web3, sont devenus de plus en plus pertinents. Dans les années 80, les gens interagissaient principalement directement avec d'autres; dans les années 90, nous avons commencé à interagir avec des services par téléphone, comme la banque par téléphone. Cela a été un changement majeur pour nous. Initialement, la banque par téléphone impliquait de grands centres d'appels exploités par des humains, mais au fil du temps, ces systèmes ont évolué vers les systèmes de réponse vocale automatisée d'aujourd'hui. Avec l'essor d'Internet, les interactions humaines sont devenues plus rares, et dans la plupart des services quotidiens, nous ne communiquons plus directement avec des humains. Bien sûr, avec la croissance du commerce électronique Web2, cette tendance est devenue encore plus apparente. Web3 consolide davantage cela - dans Web3, vous interagissez rarement avec des personnes. L'idée centrale de Web3 est que vous interagissez avec des machines, et parfois les machines interagissent entre elles.

Pourquoi étudier les attaques Sybil est-il important ?

Alors, en quoi cela importe-t-il? C'est un élément fondamental de toute société réelle et se situe au cœur de nombreux systèmes sociaux, y compris les affaires, la gouvernance, le vote et la construction d'un consensus. Tous ces éléments dépendent fortement de la prévention des attaques Sybil pour construire de véritables communautés. De nombreux mécanismes qui sont tenus pour acquis dans les entreprises sont basés sur la prévention des attaques Sybil. Qu'il s'agisse d'une utilisation équitable, du contrôle du bruit ou de la gestion de la communauté, ils reposent tous sur cette capacité défensive. De nombreuses choses nécessitent que nous confirmions qu'une entité est effectivement un être humain réel. Si quelqu'un se comporte de manière inappropriée, nous pouvons vouloir les supprimer temporairement de la communauté. C'est quelque chose que vous pouvez observer dans les services numériques, et bien sûr, cela existe également dans le monde réel.

En empêchant les attaques Sybil, nous pouvons introduire des mécanismes qui restreignent le comportement sans élever les barrières à l'entrée ou compromettre l'accessibilité du système. Par exemple, il existe deux façons fondamentales d'inciter au comportement : l'une passe par une approche de la "carotte et du bâton" (un système de récompenses et de sanctions). La méthode du bâton (sanction) vous oblige à verser une caution, et si vous vous mal comportez, cette caution est confisquée. Le staking est un exemple simple de cela. La méthode de la carotte (récompense) suppose que vous vous comporterez bien, et si vous ne répondez pas aux attentes, vous perdez certains de vos droits. C'est essentiellement ainsi que fonctionnent la plupart des sociétés civiles.

Cependant, sans mécanismes pour empêcher les attaques Sybil sur la blockchain, cette approche ne peut pas vraiment être appliquée. Dans la société civile, ces mécanismes fonctionnent parce que, si quelqu'un est emprisonné, il ne peut pas commettre la même infraction à nouveau, du moins pas pendant sa détention. La liberté est un droit inhérent, et le gouvernement peut, en principe, le retirer. Je ne suggère pas que nous emprisonnions quiconque sur la chaîne, mais actuellement, nous ne pouvons pas imposer des contraintes similaires sur la blockchain. Cela rend difficile la limitation des comportements nuisibles lors de l'offre de services gratuits, et nous finissons par ne compter que sur l'encouragement des bons comportements. Le commerce et les activités promotionnelles reposent fortement sur la capacité de confirmer que les utilisateurs sont de vraies personnes.

Voici une capture d'écran d'un site Web que j'utilise parfois. Il propose un whisky très apprécié de nombreuses personnes et difficile à trouver dans son pays d'origine. Mais en Europe, il est relativement bon marché et il semble qu'ils maintiennent les prix bas en limitant le nombre de bouteilles que chaque personne peut acheter. Cependant, ce genre d'opération est presque impossible à appliquer dans un véritable système Web3.

Il y a également des défis importants dans la construction de la communauté, les airdrops, et l'identification et la distribution aux membres de la communauté. Les airdrops sont généralement inefficaces en termes de dépenses en capital car ils visent à couvrir autant de personnes que possible. Pour distribuer équitablement les airdrops, vous devez identifier les individus et donner à chacun la même quantité. Mais en pratique, de nombreux problèmes surviennent, tels que des soldes de portefeuille variables. Finalement, vous pourriez vous retrouver dans une situation où la courbe de distribution devient extrêmement déséquilibrée, avec d'énormes disparités. En conséquence, la plupart des gens ne reçoivent presque aucune incitation.

En ce qui concerne la « utilisation équitable », bien que l'impact actuel soit faible, si vous utilisez excessivement les ressources du réseau, le système ralentit généralement votre connexion, bien que vous puissiez toujours utiliser le réseau.

En regardant en arrière il y a 10 à 15 ans, si vous utilisiez trop Internet, votre fournisseur de services Internet (FSI) aurait pu considérer que vous n'utilisiez pas ce service "illimité" de manière responsable. Ainsi, ils auraient complètement coupé votre service, plutôt que de simplement le ralentir comme ils le font maintenant. Cette approche leur a permis de fournir des services Internet quasi illimités à la plupart des utilisateurs car ils pouvaient identifier qui utilisait les ressources de manière responsable.

Web2 est construit sur un modèle de service avancé, qui dépend fortement de la capacité à identifier les utilisateurs. Il y a vingt ans, les mécanismes d'identification étaient moins complexes, mais maintenant c'est très différent. Si vous souhaitez ouvrir un compte, il y a généralement au moins trois moyens différents de confirmer que vous êtes une vraie personne et qu'ils ne vous ont pas déjà rencontré. Par exemple, si vous essayez de vous inscrire à un compte Apple sans acheter un iPhone, c'est comme passer par un parcours d'obstacles. Ces entreprises sont essentiellement réticentes à vous donner un compte. Bien sûr, elles font de la publicité en disant que vous pouvez obtenir un compte gratuitement, mais je ne sais pas ce que l'IA fait en coulisses. J'ai dû essayer 10 fois avant de réussir en fin de compte, et à la fin, j'ai quand même dû acheter un iPhone.

Je crois que si nous pouvions mieux identifier les individus, de nombreux processus comme l'"Oracleization" (vérification de l'information) deviendraient beaucoup plus faciles.

Un exemple typique d’utilisation de la résistance de Sybil comme « preuve d’humanité » pour la vérification de l’information dans la société est le système de jury. Lorsque nous avons besoin d’un juge impartial (c’est-à-dire d’un oracle) pour déterminer la culpabilité de quelqu’un, le système sélectionne au hasard un nombre impair de personnes ordinaires de la société pour entendre les preuves et prendre une décision. De même, dans d’autres domaines de la vie sociale, tels que la représentation et la collecte d’opinions, la représentation est une partie importante de la société, et nous gérons la représentation en utilisant les méthodes de résistance de Sybil. Bien sûr, ce type de gestion n’est pas toujours parfait en raison des failles des infrastructures civiles actuelles, surtout lorsque la représentation est confondue avec l’identité. Souvent, lorsque vous voulez voter, vous devez prouver votre véritable identité, par exemple en montrant un permis de conduire ou un passeport. Mais en réalité, le vote représente votre droit de vote, et non un lien direct avec votre identité personnelle.

Comment pouvons-nous prévenir les attaques Sybil? Quelles solutions sont actuellement disponibles?

Alors, comment pouvons-nous aborder cela?

À l'époque de la Web 2, et même avant cela, nous avions différentes méthodes pour vérifier l'identité. Dans les systèmes actuels de Web 2, ces méthodes sont souvent combinées. Par exemple, si vous souhaitez créer un nouveau compte Google, vous devrez peut-être passer un CAPTCHA et vérifier à la fois votre adresse e-mail et votre numéro de téléphone. Parfois, la vérification par SMS peut remplacer un échange avec une personne réelle. Si vous avez déjà eu votre compte Amazon verrouillé, vous saurez de quoi je parle - cela ressemble à naviguer dans un labyrinthe compliqué jusqu'à ce que vous trouviez enfin le bon bouton pour parler à un véritable représentant du service clientèle. Pour une prévention plus avancée contre les attaques Sybil, nous pouvons nous appuyer sur des identifiants ou des informations de carte de crédit.

Cependant, lorsque nous passons au monde Web 3, la solution parfaite reste insaisissable. Il existe quelques solutions candidates, mais elles diffèrent grandement dans trois domaines clés : la décentralisation, la protection de la vie privée et la résilience (la capacité à résister aux attaques).

La résilience devient un enjeu de plus en plus important, et la plupart des systèmes sont confrontés à des défis dans ces domaines.

Un exemple est ce que j'appelle le "système de confession", où vous révélez vos informations privées à une autorité centrale. Cette autorité détient alors des informations vous concernant que vous ne souhaitez peut-être pas que d'autres voient. Par exemple, vous pourriez numériser votre passeport et le soumettre à une institution, leur donnant ainsi accès à toutes vos données personnelles. Cela les place dans une position de pouvoir car ils contrôlent des informations sensibles. Cette approche n'est pas adaptée à Web 3.

Vous pourriez également rencontrer des systèmes qui ressemblent à Web 3 mais qui dépendent d'institutions de gestion de clés centralisées. Ces institutions ont le pouvoir de décider qui est considéré comme un utilisateur légitime en contrôlant les clés. Parfois, ils détiennent même les clés pour les utilisateurs. Dans les deux cas, ils contrôlent qui est considéré comme un participant valide.

Ce contrôle centralisé de l'identité et de la vie privée contredit les principes fondamentaux de Web 3, qui mettent l'accent sur la décentralisation et l'autonomie de l'utilisateur.

Mettre quelque chose sur la chaîne ne le rend pas Web 3. Vous pouvez transférer des pratiques Web 2 ou des modèles d'autorité centralisée à la blockchain, mais cela ne change pas la nature du système. Cela le rend simplement plus résilient mais ne le rend pas décentralisé. Une longue adresse hexadécimale ne garantit pas automatiquement la confidentialité. Sans mesures de confidentialité spécifiques, cette chaîne de caractères pourrait toujours être liée à des identités réelles.

Si un système repose sur un « mécanisme de confession », ce n'est pas une solution préservant la vie privée. Nous avons vu d'innombrables violations de données qui prouvent que le stockage de données derrière des pare-feu d'entreprise ou du matériel de confiance ne garantit pas la sécurité. Une solution Web 3 appropriée ne devrait pas se concentrer sur les identités locales ou les identités spécifiques à une communauté, mais sur les identités globales et décentralisées. Ce sont des concepts entièrement différents.

Certains systèmes tentent de résoudre ce problème, mais ils ont souvent besoin d'un matériel spécifique et d'une gestion centralisée des clés, ce qui ne répond pas totalement aux normes de la Web 3. Par exemple, le projet Worldcoin essaie de résoudre ce problème avec un matériel de confiance, mais il repose sur un système de gestion centralisée des clés et des sources de données, ce qui n'est pas compatible avec l'éthique décentralisée de la Web 3.

Gitcoin Passport est un autre exemple. Il est largement utilisé dans la communauté Ethereum en tant que plateforme de solution d'identité complète. Cependant, il repose sur un système de gestion de clés fédéré et les sources de données proviennent souvent d'entités centralisées comme Coinbase.

Idena est une solution Web 3 intéressante qui n'utilise pas de gestion de clés centralisée ou d'autorités. Cependant, il s'agit d'un mécanisme unique et avec l'avènement de l'IA, il est incertain que cette approche aura la résilience nécessaire pour l'avenir. Jusqu'à présent, cela s'est bien passé, mais il n'a qu'environ un millier d'utilisateurs.

En résumé, aucune solution actuelle ne résout entièrement le problème des attaques Sybil.

Le point de vue de Gavin sur la résolution des attaques Sybil

En ce qui concerne l'identité individuelle, il existe deux approches pour y réfléchir : à distance et locale. Les machines ne comprennent pas intrinsèquement l'« identité individuelle », et nous ne sommes pas susceptibles de voir une sorte de technologie de cryptage résoudre soudainement ce problème. Certains pourraient arguer que des outils biométriques tels que les empreintes digitales pourraient rendre chaque être humain unique, et que les machines pourraient mesurer cela, mais il est difficile pour les systèmes purement numériques de prouver cela. La chose la plus proche pour y parvenir pourrait être Worldcoin, mais même dans ce cas, ce n'est qu'une machine qui peut vérifier les gens d'une manière difficile à tromper.

Nous devons donc reconnaître que l'identité individuelle concerne davantage l'authentification. Il s'agit de savoir comment les éléments au sein d'un système numérique vérifient si d'autres éléments sont de véritables individus. La question qui se pose alors est de savoir sur quoi repose cette authentification. Est-ce le contact physique ou une autre forme de preuve ? Nous pouvons faire confiance à un compte lié à une personne réelle parce que nous les avons rencontrées et supposons qu'elles n'ont pas interagi avec d'autres personnes. Ou peut-être faisons-nous confiance à l'identité de quelqu'un en fonction de certaines informations que nous voyons à l'écran, étayées par d'autres preuves.

Lorsque nous parlons d'authentification à distance (authentification sans preuve physique directe), l'IA (intelligence artificielle) pourrait créer des complications. D'un autre côté, si nous nous fions aux preuves physiques, la mise en œuvre pratique devient difficile. Nous sommes donc pris entre ces limites. Mais je crois qu'avec créativité et innovation, nous pouvons trouver des solutions viables.

Que devons-nous faire ?

Quelle est la solution? Quel est le plan?

Pour rendre Polkadot plus pratique dans le monde réel (au-delà de la seule DeFi, des NFT et des espaces virtuels de la blockchain), la clé est de trouver un moyen simple d'identifier les individus. Cela ne signifie pas savoir qui est quelqu'un, comme "Je sais que c'est Gavin Wood," mais plutôt reconnaître "c'est un individu unique." Je ne crois pas qu'il y ait une solution unique, nous avons donc besoin d'un cadre modulaire et évolutif.

Tout d'abord, nous pouvons intégrer des solutions existantes (comme Idena). Deuxièmement, le système ne doit pas être limité par les idées d'une seule personne ou simplement basé sur la vision d'un individu de ce qui pourrait fonctionner. Il doit être ouvert, permettant à d'autres de contribuer à la solution. Ensuite, nous avons besoin d'une pseudonymité contextuelle solide. Au début, j'ai écrit "anonymat", et à certains égards, je veux dire anonymat, en particulier l'anonymat par rapport à votre identité dans le monde réel. Mais en même temps, nous voulons la pseudonymité, de sorte que dans un contexte spécifique, vous puissiez prouver que vous êtes une personne unique. De plus, lorsque vous utilisez à nouveau le système dans ce même contexte, vous devriez pouvoir prouver que vous êtes la même personne qu'auparavant.

Enfin, nous avons besoin d'un SDK et d'une API robustes afin que cette fonctionnalité soit aussi facile à utiliser que toute autre fonction de contrats intelligents Substrate ou Polkadot, ou dans l'écosystème JAM à venir. Il doit être simple à implémenter. Pour être plus spécifique : si vous avez déjà écrit du code Frame, vous êtes peut-être tombé sur une ligne comme let account = ensure_signed (origin). Cela récupère la source de la transaction et vérifie si elle provient d'un compte, me disant de quel compte il s'agit. Mais un compte n'est pas la même chose qu'une personne. Une personne peut utiliser plusieurs comptes, tout comme un script. Les comptes ne fournissent pas d'informations sur l'identité individuelle. Si nous voulons nous assurer qu'une transaction provient d'une vraie personne - et non pas simplement d'un million de comptes - nous devons remplacer ce code par quelque chose comme let alias = ensure_person (origin, &b"Mon contexte").

Il y a deux avantages clés à cela. Tout d'abord, au lieu de simplement demander si un compte signe la transaction, nous demandons si une personne la signe. Cela ouvre de nombreuses nouvelles possibilités.

Deuxièmement, différentes opérations ont lieu dans différents contextes, et nous pouvons maintenir à la fois l'anonymat et la protection des pseudonymes dans ces contextes. Lorsque le contexte change, le pseudonyme change également, et les pseudonymes dans différents contextes ne peuvent pas être liés ou retracés à la personne qui se cache derrière eux. Ces pseudonymes sont entièrement anonymes, ce qui en fait un outil puissant dans le développement de la blockchain, en particulier lors du développement de systèmes utiles dans le monde réel.

Quelles contraintes pourrions-nous imposer aux mécanismes qui identifient les individus ? Tout d'abord, ces mécanismes doivent être largement accessibles. S'ils ne sont disponibles que pour un groupe restreint de personnes, ils ne seront pas très utiles. Ils ne devraient pas nécessiter la détention d'actifs ou être accompagnés de frais élevés - du moins, rien d'excessif.

Il y aura inévitablement des compromis entre différents mécanismes. Je ne pense pas qu'il y ait une solution unique pour tous. Mais certains compromis sont acceptables, tandis que d'autres ne le sont pas. Nous ne devrions pas transiger sur la résilience, la décentralisation ou la souveraineté de l'utilisateur. Certains mécanismes peuvent demander moins d'efforts mais plus de confiance, tandis que d'autres peuvent exiger plus d'efforts mais offrir une plus grande assurance. Nous devrions avoir des attentes réalistes selon lesquelles les individus vérifiés par le système (qu'il s'agisse de comptes liés à des individus ou de pseudonymes) sont effectivement uniques, de vraies personnes.

Lorsque différents mécanismes dans les systèmes Web3 décentralisés évaluent l'identité individuelle en utilisant des bases résilientes et non autoritaires, il peut y avoir un certain chevauchement. Cela signifie que nous ne devrions pas attendre la perfection, mais que la marge d'erreur devrait être beaucoup plus petite qu'un ordre de grandeur. De plus, le système doit être hautement résistant à l'abus d'identité afin d'empêcher un petit groupe ou une organisation de prendre le contrôle d'un grand nombre d'identités.

Il est crucial que le système dispose de mécanismes de protection pour éviter de tels abus. Certains mécanismes pourraient offrir des scores d'identité individuelle relativement peu fiables, ce qui pourrait être un objectif plus élevé. Certains pourraient réussir à atteindre cet objectif, d'autres pourraient échouer, et d'autres pourraient adopter une approche binaire : soit nous faisons confiance au compte et nous considérons qu'il appartient à un individu unique, soit nous n'en faisons pas confiance. D'autres mécanismes pourraient suggérer que nous avons une confiance de 50%, ce qui signifie que l'individu pourrait avoir deux comptes et que nous avons une confiance de 50% dans les deux.

Tout cela doit être sans permission et relativement facile à mettre en œuvre. Je ne devrais pas avoir à souligner cela, mais le système ne devrait pas dépendre de mécanismes de confession communs ou d'institutions de gestion des clés.

Quel est l'avantage de cette approche?

Pourquoi devrions-nous faire cela? Quels sont les avantages?

Nous avons parlé de la façon dont la société utilise et compte sur les identités individuelles, mais comment cela peut-il être appliqué sur la chaîne ? Imaginez un système Polkadot où les frais de transaction n'ont pas à être payés, rendant ainsi une utilisation raisonnable gratuite. Imaginez quelque chose comme une « chaîne Plaza » (Plaza), qui est essentiellement une Asset Hub améliorée avec des capacités de contrat intelligent et un système de mise en jeu.

Dans ce type de chaîne Plaza, vous pourriez envisager un scénario où les frais de gaz ne sont pas nécessaires. Tant que vous utilisez le système dans des limites raisonnables, le gaz est gratuit. Bien sûr, si vous exécutez des scripts ou effectuez un grand nombre de transactions, vous devriez payer des frais, car cela dépasse ce qu'un utilisateur typique pourrait faire. Imaginez que ces systèmes s'ouvrent gratuitement au public. Nous pourrions efficacement lancer des communautés en utilisant des méthodes ciblées comme les airdrops. En même temps, nous pourrions imaginer des modèles de gouvernance encore plus avancés pour Polkadot.

Personnellement, je ne suis pas entièrement convaincu par l'idée de "une personne, une voix." Dans certains cas, il est nécessaire de garantir la légitimité, mais cela ne donne pas toujours les meilleurs résultats. Cependant, nous pourrions envisager des modèles de vote alternatifs, comme le vote quadratique ou le vote régional. Dans certains éléments représentatifs, "une personne, une voix" pourrait être assez instructif.

Nous pouvons également imaginer un système Oracle similaire à un jury, où les parachaines et les contrats intelligents peuvent utiliser des systèmes Oracle locaux et subordonnés, peut-être pour des prédictions de prix ou la résolution de litiges d'utilisateurs. Ils pourraient également avoir un système de «grand jury» ou de «Cour suprême», où les membres sont choisis au hasard parmi un pool d'individus connus pour prendre des décisions, aider à résoudre les conflits et recevoir de petites récompenses. Étant donné que ces jurés sont choisis au hasard dans un grand groupe neutre, cette méthode offrirait un moyen résilient et fiable de résoudre les conflits.

Vous pourriez également envisager un système de contrôle du bruit, en particulier dans les intégrations de médias sociaux décentralisés, pour gérer le spam et les comportements indésirables. Dans DeFi, nous pourrions voir des systèmes basés sur la réputation similaires aux scores de crédit, mais plus axés sur le fait de savoir si quelqu'un a échoué à rembourser à temps. De cette façon, le système pourrait fonctionner selon un modèle freemium, offrant différents niveaux de service.

Bien, cela conclut la première partie de ce discours. J'espère que cela a été utile.

Disclaimer :

  1. Cet article est une réimpression de [PolkaWorld]. Copyright belongs to the original author [PolkaWorld]. If there are any concerns about the reprint, please contact theÉquipe Gate Learnet l'équipe traitera le problème dès que possible.
  2. Avis de non-responsabilité : Les opinions et points de vue exprimés dans cet article sont uniquement ceux de l’auteur et ne constituent pas un conseil en investissement.
  3. D'autres versions linguistiques de l'article ont été traduites par l'équipe Gate Learn. Sauf siGate.io est mentionné, la copie, la distribution ou le plagiat du contenu traduit est interdit.

Gavin Wood: Comment prévenir les attaques Sybil pour un largage aérien efficace?

IntermédiaireSep 18, 2024
Gavin s'est récemment concentré sur la question des attaques Sybil (résistance civile). Cet article revisite le discours liminaire du Dr Gavin Wood lors de Polkadot Decoded 2024, explorant certaines de ses idées sur la prévention des attaques Sybil.
Gavin Wood: Comment prévenir les attaques Sybil pour un largage aérien efficace?

Récemment, Gavin s’est concentré sur la question des attaques Sybil (résistance civile). PolkaWorld a passé en revue le discours liminaire du Dr Gavin Wood à Polkadot Decoded 2024, explorant certaines de ses réflexions sur la façon de prévenir les attaques Sybil. Si cela vous intéresse, continuez à lire !

Qu'est-ce qu'une attaque Sybil?

Vous savez peut-être déjà que je travaille sur plusieurs projets. J'écris un « livre gris » et je me concentre sur le projet JAM, faisant en même temps un peu de codage. Au cours des deux dernières années, j'ai beaucoup réfléchi à un problème crucial qui est très important dans cet espace - comment prévenir les attaques Sybil (résistance civile). Ce problème est partout. Les systèmes blockchain sont construits sur la théorie des jeux, et lors de l'analyse de jeux, nous devons souvent limiter le nombre de participants ou gérer les comportements imprévisibles qu'ils peuvent manifester.

Lors de la conception de systèmes numériques, nous voulons déterminer si un point final spécifique — une interface numérique — est exploité par un humain. Pour clarifier, je ne discute pas de l'identité ici. L'identité est évidemment importante, mais nous ne nous concentrons pas sur la détermination de l'identité réelle de quelqu'un ici. Au lieu de cela, le but est de distinguer entre les appareils et de déterminer s'ils sont exploités activement par un humain à un moment donné. De plus, une autre question importante se pose : si un appareil est effectivement exploité par un humain, pouvons-nous leur fournir un pseudonyme qui nous permet de les identifier dans un contexte particulier, et s'ils reviennent pour interagir avec nous, pouvons-nous les reconnaître à nouveau?

Comme nos interactions sont passées principalement de la communication avec d'autres personnes (dans les années 80, lorsque je suis né) à l'interaction avec des systèmes, des systèmes numériques, en particulier des systèmes décentralisés Web3, sont devenus de plus en plus pertinents. Dans les années 80, les gens interagissaient principalement directement avec d'autres; dans les années 90, nous avons commencé à interagir avec des services par téléphone, comme la banque par téléphone. Cela a été un changement majeur pour nous. Initialement, la banque par téléphone impliquait de grands centres d'appels exploités par des humains, mais au fil du temps, ces systèmes ont évolué vers les systèmes de réponse vocale automatisée d'aujourd'hui. Avec l'essor d'Internet, les interactions humaines sont devenues plus rares, et dans la plupart des services quotidiens, nous ne communiquons plus directement avec des humains. Bien sûr, avec la croissance du commerce électronique Web2, cette tendance est devenue encore plus apparente. Web3 consolide davantage cela - dans Web3, vous interagissez rarement avec des personnes. L'idée centrale de Web3 est que vous interagissez avec des machines, et parfois les machines interagissent entre elles.

Pourquoi étudier les attaques Sybil est-il important ?

Alors, en quoi cela importe-t-il? C'est un élément fondamental de toute société réelle et se situe au cœur de nombreux systèmes sociaux, y compris les affaires, la gouvernance, le vote et la construction d'un consensus. Tous ces éléments dépendent fortement de la prévention des attaques Sybil pour construire de véritables communautés. De nombreux mécanismes qui sont tenus pour acquis dans les entreprises sont basés sur la prévention des attaques Sybil. Qu'il s'agisse d'une utilisation équitable, du contrôle du bruit ou de la gestion de la communauté, ils reposent tous sur cette capacité défensive. De nombreuses choses nécessitent que nous confirmions qu'une entité est effectivement un être humain réel. Si quelqu'un se comporte de manière inappropriée, nous pouvons vouloir les supprimer temporairement de la communauté. C'est quelque chose que vous pouvez observer dans les services numériques, et bien sûr, cela existe également dans le monde réel.

En empêchant les attaques Sybil, nous pouvons introduire des mécanismes qui restreignent le comportement sans élever les barrières à l'entrée ou compromettre l'accessibilité du système. Par exemple, il existe deux façons fondamentales d'inciter au comportement : l'une passe par une approche de la "carotte et du bâton" (un système de récompenses et de sanctions). La méthode du bâton (sanction) vous oblige à verser une caution, et si vous vous mal comportez, cette caution est confisquée. Le staking est un exemple simple de cela. La méthode de la carotte (récompense) suppose que vous vous comporterez bien, et si vous ne répondez pas aux attentes, vous perdez certains de vos droits. C'est essentiellement ainsi que fonctionnent la plupart des sociétés civiles.

Cependant, sans mécanismes pour empêcher les attaques Sybil sur la blockchain, cette approche ne peut pas vraiment être appliquée. Dans la société civile, ces mécanismes fonctionnent parce que, si quelqu'un est emprisonné, il ne peut pas commettre la même infraction à nouveau, du moins pas pendant sa détention. La liberté est un droit inhérent, et le gouvernement peut, en principe, le retirer. Je ne suggère pas que nous emprisonnions quiconque sur la chaîne, mais actuellement, nous ne pouvons pas imposer des contraintes similaires sur la blockchain. Cela rend difficile la limitation des comportements nuisibles lors de l'offre de services gratuits, et nous finissons par ne compter que sur l'encouragement des bons comportements. Le commerce et les activités promotionnelles reposent fortement sur la capacité de confirmer que les utilisateurs sont de vraies personnes.

Voici une capture d'écran d'un site Web que j'utilise parfois. Il propose un whisky très apprécié de nombreuses personnes et difficile à trouver dans son pays d'origine. Mais en Europe, il est relativement bon marché et il semble qu'ils maintiennent les prix bas en limitant le nombre de bouteilles que chaque personne peut acheter. Cependant, ce genre d'opération est presque impossible à appliquer dans un véritable système Web3.

Il y a également des défis importants dans la construction de la communauté, les airdrops, et l'identification et la distribution aux membres de la communauté. Les airdrops sont généralement inefficaces en termes de dépenses en capital car ils visent à couvrir autant de personnes que possible. Pour distribuer équitablement les airdrops, vous devez identifier les individus et donner à chacun la même quantité. Mais en pratique, de nombreux problèmes surviennent, tels que des soldes de portefeuille variables. Finalement, vous pourriez vous retrouver dans une situation où la courbe de distribution devient extrêmement déséquilibrée, avec d'énormes disparités. En conséquence, la plupart des gens ne reçoivent presque aucune incitation.

En ce qui concerne la « utilisation équitable », bien que l'impact actuel soit faible, si vous utilisez excessivement les ressources du réseau, le système ralentit généralement votre connexion, bien que vous puissiez toujours utiliser le réseau.

En regardant en arrière il y a 10 à 15 ans, si vous utilisiez trop Internet, votre fournisseur de services Internet (FSI) aurait pu considérer que vous n'utilisiez pas ce service "illimité" de manière responsable. Ainsi, ils auraient complètement coupé votre service, plutôt que de simplement le ralentir comme ils le font maintenant. Cette approche leur a permis de fournir des services Internet quasi illimités à la plupart des utilisateurs car ils pouvaient identifier qui utilisait les ressources de manière responsable.

Web2 est construit sur un modèle de service avancé, qui dépend fortement de la capacité à identifier les utilisateurs. Il y a vingt ans, les mécanismes d'identification étaient moins complexes, mais maintenant c'est très différent. Si vous souhaitez ouvrir un compte, il y a généralement au moins trois moyens différents de confirmer que vous êtes une vraie personne et qu'ils ne vous ont pas déjà rencontré. Par exemple, si vous essayez de vous inscrire à un compte Apple sans acheter un iPhone, c'est comme passer par un parcours d'obstacles. Ces entreprises sont essentiellement réticentes à vous donner un compte. Bien sûr, elles font de la publicité en disant que vous pouvez obtenir un compte gratuitement, mais je ne sais pas ce que l'IA fait en coulisses. J'ai dû essayer 10 fois avant de réussir en fin de compte, et à la fin, j'ai quand même dû acheter un iPhone.

Je crois que si nous pouvions mieux identifier les individus, de nombreux processus comme l'"Oracleization" (vérification de l'information) deviendraient beaucoup plus faciles.

Un exemple typique d’utilisation de la résistance de Sybil comme « preuve d’humanité » pour la vérification de l’information dans la société est le système de jury. Lorsque nous avons besoin d’un juge impartial (c’est-à-dire d’un oracle) pour déterminer la culpabilité de quelqu’un, le système sélectionne au hasard un nombre impair de personnes ordinaires de la société pour entendre les preuves et prendre une décision. De même, dans d’autres domaines de la vie sociale, tels que la représentation et la collecte d’opinions, la représentation est une partie importante de la société, et nous gérons la représentation en utilisant les méthodes de résistance de Sybil. Bien sûr, ce type de gestion n’est pas toujours parfait en raison des failles des infrastructures civiles actuelles, surtout lorsque la représentation est confondue avec l’identité. Souvent, lorsque vous voulez voter, vous devez prouver votre véritable identité, par exemple en montrant un permis de conduire ou un passeport. Mais en réalité, le vote représente votre droit de vote, et non un lien direct avec votre identité personnelle.

Comment pouvons-nous prévenir les attaques Sybil? Quelles solutions sont actuellement disponibles?

Alors, comment pouvons-nous aborder cela?

À l'époque de la Web 2, et même avant cela, nous avions différentes méthodes pour vérifier l'identité. Dans les systèmes actuels de Web 2, ces méthodes sont souvent combinées. Par exemple, si vous souhaitez créer un nouveau compte Google, vous devrez peut-être passer un CAPTCHA et vérifier à la fois votre adresse e-mail et votre numéro de téléphone. Parfois, la vérification par SMS peut remplacer un échange avec une personne réelle. Si vous avez déjà eu votre compte Amazon verrouillé, vous saurez de quoi je parle - cela ressemble à naviguer dans un labyrinthe compliqué jusqu'à ce que vous trouviez enfin le bon bouton pour parler à un véritable représentant du service clientèle. Pour une prévention plus avancée contre les attaques Sybil, nous pouvons nous appuyer sur des identifiants ou des informations de carte de crédit.

Cependant, lorsque nous passons au monde Web 3, la solution parfaite reste insaisissable. Il existe quelques solutions candidates, mais elles diffèrent grandement dans trois domaines clés : la décentralisation, la protection de la vie privée et la résilience (la capacité à résister aux attaques).

La résilience devient un enjeu de plus en plus important, et la plupart des systèmes sont confrontés à des défis dans ces domaines.

Un exemple est ce que j'appelle le "système de confession", où vous révélez vos informations privées à une autorité centrale. Cette autorité détient alors des informations vous concernant que vous ne souhaitez peut-être pas que d'autres voient. Par exemple, vous pourriez numériser votre passeport et le soumettre à une institution, leur donnant ainsi accès à toutes vos données personnelles. Cela les place dans une position de pouvoir car ils contrôlent des informations sensibles. Cette approche n'est pas adaptée à Web 3.

Vous pourriez également rencontrer des systèmes qui ressemblent à Web 3 mais qui dépendent d'institutions de gestion de clés centralisées. Ces institutions ont le pouvoir de décider qui est considéré comme un utilisateur légitime en contrôlant les clés. Parfois, ils détiennent même les clés pour les utilisateurs. Dans les deux cas, ils contrôlent qui est considéré comme un participant valide.

Ce contrôle centralisé de l'identité et de la vie privée contredit les principes fondamentaux de Web 3, qui mettent l'accent sur la décentralisation et l'autonomie de l'utilisateur.

Mettre quelque chose sur la chaîne ne le rend pas Web 3. Vous pouvez transférer des pratiques Web 2 ou des modèles d'autorité centralisée à la blockchain, mais cela ne change pas la nature du système. Cela le rend simplement plus résilient mais ne le rend pas décentralisé. Une longue adresse hexadécimale ne garantit pas automatiquement la confidentialité. Sans mesures de confidentialité spécifiques, cette chaîne de caractères pourrait toujours être liée à des identités réelles.

Si un système repose sur un « mécanisme de confession », ce n'est pas une solution préservant la vie privée. Nous avons vu d'innombrables violations de données qui prouvent que le stockage de données derrière des pare-feu d'entreprise ou du matériel de confiance ne garantit pas la sécurité. Une solution Web 3 appropriée ne devrait pas se concentrer sur les identités locales ou les identités spécifiques à une communauté, mais sur les identités globales et décentralisées. Ce sont des concepts entièrement différents.

Certains systèmes tentent de résoudre ce problème, mais ils ont souvent besoin d'un matériel spécifique et d'une gestion centralisée des clés, ce qui ne répond pas totalement aux normes de la Web 3. Par exemple, le projet Worldcoin essaie de résoudre ce problème avec un matériel de confiance, mais il repose sur un système de gestion centralisée des clés et des sources de données, ce qui n'est pas compatible avec l'éthique décentralisée de la Web 3.

Gitcoin Passport est un autre exemple. Il est largement utilisé dans la communauté Ethereum en tant que plateforme de solution d'identité complète. Cependant, il repose sur un système de gestion de clés fédéré et les sources de données proviennent souvent d'entités centralisées comme Coinbase.

Idena est une solution Web 3 intéressante qui n'utilise pas de gestion de clés centralisée ou d'autorités. Cependant, il s'agit d'un mécanisme unique et avec l'avènement de l'IA, il est incertain que cette approche aura la résilience nécessaire pour l'avenir. Jusqu'à présent, cela s'est bien passé, mais il n'a qu'environ un millier d'utilisateurs.

En résumé, aucune solution actuelle ne résout entièrement le problème des attaques Sybil.

Le point de vue de Gavin sur la résolution des attaques Sybil

En ce qui concerne l'identité individuelle, il existe deux approches pour y réfléchir : à distance et locale. Les machines ne comprennent pas intrinsèquement l'« identité individuelle », et nous ne sommes pas susceptibles de voir une sorte de technologie de cryptage résoudre soudainement ce problème. Certains pourraient arguer que des outils biométriques tels que les empreintes digitales pourraient rendre chaque être humain unique, et que les machines pourraient mesurer cela, mais il est difficile pour les systèmes purement numériques de prouver cela. La chose la plus proche pour y parvenir pourrait être Worldcoin, mais même dans ce cas, ce n'est qu'une machine qui peut vérifier les gens d'une manière difficile à tromper.

Nous devons donc reconnaître que l'identité individuelle concerne davantage l'authentification. Il s'agit de savoir comment les éléments au sein d'un système numérique vérifient si d'autres éléments sont de véritables individus. La question qui se pose alors est de savoir sur quoi repose cette authentification. Est-ce le contact physique ou une autre forme de preuve ? Nous pouvons faire confiance à un compte lié à une personne réelle parce que nous les avons rencontrées et supposons qu'elles n'ont pas interagi avec d'autres personnes. Ou peut-être faisons-nous confiance à l'identité de quelqu'un en fonction de certaines informations que nous voyons à l'écran, étayées par d'autres preuves.

Lorsque nous parlons d'authentification à distance (authentification sans preuve physique directe), l'IA (intelligence artificielle) pourrait créer des complications. D'un autre côté, si nous nous fions aux preuves physiques, la mise en œuvre pratique devient difficile. Nous sommes donc pris entre ces limites. Mais je crois qu'avec créativité et innovation, nous pouvons trouver des solutions viables.

Que devons-nous faire ?

Quelle est la solution? Quel est le plan?

Pour rendre Polkadot plus pratique dans le monde réel (au-delà de la seule DeFi, des NFT et des espaces virtuels de la blockchain), la clé est de trouver un moyen simple d'identifier les individus. Cela ne signifie pas savoir qui est quelqu'un, comme "Je sais que c'est Gavin Wood," mais plutôt reconnaître "c'est un individu unique." Je ne crois pas qu'il y ait une solution unique, nous avons donc besoin d'un cadre modulaire et évolutif.

Tout d'abord, nous pouvons intégrer des solutions existantes (comme Idena). Deuxièmement, le système ne doit pas être limité par les idées d'une seule personne ou simplement basé sur la vision d'un individu de ce qui pourrait fonctionner. Il doit être ouvert, permettant à d'autres de contribuer à la solution. Ensuite, nous avons besoin d'une pseudonymité contextuelle solide. Au début, j'ai écrit "anonymat", et à certains égards, je veux dire anonymat, en particulier l'anonymat par rapport à votre identité dans le monde réel. Mais en même temps, nous voulons la pseudonymité, de sorte que dans un contexte spécifique, vous puissiez prouver que vous êtes une personne unique. De plus, lorsque vous utilisez à nouveau le système dans ce même contexte, vous devriez pouvoir prouver que vous êtes la même personne qu'auparavant.

Enfin, nous avons besoin d'un SDK et d'une API robustes afin que cette fonctionnalité soit aussi facile à utiliser que toute autre fonction de contrats intelligents Substrate ou Polkadot, ou dans l'écosystème JAM à venir. Il doit être simple à implémenter. Pour être plus spécifique : si vous avez déjà écrit du code Frame, vous êtes peut-être tombé sur une ligne comme let account = ensure_signed (origin). Cela récupère la source de la transaction et vérifie si elle provient d'un compte, me disant de quel compte il s'agit. Mais un compte n'est pas la même chose qu'une personne. Une personne peut utiliser plusieurs comptes, tout comme un script. Les comptes ne fournissent pas d'informations sur l'identité individuelle. Si nous voulons nous assurer qu'une transaction provient d'une vraie personne - et non pas simplement d'un million de comptes - nous devons remplacer ce code par quelque chose comme let alias = ensure_person (origin, &b"Mon contexte").

Il y a deux avantages clés à cela. Tout d'abord, au lieu de simplement demander si un compte signe la transaction, nous demandons si une personne la signe. Cela ouvre de nombreuses nouvelles possibilités.

Deuxièmement, différentes opérations ont lieu dans différents contextes, et nous pouvons maintenir à la fois l'anonymat et la protection des pseudonymes dans ces contextes. Lorsque le contexte change, le pseudonyme change également, et les pseudonymes dans différents contextes ne peuvent pas être liés ou retracés à la personne qui se cache derrière eux. Ces pseudonymes sont entièrement anonymes, ce qui en fait un outil puissant dans le développement de la blockchain, en particulier lors du développement de systèmes utiles dans le monde réel.

Quelles contraintes pourrions-nous imposer aux mécanismes qui identifient les individus ? Tout d'abord, ces mécanismes doivent être largement accessibles. S'ils ne sont disponibles que pour un groupe restreint de personnes, ils ne seront pas très utiles. Ils ne devraient pas nécessiter la détention d'actifs ou être accompagnés de frais élevés - du moins, rien d'excessif.

Il y aura inévitablement des compromis entre différents mécanismes. Je ne pense pas qu'il y ait une solution unique pour tous. Mais certains compromis sont acceptables, tandis que d'autres ne le sont pas. Nous ne devrions pas transiger sur la résilience, la décentralisation ou la souveraineté de l'utilisateur. Certains mécanismes peuvent demander moins d'efforts mais plus de confiance, tandis que d'autres peuvent exiger plus d'efforts mais offrir une plus grande assurance. Nous devrions avoir des attentes réalistes selon lesquelles les individus vérifiés par le système (qu'il s'agisse de comptes liés à des individus ou de pseudonymes) sont effectivement uniques, de vraies personnes.

Lorsque différents mécanismes dans les systèmes Web3 décentralisés évaluent l'identité individuelle en utilisant des bases résilientes et non autoritaires, il peut y avoir un certain chevauchement. Cela signifie que nous ne devrions pas attendre la perfection, mais que la marge d'erreur devrait être beaucoup plus petite qu'un ordre de grandeur. De plus, le système doit être hautement résistant à l'abus d'identité afin d'empêcher un petit groupe ou une organisation de prendre le contrôle d'un grand nombre d'identités.

Il est crucial que le système dispose de mécanismes de protection pour éviter de tels abus. Certains mécanismes pourraient offrir des scores d'identité individuelle relativement peu fiables, ce qui pourrait être un objectif plus élevé. Certains pourraient réussir à atteindre cet objectif, d'autres pourraient échouer, et d'autres pourraient adopter une approche binaire : soit nous faisons confiance au compte et nous considérons qu'il appartient à un individu unique, soit nous n'en faisons pas confiance. D'autres mécanismes pourraient suggérer que nous avons une confiance de 50%, ce qui signifie que l'individu pourrait avoir deux comptes et que nous avons une confiance de 50% dans les deux.

Tout cela doit être sans permission et relativement facile à mettre en œuvre. Je ne devrais pas avoir à souligner cela, mais le système ne devrait pas dépendre de mécanismes de confession communs ou d'institutions de gestion des clés.

Quel est l'avantage de cette approche?

Pourquoi devrions-nous faire cela? Quels sont les avantages?

Nous avons parlé de la façon dont la société utilise et compte sur les identités individuelles, mais comment cela peut-il être appliqué sur la chaîne ? Imaginez un système Polkadot où les frais de transaction n'ont pas à être payés, rendant ainsi une utilisation raisonnable gratuite. Imaginez quelque chose comme une « chaîne Plaza » (Plaza), qui est essentiellement une Asset Hub améliorée avec des capacités de contrat intelligent et un système de mise en jeu.

Dans ce type de chaîne Plaza, vous pourriez envisager un scénario où les frais de gaz ne sont pas nécessaires. Tant que vous utilisez le système dans des limites raisonnables, le gaz est gratuit. Bien sûr, si vous exécutez des scripts ou effectuez un grand nombre de transactions, vous devriez payer des frais, car cela dépasse ce qu'un utilisateur typique pourrait faire. Imaginez que ces systèmes s'ouvrent gratuitement au public. Nous pourrions efficacement lancer des communautés en utilisant des méthodes ciblées comme les airdrops. En même temps, nous pourrions imaginer des modèles de gouvernance encore plus avancés pour Polkadot.

Personnellement, je ne suis pas entièrement convaincu par l'idée de "une personne, une voix." Dans certains cas, il est nécessaire de garantir la légitimité, mais cela ne donne pas toujours les meilleurs résultats. Cependant, nous pourrions envisager des modèles de vote alternatifs, comme le vote quadratique ou le vote régional. Dans certains éléments représentatifs, "une personne, une voix" pourrait être assez instructif.

Nous pouvons également imaginer un système Oracle similaire à un jury, où les parachaines et les contrats intelligents peuvent utiliser des systèmes Oracle locaux et subordonnés, peut-être pour des prédictions de prix ou la résolution de litiges d'utilisateurs. Ils pourraient également avoir un système de «grand jury» ou de «Cour suprême», où les membres sont choisis au hasard parmi un pool d'individus connus pour prendre des décisions, aider à résoudre les conflits et recevoir de petites récompenses. Étant donné que ces jurés sont choisis au hasard dans un grand groupe neutre, cette méthode offrirait un moyen résilient et fiable de résoudre les conflits.

Vous pourriez également envisager un système de contrôle du bruit, en particulier dans les intégrations de médias sociaux décentralisés, pour gérer le spam et les comportements indésirables. Dans DeFi, nous pourrions voir des systèmes basés sur la réputation similaires aux scores de crédit, mais plus axés sur le fait de savoir si quelqu'un a échoué à rembourser à temps. De cette façon, le système pourrait fonctionner selon un modèle freemium, offrant différents niveaux de service.

Bien, cela conclut la première partie de ce discours. J'espère que cela a été utile.

Disclaimer :

  1. Cet article est une réimpression de [PolkaWorld]. Copyright belongs to the original author [PolkaWorld]. If there are any concerns about the reprint, please contact theÉquipe Gate Learnet l'équipe traitera le problème dès que possible.
  2. Avis de non-responsabilité : Les opinions et points de vue exprimés dans cet article sont uniquement ceux de l’auteur et ne constituent pas un conseil en investissement.
  3. D'autres versions linguistiques de l'article ont été traduites par l'équipe Gate Learn. Sauf siGate.io est mentionné, la copie, la distribution ou le plagiat du contenu traduit est interdit.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!