BitVMX : Une nouvelle approche du CPU virtuel sur Bitcoin
BitVMX permet l'exécution et la vérification de programmes sur le réseau Bitcoin de manière efficace.
― 7 min lire
Table des matières
BitVMX est un nouveau CPU virtuel conçu pour faire tourner des programmes sur le réseau Bitcoin. Ça s'appuie sur un système précédent appelé BitVM. L'objectif, c'est de permettre aux gens de faire tourner divers programmes tout en s'assurant que leurs résultats peuvent être vérifiés par d'autres grâce aux caractéristiques de sécurité de Bitcoin. Ce système peut fonctionner avec les architectures informatiques existantes, ce qui le rend flexible pour différents types de calculs.
Comment ça marche BitVMX
Au cœur de BitVMX, il y a une méthode de type jeu où deux parties-le prouveur et le vérificateur-travaillent ensemble pour exécuter un programme et vérifier les résultats. Le prouveur affirme qu'il a bien exécuté le programme, tandis que le vérificateur vérifie cette affirmation. S'il y a un désaccord, ils peuvent le résoudre via un processus défini.
Caractéristiques clés
Chaînes de hachage : BitVMX utilise une méthode appelée chaînes de hachage pour garder une trace des étapes du programme. Chaque fois que le programme avance d'une étape, un hachage unique est généré en fonction de l'étape précédente et de la présente. Ça crée une chaîne de hachages facilement vérifiable.
Registres mappés en mémoire : Au lieu d'utiliser des structures de données compliquées, BitVMX simplifie la gestion de la mémoire en mappant directement les adresses mémoire à des tâches spécifiques. Ça facilite la gestion des données et l'exécution des programmes.
Protocole de défi-réponse : Ce protocole permet au vérificateur de mettre au défi les affirmations du prouveur. Si le vérificateur pense qu'il y a un problème, il peut demander au prouveur de fournir des informations précises. Si le prouveur ne peut pas donner de réponses satisfaisantes, il peut perdre l'accès à ses fonds.
Processus de vérification
LeQuand un programme est exécuté, le prouveur commence par dire qu'il l'a bien complété avec certains inputs. Le vérificateur contrôle ces affirmations. S'il remarque un potentiel problème, il peut mettre le prouveur au défi.
Étapes de la vérification
Réclamation de l'exécution du programme : Le prouveur commence par affirmer qu'il a exécuté le programme correctement.
Vérification initiale : Le vérificateur peut soit accepter cette affirmation, soit décider d'approfondir s'il suspecte des erreurs.
Recherche d'erreurs : Si le vérificateur détecte un problème, il peut lancer un processus de recherche pour découvrir exactement où se situe le problème. Ça implique de revoir les chaînes de hachage créées durant l'exécution.
Résolution des litiges : Si nécessaire, le processus peut escalader vers un examen plus détaillé des étapes d'exécution, où le vérificateur peut demander des preuves supplémentaires. Les réponses des deux parties sont enregistrées, ce qui aide à identifier les divergences.
Avantages de BitVMX
BitVMX introduit plusieurs avantages par rapport aux systèmes précédents. Voici quelques-uns :
- Efficacité : Ça streamline l'exécution des programmes et réduit la complexité de stockage des états des programmes.
- Flexibilité : Ça peut accueillir divers types de programmes venant d'architectures différentes comme RISC-V et MIPS sans nécessiter d'installations personnalisées pour chacun.
- Meilleure gestion des litiges : Le processus pour gérer les litiges est plus efficace et simple, ce qui facilite la validation des calculs sans nécessiter de ressources on-chain étendues.
Caractéristiques du CPU virtuel
Le CPU BitVMX est conçu pour représenter des calculs qui nécessitent une vérification. Voici comment il est structuré :
- Instructions : Le CPU exécute une série d'instructions, chacune capable de lire des données, d'exécuter des opérations et d'écrire des résultats. Cette simplicité aide à la vérification.
- Gestion de la mémoire : Des emplacements mémoire sont assignés pour différents types de données, et les adresses sont clairement définies pour un accès rapide.
Lien de messages
Une des fonctionnalités innovantes de BitVMX est le lien de messages, qui connecte les messages échangés durant les transactions. C'est essentiel car Bitcoin n'a pas de méthodes intégrées pour suivre l'état des transactions à travers plusieurs interactions.
Comment ça fonctionne le lien de messages
- Pré-signer les transactions : Les deux parties signent un ensemble de transactions à l'avance. Cela leur permet de s'engager à des actions spécifiques sans exécution directe on-chain.
- Défi et réponse : Quand un défi est émis, le vérificateur doit recevoir des réponses cohérentes du prouveur basées sur des termes préalablement convenus.
Extension de BitVMX
BitVMX peut également être étendu pour permettre à plus de deux parties d'interagir. C'est important pour les scénarios où plusieurs vérificateurs vérifient le travail d'un seul prouveur. Cette configuration peut renforcer la sécurité et la confiance dans le processus de vérification.
Comparaison avec d'autres systèmes
Bien que BitVMX améliore les conceptions précédentes, c'est aussi important de comprendre comment il s'intègre aux systèmes existants.
TrueBit
TrueBit a introduit des jeux de vérification dans d'autres systèmes blockchain. Ça a permis de valider des calculs hors chaîne sans les exécuter directement sur la chaîne. BitVMX adapte ce concept spécifiquement pour Bitcoin, qui a des limitations techniques différentes.
Différences avec BitVM
L'ancien BitVM était plus théorique, tandis que BitVMX est conçu pour être pratique et flexible dans des applications réelles. Il évite certaines complexités de BitVM en éliminant des structures lourdes comme les arbres de Merkle pour le suivi des états.
Défis rencontrés par BitVMX
Même avec ses avantages, BitVMX fait face à des défis. Par exemple :
- Coûts des transactions : Les utilisateurs doivent équilibrer les coûts des transactions par rapport à la complexité des opérations.
- Limitations techniques : Le langage de script de Bitcoin a des limitations qui peuvent compliquer l'implémentation d'une gestion des états plus complexe.
Directions de recherche futures
Pour améliorer encore BitVMX, les chercheurs devront explorer :
- Incitations économiques : Comprendre comment motiver les vérificateurs, les prouveurs et d'autres participants est crucial pour l'adoption.
- Applications personnalisées : Des travaux futurs pourraient impliquer de façonner BitVMX pour des cas d'utilisation spécifiques, d'ajuster les coûts de transaction et de trouver des points d'équilibre optimaux pour diverses applications.
- Robustesse dans des contextes multi-parties : Étendre le cadre pour soutenir plus de deux parties tout en assurant une communication sécurisée et efficace.
Conclusion
BitVMX marque un avancement significatif dans l'exécution et la vérification des calculs sur le réseau Bitcoin. Ça offre un moyen flexible, efficace et convivial de gérer l'exécution de programmes tout en s'assurant que les résultats peuvent être contestés et validés. Alors que la recherche continue, BitVMX a le potentiel de devenir une pierre angulaire pour les applications blockchain, permettant des contrats plus intelligents, des ponts, et des tâches computationnelles plus avancées sur Bitcoin.
Titre: BitVMX: A CPU for Universal Computation on Bitcoin
Résumé: BitVMX is a new design for a virtual CPU to optimistically execute arbitrary programs on Bitcoin based on a challenge response game introduced in BitVM. Similar to BitVM1 we create a general-purpose CPU to be verified in Bitcoin script. Our design supports common architectures, such as RISC-V or MIPS. Our main contribution to the state of the art is a design that uses hash chains of program traces, memory mapped registers, and a new challenge-response protocol. We present a new message linking protocol as a means to allow authenticated communication between the participants. This protocol emulates stateful smart contracts by sharing state between transactions. This provides a basis for our verification game which uses a graph of pre-signed transactions to support challenge-response interactions. In case of a dispute, the hash chain of program trace is used with selective pre-signed transactions to locate (via $n$-ary search) and then recover the precise nature of errors in the computation. Unlike BitVM1, our approach does not require the creation of Merkle trees for CPU instructions or memory words. Additionally, it does not rely on signature equivocations. These differences help avoid complexities associated with BitVM1 and make BitVMX a compelling alternative to BitVM2. Our approach is quite flexible, BitVMX can be instantiated to balance transaction cost vs round complexity, prover cost vs verifier cost, and precomputations vs round complexity.
Auteurs: Sergio Demian Lerner, Ramon Amela, Shreemoy Mishra, Martin Jonas, Javier Álvarez Cid-Fuentes
Dernière mise à jour: 2024-05-10 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2405.06842
Source PDF: https://arxiv.org/pdf/2405.06842
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.