As reported by @gsalgado (thanks!), the docs incorrectly state that all
sigs are compared against all pubkeys. This commit provides a corrected
description, additional details, and references in other parts of the
text where we mention multisig. (Fixes#622)
* Replace previous TX Overview image with a simplified illustration.
The previous overview image was commented out in pull #566 / commit
6afc683. New image incorporates suggestions by @saivann (thanks!)
* Add new illustration showing the specifics of outputs and inputs (and
how they're related). This replaces most of the detail lost by using a
simplified overview image
* Add two short paragraphs briefly describing the ouput and input
features, leading into the existing detailed P2PKH description
This modifies commits provided by @petertodd to use the terms "pubkey
script" and "signature script" instead of other terms.
* Rename "scriptPubKey" and "output script" to "pubkey script"
(suggested by @luke-jr). We leave a token "scriptPubKey" at the point
where we define pubkey script so that searchers can find it.
* Rename "scriptSig" to "signature script" (suggested by @luke-jr). We
also leave a token "scriptSig" at this definition point.
* Rename "redeemScript" to "redeem script"
* Defined ECDSA on secp256k1 curve as the crypto used in the Transaction
section and added references to secp256k1 private/public keys and
signatures.
* Removed "The Parts Of A Transaction" illustration by commenting it out
in the HTML. Shoehorning the pubkey/signature script terms into this
image was becoming difficult, and I'm not very fond of that
illustration anyway. I'll see if I can think of a nicer replacement
illustration for some point in the future.
* Add a short paraphrased version @petertodd's description of scripts as
generalized crypto.
* Updated all the illustrations which referred to either pubkey scripts
or signature scripts to use these terms.
* Small grammar fixes.
* Lower case #term-scriptPubKey as all our other anchor links are
lower case
* Replace script/scripts with scriptPubKey/scriptPubKeys in
_autocrossref.yaml. (Fixes `make test` errors from broken
auto-crossref links.)
* Remove contentious sentence about mining non-standard txes possibly
creating orphaned blocks and loss of block reward. Suggested by
@luke-jr (thanks!)
* Remove unnecessary value judgement ("unfortunately") against
non-standard redeemScripts. Mention that they can be used deliberately
by someone who wants to easily receive payment to a non-standard
output script. Suggested by @luke-jr (thanks!)
Based on a discussion tonight on IRC with comments from @gmaxwell,
bitcoin428, and kadoban.
* Add a new introduction to the Standard Transaction section which
explains the purpose behind standard transactions so readers
understand that these aren't limitations for limitation's sake. More
specifically, note that bug-prevention isn't the only reason for
standard transactions---thanks to @gmaxwell for explaining the forward
compatablity reason to me.
* Make it clear that isStandard() only applies to loose transactions and
that it doesn't apply to txes in blocks. Thanks to bitcoin428 for
pointing out this source of confusion.
* Make it cleare that a non-standard redeemScript is a script that would
not pass isStandard(). Thanks to kadoban for pointing out the absense
of that information.
* Correct misinformation about the dust limit. Reported by @dbilitch and
confirmed by @gmaxwell. Thanks!
* Drop reported minimum relay fee from 10,000 to 1,000 satoshis.
_includes/guide_transactions.md:
* Expand the security part of the Avoiding Key Reuse subsection to also
describe why creating more than one signature with the same private
key might be a problem. Based on feedback from @luke-jr. Thanks!
_includes/guide_transactions.md:
* Assertions that pay-to-public-key (unhashed) was "used in all coinbase
transactions" and "is more convenient" have been removed: the first
statement because its provably untrue; the second because it's debatable
(spending unhashed keys requires fewer bytes, so it might be more
convenient). Based on feedback from @TierNolan. Thanks!
_includes/guide_transactions.md:
* DOS expanded to "denial of service" to improve readability and avoid
conflation with Disk Operating System. Change based on feedback from
@luke-jr. Thanks!
_includes/guide_mining.md:
* Dropped assertion that `getblocktemplate` can't reuse an established
socket. Change based on feedback from @luke-jr. Thanks!
_includes/guide_contracts.md:
* Dropped opening sentences to Contracts section, which were a holdover
from when contracts was a subsection of Transactions. New opening
sentence is now similar to the summary sentences which open all other
sections. Change based on feedback from @mikehearn. Thanks!
* Deleted USA-centric example from second paragraph and merged remaining
parts of the first two paragraphs into a single opening paragraph with
no example. Change based on feedback from @mikehearn. Thanks!
* Removed mention of placeholder byte from multisig example. Change
based on feedback from @mikehearn. Thanks!
Thanks also (in alphabetical order) to @cbeams, @mikehearn, and
@tgeller, among others.
The last pre-squash commit was: c2b8d562aa107c7b68c60946cea14cdccc5159ad