Solidityの最強のライバル:MOVE言語と新しいブロックチェーンの台頭
著者:BuidlerDAO
Jason |@Jason_chen998|研究者
Frank |@MonolithMatrix |BuidlerDAO研究者
Move 小王子 |知乎:手把手で Move スマートコントラクトを書く
新たな公链の物語には、2つの注目すべきトレンドがあります。1つは、Moveプログラミング言語を中心とした高性能の新しい公链、もう1つは、Celestiaを代表とするモジュラーブロックチェーンです。本記事では、最新のMove言語系公链の三巨頭について簡単にお話しし、技術的な視点から彼らの背後にあるMove言語の優れた点について考察します。 記事の概要:
01/ Move言語系公链三巨頭の台頭
02/ 現在の競技場の覇者:Aptos
03/ Resource特性:Moveは真のデジタル資産化を実現
04/ 技術的差異のまとめ:Solidity vs. Move
05/ Moveの未来展望と学習コース
1. Move言語系公链三巨頭の台頭
2019年、Meta(旧Facebook)が世界で流通する超主権デジタル通貨プロジェクトLibraを発表しましたが、予想外にもデビューと同時に頂点に達し、その後規制の制約によりDiemに転換され、無事に終わりました。今年1月末、Diemは約1.82億ドルでMetaに売却されました。LibraとDiemのチームはこの過程で、SolidityとEVMの欠陥を補うMove言語と、それに派生した公链チーム、最も代表的なAptos、Sui、Lineraなどの貴重な遺産を残しました。
2021年12月、最初にスタートしたSuiが3600万ドルのAラウンド資金調達を発表し、出資者にはa16z、NFX、Scribble Ventures、Redpoint、Lightspeed、Electric Capital、Samsung NEXT、Slow Ventures、Standard Crypto、Coinbase Venturesなどが含まれています。
2022年3月、Aptosは2億ドルの資金調達を完了し、同様にa16zがリードしました。
2022年6月、Lineraは600万ドルのシードラウンド資金調達を完了し、リードインベスターはa16zで、参加者にはCygni Capital、Kima Ventures、Tribe Capitalなどが含まれています。
2022年7月、Aptosは1.5億ドルの資金調達を完了し、FTX VenturesとJump Cryptoがリードし、a16z、Multicoin Capital、Circle Venturesなどが参加しました。同時にSuiは2億ドルのBラウンド資金調達を求めており、評価額は20億ドルに達しています。
2022年8月、Aptosは8月30日にインセンティブテストネット3(AIT3)を開始することを発表しました。プロジェクトチームはAIT2が非常に成功したとし、225以上のコミュニティノードがテストに参加し、44カ国と110都市に分布しています。プロジェクトのロードマップによれば、メインネットはこのテストネットの終了後に立ち上げられる予定です。
a16zは「Move言語系公链の競技場」に意図的に賭けており、3つの公链が次のサイクルのリーダーになることを期待しています。Move言語の三つ巴の状況も形成されつつあります。
3つの公链の中で、開発とエコシステムの進展が最も早いのは間違いなくAptosです。現在、Aptosは比較的強力なコミュニティ、より活発な開発者、より健全なdAppエコシステムを持っており、本文の第3部で詳細に分析します。
2位のSuiは独自のTokenomics($SUI)ホワイトペーパーを発表しました。その経済モデルには独特の特徴があります:計算費用(computation fees)とストレージ費用(storage fees)が分けて支払われます。ユーザーがチェーン上のデータを提出する際、彼らはストレージ費用と計算費用(俗にGASと呼ばれる)を同時に支払います。
計算費用はステーク報酬に分配され、一部はストレージファンドに移転されます。ストレージ費用は直接ストレージファンドに入金され、ネットワークの成長と成熟に伴い、このファンドは将来のストレージコストの増加を補助するために使用されます。この設計により、チェーン上のデータのストレージ権がユーザーに戻され、ユーザーはストレージ費用をキャンセルするためにチェーン上のデータを削除することを選択できます。さらに、Suiの開発ツールキット(SDK)は、Gaming APIs、SuiEcho、Handshakeなどの特徴的なSDKを含む他のエコシステムや非暗号アプリケーションとの接続を試みています。しかし、そのエコシステムのアプリケーションの展開はAptosと比較して非常に乏しく、公開された報告では数個のウォレット関連のエコシステムプロジェクトしかありません。
AptosとSuiに比べて、Lineraはスタートが遅く、より控えめです。今年6月18日に発表された公式ツイートでは、公式ウェブサイトのリンクと使命のみが示されました。蜂巣Techの「新世代公链が不可能な三角形に再挑戦」という研究を参考にすると、Lineraはこの2つの支払いシステムの速度をアプリケーション型のブロックチェーンネットワークに導入することを目指しており、チェーン上のユーザーの操作が数分の一秒で確認されることを実現しようとしています。
ネットワーク性能の面では、Lineraは「線形拡張」という概念を提唱しています。これは、マシンの数を増やすことでシステムの容量を倍増させるものです。現在、ブロックチェーンは「順序」実行モデルを優先しており、アカウントとスマートコントラクトが一連の取引の中で相互作用することを許可しています(例えば、フラッシュローンなど)が、線形拡張を妨げています。Lineraの線形拡張モデルでは、異なるユーザーアカウントの操作が異なる実行スレッドで同時に実行されることが可能です。
2. 現在の競技場の覇者:Aptos
蜂巣Techの報告によると、今年3月にAptosは開発者テストネットを開始し、5月にはインセンティブテストネットの登録を開始し、インセンティブテストネットを「分散型スタート」、「ステーキング」、「ガバナンスとアップグレード」、「動的バリデータトポロジー」の4つのラウンドに分けました。現在、そのテストネットは2万以上のノードに達し、今日の最大の既知のプルーフオブステークノードコミュニティとなっています。Aptosは、コミュニティの発展が彼らの以前の最も狂った予測をはるかに超えていると述べています。計画によれば、Aptosのインセンティブテストネットの残りの2つの段階は、今後2ヶ月の間に完了する予定で、9月末にはAptosがメインネットを開始する予定です。
長期的には、新しい公链の最終的な勝者はまだ明確ではありませんが、短期的にはAptosが「Move言語系公链の競技場」の王者の地位を占めていることは間違いありません。これは、彼らの開発速度とエコシステムの構築によって確立されています。
Aptosのスターチームは、設立初期から多くの著名な資本の支援を受けました。ForesightNewsの報道によれば、共同創設者兼CTOのAvery Chingは、Facebookで10年以上にわたりチーフソフトウェアエンジニアを務め、元Metaの暗号プラットフォームNoviチームの技術責任者でもありました。Alden Hu、David Wolinskyなどのほとんどの開発チームは、DiemやNoviの開発に参加していました。
彼らの設計の重点は、絶対的な安全性、スケーラビリティ、信頼できる中立性であり、最終的な目標は1秒以内に10万、さらには16万の取引を処理できることです。このような強力な技術チームの下で、Aptosは自らの研究開発力を十分に発揮し、以下のような顕著な競争優位性を築きました:
Aptosチームはそのコンセンサスメカニズムであるビザンチンフォールトトレランス(BFT)を4回のイテレーションを経て、高いトランザクションスループット、低遅延、高安定性を実現しました。3分の1のバリデータノードが故障しても、安定した運用を保証します。
従来の公链よりも速い取引処理速度が期待されており、Aptosのテストネットデータによれば、現在このネットワークは1秒あたり1万件以上の取引を処理でき、理想的な状態ではAptosのメインネットは1秒あたり16万件の取引を処理できます。公開された資料によれば、最近、いくつかの機関が主要な公链の速度をテストした結果、AptosのMax TPSはSolanaを含む従来の公链を大きく上回っています。
Aptosは7月に30以上のエコシステムプロジェクトを正式に発表しました。多くはテストネットと開発段階にありますが、相互作用可能なのはウォレットとDEXのみですが、他のMove言語エコシステム公链と比較して遥かに先行しています。現在発表されたエコシステムプロジェクトのタイプには、ウォレット(Hive)、DEX(Pontem Network)、流動性プロトコル(NjordFinance)、NFT(Topaz.so)、ブラウザ(Aptosscan)、データ分析ツール(Dapptos View)などの主流dAppトラックが含まれています。
Move開発言語と現在の主流公链Solidity言語の差別化競争を十分に活用しています。次に、技術的な視点からMove言語の重要な利点を詳細に解説します。
3. Resource特性:Moveは真のデジタル資産化を実現
Move言語は、ブロックチェーンスマートコントラクトを記述するのに最も適した言語の1つと称され、何度も現在の主流であるSolidityと比較され、圧倒的な優位性を示しています。その主な理由は、Moveがブロックチェーンの最も核心的なトークン資産をより適切に処理し、Solidityの直感性と安全性の欠陥を補っているからです。ここでは、最も特徴的なResourceタイプについて重点的に説明します。
資産のブロックチェーン化により、安全性の問題がブロックチェーンの核心的な解決課題となりました。Web2では、製品のバグやデータ漏洩が発生しても、ユーザーの資産損失を引き起こすことは難しく、せいぜい製品の崩壊や個人情報の漏洩、闇市場での販売を引き起こすだけです。しかし、資産がブロックチェーン上にあるため、スマートコントラクトにバグが発生すると、無数のユーザーの資産が流出したり、ロックされたりすることになります。
私たちは、ニュースでハッカーが特定の取引プラットフォームやクロスチェーンブリッジを攻撃し、数億の資産損失を引き起こした事例をよく目にします。BuidlerDAOも以前にこれらの事件に関する多くの研究報告を発表しており、大部分は契約に比較的初歩的な問題が発生し、ハッカーに狙われたことが原因です。これにより、読者が注意すべき重要な属性が浮かび上がります:Solidityはブロックチェーンスマートコントラクト向けのプログラミング言語ですが、ブロックチェーン上の資産向けのプログラミング言語ではありません。
なぜそう言えるのでしょうか?例を挙げると、Solidityはほとんどのプログラミング言語と同様に、トークンを数値変数として扱います。つまり、トークンの移転プロセスは加減算操作を行うことです。例えば、張三が李四に10元を送る場合、まず張三の残高から-10を引き、次に李四の残高に+10を加えます。
したがって、Solidityでは資産は加減可能な数字として扱われます。このため、契約コードは非常に厳密である必要があります。例えば、加減算操作中に何らかの問題が発生し、張三が-10、李四が+20、あるいは張三が-0、李四が+10になることはないでしょうか?このプロセスは、多くのコードロジックを通じて、いくつかのウォレット間で加減操作を行うため、問題が発生しないことを保証するのは難しいです。
その理由は、Solidityでは資産が特別に定義されておらず、年齢や電話番号などの変数と同様に扱われているからです。しかし、資産の定義は本来ユニークであるべきです。物理的な世界で、私が金の延べ棒を持っていて、それを誰かに渡す場合、その過程がどうであれ、その金の延べ棒は1本から2本にはなりません。したがって、私たちが言うデジタル資産は、Solidityでは加減可能な数字としか呼べず、資産とは言えません。
Moveのプログラム可能なResourceは、その安全性と強力さの核心であり、真のデジタル資産化を実現しています。Resourceはデータ型の一種です。データ型とは、データ構造を定義する方法を指します:
文字:例えば名前、住所はString型です;
数字:例えば年齢、電話番号はInt型です;
真偽:対立するものはBooleanのTrueとFalseで表されます。
Moveはトークン資産を特別かつ重要なデータと見なし、普通の数値型で定義・表現すべきではないと考え、資産を定義するためにResourceを独自に作成しました。この方法には3つの特性があります:
ResourceはMove内で依然として数値の形式で存在し、データ構造として保存され、パラメータとして渡され、返されることができます。
Resourceはデジタル資産を安全に表現でき、その特異性はコピー、廃棄、再利用ができないことです。しかし、安全に保存・移転でき、Resource型の値はその型を定義したモジュールによってのみ作成・破棄できるため、資産の意味を実現しています。
Resourceはブロックチェーンアプリケーションの特性に適応しています。例えば、アカウントにバインドされる必要があります。Resourceデータは必ずアカウントの下に保存される必要があるため、アカウントが割り当てられた後にのみ対応するResource資産が存在し、Resourceを取り出した後は必ず「使用」されなければなりません。内蔵のMove_formメソッドを使用して資産をアカウントから取り出した後は、必ずどこかに流れる必要があり、または直接破棄されなければなりません。これは、資産の使用量がそのまま使用されることを意味します。Solidityがどのように操作するかを思い出してください。Solidityはあるアドレスの残高を減らし、別のアドレスを増やし、コードを通じて減少と増加の数字を一致させます。したがって、Solidityでは完全にコードロジックによって資産の使用が強制的に実現されますが、Resourceは底層で資産の概念をカプセル化し、加減算ではなく、資産が無から生じたり、自由にアクセスされたりすることを避け、セキュリティを大幅に向上させます。Moveのトークンの移動は、ある場所から別の場所に運ぶことと見なすことができ、Solidityは加減算であり、一方が減り、もう一方が増えるのです。
以上のことから、Moveはデジタル資産の発行に特化した、よりネイティブで適切なプログラミング言語であり、プログラムとデジタル資産の直接的な統合を実現しています。
4. 技術的差異のまとめ:Solidity vs. Move
BitcoinのScriptからEthereumのSolidityへの移行は、DeFiの洗礼を経て、Solidityは成功を収めました。しかし、最近半年間の安全性の脆弱性、例えばPolyNetwork、Horizon、Nomad、Solanaなどを分析すると、背筋が凍る思いです。不可能な三角形を考慮すると、チェーン上の資産の安全性をどう確保するかが、業界全体が直面すべき主要な問題となっています。a16zはこの潜在的なニーズに目をつけ、Moveの三大公链に一気に投資しました。
今後Web3時代を迎える中で、これらの脆弱性の背後で、VMも不断に欠陥を補っています。例えば、元のオーバーフロー問題を修正していますが、底層設計の欠陥は質的な改善が難しいです。従来の開発経験とは異なり、DeFiアプリケーションは本質的にオープンソースで透明な金融システムであり、安全性に対して非常に高い要求があります。したがって、金融シーンに特化した、より安全で信頼性の高い、低いハードルのスマートコントラクト言語を設計することは、より良い選択かもしれません。ここで、SolidityとMoveを深く比較します:
上記から、MoveはSolidityの基盤の上に多くの特性を追加し、非常に優れた安全性とエンジニアリング能力を備えています。MoveはSolidityの実際の安全脆弱性から貴重な教訓を学び、底層の安全設計において重大な革新を遂げ、言語の表現能力と柔軟性を保証しつつ、オープンソースシステムをより安全で信頼性の高いものにしています。
例えば、100トークンがあると仮定します。Solidityでは、ハッカーが100トークンを簡単にコピーしてより多くのトークンを作成できる(無限発行の脆弱性を参照)ことができます。しかし、Moveでは、トークンをResource型として定義することで、仮想マシンのレベルでトークンがコピーや変更できないことを保証します。ハッカーは絶対にコピーによってトークンを盗むことはできません。
Moveにとって、同様の利点は多くあります:
リソース指向プログラミング
Moveは金融シーンに特化して強化され、リソース指向プログラミングを導入しています。FTやNFTなどの一般的なシーンにおいて、Moveはデータをリソースとして定義し、仮想マシンのレベルでデータの安全性を保証します。
純粋な静的言語
動的呼び出しはSolidityの基盤であり、すべてのクロスコントラクト呼び出しは動的呼び出しを通じて実現されます。例えばDelegateCallですが、これは多くの安全脆弱性の入り口でもあります。Solidityの実際の経験を考慮し、Moveは完全に純粋な静的実装を採用し、チェーン上の資産の安全性をより良く保証します。
形式的検証
形式的検証(FV)は、数学的ツールを使用して設計の可能な行動空間を分析することを指し、特定の値の結果を計算するのではありません。つまり、数学的手法を用いてプログラムの安全性を証明することです。Moveは形式的検証のツールを内蔵しており、数学的手法を使用して契約の信頼性をテストし、証明することができます。これはSolidityにはない優位性です。
分散ストレージ
Web3時代では、ユーザーがデータを掌握することが所有権を意味します。SolidityはMapの形式で契約データを集中ストレージし、契約に脆弱性が発生した場合、例えば契約のオーナー権限を取得した場合、すべてのユーザーデータが攻撃を受けます。MoveはResourceを巧みに利用し、データを各ユーザーのアカウントに分散して保存することができ、データの安全性を保証し、真にデータの所有権をユーザーに帰属させ、契約のオーナーにはデータを変更する権限がありません。
汎用プログラミング指向
安全性を考慮して、Moveは純粋な静的言語として設計されていますが、柔軟性は失われていません。Moveは汎用プログラミング指向を通じて、契約の拡張性を保証し、コードの再利用能力を高めています。
5. Moveの未来展望と学習コース
ScriptからSolidityへの移行は契約表現能力の変革であり、SolidityからMoveへの移行は契約安全能力の変革です。
Moveは開発者に優しい言語です。Move言語の目的は、開発者の安全性のハードルを下げることです。契約開発者はビジネスロジックに集中でき、コードの安全性に多くの心を費やす必要はありません。契約開発者が無意識のうちに高い安全性のコードを書くことができ、初歩的なバグによる安全脆弱性から遠ざかることができれば、DeFiはより安全になり、ユーザーはより安心できるでしょう。Moveには、本文で説明していない多くの優れた特性(例えばエンジニアリング能力)があり、非常に探求する価値のある方向性です。
新しい公链という熱い話題を研究する中で、私たちの研究者は、今回の新公链の物語を理解するには、Moveの技術的詳細と公链技術の革新を理解する必要があることを共通して発見しました。