Dappsプラットフォーム比較(Ethereum/EOS/TRON/IOST)
こんにちは.株式会社AcompanyのCTOを務める近藤(Takeharu.K)です.
今回は「今」Dappsを開発する際に選択できるプラットフォーム4つ(Ethereum/EOS/TRON/IOST)を,簡単に比較してご紹介します.
はじめに
Dappsを開発するにあたり,現在複数のプラットフォームが選択できます.Ethereumが最も有名なプラットフォームですが,DappRadarというブロックチェーン上のDappsをランキング化するサイトではEthereumの他にEOSやTRON,IOSTがリストされています.
しかし,4つのプラットフォームでの開発に何が必要で何が特徴なのかをまとめたものがなかったので(2019/05/17現在),それぞれのプラットフォームがもつ特徴を開発者目線とユーザー目線で比較して紹介します.
1. Ethereum
- コンセンサス:PoW
- TPS(all time high):15
- コントラクト開発言語:Solidity
開発者目線
コンセンサスにPoWを採用しているため,4つの中では最も分散性が高いプラットフォームと言えます.しかし,高分散性とトレードオフの関係にあるTPSが最大でも15と低く,スマートコントラクトに高速で何度もリクエストを行う場合には向きません.そのような場合はLoomネットワーク等のサイドチェーンを採用するなどの工夫が必要になります.
一方,開発コストとしては,コントラクトをデプロイする際に一度GASを支払うだけで良いため,開発が終了してしまえば追加のコストがかからないことがメリットとして挙げられます.
また,Vitalik Buterin氏を筆頭に強力な開発者コミュニティが存在しており,Githubのgo-ethereumのリポジトリのスター数が23.3kと他のプラットフォームを圧倒しています.
また,ここでは列挙しませんが,Truffleを筆頭に多数の開発ツールが用意されていることも開発者にとって大きなメリットです.
ユーザー目線
ウォレット内にETHトークンを保有していれば,コントラクトを実行できるため,比較的簡単にコントラクトの実行ができます.一方で,コントラクトの実行のたびにGASを消費するため,ユーザーに負担を強いる仕様であると言えます.
メリットとして,ネイティブトークンであるETHトークンが日本国内の交換所で手に入ることや,対応ウォレットの数が多いことが挙げられます.
2. EOS
- コンセンサス:DPoS(投票上位21ノード)
- TPS(all time high):3996
- コントラクト開発言語:C/C++/Rust
開発者目線
コンセンサスにDPoSを採用しているため,圧倒的なTPSを誇ります.実測値として4つのプラットフォームで最も高いTPSのプラットフォームです.
しかし,投票上位21ノードがブロック生成を行う仕組みであるため,最も分散性を犠牲にしたプラットフォームであると言えます.
コントラクトのデプロイ時に記憶領域であるRAMの購入と,NETとCPUリソース使用のためのデポジットが必要になります.そのため,事前にどれくらいのRAMを購入するかを決める必要があります.また,デプロイ後もユーザーの利用状況に応じて各種リソースの監視を行う必要があるので,EOSトークンの保有量に気を配る必要があります.
ただし,RAMは再度売ることができるので,開発を中止した場合には大部分のコストが回収できるのはメリットと言えます.
開発者コミュニティの活発度としてはGithubのメインリポジトリのスター数は10.4kと人気があることが分かります.
開発ツールは公式が用意したものがあるので,開発環境の構築は比較的用意であると言えます.
ユーザー目線
コントラクトの実行には,EOSアカウントの作成とウォレットのインストールが必要となります.アカウント作成時に手数料を支払う必要があります.また,コントラクトの実行にはEOSトークンをステークしてNETとCPUリソースを確保する必要があります.さらに,EOSトークンは現在日本国内の交換所では購入することができないため,ユーザーがEOSのDappsを利用するハードルは高いと言えます.
一方で,デポジットさえあれば手数料無しでコントラクトが実行できる点と,高速にトランザクションを処理できる点がメリットとして挙げられます.
3. TRON
- コンセンサス:DPoS(投票上位27ノード)
- TPS(all time high):748
- コントラクト開発言語:Solidity/Java
開発者目線
コンセンサスにDPoSを採用しており,高いTPSを実現しています.しかし,EOSと同様に分散性を犠牲にしたプラットフォームであると言えます.
コントラクトのデプロイと実行にはEnergyとバンド幅を消費します.これらはTRXトークンを任意の数量凍結することで獲得することができます.つまり,一定程度のTRXトークンを凍結してコントラクトのデプロイをした後は,管理するリソースがないので,管理コストがかかりません.これはメリットと言えます.
開発者コミュニティの活発度はGithubのjava-tronリポジトリのスター数が2.2kとまずまずの大きさをなっています.
開発ツールは公式が用意したものが複数あるため,スムーズに開発環境は整えられます.
ユーザー目線
コントラクトの実行にはEnergyとバンド幅が必要となるため,TRXトークンを凍結して入手する必要があり,一度凍結したTRXトークンは再度使用可能になるまで3日かかります.また,TRXトークンは日本国内の取引所で入手することができないので,ユーザーにとってはDappsを利用するハードルは高いと言えます.
一方で,TRXトークンを保持していれば実質的に手数料なしでコントラクトの実行ができるので,大きなメリットとなります.
4. IOST
- コンセンサス:PoB(得票数210万票以上のノード)
- TPS(all time high):390
- コントラクト開発言語:JavaScript
開発者目線
コンセンサスにPoBと呼ぶ,DPoSと似たような仕組みを用いています.DPoSよりもブロックプロデューサーの分散性を高めた仕組みになっています.実際に210万票を獲得しているノード数も110ノードあり,DPoSを採用しているプラットフォームよりも分散性が高いと言えます.
コントラクトのデプロイには記憶領域であるiRAMの購入と手数料であるiGASを消費します.iRAMはIOSTトークンでシステムから購入でき,一度だけ売却することができます.iGASはIOSTトークンをデポジットすることで獲得できます.iRAMリソースの管理をする必要があるため,コントラクトのデプロイ後も管理コストがかかります.
開発者コミュニティの活発度はGithubのメインリポジトリのスター数は423と少ないことが分かります.
開発ツールはまだまだ出揃っておらず,公式のドキュメントも今後の充実が求められる段階であると言えます.
ユーザー目線
コントラクトの実行には有料のIOSTアカウントの開設とIOSTトークンのデポジットから得られるiGASが必要で,デポジットしたIOSTトークンは3日間ロックされます.また,IOSTトークンは日本国内の交換所で購入することができないので,ユーザーがDappsを利用するハードルは高いと言えます.
一方で,IOSTトークンを保持していれば実質的なコントラクト実行手数料は無料であるため,大きなメリットと言えます.
まとめ
今回は4つのDappsプラットフォーム(Etrhereum/EOS/TRON/IOST)を比較して紹介しました.それぞれのプラットフォーム毎に特徴があり,開発者にコストがかかる仕様なのか,ユーザー側にコストがかかる仕様なのかが大きく異なる結果となりました.また,ユーザーにとってはトークンの入手の容易さも重要なポイントになってきます.
今後も,Acompanyからブロックチェーンに関する記事を投稿していきますので,ぜひfollowしていただけると嬉しいです.
Happy Hacking 😎!