Aller au contenu
buybitcoinsmart

Glossaire / Protocole et mises à jour

MAST

Aussi appelé Merkelized Alternative Script Tree.

Qu'est-ce que MAST ?
MAST dissimule derrière un arbre de Merkle chaque condition de dépense que vous n'utilisez pas, de sorte que révéler une seule branche au moment de dépenser garde le reste privé et hors de la blockchain.

Spécifié dans BIP-341.

L'idée précède son déploiement. Deux propositions, le BIP-114 et le BIP-116, l'ont décrite en 2016 et en 2017 et ni l'une ni l'autre n'a été activée ; Taproot l'a intégrée en 2021 sous le nom de taptree, dont les dépenses par chemin de script révèlent une feuille plus une preuve de 32 octets par niveau. Pour un portefeuille doté de plusieurs chemins de récupération, la chaîne n'apprend jamais que celui que vous avez réellement emprunté.

Comment cela fonctionne

Un arbre de scripts se réduit à un seul hachage, et c'est ce hachage que l'adresse engage.

Partez des conditions que vous voulez. Par exemple quatre : votre clé du quotidien, un quorum familial de deux sur trois, la clé d'un avocat après un an d'inactivité, et une clé de secours conservée hors site. Chaque condition est écrite comme son propre petit script, et chacune est hachée en une feuille. Les feuilles sont appariées et hachées, ces résultats sont appariés et hachés à nouveau, et le processus s'achève sur une racine de 32 octets.

La dépense révèle la feuille utilisée, son script, et les hachages frères le long du chemin qui va de cette feuille à la racine. Deux niveaux d'arbre signifient deux hachages frères, 64 octets, et n'importe qui peut recalculer la racine et confirmer que le script y était engagé. Les trois autres conditions n'apparaissent jamais. Personne n'apprend qu'une clé d'avocat existe, que le quorum familial était de deux sur trois, ou qu'une clé hors site a un jour fait partie de l'arrangement.

Le coût croît avec le logarithme du nombre de conditions, et c'est ce qui rend la structure utile. Un arbre de 8 scripts ajoute 3 hachages au témoin, un arbre de 128 scripts en ajoute 7, et le BIP-341 autorise une profondeur de 128 niveaux, de sorte que le bloc de contrôle qui accompagne une dépense par chemin de script plafonne à 4 129 octets.

La nomenclature est chaotique, et l'a toujours été. MAST correspond à merkelized alternative script tree et à merkelized abstract syntax tree selon qui écrit ; la seconde vient du BIP-114, où l'arbre contenait des morceaux d'un seul script plutôt qu'un ensemble d'alternatives. Les deux renvoient à la même construction en pratique.

Où le voit-on

Chaque adresse Taproot qui offre plus d'une façon de la dépenser fait tourner MAST, que le portefeuille emploie le mot ou non.

Les portefeuilles d'héritage à verrouillage temporel en sont le cas le plus clair. Liana, par exemple, alimente une adresse dont le taptree contient une clé de dépense normale et une branche de récupération utilisable après un délai fixe, et une dépense normale ne publie jamais la branche de récupération. Lightning utilise la même forme pour ses sorties de canal plus récentes, en gardant le chemin de sanction caché pendant une fermeture coopérative.

Il y a un aspect lié aux frais à connaître avant d'en construire un. L'équilibre compte : une feuille que vous comptez utiliser souvent doit se situer près du sommet de l'arbre, car chaque niveau supplémentaire ajoute 32 octets au témoin de chaque dépense qui la traverse. Les portefeuilles qui vous laissent définir la disposition de l'arbre le font généralement pour vous, mais un logiciel coordinateur qui verse chaque condition dans un arbre équilibré à plat fera payer au chemin courant le prix des chemins rares.

MAST vs Taproot

MAST est l'arbre ; Taproot est l'arbre plus une issue de secours. Une conception MAST pure obligerait chaque dépense à révéler un script, de sorte que la chaîne apprendrait toujours qu'un contrat existe même si elle n'apprenait rien des branches inutilisées.

Taproot ajoute une clé à la racine. L'adresse engage une clé publique interne ajustée par la racine de Merkle, et si toutes les parties concernées sont d'accord, elles signent avec la clé ajustée et ne publient rien d'autre qu'une seule signature. Cette dépense est indistinguable d'un paiement d'une personne. L'arbre est toujours là, toujours doté de force exécutoire, et simplement jamais montré. MAST fournit la confidentialité entre les branches, et Taproot fournit la confidentialité entre un contrat et un paiement ordinaire.

À ne pas confondre avec

Questions fréquentes

Une dépense MAST coûte-t-elle plus cher qu'une dépense normale ?

Oui, une dépense par chemin de script paie le script révélé plus 32 octets pour chaque niveau de l'arbre. L'économie se mesure par rapport à l'alternative, qui consiste à publier chaque condition de dépense que vous avez jamais écrite.

MAST est-il une mise à niveau distincte que je dois activer ?

Non. MAST est arrivé à l'intérieur de Taproot sous la forme du taptree, donc tout portefeuille qui crée une adresse bc1p avec plus d'une condition de dépense l'utilise déjà.

À lire ensuite

Termes associés

Plus de termes : Protocole et mises à jour

Lire cette page en anglais