Format des commentaires de transaction

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 ?

1 Like

Un cas d’usage qui aurait vocation a devenir très commun est peut-être le vote (bulletin ouvert, anonymat relatif)?

Un groupe de personnes se connaissant et connaissant leurs numéros de comptes relatifs peuvent voter ouvertement sur n’importe quel sujet sous l’anonymat relatif et peuvent vérifier à la fois le résultat du vote et le vote de chacun, qui peut-être consulté/vérifié à postériori car il reste “indélébile” dans la blockchain, en cas de storage on-chain qui le permet. C’est un vote anonyme par rapport aux personnes non concernées mais totalement transparent, ouvert et infalsifiable/vérifiable pour les personnes concernées.

A priori les systèmes de prise de décision sont un sujet pour après la migration.

On a déjà un système de vote non-anonyme (palette collective). Pour le vote anonyme on pourra utiliser les ring signatures qui serviront aussi aux transactions anonymes. J’y travaille actuellement. Là maintenant je ne vois pas comment faire un vote anonyme avec les commentaires de transaction, sans ring signature ou mixage. (en considérant que l’anonymat partiel de la TdC n’est pas suffisant)

1 Like

Ce sont deux choses différentes et tout à fait complémentaire (chacune a sa place, dans des contextes différents et à des niveaux d’évolution différents). L’angle de vue auquel tu penses est plus probablement influencé par le désir de prise de décisions à grandes échelle en ce qui concerne par exemple le système de la june.

Tu parles d’un vote qui est entièrement anonyme et (théoriquement) impossible à tracer. Ça a tout à fait sa place et de nombreuses applications surtout dans les décisions à grandes échelles. Ça porte l’avantage de n’avoir pas à craindre de représailles pour son vote de la part d’individus parmi les votants (contrairement au vote dont je parle) et donc c’est un outil adapté à pallier à d’immenses inégalité de pouvoir entre les votants (ce qui a priori ne devrait pas vraiment être le cas entre les membres de la monnaie libre: aucun membre légitime de la monnaie libre ne devrait avoir le pouvoir de faire craindre des représailles de sa part à un point vraiment sérieux plus qu’il/elle ne devrait craindre lui/elle-même d’engendrer une telle crainte vis à vis d’autres membres de la communauté). Les inconvénients à plus petite échelle de ce type de vote sont d’enlever des mains de l’individu votant lambda la capacité de vérifier le vote (et de retracer le vote d’une personne donnée, lorsqu’il est de commun accord, comme ci-dessous, de répondre de son vote / de ses erreurs éventuelles ouvertement entre votants et non pas de voter, comme ci-dessus, dans l’obscurité entre votants).

Je faisais mention pour ma part d’un vote à anonymat relatif: un vote dans lequel les personnes impliquées (votant) votent ouvertement entre elles. Les personnes de l’extérieur ne savent pas qui est qui dans le groupe votant (ni, dans l’idéal, qui est le groupe) mais chaque personne du groupe connait (ou est à même d’en venir à identifier) chaque personne qui est derrière chaque numéro de compte votant. Corrompre un seul élément du groupe c’est mettre en péril une partie du groupe au moins (c’est l’immense faiblesse de ce type de vote, en plus de la vulnérabilité à l’intimidation, ce qui, comme sus-mentionné, est surtout un problème dans des systèmes qui exacerbent les inégalité, à priori pas le cas de la monnaie libre).

Les avantages par contre sont immenses: chacun vote de manière extrêmement responsable, car le vote de chaque compte est indélébile et donc les votes sont portés ad vitam æternam par chacun de ces comptes (qui veut ne plus porter ses erreurs doit repartir de zero dans son “crédit social”), dans la bienveillance mutuelle et en paix avec l’imperfection de tous et le chemin d’évolution de chacun. Le fait que chaque votant soit à même de simplement vérifier l’intégrité de chaque vote ajoute à la légitimité et à l’autorité du résultat (ici, pas besoin de se soucier de questions plus larges comme la distorsion du pouvoir de décision individuel à travers de vrais faux comptes ou de faux vrais comptes, par exemple).

L’ombre a certainement ses avantages, mais tous les vices de l’humain y pullulent. La lumière a certainement ses inconvénients, mais tous les vices de l’humain s’y évaporent. L’un n’existe pas sans l’autre et donc l’un et l’autre ont leur juste place, à nous de placer l’ombre ou la lumière en fonction du cas d’usage, à l’endroit le plus juste, en veillant, peut-être, à placer autant de lumière que possible.