< bitcoin-git>
[bitcoin] luke-jr opened pull request #9749: If -spkreuse=0, ensure transactions in mempool always have unique scriptPubKeys (master...unique_spk_mempool) https://github.com/bitcoin/bitcoin/pull/9749
< gmaxwell>
luke-jr: it would be interesting if there were a 1 bit flag in scriptpubkeys that indicated if you wanted to allow reuse or not.
< luke-jr>
gmaxwell: enforcing it consistently would require an ever-growing set, so this is more useful to simply discourage it in general
< gmaxwell>
it would just be "best effort"
< gmaxwell>
e.g. I promise no two in the last N blocks, beyond that, "probablistic"
< luke-jr>
I can't think of any reason to ever intentionally accomidate reuse.
< gmaxwell>
widespread practice.
< gmaxwell>
an improvement no one uses is not an improvement.
< luke-jr>
widespread practice needs to change; people enabling this puts pressure on others to stop doing it
< luke-jr>
especially people doing more transaction volume
< BlueMatt>
how? only realistically if its off-by-default, which we cant do, or if miners use it, which they wont
< sdaftuar>
i haven't read this patch carefully, but is there anything to prevent an attacker from interfering with relay by sending a low-fee, low-value transaction to an output that he sees, and relaying that ahead of the original tx?
< gmaxwell>
and what if the net effect is just someone standarziding that wallets should notice their scriptpubkey with a dummy push also strapped to it?
< gmaxwell>
oh slick point.
< luke-jr>
sdaftuar: there isn't. perhaps it should use RBF semantics in that case
< sdaftuar>
this seems like a solution looking for a problem imo
< gmaxwell>
well there are problems it would help with.
< gmaxwell>
for example,, if you take some old addresses and spend all the connected coins, people have frequently then sent near dust amounts to them, seemingly with the hope that you'll spend the dust in another transaction and link the outputs.
< morcos>
luke-jr: also to clarify (sorry for not just reading the code), if there are already multiple outputs encumbered by the same scriptpubkey, does this patch prevent spending more than one of them at a time?
< gmaxwell>
no, it's just a creation restriction AFAICT.
< luke-jr>
morcos: it doesn't prevent that.
< luke-jr>
it restricts spending as well, but allows multiple of them in the same tx
< morcos>
ok, the exception in your PR text confused me.. that's good at least!
< luke-jr>
brb
< morcos>
wait... so it does prevent that unless you put them in the same TX????
< jcorgan>
is there a particular reason bitcoin.conf only allows IP parameters by address and not hostname/dns name, other than "it hasn't been written yet"?
< morcos>
for the record, i agree with the basic gist of discouraging address reuse, but i think its crazy to make it an absolute. i've reused (And continue to reuse) addresess many times... its a choice of convenience over.. eh.. maybe some loss of privacy
< morcos>
for instance if your change output is readily discernible already..
< gmaxwell>
luke-jr: probably more important is that more outputs shouldn't be made to an address once it's been spent from (and ideally wallets would spend from that address all at once)
< midnightmagic>
morcos: Also, loss of privacy for other people who deal with you.
< luke-jr>
morcos: it's not absolute; you can wait until the transaction is mined
< luke-jr>
it occurs to me the current PR already breaks RBF, so I need to fix that :/
< luke-jr>
I suppose it should just treat SPK overlaps as if they shared a conflicting input
< luke-jr>
solve both issues at once
< morcos>
i think it makes no sense at all to have an option that makes it difficult for people to spend previously created outputs
< morcos>
i'd be opposed to that
< morcos>
i mean i'm basically opposed to the option in general.. but if its just an option and it defaults off.. well you have to pick your battles
< morcos>
but if it prevents spending existing outputs.. that seems crazy
< luke-jr>
you can spend them in separate blocks or in the same tx
< luke-jr>
there is no reason anyone should ever have multiple tx in the same block anyway
< sipa>
right, but why would miners enable that setting?
< sipa>
and if miners don't, why would anyone else?
< sipa>
i like the reasons... but it's noneconomical
< luke-jr>
because some miners actually care about Bitcoin
< morcos>
honestly i think this is the kind of change that should go into something like Knots
< luke-jr>
I don't like the direction Core is changing to where everything must be exclusively economic incentives. Bitcoin can't work with mere economic incentives as things are today. The way things are heading, Core is no longer a reference implementation, but a specific political agenda to the exclusion of others.
< sipa>
luke-jr: the only criteria for non-miner mempools is the expectancy of what will confirm
< sipa>
for miners, i would argue that any non-economical property is a push for a certain policy
< sipa>
the economical one is that i expect everyone to take eventually
< luke-jr>
sipa: I see it more of that non-miner mempools constrain miners, by creating slower propagation of blocks that don't match the wider network policies.
< luke-jr>
sipa: economical is also a certain policy. options are options.
< sipa>
luke-jr: divergence between non-miners and miners just encourages people to submit directly to miners, and miners to be reachable (and thus non-anonymous)
< sipa>
i think that's a far worse outcome than just rational policies
< luke-jr>
lack of divergence creates centralisation pressures forcing miners to all run the same policy dictated by developers
< morcos>
i would argue that a minimum bar for an option is that at least the majority of Core developers think its a good idea OR a good fraction of the user community think its a good idea
< morcos>
we can't support every fringe option
< sipa>
luke-jr: my assumption is that if we'd introduce non-economical policies, and they're configurable they'd be turned off, and if they're not configurable someone will create a patch to change them
< sipa>
by the vast majority of miners
< morcos>
i also dislike the use of policy as something that tries to constrain users to use bitcoin in a certain way.. if its not necessary for DoS prevention or resource allocation, then good usage policies/options should be at the wallet level
< morcos>
relay and mining should be essentially blind to any attribute of txs other than resource usage (which is unfortunately a multi-dimensional beast)
< luke-jr>
I don't see many miners turning on acceptnonstdtxn. Or enabling full RBF (although some do exist). Miners do care to an extent, and that will hopefully improve as difficulty kills profits.
< luke-jr>
morcos: that is not a sustainable view, at least as things are today. but more importantly, I concede your right to take that position, but you need to understand not everyone agrees with it.
< sipa>
luke-jr: ok, i'll reformulate: my expectation is that over time we'll converge to more rational relay policies... not because developers force it, but because it's the most economical thing to do
< luke-jr>
economical != rational
< sipa>
short-term vs long-term?
< luke-jr>
perhaps
< luke-jr>
it's rational to filter SPK reuse in hopes of improving Bitcoin privacy, for example
< sipa>
the only thing that actually improves privacy IMHO is consensus rules that incentivize it
< morcos>
luke-jr: i'd be much more amenable to that argument if the Core wallet stopped SPK reuse.. having relay be difficult in the even of SPK reuse seems like it risks causing more harm than good
< luke-jr>
neither developers nor miners control consensus rules. but miners do control policy.
< morcos>
luke-jr: right! that's why we need to work towards a bitcoin where there is no policy!! all txs look the same
< luke-jr>
no, policy is important.
< sipa>
yes, let's switch to MimbleWimble. all txs look the same!
< sipa>
luke-jr: in my ideal world, there can't be any policy beyond fees/size, because there is nothing else that distinguishes two transactions
< luke-jr>
sipa: that's not everyone's ideal world.
< sipa>
the fact that you can even say whether two outputs use the same address is a fungibility flaw on itself
< sipa>
the fact that miners have censorship rights at all is a weakness
< luke-jr>
I suppose
< luke-jr>
no, miners are supposed to "censor" spam
< luke-jr>
that's part of how the system works
< sipa>
i agree with you, but only in its "development phase"... which may last a long time
< luke-jr>
?
< sipa>
everyone should cooperate to make the system as usable as possible while it is not perfect
< luke-jr>
morcos: btw, Core wallet never reuses SPKs
< sipa>
but eventually, it will need to work in a very-close-to-perfectly-rational environment
< luke-jr>
sipa: okay, I think I agree on that.
< sipa>
that doesn't mean that has to happen today
< luke-jr>
IMO Lightning will help take a big step toward that
< sipa>
maybe
< luke-jr>
well, in theory since legit txs will probably drop in blockchain data usage vs spam
< luke-jr>
hopefully that will increase the feerate of legit use beyond the point where spam is more economic
< * luke-jr>
ponders if a town will ever be named std::<something> XD
< jcorgan>
is there a particular reason bitcoin.conf only allows IP parameters by address and not hostname/dns name, other than "it hasn't been written yet"?
< jonasschnelli>
jcorgan: Yes. Probably. But I think we don't want addr-man to send around hostnames... in the config, yeah, fine.
< jcorgan>
right, i'm only think of the conf file or cmd line, like proxy=, etc.
< jcorgan>
*thinking
< Greybits>
Hi! im not very smart and trying to learn more about segwit. to me it looks like lightning network is just a "man in the middle" proxy that can block transactions if they want to. why is lightning network good for crypto? who is bitfury? why do they have an office in washington dc? what do they do in north carolina by the military base?
< Chris_Stewart_5>
Is there a BIP that talks about block time stamp requirements?
< Chris_Stewart_5>
Looking at BIP113, it states we take the median time stamp for the last 11 blocks, but what stops the miner from egregiously lieing about that timestamp?
< BlueMatt>
Chris_Stewart_5: there is a consensus rule that the MTP (median time past) of each block must progress
< BlueMatt>
ie you acan never have a block which is older than the median-of-last-11 as per its timestamp
< Chris_Stewart_5>
BlueMatt: Thanks
< bitcoin-git>
[bitcoin] ryanofsky opened pull request #9753: Add static_assert to prevent VARINT(<signed value>) (master...pr/varint-assert) https://github.com/bitcoin/bitcoin/pull/9753
< bitcoin-git>
[bitcoin] ryanofsky opened pull request #9756: Return error when importmulti called with invalid address. (master...pr/multiaddr) https://github.com/bitcoin/bitcoin/pull/9756