Initialement publié en anglais par StarkWare le 22 Octobre, 2020
Déplacer des fonds entre les différents L2 avec le minimum de frictions
Les solutions de scaling pour les L2 évoluent rapidement. Il existe déjà plusieurs systèmes de preuve de validité sur Mainnet, ainsi que des systèmes de preuve de fraude sur testnet. Les solutions L2 résolvent les problèmes de scalabilité, mais elles le font à un coût: elles peuvent briser ou diminuer diverses caractéristiques auxquelles on s’attend en travaillant strictement sur L1. Nous ne nous attendons pas à ce qu’une seule solution L2 les règle tous : les besoins des applications nécessitant de la scalabilité sont variés. Les applications choisiront des solutions dans un espace de conception L2 riche.
Avant d’aller plus loin, définissons deux termes importants :
Interopérabilité : C’est la possibilité de permettre aux utilisateurs de transférer efficacement des fonds de l’app1 (l’environnement Origine) à l’app2 (l’environnement Destination).
Composabilité : C’est la possibilité d’envoyer une transaction impliquant des opérations sur l’app_1, app_2,. . . , app_n.
Note : la composabilité fera l’objet d’un autre post.
En plus de ces définitions, nous nous appuierons sur une version renforcée de Conditional-Tx, un primitif important, qui permettra l’interopérabilité.
Il s’agit d’un module cryptographique (nous avons d’abord parlé de ce sujet ici) utilisé pour implémenter l’interopérabilité pour les blockchains permissionless. Une Conditional-Tx est une transaction conditionnée à un événement (par exemple un paiement, un changement d’état) se produisant. Conceptuellement, nous définissons une Conditional-Tx dans l’environnement Origine, et il devient valide une fois que sa condition est satisfaite dans un autre environnement (généralement, l’environnement Destination).
En l’absence d’une meilleure solution, l’utilisateur a toujours la possibilité de transférer naïvement des fonds de l’Origine L2 vers L1, et de là vers la Destination L2. Cette approche est à la fois lente et coûteuse, et elle le deviendra encore plus à mesure que la demande d’interopérabilité augmentera.
Nous devons faire mieux. En particulier, nous prévoyons l’approche suivante.
Répondre au besoin des utilisateurs de retirer rapidement des fonds de StarkEx, un système L2, vers L1. Il ne s’agit pas seulement de l’adresse L1 de l’utilisateur, mais plutôt de toute destination sur L1, tel que Compound, Aave, etc. Il permet aux utilisateurs de retirer des fonds en « Blockchain Time », indépendamment de la fréquence avec laquelle StarkEx prouve des lots de transactions.
Étude de cas : Alice souhaite déplacer 1 ETH de son compte dYdX sur L2, vers son adresse L1.
Circuit : (1) Alice donne au LP une Tx conditionnelle pour 1 ETH (+ les frais du LP), à condition que le LP transfère 1 ETH à l’adresse L1 d’Alice. (2) Après que le LP paie Alice sur le L1, la Tx conditionnelle devient valide, et (3) le LP la soumet à l’Opérateur, pour qu’il l’inclue dans le lot suivant qu’il prouve. (4) Une fois que la preuve suivante est soumise sur L1 et vérifiée, le solde L2 du LP reflète le transfert de fonds d’Alice.
Rééquilibrage périodique : Le LP doit périodiquement réapprovisionner les fonds de son compte L1 en baisse, à partir des fonds accumulés sur son compte L2.
Les premiers déploiements StarkEx hébergeront chacun une seule application. Dans cette phase, nous souhaitons permettre aux utilisateurs de transférer rapidement des fonds entre ces différentes applications. Tout comme les retraits rapides, nous voulons minimiser les coûts on-chain pour les utilisateurs, et leur épargner la nécessité d’attendre que le lot suivant soit testé.
Étude de cas : Alice souhaite déplacer 1 ETH de son compte dYdX (L2_1) vers son compte DeversiFi (L2_2).
Circuit :
Rééquilibrage périodique : Le LP doit rééquilibrer périodiquement les fonds de ses L2_1 et L2_2, selon le flux net de fonds entre ces deux systèmes.
Le principal coût du soutien à l’interopérabilité consistera à payer aux PL leurs coûts d’investissement ; il faut noter que ces coûts d’investissement s’étendent sur une période très limitée, à savoir le temps qui s’écoule entre la fourniture de liquidités à l’utilisateur et le traitement du lot suivant par l’opérateur. Nous prévoyons que ce délai commencera à quelques heures (au plus) et diminuera ensuite au temps de génération de preuves (minutes) à mesure que la cadence – dans toutes les applications StarkEx – augmente.
Développer la phase II en permettant le transfert de fonds à travers n’importe quelle solution de L2, qu’il s’agisse d’un système de validité ou d’un système de fraude (Optimistic Rollups, Plasma). Il convient de rappeler ici l’inconvénient inhérent à l’efficience du capital auquel les systèmes seront confrontés lorsqu’ils prendront en charge une solution d’interopérabilité utilisant les LPs (voir ici).
Nous exposons maintenant le modèle de confiance sur lequel nous nous appuyons.
Pour les utilisateurs
Entièrement trustless
Pour les LP
Le LP doit faire confiance à l’Opérateur (dans l’environnement d’origine) pour inclure leur Conditional-Tx valide, c’est-à-dire ne pas les censurer, dans le prochain lot traité. Cette exigence de confiance peut être supprimée de plusieurs façons.
Si la Conditional-Tx du LP n’est pas traité rapidement par l’opérateur, le LP peut :
Pour en savoir plus, regardez Tom Brand’s Lecture on L2 Scaling – Interoperability with Shared State à la conférence Liquidity 2020 (inscription requise).
¹Plus tard, il s’agira probablement de l’une des rares options de déploiement. Nous imaginons un monde où différentes applications peuvent avoir des préférences différentes, à cet égard.
Traduction faite par @Theyozz