Post
Topic
Board Anfänger und Hilfe
Re: [Aufklärung] Bitcoin: Privatsphäre und Anonymität - [12. MAST]
by
cygan
on 17/06/2023, 11:17:59 UTC
12. MAST (Merklized Abstract Syntax Tree)
zurück zum Inhaltsverzeichnis

Merklized Abstract Syntax Tree (MAST) ist ein zusätzlicher Vorschlag im Bitcoin Protokoll, der die Implementierung des Folgenden ermöglicht:
- Kleinere Transaktionen
- Mehr Privatsphäre
- Größerer intelligenter Vertrag (Smart Contract)

Problem: Skriptdaten werden nicht verwendet.
- Satoshi Nakamoto gab Bitcoin eine Funktion, die es Nutzern erlaubt, Programme (genannt Skripte) zu schreiben, die als dynamische öffentliche Schlüssel und Signaturen verwendet werden können.
- Wenn ein Skript angegeben wird - was die Standardeinstellung jeder Wallet ist -, erlaubt der Konsens des Bitcoin Protokolls niemandem, Ihre Bitcoin auszugeben, bis ein vorher festgelegtes Skript den Vorgang rechtfertigt.
- Derzeit müssen alle Skripte auf der Blockchain (als Ganzes) geschrieben werden.

Der Ursprung von MAST
Die Idee von MAST geht auf zwei bereits bestehende Konzepte zurück, nämlich Abstract Syntax Tree (AST) und Merkle Tree.
- AST - ist eine Möglichkeit, ein Programm zu beschreiben, indem man es in einzelne Teile aufteilt, so dass es einfacher ist, die Funktionen der einzelnen Teile zu analysieren und zu optimieren.
- Merkle Tree - ermöglicht es einem Knoten, einige Informationen zu kopieren, ohne dass alle Transaktionen kopiert werden müssen.

-snip-

Bilder von Merkle Tree

Die Verwendung des Merkle Trees (Baums) hat Vorteile bei der Überprüfung eines Blocks.
In der Merkle Tree Struktur in der obigen Abbildung muss ein Knoten zur Verifizierung von Transaktion D beispielsweise nicht alle Transaktionen A, B, C, D und E kopieren, sondern es reicht aus, die Informationen von C, AB und EEEE zu kopieren, um die Merkle Root (Wurzel) zu erzeugen. Dies hat zur Entstehung von Knoten geführt, die nicht über eine vollständige Kopie der Blockchain verfügen, was dann als vereinfachte Zahlungsverifizierung (SPV) bezeichnet wird.

Referenz: Leitfaden für Bitcoin Entwickler - https://bitcoin.org/en/developer-guide#transaction-data (D.A. Harding - 2015, 12 Januari 2016) - https://bitcoin.org/en/glossary/simplified-payment-verification.

Beispiel für Abstrakten Syntaxbaum (AST)



Beispiel für einen Merkle-Baum



Beispiel für MAST
Allice kann BTC verbrauchen (linkes Bild), oder nach drei Monaten können Bob und Charlie BTC ausgeben (rechtes Bild) - Sie müssen nur vollständig von encumbrance (Merkle root) sparen, um alle Unterschriften zu erhalten.



Vorteile der Implementierung von MAST
1. Kleinere Transaktionen
Es können beliebig viele Teilstriche hinzugefügt werden.



2. Mehr Privatsphäre
Die Vorteile dieser MAST dürften bei der Verbesserung der Privatsphäre noch optimaler wirken, wenn sie mit anderen Methoden wie generalisierten Schwellenwertbäumen (Pieter Wuilles & Gregory Maxwell), skriptlosen Skripten (Andrew Poelstra) und diskreten Protokollverträgen (Thaddeus Dryja) kombiniert werden.

3. Größerer intelligenter Vertrag (Smart Contract)
Bitcoin hat drei verschiedene Bytegrößen, die für jedes Skript gelten, abhängig von der Entwicklung der Belastung.



Mit MAST kann man die Grenze der Bytes nicht überschreiten
Zehntausend Bytes Grenze für leere Skripte, 520 Bytes Grenze für P2SH und 10.000 Bytes Grenze für SegWit.

Referenz:
- 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/
- Leitfaden für Bitcoin Entwickler  - https://bitcoin.org/en/developer-guide#transaction-data (D.A. Harding - 2015, 12 Januari 2016)
  https://bitcoin.org/en/glossary/simplified-payment-verification
- Andere Referenzen siehe Beitrag #1