Contrairement aux propositions initiales qui consistaient à rester compatibles avec les limitations des commentaires de transaction v1 (Comment chiffrer les commentaires de transactions on chain), la possibilité de stocker hors chaîne les commentaires de transaction donne une liberté totale sur le format à adopter. Je propose de partir dans un premier temps sur dag-cbor
qui est plus efficace que le json en particulier pour les données binaires, ce qui évite d’encoder les messages chiffrés et les signatures éventuelles.
Métadonnée uniquement
Certaines applications comme Ğchange ont besoin de connaître la nature d’une transaction et que cette donnée soit publiquement accessible, pour cela elles peuvent utiliser un commentaire de transaction avec métadonné uniquement (cf Quand chiffrer les commentaires de transactions) :
{
"kind": "metadata",
"metadata": "GCHANGE:AD:625761284628846", # <--- exemple gchange
"metadata": "GANNONCE:CROWDF:qfjuvnfv26gh4b26fghbgjbgyj8", # <--- exemple gannonce
}
Commentaire en clair
Il existe des cas d’usage comme les associations qui pratiquent la transparence sur leurs transactions où le chiffrement n’est pas pertinent. Dans ce cas, on pourrait simplement le préciser avec un “kind cleartext” :
{
"kind": "cleartext",
"value": "Rémunération du salarié X",
}
Commentaire chiffré émetteur + destinataire
Le cas le plus simple serait un commentaire chiffré pour les clés publiques de l’émetteur et du destinataire de la transaction, implicitement déduits de la transaction :
{
"kind": "encrypted for issuer and receiver",
"issuer": 0xa19d862e2b11c44f, # <--- chiffré pour l'émetteur
"receiver": 0x955e109ff33bb665, # <--- chiffré pour le destinataire
}
Ce type ne serait pas collecté par les indexeurs parce qu’il ne concerne a priori que les deux parties de la transaction qui sont les seules à pouvoir lire le contenu et peuvent donc récupérer le fichier via ipfs (ou une passerelle http si c’est plus simple pour leurs clients).
Autres cas
On peut imaginer plein d’autres applications utilisant d’autres types de crypto, des signatures… @tuxmain a fait une liste intéressante ici : Implémentation des commentaires de transaction - #4 by tuxmain.
C’est extensible à volonté, mais on pourrait se mettre d’accord sur les cas d’usage principaux, et faire un peu comme des “NIPS”. Est-ce que vous connaissez un système existant de qualification des transactions ? @flodef une idée ?