1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2024-11-25 17:38:26 +00:00

Edited ch07_authorization-authentication.adoc with Atlas code editor

This commit is contained in:
clenser 2023-10-19 19:40:22 +00:00
parent ba574db288
commit 49d9589560

View File

@ -1583,7 +1583,7 @@ transaction fees.
[[mast]]
=== Merklized Alternative Script Trees (MAST)
Using +OP_IF+, you ((("scripts", "MAST", id="script-mast")))((("MAST (merklized alternative script trees)", id="mast")))((("merklized alternative script trees (MAST)", id="merkle-mast")))((("merkle trees", "MAST", id="merkle-tree-mast")))can authorize multiple different spending conditions,
Using +OP_IF+, you ((("scripts", "MAST", id="script-mast")))((("MAST (merklized alternative script trees)", id="mast")))((("merkle trees", "MAST", id="merkle-tree-mast")))can authorize multiple different spending conditions,
but this approach has several undesirable aspects:
Weight (cost)::
@ -1719,7 +1719,7 @@ image::images/mbc3_0709.png["An alternative script tree"]
Alternative script trees only require revealing one 32-byte digest for
each level of depth between the spender's chosen script and the root of
the tree. For most scripts, this is a much more efficient use of space
in the((("scripts", "MAST", startref="script-mast")))((("MAST (merklized alternative script trees)", startref="mast")))((("merklized alternative script trees (MAST)", startref="merkle-mast")))((("merkle trees", "MAST", startref="merkle-tree-mast"))) blockchain.
in the((("scripts", "MAST", startref="script-mast")))((("MAST (merklized alternative script trees)", startref="mast")))((("merkle trees", "MAST", startref="merkle-tree-mast"))) blockchain.
****
[[pay_to_contract]]
@ -1842,7 +1842,7 @@ creating and auditing((("scriptless multisignatures", startref="scriptless-multi
[[taproot]]
=== Taproot
One reason ((("scripts", "MAST", "taproot", id="script-mast-taproot")))((("MAST (merklized alternative script trees)", "taproot", id="mast-taproot")))((("merklized alternative script trees (MAST)", "taproot", id="merkle-mast-taproot")))((("merkle trees", "MAST", "taproot", id="merkle-tree-mast-taproot")))((("taproot", id="taproot")))((("mutual satisfaction contracts", "taproot", id="mutual-satisfaction-taproot")))people choose to use Bitcoin is that it's possible to create
One reason ((("scripts", "MAST", "taproot", id="script-mast-taproot")))((("MAST (merklized alternative script trees)", "taproot", id="mast-taproot")))((("merkle trees", "MAST", "taproot", id="merkle-tree-mast-taproot")))((("taproot", id="taproot")))((("mutual satisfaction contracts", "taproot", id="mutual-satisfaction-taproot")))people choose to use Bitcoin is that it's possible to create
contracts with highly predictable outcomes. Legal contracts enforced by
a court of law depend in part on decisions by the judges and jurors
involved in the case. By contrast, Bitcoin contracts often require
@ -1938,14 +1938,14 @@ all users benefit from the increased anonymity set of outputs looking
similar to each other, that rare overhead was not considered important
by most users who participated in taproot's activation.
Support for taproot was added to Bitcoin in a soft fork that ((("scripts", "MAST", "taproot", startref="script-mast-taproot")))((("MAST (merklized alternative script trees)", "taproot", startref="mast-taproot")))((("merklized alternative script trees (MAST)", "taproot", startref="merkle-mast-taproot")))((("merkle trees", "MAST", "taproot", startref="merkle-tree-mast-taproot")))((("taproot", startref="taproot")))((("mutual satisfaction contracts", "taproot", startref="mutual-satisfaction-taproot")))activated
Support for taproot was added to Bitcoin in a soft fork that ((("scripts", "MAST", "taproot", startref="script-mast-taproot")))((("MAST (merklized alternative script trees)", "taproot", startref="mast-taproot")))((("merkle trees", "MAST", "taproot", startref="merkle-tree-mast-taproot")))((("taproot", startref="taproot")))((("mutual satisfaction contracts", "taproot", startref="mutual-satisfaction-taproot")))activated
in November 2021.
=== Tapscript
//FIXME:mention "control block" (maybe in MAST section)
Taproot ((("scripts", "MAST", "tapscript", id="script-mast-tapscript")))((("MAST (merklized alternative script trees)", "tapscript", id="mast-tapscript")))((("merklized alternative script trees (MAST)", "tapscript", id="merkle-mast-tapscript")))((("merkle trees", "MAST", "tapscript", id="merkle-tree-mast-tapscript")))((("tapscript", id="tapscript")))((("mutual satisfaction contracts", "tapscript", id="mutual-satisfaction-tapscript")))enables MAST but only with a slightly different version of the
Taproot ((("scripts", "MAST", "tapscript", id="script-mast-tapscript")))((("MAST (merklized alternative script trees)", "tapscript", id="mast-tapscript")))((("merkle trees", "MAST", "tapscript", id="merkle-tree-mast-tapscript")))((("tapscript", id="tapscript")))((("mutual satisfaction contracts", "tapscript", id="mutual-satisfaction-tapscript")))enables MAST but only with a slightly different version of the
Bitcoin Script language than previously used, the new version being
called _tapscript_. The major differences include:
@ -1983,7 +1983,7 @@ Additionally, any signature-checking operation that is not expected
Although we've looked at authorization and authentication in depth in
this chapter, we've skipped over one very important part of how Bitcoin
authenticates spenders: its signatures. We'll look at that((("scripts", "MAST", "tapscript", startref="script-mast-tapscript")))((("MAST (merklized alternative script trees)", "tapscript", startref="mast-tapscript")))((("merklized alternative script trees (MAST)", "tapscript", startref="merkle-mast-tapscript")))((("merkle trees", "MAST", "tapscript", startref="merkle-tree-mast-tapscript")))((("tapscript", startref="tapscript")))((("mutual satisfaction contracts", "tapscript", startref="mutual-satisfaction-tapscript"))) next in
authenticates spenders: its signatures. We'll look at that((("scripts", "MAST", "tapscript", startref="script-mast-tapscript")))((("MAST (merklized alternative script trees)", "tapscript", startref="mast-tapscript")))((("merkle trees", "MAST", "tapscript", startref="merkle-tree-mast-tapscript")))((("tapscript", startref="tapscript")))((("mutual satisfaction contracts", "tapscript", startref="mutual-satisfaction-tapscript"))) next in
<<c_signatures>>.
//FIXME:text "I think more information should be added concerning: tapscript in general. I think the MAST section would better serve to be condensed and integrated in the section on taproot. It should also mention how the taproot merle tree is unique (sorting the leaves, tagged hashes, etc, etc)."