Author

Topic: Hardfork proposal: Transaction 2.0 (Read 759 times)

legendary
Activity: 1050
Merit: 1000
You are WRONG!
April 29, 2013, 12:45:40 PM
#2
1. A new script code OP_FEE should be added. Bitcoin sending to OP_FEE is processed as transaction fee. This allow people to specify transaction fee explicitly and human mistakes in handling raw transaction could be avoided. Also, this would allow people to designate fee amount more easily in constructing contracts (https://en.bitcoin.it/wiki/Contracts)
LOOOOOOL! people should not poke around in the transactions.
steps to ensure stuff works:
1. come up with a algorithm that picks inputs, and generates outputs, ensuring that a change output is also created.
2. prove it's correctness.
3. use for all eternity.
legendary
Activity: 1792
Merit: 1111
April 29, 2013, 12:36:42 PM
#1
Inspired by this: https://bitcointalksearch.org/topic/sighashwithinputvalue-super-lightweight-hw-wallets-and-offline-data-181734 , I think we need a better transaction structure.

1. A new script code OP_FEE should be added. Bitcoin sending to OP_FEE is processed as transaction fee. This allow people to specify transaction fee explicitly and human mistakes in handling raw transaction could be avoided. Also, this would allow people to designate fee amount more easily in constructing contracts (https://en.bitcoin.it/wiki/Contracts)

2. For a transaction with at least one OP_FEE output, total input value must be equal to total output value. Therefore, SIGHASH_WITHINPUTVALUE suggest in https://bitcointalksearch.org/topic/sighashwithinputvalue-super-lightweight-hw-wallets-and-offline-data-181734 is no longer needed

3. One signature for all inputs with same script. A lot of block space is wasted by transaction like this: http://blockchain.info/tx/0a509adf741d9071dcc9a1f169df8bd5efb6b006a71c7f2fd19e5a3596f12e3f , as one signature (and public key) is required for each input even they are signing for the same address. The right way should be signing all these inputs with one signature. This will allow people reuse address to collect thousands of outputs, and sweep these outputs with a small size transaction. In long run, this will reduce the stress on block size and also the UTXO size. This will not compromise security as people can always use a new address after the old address is swept. This may compromise anonymity but it is still up to user's choice.

4. Replace SIGHASH_SINGLE with "SIGHASH_MULTIPLE", which allow signing multiple (but not all) outputs. This could be very useful in constructing contracts and colored coin transactions.
Jump to: