Aller au contenu principal

OP_VAULT - 0XBB

Opcode 0xbb proposé dans le BIP-0345 pour Tapscript, en remplacement de OP_SUCCESS187. Il constitue le mécanisme d’un système de vault à covenant spécialisé, qui permet d’imposer un délai configurable avant toute dépense, avec possibilité de récupération en cas de compromission.

L’opcode consomme plusieurs éléments depuis la pile (du sommet vers le bas) : un <leaf-update-script-body> qui contient le corps du script de remplacement, un <push-count> qui indique le nombre d’éléments de données supplémentaires, les éléments de données correspondants, un <trigger-vout-idx> qui désigne l’index de la sortie de déclenchement, un <revault-vout-idx> qui désigne l’index d’une sortie optionnelle de « revault » (-1 en son absence), et un <revault-amount> qui spécifie le montant en satoshis à replacer dans le vault. À partir de ces éléments, l’opcode construit un script de remplacement en préfixant le <leaf-update-script-body> avec les données fournies, puis vérifie que la sortie de déclenchement possède un taptree identique à celui de l’input courant, à l’exception de la feuille en cours d’exécution qui est remplacée par ce nouveau script. Cette substitution de feuille Taproot préserve toutes les autres feuilles, y compris le chemin de récupération via OP_VAULT_RECOVER (0xbc).

L’opcode enregistre des vérifications différées pour s’assurer que la valeur de l’input est intégralement reportée entre la sortie de déclenchement et la sortie de « revault » éventuelle. Ce mécanisme permet de regrouper plusieurs inputs de vault dans une même transaction. En cas de succès, la valeur 0x01 est poussée sur la pile. Le BIP-0345 a été fermé et remplacé par le BIP-0443 (OP_CHECKCONTRACTVERIFY), qui est plus généraliste.

Termes associés :