CoinJoin et InstantSend

CoinJoin

Cette documentation explique comment utiliser la fonctionnalité CoinJoin pour créer des transactions CoinJoin avec vos dashs, et garantir une confidentialité de vos transactions commerciales.

Panorama

CoinJoin est une méthode autonome (c’est-à-dire non confiée à une entité tierce) pour mener une série de transactions difficiles à suivre par un observateur extérieur. La version actuelle de CoinJoin dans le portefeuille Dash Core permet de traiter n’importe quel montant de dashs. CoinJoin est également disponible dans le portefeuille Dash Electrum.

La connaissance du nombre exact de cycles de mélange CoinJoin a un effet mesurable sur la probabilité qu’a un adversaire de deviner l’historique d’une transaction. Pour cette raison, le nombre de cycles de mélange CoinJoin recommandé (et celui par défaut) est fixé à quatre, et certaines entrées peuvent être mélangées lors de cycles supplémentaires pour améliorer encore davantage la confidentialité.

Vous pouvez en savoir plus sur le concept et les procédures CoinJoin ici.

Configuration

  1. Ouvrez votre portefeuille logiciel Dash Core, allez à Réglages et choisissez Options. Allez sur l’onglet CoinJoin.

    ../../_images/options-coinjoin.png
  2. Dans Cycles de mélange, saisissez un nombre entre 2 et 16. Chaque cycle CoinJoin opère une transaction CoinJoin, identifiée comme une coupure. Un nombre élevé de cycles améliore votre niveau général de confidentialité tout en réduisant le risque d’une détection par collusion de nœuds. 16 est le plus grand nombre de cycles actuellement possible.

    À NOTER : pour dissuader un abus du système, un cycle de mélange sur dix en moyenne comporte des frais de 0,0001 dash.

  3. Saisissez un Solde cible. Cette valeur indique la limite inférieure du montant final de fonds qui doivent être traités. Selon la façon dont le client traite votre solde de portefeuille, vous pouvez finir avec des coupures d’entrées dont la somme totale est légèrement supérieure au solde cible.

  4. Cliquez sur OK pour enregistrer les réglages.

  5. La fonction CoinJoin est désactivée par défaut quand vous ouvrez votre portefeuille. Elle ne démarrera que lorsque vous aurez décidé, dans les Réglages, du nombre de cycles de mélange et du montant à mélanger, et que vous aurez cliqué sur Commencer CoinJoin dans l’onglet Vue d’ensemble de votre portefeuille.

Démarrer CoinJoin

La procédure CoinJoin est démarrée en cliquant sur le bouton Démarrer CoinJoin dans l’onglet Vue d’ensemble du portefeuille logiciel Dash Core. CoinJoin est possible dès que les conditions suivantes sont réunies :

  • Le portefeuille contient suffisamment de fonds non mélangés pour créer les coupures minimales exigibles.

  • L’utilisateur n’a pas désactivé la fonction CoinJoin dans le dialogue Options

  • La valeur cible des fonds traités dans le dialogue Option est supérieure à zéro.

Si votre portefeuille est chiffré (ce qui est chaudement recommandé), il vous sera demandé de saisir sa phrase de passe. Cochez la case Seulement pour le mélange CoinJoin si vous souhaitez déverrouiller le portefeuille uniquement pour CoinJoin.

../../_images/mixing-password.png

Saisie d’un mot de passe uniquement pour la procédure CoinJoin

Cela déverrouillera votre portefeuille, et le processus CoinJoin démarrera. Le portefeuille restera déverrouillé jusqu’à ce que le processus CoinJoin soit terminé, puis il sera automatiquement verrouillé.

../../_images/mixing.png

Interface CoinJoin après avoir cliqué sur le bouton Commencer CoinJoin. À noter, l”État est Activé.

CoinJoin commencera à créer des transactions et votre solde CoinJoin augmentera progressivement. Ce processus peut prendre un certain temps, alors soyez patient. Vous pouvez suivre ce processus en détail, comme l’explique la section suivante.

N’importe laquelle des actions suivantes interrompra le processus. Comme les transactions sont atomiques (elles ont entièrement lieu, ou bien n’ont pas lieu du tout), il doit être possible d’interrompre CoinJoin à tout moment, en toute sécurité.

  • Cliquer sur le bouton Arrêter CoinJoin, dans l’onglet Vue d’ensemble

  • Fermer le logiciel avant que CoinJoin soit terminé

  • Envoyer des fonds CoinJoin depuis le portefeuille avant que les cycles CoinJoin soient terminés

  • Désactiver CoinJoin avant que le processus soit terminé

