-
UkoeHB
-
jetsteel[m]
UkoeHB: If the goal is to allow immediate spends without the possibilty ofna reorg affecting it, could there be a protocol whereby a transaction uses inputs that are currently in the tx pool?
-
jetsteel[m]
UkoeHB: then a block producer could choose to include all relevant blocks in the order required, or not include the transaction at all.
-
jetsteel[m]
UkoeHB: if it gets included, then reorged it doesnt matter because all the txs that it referred to also got reorged?
-
UkoeHB
jetsteel[m]: yes you could do that, but I think it would have limited utility since it requires extra coordination between sender and receiver.
-
sech1
zero-decoy spends feel wrong to me
-
sech1
you can at least use decoys from mempool and 1-2 last blocks
-
UkoeHB
sech1: then you get back into the reorg problem
-
sech1
real reorgs rarely touch more than 2 last blocks
-
UkoeHB
I think ‘bump tx’ that add fees to txs in the mempool could reduce the impact of the grace-period-expiry problem (which is a DDOS vector).
-
sech1
also, double spends usually don't even enter mempool under normal conditions, even with reorgs
-
UkoeHB
Those statements are only true in a non-adversarial environment. What if there is a selfish miner, or the double spender is injecting double spends at different places in the network simultaneously?
-
sech1
then there will be double spends in different mempools, but only one will be mined
-
sech1
if you don't take decoy from mempool, only actual reorg attacks can cause problems
-
UkoeHB
A natural reorg occurs when two different miners publish competing blocks. Those miners have different mempools, which can be in conflict.
-
UkoeHB
Also, taking decoys from recent blocks/mempool is not compatible with deterministic binning (large ring sizes). The goal of my proposal was to minimize the damage fast-spends can do to fully anonymized spends (full ring signatures). If some outputs are spent in small rings, this weakens other ring signatures that reference those outputs.
-
UkoeHB
Hence, the proposal completely removes provably spent outputs from decoy-eligibility as soon as possible.
-
merope
But now you are creating separate anonymity pools
-
merope
And since there is (presumably) no restriction on how many zero-decoy transactions there can be in a block, there is now a significant incentive (for the people who have no idea what they're doing) to use zero-decoy txes as much as possible, because ain't nobody got time to wait 10 blocks
-
merope
You would be effectively reverting the previous decision to enforce a mininum ring size, and reintroducing the option of no privacy in exchange for expedience
-
merope
Besides - the only people who would be able to do this whole "identify the real spend" dance would be those actively monitoring the chain for reorgs and collecting all the data they can. Anyone else catching up after the fact would have no idea that it ever happened
-
merope
Imo, the potential damage that zero-decoy transactions could bring far outweighs the partial privacy degradation for a few transactions in the event of a reorg
-
UkoeHB
The minimum ring size would still be enforced, this just expands the conditions when tx can be constructed.
-
UkoeHB
Reorgs don’t cause privacy degradation... what are you referring to?
-
Lyza
probably this: "However, if that output is used as a decoy in other users' txs, then since observers know it has been spent, they will know it is a decoy in those other users' txs. This weakens those users' ring signatures. To prevent that weakening, the 10-block-lock time is enforced. This way all decoys in a tx input are plausibly the real spend."
-
UkoeHB
Also, ‘as much as possible’ is misleading. It would be used whenever convenient (expedient as you say).
-
Lyza
I don't understand from reading this how ring size is still enforced --- it seems to state pretty plainly that zero decoy TXs are used. maybe I need to read it again after my 2nd cup
-
UkoeHB
It’s enforced for all inputs that reference old outputs.
-
UkoeHB
Implicitly* since a zero-decoy cannot be older than 30 blocks.
-
jetsteel[m]
Is the problem of a reorg after a quick spend driven solely by the fact that xmr references ring members by index, and that index would change on a reorg? Or is there more to it?
-
UkoeHB
No, the problem is a reorg can remove a decoy from the chain entirely
-
jetsteel[m]
Removing the decoy would invalidate the signature as there would be no record of what the tx pub key for that decoy was on chain, so you couldnt verify the sig, yeah?
-
UkoeHB
Lyza: reorgs make it risky to use recent outputs as decoys; if all your decoys are always old (> 10 blocks) but the real spend is recent (< 10 blocks), then observers will know it is a real spend. That’s what I was saying there.
-
UkoeHB
jetsteel[m]: right, which means a tx you submitted would become invalid due to the actions of completely unrelated third parties (violating censorship resistance)
-
Lyza
I think the privacy risk is in rebroadcasting an invalidated TX because you will reveal the real spend
-
Lyza
since the 10 decoys will be diff but the real spend is the same
-
jetsteel[m]
So, what if we allowed references to young outputs by tx pub key rather than index? The worst case is you lose one decoy if it gets reorged away. Sig can still be verified
-
UkoeHB
jetsteel[m] it is illegal to reference an output that isn’t in the blockchain (this would let you mint coins)
-
UkoeHB
Lyza: yes that’s a risk, but the necessity for 10-block-lock lies in txs getting invalidated in the first place
-
Lyza
so I guess this proposals seems to mostly limit the privacy harming effects of 0-decoy TXs to the person making the transaction, but I guess my concern would be that it lowers the available pool of decoys from what it would be with the lock time enforced
-
Lyza
don't get me wrong I'd love to get rid of the lock time
-
jetsteel[m]
UkoeHB: of course. 🤡
-
Lyza
tevador's idea about using the change output as a decoy seems itneresting
-
UkoeHB
It would prevent you from removing provable spends from the decoy pool. An output spent in a 2-member ring isn’t a lot better than one provably spent.
-
jetsteel[m]
<merope> "And since there is (presumably..." <- What if you mandate a convenience fee? Nobody is going to needlessly make quick respends if it costs significantly more than waiying 10 blocks....unless they really need to.
-
Lyza
I guess you could still remove those from the decoy pool but then I guess you're removing even more than in the 0-decoy scenario
-
Lyza
mmm convenience fee, I kinda like it
-
carrington[m]
Meeting over in -community in just over an hour to discuss CCS/workgroup updates and any other relevant topics
-
carrington[m]
-
carrington[m]
Just under an hour*
-
n1k0laz
hi there