こんにちは、Yohです。
期待の次世代レイヤー1ブロックチェーンSui。
イーサリアムキラーとして躍進中のソラナ(Solana, SOL)をも上回るポテンシャルで大きな注目を集めています。
そんなSuiにおける最大の特長が、独自のプログラミング言語「Move(Sui Move)」です。
プログラミング言語はブロックチェーン開発におけるすべての土台。
そのブロックチェーンがどんな言語を使っているかで、ブロックチェーンの性格が決まると言ってよいでしょう。
そこで今回は、Suiが採用しているMove言語がどうすごいのか、プログラミング知識がない人でもわかるように解説してみます。
- Sui Moveの概要
- Sui Moveが他の言語よりも優れている理由
Sui Moveはプログラミング未経験の僕でもすごいと感じました!
スイ(SUI)はOKCoinJapanなら円建てで買うことができます。
【口座開設方法】
【SUIの買い方】
暗号資産の損益計算を行いたい場合は、税理士の方も利用しているクリプタクトがオススメ。
初心者でも取引情報を入れるだけで簡単に損益計算ができます。
【クリプタクト(無料版)の始め方】
【クリプタクト(お試しプラン)の始め方】
Sui Moveとは
Sui Move言語が生まれた経緯
引用:Move | Sui
Sui MoveはSuiにおけるすべての開発で使われているプログラミング言語です。
元になったMove言語自体は、Facebook社(現Meta社)が進めていたブロックチェーンプロジェクトLibra(後にDiemに改名)において、2018年に誕生。
Move言語は、Rust言語(Solanaで採用されている言語)をベースに、ブロックチェーンとしての安全性・効率性を重視した形で設計されました。
残念ながら、諸事情でLibra(Diem)プロジェクトは2022年に中止となりましたが、中身はすばらしいものだったため、当時の開発メンバーは各々でプロジェクトを立ち上げました。
それが今のSuiやAptos。
特にSuiは、Libra(Diem)で設計したMove言語にさらなる改良を加え、Sui Moveとして独自に進化させました。
Aptosなどは当時のMove言語をある程度そのままの形で使ってるみたい。
ちなみに、Facebook時代にMove言語を作ったのが、Sam Blackshearさん。
実は、Suiの開発企業であるMysten Labsの共同創設者にして、現在は同社のCTO(Chief Technology Officer、最高技術責任者)を務めています。
言語を作った人がSuiにいるってこと!?
そゆこと。
だからMove言語を使ったブロックチェーンはいくつもあるけど、開発体制に関してはSuiが一番しっかりしてます。
Samさんイケメン✨
Sui Moveと他の言語を比較
わざわざ新しい言語を作ったということは、Suiの開発者が「既存の言語じゃダメだ」と判断したってことだよね?
その通り!
だからSui Moveはそうした点を解決した言語になってます。
Sui Moveの特長
Sui Moveの特長はいくつかありますが、他のブロックチェーンと最も異なるのが、オブジェクトモデルを採用していること。
オブジェクトモデルでは、コインやNFTを始め、すべてのデータが「モノ」のように扱われます。
オブジェクトの1つ1つが固有のIDを持ち、所有権を明確にする(所有者情報を刻む)ことで、それ以外の人がそのオブジェクトを操作できないようにしています。
このモデルに沿ったルールがプログラミング言語レベル(プログラムを書く段階)で定められているというわけです。
オブジェクトモデルでは、デジタルデータを現実世界に近い形で直感的に扱えます。
なぜ僕がここでオブジェクトモデルにフォーカスしたかというと、これが他のブロックチェーンにおける問題をことごとく解決してしまったから。
例として、イーサリアム(Ethereum)で使われている言語「Solidity」、ソラナ(Solana)で使われている言語「Rust」と比較してみます。
Sui (Sui Move) vs Ethereum (Solidity)
イーサリアム(Ethereum)で使われているのが、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は、言語レベルで所有権を明確にすることで、意図せずに資産の操作権限が他人に渡ることがないようになっています。
引用:Prime Machin #1305 | SuiVision
👉 参考記事 【TradePort】SuiチェーンのNFTを買ってみよう
問題2も、デジタルデータがオブジェクトという「モノ」のような存在になっているので、取引を1つずつ処理しなければならないという制約はなく、並列処理ができます。
👉 参考記事 【最強L1の秘訣】Suiの「オブジェクト」について超簡単解説
並列処理に関しては、「取引の分類」や「網目状のチェーンを使う」といった工夫も行うことで効率化しています。
👉 参考記事 【297,000TPSで他を圧倒】Suiの並列処理とは
Sui (Sui Move) vs Solana (Rust)
ソラナ(Solana)では、Rustという言語が使われています。
Rustは2011年に登場した汎用プログラミング言語で、ブロックチェーン専用の言語というわけではありません。
イーサリアムのSolidityよりは習得難易度が高いものの、PCのマシンパワーを効率的に使うことができ、並列処理も可能な優れた言語です。
しかし、Rustはもともとブロックチェーンへの利用を目的に作られた言語ではないため、実際にプログラムを書くと、余分なコードも必要になり、コードが長くなってしまうという問題があります。
コードが長いとどんな問題があるの?
プログラムの作成や修正に手間がかかる・バグが起こりやすくなる・処理速度が落ちる、といったデメリットがあります。
これを踏まえ、Libra(Diem)はRust言語をベースにMove言語を開発し、さらにSui Moveでオブジェクトモデルへと発展させることで、この問題を見事に解決しました。
(前略)
ではコードを見て、実装がどのように異なるかを見てみよう。以下は、このスマートコントラクトの完全なSolanaとSuiの実装コードのスクリーンショットを並べて示したものだ。
すぐに気づくのは、同じ機能に対し、Solanaの実装はSuiに比べ2倍以上のサイズであることだ(230行 対 104行)。コードが少ないということは、一般的にバグが少なくなり、開発時間が短くなることを意味するため、これはすでに大きな問題である。
引用:Smart Contract Development — Move vs. Rust | Medium
(前略)
この命令呼び出しに対するアカウントチェックは次のようになる:
つまり、17個のアカウントだ。CPIコール(ミントおよびスワップ)ごとに約5~6個のアカウントとプログラムアカウントがある。
Suiでは同等の関数のシグネチャは次のようになる。
たった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はローンチからまだ1年ちょっと。
開発者コミュニティの形成はこれからです。
そもそも論として、Web3開発者が決して多くないという現状があります。
他の主要なプログラミング言語では、少なくとも数百万人単位の開発者人口がいるのに対し、Web3では、数万人単位の開発者しかいません。
引用:2022/07/16 Sam Blackshearさんのポスト | X
つまり、開発者が少ないという課題はSuiに限った話ではないということです。
上のデータは2021年のもので少し古いですが、2023年12月時点のWeb3開発者人口は約22,000人だそうです。
ということはイーサリアムですら規模は小さいんだね。
学習難易度が高い
開発者が少ない問題とも関連しますが、Sui Moveのもう一つの課題が、学習難易度が高いこと。
Suiオリジナルの言語ということで、開発を始めようと思ったら一から言語を学ぶ必要があります(Rust言語経験者ならまだ楽かも)。
開発者がまだ少ないということもあり、つまづいた時に周りに相談できる人が少ないといった点も否めません。
この点は、現在Sui公式の方でも「LET’S MOVE SUI」といった教材の提供を行ったりしていますが、個人的にはより一層力を入れてほしいと思っている部分です。
まとめ
- Sui Moveは、Rust言語をベースに作られたMove言語に「オブジェクトモデル」を加えて発展させた、ブロックチェーン開発専用のプログラミング言語。
- Sui Moveは、オブジェクトモデルによって、イーサリアム(Ethereum)やソラナ(Solana)で使われていたプログラミング言語の課題を解決した。
- Sui Moveの今後の課題は、いかに開発者を増やすか。
プログラミング未経験者にもわかるように頑張って解説してみたけど、Sui Moveのすごさ、少しは伝わったかな?
これまでたくさんの人達がブロックチェーンの開発に努めてきたからこそ、Sui Moveという答えにたどり着いたんだろうね!
現在は多くのレイヤー1が登場し、覇を競っている状態。
Suiは言語レベルで完成されているので、これからプラットフォームとしての実力・実績が認められれば、参入する開発者や企業の数も着実に増えていくでしょう。
今後に期待しています!
【スイ(SUI)を買ってみたい方はOKCoinJapanの口座開設から始めよう↓】
【スイ(SUI)の買い方を徹底解説↓】
【スイ(SUI)についてくわしく知りたい方はこちらの記事もオススメ↓】
- 【リブラを継ぐ最強L1】スイ(SUI)の特徴・将来性・買い方
- 【Web3を身近にする最新技術】SuiのzkLoginとは
- 【297,000TPSで他を圧倒】Suiの並列処理とは
- 【最強L1の秘訣】Suiの「オブジェクト」について超簡単解説
- 【TradePort】SuiチェーンのNFTを買ってみよう
参考文献
【サイト】
- Foreword | The Move Book
- Language for Digital Assets | The Move Book
- Evolution of Move | The Move Book
- Ownership | The Move Book
- Move | Sui
- Object Model | Sui Documentation
- All About Objects | Sui Foundation
- Solidity vs Move vs Rust: The Evolution of Smart Contract Programming Languages | Medium
- Smart Contract Development — Move vs. Rust | Medium
- おにぎり.sui『【Sui】スマート・コントラクト開発 – MoveとRustの比較(Solana vs. Move)』 | note
- Aptos vs Sui: A Battle Of The New-Generation Layer-1 Blockchain | Suipiens
- Solidityに挑戦するAptosのMove言語 | Crypto Times
- Solidity Vs Move Vs Rust | Pontem
- Aptos、Sui、Linera—注目のDiem(旧Libra)系L1チェーンを比較|前編 | CoinPost
- Aptos、Sui、Linera—注目のDiem(旧Libra)系L1チェーンを比較|後編 | CoinPost
- 2016年THE DAO事件のハッカー判明か、仮想通貨記者が特定 | CoinPost
- スマートコントラクト言語にチューリング完全性は本当に必要か?ーSolidityの課題と代替案 | CoinPost
- メタ主導の「ディエム」が買い手求める、計画頓挫で-関係者 | Bloomberg
- Haruki『Sui NetworkとSui Moveを理解する!!』 | Zenn
- Sui | Explore Developer Data | Electric Capital
- 2023 Crypto Developer Report | Electric Capital
- 2022/07/16 Sam Blackshearさんのポスト | X
- 2024/05/22 Suiのポスト | X