Lightning Network上でチャットができるWhatsatとは?
Whatsatとは
ライトニングネットワーク(以下、LNと称す)の送金プロトコルを活用し、送金データにメッセージを付与することで、ピア・ツー・ピアにチャットができるアプリケーションです。Proof-of-Conceptという形でテストネット版LNDのフォークとして実装されており、ここからダウンロードが可能です。
チャットアプリにはLINEやMessanger,Whatsappなどがありますが、これらは中央集権サーバという形でサービスが成り立っており、各サービスは運営会社によって管理されているので、メッセージの検閲などによりプライバシーを守ることが難しい場合があります。
WhatsatはLNの非中央集権的なピア・ツー・ピアネットワーク上で暗号化されたデータを送信するため、検閲耐性があります。
今までは送信できるデータに制約がありましたが、TLVフィールドというフォーマットが拡張追加され、送信できるデータが増えたため実現可能となりました。ビットコインのオンチェーンにも、OP_RETURNという任意の文字を書き込めるフィールドが存在しますが、そのデータサイズが増えるようなイメージです。ただし、大きく違うのは、そのデータをブロックチェーンに書き込むのかどうかで、オフチェーンであるLNでは書き込みません。
メッセージ送信するのに支払いは不要
メッセージを送信するために、LNでのペイメントを利用していますが、実際に送金をする必要がないのが、面白い特徴です。LNでの送金では、送金データを以下の図のように、中継ノードを伝播して送金します。
受信者は送金データを受け取り、問題がないかを検証して、その結果を逆ルートを伝播させて送信者へ伝えます。以下の例では送金データが不正だったため、エラーを返しています。
この仕組みを使い、送信者はあえて不正な送金データにチャット用メッセージを付与して送信します。受信者は不正データとメッセージを受取ることで、チャットができる仕組みになっています。
ただし、今後は中継ノードがデータ転送するために前払い式で手数料をとったり、ペイメントの失敗回数が多いノードへの転送を拒否する場合が予想されており、そのような場合は、1メッセージ毎に数ミリサトシの手数料が必要になってくるかもしれません。
インボイスの発行はどうやっているか?
通常、LNでの送金は受信者がインボイスを発行し、そのインボイスをもとに送信者が送金しますが。Whatsatでも事前に受信者からインボイスを発行してもらう必要がある場合は、とても不便ですよね。しかし、Whatsatでは次のような仕組みを使ってこの問題を回避しています。