Voici une proposition de protocole pour un réseau de mixeurs de cryptomonnaie sûr et anonyme. J’ai déjà décrit le projet dans le forum monnaie-libre mais ici c’est plus approprié.
C’est vincentux qui m’a donné l’idée, avec son ĞMix manuel. Seulement il a deux inconvénients :
- le responsable du service centralise l’anonymat, il faut lui faire confiance ;
- ça lui demande beaucoup de temps, ce n’est pas possible si la fréquence des transactions est élevée.
J’ai donc commencé à implémenter un mixeur en Python. Pour assurer l’anonymat, le réseau fonctionne en oignons, comme Tor. Avant d’envoyer la transaction, qui passera d’un nœud à l’autre jusqu’au compte du destinataire, il faut envoyer une requête au premier nœud qui la passera au suivant et ainsi de suite. Aucun nœud ne connaît l’ensemble de la chaîne.
Il y a également un système qui permet d’éviter qu’un nœud vole de l’argent en le transférant sur un compte à lui plutôt que sur le compte du destinataire. (pas encore implémenté)
Trucs qui fonctionnent déjà :
- interface JSON par HTTP, avec commandes de base
- découverte des nœuds du réseau et actualisation de la liste des pairs
- communication en oignon
Trucs pas encore implémentés ou faits :
- gestion des transactions (vérification, émission)
- antivol
- un schéma pour expliquer plus clairement le protocole
Vous pourrez peut-être m’aider @vit ou @moul :
J’ai besoin de vérifier si une clé publique a reçu ou non une transaction provenant d’une certaine clé publique, avec un certain commentaire et un certain montant. Je dois aussi émettre une transaction d’un montant donné avec un commentaire.
J’ai regardé l’exemple de duniterpy pour émettre une transaction. On a juste accès à la liste des sources, mais comment envoyer x Ğ1 ? Et il n’y a pas les commentaires.
J’ai pensé à utiliser Silkaj comme bibliothèque parce qu’il y a déjà une fonction send_transaction
, mais apparemment il n’est pas prévu pour, en plus il faut utiliser le « contexte » et je ne vois pas tellement comment ça fonctionne.
Merci !