BIP: Short Term Use Addresses for Scalability
6 messages, 22 to 23 Jul 2015. Started by Jeremy Rubin.
Jeremy Rubin (3), Tier Nolan, Gavin Andresen, Johnson Lau
While we're all debating the block size, please review this proposal to modestly increase the number of transactions per block.
https://gist.github.com/JeremyRubin/4d17d28d5c681a93fa63
Best,
Jeremy
Rather than re-enable OP_LEFT, a NOP could be re-purposed in a soft fork.
OP_DUP OP_HASH160 [pubKeyHash[:LEN_PARAM]] [LEN_PARAM] OP_LEFTEQUALVERIFY OP_DROP OP_CHECKSIG
A B L OP_LEFTEQUALVERIFY checks if the leftmost L bytes of A and B match. If not, then the script immediately fails. If either array is less than L bytes or if there are fewer than 3 values on the stack, then it also fails.
The OP_DROP is needed as the new opcode must count as a NOP for legacy nodes.
A change like this would only cause a once-off improvement in efficiency, so it is less likely to be worth the effort.
It also requires most clients to be updated to support the new address system.
A different BIP could be added for that.
An alternative way to add new opcodes is to use a different script engine like with P2SH.
On Wed, Jul 22, 2015 at 9:15 PM, Jeremy Rubin via bitcoin-dev < bitcoin-dev@lists•linuxfoundation•org> wrote:
Quoted text (17 lines)
> While we're all debating the block size, please review this proposal to > modestly increase the number of transactions per block. > > https://gist.github.com/JeremyRubin/4d17d28d5c681a93fa63 > > Best, > > Jeremy > > > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists•linuxfoundation•org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > >
On Wed, Jul 22, 2015 at 4:34 PM, Tier Nolan via bitcoin-dev < bitcoin-dev@lists•linuxfoundation•org> wrote:
Quoted text (2 lines)
> It also requires most clients to be updated to support the new address > system.
That's the killer: introducing Yet Another Type of Bitcoin Address takes a very long time and requires a lot of people to change their code. At least, that was the lesson learned when we introduced P2SH addresses.
I think it's just not worth it for a very modest space savings (10 bytes, when scriptSig+scriptPubKey is about 120 bytes), especially with the extreme decrease in security (going from 2^160 to 2^80 to brute-force).
I think the catch here is that under STUA (short term use address) there is a strict incentive, you can reduce the transaction fee for these txns. This also fits with the general model that you pay the miners for security. My belief is that when there is a savings benefit to be had large players will prefer it at a minimum, and users will desire it.
Your analysis of saving is inaccurate, it comes to be at or greater than 20 bytes because there is typically 2 UTXOs or more. I get that this is still marginal, but when the margins are tight this is a pretty decent gain.
The security decrease is actually less extreme than it seems. This is for multiple reasons: 1) you can select LEN_PARAM when you make the tx to be secure at that time Adding a byte or two gets much more security while still keeping it lean. 2) For a small transaction, the hash power is less rewarding than just working on the blockchain or doing something else 3) These addresses are only for use for short term, not perm storage. As such, if you model the threat it isn't great (I'm using this address for one day, someone grinds it in that time). 4) Because it is a UTXO saving, it reduces memory bloat.t
It would be interesting to get a more exact analysis on the time needed to run a brute force as it involves computing a valid keypair and hashing for each attempt.
On Thu, Jul 23, 2015 at 5:06 AM, Gavin Andresen via bitcoin-dev < bitcoin-dev@lists•linuxfoundation•org> wrote:
Quoted text (26 lines)
> On Wed, Jul 22, 2015 at 4:34 PM, Tier Nolan via bitcoin-dev < > bitcoin-dev@lists•linuxfoundation•org> wrote: > >> It also requires most clients to be updated to support the new address >> system. > > > That's the killer: introducing Yet Another Type of Bitcoin Address takes a > very long time and requires a lot of people to change their code. At least, > that was the lesson learned when we introduced P2SH addresses. > > I think it's just not worth it for a very modest space savings (10 bytes, > when scriptSig+scriptPubKey is about 120 bytes), especially with the > extreme decrease in security (going from 2^160 to 2^80 to brute-force). > > -- > -- > Gavin Andresen > > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists•linuxfoundation•org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > >
Quoting Gavin Andresen via bitcoin-dev <bitcoin-dev@lists•linuxfoundation•org>:
Quoted text (18 lines)
> On Wed, Jul 22, 2015 at 4:34 PM, Tier Nolan via bitcoin-dev < > bitcoin-dev@lists•linuxfoundation•org> wrote: > >> It also requires most clients to be updated to support the new address >> system. > > > That's the killer: introducing Yet Another Type of Bitcoin Address takes a > very long time and requires a lot of people to change their code. At least, > that was the lesson learned when we introduced P2SH addresses. > > I think it's just not worth it for a very modest space savings (10 bytes, > when scriptSig+scriptPubKey is about 120 bytes), especially with the > extreme decrease in security (going from 2^160 to 2^80 to brute-force). > > -- > -- > Gavin Andresen
I think it would only save ~5% with all overhead (value, sequence, locktime, version, etc.) counted
A better way is to introduce shorter ECDSA keys, which will save a lot of space for public key and signature. It is safe as long as the output value is much lower than the cost of attack.
If this happens, I think it will be part of the OP_MAST which will require a new address type anyway.
A standard transaction is 225 bytes, leading to a savings of 8.6%.
However, that is essentially the minimum saving. For other sizes (eg, 10 outputs) which seem to be pretty frequent savings can be greater.
Furthermore, it is important to note that this is a memory saving for the UTXO pool so the reduction there is more (not super familiar with how the UTXO pool is stored, but it should be a better savings than 8.6%).
Does anyone have the tools currently to be able to easily run through the chain and analyze the impact of this change on historical data more directly?
On Thu, Jul 23, 2015 at 12:55 PM, jl2012 via bitcoin-dev < bitcoin-dev@lists•linuxfoundation•org> wrote:
Quoted text (42 lines)
> > Quoting Gavin Andresen via bitcoin-dev < > bitcoin-dev@lists•linuxfoundation•org>: > > On Wed, Jul 22, 2015 at 4:34 PM, Tier Nolan via bitcoin-dev < >> bitcoin-dev@lists•linuxfoundation•org> wrote: >> >> It also requires most clients to be updated to support the new address >>> system. >>> >> >> >> That's the killer: introducing Yet Another Type of Bitcoin Address takes a >> very long time and requires a lot of people to change their code. At >> least, >> that was the lesson learned when we introduced P2SH addresses. >> >> I think it's just not worth it for a very modest space savings (10 bytes, >> when scriptSig+scriptPubKey is about 120 bytes), especially with the >> extreme decrease in security (going from 2^160 to 2^80 to brute-force). >> >> -- >> -- >> Gavin Andresen >> > > I think it would only save ~5% with all overhead (value, sequence, > locktime, version, etc.) counted > > A better way is to introduce shorter ECDSA keys, which will save a lot of > space for public key and signature. It is safe as long as the output value > is much lower than the cost of attack. > > If this happens, I think it will be part of the OP_MAST which will require > a new address type anyway. > > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists•linuxfoundation•org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev >