Résolution du problème de transaction lente en personne

Ever wonder how Bitcoin (and other cryptocurrencies) actually work? (Juin 2019).

Anonim

L'une des caractéristiques essentielles pour un support de transaction numérique pour être viable pour les paiements effectués en personne est qu'il doit être fiable, et presque instantanée. Une transaction, une fois créée par l'expéditeur, doit apparaître sur l'appareil du destinataire en une à trois secondes. Même cinq secondes peuvent être acceptables, mais du point de vue d'un utilisateur moyen exigeant un client et un marchand d'attendre maladroitement pendant quinze secondes alors qu'une transaction se fraye un chemin sur le réseau est une gêne - surtout quand des plateformes concurrentes comme Square peuvent accomplir même (mais sans les frais bas et l'universalité de Bitcoin) en moins de trois. Et pourtant, dans la pratique, c'est trop souvent l'état des transactions Bitcoin en personne en ce moment. Une transaction envoyée avec Blockchain peut prendre jusqu'à vingt secondes pour atteindre un client à proximité exécutant Bitcoin Wallet pour Android et si la transaction est non standard à certains égards (par exemple, sans frais), cela peut prendre plusieurs minutes ou même plusieurs heures. montrer.

Pour comprendre pourquoi cela se produit, il est d'abord important de comprendre le cas le plus fréquent où cela n'arrive pas: quand l'expéditeur et le receveur sont tous les deux des blockchain. Info. Blockchain. info diffère des autres portefeuilles populaires, comme Bitcoin Wallet pour Android, en ce qu'il est semi-centralisé; Bien que blockchain. info utilise toujours le même protocole Bitcoin décentralisé sous-jacent que tout le monde, les portefeuilles eux-mêmes envoient et reçoivent des transactions du reste du monde via blockchain. serveurs centralisés d'info. Les transactions sont toutes rediffusées immédiatement sur le réseau Bitcoin, ce qui ne fait aucune différence à long terme, mais à court terme, cela procure un avantage significatif. Si l'expéditeur et le destinataire utilisent tous deux blockchain. La transaction ne nécessite que deux sauts: expéditeur, blockchain. info, destinataire. La blockchain. Le serveur d'informations stocke toutes les transactions qui sont légales selon le protocole, de sorte que même les transactions avec des sorties de poussière, ou sans frais, sont relayées au récepteur sans problèmes.

Si l'un des deux utilise autre chose pour un portefeuille, la situation devient plus compliquée. La transaction doit faire beaucoup de sauts à travers le réseau Bitcoin, et être validée à chaque fois, afin d'atteindre le récepteur. Il y a aussi une autre complication. Le client bitcoind, responsable de la grande majorité du réseau Bitcoin, applique certaines règles sur les transactions qu'il souhaite relayer (par exemple, les transactions dépensant des pièces nouvellement reçues doivent avoir au moins une très petite commission), et si une transaction viole l'une de ces règles, le temps de propagation à travers le réseau Bitcoin ralentit jusqu'à une analyse. Même si une transaction ne viole aucune de ces règles, cela prend souvent jusqu'à dix secondes.

Quelles sont les conséquences de cela?Essentiellement, les services de portefeuille centralisés peuvent, dans une faible mesure, devenir leurs propres jardins clos - c'est-à-dire la balkanisation. Envoyer des bitcoins à partir de blockchain. info à blockchain. info est instantanée, comme Bitcoin Spinner to Bitcoin Spinner, mais envoi de blockchain. info à Coinbase est plus difficile. Le problème avec les jardins clos, cependant, est le vieil adage appelé loi de Metcalfe: «la valeur d'un réseau de télécommunications est proportionnelle au carré du nombre d'utilisateurs». Si blockchain. info a 50% du marché du portefeuille mobile et Bitcoin Spinner a 10%, puis blockchain. info n'est pas seulement mieux que Bitcoin Spinner à cause de toutes les fonctionnalités qui conduisent cinq fois plus d'utilisateurs à son service en premier lieu; c'est aussi mieux car il offre des transactions instantanées à un plus grand nombre d'utilisateurs. Il est clair que cela conduit naturellement au monopole.

Une solution au problème implique une couche optionnelle de centralisation. Blockchain. info propose une page, blockchain. info / pushtx, où n'importe qui peut soumettre une transaction dans blockchain. les serveurs d'info; la première étape consiste à faire en sorte que tous les autres fournisseurs de portefeuilles centralisés et les sites d'information réseau Bitcoin fassent de même. Deuxièmement, les services centralisés devraient accepter soit de pousser délibérément toutes les transactions entre elles, peut-être par des canaux spécialisés, soit même de co-localiser des serveurs dans le même centre de données. Enfin, les portefeuilles décentralisés devraient automatiquement pousser toutes les transactions vers ces hotspots de soumission de transaction en même temps que les libérer sur le réseau. Cela ne compromet en rien le Bitcoin; toute l'ancienne infrastructure reste en place, de sorte qu'un portefeuille non participant sera toujours au moins aussi rapide, sinon plus rapide qu'avant. Au lieu de cela, il ajoute une couche de «compensation» optionnelle pour aider les transactions à passer plus rapidement.

Une autre solution consiste à ajouter plus d'informations dans les demandes de paiement. Actuellement, les plateformes marchandes et les portefeuilles Bitcoin ne peuvent généralement générer que des codes QR avec deux données: l'adresse Bitcoin à payer et le montant à payer. Considérez ce qui se passerait si le protocole devait ajouter un troisième élément de données: l'adresse IP du portefeuille de réception. Ensuite, lorsque l'expéditeur scanne le code QR et paie, le portefeuille peut envoyer la transaction directement à l'expéditeur. Si le récepteur n'a pas d'adresse IP publiquement accessible (par exemple, l'adresse est masquée par NAT), un client Bitcoin qui a une adresse IP publiquement accessible peut être utilisé comme un intermédiaire. Dans ce cas, la transaction prendrait un ou deux sauts pour atteindre le récepteur - aussi vite qu'avec blockchain. info à blockchain. les transactions d'info dans le pire des cas, et encore plus vite dans le meilleur des cas.

Quelle que soit la solution que nous prendrons, des optimisations sont nécessaires pour accélérer Bitcoin. Des entreprises comme Square dépensent des millions de dollars pour rogner des centaines de millisecondes sur leur temps de transaction afin de rendre l'expérience utilisateur plus agréable. Les amateurs de technologie peuvent être heureux de résister aux luttes de transactions lentes et peu fiables au profit d'une nouvelle technologie cool, mais un utilisateur moyen entre dans l'image ce sont de petites optimisations comme celles qui font toute la différence.Bitcoin lui-même est juste sur le point de passer de la foule enthousiaste de la technologie aux premiers signes d'utilisation générale, et il est donc temps pour nous de commencer à prendre au sérieux ces points de facilité d'utilisation. L'autre solution, pour que la communauté Bitcoin dise simplement "c'est l'un des défauts d'un système décentralisé, traite-le", n'est plus acceptable.