News
Réflexions sur le traitement par lots de transactions Bitcoin | par Coinbase | Août 2020
Comment les paiements par lots ont bénéficié à nos clients, aux opérations internes et à l'ensemble du réseau Bitcoin
Par Brock Miller
Plus tôt cette année, Coinbase déployé le traitement par lots des transactions Bitcoin. Depuis le lancement, nous avons groupé 100% de Consommateur Coinbase et Coinbase Pro le client envoie des demandes de Bitcoin. Au cours de cette période, nous avons réalisé 75,2% d'économies sur les frais de transaction et avons répercuté toutes ces économies sur nos clients. Nous avons également réduit le nombre de transactions quotidiennes de 95%. Dans cet article de blog, nous expliquerons le fonctionnement du traitement par lots des transactions et examinerons son impact en détail.
Lot de transactions fonctionne en regroupant de nombreuses demandes d'envoi de clients en une seule transaction plutôt que de créer une nouvelle transaction pour chaque demande. Ce faisant, nous sommes en mesure d'amortir les frais généraux d'une transaction sur plusieurs demandes d'envoi, ce qui réduit les frais de transaction effectifs par demande. Cela a l'avantage supplémentaire de réduire également la charge sur le réseau Bitcoin global, car chaque nouveau bloc dispose d'un espace limité disponible et le traitement par lots nous permet d'adapter plus de paiements dans un espace plus petit.
Un exemple simplifié
Prenons un exemple simple. Une transaction Bitcoin comporte 3 composants principaux:
- Contributions: Les pièces dépensées dans le cadre de la transaction.
- Les sorties: Les paiements effectués, y compris l'adresse et le montant du destinataire.
- En-têtes: Champs standard inclus sur chaque transaction tels que les informations de version.
Les frais de transaction en Bitcoin sont en fait une fonction de la taille d'octet virtuel (ou des unités de poids) de la transaction brute, où des tailles plus importantes nécessitent généralement de payer des frais plus importants (en fonction du taux actuel des frais de réseau). Pour les besoins de cet exemple, nous traiterons simplement les octets virtuels (vbytes) comme des octets standard (voir ici pour en savoir plus sur les octets virtuels et les modifications introduites par SegWit).
Chacun des trois éléments ci-dessus a une taille spécifique et contribue ainsi à sa manière à la taille globale de la transaction. En supposant une transaction SegWit entièrement native, les trois composants ont les tailles approximatives suivantes:
- 67 octets par entrée
- 31 Vbytes par sortie
- 11 octets pour les en-têtes
Avec cette compréhension, comparons deux scénarios, l'un avec traitement par lots et l'autre sans. (Notez que pour chaque scénario, pour calculer les frais totaux, nous supposerons un taux de frais de réseau de 10 satoshis par vbyte.)
Scénario 1: pas de traitement par lots
Dans ce scénario, nous avons trois transactions distinctes. Chaque transaction a une seule entrée et deux sorties. La première sortie correspond à la demande d'envoi spécifique du client (une adresse et un montant), tandis que la deuxième sortie renvoie tout excédent de modification à Coinbase. (Notez que la sortie de changement est requise car le montant d'entrée dépensé n'est pas le même que le montant de sortie envoyé et il reste généralement des fonds.)
Chaque transaction ci-dessus a une taille totale de 140 octets. En utilisant un taux de frais de 10 satoshis par vbyte, nous pouvons calculer que chacun d'eux a des frais de transaction de 1400 satoshis.
Scénario 2: mise en lots
Dans ce scénario, nous regroupons ces trois demandes en une seule transaction. Cette transaction aura toujours une entrée, cependant, étant donné que nous regroupons les demandes, nous avons maintenant quatre sorties. Les trois premières sorties correspondent à chacune des demandes d'envoi de nos clients tandis que la dernière sortie est la sortie de modification pour les fonds restants.
Dans l'exemple de transaction par lots ci-dessus, nous pouvons voir que nous avons une taille totale de 202 octets pour un montant total de 2020 satoshis. Cela équivaut à des frais effectifs de 673 satoshis par demande d'envoi, soit une réduction de 52% des frais! Ces économies de frais deviennent encore plus importantes avec le nombre de paiements groupés.
Réflexion 1: Réduction de 75,2% des frais de transaction des consommateurs
Comme indiqué précédemment, depuis le lancement le 12 mars, nous avons groupé 100% des retraits des clients Consumer et Pro. Au cours de cette période, nous avons réalisé une réduction de 75,2% des frais de transaction économisés et transféré 100% de ces économies directement au client.
Dans le tableau ci-dessous, vous pouvez voir l'estimation des frais de transaction Bitcoin (en satoshis) fournie à Coinbase Consumer pour une seule demande d'envoi au cours des trois derniers mois. Comme vous pouvez le constater, non seulement les frais sont considérablement réduits, mais ils sont également moins volatils pendant les périodes de forte activité comme les augmentations de frais observées à la mi-mai.
Réflexion 2: réduction de 95% des transactions générées par jour
Une autre chose que nous avons vue à partir du traitement par lots est une diminution considérable du nombre global de transactions que nous générons par jour. Au lieu de générer n transactions pour n envoyer des demandes, nous générons désormais efficacement un nombre constant c de transactions par jour pendant n envoyer des demandes, où c est basé sur la fréquence à laquelle nous décidons de grouper les paiements (aujourd'hui, cela se produit au moins une fois par minute). Le graphique ci-dessous montre l'ampleur de ce changement en montrant les transactions uniques diffusées par jour dans les semaines autour du moment du lancement.
C'est une victoire pour nous en interne, car cela signifie que nos services font moins de travail pour atteindre le même résultat final. Ce changement a également eu un impact positif sur l'ensemble du réseau Bitcoin. En émettant le même nombre de demandes d'envoi dans un encombrement réduit (moins de transactions et moins d'espace de bloc nécessaire), nous sommes en mesure d'être plus efficaces et notre impact global sur le réseau est réduit. Des estimations prudentes suggèrent que cela a contribué à une réduction de 10 à 15% du nombre de transactions confirmées par jour sur l'ensemble du réseau. Cette réduction du nombre de transactions est bénéfique pour le réseau dans son ensemble et devrait aider à réduire les frais pour tous les utilisateurs de Bitcoin.
Enfin, nous avons également constaté des gains significatifs en termes de fonctionnement interne. En tant qu'ingénieurs travaillant sur des services critiques pour l'entreprise, nous surveillons constamment nos systèmes et alertons les ingénieurs lorsque les services commencent à fonctionner en dehors des seuils normaux. Une métrique clé ici pour Bitcoin est le temps nécessaire pour qu'une demande d'envoi soit traitée et soumise au réseau en tant que transaction. Vous pouvez considérer cela comme le délai entre le clic sur le bouton Envoyer maintenant sur Coinbase Consumer et le moment où vous voyez réellement votre transaction sur le réseau.
Avant le traitement par lots, ce délai augmentait parfois en raison de niveaux d'activité élevés sur le réseau Bitcoin ainsi que de retards occasionnels entre les blocs minés par les mineurs. En raison du fonctionnement des portefeuilles actifs, nous attendons presque toujours que la modification apportée à une transaction précédente soit confirmée afin de pouvoir utiliser ces fonds pour répondre à une autre demande d'envoi. Lorsque nous créions une transaction distincte pour chaque demande, nous avions beaucoup plus de ces sorties de modification en attente à un moment donné. Ce problème peut parfois entraîner des retards pour les demandes d'envoi ultérieures. Maintenant que nous créons 95% de transactions en moins, nous avons moins de sorties de changement à attendre et ce problème a presque entièrement disparu.
Le graphique ci-dessous montre les alertes Bitcoin internes associées pour notre équipe d'astreinte au cours des 6 derniers mois pour montrer à quel point cela a eu un impact sur nous. Au cours de cette période, nous avons constaté une réduction d'environ 78% du nombre d'alertes liées au traitement des demandes Bitcoin et aux retards.
Le traitement par lots des transactions est une fonctionnalité incroyablement réussie qui profite aux clients de Coinbase, aux opérations internes et à l'ensemble du réseau Bitcoin. Si vous aimez travailler dans un environnement amusant et énergique et que vous souhaitez relever des défis comme celui-ci, consultez nos positions ouvertes sur notre page carrière. Nous aimerions recevoir de vos nouvelles.
Traduction de l’article de Coinbase : Article Original

Le Meilleur de l'Actualité Blockchain Francophone & Internationale | News, Guides, Avis & Tutoriels pour s'informer et démarrer facilement avec Bitcoin, les Crypto-Monnaies et le Blockchain. En Savoir Plus sur L'Équipe BlockBlog
