Glossario / Protocollo e aggiornamenti
MAST
Noto anche come Merkelized Alternative Script Tree.
- Che cos'è MAST?
- MAST nasconde dietro un albero di Merkle ogni condizione di spesa che non usi, così rivelare un solo ramo quando spendi mantiene il resto privato e fuori dalla blockchain.
Specificato nel BIP-341.
L'idea precede la sua implementazione. Due proposte, BIP-114 e BIP-116, la descrissero nel 2016 e nel 2017 e nessuna delle due fu attivata; Taproot l'ha introdotta nel 2021 come taptree, le cui spese tramite script path rivelano una foglia più una prova di 32 byte per livello. Per un wallet con più percorsi di recupero, la catena viene a conoscenza solo di quello che hai effettivamente usato.
Come funziona
Un albero di script si riduce a un unico hash, e quell'hash è ciò a cui l'indirizzo si impegna.
Parti dalle condizioni che vuoi. Supponine quattro: la tua chiave di tutti i giorni, un quorum familiare di due su tre, la chiave di un avvocato dopo un anno di inattività e una chiave di emergenza custodita fuori sede. Ogni condizione è scritta come un piccolo script a sé, e ognuna viene sottoposta a hash e diventa una foglia. Le foglie vengono accoppiate e sottoposte a hash, quei risultati vengono accoppiati e sottoposti di nuovo a hash, e il processo termina in un'unica radice di 32 byte.
Spendere rivela la foglia che hai usato, il suo script e gli hash fratelli lungo il percorso da quella foglia alla radice. Due livelli di albero significano due hash fratelli, 64 byte, e chiunque può ricalcolare la radice e confermare che lo script era stato incluso nell'impegno della radice. Le altre tre condizioni non compaiono mai. Nessuno viene a sapere che esiste la chiave di un avvocato, che il quorum familiare era di due su tre o che una chiave fuori sede faceva parte dell'accordo.
Il costo cresce con il logaritmo del numero di condizioni, ed è questo che rende la struttura conveniente da usare. Un albero di 8 script aggiunge 3 hash al witness, un albero di 128 script ne aggiunge 7, e il BIP-341 consente una profondità di 128 livelli, così il blocco di controllo che accompagna una spesa tramite script path arriva al massimo a 4.129 byte.
La nomenclatura è confusa e lo è sempre stata. MAST viene sciolto come merkelized alternative script tree e come merkelized abstract syntax tree a seconda di chi scrive; il secondo viene dal BIP-114, dove l'albero conteneva pezzi di un unico script anziché un insieme di alternative. In pratica entrambi si riferiscono alla stessa costruzione.
Dove lo vedi
Ogni indirizzo Taproot che ha più di un modo di essere speso usa MAST, che il wallet usi o meno la parola.
I wallet di eredità con blocco temporale sono il caso più chiaro. Liana, per esempio, invia fondi a un indirizzo il cui taptree contiene una normale chiave di spesa e un ramo di recupero che diventa utilizzabile dopo un'attesa fissa, e una spesa normale non pubblica mai il ramo di recupero. Lightning usa la stessa forma per i suoi output di canale più recenti, tenendo nascosto il percorso di punizione durante una chiusura cooperativa.
C'è un aspetto legato alle commissioni che vale la pena conoscere prima di costruirne uno. L'equilibrio conta: una foglia che prevedi di usare spesso dovrebbe stare vicino alla cima dell'albero, perché ogni livello in più aggiunge 32 byte al witness di ogni spesa che vi passa. I wallet che ti permettono di impostare la disposizione dell'albero di solito lo fanno per te, ma un software coordinatore che riversa ogni condizione in un albero piatto ed equilibrato farà pagare al percorso comune quello delle condizioni rare.
MAST vs Taproot
MAST è l'albero; Taproot è l'albero più una via di fuga. Un design puro MAST obbligherebbe ogni spesa a rivelare uno script, così la catena saprebbe sempre che un contratto esisteva, anche se non sapesse nulla dei rami non usati.
Taproot aggiunge una chiave alla radice. L'indirizzo si impegna a una chiave pubblica interna modificata dalla radice di Merkle e, se tutti gli interessati sono d'accordo, firmano con la chiave modificata e non pubblicano altro che una singola firma. Quella spesa è indistinguibile da un pagamento di una sola persona. L'albero è ancora lì, ancora applicabile, e semplicemente non viene mai mostrato. MAST fornisce la privacy tra i rami, e Taproot fornisce la privacy tra un contratto e un pagamento ordinario.