Faiblesses concernant la toile de confiance

Suite du sujet Théorie des procédures de certification d'identité:

Je souhaitais répondre aux points évoqués par @jytou.

En réalité non, ce n’est pas “impératif”. Regardes n’importe quel système, ne serait-ce que l’euro : il y a toujours des tricheurs (faux monnayeurs), le tout est que cela reste acceptable. Par exemple si une monnaie libre comprend 2% de faux comptes, ça n’empêchera pas les autres 98% de bénéficier d’une monnaie qui n’était pas là avant, et qui de surcroît est une monnaie libre (donc tenant compte de leur avis économique).

Certains parleront de confiance. Je parlerais plus généralement d’acceptation (confiance dans une monnaie = acceptation du fait que les règles sont globalement respectées).[quote=“jytou, post:19, topic:888”]
d’autre part, dans l’idéal, il faudrait pouvoir aussi s’assurer que chaque « entité » possédant un compte est véritablement celle qui contrôle toutes les opérations effectuées par ce compte (ou éventuellement son représentant légal et personne d’autre),
[/quote]

A défaut de pouvoir contrôler, on peut proposer les outils permettant effectivement à l’entité de conserver le contrôle. C’est notamment pourquoi on demande des certifications renouvelées (afin que des pairs puisse débusquer un éventuel imposteur), mais également que tout utilisateur dispose de la révocabilité définitive de son identité.

Oui ce serait une approche dangereuse que de faire aveuglément confiance au réseau. Je ne suis pas parti de ce principe, mais plutôt de l’opposé : je considère que tout nœud est susceptible de faire des erreurs (volontaires ou non), et que donc chaque pair ne peut faire confiance qu’à lui-même.

Et il se trouve que parfois les nœuds coopèrent : c’est-à-dire qu’ils suivent le protocole sans broncher et sans faire d’erreur. Je conçois le logiciel pour qu’il suive cette voie, et donc si nœud trouve des copains c’est tant mieux, mais sinon tant pis il trace sa route. Dans le cas où la majorité des nœuds suit la même voie, on obtient alors un consensus qui “fait la monnaie”.

Le but du jeu étant bien sûr d’arriver à ce consensus :slight_smile:

1 Like

Oui, bien sûr (d’où mes précautions « limiter la probabilité » dans mon post initial :wink: ). Le problème ici est l’impact du tricheur. S’il arrive à se faire valider un deuxième compte, il y a de fortes chances qu’il y arrive pour plus de comptes aussi, surtout avec l’automatisation possible aujourd’hui (bots passant pour des humains… à quand des bots repéreurs de bots? ça existe déjà, même si on parle de bots ultra simples aujourd’hui, ils deviennent plus complexes de jour en jour). 1 personne avec 2 comptes, passe encore. Mais une personne avec 100 comptes (l’échelle du réseau aidant - 100 sur un million, ce n’est que 0,01%, on est loin des 2%), c’est plus problématique (même si au niveau inégalité monétaire ça reste ridicule par rapport à la situation actuelle, j’en conviens). En particulier lorsqu’on laisse les membres miner (la suite plus bas). Mais aussi parce que du coup ça démultiplie les possibilités d’attaques de type Sybil et fragilise considérablement le réseau tout entier. De mon point de vue, il faut prôner la tolérance 0 sur cet aspect et rendre le 3ème compte exponentiellement plus difficile à obtenir que le 2ème et ainsi de suite - théoriquement en tout cas.

Je ne pensais pas vraiment au vol (même si c’est bien sûr un aspect important). Je pensais plutôt au « farming » humain. 20 personnes enfermées dans la cave pour s’assurer un DU de riche. Quoi, je suis un psychopathe? J’ai peut-être regardé trop de SF. :stuck_out_tongue: Mais c’est clair que c’est un argument classique dès qu’on parle de « limiter la richesse accumulable par personne » (sans aller jusqu’à enfermer dans la cave, les moyens d’intimidation sont nombreux). La solution est peut-être hors du système monétaire lui-même… mais ce serait encore mieux si ce système mettait tout en œuvre pour prévenir ce genre de situation et en tout cas fournir les outils (aux abusés, à la justice) pour les débusquer.

Là aussi je n’ai probablement pas été assez clair. Je pensais plutôt aux attaques du genre 51% attack. Dans Bitcoin, le mécanisme censé protéger de ce genre d’attaque est la course à la puissance (ça a fonctionné jusqu’à maintenant - à voir comment se passe le prochain « halving »).
Dans Duniter, ce qui « empêche » ce genre d’attaque technique, c’est la confiance dans les possesseurs de nœuds (ainsi que la sécurité du système hébergeant leur nœud, une autre paire de manches). Or comme la puissance requise pour valider un bloc est faible (je n’ai pas osé écrire « ridicule », ah ben si, j’ai osé! :stuck_out_tongue: ), il est très facile pour un nœud qui voudrait faire tomber le réseau ou tricher de le faire. Certes à l’avenir il risque bien d’être banni de la « communauté française des adorateurs de chats » dont il vient de briser tous les rêves de sauver des chatons en détruisant leur monnaie ou en les spoliant, mais bon… vous voyez où je veux en venir (il est déjà en train de siroter son cocktail sur la plage d’un paradis fiscal/juridique, les dégâts sont faits et difficiles à réparer).

