Ce qui se passe
Le problème est banal et rarement traité : les encodages orientés machine — hexadécimal, Base58 — sont compacts, mais pénibles à prononcer, transcrire et mémoriser. Essayez de dicter une empreinte de clé au téléphone.
Sing-song est un encodage réversible qui représente une suite d'octets quelconque sous forme de syllabes prononçables. Son alphabet compte 64 syllabes consonne-voyelle, chacune correspondant directement à une valeur de six bits.
L'origine du projet est plus modeste que son ambition : générer des pseudonymes déterministes pour des clés publiques Nostr.
Les propriétés
Quatre choix de conception le rendent utilisable en pratique :
- Déterministe et réversible — un octet donné produit toujours la même syllabe, et l'opération inverse retrouve exactement l'entrée.
- Auto-dimensionné — la longueur en octets et les zéros de tête sont préservés, sans métadonnée externe à transporter à côté.
- Stable par préfixe — deux entrées qui partagent un préfixe produisent des syllabes qui partagent un préfixe. On peut donc comparer deux clés sans les lire en entier, ce qui est exactement le geste qu'on fait devant une empreinte.
- Auto-délimité — aucune ponctuation porteuse de sens, rien qui se perde à la copie.
Une variante optionnelle en suffixe permet plusieurs représentations réversibles de la même suite d'octets.
La limite, énoncée par l'auteur
C'est ce qui rend le billet crédible : l'auteur ne survend pas son travail.
L'anglais, écrit-il, est difficile à traiter même pour des syllabes simples. Le résultat n'atteint donc pas complètement l'objectif visé — une chaîne qu'on puisse lire à quelqu'un au téléphone avec la certitude qu'elle sera transcrite correctement. Il note, non sans humour, que l'idée aurait bien plus de valeur si tout le monde parlait italien : une langue à syllabation régulière se prête naturellement à cet exercice.
Le statut est explicitement celui d'un brouillon, en version 0.1.2, et les commentaires sont les bienvenus.
Ce que ça change
L'intérêt n'est pas de remplacer l'hexadécimal partout, mais de rappeler que la transmission orale est un cas d'usage réel et mal servi : lecture d'un code à un support technique, vérification d'une empreinte de vive voix, secours quand le copier-coller n'est pas disponible.
La stabilité par préfixe est la propriété la plus astucieuse. C'est elle qui permet de dire « ça commence pareil » sans lire les quarante caractères — ce que tout le monde fait déjà en pratique avec les empreintes, mais sans garantie.
À retenir
Un encodage déterministe, réversible et stable par préfixe pour dire des octets à voix haute. Encore un brouillon, avec une limite linguistique que son auteur assume, mais une idée qui mérite d'être connue.
Source : blog.vrypan.net