Welcome to the Dash Forum!

Please sign up to discuss the most innovative cryptocurrency!

Darksend technical diskussion - anonymity, liquidity, improvements

Discussion in 'Development Tech Discussion' started by Aswan, Nov 10, 2014.

  1. Aswan

    Aswan Member

    Joined:
    Jun 26, 2014
    Messages:
    68
    Likes Received:
    216
    Trophy Points:
    73
    Thanks! I followed darkcoin closely when it first came out and even tho I don't have a huge stack of DRK, I am more than willing to share my thoughts and ideas about how to improve DRKs features, especially the ones related to anonymity.

    I have read the thread and there have been different suggestions on how to fix this fee problem. I kinda like the one with a miners fee being paid for each round, which then acts as a proof of payment to the masternode.
    I imagine this proof proof of payment is a transaction ID which is signed with the address to proof ownership (if it wouldn't be signed everyone could claim it's his).
    The problem I see here is that the masternode knows who paid the fee even though this information is not publicly available. A malicious masternode could therefore weaken the mixing process and in the case of it being the masternode of the last round of Darksend, if could even break the anonymizatio. This process is still better than the one with the fee included in the Tx, because it would prevent de-anonymization through blockchain analysis, but the masternode owner could still use the information the same way as in my described problem #1.

    The other solution of doing a single round of fee mixing only provides exactly that. A single round of mixing and therefore a single masternode can break the anonymization. It's not an option here.

    What I want to suggest is a modified version of my initial suggestion:

    There could be an additional denomination size representing the fee. For conformities sake, this could be a 0.01000001 denomination, which is included into the darksend process as usual.
    However, instead of it just being mixed, it can be used to pay the fee. So if you have 3 x 0.01000001 denominations, you'd only have 2 left after a round of dark send because the other one has been used as a fee.
    As stated above, the chain will eventually have to be broken,but it does not have to happen within 8 rounds. there could be always at least 8x 0.01000001 denominations created when starting darksend. the only downside I see here is that for each transaction, it is known how many rounds are left because of the amount of 0.01000001 denominations. But this it only the combined rounds of all 3 participants and not an anonymity issue imo.
    Still this could be prevented by always generating a random amount of 0.01000001 denominations between 8 and 15. That way, there is no way to know how many darksend rounds are to come.
    Why up to 15? because then even the last round of darksend can have 7 of those denominations left (8 would overkill since there just was a darksend transaction using one fee, leaving potentially 7 more, which makes 8 and is the max. standard amount of darksend rounds users do).

    This way, neither blockchain analysis nor a a malicious last masternode can break anonymity.
    the downside would be that darksend transaction would increase in size, but the 0.01000001 denominations should be darksend compliant. One could argue about allowing up to 15 of them per participant or limiting them to 9 per participant (because then the next higher denomination would already be used).

    What I can see being disastrous is the 1 day subscription idea with the signed proof of payment. This proof of payment can be just handed around. There could be a wallet which you can always mix for free with because "someone" paid the daily fee and the proof of payment gets distributed to all clients. Also this would enable attacks on the masternode network.


    I didn't know they did this but I think it's good practice to do so.

    It's true that we probably don't need liquidity providers in the future. It was just a suggestion to get this whole thing started. Because of the few participants right now, a little bigger transactions wouldn't hurt and it would add liquidity.
    It's a trade - chain size for liquidity. I just thought DRK could afford this right now and it would help a lot to get things rolling. It could be reverted later on when there is enough liquidity.
    Anyway, it was just a thought about a feature, not a bug so no reason to jump on it like theres no alternative :)

    Well, it has to be made sure that all the coins are still sufficiently mixed. If one denomination is only mixed once while the others are mixed 5x+, that might be a problem.
    Also, there would probably have to be more fees paid since there would be more mixing instances for every participant.
    Thats why I said I haven't been able to wrap my head around the transaction fee thing in this case.


    sure,
    DRK: XnNazPB1fPS59P9CfEtZWtqcmDttFWNj7A
    BTC: 1FGJjQHesURPnLWFEU1R5fZy8PdP7KBkEY
    Thanks :)

    Thank you :)
     
    • Like Like x 4
  2. Ignition75

    Ignition75 Active Member

    Joined:
    May 25, 2014
    Messages:
    332
    Likes Received:
    215
    Trophy Points:
    113
    Tip Sent - fcbd62abe082985f3d0a58a3d7a3012a740e287c163fe8e373cf3b42106091dc-000
     
    • Like Like x 3
  3. jpr

    jpr Active Member

    Joined:
    May 11, 2014
    Messages:
    493
    Likes Received:
    393
    Trophy Points:
    133
    Aswan you do know we need more devs, don't you? :)
     
    • Like Like x 4
  4. Raico

    Raico Well-known Member
    Foundation Member Dash Support Group

    Joined:
    May 28, 2014
    Messages:
    138
    Likes Received:
    142
    Trophy Points:
    193
    Thanks for your contribution~
    Glade we have you in the community

    TX:8e78b8b86c8352678a8e92743471c7ceb3fa9f73cf2290ba6bc9abbf477c735c
     
    • Like Like x 2
  5. Aswan

    Aswan Member

    Joined:
    Jun 26, 2014
    Messages:
    68
    Likes Received:
    216
    Trophy Points:
    73
    Thank you for the donation :)

    Thank you as well.

    And thanks to everyone else for the kind donations.

    Well, I usually only code in php and related, but thank you for your trust. I will stick around and throw in some ideas though :)
     
    • Like Like x 8