Le sharding divise une blockchain en fragments plus petits appelés shards. Chaque shard traite ses propres transactions et stocke ses propres données. Les shards communiquent entre eux via une couche de coordination. L'objectif est le parallélisme. Au lieu qu'une seule chaîne traite chaque transaction, plusieurs chaînes les traitent simultanément. Le débit augmente avec le nombre de shards. La feuille de route d'Ethereum inclut le sharding, mais les rollups sont privilégiés comme solution de mise à l'échelle à court terme.
Le sharding est techniquement complexe. Diviser une chaîne revient à diviser sa sécurité. Si un seul shard est compromis, l'ensemble du réseau est menacé. La communication entre les shards engendre de la latence et de la complexité. Les validateurs doivent être affectés aux shards de manière aléatoire et régulièrement renouvelés afin d'éviter toute collusion. La conception doit garantir qu'un attaquant ne puisse pas concentrer sa puissance sur un seul shard et en prendre le contrôle. La proposition de danksharding d'Ethereum combine le sharding et les rollups. Les shards stockent les données des rollups mais n'exécutent pas les transactions. Les rollups gèrent l'exécution, tandis que le sharding assure la disponibilité des données. Cette répartition des tâches est plus simple et plus sûre qu'un sharding avec exécution complète.
Compromis liés au partitionnement
- Débit — évolue en fonction du nombre de partitions
- Complexité — la communication inter-shards est difficile
- Sécurité — chaque fragment a besoin d'un nombre suffisant de validateurs
- Disponibilité des données — les fragments doivent publier des données à des fins de vérification
Le partitionnement n'est pas une solution miracle. C'est un projet d'ingénierie pluriannuel complexe. Les rollups permettent d'assurer la mise à l'échelle dès aujourd'hui. Le partitionnement, c'est pour l'avenir.
Comments
No comments yet. Be the first to share a thought.
Leave a comment