Author

Topic: include messages in transaction, alternate use: anti spam email (Read 2210 times)

full member
Activity: 156
Merit: 100
Firstbits: 1dithi
We already have hashcash. Satoshi was inspired by it to make his paper.
hero member
Activity: 868
Merit: 1007
For stopping spam email perhaps there is an even simpler approach:

If you want to send me an email please make a payment of 0.001 BTC to 1xxxxxxxxxxxxxxxxxx.

The modified email app would make the payment and include the from address(es) in a header (perhaps X-Bitcoin-Payment) then the receiver can verify the payment if the header is there or move the email into your junk folder.

This approach should stop spammers and actually make it financially rewarding for you to get email (guess I don't mind getting ads if I'm being paid for it). Smiley

Cheers,

Ian.
It can be even better than this.  One of the output addresses of the transaction can be a hash of the email message.  The recipient sees the transaction hash in the header, hashes the email payload (see CommitCoin) then checks to make sure one of the output addresses is that hash.  I think that output can have a value of 0 (if not, then 1 Satoshi).  If it pays you enough bitcoins, it moves the message into your inbox (if not, it stays in spam or some other low priority folder).

As for Casascius' concern about HDD space, I don't think the bulk of emails would be sent this way, but it would be a way that one could bypass spam filters if you're a correspondent that's unknown to the recipient.  Also, remember that nodes on the bitcoin network do not need to retain the full transaction history to work…they only need to retain all unspent transactions.
legendary
Activity: 1890
Merit: 1072
Ian Knowles - CIYAM Lead Developer
For stopping spam email perhaps there is an even simpler approach:

If you want to send me an email please make a payment of 0.001 BTC to 1xxxxxxxxxxxxxxxxxx.

The modified email app would make the payment and include the from address(es) in a header (perhaps X-Bitcoin-Payment) then the receiver can verify the payment if the header is there or move the email into your junk folder.

This approach should stop spammers and actually make it financially rewarding for you to get email (guess I don't mind getting ads if I'm being paid for it). Smiley


Cheers,

Ian.
legendary
Activity: 2576
Merit: 1186
No reason clients can't relay them too.
hero member
Activity: 504
Merit: 502
It can be be done entirely outside the blockchain, and entirely without needing everyone to download everyone's messages and it can be done without revealing everyone's message to everyone else.

From my 'features I'd like in my alternative client document':

https://github.com/andyparkins/additup/blob/master/doc/release.mdwn

Quote
### Receipts

This is slightly outside the realm of responsibility for a client, but
it would need support in the client to work.

