Accédez à d'autres blockchains depuis Bitcoin en toute confiance
Cet article a été publié pour la première fois sur Medium.
Auparavant, nous avons montré comment accéder aux données de la blockchain BSV à partir de contrats intelligents exécutés dessus à l'aide de SPV (vérification de paiement simplifiée). Nous étendons l'idée pour accéder à d'autres blockchains compatibles SPV.
À titre d’exemple, n’importe qui peut créer un jeton sur Bitcoin SV à condition de verrouiller BTC pendant une certaine période. Nous fournissons la toute première implémentation, qui peut servir de base à une multitude d’autres applications.
Comment fonctionne « Lock to Mint »
Récemment, il y a eu un regain d'intérêt pour le mécanisme « Lock to Mint ». Ce mécanisme facilite le verrouillage temporel des actifs Bitcoin pour créer des jetons fongibles BSV-20 sur le réseau Bitcoin.
Il s'agit d'une instanciation de l'utilisation d'un contrat intelligent pour contrôler la frappe des jetons BSV20 (v2) que nous avons introduit précédemment. Le mécanisme « Lock to Mint » sert de contrainte dans le processus de frappe de jetons du BSV-20. Le contrat garantit que l'opération de dépense doit inclure une sortie secondaire dans un délai déterminé.
une transaction « lock to mint » uniquement BitcoinPlus de détails sur le fonctionnement de ce processus dans un contexte BSV uniquement peuvent être trouvés dans cet aperçu.
Chaîne croisée
Ce contrat intelligent peut être étendu pour exiger le verrouillage temporel des fonds sur une chaîne différente prenant en charge les timelocks et SPV, comme BTC. Ceci est réalisé en validant une preuve SPV dans le contrat intelligent. Essentiellement, le contrat, avant sa frappe, vérifie l'inclusion d'une transaction verrouillée dans le temps avec les paramètres corrects (heure de verrouillage et destination du paiement) dans un bloc BTC. L'efficacité de SPV permet à cette validation d'être viable sur le plan informatique. Ceci est particulièrement intéressant pour BTC, car il présente la difficulté de hachage la plus élevée dans sa preuve de travail et rend ainsi extrêmement coûteux la production d'un en-tête de bloc valide mais faux ne faisant pas partie de la chaîne principale.
une transaction « verrouiller BTC à la monnaie »Mise en œuvre
Le code suivant est une implémentation d'un tel contrat intelligent. Nous exploitons la bibliothèque scrypt-ord pour une intégration facile des ordinaux.
Le contrat expose une seule méthode publique nommée « mint ». Supposons que nous souhaitions créer 10 nouveaux jetons.
Avant de l'appeler, nous devons construire et diffuser une transaction verrouillée dans le temps sur BTC avec le montant et la durée de verrouillage appropriés. La transaction sera un P2WSH standard pour un script de rachat au format suivant :
Une fois que cette transaction a été extraite et confirmée, nous construisons une preuve SPV pour celle-ci, composée d'une preuve Merkle et de son en-tête de bloc. Désormais, nous pouvons appeler la méthode publique en transmettant la transaction sérialisée avec la preuve et le reste des paramètres, qui sont l'adresse de destination du jeton, la clé publique de verrouillage et le montant du jeton. Pour le rendre plus fiable, nous pouvons demander plusieurs confirmations.
Ce qui suit est une telle transaction à verrouillage temporel BTC sur testnet.
70bd8b876bacd6ad9df1100f8e691bada729e28ee3d311e949868c75d0bf690b
Il est introduit dans une transaction de frappe sur le testnet Bitcoin SV.
db4d5b33eb2a095ee29ff1443613f5bc6db55c1eef724d1a5d93d0e6a2381fc7
Le code complet du contrat intelligent, ainsi qu'un test, sont disponibles sur GitHub.
Voici également deux scripts Python que nous avons utilisés pour construire une transaction pour le déploiement et le rachat d'une transaction à verrouillage temporel sur BTC.
Rallonges
Il existe de nombreuses façons d’étendre l’exemple. Il permet essentiellement à un contrat intelligent sur Bitcoin SV d'accéder à d'autres données blockchain compatibles, telles que des blocs et des transactions, sans faire confiance à un oracle. Nous énumérons quelques autres exemples ci-dessous :
- Trustless One-Way Peg-In : comme dans une sidechain, on peut envoyer du BTC à une adresse donnée et être sûr de pouvoir créer un jeton enveloppé sur Bitcoin SV. Notez que c'est un moyen en raison du manque de capacité de BTC à vérifier les preuves SPV
- Aléatoire : on peut utiliser un bloc BTC comme source d’entropie, comme son hachage de bloc, pour un jeu sur Bitcoin SV. Il est bien plus coûteux de créer de faux en-têtes que sur Bitcoin SV
Cybersécurité : la blockchain est une technologie de confiance
Nouveau sur la blockchain ? Consultez la section Blockchain pour les débutants de CoinGeek, le guide de ressources ultime pour en savoir plus sur la technologie blockchain.
