Modify mixing to send denominations of last mixing round to a different wallet?

Antti Kaikkonen

Active Member
Jun 20, 2017
258
171
103
dashradar.com
Dash Address
XnZdwT1w2kGeH6RujwoyJ7BBNrukdyTBRB
Should mixing be modified to allow sending the denominations of last mixing round to a different wallet?

Then it would be quite easy to implement PrivateSend functionality in a mobile or hardware wallet.

It could work like this:
1) You enable the setting and input your xpub from mobile or harware wallet into the Dash core client settings.
2) Wallet generates dash addresses from the xpub and uses those to receive the denominated ouputs from the last round mixing transaction
3) Now you have mixed denominations in your mobile or hardware wallet that you can you can use to make privatesend payments (just avoid receiving any change, or configure the change address to be a donation address of someone)

I'm not a C++ developer so it would probably take me quite long to implement something like this. This is why I'm asking if someone else is interested in developing this feature. It might be too confusing to be added in the official core client, but someone could make an unofficial modified client that supports this feature. Maybe he/she could even make a proposal to receive funding from the treasury.
 

thephez

Member
Dash Core Group
Jan 23, 2016
131
82
78
There have been some discussions about this various ways. The real solution to it is going to be better once the DIPs (2-4) released yesterday are implemented. I would recommend checking out the blog post for a good summary.
 

Antti Kaikkonen

Active Member
Jun 20, 2017
258
171
103
dashradar.com
Dash Address
XnZdwT1w2kGeH6RujwoyJ7BBNrukdyTBRB
There have been some discussions about this various ways. The real solution to it is going to be better once the DIPs (2-4) released yesterday are implemented. I would recommend checking out the blog post for a good summary.
As I understand it, those changes might enable mobile wallets to perform mixing but I don't see how hardware wallets could perform mixing without constantly clicking the confirm button. So this type of solution might still be needed to enable trustless PrivateSend on hardware wallets.
 

thephez

Member
Dash Core Group
Jan 23, 2016
131
82
78
As I understand it, those changes might enable mobile wallets to perform mixing but I don't see how hardware wallets could perform mixing without constantly clicking the confirm button. So this type of solution might still be needed to enable trustless PrivateSend on hardware wallets.
Yes, I think that is a good point regarding hardware wallets. There would definitely be a few things to think about.

For instance, how the software using the hardware wallet knows how many rounds the funds have gone through (seems like that would be good to know) - this could probably be handled by using unique derivation paths for them (i.e. m/44/.../2/x - funds with 2 round, m/44/.../4/x - funds with 4 rounds, etc.). I imagine there will be a DIP related to this to help standardize implementations once mobile PrivateSend is being developed .
 
  • Like
Reactions: akhavr

Antti Kaikkonen

Active Member
Jun 20, 2017
258
171
103
dashradar.com
Dash Address
XnZdwT1w2kGeH6RujwoyJ7BBNrukdyTBRB
Yes, I think that is a good point regarding hardware wallets. There would definitely be a few things to think about.

For instance, how the software using the hardware wallet knows how many rounds the funds have gone through (seems like that would be good to know) - this could probably be handled by using unique derivation paths for them (i.e. m/44/.../2/x - funds with 2 round, m/44/.../4/x - funds with 4 rounds, etc.). I imagine there will be a DIP related to this to help standardize implementations once mobile PrivateSend is being developed .
I don't have deep knowledge about hardware wallets but I imagine it could work like that. Also I don't see why it should be required for the hardware wallet to know the number of rounds.

Everything should be fine as long as we can prevent someone other than the owner sending fake denominations to the wallet in order to de-anonymize transactions. This shouldn't be possible if you don't share the addresses with others and only choose PrivateSend inputs that have arrived in an address first (if an address has received more than one denomination then only use the first one).