Cool!

On Mon, Jan 13, 2014 at 10:18 AM, Jeremy Spilman <jeremy@taplink.co> wrote:
I spent 1BTC on TestNet to a stealth address...
    TxID: df092896c1347b303da299bc84c92bef1946f455dbdc80ffdb01a18ea4ed8b4c

... but can you redeem it?
 
Code which generated this transaction is here:
https://gist.github.com/jspilman/8396495

That's rather interesting code. Is this using a private C# bitcoin implementation?
 
I wonder if the 0BTC OP_RETURN transactions should be hidden from the
Transaction List?

Yes, of course. The transaction list should just say something like

    "Payment received from Jeremy,  0.1 BTC"

Maybe the simple way to punt on this is to just show 'Merchant' in the
address column if it is available and an address is not.

I am surprised it's not already the case! Though "merchant" is perhaps a bit biased as a name, internally it perhaps should just be called "Recipient". There's no requirement for you to be a merchant to create payment protocol requests.
 
I can probably make the necessary changes to IsMine, but I don't know
where we should keep 'd2'/'Q2' unencrypted so it's available for doing the
necessary tests, but has no chance of ever be used as a stand-alone
private key?

The wallet format would need extending.

I'd feel a lot more comfortable if the protocol was reviewed by a professional cryptographer though. I think think Gregory already brought up an issue to do with people able to detect such payments by testing if decrypted values are points on the curve, or something like that.