Starknet ZKThreads : la nouvelle méthode de sharding basée sur les ZK-Proof

ZkThreads starknet

L’écosystème de Starknet est une nouvelle fois sur le point de passer à un tout autre niveau grâce au déploiement d’une nouvelle technologie : ZKThreads.

Dans cet article, on vous explique comment ZKThreads compte améliorer drastiquement la scalabilité des applications décentralisées grâce à son modèle de Sharding basé sur les capacités de Starknet.

Cet article vous est proposé en collaboration avec Starknet (en savoir plus)

Qu’est-ce que ZKThreads ?

ZKThreads est une technologie développée par StarkWare et Cartridge. Concrètement, elle vise à rendre les applications décentralisées (dApps) de Starknet bien plus scalables grâce à une méthode de sharding basée sur les preuves à divulgation nulle de connaissance (zero-knowledge proof : ZK-Proof).

Actuellement, le problème étant que la plupart des applications sur Starknet utilisent des technologies personnalisées et internes, c’est-à-dire des systèmes et protocoles développés spécifiquement pour chaque application. De fait, cela a conduit à une fragmentation de la liquidité – étant donné que les ressources et les fonds sont dispersés entre plusieurs applications isolées – mais également à une interopérabilité réduite et une mauvaise expérience utilisateur.

La technologie vient donc résoudre cette problématique en “standardisant” la manière dont les transactions et les états sont gérés et vérifiés. En utilisant des ZK-Proof (preuves ZK) et en regroupant les transactions, les ZKThreads permettent de traiter un grand nombre de transactions simultanément.

Voici quelques bénéfices que cette technologie apporte :

1. Réduction des Coûts : en regroupant et en traitant les transactions en bloc, les ZKThreads réduisent les frais que les utilisateurs doivent payer. Moins de transactions individuelles signifient des coûts plus bas pour tout le monde.

2. Amélioration de l'expérience utilisateur (UX) : grâce aux ZKThreads, passer d'une application à une autre sur la blockchain devient aussi simple que de naviguer entre des applications sur un smartphone. Pas de délais, pas de complications, juste une expérience fluide pour les utilisateurs.

3. Sécurité : les ZKThreads permettent d'exécuter des transactions directement sur le réseau Starknet lorsque c'est nécessaire. De cette manière : cela garantit que chaque transaction peut être validée immédiatement, et que tout fonctionne sans interruption et de manière sécurisée à chaque étape.

starknet starkware zkthreads

Une solution à la fragmentation et au manque d’interopérabilité sur Starknet

Avant, les applications à preuve de validité (ou ZK-Proof) faisaient face à plusieurs défis, dont l'un des problèmes principaux étant la fragmentation de la liquidité. Cela signifie que les actifs et les ressources étaient dispersés à travers différentes plateformes et applications, ce qui compliquait naturellement les échanges et les interactions. Par exemple, si vous aviez des fonds sur plusieurs applications, il était difficile de les utiliser ensemble sans devoir les transférer manuellement. Oui : c’est à la fois coûteux et inefficace.

Un autre défi important était le manque d'interopérabilité. Chaque application utilisait souvent sa propre technologie et ses propres standards, rendant la communication et la collaboration entre elles très difficiles. Imaginez devoir utiliser des applications qui ne peuvent pas “parler” entre elles. Cela rendait l'expérience utilisateur frustrante et limitait les possibilités de développement de nouvelles applications innovantes.

Vous l’aurez compris, ZKThreads vient résoudre des problématiques fondamentales qui, d’une certaine manière, freinaient l’évolution de Starknet.

C’est un peu comme avant l’apparition de la norme ERC-20 en 2015, où chaque projet devait créer sa propre blockchain pour émettre un token. L’ERC-20 a en quelque sorte standardisé le processus de création de tokens sur Ethereum. C’est d’ailleurs de cette manière qu’on a connu l’émergence des tout premiers échanges décentralisés (DEX), et même de la finance décentralisée (DeFi) en général.

Comment fonctionne ZKThreads ?

Tout d'abord, chaque application (ou dApp) utilisant un ZKThread déploie sa logique de fonctionnement dans des contrats spécifiques appelés “app contracts. Ces contrats produisent des transactions et des modifications d'état (state) qui sont regroupées dans une sous-chaîne appelée “ZKThread“.

