Still, I keep thinking that if precision is ever increased to about 32 decimals, we could send message using small change.
I think it would be pretty cool.
Edit. For small amounts, one could divide the transfer in two. The first part being the message, and the second making the necessary complement.
Let's say for instance I want to transfer one bitcoin with the message 'bitcoin is cool'.
I use a simple 27 characters coding. 'a' is 0, 'b' is 1, 'c' is 2 and so on. The space character is 26.
Then the decimal representation of 'bitcoin is cool' is :
reduce( lambda a, b: 27*a + b, [11, 14, 14, 2, 26, 18, 8, 26, 13, 8, 14, 2, 19, 8, 1])
which is 1262462588570946134764
then we make two transfers : one of 0.1262462588570946134764 BTC, and an other one of
1 - 0.1262462588570946134764 = 0.8737537411429053865236 BTC
Wouldn't that be cool ?
Alternatively, if I'm ok with paying a small fee for such a data transmission, I can transfer an amount of :
1.00000000001262462588570946134764
But this is possible only with a 32 decimals precision.
For very very small amounts, it won't be possible. But I guess no one would want to associate a message to such small transfers.
Edit. I suspect there are deep implications to this idea. I think it could be related to Shannon's theory of information. Somehow, I think it could be possible to consider the smallest bitcoin unit as a "right to transfer a bit of information trough the bitcoin network". This could help the whole abstract conceptualization of the network. I will write more about that once it will get clearer in my head.