イーサリアムとNEMの開発における比較

ブロックチェーン経済プラットフォームとして、よく比較されるのがイーサリアムとNEMである。連動したサービスやアプリを作る場合、イーサリアムよりNEMの方が簡単で、その点でNEMに優位性があるといった論調が見られる。その点について私なりにプログラマ目線で考えてみたい。

スマートコントラクト

イーサリアムにあってNEMにない機能として大きなものはスマートコントラクトを自作できることだろう。スマートコントラクトとは契約の履行をプログラムで自動化し、人の仲介を必要としない仕組みである。イーサリアムではスマートコントラクトをプログラミング言語を使って自作できる。

NEMも時期アップデートのカタパルトにより、アグリゲートトランザクションというスマートコントラクトの一種が導入される。しかし、今のところNEMにスマートコントラクトを自作できる仕組みが導入される予定はないようである。

スマートコントラクトを自作できる方が拡張性が高く、イーサリアムの方がNEMより優れているように思える。よくこの点でNEMはイーサリアムと比較される。

基本的な機能のアクセスに難易度の差はない

イーサリアムのスマートコントラクトを自作する際に、現状Solidityという言語がよく使われている。この言語がイーサリアムのスマートコントラクト以外では馴染みのない言語であるため、開発の難易度が高い。対してNEMは広く普及しているWeb APIなので開発がしやすく、エンジニアの確保もしやすいといった話を見かけることがある。

しかし、イーサリアムも通貨プラットフォームとして基本的な機能の実行(残高の確認、送金など)は、Web APIとして呼び出せる。プログラマ目線ではNEMと比べて特別難しいということはないと思う。

Solidityという馴染みのない言語は、あくまでスマートコントラクトを実装するときに使うものである。よってスマートコントラクトを実装する必要が無い限りはNEMと比べて開発が困難ということはないだろう。

さらに言うとSolidityもそこまで難しい言語だとは思えない。ただし、スマートコントラクトのプログラムは、一度、ブロックチェーン上に上げてしまうと修正できない特性がある。よって十分な検証が必要というハードルはあるだろう。

スマートコントラクトを自作できる優位性

NEMは経済プラットフォームとして必要なものは、基本的な機能として提供しているのに対して、イーサリアムはスマートコントラクトを自作できる自由度を与える方針のようである。

たとえばNEMはトークン(NEMではモザイクと呼ぶ)の発行は、基本的な機能として提供されているのに対し、イーサリアムはスマートコントラクトとして実現できることの一つという位置づけである。

基本的な機能として提供されるということは、使う側はプログラミングの知識を必要としないメリットがある。とはいえ、イーサリアムもよく使われる機能に関しては、誰かが汎用的なスマートコントラクトを作りサービスとして提供すれば、ユーザーはプログラミングの知識を必要としない。

しかし、NEMのようにプラットフォームで基本的な機能として提供されているということは、NEMの開発チームによって十分な検証が行われているという信頼性がある。対して、イーサリアムは第三者が作ったプログラムを信用する必要がある。この信頼性という点でNEMにアドバンテージがあるように思える。

今後、スマートコントラクトに対して、どの程度カスタマイズ性が求められるかによって、イーサリアムの優位性は決まると思う。先述したとおり、スマートコントラクトのプログラムは一度ブロックチェーンに上げてしまうと修正できない。この制約により開発者がやりたいことをやるために弊害になることも多々あるだろう。

その場合、スマートコントラクトを使わずに、自社で管理するサーバーと連動してサービスを作る形になるだろう。もし、そのようにするのであれば、スマートコントラクトが果たすべき機能の範囲は小さくなる。

NEMがスマートコントラクトとして求められる機能を洗い出して、それらを基本的な機能として提供すれば、開発者としては必要十分という認識になれば、イーサリアムのスマートコントラクトを自作できるという優位性は小さくなるだろう。

現状、スマートコントラクトでできること・必要なことを洗い出している段階で、そういう実験的な状況において、スマートコントラクトを自作できるイーサリアムは有用であると言えるだろう。ただ将来的にはスマートコントラクトとして必要な機能が基本的な機能として組み込まれた(ビルトイン)プラットフォームが使われるようになるのかも知れない。その点でNEMに将来性はあるようにも思える。答え合わせは5年後くらいだろうか?

スマートコントラクトの考察については、こちらにも記事を書いています。

認識間違いなどがあればTwitterでご指摘ください。