|
@ -15,18 +15,21 @@ version 1 transactions. |
|
|
==Motivation== |
|
|
==Motivation== |
|
|
|
|
|
|
|
|
Version 1 Bitcoin Transactions have one large inefficiency: When you want to spend |
|
|
Version 1 Bitcoin Transactions have one large inefficiency: When you want to spend |
|
|
from multiple inputs with the exact same scriptPubKey, you have to list the same |
|
|
from multiple inputs with the exact same scriptSig, you have to list each |
|
|
signature multiple times. This bloats the transaction size and makes it expensive to spend |
|
|
input separately, along with the same signature multiple times. |
|
|
from small value inputs. |
|
|
This bloats the transaction size and makes it expensive to spend from small value inputs. |
|
|
|
|
|
|
|
|
Because small value inputs are expensive to send, they remain in the UTXO pool |
|
|
Because small value inputs are expensive to send, they remain in the UTXO pool |
|
|
which full nodes have to keep around. It is believed that long term increase of the UTXO |
|
|
which full nodes have to keep around. It is believed that long term increase of the UTXO |
|
|
set can have negative scaling consequences on the network. |
|
|
set can have negative scaling consequences on the network. |
|
|
|
|
|
|
|
|
|
|
|
If maximum blocksize is made to increase *slower* than the actual number of transactins bitcoin users are sending |
|
|
|
|
|
to the network, this problem is projected to get worse. |
|
|
|
|
|
|
|
|
==Specification== |
|
|
==Specification== |
|
|
|
|
|
|
|
|
A version 2 transaction is formulated the exact same way as a version 1 transaction |
|
|
A version 2 transaction is formulated the exact same way as a version 1 transaction |
|
|
with one exception: each input is treated as a "wildcard input". |
|
|
with one exception: each input is treated as a "wildcard input". |
|
|
|
|
|
|
|
|
A wildcard input beings the value of all inputs with the exact same scriptPubKey |
|
|
A wildcard input beings the value of all inputs with the exact same scriptSig |
|
|
in a block lower or equal to the block the wildcard input is confirmed into. |
|
|
in a block lower or equal to the block the wildcard input is confirmed into. |
|
|