Short review of previously-proposed exotic SIGHASH types

Short review of previously-proposed exotic SIGHASH types
2015-08-31 16:24 ` jl2012
  2015-09-01  6:54 ` Peter Todd
  
From: Bryan Bishop @ 2015-08-30 18:56 UTC (permalink / raw)
  To: Bitcoin Dev, Bryan Bishop

Here is a short review of previously-proposed and exotic SIGHASH types.

SIGHASH_MULTIPLE
SIGHASH_LIST:
https://bitcointalk.org/index.php?topic=252960.0
https://bitcointalk.org/index.php?topic=212555.0

SIGHASH_MULTIPLE
SIGHASH_WITHINPUTVALUE:
https://bitcointalk.org/index.php?topic=191003.0

SIGHASH_WITHINPUTVALUE:
http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-January/007185.html

SIGHASH_NOINPUT:
https://github.com/Roasbeef/bitcoin/commit/4b3c3f1baf7985208ceb6887261ee150ab6e3328
https://github.com/Roasbeef/btcd/commit/67830e506fa135d5239177340918cea39909e6a4
http://lightning.network/lightning-network-paper.pdf

SIGHASH_NORMALIZED
SIGHASH_NOINPUT:
http://diyhpl.us/wiki/transcripts/sf-bitcoin-meetup/2015-02-23-scaling-bitcoin-to-billions-of-transactions-per-day/

SIGHASH_WITHOUT_PREV_SCRIPTPUBKEY
SIGHASH_WITHOUT_PREV_VALUE
SIGHASH_WITHOUT_INPUT_TXID
SIGHASH_WITHOUT_INPUT_INDEX
SIGHASH_WITHOUT_INPUT_SEQUENCE
SIGHASH_WITHOUT_OUTPUT_SCRIPTPUBKEY
SIGHASH_WITHOUT_OUTPUT_VALUE
SIGHASH_WITHOUT_INPUTS
SIGHASH_WITHOUT_OUTPUTS
SIGHASH_WITHOUT_INPUT_SELF
SIGHASH_WITHOUT_OUTPUT_SELF
SIGHASH_WITHOUT_TX_VERSION
SIGHASH_WITHOUT_TX_LOCKTIME
SIGHASH_SIGN_STACK_ELEMENT:
https://github.com/scmorse/bitcoin-misc/blob/master/sighash_proposal.md

Similarly, petertodd has asked for a SIGHASH_DONT_SIGN_TXID before to
make OP_CODESEPARATOR more useful.

SIGHASH_DANGEROUSLYPROMISCUOUS:
http://gnusha.org/bitcoin-wizards/2015-04-17.log

SIGHASH_DOUBLE:
06:41 < lorenzoasr> maybe a SIGHASH_DOUBLE that signs INPUT[i] and
OUTPUT[i] and OUTPUT[i+1] could be very helpful

Some sighash types briefly proposed by petertodd in #bitcoin-dev:
SIGHASH_NLOCKTIMEVERIFY
SIGHASH_SUM (for merging multiple payments)

And finally one from wumpus (#bitcoin-dev):
SIGHASH_UNICORN

- Bryan
http://heybryan.org/
1 512 203 0507


 permalink raw reply	[|nested]
2015-08-30 18:56 [bitcoin-dev] Short review of previously-proposed exotic SIGHASH types Bryan Bishop

  2015-09-01  6:54 ` Peter Todd
  
From: jl2012 @ 2015-08-31 16:24 UTC (permalink / raw)
  To: Bryan Bishop;  Bitcoin Dev

Bryan Bishop via bitcoin-dev 於 2015-08-30 14:56 寫到:

> 
> SIGHASH_WITHOUT_PREV_SCRIPTPUBKEY
> SIGHASH_WITHOUT_PREV_VALUE
> SIGHASH_WITHOUT_INPUT_TXID
> SIGHASH_WITHOUT_INPUT_INDEX
> SIGHASH_WITHOUT_INPUT_SEQUENCE
> SIGHASH_WITHOUT_OUTPUT_SCRIPTPUBKEY
> SIGHASH_WITHOUT_OUTPUT_VALUE
> SIGHASH_WITHOUT_INPUTS
> SIGHASH_WITHOUT_OUTPUTS
> SIGHASH_WITHOUT_INPUT_SELF
> SIGHASH_WITHOUT_OUTPUT_SELF
> SIGHASH_WITHOUT_TX_VERSION
> SIGHASH_WITHOUT_TX_LOCKTIME
> SIGHASH_SIGN_STACK_ELEMENT:
> https://github.com/scmorse/bitcoin-misc/blob/master/sighash_proposal.md
> 

Thanks for your summary. This one seems particularly interesting. 
However, it does not allow fine adjustment for each input and output 
separately, so I wonder if it really "fully enable any seen or unforseen 
use case of the CTransactionSignatureSerializer." as it claims.


 permalink raw reply	[|nested]
2015-08-30 18:56 [bitcoin-dev] Short review of previously-proposed exotic SIGHASH types Bryan Bishop
  2015-08-31 16:24 ` jl2012

  
From: Peter Todd @ 2015-09-01  6:54 UTC (permalink / raw)
  To: Bryan Bishop;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 580 bytes --]

On Sun, Aug 30, 2015 at 01:56:34PM -0500, Bryan Bishop via bitcoin-dev wrote:
> Here is a short review of previously-proposed and exotic SIGHASH types.
> 
> SIGHASH_MULTIPLE
> Similarly, petertodd has asked for a SIGHASH_DONT_SIGN_TXID before to
> make OP_CODESEPARATOR more useful.

There's also my "meta sighash" idea of using code to build up the
signature with OP_CODESEPARATOR:

http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg07384.html

-- 
'peter'[:-1]@petertodd.org
000000000000000010b552c5f5c18705ccb1b21c550c08872089f89076840d6d

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 650 bytes --]

 permalink raw reply	[|nested]