【EIP/ERC Vol.3】〜EthereumにおけるIdentity規格について〜

Hiroyuki Narita
Metaps Blockchain JP
13 min readDec 19, 2018

オンライン時代におけるデジタルIdentityが解決する課題は、個人の存在確認の他、マネーローンダリング対策・テロ資金供与対策に加え、信用スコアの確立といった広範囲に渡ります。こうした課題に対し、国連を中心に「世界の人々にIdentityを付与する」を目的としたID2020というプロジェクトや、Blockchainを用いて「非中央集権的なIdentityシステムを実現」を目的としたuPort(ConsenSysが主導)、HyperLedger Indy(Linux Foundationが主導)など様々なプロジェクトが存在します。そこで今回、このIdentityに関する統一規格としてEthereum上で議論されているEIP/ERCの主要規格と関連プロジェクトをいくつか見ていきたいと思います。

目次

  • Identityの現状
  • BlockchainにおけるIdentityシステム
  • EIP/ERCの主要規格
    ・ERC725/ERC735
    ・ERC780
    ・ERC1056
    ・ERC1484

Identityの現状

Identityを証明するツールとして真っ先に思いつくのがパスポートや運転免許証といったものではないでしょうか。日常生活を送る上で、金融機関の口座開設・携帯電話の契約・不動産の賃貸契約・海外旅行の搭乗手続きなど、様々な場面でこうしたツールの提示が求められます。さらにパスポートや運転免許証以外にも、医療機関では被保険者証(国民健康保険/健康保険)、就労時にはマイナンバーカードといった、多様なIdentity証明ツールが存在します。それぞれのIdentity証明ツールが断片的な情報であるがゆえに、複数のIdentity証明ツールを用いて本人確認をする必要があるサービスも多く存在し、利便性の良いとは言えない状態となっています。(保険証と住民票の2つ提示が必要なケースなど)

また、こうした存在証明を目的としたツールの他、オンライン時代ならではのツールとして、FacebookやTwitterといったSNSのアカウントが挙げられます。これらのアカウントは、サードパーティーに対してシングルサインオンのシステムを提供しており、同じSNSアカウントで様々なサービスにログインできる仕組みを実現しています。一つのアカウントが様々なオンラインサービスで活用できるIdentityシステムとなっているわけです。これらのアカウントには、個人の趣味趣向や交友関係など個人の性質を示す詳細なデータが蓄積されており、前述のIdentity証明ツールとは異なり、個人の性質まで示すことが可能です。

また、シングルサインオンは提供していないもののAirbnbやUberといったシェアリングサービスのアカウントには、サービス課金状況や第三者からの評価を示すデータが蓄積されており、これらのアカウントをIdentityシステムとして公開すれば、個人の信用スコアなどといった情報を示すことも可能だと考えられます。

しかしながら、現状このようなデータはサービス提供側が保有しているため、ユーザー自身の意識で自由に活用したり、公開範囲をコントロールすることが困難な状態となっています。

BlockchainにおけるIdentityシステム

Blockchainを活用したIdentityシステムでは、上記であげたパスポートや運転免許証といった存在証明のデータから、FacebookやAirbnbの活動履歴といった個人の信用をスコアリングするアカウントのデータまで、あらゆるデータを非中央集権的に改ざん耐を備えた状態で管理可能にすることが期待されています。そしてユーザー本人が秘密鍵を用いてこうしたデータへ自由にアクセス・公開することが可能となります。(Airbnbの活用履歴を示せば賃貸契約時に審査が通過しやすくなるなど)こうしたIdentityに関する統一規格がEIP/ERCのような場で整備されることで、広範囲に活用されるデジタルIdentityが確立されていく可能性があります。

【主要Identityプロジェクト】

EIP/ERCの主要規格

ERC725/ERC735
現状、最も注目されているIdentity規格と言えるのがこのERC725です。この規格はERC20やWeb3.jsの提案者であるFabian Vogelstellerによって提案されました。

※ERC725:https://github.com/ethereum/EIPs/issues/725

ERC725では、1つのIdeintityにつき1つのコントラクトが作成されます。Identityを構成する要素として、以下3つの要素が定義されています。

  • Keys:Identityが保有する公開鍵(外部アカウントまたはコントラクトアドレスの公開鍵)
  • Claim:Identityに関連する情報(名前、メールアドレス、Facebookアカウント、Twitterアカウントなど)
  • Claim Issuer:Identityに関連する情報を表明する外部アカウントまたはコントラクトアドレス

