Initialement publié en anglais par StarkWare le 8 octobre, 2020
Efficacité du capital ou sécurité
Note : on définit dans cet article Optimitic Rollup par OR
L'augmentation du prix du gaz sur Ethereum au cours des derniers mois a suscité un grand intérêt pour les solutions de mise à l'échelle, et en particulier pour les solutions de mise à l'échelle de layer 2 (L2). Celles-ci peuvent être grossièrement divisées en deux familles : Les preuves de validité (Validity Proofs) et les preuves de fraude (Fraud Proofs).
Nous les avons comparées précédemment ici et ici.
Les preuves de validité comprennent les ZK-Rollups (disponibilité des données on-chain) et Validium (disponibilité des données off-chain). Plusieurs systèmes de ce type sont déjà déployés sur le Mainnet d'Ethereum, y compris le notre StarkEx.
Les preuves de fraude incluent les Optimistic Rollups (OR), et certains d'entre eux approchent des réseaux de test publics. Les OR sont la dernière génération de conceptions de preuve de fraude, et ils suivent les traces de Lightning et Plasma. Les OR sont attrayants pour tout développeur de dApp souffrant de congestion sur Ethereum, car ils promettent la possibilité de prendre le code Solidity "tel quel", et de déplacer le dApp vers un OR évolutif et peu coûteux.
Le concept de base derrière OR : seules les données tx sont envoyées à la chaîne principale. Les calculs et le stockage ne sont plus effectués sur la chaîne principale ; ils sont déplacés vers le Rollup, où les producteurs et les validateurs de blocs effectuent ce travail de calcul. L'intégrité du système est assurée en supposant qu'au moins un utilisateur détectera et signalera la fraude à la chaîne principale en temps voulu, c'est-à-dire dans le délai de contestation (DTD) d'un bloc. Une fois le DTD terminé, le bloc est considéré comme finalisé.
Ci-dessous, nous allons analyser OR du point de vue des fournisseurs de liquidité (LP) et des utilisateurs.
Supposons qu'une application aussi importante qu'Uniswap migre vers un OR de manière transparente, en portant facilement son code Solidity existant. Considérons ce bloc du point de vue des fournisseurs de liquidité et des utilisateurs.
Fournisseurs de liquidité (LP)
Comme mentionné ci-dessus, les blocs d'opérations définissent un délai de règlement des litiges (DTD), pour permettre de détecter et de signaler les fraudes. Les délais de retrait doivent s'étendre au-delà du DTD, sinon le système pourrait facilement devenir insolvable à la suite d'un vol.
Des considérations de sécurité motivent l'extension de la DTD, afin de rendre plus coûteuses des attaques telles que celle qui suit :
Nous affirmons qu'il existe un compromis entre l'efficacité du capital et la sécurité. Nous décrirons pourquoi il existe et expliquerons ses implications. Nous supposerons que la durée du DTD est d'une semaine (une proposition pour un DTD de seulement 4,5 heures a été faite ; certains considèrent que c'est dangereusement court) - notre analyse est valable que le DTD soit d'un jour ou de deux semaines - cela se traduit simplement par un point différent dans la courbe de compromis entre la sécurité et l'efficacité du capital. En fonction de la durée de la DTD, l'attaquant devra dépenser entre $Ms et $10Ms. Le montant qu'il devra dépenser ne dépend pas directement de la prime que l'attaquant cherche à obtenir - si l’OR vaut $Bs, dépenser $Ms pour une attaque est une chose rationnelle à faire.
Le coût d'opportunité a un impact considérable sur les applications numériques, en raison des actions des LP - nous avons vu des liquidités passer d'Uniswap à SushiSwap, et inversement, en quelques jours. Comparez OR-Uniswap, Uniswap sur un OR, à ZKR-Uniswap, un Uniswap-fork sur un ZK-Rollup voisin. Un LP a maintenant le choix de bloquer ses fonds dans OR-Uniswap pendant une semaine, ou dans ZKR-Uniswap pendant environ 30 minutes (le cycle de génération de la preuve). ZKR-Uniswap a un avantage fondamental, que les tokenomics ou autres incitations auront du mal à battre sur le long terme.
On nous demande souvent : Les retraits rapides ne résoudraient-ils pas le problème ? Cela ne mettrait-il pas sur un pied d'égalité OR et ZK-Rollups ?
Non. Ils amélioreraient simplement l'interface utilisateur en raccourcissant le temps de retrait, sans améliorer l'efficacité du capital : des fonds suffisants devraient être bloqués dans un smart contract L-1 pour financer tout retrait prévu pendant toute la durée du DTD.
En outre, les retraits rapides ne peuvent être utilisés que pour les actifs fongibles, et non pour les NFT. Même pour les jetons fongibles, le coût d'opportunité d'un jeton en demande pourrait être prohibitif. En fait, le coût d'opportunité est élevé exactement lorsque de nombreuses personnes veulent échanger un actif fongible en pénurie : imaginez le coût de provisionner suffisamment de YFI pour une semaine de retraits, pendant cette semaine où tout l'espace DeFi espère les échanger. Si on vous proposait de bloquer vos YFI pour cette semaine de pic d'intérêt, quel rendement attendriez-vous ?
Certains pourraient prétendre que les LP ne devraient pas s'inquiéter, car tout DeFi gravitera simplement vers un seul OR, permettant aux utilisateurs d'y faire des retraits peu fréquents et d'y effectuer des transactions à peu de frais.
Notez que cela suppose fortement qu'aucune dApp ne vivra en dehors de ce bloc : pas sur L1, pas sur les ZK-Rollups, etc.
Nous soutenons que même dans ce scénario, la sécurité de l'OR diminue à mesure que son débit augmente. Pourquoi ? Considérons la situation du point de vue d'Alice, un utilisateur.
Les OR sont confrontées à un dilemme : elles ne peuvent pas égaler l'efficacité capitalistique des ZK-Rollups, car cela nuirait à la sécurité de l’OR. Il s'agit d'un problème inhérent aux OR, et non d'un détail de conception. Pour cette raison, toute application confrontée au choix de fonctionner sur un OR ou un ZK-Rollup, préférera ce dernier, car c'est là que ses fournisseurs de liquidité iront.
Merci à Dan Robinson pour ses commentaires sur une version préliminaire de cet article.
Traduction faite par Valentin Negro