12. MAST (Merklized Abstract Syntax Tree)
powrót do spisu treści
Merklized Abstract Syntax Tree (MAST) to dodatkowa propozycja w protokole Bitcoin, która umożliwia wdrożenie następujących funkcji:
- Mniejsze transakcje
- Więcej prywatności
- Większy inteligentny kontrakt (Smart Contract)
Problem: Dane skryptu nie są używane.
- Satoshi Nakamoto dał Bitcoinowi funkcję, która pozwala użytkownikom pisać programy (zwane skryptami), które mogą być używane jako dynamiczne klucze publiczne i sygnatury.
- Po określeniu skryptu - co jest domyślnym ustawieniem każdego portfela - konsensus protokołu Bitcoin nie pozwala nikomu wydawać Bitcoinów, dopóki wcześniej określony skrypt nie uzasadni operacji.
- Obecnie wszystkie skrypty muszą być pisane na blockchainie (jako całości).
Pochodzenie MAST
Idea MAST nawiązuje do dwóch istniejących koncepcji, a mianowicie Abstract Syntax Tree (AST) oraz Merkle Tree.
- AST - to sposób opisu programu poprzez podzielenie go na poszczególne części, dzięki czemu łatwiej jest analizować i optymalizować funkcje poszczególnych części.
- Merkle Tree - pozwala węzłowi na kopiowanie niektórych informacji bez konieczności kopiowania wszystkich transakcji.
-ciach-
Zdjęcia z Merkle TreeUżycie
Merkle Trees ma zalety podczas sprawdzania bloku.
W strukturze
Merkle Tree na powyższym rysunku, węzeł weryfikujący transakcję D, na przykład, nie musi kopiować wszystkich transakcji A, B, C, D i E, ale wystarczy skopiować informacje z C, AB i EEEE, aby utworzyć
Merkle Root. Doprowadziło to do pojawienia się węzłów, które nie mają pełnej kopii blockchainu, co jest następnie określane jako
uproszczona weryfikacja płatności (SPV).
Odnośnik: Przewodnik dla programistów Bitcoin - https://bitcoin.org/en/developer-guide#transaction-data (D.A. Harding - 2015, 12 Januari 2016) - https://bitcoin.org/en/glossary/simplified-payment-verification.
Przykład abstrakcyjnego drzewa składni (AST)

Przykład Merkle Tree

Przykład dla MAST
Allice może zużyć BTC (obrazek po lewej) lub po trzech miesiącach Bob i Charlie mogą wydać BTC (obrazek po prawej) - wystarczy w pełni zaoszczędzić z encumbrance (Merkle root), aby uzyskać wszystkie podpisy.

Zalety wdrożenia MAST
1. Mniejsze transakcje
Można dodać dowolną liczbę znaków ukończenia.

2. więcej prywatności
Zalety tego MAST powinny działać jeszcze bardziej optymalnie w zakresie poprawy prywatności w połączeniu z innymi metodami, takimi jak uogólnione drzewa progowe (Pieter Wuilles & Gregory Maxwell), skrypty bezskryptowe (Andrew Poelstra) i dyskretne kontrakty protokołów (Thaddeus Dryja).
3. większy inteligentny kontrakt (Smart Contract)
Bitcoin ma trzy różne rozmiary bajtów, które mają zastosowanie do każdego skryptu, w zależności od rozwoju obciążenia.

W MAST nie można przekroczyć limitu bajtów
Limit dziesięciu tysięcy bajtów dla pustych skryptów, limit 520 bajtów dla P2SH i limit 10 000 bajtów dla SegWit.
Referencje:
- https://github.com/jl2012/bips/blob/mast/bip-mast.mediawiki
- https://github.com/bitcoin/bips/blob/master/bip-0114.mediawiki
- http://www.mit.edu/~jlrubin/public/pdfs/858report.pdf
- https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f
- https://www.youtube.com/watch?v=Phn_Im2K_PY
- https://bitcoinops.org/en/topics/mast/
- https://themoneymongers.com/merkelized-abstract-syntax-tree-mast/
- https://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2017-09-07-merkleized-abstract-syntax-trees/
- Przewodnik dla programistów Bitcoin - https://bitcoin.org/en/developer-guide#transaction-data (D.A. Harding - 2015, 12 Januari 2016)
https://bitcoin.org/en/glossary/simplified-payment-verification
- Inne referencje zobacz artykuł #1