ERC-223 tokenは画期的な部分もありますが、完全にtokenの喪失を防げるわけでは無いです。
例えば、fallback関数を定義済みのContractに対しては送金可能だし、0x00000000000000000000000000000000000001234に送金したら多分private keyを持っている人がいないのでやっぱり失われてしまいます。
ということで絶対にtokenが失われないtokenを実装してみました。
ソースコードは以下を参照ください。
github.com
コンセプトは、そもそも送金したらすぐに指定されたaddressにtokenを送ってしまうから失われてしまうわけで、じゃあ、transferの時に一旦送金予定な状態にして、receiverが明示的にreceiveを呼び出した時に初めてreceiver addressにtokenを移動するようにすれば安全なんじゃ無いの?ってことで作ってみました。
コンセプトを形にしただけなのでいろいろとあれですが、何かの参考になれば。