Les + populaires

BTC ETH SOL XRP BNB USDC USDT

Suivez-nous

Améliorer la confidentialité des transactions sur la blockchain Bitcoin | par Coinbase | mai 2022

IAavec

Tl;dr : Ce rapport met à jour ce Josieun bitcoin CoreDev, et Fonds communautaire Coinbase Crypto bénéficiaire de la subvention, a travaillé sur la première partie de sa subvention de développement Crypto d’un an. Cela couvre spécifiquement leur travail sur la confidentialité des transactions bitcoin.

Donner Coinbase

Depuis la fin de l’année dernière, je travaille avec un groupe de chercheurs sur un projet centré sur les transactions Bitcoin avec deux sorties ou moins. Bien que la recherche soit toujours en cours, nous avons identifié une possibilité d’amélioration en ce qui concerne la confidentialité des transactions Bitcoin. Cet article détaille la motivation pour le changement et le travail accompli jusqu’à présent.

Confidentialité dans les transactions Bitcoin

En pensant à la confidentialité dans Bitcoin, je trouve la définition suivante utile :

« La vie privée est le pouvoir de se révéler sélectivement au monde » – Eric Hughes (1993)

Cette définition motive l’énoncé suivant, «Un logiciel ne doit jamais révéler plus d’informations que nécessaire sur l’activité d’un utilisateur. » Appliqué aux transactions Bitcoin, cela signifie que nous devrions essayer de garder l’adresse de paiement et le montant privés entre le payeur et le bénéficiaire. Aujourd’hui, une façon de briser cette confidentialité consiste à utiliser l’heuristique « Paiement à un type de script différent ».

En bref, cette heuristique fonctionne en déduisant laquelle des sorties d’une transaction est la sortie de changement en examinant les types de script. Si une transaction est financée avec des entrées bech32 (segwit natif) et a deux sorties, une P2SH et l’autre bech32, il est raisonnable de déduire que la sortie bech32 est une adresse de changement générée par le portefeuille du bénéficiaire. Cela permet à un observateur extérieur de déduire la valeur du paiement et de modifier la valeur avec une précision raisonnable.

Quelle est la taille d’un problème?

Mais combien de fois cela arrive-t-il ? Cela vaut-il la peine d’être amélioré ou s’agit-il d’un cas rare? Regardons quelques données !

Paiements à différents types de scripts au fil du temps

En analysant les transactions de 2010 à aujourd’hui, nous avons constaté que ce type de transaction est apparu pour la première fois après l’activation des adresses P2SH en 2012 et a augmenté de manière significative après l’activation de segwit en 2017. Depuis 2018, ces types de transactions représentent environ 30 % de toutes les transactions sur la blockchain Bitcoin. Cela devrait continuer à augmenter au fil du temps, car nous constatons une adoption accrue de la racine pivotante, qui introduit le nouveau codage d’adresse bech32m. Cela signifie que nous avons la possibilité d’améliorer la confidentialité pour jusqu’à 30 % de toutes les transactions Bitcoin aujourd’hui si chaque portefeuille avait une solution pour cela.

Comment pouvons-nous améliorer cela?

La première étape pour résoudre ce problème consiste à faire correspondre le type d’adresse de paiement lors de la génération d’une sortie de modification. D’après notre exemple précédent, cela signifie que notre portefeuille devrait plutôt générer une adresse P2SH afin que la transaction soit désormais des entrées bech32 vers deux sorties P2SH, masquant efficacement laquelle des sorties est le paiement et laquelle est la monnaie.

Cette logique a été fusionnée dans le noyau Bitcoin dans # 23789 – ce qui signifie que notre portefeuille aura désormais un mélange de types de sortie en fonction de nos modèles de paiement. Que se passe-t-il lorsque nous dépensons ces UTXO ? Notre vie privée de la transaction d’origine est-elle toujours préservée ?

Mélanger les types de sortie lors du financement d’une transaction

Il s’avère que nous pouvons encore divulguer des informations sur notre première transaction (txid : a) lorsque nous dépensons la sortie de modification dans une transaction ultérieure. Considérez le scénario suivant :

mélanger les types d’entrée dans les transactions ultérieures

  • Alice a un portefeuille avec des UTXO de type bech32 et paie Bob, qui leur donne une adresse P2SH
  • Le portefeuille d’Alice génère une sortie de changement P2SH, préservant leur confidentialité dans txid : un
  • Alice paie ensuite Carol, qui leur donne une adresse bech32
  • Le portefeuille d’Alice combine le P2SH UTXO avec un bech32 UTXO et txid : b a deux sorties bech32

Du point de vue d’un observateur extérieur, il est raisonnable de déduire que la sortie P2SH dans txid : b était le changement depuis txid : a. Pour éviter de divulguer des informations sur txid : a, le portefeuille d’Alice doit éviter de mélanger la sortie P2SH avec d’autres types de sortie et soit financer la transaction avec uniquement des sorties P2SH, soit avec uniquement des sorties bech32. En prime, si txid: b peut être financé avec la sortie P2SH, le changement de txid: b sera bech32, nettoyant efficacement la sortie P2SH du portefeuille en la convertissant en un paiement et un changement bech32.

Évitez de mélanger différents types de sortie lors de la sélection des pièces

J’ai implémenté cette logique dans Github avec des travaux et des révisions en cours.

Si ce sujet vous intéresse ou si vous cherchez des moyens de vous impliquer dans le développement de Bitcoin Core, vous pouvez participer au prochain Bitcoin PR Review Club pour # 24584 (ou lire les journaux de la réunion).

Travail en cours

Si cette logique est fusionnée dans Bitcoin Core, j’espère que d’autres portefeuilles mettront également en œuvre à la fois la correspondance des adresses de changement et éviteront de mélanger les types de sortie lors de la sélection des pièces, améliorant ainsi la confidentialité pour tous les utilisateurs de Bitcoin.

Ce travail a inspiré un certain nombre d’idées pour améliorer la confidentialité dans le portefeuille Bitcoin Core, ainsi que pour améliorer la façon dont nous testons et évaluons les modifications apportées à la sélection des pièces. Un grand merci à Coinbase pour avoir soutenu mon travail – j’espère trouver d’autres opportunités d’amélioration motivées par l’analyse au fur et à mesure que nos recherches se poursuivent.

Source blog.coinbase.com

Gérez vos cryptos
Binance
100$ offerts sur les frais de trading

Donnez votre avis

Soyez le 1er à noter cet article


Partagez cet article maintenant !

Envoyez simplement nos contenus crypto et finance à vos proches.