|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
移動 (プログラミング言語)
Move(プログラミング言語)とは何ですか?
Move プログラミング言語は、最初は Diem ブロックチェーンの構築に使用されました。これは、Meta が支援する技術コンソーシアムである Diem Association によって作成されました。ブロックチェーンは最終的に廃棄されましたが、Move は現在でも使用されています。
Move プログラミング言語は、実行可能なバイトコード言語です。スマートコントラクトとカスタムトランザクションを実装します。 Move は、Solidity などの他のブロックチェーン プログラミング言語から生じる問題を解決することを目的としています。ただし、デジタルの希少性とデジタル資産の管理を達成するという基本的な目標は変わりません。特に、二重支払いを防止し、デジタル資産の所有者が所有権情報を維持できるようにすることも目的としています。
そうすることで、Move は合理化された設計を維持しながら安全性を最大限に高め、Move で構築されていないブロックチェーンよりもガスコストを大幅に削減します。
Move プログラミング言語はどのように機能しますか?
移動では線形ロジックが使用されます。つまり、リソースは 1 回だけ使用でき、コピーしたり暗黙的に破棄したりすることはできません。これにより、開発者は、消去または複製できず、他のものよりも適切に扱われるカスタム リソース タイプをエンコードできるようになります。
Move の静的型システムでは、変数を型 (数値/単語) として定義する必要があります。優先順位の高いリソースを保護します。それでも、通常の要素と同様に使用でき、データ構造に保存したり、計算の値として指定したりできます。リソースはモジュール内でも透過的であり、外部ソースからの呼び出しから隠されています。
さらに、モジュール、リソース、プロシージャ間の関係は、オブジェクト指向プログラミングにおけるクラス、オブジェクト、メソッド間の関係に似ているため、Move のモジュールは柔軟で安全です。
Move は、すべての安全特性をオンチェーンで検証し、オフチェーンの静的検証ツールをサポートすることもできます。これにより、オンチェーン検証に関する複雑さが大幅に軽減されます。その設計は、次の 3 つの主要な決定に基づいています。
動的なディスパッチがないため、コール グラフの構築が回避され、コール サイトの静的な決定が可能になります。これにより、Move は、複雑さを増すことなく、プロシージャ呼び出しの影響をより簡単に識別できるようになります。
そのモジュール性のおかげで、機能検証のためにモジュールを分離することができ、データの抽象化とリソースに対する重要な操作のローカライズに役立ちます。安全性は、言語の型システムと一緒にモジュールをカプセル化することによって保証されます。つまり、モジュールの外側のコードがその型に違反することはできません。さらに、分離されたモジュールを検査することで、モジュールの重要な不変条件について徹底的な機能検証が可能になります。
最後に、可変性が制限されているため、C++ と同様の参照型を使用できます。参照は各 Move 値を変更するために不可欠であり、通常、一時的な値は転写スクリプト内で作成および破棄されます。 Rust と同様に、Move のバイトコード検証ツールは「チェックを借用」して、少なくとも 1 つの変更可能な参照を確認します。
最後に、Move は、型安全性、メモリ安全性、およびリソース安全性に従っていないプログラムを拒否します。代わりに、プロパティのチェックを担当するコンパイラを備えた高級プログラミング言語を使用できます。代替案は、安全チェックを備えた低レベルの型なしアセンブリです。
Move プログラミング言語はどう違うのですか?
Move プログラミング言語は、いくつかの点で他のブロックチェーン プログラミング言語より際立っています。
プロシージャのカスタム データ型の定義に制限はありません。
言語セマンティクスにアクセス制御ポリシーを埋め込みます。
(ビットコインやイーサリアムとは異なり) デジタル資産のデフォルトのタイプ システムが廃止されます。
これにより、プログラミング言語で表現された単一のアセットを見つけることができます。カスタム資産は、開発者によって安全性についてレビューされる必要があります。
これにより、Move は、開発者が独自に設計する必要がなく、希少性のある新しいアセットを簡単に作成できるようになります。さらに、開発者はアクセス制御を変更およびカスタマイズできるため、プログラミング言語が競合他社よりも多用途でスケーラブルになります。
Move プログラミング言語のコンポーネント
Move プログラミング言語には、その基礎を形成するいくつかのコンポーネントがあります。
種類
これらには、ブール値、符号なし整数 (64 ビット)、固定サイズのバイト配列、およびアドレス (256 ビット) データ型を使用できます。
構造体
2 つの具体的なタイプ: 種類と無制限。前者はリソース構造を指し、後者は一般構造を指します。
手順
パブリックまたは内部のメソッド。非周期的なモジュールの依存関係は、再入攻撃を防ぐのに役立ちます。
バイトコードベリファイア
モジュールの公開前に安全特性をチェックすることに重点を置いています。プログラムはネットワーク上で稼働する前に、検証ツールを通過し、次のようないくつかの検証段階を通過します。
型チェック
スタックバランスチェック
参照チェック
制御グラフの開発
参照リンク
リソースのチェック
バイトコードインタープリタ
検証を経たもので、ガスを使用したイーサリアムに似ています。したがって、無限ループの実行が保証されます。
仮想マシンの移動
他のブロックチェーンと同様に、ブロックには複数のトランザクションが含まれており、各トランザクションはトランザクション効果を生み出すために実行されます。エフェクトは、エフェクトと状態遷移を分離して、ブロックチェーンの更新されたグローバル状態を生成します。
Move プログラミング言語を使用するブロックチェーンはどれですか?
Moveは、Metaによって廃棄されたDiemブロックチェーンで使用されました。 Move上に構築されている現在のブロックチェーンには、AptosブロックチェーンとSuiブロックチェーンが含まれます。
建玉
建玉とは、各取引セッションの終了時に市場参加者が保有する未処理のデリバティブ契約、特に先物とオプションの合計数を指します。 |
現実世界の資産 (RWA)
リアルワールドアセットはオフチェーンアセットであり、DeFi で使用するためにトークン化されてオンチェーンに持ち込まれます。トークン化には、ブロックチェーン上での表現とトランザクションのために資産の価値をデジタル トークンに変換することが含まれます。 |
ブラック・ショールズモデル
簡単に言えば、これはストック オプションの公正価格を与える数式であり、投資家がストック オプションが過大評価されているか過小評価されているかを計算できるようになります。 |
コンセンサス層
コンセンサス層はあらゆるブロックチェーン ネットワークのバックボーンであり、ブロックチェーンの真の状態についてノード間の合意を促進するという重要な役割を果たします。 |
AIコイン
AI コインは、ブロックチェーン技術を通じて透明性とセキュリティを維持しながら、AI 関連のトランザクションとインタラクションを合理化するように設計されています。 |
リースプルーフオブステーク (LPoS)
リースド プルーフ オブ ステーク (LPoS) は、暗号通貨保有者がネットワーク上のノードにコインをリースできるようにするコンセンサス メカニズムです。 |