Skip to content

トークン支払いのサブスクリプション実現【ERC1337, 948】

Note

こちらのページでは会員制のリサーチコミュニティ「TokenLab」で18年11月22日に公開したものを無料公開しています。

Image

以下のトピックで少し触れている通り、ETHやERC20のトークンでの支払いを定期的に自動更新で繰り返し、定期購読(サブスクリプション)の支払いを実現する規格EIP-948が提案されていました。

【2018年】最近気になるプロジェクトやニュースの紹介 - 紹介・共有 - TokenLab

その後EIP-948にフィードバックが入り、EIP1337として議論されています。

そして、Subscription規格を考えるEIP-1337 アライアンスがローンチしました。

支払いを自動で更新できるというのが一般的な使い方になりますが、分散ネットワーク等で何かしらトークンを使うときの定期的なトランザクションの発生に使えるという点でも使えるかもしれません。 個人的にはToken Abstraction(トークンの抽象化をして意識しないようにすること)が今後大切になってくると思っているので、その意味からも大切な規格と思っています。

背景

そもそも、なぜこのような提案がされているのかという点を簡単に触れていきます。 既存のビジネスは、サブスクリプションモデルで成り立っているサービスがいくつもありますが、暗号通貨では今のところそれが実現できません。 月額課金のサービスであれば、毎月、秘密鍵で署名が必要になります。

今の仕組みでやれるとすれば、何か信頼できるエスクローに預けて、やるという感じです。予め10 ETHをそこにデポジットから月々引かれていき、足りなくなったらまたそこに預けるという具合です。キャンセルすると、そのエスクローから返金されることになります。

これではUXが最悪ですし、最初に十分な資金を用意して置かなければいけない、十分なデポジットが入っているか定期的に確認しないといけない、などと実用的ではありません。

そこで現実的なサービスに暗号通貨・トークンが使えるようにと議論が始まりました。

仕組みの前に、トークン・アローワンスについて

仕組みの前に、少しトークン・アローワンスについて少し説明します。

これは毎回のごとくRadar Relayの解説がわかりやすいです。 簡単言えば、上限を決めて「その量まではスマートコントラクトがトークンを移動できる」という権限を与えることです。

(※Radar Relayというトレードする際に、Metamaskでトランザクション発生するため、「トークンをデポジットしなきゃいけない」と勘違いされる方もいらっしゃいますが、デポジットではなく、コントラクトに権限を与えているトランザクションなのです。)

Radar Relay記事から引用:

アローアンス権限を与えると、スマートコントラクトがあなたに代わってトークンを移動できる、ということになるのです。

ちなみに英語で書くと、Token Allowanceで、こちらのほうがわかりやすいかもしれません。Allowは動詞で許可する、許すという意味がありますし、Allowanceという名詞系は許可という意味の他に、「割り当て」という意味もあります。(許可を得た割り当て量というニュアンスで捉えるとわかりやすいかと思います。)

仕組みについて

例のために、サブスクリプションをしたい会社が、携帯電話の事業者(キャリア)だとしましょう。

・携帯電話の事業者は、トークンをユーザから引き出すスマートコントラクトをデプロイします。

・ユーザは、そのコントラクトを承認します。このコントラクトは、アローワンス量を無制限に、有効期間も無期限で設定されます。(承認といっても実際にやることは、資金のかからないトランザクションを作るだけです。)

・ユーザはcreateSubscripiton()関数を呼び出し、x量のトークンをy期間に1度、携帯キャリアから引き出されても良い、と許可します。

・そしてy期間ごとに、携帯キャリアは、withdrawSubscripiton()関数を呼びだし、この関数がtransferFrom()を使ってxトークンを集金します。

議論トピック・個人の意見

  1. サブスクリプションしているサービスをまとめて表示できるか サービスごとに定期購読をすると、Gas代がかかるので、まとめてくれる役割があったほうが良いのではないかということが話されています。そのほうがGas代も削減できるし、どの定期購読をしているかがユーザはわかりやすいです。 一方、そのまとめる主体に情報を渡したり頼ることになるため、自分で管理するほうが良いかも知れない、という意見もあります。

  2. ボラティリティの課題 結局、暗号通貨のボラティリティ高いと利用しにくいです。例えば5ETHで価格を固定すると、暴落したときには、サービス側が損ですし、高騰した際には、払う側が損になります。 サービスの価格を法定通貨建てで設定し、毎回それに合わせたトークン量を計算・請求するというのが短期的ソリューションになりそうです。 もしくは、DAIなどのステーブルコインにするのがベターかもしれません。

  3. 提供者側の利便性 サブスクライブしてくれるユーザのために、毎回スマートコントラクトをデプロイしていては、面倒だしGas代もかかってしまいます。こちらも何かまとめの機能が必要かもしれません。

  4. Gas代 毎月Gas代がかかることになります。ユーザが購読料に加えてGas代も負担するのは筋が宜しくありません。 例えば月500円だと思っていたら、ガス代をあわせると月600円になったり、Gas代が高いと請求日が重なって1000円になった、なんてことがあったら解約必須でしょう。 なので、Gas代が予め見積もることができれば、サービス料金から差っ引くなどとするのが良いかもしれません。

アライアンスメンバー

※アライアンスのプロジェクトで、面白い仕組み等は別途レポートで紹介予定です。

・ETH Grants(https://ethgrants.com/ ) メインネットで動いています。

見た目はほぼ同じですが、Tokensubscription( https://tokensubscription.com/ )が元になっていて、これをフォークすることができます。 以下の動画を見ると、使い方がわかります。(8分間の動画です)

https://youtu.be/I16a_XKAVoY

・Groundhog(https://groundhog.network/ ) アルファ版のテストユーザを募集しているようですが、まだPublicで触ることができません。

・8x protocol(https://8xprotocol.com/ ) Kovanテストネットで試すことができます。長いホワイトペーパーが別途であるので後日まとめます。 以下は、試しにNetflixという名前で10DAI / 月($10/ 月)のプランを作ってみました。

Image

・Gitcoin(https://gitcoin.co/ ) Gitcoinのfounder @owocki がEIP948およびERC1337を提案して開発しました。

・Blanc3(https://www.balanc3.net/ ) 申し込めばデモを触ることができるようです。ConsenSys配下のチームです。

まとめ

より良いUXとビジネスモデルが実現できるということで、クリプト/ブロックチェーンの界隈およびそのサービスにより多くのユーザが入ってくることを意味します。自然と期待は高まります。 相場は下落気味ですが、着実に開発や機会が広がっていると、個人的には感じています。

参考: