【知識ゼロでもわかる】SuiのMove言語は何がすごいのか

こんにちは、Yohです。

期待の次世代レイヤー1ブロックチェーンSui

イーサリアムキラーとして躍進中のソラナ(Solana, SOL)をも上回るポテンシャルで大きな注目を集めています。

そんなSuiにおける最大の特長が、独自のプログラミング言語「Move(Sui Move)」です。

プログラミング言語はブロックチェーン開発におけるすべての土台。

そのブロックチェーンがどんな言語を使っているかで、ブロックチェーンの性格が決まると言ってよいでしょう。

そこで今回は、Suiが採用しているMove言語がどうすごいのか、プログラミング知識がない人でもわかるように解説してみます

この記事を読むとわかること
  • Sui Moveの概要
  • Sui Moveが他の言語よりも優れている理由
Yoh

Sui Moveはプログラミング未経験の僕でもすごいと感じました!

スイ(SUI)はOKCoinJapanなら円建てで買うことができます。

【口座開設方法】

【SUIの買い方】

暗号資産の損益計算を行いたい場合は、税理士の方も利用しているクリプタクトがオススメ。

初心者でも取引情報を入れるだけで簡単に損益計算ができます。

【クリプタクト(無料版)の始め方】

【クリプタクト(お試しプラン)の始め方】

目次

Sui Moveとは

Sui Move言語が生まれた経緯

Sui Move誕生の道のり(Sui)

引用:Move | Sui

Sui MoveはSuiにおけるすべての開発で使われているプログラミング言語です。

元になったMove言語自体は、Facebook社(現Meta社)が進めていたブロックチェーンプロジェクトLibra(後にDiemに改名)において、2018年に誕生。

Move言語は、Rust言語(Solanaで採用されている言語)をベースに、ブロックチェーンとしての安全性・効率性を重視した形で設計されました。

残念ながら、諸事情でLibra(Diem)プロジェクトは2022年に中止となりましたが、中身はすばらしいものだったため、当時の開発メンバーは各々でプロジェクトを立ち上げました。

それが今のSuiAptos

特にSuiは、Libra(Diem)で設計したMove言語にさらなる改良を加え、Sui Moveとして独自に進化させました。

Yoh

Aptosなどは当時のMove言語をある程度そのままの形で使ってるみたい。

ちなみに、Facebook時代にMove言語を作ったのが、Sam Blackshearさん。

Move開発者のSam Blackshearさん(X)

引用:Sam Blackshear | X

実は、Suiの開発企業であるMysten Labsの共同創設者にして、現在は同社のCTO(Chief Technology Officer、最高技術責任者)を務めています。

クリプト初心者

言語を作った人がSuiにいるってこと!?

Yoh

そゆこと。
だからMove言語を使ったブロックチェーンはいくつもあるけど、開発体制に関してはSuiが一番しっかりしてます。
Samさんイケメン✨

Sui Moveと他の言語を比較

クリプト初心者

わざわざ新しい言語を作ったということは、Suiの開発者が「既存の言語じゃダメだ」と判断したってことだよね?

Yoh

その通り!
だからSui Moveはそうした点を解決した言語になってます。

Sui Moveの特長

Sui Moveの特長はいくつかありますが、他のブロックチェーンと最も異なるのが、オブジェクトモデルを採用していること。

オブジェクトモデルでは、コインやNFTを始め、すべてのデータが「モノ」のように扱われます。

オブジェクト(Object)のイメージ

オブジェクトの1つ1つが固有のIDを持ち、所有権を明確にする(所有者情報を刻む)ことで、それ以外の人がそのオブジェクトを操作できないようにしています。

このモデルに沿ったルールがプログラミング言語レベル(プログラムを書く段階)で定められているというわけです。

Yoh

オブジェクトモデルでは、デジタルデータを現実世界に近い形で直感的に扱えます。

なぜ僕がここでオブジェクトモデルにフォーカスしたかというと、これが他のブロックチェーンにおける問題をことごとく解決してしまったから

例として、イーサリアム(Ethereum)で使われている言語「Solidity」、ソラナ(Solana)で使われている言語「Rust」と比較してみます。

Sui (Sui Move) vs Ethereum (Solidity)

イーサリアム(Ethereum)で使われているのが、Solidityという言語。

Solidityのロゴマーク

引用:Solidity | X

Solidityは、2014年にイーサリアム専用に開発されたプログラミング言語で、現在のWeb3業界では最もポピュラーな言語です。

しかし黎明期に開発されたこともあり、スマートコントラクトというビットコイン(送金のみの取引)以上に高度な取引を行う上で、問題もいくつか見つかっています。

1. コードバグの発生

Solidityは、その仕組み上、プログラムにコードバグ(開発者が意図しない動作)が起こりやすいとされています。

これが悪意のあるハッカーに見つかった場合、バグを悪用されて資産の流出なども簡単に起こってしまうというわけです。

しかし、Solidityはコンパイル言語であるため、機械可読なバイトコードに変換するために必要な追加手順により、バグが発生しやすい。その結果、スマートコントラクトが受ける監査は非常に複雑でコストがかかるにもかかわらず、Ethereumエコシステムではスマートコントラクトの悪用が後を絶たない。

引用:Solidity vs Move vs Rust: The Evolution of Smart Contract Programming Languages | Medium
Yoh

有名なThe DAO事件(2016年)もSolidityのコードバグを悪用されたのが原因だったそうです。

2. スケーラビリティ問題

イーサリアムでは、アカウント/バランスモデルという仕組みで取引を処理しています。

このモデルでは、取引前後に矛盾がないよう、取引を順序立てて1件ずつ処理していく必要があり、取引を処理するプログラムもそのように書くことになります。

結果、同時並行で取引を処理することができないので、処理速度が頭打ちになってしまう、いわゆる「スケーラビリティ問題」が発生してしまうわけです。

イーサリアムにおけるスケーラビリティ問題のイメージ

Suiでは、これらの問題をオブジェクトモデルで解決しています

問題1は、言語レベルで所有権を明確にすることで、意図せずに資産の操作権限が他人に渡ることがないようになっています。

オブジェクトと所有者の紐づけの例(SuiVision)

引用:Prime Machin #1305 | SuiVision

👉 参考記事 【TradePort】SuiチェーンのNFTを買ってみよう

問題2も、デジタルデータがオブジェクトという「モノ」のような存在になっているので、取引を1つずつ処理しなければならないという制約はなく、並列処理ができます。

オブジェクトモデルにおける送金の例

👉 参考記事 【最強L1の秘訣】Suiの「オブジェクト」について超簡単解説

並列処理に関しては、「取引の分類」や「網目状のチェーンを使う」といった工夫も行うことで効率化しています。

👉 参考記事 【297,000TPSで他を圧倒】Suiの並列処理とは

Sui (Sui Move) vs Solana (Rust)

ソラナ(Solana)では、Rustという言語が使われています。

Rustのロゴマーク

引用:Rust Language | X

Rustは2011年に登場した汎用プログラミング言語で、ブロックチェーン専用の言語というわけではありません。

イーサリアムのSolidityよりは習得難易度が高いものの、PCのマシンパワーを効率的に使うことができ、並列処理も可能な優れた言語です。

しかし、Rustはもともとブロックチェーンへの利用を目的に作られた言語ではないため、実際にプログラムを書くと、余分なコードも必要になり、コードが長くなってしまうという問題があります。

クリプト初心者

コードが長いとどんな問題があるの?

Yoh

プログラムの作成や修正に手間がかかる・バグが起こりやすくなる・処理速度が落ちる、といったデメリットがあります。

これを踏まえ、Libra(Diem)はRust言語をベースにMove言語を開発し、さらにSui Moveでオブジェクトモデルへと発展させることで、この問題を見事に解決しました

(前略)

ではコードを見て、実装がどのように異なるかを見てみよう。以下は、このスマートコントラクトの完全なSolanaとSuiの実装コードのスクリーンショットを並べて示したものだ。

同じプログラムを書いた場合のSolanaとSuiの比較(Medium)

すぐに気づくのは、同じ機能に対し、Solanaの実装はSuiに比べ2倍以上のサイズであることだ(230行 対 104行)。コードが少ないということは、一般的にバグが少なくなり、開発時間が短くなることを意味するため、これはすでに大きな問題である。

引用:Smart Contract Development — Move vs. Rust | Medium

(前略)

この命令呼び出しに対するアカウントチェックは次のようになる:

Rustでコードを書いた場合の例(Medium)

つまり、17個のアカウントだ。CPIコール(ミントおよびスワップ)ごとに約5~6個のアカウントとプログラムアカウントがある。

Suiでは同等の関数のシグネチャは次のようになる。

Sui Moveでコードを書いた場合の例(Medium)

たった3つのオブジェクトだけだ。

なぜSuiでは3つのオブジェクトに対して、Solanaでは17個のアカウントを渡す必要があるのか?

