Thanks dabura,
I'm interested to that, since I implemented TransactionBuilder, and wanted a good way to send change without complexity.
If you pay someone and they see you signed a 100BTC input, then sent them 2 BTC... and then sent the 98 BTC change to another stealth address...
The problem is if this someone is a stealth address, then the OP_RETURN is already taken, preventing you to send back the 98 BTC to another stealth address. (except if you store the StealthMetadata relating to the change inside a database instead of inside the OP_RETURN)
So the easiest after all is either to generate the change with an HD key. Or generate an address with the StealthAddress (+ ephem key) and storing the StealthMetadata out of the transaction.
Which one is used in DW ?
Also, Using Dark Wallet doesn't turn your bitcoins into darkcoins, btw. "Darkcoin" is a completely separate cryptocurrency from bitcoin, and you must purchase those independantly.
I don't think I talked about DarkCoin, if that's the case, it was a mistake.
I'm well aware how Stealth Transaction are constructed and scanned since I implemented that on NBitcoin and the TransactionBuilder. But was puzzled about the change.
By the way, it motivated me to implement CoinJoin in NBitcoin. I'll think about that !