Supression du UserID?

Oui, c’est mieux un # en séparateur :

guyLeRenard#128
mathilde#2763
mathilde#5228
Mathilde#8529
paul#28
guillaume#568
guilaume#5964 ← tentative d’usurpation de guillaume mais le numéro grille la tentative !

Pour le hash base58, je comprends la problématique mais alors on est moins “convivial” à la lecture…

guyLeRenard#HXRH
mathilde#2HSvhg
mathilde#2MsCqV
Mathilde#2SLB8L
paul#4pf
guillaume#Jsef
guilaume#2MuZWb ← tentative d’usurpation de guillaume mais le numéro grille la tentative !

Pour les utilisateurs ce n’est pas forcément un gros changement. S’il n’y a qu’une seule identité avec un pseudo, elle apparaîtra quand même en premier résultat d’une recherche par pseudo. Le numéro sera juste une vérification supplémentaire.

Mémoriser un nombre à 4-5 chiffres est plus facile qu’une suite de chiffres et lettres majuscules et minuscules.

Utiliser un hash (que ce soit une troncature d’un sha2 en base58, ou une permutation aléatoire des numéros) multiplierait les identifiants. Il faudra savoir si on parle du numéro d’identité ou du numéro d’identité-celui-après-le-pseudo.

Utiliser la base58 induirait une ressemblance avec l’adresse/pubkey. Comme il arrive qu’on écrive les quelques premiers caractères d’une clé publique, on pourrait confondre. (certes les adresses auront le préfixe g1, mais comme 1 sur 58^2=3364 hashes).

Peut-être qu’il y a un code optimal qui maximise la distance entre les pseudos, avec les nombres les plus petits possibles. Par exemple :

  • alice#1
  • bob#1
  • Alice#2
  • allice#3
  • bobe#2

Variante possible en ajoutant une permutation pour éviter le “je suis le premier j’ai le plus petit numéro” (comme devait le faire Discord, avec un numéro à 4 chiffres pour des millions d’utilisateurs). Il existe des mesures de distance lexicographique (e.g. Damerau-Levenshtein), il faut juste trouver comment mesurer efficacement (genre O(L^2 × log N)) la plus petite distance entre un nouveau pseudo et l’ensemble des N pseudos existants. (L étant la taille max d’un pseudo) Ou déléguer ça hors-chaîne (ce qui est carrément faisable et très simple puisqu’une preuve de faible distance est très rapide à vérifier en runtime).

1 Like

Oui entièrement d’accords avec ça, utiliser un hash ne me semble pas une bonne idée d’UX.

Là par contre tu amplifies


Si il y a tout de même le fait que les usernames ne seraient plus unique, ça change pas mal de chose aussi bien en terme d’UX que de protocole.