4 ms·
The other half of the Taproot update besides Schnorr signatures is support for MASTs: Merklized Abstract Syntax Trees. This allows you to create scripts (smart
by nybble41 5y ago
The other half of the Taproot update besides Schnorr signatures is support for MASTs: Merklized Abstract Syntax Trees. This allows you to create scripts (smart contracts) where only the used part of the script needs to be revealed when the funds are transferred. Other parts which were not used—for example, the clauses related to recovering funds in the event of a non-cooperating peer in a Lightning channel when the channel is closed normally—need not be included in the transaction, which both improves privacy and reduces the transaction size (and thus also the fees).
- UncleEntity 5y agoSo, basically, a dead code elimination scheme? I do wonder how it could ensure the code running is the actual code signed for as its hash would be different though.
- nullc 5y agoBecause the code is rearranged into a top level arbitrary tree ORs and the hashing commits to this tree. At signing time, the signer reveals a hash for every non-taken branch, so that the commitment still checks that leaf being executed was an admissible one. The dead-code elimination goes further than that, because at the top level this hash root is hidden inside a public key which can be a key controlled by all the participants jointly (or some subset if appropriate). At signing time if these top level parties are available and cooperate they can just sign, and no script is ever revealed, it's impossible for third parties to tell it was ever there-- saving resources and preserving privacy. (And the possibility to complete the transaction using the script means they don't gain from failing to cooperate)