根本的な理由は、Moveではそれらを埋め込む(ラップする)ことができるからだ。タイプシステムの安全保証により、これが可能になっている。

引用:Smart Contract Development — Move vs. Rust | Medium

【Sui Move vs Aptos Move】

Sui MoveとAptos Moveは、どちらもMove言語をベースにしていますが、ここでも採用しているモデルに大きな違いがあります。

Aptos Moveはイーサリアムを始めとした他のブロックチェーンと同じく、アカウント/バランスモデルを採用しているのに対して、Sui Moveはオブジェクトモデルを採用しています。

簡単に言えば、アカウント/バランスモデルは「取引に関わったすべてのアカウントの情報を更新する」ようなイメージ、オブジェクトモデルは「取引されたオブジェクトのデータを更新する」ようなイメージです。

👉 参考記事 【最強L1の秘訣】Suiの「オブジェクト」について超簡単解説

したがって、処理速度やデータの取り扱いにおける直感性・安全性では、Sui Moveに軍配が上がると考えられます。

Sui Moveの課題

これまでの課題を克服したSui Moveは完璧なプログラミング言語に見えますが、課題がまったくないわけではありません。

開発者が少ない

開発を進める上で、開発者コミュニティの規模はとても重要。

しかしSui自体はもちろん、Sui Moveが新しい言語なので、開発者がまだまだ少ないのが実情です

2024年7月現在のフルタイム開発者は約200人

Suiにおける開発者数の推移グラフ(Electric Capital)

引用:Electric Capital

一応少しずつ増加はしているので、ハッカソンを始めとした宣伝を通じて、引き続き開発者が増えていってほしいところですね。

Yoh

といってもSuiはローンチからまだ1年ちょっと。
開発者コミュニティの形成はこれからです。

そもそも論として、Web3開発者が決して多くないという現状があります

他の主要なプログラミング言語では、少なくとも数百万人単位の開発者人口がいるのに対し、Web3では、数万人単位の開発者しかいません。

プログラミング言語別の開発者数(X)

引用:2022/07/16 Sam Blackshearさんのポスト | X

つまり、開発者が少ないという課題はSuiに限った話ではないということです。

Yoh

上のデータは2021年のもので少し古いですが、2023年12月時点のWeb3開発者人口は約22,000人だそうです。

クリプト初心者

ということはイーサリアムですら規模は小さいんだね。

学習難易度が高い

開発者が少ない問題とも関連しますが、Sui Moveのもう一つの課題が、学習難易度が高いこと。

Suiオリジナルの言語ということで、開発を始めようと思ったら一から言語を学ぶ必要があります(Rust言語経験者ならまだ楽かも)。

開発者がまだ少ないということもあり、つまづいた時に周りに相談できる人が少ないといった点も否めません。

この点は、現在Sui公式の方でも「LET’S MOVE SUI」といった教材の提供を行ったりしていますが、個人的にはより一層力を入れてほしいと思っている部分です。

LET'S MOVE SUI

引用:LET’S MOVE SUI

Yoh

JSC(Japan Sui Community)でも、おにぎりさんやしずくさんが開発に取り組んでいます💪
Suiの開発に興味がある方は、ぜひ声をかけてみてくださいね!

まとめ

  • Sui Moveは、Rust言語をベースに作られたMove言語に「オブジェクトモデル」を加えて発展させた、ブロックチェーン開発専用のプログラミング言語。
  • Sui Moveは、オブジェクトモデルによって、イーサリアム(Ethereum)やソラナ(Solana)で使われていたプログラミング言語の課題を解決した。
  • Sui Moveの今後の課題は、いかに開発者を増やすか。
Yoh

プログラミング未経験者にもわかるように頑張って解説してみたけど、Sui Moveのすごさ、少しは伝わったかな?

クリプト初心者

これまでたくさんの人達がブロックチェーンの開発に努めてきたからこそ、Sui Moveという答えにたどり着いたんだろうね!

現在は多くのレイヤー1が登場し、覇を競っている状態。

Suiは言語レベルで完成されているので、これからプラットフォームとしての実力・実績が認められれば、参入する開発者や企業の数も着実に増えていくでしょう。

今後に期待しています!

【スイ(SUI)を買ってみたい方はOKCoinJapanの口座開設から始めよう↓】

【スイ(SUI)の買い方を徹底解説↓】

【スイ(SUI)についてくわしく知りたい方はこちらの記事もオススメ↓】

参考文献

【サイト】

目次