Nobody is going to keep copious notes when they buy things with
bitcoins. With a bank, at the end of the month I get a statement that
tells me where I spent my money. With Bitcoin all I would get is a list
of addresses. My solution to this is to have a secondary distributed
system (or centralised, it doesn't matter), where vendors can publish
the details of a particular sale. Even if it was just their name.

People will obviously not want that information published, so it needs
to be encrypted if it is going to be publicised. The solution is to use
the public key of the sender of coins to encrypt the details of the
receipt, then store it in a distributed database against the transaction
hash. The client then makes a web lookup for all expenditure on a
particular address, and receives (of course) a load of encrypted
messages. Being the owner of the matching private key means that they
are (uniquely) able to decrypt those messages, which the client would
automatically do and copy the message into its local database.

I think this can be done with ECDH using the exact same keys as are used
for signing. I also can't see how it breaks security as the private key
is never used, and if it were possible to break a private key simply by
generating known messages to it, then it wouldn't be very secure anyway.

As a bonus, the message could be signed by the receiver of the coins so
that the client has a way of verifying that it came from the merchant.
This stops people from spamming transactions. If the signature signed
the encrypted message, the receipt server could verify too, and discard
messages from anyone else.

It's just another service; outside of bitcoin.  But to be really useful it needs integrating into the clients; so probably should be standardised.
hero member
Activity: 523
Merit: 500
If you could include a message containing an email adress or an adress you would be able to sell things online very easy.

The money and the adress where to ship or the email adress where to send a download link.
Ofcourse this can allready be done but it would be even easier.


hero member
Activity: 518
Merit: 500
Fair point. Then again, I dont think anyone would expect such a system to replace existing email and approach its volume anytime.. ever.
The first use case, where messages are linked to transactions the way you add comments to bank transfers, would have no impact on the blockchain.

The second use case, if this would also become used as a secure messaging system, yeah there would be an impact. Then again bitcoin will have to scale anyway, the problems associated with a too large blockchain will have to be tackled sooner or later. We are at only 30K users today. If the system cant support a 10x or 100x increase in transactions, we have a big problem anyway.
vip
Activity: 1386
Merit: 1136
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
So instead of downloading 1 mailbox worth of spam, we'll each be downloading and permanently storing a block chain full of microtransactions containing a couple hundred bytes representing e-postage for every e-mail ever sent anywhere in the world.  Buy stock in hard drive companies if it ever happens!

I could see it work if some service offered to be the escrow / bondsman for the antispam service, where a mail server could query, "is this token good for anything", and could redeem it if it was attached to spam, keeping it all off the block chain.  The block chain cannot sustain a transaction for every e-mail that gets sent.
hero member
Activity: 496
Merit: 500
This would be awesome!
legendary
Activity: 1652
Merit: 2216
Chief Scientist
...a system could be devised that stores the messages not in the blockchain, but somewhere else, using the transaction ID to link the message with the transaction. The message could be signed with the private key of the person initiating the transaction.

Thoughts?

Good idea. Somebody should do that.
hero member
Activity: 868
Merit: 1007
Seems entirely doable.  Any document can be hashed into a valid bitcoin address.  You could create a transaction that sends a very small amount (or zero if allowed) to such an address as well as a coins to a real bitcoin address that the recipient can claim.  The sender can send the email content as well as the bitcoin transaction.  The recipient can verify the email content and the bitcoin transaction and trash the email if it isn't valid (email doesn't hash to one of the outputs of the transaction, the transaction is not a valid bitcoin transaction, or the amount paid to the recipient is insufficient).  You can create a website that makes it easy to send and receive such emails (and set your price for receiving an email).  People could use such addresses for their public email and only reveal their unprotected email addresses on a selective basis.  The service could also require a small fee in the transactions.
hero member
Activity: 518
Merit: 500
My primary concern was having the ability to add comments to a transaction (without bloating the blockchain). That you could use such a system as a secure, spamfree and anonymous email alternative is just a bonus that may or may not be developed or used as such.
legendary
Activity: 1890
Merit: 1072
Ian Knowles - CIYAM Lead Developer
Something that was thought up years ago was called "hashcash" which was designed to address the problem of spam by requiring a "proof of work" solution (a set of leading zeros in an SHA1 hash found by trying different nonces very much like the Bitcoin proof of work implementation by probably no co-incidence).

The "hashcash" string would need to include a date along with the recipients email address so that the proof of work could not be re-used. I actually included an implementation of this in an Email client that I wrote recently but I don't think the idea has ever really taken off (one major problem with the idea is the difference in computational power between different computing devices you might use to send email).

The benefit over actually using bitcoins is that the hashcash is just the time it took your computer to solve the proof of work - very little $ cost (and no need to involve exchanges or other ways of getting credit) with just enough difficulty to make it unprofitable for spammers to even bother.

Actually I find that these days I seem to get very little spam (perhaps due to the bayesian detection systems being used) so I doubt that the problem will perhaps ever get to the point of us needing to buy "email stamps".


Cheers,

Ian.
hero member
Activity: 518
Merit: 500
Apologies if this has been discussed a million times already, which I would have suspected, but I cant find any such discussion, so here goes:

Why dont we have the ability to include a message/comment with every transaction?  It would be much easier to keep track of your transactions.

The only reason I can think off, is to avoid spamming the blockchain . To counter this,  a system could be devised that stores the messages not in the blockchain, but somewhere else, using the transaction ID to link the message with the transaction. The message could be signed with the private key of the person initiating the transaction.

Once you have this, it suddenly opens a new possibility.. spam free, secure and anonymous email. You can use this system as a regular email system, where your email address is basically a bitcoin address and you can set a minimum bitcoin value, and consider anything below this threshold as spam.  This is not unlike some proposals that have been made in the past to counter spam with digital post stamps. Except, we already have most of this in place. Our digital stamps would be bitcoins.

Thoughts?
Jump to: