Rejoignez-Nous sur

Traitement des paiements USDC dans Coinbase Commerce

1*78i62VJr8 kE8uRVHSmcKQ

News

Traitement des paiements USDC dans Coinbase Commerce

Un sous-produit de l’usine qui déploie les redirecteurs est que nous sommes maintenant en mesure de calculer les adresses des redirecteurs avant de les déployer dans la blockchain. Cela permet la même expérience utilisateur que le déploiement préemptif d'un contrat de transfert pour chaque commerçant, sans les frais liés au déploiement de ces contrats sur la blockchain.

Dans Ethereum, les adresses des contrats créés sont déterministes – elles peuvent être calculées à partir de l'adresse de l'expéditeur (c'est-à-dire le compte qui a créé le contrat, dans notre cas, la fabrique) et du nonce de l'expéditeur (un compteur indiquant le nombre de transactions provenant de ce compte). ). Cependant, cela ne fonctionne pas bien dans la pratique car le nonce est un compteur mondial de plus en plus important. Si un client paie à la 100e adresse générée, nous devons toujours déployer les 99 contrats initiaux pour pouvoir déployer le 100e transitaire attendu, et nous devons le faire dans un ordre déterminé. Des lacunes telles que celles-ci, dans lesquelles nous aurions besoin de déployer des contrats uniquement pour obtenir les résultats attendus, sont inévitables, car les clients peuvent créer des frais mais ne jamais les payer.

C’est un problème qui sévit depuis longtemps dans la communauté Ethereum et qui figure sur la liste de souhaits de nombreux développeurs dapp. Heureusement, l'introduction de la créer2 l'opcode dans la mise à niveau du réseau de Constantinople a résolu ce problème. Contrairement à create, qui utilise le nonce de l’émetteur en constante augmentation, create2 utilise un sel spécifié par un argument. Cela permet un certain nombre de flux de travail qui étaient auparavant impossibles ou peu pratiques – nous pouvons maintenant simuler des flux de travail complexes complètement hors chaîne; sans avoir besoin de suivre tout état au-delà du sel auto-généré. Nous ne pouvons interagir en toute sécurité avec la blockchain que lorsque nous devons procéder à un règlement dans la chaîne. Voici comment nous pouvons utiliser l'opcode create2 pour déployer un redirecteur.

create2 donne le contrôle sur les adresses des redirecteurs déployés. Les appelants peuvent désormais calculer l'adresse du redirecteur a priori, sans rien connaître de l'état actuel de la blockchain.

Notez que maintenant initForwarder prend du sel supplémentaire là où auparavant sa fonctionnalité était réalisée par le nonce implicite. Cela nous permet de décider explicitement des contrats à déployer sur la blockchain. Ainsi, si le centième client paie mais pas les 99 premiers, nous pouvons déployer le 100e transitaire de la séquence sans avoir à déployer les 99 premiers en premier.

C’est informatif de voir le code qui calcule les adresses:

L'inclusion du bytecode du contrat dans le calcul de l'adresse create2 est un élément de sécurité crucial. Cela garantit que le contrat envisagé est le seul à pouvoir être déployé à l'adresse calculée.

En plus de l'utilisation d'un sel, une caractéristique essentielle de la sécurité dans l'algorithme de génération d'adresses est l'utilisation du bytecode. Avoir le bytecode parmi les arguments garantit qu'il est impossible de déployer le «mauvais» contrat à l'adresse indiquée. Dans notre exemple, cela implique qu’il existe exactement une combinaison de destination et de sel qui peut entraîner le déploiement d’un contrat à une adresse calculée. Il est impossible pour un attaquant malveillant de déployer un contrat de sa propre logique ou de sa destination vers une adresse que nous avons déjà calculée. Par conséquent, nous pouvons présenter ces adresses non déployées aux clients et nous assurer qu'un attaquant ne pourra pas nous surpasser en déployant un contrat de leur choix à cette adresse particulière.

Cela permet de nouveaux flux de travail comme celui que nous utilisons chez Commerce. Il est maintenant possible de créer et de simuler des flux de travail immuables complètement hors chaîne, et de ne faire que l'étape de «règlement» sur la blockchain, après que le client a déjà payé sa facture.



Traduction de l’article de Bojan Joveski : Article Original

BlockBlog

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

Commenter cet Article

Commenter cet Article

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Plus dans News

Les Plus Populaires

Acheter des Bitcoin

Acheter des Alt-Coins

Sécuriser vos Cryptos

Vêtements et Produits Dérivés

Top
tristique Curabitur Donec commodo felis sit elit. ipsum dolor. risus.