52756e6e696e6720626974636f696e
ビットコインのブロックチェーンに任意文字を書き込めるのは意外と知られていると思います。送金データにOP_RETURNというOPコードを付与することで、任意文字をブロックチェーンへ書き込むことができます。
実はライトニングネットワークでも送金データに任意文字を付与できるのをご存知でしょうか?LN上のP2Pチャットアプリ「SphinxChat」はこの仕組みを応用して送金データに文字列を付与して少額送金することで、チャットを実現させています。任意文字を埋め込むために使われる仕組みはTLV(Type Length Value)と呼ばれるデータフォーマットで、このフォーマットでオニオンメッセージ(データのカプセル化)を作って通信相手に送信することで、予め指定された型番号(Type)をデコードすることでメッセージを読み取ることができます。任意メッセージのTypeは34349334
となっています(c-lightning, LND)。
LNノードのログを解析していたら本日付で以下のようなデータが送金データと一緒に送られていたことに気付きました。メッセージを書き込むためのTypeは34349334
でした。そのTypeに対するValueを変換することでメッセージが読めるようになりますが、、、
"custom_records": {
"34349334": "52756e6e696e6720626974636f696e",
"34349337": "72797270376464756b39786d6b6334336a63396a6e6338676833706f6d6a6b74347966753778726a39356763746534387368737a6363756e347471636965626d77736237347839707231703735653674726a336a6e396139367333646768636b35357374636a3939",
"34349339": "0387be05e3549387cc3bc546def54d4fe1630358528316826c301853a67355fa14",
"34349340": "4879706572426974636f696e697a6174696f6e",
"34349345": "74657874",
"34349347": "74657874",
"5482373484": "af5d8c79f58a5912dfc8372d7b9d1efae7c2cc5ffdfa81c97e613955f0d180e7"
},