mirror of
https://github.com/bitcoinbook/bitcoinbook
synced 2024-11-29 03:18:33 +00:00
Edited ch07_authorization-authentication.adoc with Atlas code editor
This commit is contained in:
parent
ba574db288
commit
49d9589560
@ -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)."
|
||||
|
Loading…
Reference in New Issue
Block a user