Le modèle de transaction innovant de ZetaChain combine la simplicité et la sécurité de l'UTXO avec l'expressivité de la méthode basée sur les comptes. La conception hybride rend possible à la fois la transmission de messages entre chaînes et les contrats intelligents omnichaînes natifs qui peuvent interagir directement avec les états des chaînes externes.
Dans notre profonde analyse du marché de l'interopérabilité de la blockchain, nous reconnaissons quelques projets et propositions de blockchain qui visent à atteindre une programmabilité générique. Le problème réside dans le fait que ces projets sont soit centralisés à des degrés divers et/ou utilisent des modèles de confiance douteux. Cette situation laisse un vide important dans l'écosystème cryptographique pour une approche publique, sans permission et décentralisée de l'interopérabilité omnichaîne. ZetaChain est un pionnier de la première blockchain publique incitative et de la plateforme de contrats intelligents inter-chaînes à usage général. Une affirmation aussi audacieuse soulève un certain nombre de grandes questions sur les limites des mécanismes de « comptabilité » de la blockchain pour prendre en charge les dApps inter-chaînes et le défi de l'asynchronie. Nous aborderons tous les deux sujets dans cet article en jetant un coup d'œil sous le capot de la conception du modèle de transaction hybride de ZetaChain, alimenté par la machine virtuelle Zeta (ZVM).
Pour parvenir à une prise en charge générique des contrats intelligents omnichaînes, vous devez relever quelques défis majeurs. Tout d'abord, la communication entre chaînes hétérogènes est par nature asynchrone. Contrairement aux contrats intelligents sur une seule chaîne, telle que la machine virtuelle Ethereum (EVM), l'interrogation ou la modification de l'état d'une autre chaîne est déclenchée par des messages (observations) provenant de chaînes externes. Ce type de modèle de transaction de contrat intelligent inter-chaînes est mieux considéré comme une machine à états finis.
Ensuite, le modèle de programmation de la blockchain a une incidence sur la manière dont les contrats intelligents transmettent les messages, les données et la valeur. Historiquement, il existe deux principaux modèles de « comptabilité » pour enregistrer et modifier l'état d'une blockchain : UTXO (sortie de transaction non dépensée), qui est utilisée par Bitcoin, Ergo, Cardano et autres, et account-based, qui est utilisé par la EVM. Voici un aperçu simplifié de chaque modèle :
Figure 1: UTXO vs. Account-based models: network state visualization
La principale différence entre ces modèles réside dans leur pouvoir expressif. La nature computationnelle du modèle basé sur les comptes rend son expressivité plus élevée que celle des scripts basés sur les UTXO, qui peuvent être considérés comme un véritable modèle de vérification. Toutefois, les contrats intelligents basés sur UTXO sont généralement plus simples, plus robustes et plus efficaces en matière de stockage et de calcul, et ils présentent moins de surface d'attaque en raison des limites d'UTXO. Par exemple, dans la pratique, les scripts Bitcoin ne présentent que très rarement des bogues de sécurité involontaires, alors que les contrats intelligents Ethereum ont la réputation de contenir des exploits de plusieurs millions de dollars. De plus, dans le cas de Bitcoin, l'application implicite de l'invariant de clé par UTXO élimine le problème de la double dépense : montant total de la transaction en entrée = montant total en sortie. Ainsi, alors que l'expressivité de la programmation basée sur les comptes permet de créer facilement des dApps complexes (AMM, ICO, etc.), elle se fait au prix d'une sécurité moindre.
Si vous envisagez de proposer une plate-forme de contrat intelligent décentralisée et polyvalente, vous devez relever le défi suivant : comment étendre le modèle UTXO pour qu'il soit suffisamment expressif pour prendre en charge les dApps populaires telles qu'Uniswap-style AMM DEX, tout en restant simple et sûr ?
Quelques projets progressistes tentent de résoudre ce dilemme. Ergo a été le pionnier du modèle UTXO étendu (eUTXO), suivi de Cardona. Sur ces plateformes eUTXO, les AMM DEX peuvent être implémentés dans une certaine mesure en conservant l'état de la paire d'AMM dans un UTXO, mais cette action n'est pas sans poser de sérieux problèmes. Une seule transaction peut succéder à un bloc car une seule transaction peut dépenser cet UTXO et en créer un nouveau dans un bloc. Il en résulte une congestion des UTXO où les transactions terminées qui tentent de dépenser le même UTXO échouent et doivent attendre un bloc pour dépenser le nouvel UTXO. Cette situation n'est pas très optimale.
ZetaChain introduit une approche hybride basée sur les UTXO et les comptes qui combine les forces de chacun. En substance, il utilise UTXO pour représenter et suivre les transactions externes de la blockchain (traitées comme un UTXO synthétique), et utilise des contrats intelligents basés sur les comptes pour la logique et la gestion des états globaux partagés. Un UTXO comprend le montant de la pièce ZETA (brûlée), le montant d'une autre pièce (par exemple, BTC sur le réseau Bitcoin où il est impossible d'émettre une pièce ZETA), et un script msg (approximativement équivalent à un message ou un appel de fonction sur Ethereum). Le modèle UTXO synthétique permet à ZetaChain de jouir des avantages de la responsabilité, de la simplicité et de l'évolutivité tout en évitant la principale limite d'UTXO, à savoir l'expressivité de son script et la maladresse dans certaines applications importantes (c'est-à-dire une transaction par bloc dans un AMM).
Examinons le flux de compte UTXO hybride de ZetaChain (figure 2) :