D’où ma proposition sur le topic « transactions » d’avoir plusieurs niveaux de confiance: un pour les non-membres voulant échanger de la monnaie » (je ne reviendrai pas sur ce point ici, désolé l’autre post est en anglais), un pour les « membres générant du DU », et un super sécurisé pour les « validateurs de blocs » (qui génèrent du DU aussi, c’est une hiérarchie de droits).

Je sais que j’ai peut-être tendance à voir le mal partout, mais il faut se rendre à l’évidence: certains humains ne sont pas des saints (pour faire dans l’euphémisme) et lorsqu’on atteint un certain nombre, il faut se préparer à tout.

Il faudrait surtout trouver un exemple, un scénario, ou une telle chose peut arriver. Aujourd’hui, on a des règles très strictes (la limite de steps est très structurante, il faut réussir à la prendre en compte dans nos raisonnements et c’est loin d’être simple). Il faudrait faire le travail de scénariser un exemple d’attaque, sur une WoT de N membre, avec un diamètre max de K pas. Et tenter de montrer jusqu’où et dans quelle condition peuvent être créés des sybil… En prenons en compte des cas ou M membres se rendent compte de la triche, à quelle vitesse… Ca demande du travail !

Pour l’instant, on bosse sur un sujet hyper complexe (c’est très difficile de se représenter humainement une WoT spatio-temporelle limitée en diamètre), sans prendre d’exemple ou de choses visuelles.

Pour info, j’ai lancé un projet python permettant de justement simuler des WoT spatio-temporelles et de travailler là dessus. J’ai juste mis en place les bases, et Sakia me prend tout le reste de mon temps libre donc je vous laisse librement mettre en place des scénarios à analyser :slight_smile: Je sais que @greyzlii a commencé à bosser dessus. Peut-être qu’il commence déja à avoir des idées de réalisation :slight_smile:

1 Like

La difficulté aujourd’hui c’est qu’on a vraiment peu de recul. Alors les robots ça fait peur oui, mais l’ennemi des robots c’est la complexité algorithmique et notamment ici : le diamètre de la toile.

Par exemple sais-tu que dans la monnaie TestNet, où nous sommes 21, il existe déjà des membres à distance de 4 entre eux ? Comment diable une armée de robots pourrait s’introduire alors que seul 1 pas de triche est disponible ?

Plus encore, tu pourrais dire “euh … déjà 4 pas avec seulement 21 membres ? est-ce seulement possible d’atteindre 1.000 membres ?” La réponse, à mon avis, tient dans la densité de signatures. Car même sans aller à plus de 21 membres, on pourrait drastiquement réduire la distance interne des membres entre eux par le simple jeu des certifications de membres existants. Cela ouvrirait alors des pas supplémentaires pour de nouveaux venus, qui devraient alors répéter l’opération pour qu’une autre vague de membres puisse rejoindre la toile, etc.

Bref, les méchants robots oui, mais je crois que cette fameuse règle de distance possède des propriétés très importantes et qui nous échappent encore.

C’est une 2ème réponse possible ! En effet il ne faut pas oublier que le système s’insère lui-même dans un système plus vaste, notamment les humains ayant décidé de faire monnaie ensemble. Rien n’interdit à ces humains d’appliquer leur Loi aux personnes agissant manifestement contre la règle 1 individu = 1 compte DU.

C’en est d’autant plus facile que les données sont signées, leur conférant une propriété de non-répudiation (propriété dores et déjà reconnue comme preuve recevable par la Loi actuelle).

On a déjà la 1ère distinction “nœud membre / non membre”. Par ailleurs je ne sais pas si tu es au courant, mais il y a un mécanisme de rotation dans l’écriture (en gros quand tu calcules un bloc, tu fais partie du 1/3 de membres n’ayant plus la possibilité de calculer tant qu’un autre tiers des membres calculant en aient écrit chacun 1).

Quant à avoir un 3ème niveau, je pense que ce serait une erreur : ce serait leur donner un pouvoir supérieur à quelques-uns, genre pyramidal, et bien sûr il est plus facile de corrompre un groupe restreint que l’ensemble du groupe.

Oui, mais @Galuel pourrait te rétorquer qu’on ne peut pas imaginer toutes les Ğéventualités. Je commence à adhérer à cette vision :slight_smile:

2 Likes

J’ai pas le temps de répondre à tout la maintenant (et je risque d’être bien pris ce w-e) mais en attendant de répondre (et continuer mon accumulation de connaissances sur le sujet) j’aime bien vos réponses! :slight_smile:

Ce serait intéressant d’avoir l’avis d’un juriste sur ce point.
Est il possible d’utiliser le système judiciaire actuel en cas de fraude avérée ? Les utilisateurs légitimes peuvent-ils porter plainte ?
Bien sûr, la question n’a de sens que si cette fraude a un impact significatif et donc que la monnaie libre a déjà démontré son efficience…

J’essaie en tout cas. Pas facile avec deux petits monstres à la maison et une activité batteuristique chronophage. Mais oui, l’idée c’est de construire des toiles de Confiance (ou d’utiliser celles existantes comme la meta_brouzouf) et d’évaluer avec un algo simple combien de sybil un groupe d’individu (choisis random) est capable de créer. Ce sera juste un ordre d’idée parce que les paramètres qui rentrent en ligne de compte dans le monde des hommes est proche de l’infini.

Si cela arrive, c’est que la monnaie libre aura déjà prouvé son efficience.
Lorsqu’un réseau Duniter subira des attaques, cela signifiera que c’est la bonne voie :slight_smile: