But aren't you also in your current design trusting the master node not to steal the collateral inputs?
The whitepaper has my proposed solution to that in the "Defending Against Attack" section:
http://www.darkcoin.io/downloads/DarkcoinWhitepaper.pdfThings have changed since then, so we'll have to come up with something else.
I don't see how that could have worked. The master node can simply lie about which collateral payments didn't fulfill all the stages. There is no way to know if the master node lied to other signatories. Did I misunderstand?
If collateral payments can be stolen, then this needs to be abandoned.
I am so sorry, but CoinJoin is a can of worms. I tried to tell you that weeks or months ago back on page 3xx of this thread.
Probably the only thing you can do is move master nodes to a reputation system. But this means you give your coin to the government. Reputation always ends up just like the
power vacuum of democracy.
The entire point of Satoshi's brilliant PoW invention, is you don't have to trust any node. He solved the Byzantine General's problem.
I thought of another solution which I am sure you also thought of?
Charge a transaction fee to all inputs of the Darksend.
That may be the only possible solution that works. Anonymity won't be broken. And collateral can't be stolen.
Then Sybil attacking the master nodes won't have any effect because you no longer correlate collateral to the triple of IP, input and output. The collateral is removed from the design. You instead charge a tx fee to every input. Master node can't correlate to blind signed outputs.
And Sybil attacking the inputs will be very very costly.
The downside is of course Darksends are not free. Nothing in life is free.
Yeah I think this is your only realistic option.
Edit: but the master node can steal the tx fees. And then not include the input in the output signing. So scratch this idea.
See CoinJoin just doesn't work. I tried to tell everyone that, but they get all angry at me. Sorry.