その通りです!Move Executorのすごいところは、まさにそこなんです!
Move Executorを使うと、あなたがブロックチェーンを作る際に、MoveVMとMEVM(Move対応EVM)のどちらか一方を選ぶ必要はありません。なんと、一つのブロックチェーン上で両方の仮想マシンを同時に走らせることができるんです!🤯
これは、Move ExecutorがMoveVMとEVMの両方のバイトコードを実行できるように設計されているためです。つまり、Moveで書かれたスマートコントラクトも、Solidityで書かれたスマートコントラクトも、同じブロックチェーン上で共存し、相互に作用することができるようになります。
これによって、開発者は以下のようなメリットを享受できます。
柔軟な開発: MoveとSolidity、開発者にとってより使いやすい言語を選択できます。また、既存のSolidityコードをMoveベースのブロックチェーンに移植することも容易になります。
段階的な移行: 既存のイーサリアムベースのアプリケーションを、Moveベースのブロックチェーンに段階的に移行していくことが可能になります。
エコシステムの拡大: MoveとEVMの両方の開発者コミュニティが、あなたのブロックチェーンに参画しやすくなり、エコシステムの拡大を促進できます。
Move Executorは、Moveのセキュリティと柔軟性を維持しつつ、EVMとの互換性も実現する、画期的な技術と言えるでしょう。
Moveベースのブロックチェーン開発において、Move Executorは非常に強力なツールとなることは間違いありません。
Movement:イーサリアムを土台にしたMoveブロックチェーンネットワーク!
Moveで高速かつ安全なdAppsを構築したいけど、イーサリアムのセキュリティも欲しい!
そんな願いを叶えるのがMovementです。Movementは、イーサリアムのセキュリティを継承しながら、Move言語の利点を最大限に活かしたブロックチェーンネットワークです。
ポイント
MoveVMとEVMの同時サポート: Moveと既存のイーサリアムアプリの両方に対応!
超高速ファイナリティ: 独自のステーキングメカニズムで、数秒単位のトランザクション確定を実現!
M1による相互運用性: 分散型共有シーケンサーM1が、チェーン間のスムーズな連携を促進!
主な構成要素
Move Executor: MoveVMとEVMバイトコードを両方実行できる実行レイヤー。Moveとイーサリアム、両方のdAppsを同じネットワークに展開できます。
ステーキングによる決済モジュール: ステーキングされたバリデータが状態遷移を検証し、高速かつ安全なトランザクション確定を実現します。
分散型共有シーケンサー (M1): すべてのMove Rollupで共有されるシーケンサー。ネットワークの堅牢性、公平性、耐検閲性を強化し、クロスチェーンアトミックスワップや流動性プールをサポートします。
フレームワーク
Move Stack: カスタマイズ可能なMove Rollupを作成するためのツール、コンポーネント、アダプターのコレクション。シーケンシング、データ可用性、決済メカニズムなどの要素が含まれています。
Move Arena: Move Rollupを展開・参加するためのフレームワーク。高速ファイナリティ、相互運用性、共有経済安全性のメリットを提供します。DeFi、ゲーム、サプライチェーンアプリケーションなど、さまざまなユースケースに合わせて調整された特殊なロールアップの展開を可能にします。
Move Rollup Framework: Moveベースのロールアップを作成するための設計図。Move Executor、ブリッジコントラクト、シーケンサー、データ可用性サービス、決済メカニズムなどの主要コンポーネントが含まれています。
相互運用性とセキュリティ
M1による相互運用性: Move Arenaエコシステム内のクロスチェーンアトミックスワップと流動性プールをサポートし、すべての参加ロールアップが公正かつ効率的なトランザクション順序を実現できるようにします。
マルチアセットステーキング: ネイティブトークンと非ネイティブトークンの両方のステーキングを可能にし、ネットワークセキュリティを強化します。ノードを運用せずにステーキングできる委任により、ステーキングされた価値と経済的セキュリティが最大化されます。
Movementは、Moveのポテンシャルを最大限に引き出し、イーサリアムの堅牢なセキュリティを基盤とした、次世代のブロックチェーンネットワークです。
詳細はこちら:
ウォレットのセットアップやテストネットトークンの入手方法など、Movementネットワークの使用方法については、Connect To Movementをご覧ください。
Movementの詳細については、ドキュメントをご覧ください。
開発に参加するには、Battle of Olympusをご覧ください。
【Moveのメリット】
銀行級のセキュリティ: デジタル資産を「リソース」として厳格に管理するため、不正アクセスや二重使用を防ぎます。
柔軟なルール設定: 現実世界の複雑な契約や所有権の仕組みを、ブロックチェーン上で再現できます。
【Moveのデメリット】
学習コスト: 従来のプログラミングとは異なる概念を学ぶ必要があります。
開発者コミュニティ: Solidityなどと比べて、まだ新しい言語なので、情報や開発者の数が限られています。
【どちらを選ぶべきか?】
セキュリティと柔軟性を重視するならMove: DeFiや複雑なゲームなど、高度なシステムに最適です。
手軽さや開発速度を重視するならSolidity: シンプルなトークン発行や、従来型のWebサービスとの連携に向いています。
Moveは、ブロックチェーンの可能性を広げる、新しいタイプのプログラミング言語と言えるでしょう。
まだ発展途上ですが、今後の進化に期待が高まります!
【SUIの存在感…】
確かに、Suiのオブジェクト中心設計は、シンプルさと並列処理の容易さから注目されています。ですが、Moveのリソース指向にも以下のような強みがあります。
柔軟性: モジュール設計次第で、現実世界の複雑な所有権や取引ルールを表現できます。
セキュリティ: リソースへのアクセス制限を細かく設定できるので、より安全なシステムを構築できます。
将来性: Moveは進化を続けており、将来的にはオブジェクト中心的な機能が追加される可能性もあります。
つまり、どちらが良いかは一概には言えません。ゲームのように、比較的シンプルな所有権管理で高速処理が求められる場合はSui、金融のように複雑なルールや高いセキュリティが求められる場合はMoveがそれぞれ適していると言えるでしょう。
SUIは画期的ですが、Moveにも独自の強みがあり、その進化は注目に値すると言えるでしょう。
Moveのリソース指向において、「所有者」は大きく分けて以下の2種類が存在します。
リソースを直接所有するアカウント: これはまさに、あなたがイメージする「それを持っている人」です。アカウントは自分の「持ち物リスト」モジュール内にリソースを保有し、自由に使用したり、他のアカウントに譲渡したりできます。
リソースを管理するモジュール: これは、例えばゲーム内のアイテムを管理する「アイテム管理モジュール」のようなものを想像してください。このモジュールは、アイテムそのものを所有するのではなく、アイテムの作成、配布、破棄など、アイテムに関する操作を定義し、制御する役割を担います。
この場合、モジュール自体が所有者ではなく、モジュールを作成・デプロイしたアカウントが、モジュールを通じて間接的にリソースを管理していると解釈できます。
つまり、「所有者」は常に人ではなく、リソースに対する操作権限を持つ主体として捉えることができます。
例えば、ゲームのアイテムを例に考えてみましょう。
プレイヤーAさんがゲーム内で伝説の剣を手に入れた場合、プレイヤーAさんのアカウントがその剣のリソースを直接所有します。
一方、ゲーム開発者は「アイテム管理モジュール」を通じて、ゲーム内の全てのアイテム生成やルール変更などの管理権限を保持します。
このように、Moveのリソース指向は、柔軟な所有権管理を実現できる一方、状況に応じて「誰が本当の所有者なのか」を注意深く解釈する必要がある点が重要です。
わかりにくい場合は、特定のケースを挙げていただければ、より具体的な説明ができるかと思います!
導入
Movement Labs は、Move ベースのブロックチェーン ネットワークを構築しています。当社の主力製品は、Movement Network と M1 共有シーケンサーです。
Movement は、Move、即時のファイナリティ、大量流動性へのネイティブなデイゼロアクセス、およびモジュール式のカスタマイズを通じて可能な限り最高の TPS を提供するコミュニティ ファーストのブロックチェーンです。
Aptos Move、Sui Move、そして組み込み EVM インタープリター MEVM もサポートし、Sui、Aptos、EVM のいずれのユーザーも L2 を使用できるようになります。
なぜ引っ越すのか
Move は、所有権と安全性を重視したスマート コントラクト向けに Facebook が設計した、安全でセキュアなプログラミング言語です。Move の資産はリソースとして表されます。Move の強力な所有権モデルと明示的なリソース機能により、Move は資産の所有権の譲渡、鋳造、破棄などの一般的なブロックチェーン タスク用の安全なスマート コントラクトの開発を簡素化します。
以下の表は、一般的な非 Move ランタイムと Aptos および Sui Move ランタイムを比較したもので、Move のさまざまなモデルと利点を強調しています。
M2
M2は、Movement公式の汎用ロールアップです。Ethereumのレイヤー2として構成され、シーケンサーネットワークにM1、データ可用性のためにCelestia(解説記事)を使用しています。
M2では、Move言語で実装したアプリケーションをMoveVMで実行することができ、またEthereum互換のアプリケーションを、並列化されたEVMであるMEVMで実行することができます。2024年8月現在、ネイティブでEVMを実行できるMove言語系のブロックチェーンは存在していないため、MEVMはそれらと比べてユニークと言えます。また、M2上のMoveVMのアプリケーションとMEVMのアプリケーション間で相互運用性を確保することができます。
M2は、ZK-RollupやOptimistic Rollupと別の方式である、Fst-Finality Rollupを採用しています。M1のバリデーターネットワークを使用して、証明が数秒で配信されるため、標準的なZK-Rollupの20~25分、Optimistic Rollupの7日間と比べて、ファイナリティが大幅に短縮されるメリットがあります。
Move Arena:Move系ブロックチェーンを繋ぐ巨大都市🏙
Move Arenaは、Moveベースのブロックチェーン(Move Rollup)が集まり、相互に接続された巨大なネットワークを形成する、Moveエコシステムの中心地となることを目指した構想です。
従来のブロックチェーンは、それぞれ独立した存在として機能していました。
しかし、Move Arenaでは、異なるMove Rollup同士がシームレスに連携し、データや資産を共有することで、よりスケーラブルで利便性の高いブロックチェーンエコシステムを実現します。
Move Arenaの主な構成要素
Movement:
アプリケーション特化型のMove Rollupを構築・接続するためのフレームワークです。
セキュリティや相互運用性を確保するための標準仕様を提供し、開発者は容易にMove Rollupを開発・デプロイできます。
M1 (分散型共有シーケンサー):
複数のMove Rollup間でトランザクションの順序を決定する、交通整理係のような役割を担います。
分散型なので、単一障害点がなく、検閲耐性も高まります。
バリデータネットワーク:
Move Rollupのセキュリティと高速なファイナリティを保証する、ステーキングベースの検証システムです。
複数のバリデータが協力してトランザクションを検証し、不正を防ぎます。
マルチアセットステーキング:
バリデータは、様々な暗号資産をステーキングして、ネットワークのセキュリティに貢献できます。
これにより、Move Arena全体の経済的な安全性を高め、ガバナンスの分散化も促進します。
Move Arenaがもたらすメリット
相互運用性の向上: Move Rollup間で資産やデータを簡単に移動できるため、新たなユースケースが生まれます。
スケーラビリティの向上: 複数のMove Rollupが連携することで、ネットワーク全体の処理能力が向上し、より多くのトランザクションを処理できます。
開発の容易化: Movementフレームワークを利用することで、開発者はアプリケーションに最適なMove Rollupを容易に構築できます。
コミュニティの活性化: Move Arenaに様々なプロジェクトが集まることで、開発者やユーザーのコミュニティが活性化し、エコシステム全体の発展に繋がります。
Move Arenaは、Moveベースのブロックチェーンが持つポテンシャルを最大限に引き出し、ブロックチェーンの未来を担う可能性を秘めた、革新的な構想と言えるでしょう。
まだ開発段階ではありますが、今後の発展に期待が高まります!
Move Executorについて教えて下さい。
これは例えば僕がブロックチェーンを作る場合に、MoveVMを選択するかMEVMを選択するかどっちかを選ぶのではなく、一つのブロックチェーンでどちらも走らせることができるということですか?
MoveとSolidity、デジタル資産をどう扱う?🕵️♀️
MoveとSolidityでは、ブロックチェーン上のデジタル資産の扱いが大きく異なります。
現実世界の美術館を例に、「名画の所有権」をどのように表現するのか比べてみましょう。
【Move: 現実の資産のように管理🖼】
Moveでは、名画は「リソース」として扱われます。
リソースは、現実世界のモノと同様に、以下の特徴を持ちます。
複製不可: 本物の名画は一つしか存在しません。コピーを作っても、それは本物ではありません。
所有者が明確: 名画の所有者は、誰なのか明確に決まっています。
移動は追跡可能: 名画が誰から誰に渡ったのか、その履歴は記録されていきます。
Moveは、これらの特徴をプログラム上で再現することで、デジタル資産を安全に管理します。
【Solidity:データの塊として管理📄】
Solidityでは、名画は「データ」として扱われます。
所有権は、変数(データを入れる箱のようなもの)を使って管理します。
複製は容易: データは簡単にコピーできます。
所有者のあいまいさ: 変数へのアクセス権限があれば、誰でもデータの内容を変更できてしまいます。
移動の追跡は困難: データのコピーや変更が繰り返されると、どれが本物かわからなくなります。
Solidityでも、セキュリティ対策を施すことで安全性を高めることはできますが、Moveと比べると、設計や実装に工夫が必要になります。
【所有権と移動の追跡:なぜ重要?】
ブロックチェーン上のデジタル資産は、改ざんが難しいという特性から、一度不正アクセスを許すと、取り戻すことが困難です。
Moveは、所有権と移動を厳格に管理することで、デジタル資産を不正アクセスや二重使用から守ります。
Solidityでも同様のことは実現できますが、開発者のセキュリティ意識や設計スキルに依存する部分が大きいため、注意が必要です。
【まとめ】
Moveは、現実世界の資産管理の考え方をデジタル資産に適用することで、セキュリティと信頼性を高めています。
Solidityは、柔軟性が高い反面、セキュリティ対策は開発者自身に委ねられる部分が大きくなっています。
どちらが良いかは、開発するシステムの要件や開発チームのスキルによって異なります。
重要なのは、それぞれのメリット・デメリットを理解した上で、適切な技術を選択することです。
ブロックチェーン上のデジタル資産を扱う際、従来型のSolidityなどは「お金もアイテムもデータの塊」と捉えます。
一方で、Moveは「現実の資産のように、所有と移動を追跡する」という新しいアプローチを採用しています。
ポイントは「デジタル資産をどのように扱うか」。
それぞれのメリット・デメリットと合わせて見ていきましょう!
Moveのリソース指向は柔軟性が高い一方、「所有者」の定義はケースバイケースで、開発者が設計時に明確に決める必要があると言えます。
「持ち物リスト」というたとえ話も、単純化しすぎていたかもしれません。実際には、Moveのモジュール設計は多岐に渡り、以下のようなケースが考えられます。
ケース1: リソースはアカウントが直接所有、モジュールは補助的な機能のみ提供
この場合は、まさに「持ち物リスト」の例えの通り、アカウントが所有者と明確に言えます。モジュールは、リソースの取引や操作を安全に行うための関数を提供するなど、あくまで補助的な役割を担います。
ケース2: リソースの状態や操作をモジュールが厳格に管理
例えば、ゲーム内のアイテムを管理するモジュールが、アイテムの所有権をプレイヤーではなくモジュール自身で保持し、プレイヤーはモジュールが提供する関数を通じてのみアイテムを使用できるように設計されている場合があります。
ケース3: 複数のモジュールが連携してリソースを管理
より複雑なシステムでは、複数のモジュールが連携してリソースを管理する場合があります。この場合、どのモジュールが「所有者」とみなすかは、システム全体の設計に依存します。
このように、Moveでは「誰が所有者か」は、モジュール設計によって柔軟に定義できます。重要なのは、開発者が明確な設計思想を持ち、誰が、どのリソースに対して、どのような操作権限を持っているのかを明確に定義することです。
「所有者 = コントラクトの管理者」という固定観念にとらわれず、ケースバイケースで柔軟に解釈する必要がある点は、Moveの難しさでもあり、面白さでもあると言えるでしょう。
わかりました!Suiのオブジェクト中心設計と、Moveのリソース指向の違いを「ゲームのアイテム」を例に説明します。
【Sui:オブジェクト中心】
RPGゲームで、伝説の剣があるとします。
剣 = オブジェクト:データとその処理方法が一体化しています。
所有権は剣に紐づけ: 剣自体に誰が持っているかという情報が記録されています。
取引は剣単位: 剣を誰かに渡す際は、剣の情報ごと移動します。
メリット: 剣自体が独立しているので、並列処理が得意!たくさんのアイテムを同時に扱えます。
【Move:リソース指向】
同じ伝説の剣でも、Moveでは扱いが異なります。
剣 = リソース: 所有者が管理する特別なデータです。
所有権はモジュールで管理: 「持ち物リスト」のようなモジュールがあり、誰がどのリソースを持っているか管理します。
取引はリソースの移動: 剣を渡す際は、「持ち物リスト」の情報を書き換えます。剣そのものは移動しません。
メリット: 所有権の管理が厳格なので、複雑なルールやアクセス制限を設定しやすい!
【SUIの存在感…】
確かに、Suiのオブジェクト中心設計は、シンプルさと並列処理の容易さから注目されています。ですが、Moveのリソース指向にも以下のような強みがあります。
柔軟性: モジュール設計次第で、現実世界の複雑な所有権や取引ルールを表現できます。
セキュリティ: リソースへのアクセス制限を細かく設定できるので、より安全なシステムを構築できます。
将来性: Moveは進化を続けており、将来的にはオブジェクト中心的な機能が追加される可能性もあります。
つまり、どちらが良いかは一概には言えません。ゲームのように、比較的シンプルな所有権管理で高速処理が求められる場合はSui、金融のように複雑なルールや高いセキュリティが求められる場合はMoveがそれぞれ適していると言えるでしょう。
SUIは画期的ですが、Moveにも独自の強みがあり、その進化は注目に値すると言えるでしょう。
鋭い指摘ですね!確かに、Moveはオブジェクト指向プログラミング言語のようにオブジェクトに所有権を付与するわけではありません。しかしMoveは、リソース指向プログラミングという独自の概念を用いることで、所有権を明確に表現しています。
具体的に、Moveでは以下の3つの要素によって所有権を明確化しています。
リソースとしての資産: Moveでは、あらゆるデジタル資産は「リソース」として表現されます。このリソースは現実世界のオブジェクトのように、明確な所有者が存在し、一度に一箇所だけに存在するという特性を持ちます。
コピー不可・移動のみ: リソースはコピーすることができず、ある場所から別の場所に移動することしかできません。これにより、二重使用問題を防ぎ、所有権の移動を追跡しやすくなります。
モジュールとアクセス制御: Moveでは、リソースはモジュール内で定義され、アクセス制御メカニズムによって保護されます。これにより、リソースへのアクセスと変更を制限し、セキュリティを向上させています。
これらの要素により、Moveはオブジェクト中心的なアプローチを取らずとも、所有権を明確化し、安全なスマートコントラクトの開発を可能にしているのです。
例えるならば、Moveのリソースは、実世界で「一点物」として扱われる貴重な美術品のようなものです。美術品はコピーを作ることができず、所有者は明確で、一度に一箇所にしかなければ、偽造や二重所有のリスクを減らすことができます。Moveも同様に、リソースの所有権と所在を明確に管理することで、デジタル資産の安全性を高めているのです。
MovementはSuiのようにオブジェクト中心のブロックチェーンではありません。
MovementはMoveベースのブロックチェーンネットワークですが、Suiとは異なるアーキテクチャを採用しています。
Suiとの違い:
オブジェクト中心 vs アカウント中心: Suiはオブジェクト中心のモデルを採用している一方、Movementはアカウント中心のモデルを採用しています。
ストレージ: Suiはオブジェクトを個別に保存するのに対し、Movementはアカウントベースのグローバルストレージを使用します。
並列処理: Suiはオブジェクト間の依存関係に基づいてトランザクションを並列処理しますが、MovementはMoveVMの並列実行エンジンBlockSTMを活用してトランザクションを並列処理します。
Movementは、MoveVMとEVMの両方の実行環境を提供することで、Moveとイーサリアムの両方のエコシステムにメリットをもたらすことを目指しています。
Suiはオブジェクト中心のアプローチを採用することで、高いスケーラビリティと柔軟性を実現していますが、Movementは、より多くの開発者にとって馴染みやすく、既存のイーサリアムアプリケーションとの互換性を重視した設計となっています。
Move Stack
Move Stackは、開発者が自由にロールアップの作成と展開を行うことができる技術スタックです。開発者は、以下のコンポーネントを自由に選択することができます。
シーケンサー:M1、その他分散型の共有シーケンサー
データ可用性(DA):Ethereum EIP-4844 BLOB、主要DAソリューション(0G, Avail, Celestia, EigenDA, Nearなど)
決済メカニズム:Optimistic(Fraud Proof)、ZK(Validity Proof)、Fast finality(Attestations)
M1
M1は、分散型の共有シーケンサーです。M2及びMove Stackによって構築された独自ロールアップで利用されます。集中化された既存のロールアップのシーケンサーと異なり、単一障害点を排除することでネットワークの堅牢性を高める他、トランザクションの順序付けにおける公平性と検閲体制を持ち、誰でも参加することができます。
Movement M1
M1(引用元:What Is Movement?)
また、M1ではマルチアセットステーキングを採用しています。シングルアセットステーキングでは、ステーキングに固有のトークンが必要になりますが、これにはステーキング参加へのハードルがあります。マルチアセットステーキングでは、複数種類のトークンのステーキングを可能にすることで、シングル形式のハードルを取り除きます。