Kyber Networkは、オンチェーンでの分散型取引(ETH/ERC20)を様々なDApps上で実現させるための、分散型のプロトコルです。

先日、アプリケーション上でスマートコントラクトを利用してい行われた決済を追跡することが難しいことから、Kyber Networkはこの問題を解決するための規格『ERC1257』を開発しメインネット上にローンチしました。

本記事では、アプリ上でのスマコン決済を追跡し記録することを可能とする規格『ERC1257』についての解説を行っていきます。

ERC1257の概要を解説!

ERC1257は、スマートコントラクトを介して(或いは人間によって)執行されたトランザクションを記録することのできる機能を持つトークン規格です。

ソースとなるKyberNetowrkの公式Mediumでは『Proof of Payment Standard』と記載されており、この規格が『支払いの証明』としてのものであることが示唆されています。

先日、Kyber Networkの公式TwitterにてERC1257のローンチ発表が行われました。

現状の支払いのシステムにおける問題とERC1257開発動機

現状、例えば仮想通貨の決済に対応しているE-コマース事業主などのケースでは、ユーザーのアドレスや指定したデポジットのアドレスを利用して支払いの追跡を行うことが通常です。

しかし、マルチシグアドレスなどで行われるスマートコントラクトなどによって執行された支払いを管理するとなると、内部のトランザクションを追跡する方法が存在しないため、支払いの証明を行うことが難しくなります

日々複雑化していく、スマートコントラクトを利用して行われる支払いの仕組みに、共通して適用することのできるソリューションが存在しないことで、支払いの管理なども同時に難易度を増すことになります。

そこで、注文IDなどの情報を含める際に必要とされた面倒な複数のアドレスの準備を省略し、スマートコントラクトを利用する際に複雑化する支払いの追跡などを可能とする標準規格として『ERC1257』の構想が誕生しました。

ERC1257規格の技術仕様を理解する

ERC1257では、上述の問題解決に必要とされる情報をEVM logへと記録していくため、以下の5つの項目を標準化しています。

パラメータとその内容は項目は以下の通りです。

event ProofOfPayment(address indexed _payer, address indexed _payee, address _token, uint _amount, bytes _data)

  • _payer:支払いを行う人物
  • _payee:支払いを受け取る人物
  • _token:支払いの対象となったトークン
  • _amount:支払いが行われたトークンの数量
  • _data:アプリケーション固有の補助データ

以上の情報が標準化されているこのERC1257規格を利用することで、これまで難しいとされてきたスマートコントラクトを利用した支払いなどの追跡などが可能となります。

潜在的なユースケースを考えてみる

ERC1257規格を採用した場合、ログとして以上のようなデータがアウトプットされ、その結果支払いの追跡が容易になるという説明をこれまで行ってきました。

この具体的なユースケースですが、Kyber NetworkのMediumでも言及されている通り、支払いにまつわる標準化されたデータを利用する必要がある事業体によって利用されることが主となるのではないかと考えています

ERC1257のGitHubにはBitcoinでピザが購入されたという事例をもとに、ピザ屋が分散的に支払いを完了させ、ログを排出するためのサンプルコードが記載されています。

まとめ

Kyber Networkが分散型決済の更なる促進を目指してメインネット上にローンチした『ERC1257』についてをまとめていきました。

マルチシグアドレスなどにおけるスマートコントラクトを利用した支払いの記録が難しいということは知りませんでしたが、標準化された規格の登場により、さらに幅広く分散型決済が応用されていくための地盤が固まったのかなと思います。

今回執筆の参考にした記事のソースは以下からご覧いただくことができます。

Introducing ERC1257: Proof of Payment by Smart Contracts
ERC 1257: Proof of Payment by smart contracts #1257