![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
移動(程式語言)
什麼是 Move(程式語言)?
Move 程式語言最初用於建立 Diem 區塊鏈。它是由 Diem Association 創建的,該協會是 Meta 支持的技術聯盟。儘管區塊鏈最終被廢棄,Move至今仍在使用。
Move 程式語言是一種可執行的字節碼語言。它實現智能合約和自訂交易。 Move 旨在解決其他區塊鏈程式語言(例如 Solidity)所引起的問題。然而,實現數位稀缺和對數位資產的控制的基本目標保持不變。特別是,它還旨在防止雙重支出,並使數位資產持有者能夠維護所有權資訊。
在此過程中,Move 最大限度地提高了安全性,同時保持了精簡的設計,並且比非 Move 構建的區塊鏈顯著降低了 Gas 成本。
Move 程式語言如何運作?
Move 使用線性邏輯,這意味著資源只能使用一次,並且永遠不會複製或隱式丟棄。這允許開發人員對無法刪除或複製的自訂資源類型進行編碼,並且比其他資源類型得到更好的處理。
Move 的靜態型別系統是變數必須定義為型別(數字/字)的地方。它保護優先資源。儘管如此,它們仍然可以像常規元素一樣使用並儲存在資料結構中或作為計算中的值提供。資源在模組中也是透明的,並且隱藏起來,不被外部資源調用。
此外,Move中的模組靈活且安全,因為模組、資源和流程之間的關係就像物件導向程式設計中類別、物件和方法之間的關係。
Move還可以驗證鏈上的所有安全特徵,並支援鏈下靜態驗證工具。這大大降低了鏈上驗證的複雜性。其設計基於三個核心決策:
缺乏動態調度避免了呼叫圖建置並實現了呼叫站點的靜態確定。這使得 Move 能夠更輕鬆地識別過程呼叫的效果,並且不會產生額外的複雜性。
由於其模組化,可以隔離模組以進行功能驗證,並且它們有助於抽象資料和本地化資源上的關鍵操作。透過將模組與語言的類型系統一起封裝來保證安全性,這意味著模組外部的程式碼不能違反其類型。此外,透過檢查孤立的模組,它將為重要的模組不變量提供徹底的功能驗證。
最後,其有限的可變性允許使用類似 C++ 的參考類型。引用對於改變每個 Move 值至關重要,並且通常會在轉錄腳本中建立和銷毀臨時值。與 Rust 類似,Move 的字節碼驗證器「借用檢查」來確認至少一個可變引用。
最後,Move 會拒絕不遵循型別安全、記憶體安全和資源安全的程序。相反,可以使用帶有編譯器的高級程式語言,負責檢查屬性。另一種選擇是具有安全檢查的低階無類型程序集。
Move 程式語言有何不同?
Move 程式語言在以下幾個方面與其他區塊鏈程式語言脫穎而出:
它在定義過程的自訂資料類型方面沒有限制。
它將存取控制策略嵌入到語言語義中。
它廢除了數位資產的預設類型系統(與比特幣或以太坊不同)。
它允許查找具有程式語言表示的單一資產。定制資產應由其開發人員審查其安全屬性。
這使得 Move 能夠輕鬆創建稀缺的新資產,而無需強迫開發人員自行設計。此外,它允許開發人員修改和自訂存取控制,使程式語言比其競爭對手更加通用和可擴展。
Move 程式語言的組成部分
Move 程式語言具有構成其基礎的多個元件。
類型
這些可以是布林值、無符號整數(64 位元)、固定大小位元組數組和位址(256 位元)資料類型。
結構體
兩種具體類型:友善的和不受限制的。前者指資源結構,後者指一般結構。
程式
公共方法或內部方法。非循環模組依賴性有助於防止任何重新進入攻擊。
字節碼驗證器
專注於在模組發布之前檢查安全特徵。在程式在網路上運行之前,它們會經過驗證器並通過幾個驗證階段,例如:
類型檢查
堆疊平衡檢查
背景調查
控製圖開發
參考連結
資源檢查
字節碼解釋器
它遵循驗證,類似於以太坊使用gas。因此,它確保無限循環執行。
移動虛擬機
與其他區塊鏈類似,區塊包含多個交易,每筆交易的執行都會產生交易效果。此效果產生區塊鏈的更新的全域狀態,並且效果和狀態轉換之間是分離的。
哪些區塊鏈使用 Move 程式語言?
Move被Meta用在廢棄的Diem區塊鏈中。目前建構在 Move 上的區塊鏈包括 Aptos 區塊鏈和 Sui 區塊鏈。
Human Keys Human Keys are cryptographic keys derived from what you are, what you know, or what you have. They are used to secure digital assets, protect privacy, and access the decentralized web. |
Open Finance (OpenFi) OpenFi, short for "Open Finance," is a financial framework that integrates traditional finance (TradFi) with decentralized finance (DeFi). |
Multiple Data Availability (MultiDA) This blockchain architecture uses more than one data availability (DA) service to ensure data redundancy. |