-
Isthmus
I always assume that one of us is secretly a 3 letter agency, and somebody else is probably a Fortune 500 company that is still in stealth mode about cryptocurrency adoption. :- P
-
Isthmus
Anyways, what do y'all think about extra decoy outputs for the sake of artificially increasing the anonymity set?
-
Isthmus
-
Isthmus
I don't agree with 100% of the statements in that GitHub issue, but I do find the idea thought provoking
-
Isthmus
Kind of depends on ratios between transaction volume, output volume, and ring size
-
Isthmus
s/GitHub issue/Sietch writeup on GitHub
-
monerobux
Isthmus meant to say: I don't agree with 100% of the statements in that Sietch writeup on GitHub, but I do find the idea thought provoking
-
sarang
This has been brought up several times over the years
-
sarang
The previous context was mainly about the idea of reducing the effects of entities colluding with known outputs to reduce the effective anonymity set
-
derpy_bridge
<[keybase] unseddd>: sarang: agree that increasing the anonymity set is a good idea, along with removing the ability of malicious actors to collude in a way that reduces the anonymity set for all users. am advocating for not using an algorithm that is too greedy, rejecting legitimate auxilliary input(s), claiming they are malicious
-
sarang
You can't prevent entities from colluding
-
sarang
Nor can you reliably detect what outputs belong to such entities without significant external information
-
derpy_bridge
<[keybase] unseddd>: what i mean, is removing user control over vulnerable aspects of the protocol as much as possible, e.g. deterministic tx-building to defeat Janus attacks
-
sarang
FWIW the percentage of outputs that need to be controlled by colluding entities (or otherwise suspected/known to be non-signers) to destroy a ring signature is nontrivial
-
sarang
and keep in mind that this is very time-based
-
sarang
since decoy selection by default is not uniform over time
-
sarang
unseddd: decoy selection is not protocol enfoced
-
sarang
*enforced
-
sarang
There have been proposals to do so, but they do not play nicely with accurate spend distribution estimates
-
derpy_bridge
<[keybase] unseddd>: great! that should make implementing/integrating hardening changes there won't require any consensus changes / hard-forks, right?
-
sarang
What kind of change
-
sarang
Changes to non-enforced decoy selection are, by definition, not enforced =p
-
derpy_bridge
<[keybase] unseddd>: still don't fully understand the idea of non-uniform distribution, if spend distributions can't be analyzed on Monero
-
sarang
They can't directly
-
sarang
But some early transactions can be
-
sarang
and this distribution can be compared to transparent chains
-
sarang
They turn out to be similar
-
derpy_bridge
<[keybase] unseddd>: the distribution algo from stdlib also causes clang builds to fail for Monero, so replacing it with a uniform random distribution would fix two things
-
sarang
This is assumed to be a reasonable approximation
-
sarang
A uniform random selection from the chain is not suitable
-
derpy_bridge
<[keybase] unseddd>: maybe Monero used uniform random distribution before, and it caused issues?
-
sarang
because outputs are not equally likely to be spent as a function of their age on chain
-
sarang
Newer outputs are _much_ more likely to be spent
-
sarang
If the selection algorithm differs significantly from the expected spend age distribution, you can build a heuristic for the most likely signer based on this
-
sarang
So while moving to a simple distribution is useful for protocol-enforced decoy selection, it is terrible for adversarial heuristics
-
sarang
If there are problems with the current distribution, it might be possible to rewrite a custom version that builds properly with other tools
-
sarang
(I have not run into this problem personally)
-
derpy_bridge
<[keybase] unseddd>: try building Monero with clang, you'll run into the issue
-
Isthmus
I want R = fxn[seed, height]
-
Isthmus
seed is any integer, height is a block height
-
derpy_bridge
<[keybase] unseddd>: also advocating for enforcing decoy selection, at least in some of the ways mentioned for Janus mitigation, i.e. making tx-building verifiable, even if optional
-
sarang
Isthmus: ?
-
Isthmus
And the output R is a set of ring members [technically, a list of output indices] that satisfy our decoy selection algorithm
-
sarang
Oh you mean deterministic ring selection
-
sarang
Yes, this method exists
-
sarang
but in general requires inverse transform sampling
-
Isthmus
Oooh, tell me more
-
derpy_bridge
<[keybase] unseddd>: Isthmus: you want fxn? ;p
-
Isthmus
Oh, having to generate sets of R's to find one that includes your output?
-
Isthmus
fxn, yes plz
-
sarang
-
sarang
For simple distributions it's efficient
-
sarang
(I have simple code that shows examples of this)
-
sarang
For more complex distributions, not so much
-
derpy_bridge
<[keybase] unseddd>: _gib Isthmus fxn_
-
sarang
Because the verifier needs to use the seed data to reconstruct the output set
-
sarang
The paper shows it for uniform sampling and the old triangular sampling
-
Isthmus
O rly?
-
sarang
yes
-
» Isthmus scopes it out
-
sarang
but our distribution is not nearly so straightforward as lines
-
sarang
It relies on keyed hash functions
-
Isthmus
Here's a weird, maybe heretical question
-
Isthmus
How closely does our decoy selection algorithm need to match the real spend time distribution
-
Isthmus
If we ask "what is the ideal decoy selection algorithm" the trivial answer is "our best approximation of the spend time"
-
derpy_bridge
<[keybase] unseddd>: not familiar, will check it out. perhaps uniform-random is naive, as am still familiarizing myself with Monero attach surface / design choices. however, continuing a heuristic based only on information exposed by the earliest txes seems a large technical debt
-
Isthmus
But is this the *only* possible approach that would provide adequate cover?
-
derpy_bridge
<[keybase] unseddd>: *attack
-
sarang
Miller et al. look at this difference
-
sarang
Well, it's important to note that there is (ideally) no way to check the validity of age-based guesses
-
sarang
So on their own, they provide no particular provable data
-
sarang
and it's not at all clear what a quantifiable definition of "plausible deniability" for a ring signature looks like in practice
-
sarang
unseddd: how does the selection algorithm imply technical debt?
-
sarang
We have no particular reason to think that Monero spend age distributions differ from the combination of known Monero spend data and Bitcoin spend data, which show the same trends
-
sarang
(and we can't check this anyway)
-
derpy_bridge
<[keybase] unseddd>: unfortunately don't think practical knowledge of plausible deniability will be know until it's used in a court case or similar
-
sarang
and FWIW the distribution is not that complicated
-
sarang
it just doesn't play as nicely with sampling that would make deterministic selection reasonable
-
derpy_bridge
<[keybase] unseddd>: since the effect of uniform random selection on deniable plausibility is unknown, and the effects of non-deterministic selection is known (Janus), would favor mitigating the latter given more research on the former
-
Isthmus
I don't really think much about "plausible deniability," since it's an artificial construct that will vary by every jurisdiction and decade. My only interest is in statistical obfuscation.
-
sarang
Janus is about subaddress faking, not decoy selection
-
sarang
And uniform selection is a terrible option
-
derpy_bridge
<[keybase] unseddd>: basically, if we can measure the effects of uniform random distribution on selection, and it is found to not break anything, lets use uniform random
-
sarang
Under all but the simplest risk assumptions
-
sarang
Uniform selection doesn't break anything except statistical expectations of spend ages
-
derpy_bridge
<[keybase] unseddd>: why terrible?
-
sarang
Because it basically gives away the likely signer
-
sarang
And an adversary can use that to weight the likely true tx graph
-
derpy_bridge
<[keybase] unseddd>: statistics that cannot be verified, or even measured, on the current chain?
-
sarang
No but they can be used as part of broader graph techniques
-
sarang
And they're a really good heuristic
-
derpy_bridge
<[keybase] unseddd>: giving away the likely signer is disasterous, if that really is the effect, definitely no uniform random
-
derpy_bridge
<[keybase] unseddd>: good heuristic based only on unspent early txes right? am misunderstanding something? create a turnstyle-like protocol, and remove the ability to perform those heuristics. problem solved, no?
-
sarang
That's not really the point
-
sarang
The point is that we know how users tend to spend outputs based on other chains and early Monero data
-
derpy_bridge
<[keybase] unseddd>: thought removing heuristics was the point, where have gone wrong?
-
sarang
Selecting decoys according to expected spend patterns is the mitigation to this heuristic
-
sarang
That's exactly why we use the algorithm we do
-
sarang
And continue to iterate on it
-
derpy_bridge
<[keybase] unseddd>: right, just trying to think of a more permanent solution, so you do not have the technical debt going forward
-
sarang
How is it technical debt
-
sarang
I don't really follow
-
derpy_bridge
<[keybase] unseddd>: having to continually update a selection algo based on best-guesses and heuristics sounds like technical debt to me
-
gingeropolous
yeah, the output selection doesn't create technical debt afaict.
-
gingeropolous
its more like a technical burden
-
hyc
a lot of aspects of security are continually moving targets
-
derpy_bridge
<[keybase] unseddd>: burden == debt ...
-
sarang
It's not ideal, but it is a consequence of ring signatures
-
gingeropolous
well yeah, semantics
-
hyc
you can't really pick a single algorithm and carve it into stone. it'd be like the maginot line, someone will walk around it.
-
gingeropolous
simple answer is ringsize a bajillion
-
sarang
The goal is transaction uniformity, which depends in part on usage patterns
-
sarang
We need to adapt to them as best we can
-
sarang
This is part of it
-
derpy_bridge
<[keybase] unseddd>: hyc: get that security, and the fight for privacy is ever-moving, just tring to think of things that will make Monero have to move less in this particular direction. totally understand that i do not comprehend the full picture yet
-
gingeropolous
those are good thoughts to have. less human hands the better
-
sarang
There are techniques like binning that can apply better at larger ring size
-
sarang
These have the added advantage of reducing communication complexity
-
derpy_bridge
<[keybase] unseddd>: sarang: are those ring sizes practical?
-
sarang
That's the current goal
-
sarang
We're getting there
-
derpy_bridge
<[keybase] unseddd>: ok awesome! then will direct my attention there :)
-
sarang
I assure you it is not an easy problem to solve
-
gingeropolous
nonsense! just put it on a blockchain!
-
sarang
Brilliant
-
derpy_bridge
<[keybase] unseddd>: no, wouldn't think it is, but at willing to throw some braincells at it
-
sarang
Please do
-
sarang
Nobody has totally solved it yet
-
derpy_bridge
<[keybase] unseddd>: is there a tracking issue for ongoing efforts?
-
hyc
the current effort is in CLSAG isn't it?
-
sarang
Clsag is more of a stopgap
-
derpy_bridge
<[keybase] unseddd>: oh, so CLSAG and it's successors would enable large enough ring sizes for binning?
-
sarang
Other efforts include Ommiring, Triptych, Lelantus, RCT 3, Arcturus
-
sarang
Clsag would not
-
sarang
Some are externally developed, others are in house
-
derpy_bridge
<[keybase] unseddd>: sarang: is there a paper(s) or description of the binning technique you mentioned?
-
gingeropolous
-
gingeropolous
i think thats the reference
-
sarang
-
gingeropolous
woops
-
derpy_bridge
<[keybase] unseddd>: gingeropolous, sarang: many thanks :)
-
derpy_bridge
<[keybase] unseddd>: yeah, that paper makes it obvious that uniform distribution is terrible for input selection. sorry for wasting time suggesting it
-
derpy_bridge
<[keybase] unseddd>: would be interesting to re-run the POPETS18 analysis using most current chain data, see if their results still hold. still need to read the IACR paper
-
derpy_bridge
<[keybase] unseddd>: by re-running the analysis, only mean using the current 11-mixin with Gaussian distribution, and compare with say 11-mixin, (3,4)-bin binning strategy
-
derpy_bridge
<[keybase] unseddd>: the 7-mixin, 4-bin gives 4.0 min-untraceability in the POPETS18 paper, so curious to see if the 11-mixin, 4-bin strategy gets close to ideal 1/11 chance of 100% traceability