Keysには、複数の公開鍵を登録可能であり、公開鍵毎に利用目的を設定します。デフォルトでは、下記4つの目的が用意されており、目的によって公開鍵で実行できる処理が異なります。

  • MANAGEMENT keys:Identityの管理
  • ACTION keys:Identityによるアクション実行(ログイン、トランザクション署名など)
  • CLAIM keys:他のIdentityに対するClaim発行
  • ENCRYPTION keys:データの暗号化

Claimは、一つのIdentityに対していくつも付与可能で、Claimを付与することでIdentityの情報を加えることが可能です。また、Claimは自分だけでなく他者が付与することも可能です。そのため、Claim Issureには自身がなることもあれば、他者がなることもあります。

なお、Claimを付与したり削除する仕組みは、ERC735で定義されており、ERC725はERC735を取り込むカタチで実装されています。

※ERC735:https://github.com/ethereum/EIPs/issues/735

Claimの内容を確認する流れについて、提案者のFabian Vogelstellerがわかりやすくスライドにまとめたものがありますのでこちらを参考にしてください。

https://www.slideshare.net/FabianVogelsteller/erc-725-identity

また、ERC725のデモがOrigin Protocolより提供されており、ERC725の動作を簡単に確認することができます。

https://erc725.originprotocol.com

そして、ERC725を用いた代表的なプロジェクトとしてOrigin Protocolがあげられます。また日本でもBlockBaseが、このOrigin Protocolと提携して、ERC-725の開発効率最大化を目指しています。

分散型ピアツーピアマーケットプレイスのプラットフォームとして、主にAirbnbやUBERのようなシェアリングエコノミーで利用が検討されています。ERC725に準じて発行されたアカウントに、電話番号・Eメール・Airbnb・Facebook・Twitter・Googleといった複数のアカウントを紐づけることができ、実在する人物かどうかの証明だけでなく、紐付けアカウントの活動履歴から個人の信用が可視化されるプラットフォームとなっています。

https://docs.google.com/presentation/d/1naKlP_h9wVYbv-NYQFvI7vCmmi4-Jq8CGCmouubNv-U/mobilepresent?fbclid=IwAR2_mGSWRqmKUzs6n-1KzEg6Vp_KzBNhNrbFYkbeOIJKM2pvIh_og7v32cA#slide=id.g481385e78c_1_20

また、提案者であるFabian Vogelstellerを中心にERC725 Allianceが立ち上げあられ、上記であげたOrigin ProtocolBlockBaseの他、メッセンジャープラットフォームのStatusや、STOプラットフォームのPolymathなど多くのプロジェクトが加盟し、Telegram・Githubで活発に議論がなされています。

【ERC725 Alliance 加盟プロジェクト】

https://erc725alliance.org/

分散型メッセンジャープラットフォームとして、Status上でLINEやWeChatのようなメッセージアプリを構築することがでます。AppStoreやGoogle Playのようなアプリストアとしての役割も果たし、チャット内でTokenの送受信が行えます。プラットフォーム上にはuPortGnosisなど複数のアプリがすでに対応されています。

https://status.im/

・Polymath:https://polymath.network/

STOプラットフォームとして、株式・不動産・絵画・ワインに紐づいた証券トークンの取引を可能とします。不正取引防止を目的としたIdentityに関する取り組みはもちろん、Security Tokensならでは課題を解決するST-20規格の開発など、独自の取り組みを行っています。

https://polymath.network/

ERC780
Claimsを共有管理する規格です。ERC725ではIdentityごとにClaimsが発生していた為、それをシンプルな仕様にする為の規格です。この規格はuPortの開発者Joel Torstenssonが提案し、uPortのプロジェクト内で実際に活用検討がされている規格になります。

※ERC780:https://github.com/ethereum/EIPs/issues/780

https://www.uport.me/

ERC1056
こちらもuPortの開発者Joel Torstenssonが提案した規格になります。ERC725の互換規格として、ERC725で課題とされていたIdentity作成ごとに発生するコントラクトを削減する目的で提案されました。こちらの規格ではIdentityの作成をoff-chainで行う形で提案され、これによりERC725と比べ大幅にGasコストの削減が可能となります。

※ERC1056:https://github.com/ethereum/EIPs/issues/1056

ERC1484
これまで提案されてきたERC規格(ERC725、ERC735、ERC780、ERC1056)のデジタルIdentity情報を集約するためのプロトコル規格になります。

※ERC1484:https://github.com/ethereum/EIPs/issues/1495

【その他、関連規格】

ここまでがIdentityに関する主要規格と代表的なプロジェクトの概要でした。次回は、Blockchainサービスの決済方法として注目されるカテゴリ、Subscriptionについて主要規格と代表的なプロジェクトを見ていきたいと思います。

--

--