【EIP/ERC Vol.1】〜Ethereumの標準規格について〜
現在、Blockchainの活用領域はSatoshi Nakamotoが論文(Bitcoin: A Peer-to-Peer Electronic Cash System)で唱えたBitcoinに代表される価値の保管・移転の域を超え、Ethereumのようなアプリケーションプラットフォームの領域まで幅広く検討されています。中でもEthereum上では、すでに1,000を超えるアプリケーションが存在し、Token・Identity・Subscriptionなど様々な用途で活用がなされています。これは同時にアプリケーションを展開するサービスレイヤー(wallet・Exchange・Game)との間で仕様の互換性が求められ、こうした仕様に関する改善提案の場としてEthereumではEIP/ERCが設けられています。そこで今回、アプリケーションプラットフォームとして今後も活用が予想されるEthereumに注目し、数回にわたりEIP/ERCの解説を行っていきたいと思います。
※初回となるVol.1では、EIP/ERCの全体像・各カテゴリの概要に触れ、以降の記事から具体的な規格詳細・関連プロジェクトについて触れていきたいと思います。
目次
- EIP/ERCとは
- ERCのカテゴリ
1. Token design
2. Identity
3. Subscriotions
4. Compliance
EIP/ERCとは
「EIP」とはEthereum Improvement Proposalsの略で、直訳すると「Ethereum改善提案」となります。これは何もEthereumに限ったことではなく、BitcoinではBIP(Bitcoin Improvement Proposals)というBitcoin改善提案が存在します。そしてEthereumも同様に、このEIP上で提出される改善案をERC(Ethereum Request for Comment)と呼び、提出されたERCがコミュニティ内で承認されると正式なEIPとして採択されEthereumの次回アップデート時に実装されるという流れとなっています。
そして、このERCについている番号(ERC●●)は、EIP上で提出されたERCの順番を意味します。つまり、ERCの番号と提案内容に相関関係はなく、またERCに提出されたからと言って全てが採択されているわけではないということを理解する必要があります。
※例:ERC20→20番目に提案されたERC
−現在提案されているEIP/ERC一覧−
現在のEIP/ERC一覧を見ると、すでに1,000以上の提案がされていおり、提案内容も多岐に渡っております。そこでまずは主要なEIP/ERCを下記のようなカテゴリに分類し、それぞれのカテゴリについて見ていきたいと思います。
ERCのカテゴリ
1. Token design
Token designに関する規格を理解する上で、まず、Fungibility(ファンジビリティ)について理解しておく必要があります。Fungibilityとは直訳すると「代替可能性」を意味します。このFungibilityの有無でTokenの性質が大きく2つに分かれます。
- FT(Fungible Token)
- NFT(Non-Fungible Token)
FT(Fungible Token)
Fungibilityのある通貨として代表的な日本円を例に見ていくと、日本円は自分が持っている100円と、他人が持っている100円は常に同じ100円の価値を有し、どの100円も同じ価値としてコンビニやスーパーで利用することができます。この100円であれば誰が持っている100円でも同じ価値として利用できる性質のTokenをFT(Fungible Token)と呼びます。
【主要プロジェクト】
- Kyber Network(KNC):https://kyber.network/
- IDEX(Aurora):https://kyber.network/
- 0x (ZRX):https://0xproject.com/
【対応ウォレット】
- MyEtherWallet:https://www.myetherwallet.com/
- MetaMask:https://metamask.io/
- Ginco:https://ginco.io/
- TokenPocket:https://tokenpocket.jp/
【主要規格】
- EIP20:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
- ERC223:https://github.com/ethereum/EIPs/issues/223
- ERC621:https://github.com/ethereum/EIPs/pull/621
NFT(Non-Fungible Token)
Non-Fungible Tokenとは、Fungible Tokenとは反対に代替不可能(Non-Fungible)な性質を持つTokenをさします。現実世界の代表的な例をあげると絵画や骨董品といった唯一無二のモノがあげられます。これをTokenに置き換えた場合、ゲームキャラクターや音楽ファイルといった代替不可能な固有のデジタルデータをToken化したもがNFT(Non-Fungible Token)となります。
このNFTの分野は決してEthereum固有なものではなく、Bitcoinでは2013年にColored Coins(カラードコイン)という仕様が提案され、カラーの識別子と量を管理し、Non-FungibleのTokenを作れる仕組みありましたが、Bitcoinの処理能力上、十分に機能されることが難しく一部のプロジェクト(VALUなど)の実装に止まりました。それが現在、Ethereumというプラットフォームの出現とIPFSなどの外部プロジェクトによりゲーム・アートといった様々な分野のNFTが実装され広く認知されるようになりました。
【主要プロジェクト】
- CryptoKitties:https://www.cryptokitties.co/
- Decentraland:https://decentraland.org/
- Ethermon:http://ethermon.net/
- Etherbots:https://etherbots.io/
- Crypko:https://crypko.ai/
【関連プロジェクト】
- IPFS:https://ipfs.io/
【NFTマーケットプレイス】
- Opensea:https://opensea.io/
- RareBits:https://rarebits.io/
- emoon:https://www.emoon.io/
- memefactory:https://memefactory.io/
【主要規格】
- EIP721:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
- ERC864:https://github.com/ethereum/EIPs/issues/864
- ERC874:https://github.com/ethereum/EIPs/pull/874
- ERC888:https://github.com/ethereum/EIPs/issues/888
- ERC994:https://github.com/ethereum/EIPs/issues/994
- ERC981:https://github.com/ethereum/EIPs/issues/981
- EIP998:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-998.md
- ERC1155:https://github.com/ethereum/EIPs/issues/1155
- ERC1178:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1178.md
- ERC721x:https://github.com/loomnetwork/erc721x
2. Identity
Blockchainで様々なアプリケーションを展開する上で、サービス提供側・利用者側の双方に求められるのがTrustlessなidentity証明です。現在、このBlockchain上のidentity証明に関するプロジェクトはいくつか存在し、IDカードやクレジットカードなど複数のデータを紐づけてidentity証明をするものから、複数のSNSやシェアリングサービスのアカウントと紐づけてidentity証明をするものまで様々あります。代表的なものとしてEthereum上でのID管理を目指すuPort、Linux Foundationが主導するHyperLedger Indy、昨年ICOで$33,000,000を調達したことで知られるCivicなどいくつかあげられます。当然、こうしたidentityに関する議論は個々のプロジェクトの活動に委ねるだけでなく、EIP/ERCでも活発な提案が行われております。
【identity証明の目的】
- サービス提供側:KYC確認、AML/CFT対策
- 利用者側:プライバシー確保、scam対策
【主要プロジェクト】
- uPort:https://www.uport.me/
- HyperLedger Indy:https://www.hyperledger.org/projects/hyperledger-indy
- Civic:https://www.civic.com/
- Blockstack:https://blockstack.org/
- Veres One:https://veres.one/
【主要規格】
- ERC725:https://github.com/ethereum/EIPs/issues/725
- ERC735:https://github.com/ethereum/EIPs/issues/735
- ERC780:https://github.com/ethereum/EIPs/issues/780
- ERC-902:https://eips.ethereum.org/EIPS/eip-902
- ERC-939:https://github.com/ethereum/EIPs/issues/939
- ERC1056:https://github.com/ethereum/EIPs/issues/1056
- ERC1077:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1077.md
- ERC1078:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1078.md
- ERC1484:https://github.com/ethereum/EIPs/issues/1495
3. Subscriotions
Consensysの記事(McKinsey & Company, Inc.調べ)によると、Netflix、SpotifyをはじめとするSubscriptionモデルのサービスは2008年以降急増し、2017年にはBtoC向けで2,000社以上のSubscription会社、1100万人以上のユーザー数が存在すると言われています。これらのサービスをBlockchain上に置き換えて展開した場合、現在のTokenモデルでは著しくユーザー体験を損ね、今の市場と同様のユーザー数を取り込むことは困難であると言えます。これまでのSubscriptionモデルは定期支払い時に自身の銀行口座(あるいはクレジットカード)から自動で支払いが完了され、支払いの度にユーザーの同意は必要ありませんでした。しかし、これをTokenで行う場合、定期支払いの度に秘密鍵の署名が必要となり、支払いの度にユーザーの意思確認が必要となり、ユーザー体験を著しく棄損する結果となります。
−現在のERC20では定期支払い時に「継続する」と意思表明が必要−
メール送信 → メール受信 → メールを開封 → TXに署名 → TXを送信
そこで現在、Tokenでの支払いに置いてユーザー体験を棄損しない形で繰り返し定期支払いが実現できる規格の議論がなされています。
【主要プロジェクト】
- Gitcoin:https://gitcoin.co/
- Groundhog:https://groundhog.network/
- ETH Grants:https://ethgrants.com/
- Blanc3:https://www.balanc3.net/
- 8x protocol:https://8xprotocol.com/
【主要規格】
4. Compliance
2018年にはいりSecurityTokenへの注目が増したことでBlockchainにおけるComplianceの議論が活発に行われるようになりました。一概にTokenと言ってもその性質はそれぞれ異なり、サービス内での利用価値に限定されたTokenをUtilityToken、証券としての価値を持つTokenをSecurityTokenの2つに分類することができます。こうしたTokenの分類は2018年3月にアメリカ証券取引委員会(SEC)によるCrypto市場への規制に関する声明が出されたことがはじまりといえます。(この声明は証券に該当するTokenを扱う取引所はSECへ登録が必要となる主旨の声明で、こうした規制の対象となるTokenをSecurityTokenと分類されるようになりました)この声明以降、SecurityTokenに特化したマーケットプレイスが次々と立ち上がり、株式・不動産・絵画・ワインと言ったこれまでCrypto市場で扱われてこなかった分野のToken化が加速するきっかけとなりました。こうした新たな市場の確立とあわせて既存のEIP/ERCではカバーしきれないSecurityTokenならではのCompliance(Token発行者・購入のKYC/AML/CFTなどのidentity管理から、ロックアップ期間/投資家の数などの証券性の担保するToken設計に至るまで)に関する提案が現在活発に行われています。
【主要プロジェクト】
- Polymath:https://polymath.network/
- Harbor:https://harbor.com/
- Securitize:https://www.securitize.io/
- Swarm Fund:https://swarm.fund/ja/
- tZERO:https://www.tzero.com/
- OpenFinance Network:https://openfinance.io/
【主要規格】
- ERC1400:https://github.com/ethereum/EIPs/issues/1400
- EIP1410:https://github.com/ethereum/EIPs/issues/1410
- EIP1411:https://github.com/ethereum/EIPs/issues/1411
ここまで、EIP/ERCの全体像と各カテゴリの概要について触れてきました。次回以降の記事では、各カテゴリの主要規格の詳細と関連プロジェクトについて触れていきたいと思います。