Ensuite, ces transactions sont collectées et regroupées en blocs plus petits, appelés “sub-blocks“. Le rôle du “prover” est alors de générer une preuve cryptographique STARK (Scalable Transparent Argument of Knowledge) pour ces sous-blocs. Cette preuve atteste que les modifications d'état des transactions sont valides et correctes.

Une fois la preuve générée, elle est envoyée à un “sequencer” de niveau 2 (L2), qui vérifie la validité des modifications d'état à l'aide du ZKThread Verifier. Ce dernier est un contrat sur la blockchain Starknet qui conserve l'état canonique (officiel) de chaque application.

Le ZKThread Verifier compare la preuve avec l'état canonique enregistré. Si la preuve est valide, le Verifier accepte les modifications d'état et met à jour l'état canonique de la dApp. Si la preuve est invalide, les modifications d'état sont rejetées, et la transaction est annulée.

Cette illustration devrait vous permettre d’y voir plus clair :

zkthreads starknet sharding

En permettant ces vérifications et mises à jour continues, les ZKThreads assurent ainsi que toutes les transactions restent sécurisées et fiables, tout en permettant une plus grande flexibilité et une meilleure gestion des ressources. De même, cette architecture facilite également l'interopérabilité entre différentes applications, car elles peuvent toutes se référer à un état canonique commun.

Dans quel type de dApps ZKThreads peut être implémenté ?

Voici une liste non exhaustive des catégories de protocoles et dApps où la technologie ZKThreads peut être utilisée :

1. Échanges décentralisés (DEX)

Pour rappel, les DEX, à l’instar de Uniswap, permettent aux utilisateurs d'acheter et de vendre des crypto monnaies directement entre eux, sans intermédiaire. Actuellement, chaque transaction sur un DEX implique des frais, ce qui peut rapidement devenir coûteux.

Avec les ZKThreads, les transactions peuvent être regroupées et traitées ensemble, réduisant ainsi les frais individuels. Par exemple, vous pouvez échanger des tokens plusieurs fois dans une journée, mais ne payer des frais que lorsque vous décidez de retirer vos fonds du DEX.

2. Jeux en ligne

Imaginez un jeu en ligne comme le poker ou les échecs, où chaque mouvement ou pari nécessite une transaction blockchain. Avec les ZKThreads, ces mouvements peuvent être regroupés, et les frais ne sont payés qu'à la fin de la partie.

Cela rend les jeux plus abordables et permet une expérience de jeu plus fluide. Vous pouvez jouer plusieurs parties sans vous soucier des coûts de transaction à chaque coup.

5. Applications d'intelligence artificielle et réseaux sociaux

Les applications d'intelligence artificielle (IA) et les réseaux sociaux peuvent également bénéficier de ZKThreads. Par exemple, une IA en ligne qui analyse et fournit des recommandations peut utiliser ZKThreads pour traiter les données de manière bien plus sécurisée et efficace.

De même, un réseau social peut utiliser cette technologie pour assurer que toutes les interactions et transactions entre utilisateurs sont vérifiées et sécurisées, améliorant ainsi la confiance et la sécurité sur la plateforme.

Nil Foundation & zkSharding

La Nil Foundation est l'un des premiers projets qui implémentera une technologie similaire aux ZKThreads au sein de son infrastructure on-chain.

Concrètement, Nil Foundation est un layer 2 d'Ethereum basé sur une architecture de sharding à preuve de connaissance zéro (zkSharding). Cette technologie permet une scalabilité horizontale en répartissant l'état de la blockchain sur plusieurs “shards d'exécution“, chacun produisant des preuves cryptographiques pour vérifier les transitions d'état intra-shard.

nil foundation sharding zkthreads

Un shard de consensus synchronise ces shards d'exécution et produit une preuve maître envoyée à Ethereum pour vérification de l'état global.

Chaque shard d'exécution de Nil Foundation génère des preuves cryptographiques pour ses propres transitions d'état. Ces preuves sont ensuite vérifiées par un protocole de consensus global basé sur HotStuff, garantissant la synchronisation et la sécurité des transactions entre les shards.

La technologie Zkthreads de Starknet rendra ce processus encore bien plus efficace.