paint-brush
ZKByte : une solution de mise à l'échelle Bitcoin Layer2 sans confiance utilisant Zero Knowledge et BitVMby@zkspace
490
490

ZKByte : une solution de mise à l'échelle Bitcoin Layer2 sans confiance utilisant Zero Knowledge et BitVM

ZKSpace4m2023/12/30
Read on Terminal Reader

Le réseau de couche 2 pour BTC est stratégiquement conçu pour répondre à la demande croissante de transactions plus rapides et plus efficaces au sein de l'écosystème Bitcoin. Ceci est réalisé en déchargeant certaines tâches de traitement des transactions de la blockchain principale, dans le but de réduire la congestion. Un UTXO est utilisé pour tracer tous les états de la couche 2, et un oracle de confiance est utilisé pour garantir que seuls les scripts de verrouillage/déverrouillage des scripts d'entrée/sortie suivent le protocole de couche 2.
featured image - ZKByte : une solution de mise à l'échelle Bitcoin Layer2 sans confiance utilisant Zero Knowledge et BitVM
ZKSpace HackerNoon profile picture
0-item
1-item
2-item

L’objectif principal de cette conception est d’établir un réseau de couche 2 spécialement conçu pour la blockchain Bitcoin. Le réseau de couche 2 pour BTC est stratégiquement conçu pour répondre à la demande croissante de transactions plus rapides et plus efficaces au sein de l'écosystème Bitcoin .


Ceci est réalisé en déchargeant certaines tâches de traitement des transactions de la blockchain principale, dans le but de réduire la congestion et de réduire considérablement le temps et les ressources nécessaires aux confirmations des transactions.


Reconnaissant les limites inhérentes aux capacités informatiques de la machine virtuelle (VM) Bitcoin , notre conception utilise BitVM, qui démontre le potentiel d'exécution de contrats intelligents entre deux parties. Tirant parti d'un système de défi et de réponse, BitVM présente une nouvelle approche pour améliorer la programmabilité du réseau Bitcoin, en surmontant les contraintes traditionnelles.


Pour améliorer la sécurité et l'intégrité du réseau de couche 2, la vérification de l'état est facilitée grâce à l'intégration de technologies Zero-Knowledge Proof.


Ces techniques cryptographiques avancées permettent à la couche 1 de vérifier efficacement les états du réseau de couche 2 sans compromettre la confidentialité des transactions sous-jacentes.

0. Architecture

La blockchain de couche 2 adopte un modèle de compte. Le statut de l'ensemble de la blockchain est prouvé via zkVM, basé sur le système de preuve Halo2. L'état de couche 2 est synchronisé avec le réseau Bitcoin et tous les états de couche 2 sont vérifiés par le vérificateur Zero-Knowledge Proof (ZKP) implémenté par BitVM. Un UTXO est utilisé pour tracer tous les états de la couche 2. De plus, un oracle de confiance est utilisé pour garantir que seuls les scripts de verrouillage/déverrouillage des UTXO d'entrée/sortie suivent le protocole de couche 2.



1. Comité de couche 2 et Oracle de confiance

Un groupe sélectionné d'utilisateurs forme le comité de couche 2 chargé de surveiller la santé globale du réseau de couche 2. En cas de problèmes de protocole, le comité peut intervenir pour arrêter le protocole et sauvegarder les biens de tous les utilisateurs. L'oracle de confiance est crucial pour valider l'exactitude des UTXO et des scripts d'entrée/sortie.

2. Couche 1 à Couche 2

Une seule adresse racine pivotante est créée sur le réseau Bitcoin pour représenter le protocole de couche 2. Lorsqu'un UTXO est créé et transféré à l'adresse racine pivotante, l'UTXO correspondant est effectivement « déplacé » de la couche 1 vers la couche 2. Les comptes de protocole ou de comité gèrent exclusivement le « transfert » de tous les actifs UTXO « déposés ».



3. Bloque la synchronisation avec la couche 1

