Post
Topic
Board Archival
Re: Кoнфiдeнцiйнicть тa aнoнiмнicть Bitcoin
by
DrBeer
on 28/03/2024, 10:34:40 UTC
12. MAST (Merklized Abstract Syntax Tree)
повернутися до змісту

Merklized Abstract Syntax Trees (MAST) - це додаткова пропозиція, запропонована в протоколі Bitcoin, яка дозволяє реалізувати наступне:
- Менший розмір транзакцій
- Більше конфіденційності
- Більший смарт-контракт.

Проблема: Не використовуються дані сценарію.
- Сатоши Накамото надав Біткоїну функцію, яка дозволяє користувачам писати програми (так звані скрипти), які можна використовувати в якості динамічних публічних ключів і підписів.
- Коли ви вказуєте скрипт - який за замовчуванням є в кожному гаманці - Консенсус щодо протоколу Біткоїн не дозволить нікому витрачати ваші біткоїни, доки заздалегідь визначений скрипт не виправдає цей процес.
- В даний час всі сценарії повинні бути написані на блокчейні (в цілому).

Походження MAST
Ідея MAST походить від двох раніше існуючих концепцій, а саме Абстрактні синтаксичні дерева (AST) і Дерева Меркла.
- АСТ - це спосіб описати програму, розбивши її на окремі частини, щоб її було легше аналізувати, а також оптимізувати функції кожної з них.
- Дерево Меркла - дозволяє вузлу копіювати деяку інформацію без необхідності копіювання всіх транзакцій.

-snip-

Зображення дерева Меркле

Використання дерева Меркла має певні переваги з точки зору перевірки блоку.
Наприклад, в структурі дерева Меркла на малюнку вище, щоб перевірити транзакцію D, вузлу не потрібно копіювати всі транзакції A, B, C, D і E, а достатньо скопіювати інформацію C, AB і EEEE, щоб отримати корінь Меркла. Це призвело до появи вузлів, які не мають повної копії блокчейну, що отримало назву спрощена перевірка платежів (SPV).

Посилання: Bitcoin Developer Guide - https://bitcoin.org/en/developer-guide#transaction-data (D.A. Harding - 2015, 12 Januari 2016) - https://bitcoin.org/en/glossary/simplified-payment-verification.

Приклад Абстрактного синтаксичного дерева



Приклад Дерева Меркла



Приклад MAST
Аліса може витратити BTC (ліве зображення), або через три місяці Боб і Чарлі можуть витратити BTC (праве зображення) - вам потрібно лише повністю врятуватися від обтяження (корінь Меркла), щоб отримати всі підписки.



Переваги впровадження MAST
1. Менші транзакції
Ви можете додати стільки підписів, скільки хочете.



2. Більше конфіденційності
Переваги цього MAST, ймовірно, будуть працювати більш оптимально в імпровізації конфіденційності в поєднанні з іншими методами, такими як узагальнені порогові дерева (Pieter Wuille's & Gregory Maxwell), безскриптові сценарії (Andrew Poelstra) і дискретні лог-контракти (Thaddeus Dryja).

3. Більший смарт-контракт
Біткоїн має три різних розміри байт, які застосовуються до кожного сценарію в залежності від розвитку обтяження.



З MAST ви не можете перевищити ліміт байт
Десять тисяч байт для порожніх скриптів, 520 байт для P2SH і 10 000 байт для SegWit.

Посилання:
- 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/
- Посібник для розробників Bitcoin - https://bitcoin.org/en/developer-guide#transaction-data (D.A. Harding - 2015, 12 Januari 2016)
  https://bitcoin.org/en/glossary/simplified-payment-verification
- Інші посилання дивіться пост #1