How to store data on the blockchain? I am wondering if it is possible to give someone a bitcoin transaction ID and with that he can read some hidden data, like the blockchain.info notes on transactions, but for real, stored in the blockchain forever.

I had this idea but I don't think if it would be a good practice:

Send the minimum amount of BTC possible, wich is 0.00000001 BTC, or 1 satoshi, to an address, and in that address would be the data.

1 ArFAXhvMbwJuub4ujnVbLFszqX3McuzsX

As far as I know, the address is formed by 30 letters in base58, but since the first char must be 1 and the last four have to be the checksum, then you have 25 letters in base58, and that's like 17 bytes.

So, you have to pay like 0.0001 BTC for the transaction fee, and after that you can add data to that transaction at a price of 17bytes per 1 satoshi, by sending satoshis to many addresses that contains the whole data. Imagine if we could store data there forever,.. and communicate with the future...

Is there any other technique of doing this? Is this technique a good practice?
then you have 25 letters in base58, and that's like 17 bytes.


20, actually.


  So, you have to pay like 0.0001 BTC for the transaction fee, and after that you can add data to that transaction at a price of 17bytes per 1 satoshi, by sending satoshis to many addresses that contains the whole data. Imagine if we could store data there forever,.. and communicate with the future...


You're going to run into two problems with this: transaction fees and dust rules. Transaction fees mean that each transaction will cost you a couple of cents. Dust rules mean that transactions with outputs below a certain size will simply be dropped. The rationale behind this is that you're sending a transaction so small that the fee required to redeem it will be more than the money that you're sending.

In the longer term, the data you're sending is going to look identical to all of the other data that's in the blockchain. That means that you need to identify your transaction somehow. That's usually done by providing the txid, which is 32 bytes.


  Is this technique a good practice?


It depends on what you're trying to accomplish. For example, are you trying to communicate anonymously? You should use BitMessage via Tor instead. Do you want to embed transactional data, like Counterparty does? Embedding the data in Bitcoin is probably the best solution for that.


  ... and communicate with the future...


Well, the Internet Archive crawls all webpages (including this one!) so you're already uploading the things you've typed into a distributed, long-lasting datastore.