Suivi de CoinJoin

Si vous souhaitez suivre le processus CoinJoin en détail, vous devez activer certaines fonctions avancées du portefeuille. Allez dans Réglages, choisissez Options puis allez sur l’onglet Portefeuille. Cochez la case Activer l’interface avancée. Cela vous permettra de suivre la procédure et de voir quelles opérations individuelles CoinJoin sont menées en arrière-plan.

../../_images/mixing-progress.png

Suivi de la progression de CoinJoin

Since CoinJoin creates a lot of new address keys to send and receive the denominations, you may receive a warning when the number of remaining keys runs low. This is nothing to be worried about, since the wallet will simply create more keys as necessary. However, for non-HD wallets these keys will not exist in any previous backups of your wallet. For this reason, it is important to backup your wallet again after the process is complete if using a non-HD wallet. When using an HD wallet, all keys will be derived from the wallet mnemonic so extra backups during CoinJoin are not necessary. You can check the status bar for the « HD » icon to determine if you are using an HD wallet or not.

Vous pouvez aussi suivre la progression de CoinJoin en consultant les transactions créées par le processus, dans l’onglet Transactions.

../../_images/coinjoin-transactions.png

Transactions créées par CoinJoin, dans l’onglet Transactions

Le tableau suivant décrit les transactions relatives à CoinJoin, telles qu’affichées dans la colonne Type de l’onglet Transactions :

Type de transaction

Description de la transaction

Entrées de caution créées par CoinJoin

Les fonds du portefeuille ont été déplacés dans des entrées de caution qui seront utilisées pour créer des paiements de caution. Cela est opéré pour minimiser le traçabilité des cautions.

Coupures créées par CoinJoin

Des fonds du portefeuille ont été divisés en coupures CoinJoin (étape 1 ici)

Mélange CoinJoin

Une transaction a été envoyée à un masternode afin de participer à une session CoinJoin (étape 3 ici)

Paiement de caution CoinJoin

La caution de session CoinJoin a été perçue. Ces frais sont imputés à environ 10% des sessions de mélange pour empêcher les attaques spam.

Envoyer CoinJoin

Des fonds mélangés ont été utilisés pour envoyer un paiement à quelqu’un. À noter : au contraire des 4 précédents types de transaction, il ne s’agit pas d’une transaction CoinJoin.

Vous pouvez aussi utiliser la fonction de contrôle des pièces pour voir quelles adresses contiennent des coupures prêtes à être utilisées dans des transactions CoinJoin. Allez sur l’onglet Envoyer de votre portefeuille et cliquez sur le bouton Entrées pour voir les adresses d’entrée possibles pour vos transactions. Vous pouvez savoir combien chaque adresse contient de coupures mélangées Dash, et combien de cycles y ont été appliqués. Ceci permet d’assurer qu’une combinaison efficace d’adresses peut être utilisée comme entrées dans les transactions CoinJoin sans générer trop de monnaie rendue, puisque le montant d’une transaction CoinJoin doit être arrondi à la coupure supérieure pour dépenser l’intégralité des entrées. Le solde minimum actuel pour une entrée utilisée dans une transaction CoinJoin est de 0,00100010 dash.

../../_images/coinjoin-addresses.png

Dialogue Contrôle des pièces affichant les adresses contenant des fonds CoinJoin sous différentes coupures

Payer avec CoinJoin

Vous pouvez utiliser CoinJoin pour les paiements uniquement lorsque vous disposez d’assez de dashs mélangés pour constituer le montant que vous souhaitez envoyer. Comme le processus de mélange prend du temps, il doit être exécuté à l’avance, avant de créer la transaction d’envoi. Une transaction CoinJoin est en pratique identique à toute autre transaction sur la blockchain, mais elle n’utilise que des adresses d’entrée dont les coupures ont été précédemment mélangées, afin de garantir la confidentialité des fonds. Puisque plusieurs adresses d’entrée sont en général indispensables pour constituer le montant que vous souhaitez envoyer, une transaction CoinJoin consommera en général plus d’espace (en kilo-octets) sur la blockchain, et fera donc l’objet de frais de transaction légèrement plus élevés.

Pour envoyer un paiement avec CoinJoin, allez sur l’onglet CoinJoin du portefeuille logiciel Dash Core. Le solde affiché est votre solde CoinJoin au lieu de votre solde total visible sur l’onglet Envoyer. Vous pouvez ensuite saisir l’adresse dans le champ Payer à, l”Étiquette, le Montant, et cliquer sur le bouton Envoyer des fonds mélangés. Votre paiement sera légèrement arrondi pour dépenser complètement la plus petite coupure possible de fonds mélangés disponibles (actuellement, à hauteur de 0,001 dash). Il vous sera demandé de saisir votre mot de passe et il vous sera affiché un détail complet des frais CoinJoin, avant l’envoi.

../../_images/coinjoin-send.png

Logiciel Dash Core prêt à envoyer une transaction CoinJoin. À noter que l’onglet CoinJoin est utilisé et que le montant à envoyer est inférieur au solde CoinJoin disponible

Entrées

Comme toutes les transactions Dash, les transactions CoinJoin sont composées d’un certain nombre d’entrées et d’une ou plusieurs sorties. Les transactions CoinJoin n’utilisent pas d’adresses de monnaie rendue, donc les éventuels dashs restants seront dépensés dans les frais de transaction.

En raison de la nature probabiliste de la procédure CoinJoin, augmenter le nombre d’entrées dans une transaction peut réduire partiellement la confidentialité. Pour cette raison, utiliser CoinJoin n’est pas recommandé aux utilisateurs souhaitant un degré élevé de confidentialité. Même s’il est impossible de relier une transaction CoinJoin à une seule adresse source avec une certitude absolue, utiliser plus d’entrées peut rendre une transaction plus vulnérable à diverses tentatives potentielles d’identification des liens. Il existe un certain nombre d”entreprises d’analyse de chaînes qui disposent d’outils qui peuvent fournir des scores de risques de transactions sur la réseau Dash, y compris les transactions CoinJoin.

Vous pouvez réduire le nombre d’entrées d’une transaction CoinJoin en définissant le montant de la transaction de telle manière qu’elle utilise vos coupures disponibles plus efficacement, ou en opérant sur plus de dashs pour assurer que des entrées-coupures appropriées sont disponibles en nombre suffisant. Utilisez la fonction Contrôle des pièces dans l’onglet CoinJoin pour voir, sélectionner ou désélectionner les sorties (UTXO) CoinJoin actuellement disponibles à l’utilisation comme entrées de transaction.

InstantSend

Introduction

Cette documentation explique comment utiliser InstantSend pour envoyer instantanément des fonds à tout autre utilisateur Dash dans le monde. Depuis la sortie d’InstantSend basé que les quorums de masternode à longue durée de vie (LLMQ-IS) dans Dash 0.14, le réseau Dash lui-même essaiera de générer un verrou InstantSend pour quasiment chaque transaction traitée par le réseau, en suivant ces règles. Contrairement à la précédente version d’InstantSend, qui demandait des frais plus élevés, les transactions InstantSend basées sur LLMQ ne réclament aucune action particulière de la part de l’utilisateur. Pour cette raison, seul le destinataire doit surveiller la réseau pour y détecter le verrou de transaction, afin d’être capable de recevoir les fonds et de traiter les transactions immédiatement.

Dash InstantSend est possible avec beaucoup de portefeuilles et d’éditeurs de logiciels, parmi lesquels les suivants (liste non exhaustive) :

  • Portefeuille logiciel Dash Core

  • Portefeuille Android Dash

  • Portefeuille IOS Dash

  • MyDashWallet

  • Kraken

  • Bitrefill

  • et beaucoup d’autres

Pour en savoir plus sur le concept et le processus InstantSend, voir ici.

Transactions InstantSend

Depuis la version 0.14 de Dash, tous les éléments d’interface pour créer une transaction InstantSend ont été enlevés, parce que toutes les transactions sont devenues des transactions InstantSend. Comme précédemment, le destinataire a la responsabilité de surveiller le réseau et les verrous InstantSend, et d’implémenter de son côté le logiciel nécessaire qui reconnaîtra et traitera les paiements comme instantanés. Voir la documentation sur l’intégration d’InstantSend pour en savoir plus sur la manière de reconnaître les verrous InstantSend.