Commit graph

19 commits

Author SHA1 Message Date
David A. Harding
0af6ef09ff
Dev Docs: Detail Transaction Format
Provides a detailed description of the transaction format, replacing an
example hexdump taken from the wiki.

I'm putting this in the transaction section as the format is necessary
for the creation of txids, which are used as merkle leaves (so are
covered by consensus rules).  However, this is also the format used by
several P2P network messages to transmit transactions, so I'll be
linking back to it from there as I document those messages.
2014-11-02 22:21:36 -05:00
David A. Harding
1ec71148da
Dev Docs Correction: CHECKMULTISIG Requires Sigs In Same Order As PubKeys
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)
2014-10-28 21:33:26 -04:00
David A. Harding
69125fd86c
Link Dust Limit (546 sat) To Bitcoin Core Commit 614c196 (closes #592) 2014-10-03 11:34:08 -04:00
David A. Harding
e26b0e3819
Revise TX Overview Image
* 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
2014-10-01 18:40:38 -04:00
David A. Harding
6b4e8e3a66
Remove reference to removed image. Thanks @garethtdavies! (fixes #576) 2014-09-25 09:23:01 -04:00
David A. Harding
6afc6835bf
Use Terms "Pubkey Script" And "Signature Script"
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.
2014-09-20 15:07:42 -04:00
David A. Harding
89cb2fff08 Small fixes to scriptPubKey/scriptSig pull
* 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.)
2014-09-20 08:42:07 -04:00
Peter Todd
9183f98bc1 Fix incorrect usage of 'script' rather than 'scriptPubKey'
This is causing quite a bit of confusion, for example by people looking
in the Bitcoin Core sourcecode and seeing the term 'scriptPubKey'
instead.
2014-09-20 08:35:39 -04:00
David A. Harding
cb5e430d86
Mention nLockTime In Locktime Section For Those Searching By String 2014-06-14 08:04:46 -04:00
David A. Harding
b55fae9451
Standard Tx Modifications
* 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!)
2014-05-31 10:51:40 -04:00
David A. Harding
f33ea7196a
The "Why" For Standard Transactions, Plus Std Tx Tweaks
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.
2014-05-30 23:18:17 -04:00
David A. Harding
f022b19a50
Update Info About Minimum Fees
* 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.
2014-05-24 23:50:10 -04:00
Saivann
c7eed3e444 Replace P2PH by P2PKH in devel-docs 2014-05-14 00:21:00 -04:00
David A. Harding
70d871d43e Merge pull request #395 from harding/docsupdate-sigsecurity
Devel Docs: Add Comparison-Based Attacks To Reasons Not To Reuse Keys
2014-05-13 09:12:47 -04:00
David A. Harding
1885c15ba3 Mention Side-Channel Attacks In Addition To Lack-Of-Entropy Attacks 2014-05-11 13:46:03 -04:00
David A. Harding
cc2105debc Add Comparison-Based Attacks To Reasons Not To Reuse Keys
_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!
2014-05-11 10:34:43 -04:00
David A. Harding
c59b8e0621 Remove Assertion That Pay-To-Pubkey (Unhashed) Still Used In Coinbase Txes
_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!
2014-05-11 08:49:05 -04:00
David A. Harding
c1d491ed39 Small Changes To Devel Doc Based On Comments By @luke-jr & @mikehearn
_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!
2014-05-11 07:27:57 -04:00
David Harding
ffde087f02 Contributions by @harding to devel docs
Thanks also (in alphabetical order) to @cbeams, @mikehearn, and
@tgeller, among others.

The last pre-squash commit was: c2b8d562aa107c7b68c60946cea14cdccc5159ad
2014-05-09 22:13:59 -04:00