Author

Topic: [INFO - DISCUSSION] MAST (Merkelized Alternative Script Tree) (Read 114 times)

legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
So far, nobody has come up with a good use case for MAST and really Taproot scripts in general.

That's not true. Why don't you check PTLC (Point time lock contract) for LN?

I was thinking in terms of on mainnet, so I guess the LN details slipped from of my mind.
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
the current version of the proposal no longer implements abstract syntax trees
Can you provide a link to this current version of the protocol?
✂️

unfortunately i can't find a clear source about the said renaming or not implementing of abstract syntax trees Tongue

So what this basically means is, that you can't use merkle roots as scriptPubkeys anymore, and that it's replaced with something else?

Although, we have a form of merkle hashing of script conditions inside Taproot scripts. I believe they also use MASTs but not in the way the document originally proposed how MASTs should be.

So far, nobody has come up with a good use case for MAST and really Taproot scripts in general.
legendary
Activity: 2310
Merit: 4313
🔐BitcoinMessage.Tools🔑
unfortunately i can't find a clear source about the said renaming or not implementing of abstract syntax trees Tongue
To know more about the history of MAST and its renamings, you should definitely check these transcripts: https://diyhpl.us/wiki/transcripts/london-bitcoin-devs/2020-07-21-socratic-seminar-bip-taproot/

Here they (Peter Wulle and others) are talking about the MAST acronym reconsideration:

Quote
MF: Some of the interesting stuff that I saw was this tail call stuff. An implicit tail call execution semantics in P2SH and how “a normal script is supposed to finish with just true or false on the stack. Any script that finishes execution with more than a single element on the stack is in violation of the so-called clean-stack rule and is considered non-standard.” I don’t think we have anybody on the call who has any more details on those BIPs, the Friedenbach and Johnson Lau work. There was also Jeremy Rubin’s paper on Merklized Abstract Syntax Trees which again I don’t think Jeremy is here and I don’t think people on the call remember the details.

PW: One comment I wanted to make is I think what Russell and I talked about originally with the term MAST isn’t exactly what it is referred to now. Correct me if I’m wrong Russell but I think the name MAST better applies to the Simplicity style where you have an actual abstract syntax tree where every node is a Merklization of its subtree as opposed to BIP 114, 116, BIP-Taproot, which is just a Merkle tree of conditions and the scripts are all at the bottom. Does that distinction make sense? In BIP 340 we don’t use the term MAST except as a reference to the name because what it is doing shouldn’t be called MAST. There is no abstract syntax tree.

MF: To clarify all the leaves are at the bottom of the trees, as far down as you need to go.

PW: I think the term MAST should refer to the script is the tree. Not you have a bunch of trees in the leaves which is what modern MAST named proposals do.

RO: This is a good point. Somebody suggested the alternative reinterpretation of the acronym as Merklized Alternative Script Trees which is maybe a more accurate description of what is going on in Taproot than what is going on in Simplicity where it is actually the script itself that is Merklized rather than the collection of leaves.
legendary
Activity: 3122
Merit: 7618
Cashback 15%
the current version of the proposal no longer implements abstract syntax trees
Can you provide a link to this current version of the protocol?
✂️

unfortunately i can't find a clear source about the said renaming or not implementing of abstract syntax trees Tongue
legendary
Activity: 978
Merit: 1080
the current version of the proposal no longer implements abstract syntax trees
Can you provide a link to this current version of the protocol?

I only found this mailing list message [1] where Anthony Towns states a preference for "merkelized alternative script tree".

[1] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-November/016500.html
legendary
Activity: 3122
Merit: 7618
Cashback 15%
✂️
I wonder where your alternative acronym originated...
✂️

this is correct but since the current version of the proposal no longer implements abstract syntax trees, the name was changed in 2018 and 'abstract' became 'alternative'

https://river.com/learn/terms/m/merkelized-alternative-script-tree-mast
https://www.bydfi.com/blog/learn/glossary/merkelized-alternative-script-tree-mast/
legendary
Activity: 978
Merit: 1080
MAST was introduced in BIP 114 [1] as standing for Merkelized Abstract Syntax Tree
while the latter AST is a standard notion in computer science [2].
I wonder where your alternative acronym originated...

[1] https://github.com/bitcoin/bips/blob/master/bip-0114.mediawiki

[2] https://en.wikipedia.org/wiki/Abstract_syntax_tree
legendary
Activity: 3122
Merit: 7618
Cashback 15%
unfortunately i couldn't find a suitable thread for this topic (respectively a thread from ETFbitcoin is unfortunately already locked) and so i open this one to present you 4 slides about the said MAST topic.
these illustrate us perhaps better and explain us visually, how this method works in the Bitcoin protocol
this thread is also intended to stimulate further discussion and exchange of information Smiley


Jump to: