Comme l’avait évoqué @elois dans ce sujet, la migration vers Substrate est une bonne occasion de supprimer la notion de piscine concernant les documents de WoT.
Une simple recherche sur le forum vous montrera que la piscine est une plaie pour les utilisateurs, mais en plus c’est une potentielle faille de sécurité (attaque DoS). Jusque-là nous pouvions l’accepter, mais si la Ğ1 doit passer à un autre niveau il faut corriger ce point.
Publier directement en blockchain
L’idée donc, c’est que les identités, certifications et adhésions soient directement publiées en blockchain au fur et à mesure du processus d’entrée d’un nouveau membre, dès que les documents sont signés.
Prenons un exemple pour avoir l’idée générale :
- Bob publie son identité, celle-ci est inscrite en blockchain mais Bob n’est pas membre pour autant
- Alice certifie Bob : la certification est inscrite en blockchain mais Bob n’est toujours pas membre (il en faut 5)
- Quatre autres membres certifient Bob, qui dispose alors de 5 certifications
- Bob publie sa demande d’adhésion, et si la règle de distance est respectée, il devient membre
Avantages
- Plus de problème de piscine désynchronisée, tout est stocké en blockchain
- Moins d’incertitudes quant à la validité de l’inscription : tout est publié au fur et à mesure (exit la concurrence)
- Meilleur contrôle du spam : en utilisant la WoT, possibilité d’avoir des quotas et des frais.
Reste le cas de l’identité
Autant il est possible d’appliquer des quotas et frais pour un membre, autant pour un nouvel entrant c’est plus compliqué : il est facile de créer une identité sur une clé et de répéter l’opération pour spammer la blockchain. C’est même pire que dans Duniter v1.
La solution que voyais Eloïs, c’était de reprendre la mécanique de Duniter v1 qui intégrait l’identité via la certification (qui la contient). Comme la certification est réservée aux membres et se trouve bien cadrée par des quotas, c’est une bonne protection.
Oui mais voilà, comment fait le nouvel entrant pour publier son identité afin qu’un membre puisse le certifier, afin que justement l’identité soit publiée ?
Plusieurs solutions peuvent être imaginées, par exemple le nouvel entrant pourrait se débrouiller pour transmettre son identité par un canal externe (e-mail, QRCode, etc).
Je serai plutôt partisan d’une solution on-chain, qui consisterait à ajouter une nouvelle action aux membres : pouvoir inviter à la création d’identité. Concrètement, chaque membre pourrait inscrire en blockchain un droit d’écriture d’identité sur une clé publique (compte) qui n’en dispose pas encore, et autoriserait un non-membre à y publier son identité.
Ensuite bien sûr on déroule le processus normal d’inscription : certifications et adhésion.
De cette façon il est facile de conserver des quotas, tout en permettant l’inscription progressive en blockchain.
Si jamais vous avez d’autres idées, n’hésitez pas à les partager ci-après.