暗号通貨を使ったプロトコルを考えてみる
ここ何日か暗号通貨を使ったサービスを考えていたが、結局のところどのようなサービスでも共通している部分はプロトコルにしてしまった方がよいのではないかと考えるようになった。
なんとなく考えているイメージは以下のようなもの。
- 基軸となる暗号通貨を決める(Bitcoin, Altcoinなど)
- メッセージングのプラットフォームを決める(メール、Web、専用アプリなど)
- 複数サポートもあり
- メッセージングのデータフォーマットを決める(JSON, MessagePackなど)
- 受付用のウォレットアドレスを決める
- 公共・分散的なものの場合はスパム防止の意味でProof of Burnを選択
これらのパラメータは各々のサービス提供者が決めればよい。
あとはサービス提供者が受け取ったメッセージをどのように扱うかというところ。
サービス利用者は専用のウォレットアドレスを1つ決め、メッセージに対して署名し、サービス提供者に渡す。通信経路が暗号化されていない場合はオプションで暗号化してもよい。
場合によっては利用者に対して返信する必要があるので、そのようなメッセージングプラットフォームを選択するか、もしくはウォレットアドレスで暗号化してWebなどでブロードキャストしてもよい。
サービス提供者は受け取ったメッセージを検証し、問題なければメッセージに書かれている要求内容を確認し、入金などの条件を満たしておればそれを実行するといった感じ。
例えば以下のようなサービスが考えられる。
- ストレージの提供
- 計算資源の提供
- 翻訳
- 広告
現状ではこれらをまとめて簡単に構築できるようなフレームワークがないと思うので、いつか作ってみたいと考えている。