Seems like for every 3 steps forward, we are having to go backwards more than half. Another idea is trying to build on the coinshuffle concept.
I am sorry for this being the 2nd Darksend flaw I had to point out in such a short time, but I think the coinjoin route is the right one, it's just not easy to get everything covered.
I think the only real way around this issue is to have the micro denominations (0.10 and .01) at the expense of bloating the chain
Micro denominations are useful for a variety of reasons, including paying Darksend fees. I am not sure the "randomly cashing in collateral" implementation is bullet proof. I'd like to know how this "random" is determined. When cashed, the collateral is a miners fee and miners as well as MNs profit from fees so they are incentivized to cash as many collaterals as possible. But that is another problem (if it is one at all, depends on how "random" is determined).
EDIT: OHHH I see... just found my answer... When I spend a change by itself, it can not lead to the origin but when I spend an amount more than the change, it takes the change and the non-anonymous DRK and yes, the transaction leads straight to the origin address...
It's still an anonymity issue even is the change is only spent by itself, because that way it link together the purchase it is used on plus the one that created it.
Just my two duffs, I think that mandatory donating change is not a good solution.
As the technical aspect of Darkcoin is not my forte, I don't have any solutions to offer, but I will add that this would not be popular.
Please take your time with this one, and reach a solution that encompasses all DRKs, and doesn't need to leave out change. This will be attacked by our competitors, and with good reason.
We are marketing ourselves as true anon, not 95% anon (keep the change). This is very important!
While I think that the donation solution is not a bad one, I have to agree that making is mandatory is a no-go from a marketing point of view.
Also, yes, Darkcoin is being marketed as a an anonymous coin and not a 95% anonymous coin in case you don't want to donate your change, which is why a solution not requiring you to donate your change would be better.
However, this can be as easy as naming is a "fee" instead of a donation and adjusting the fee so that there never actually exists a change (it would instead be donated as a miners fee). That way, there would be no direct beneficiary of such a donation, just a "Darksend network cost".
Aswan,
I follow your discussion and agree with your request for whole numbers (1,10,100 etc). It is more anonymous if they are indistinguishable from other non-darksend transactions. Outside observers would not know if blockchain transactions were purchases or a person mixing.
It seems that the idea of "dead change" can be handled through more darksend mixing if the numbers are whole and large. i.e. 5 drk "dead change" could be remixed if whole numbers were used to darksend mix. (making 1,1,1,1,1 remixed drks) It looks like this is still up for debate on how to resolve, but definitely solvable.
Yes, if the dead change amount is one that can exactly be re-denominated into darksend denominations without a leftover, this is possible. It would also be possible to donate the leftover or to make the leftover a miners fee in order to get the same result.
Regarding your 0.99 problem. I have a suggestion that I would like to hear your thoughts. What if...
- The "zombie" change was in the third category "dead change". This would be listed separately in the GUI as you suggested.
- I understand and agree that this "dead change" cannot be remixed with other dead change without exposing information.
- Here is my suggestion...
- Save these change addresses in a separate category and let them build up (ie .99 , .85, .02 etc)
- Each one of them would have their own address so no mixing problem yet.
- Let the "dead change jar" build up to a standard amount in all people's clients. (ie 3, 5 or even 1 dark) Let's use 3 in this case.
- It would not need to be an exact even amount because that would be unlikely to occur.
- Here comes the magic...
- Now my "dead change jar" is full (ie 3.12 drk)
- I would wait until other clients are ready to mix "jars". Let's say 2 other people have jars "full" (3.2 and 3.3 drk)
- We all "pour" our change into a single address (of course the masternode handles this) <--- the big jar
- Then the masternode returns each of us our change (I would get 1, 1, 1 and 0.12 dark back from the masternode in 4 addresses.) You can see each person would get a similar return.
- It would be difficult for an outside observer to know which of the "dead change" transactions were tied to me, especially if I then darksend denominated the 1,1,1 and dumped the 0.12 back in the "dead change jar".
- More people mixing "jars" together or a larger "full jar" amount (ie 5 drk) improves anonymity.
- This method causes little bloat to the blockchain
- Your thoughts?
- Anyone's thoughts?
This is a really interesting idea and when I first read it I thought this was the perfect solution. However, I kept thinking and came up with some problems:
What you suggest is simply Darksend mixing your dead change with other people with the special case that all inputs are non-anonymous and that at least 2 inputs belong to the same person.
Unfortunately, in this special case, Darksend is not quite as strong as it usually is.
Because all inputs are non-anonymous, this system is vulnerable to a falsification investigation.
An example:
There are 2 Participants (to make it easy) in such a dead change re-denomination Transaction (DCRD-Tx?), each one putting in 2 dead changes, resulting in 4 inputs.
One of the inputs was an output of a Tx that has been used to purchase something the investigator wants to know the buyer of (what a sentence
). He knows the buyer has at least 2 inputs in the transaction because thats how DCRD-Txs work. He also knows there can only be 1 other person participating in this Tx.
So he starts looking at the 3 other inputs and starts to investigate. If he can link only 2 of them together, he knows the last one belongs to the person he is looking for.
So how does he link 2 together? It certainly won't always work just as spending dead change doesn't always compromise your anonymity, it's just possible that it does.
2 Inputs could be linked together in case their parent Txs send coins to the same receiver (an exchange, a gambling site, a hidden marketplace etc.) or if one if the changes leads to the identity of a person that proofs it owns the other input as well.
Now ofc thats only with the minimum amount of people and the minimum amount of input. If there are 8 people with 2-4 inputs each, averaging 24 inputs, it's a lot harder.... but not impossible.
So why is this not a general problem of Darksend? The answer is it certainly can be but normal Darksend mixing is inherently different.
In Darksend mixing, you first anonymize your coins and then spend them, making the investigator go back on the transaction chain in order to try to find you.
DCRD-Txs attempt to anonymize your coins after you used them trying to cut the links (which in normal Darksend mixing don't exist yet at the time of mixing).
That way DCRD transactions don't have the option of multiple layers (like Darksend mixing does). Imagine Darksend only doing 1 round. It't like that but there's a reason the client required at least 2.
However, the concept is quite nice and if already improves anonymity, even if it's not at Darksend levels (yet). I think it has great potential and might be the route to go to fix the dead change issue. Maybe it just needs a little tweaking.
Another downside is you REALLY have to be careful with your leftover change from a DCRD-Tx sind it can de-anonymize all the purchases of all the parent transactions of all the inputs you used in it, and this chain will never be broken if it is reused. Maybe at some point there would be a donation taking place.
Coinjoin is so interesting... and I hope your idea can be further developed into a good solution to the problem. Implementing it would definitely improve anonymity, I just don't think it's enough since it's far from Darksend level anonymity.
Also thanks for supporting my request for whole numbers in DS denominations.
Edit: I forgot to mention that because one DCRD-Tx per 2 changes can take place for you, you will only get one masternode, which makes malicious masternodes really scary, which is another reason why with Darksend, there are multiple mixing instances.
A warning isn't enough... the average person will say fuck it and send the coins anyone. The second that change is used as is, linkages start forming. I wouldn't mind hearing from
Aswan in regards to paper's idea about the change jars.
There you go