Are some possible ways to embed messages in the blockchain better in some sense than others? What are the important differences?
(Followup on this answer)
There are multiple places one can embed messages in the block chain. Any field that takes arbitrary values can be used.
One could also try creating partial SHA collisions that would encode to some short message, although this method would require a lot of computing, yielding short message encoding.
The most correct way is to create a merge-mined message tree.
If you just need a short number (a transaction id, for instance), you can embed it in the transfer itself.
Then there's abuses... these cause excessive bloat the to must-be-stored-forever-by-all-full-nodes blockchain and harm Bitcoin. Please don't do these:
You can embed it as the "address" of a transfer, with a zero-amount output.
btcmsg goes to an extreme and embeds it in the amounts of the transfer.