Tous les états du réseau de couche 2 sont synchronisés avec la couche 1 sous forme de blocs. Pour un bloc, les informations suivantes doivent être fournies : transactions dans un bloc spécifique état de nouveaux comptes avec les transactions appliquées nouveaux UTXO pour l'état de bloc actuel (toujours prêts même si le protocole est rompu) informations de bloc du réseau Bitcoin preuve de connaissance nulle ( prouvant que la transition d'état du dernier bloc au bloc actuel est correcte) Tous ces états de la couche 1 sont enregistrés dans un historique de transactions UTXO.




3.1 En savoir plus sur la preuve

Une preuve sans connaissance est utilisée pour vérifier l'exactitude de la couche 2. La preuve tente de prouver : les transactions de bloc de la couche 2 sont signées correctement. Le nouvel état de tous les comptes est géré correctement. Tous les dépôts jusqu'à un bloc spécifique de la couche 1 sont traités correctement. Pour l'état actuel, toutes les distributions UTXO sont créées correctement.

3.2 Défi des informations de blocage

Pour garantir l'exactitude des informations de bloc spécifiées dans la couche 1, un schéma de défi et de réponse est utilisé. Les prouveurs peuvent démontrer l'exactitude des informations sur les blocs en indiquant la présence de N blocs supplémentaires après un bloc spécifique dans une période de temps verrouillée.


3.3 Amélioration du circuit ZKP et de BitVM

Comme l'illustre l'article BitVM, la vérification de preuve ZKP peut être exprimée comme un seul circuit binaire, qui peut être contesté par deux parties. Avec des transactions pré-signées, des défis peuvent être envoyés pour obtenir des engagements binaires du circuit. Si 0 et 1 sont exposés par des défis, le challenger gagne. Pour utiliser BitVM pour vérifier la vérification ZKP, il convient de prêter attention à deux choses : les mêmes engagements de circuit binaire doivent être utilisés une seule fois. C'est-à-dire que si les commentaires du même circuit sont utilisés pour de nombreux blocs, 0 et 1 d'un bit d'engagement peuvent être exposés. Pour la vérification du ZKP, outre la satisfaction du circuit, la « contribution du public » doit également être vérifiée. Pour remédier à ces deux défauts, pour chaque bloc de la couche 2, un circuit binaire unique est créé et les « entrées publiques » sont corrigées. Les scripts Bitcoin sont utilisés pour gérer le hachage et la vérification des entrées publiques. Et les engagements corrects en matière de bits d'entrée publique sont vérifiés par un oracle de confiance. En termes de satisfaction du circuit, tout membre du comité a la capacité de soulever des défis.




4. Couche 2 à Couche 1

Les actifs peuvent être déplacés de la couche 2 à la couche 1 via deux méthodes : le retrait et le retrait forcé. Les transactions de retrait sont déclenchées à partir de la couche 2 et les circuits ZKP assurent le traitement des transactions comme prévu. Les transactions de retrait forcé sont initiées depuis le réseau Bitcoin.

4.1 Transaction de retrait et de retrait forcé

Les transactions de retrait, déclenchées à partir de la couche 2, sont vérifiées à l'aide des circuits ZKP pour garantir un traitement approprié des transactions. Les transactions de retrait forcé, initiées depuis le réseau Bitcoin, doivent être incluses dans la prochaine mise à jour de l’état du bloc. 4.2 Distributions UTXO Lorsque l'état d'un bloc est mis à jour, la distribution UTXO est synchronisée. En cas d'arrêt du protocole, tous les UTXO peuvent être appliqués pour garantir la sécurité de tous les actifs des utilisateurs. Et parmi ces UTXO, seuls les UTXO à retrait ou à retrait forcé sont signés par protocole.

5. Sortie de la couche 2

Une fois que la preuve ZKP n’est PAS vérifiée, le comité doit arrêter et quitter le protocole. Si le protocole s'arrête, le comité a signé toutes les distributions UTXO spécifiées dans le dernier état de bloc de la couche 2. Avec les signatures, un utilisateur peut quitter la couche 2 sans aucune perte.





Référence

  1. BitVM : https://bitvm.org/bitvm.pdf
  2. Livre blanc Bitcoin : https://bitcoin.org/bitcoin.pdf
  3. Explication Halo2 : https://electriccoin.co/blog/explaining-halo-2/