讓我們移動隋:隋的底層移動語言解釋

中級Jun 12, 2024
Sui Network依賴於智慧合約的執行,其中在Sui區塊鏈上的Rust中開發的Move語言起著至關重要的作用。我們深入研究Sui底層的Move語言,探索其不同於其他區塊鏈程式設計語言的獨特魅力。
讓我們移動隋:隋的底層移動語言解釋

Sui 是按照第一原則重新設計和構建的 L1 公鏈,旨在為創作者和開發人員提供一個能夠容納 Web3 中下一個十億使用者的開發平臺。

今年,Sui的本地程式設計語言Move經歷了重大更新和升級。2024 版本引入了枚舉、宏函數、方法語法等重要功能。這些重要的新功能引入了在Move程式設計語言中定義數據和調用函數的新方法,使Sui上的應用程式開發更加靈活,並與程式設計語言的最新期望保持一致。

Move語言在Sui生態系統中的關鍵作用是什麼?事實上,整個隋生態系統建立在三個關鍵概念的基礎上,確保即時交易結算和低交易成本——三大核心支柱是Move語言、並行交易執行和隋共識引擎。

Sui 上的應用程式基於 Move 智慧合約語言,該語言專注於智能合約並充分利用 Sui 的可擴展性和高輸送量環境,使開發人員能夠快速、經濟高效地支撐各種應用程式。

“”

在之前的文章中(“隋如何為Web30億使用者打造下一個開發平臺?”),TinTinLand詳細介紹了隋的技術優勢、市場前景和生態建設的基本情況。今天我們將深入探討Sui的底層——Move語言,探索其區別於其他區塊鏈程式設計語言的獨特風格。

Move 語言的特點

Sui 網络依賴於智慧合約執行,其中在 Sui 區塊鏈上的 Rust 中開發的 Move 語言起著至關重要的作用。與二餅的Solidity相比,Sui使用的Move語言提供了更強的安全性和可靠性。此外,Sui 將 Move 語言修改為以物件為中心,強調面向物件程式設計。

“”

Sui 上的 Move 語言允許創建針對特定用例量身定製的定製智能合約,有助於改進專案和應用程式開發和實施中涉及的不同流程,並説明降低與傳統仲介相關的成本。通過這個,更多的開發者和用戶有望進入Sui生態系統。

此外,Sui的Move語言的設計防止了雙花。通過這種方式,它可以説明Sui建立最安全的智慧合約平臺之一,解決和改進現有加密貨幣程式設計語言的固有缺陷。

Move Language 的原始目標

Sui/Mysten Labs的聯合創始人兼CTO Sam Blackshear,Move語言的創造者,在Meta(前身為Facebook)從事Diem區塊鏈專案時開發了Move。

在設計Move語言之前,Sam花了幾個月的時間仔細研究Solidity和以太坊虛擬機(EVM)。他認為智慧合約語言應該更像領域特定語言(DSL),而不是通用程式設計語言。這些語言專注於特定任務,例如創建物件、傳輸和共享物件以及執行訪問控制檢查。智慧合約程式設計的核心抽象應該圍繞這些任務,以確保安全性和效率。

“”

因此,Sam 和他的團隊決定設計一種名為 Move 的新語言,而不是嘗試徹底改革 以太坊虛擬機(EVM) 或 Solidity 等現有技術。Move 從 B 代碼開始,並包含記憶體安全、類型安全、資源安全和使用者友好的物件/資產處理等功能。

隨著Move語言的成功創建,下一個重要步驟是通過提供有吸引力的激勵措施來吸引更多的開發人員使用Move進行開發。據他們說,克服複雜的密鑰管理、錢包安裝和原生令牌收購等障礙對於吸引開發人員至關重要。

因此,Move開發團隊的目標是通過提供ZK登錄等功能,實現無需安裝錢包的交易,並允許贊助商的交易為他人支付交易費用,從而使開發者能夠探索更豐富的收入模式,從而將這些挑戰轉化為技術問題。

Sui 生態系統中的 Move 語言以物件為中心,具有全域存儲、物件 ID 的位址表示和全域唯一物件 ID 等功能,構成了 Sui 中其他技術創新的底層基礎。

移動語言的核心優勢

Sui 網路使用的 Move 語言的核心優勢包括:

  1. Move 語言引入了一個資源模型,每個物件都被視為一個唯一的實體,使其更加安全。

  2. Move 提供了嚴格的類型系統和擁有權模型,有助於在編譯時檢測和防止各種漏洞,特別適合處理複雜的金融交易。

  3. Move 支援高度的模組化和可組合性,允許開發人員創建可互操作的模組和庫。

面向資源的數據

Move 的核心創新之一是引入了面向資源的數據類型,其行為類似於現實世界的物件,無法無痕跡地複製或刪除,從而防止意外的數據篡改。

移動支援兩個核心物件:智能合約(移動包,是一組移動模組)和數位資產(資源)。Sui 對資源的原生支撐通過字節碼驗證表來表示。將移動原始程式碼編譯為字節碼後,稱為移動位元組碼驗證程式的靜態分析工具可確保字節碼遵循 Sui 的類型、記憶體和資源安全規則。此驗證可確保物件不會被其定義模組之外的代碼創建、複製或無意中刻錄。它還包括針對某些漏洞(如雙花和重入)的保護。

Security Model

Move 解決了現有語言中存在的一些安全問題,例如重入、動態調度、擁有權檢查和物件序列化,為開發人員提供了更安全的環境。

*應該注意的是,Move的安全性不僅僅是基於迄今為止沒有駭客攻擊;沒有智慧合約語言可以阻止程式師編寫不安全的代碼。仍然需要審計和其他檢查來識別此類漏洞。

“”

Move 的關鍵價值主張在於其類型化物件和類型安全性。類型安全不僅適用於程式,也適用於與外部代碼或不受信任的源交互時。

Move 的另一個內置安全功能是字節碼驗證程式。它確保智能合約字節碼有效且安全可執行。字節碼驗證器的設計旨在防止惡意代碼在鏈上執行,例如創建假幣、人為增加幣值或複製/銷毀現有幣。

模組化設計

Move 允許將代碼組織到模組中,每個模組都有自己的命名空間和隱私規則,從而更容易維護和重用代碼。移動代碼被組織成模組,類似於其他區塊鏈上的單個智能合約。Sui 強調這種模組化設計,旨在鼓勵開發人員保持模組較小並分佈在不同的檔中,同時遵守清晰的數據結構和代碼約定。這有助於應用程式集成和使用者理解。

更高效、更安全的開發體驗

對於 Web3 開發者來說,Move 和 Sui 上的開發體驗更加高效和安全。應該注意的是,對於使用 Move 開發的 Web3 專案,要充分利用 Move 的安全優勢,系統中的所有智能合約都必須始終如一地使用 Move。當所有協定都是用Move編寫的時,驗證者可以運行並確保對代碼和對象進行強有力的假設。

例如,Bucket協定正在Sui生態系統上構建一個去中心化金融專案。在展示系統架構及其協作時,他們特別提到,如果他們要用 Solidity 編寫專案,可能需要八個月的時間,但使用 Move 只用了兩個月,他們對它的安全性非常有信心。Move的工作方式與他們對項目構成的想法非常吻合。

標準移動語言的 Sui

創新與探索

Sui Move是從Move語言演變而來的,旨在更好地滿足新的高性能區塊鏈的需求,因此它與標準的Move語言有一定的區別。基於標準的 Move 語言,Sui 利用其安全性和靈活性顯著提高輸送量並降低最終性延遲,並使 Move 程式設計更易於練習。

“”

Sui Move 程式設計語言與標準 Move 有許多明顯的區別,包括:

  • Sui 使用自己的以物件為中心的全域儲存
  • 位址表示物件識別碼
  • Sui 物件具有全域唯一識別碼
  • Sui 有一個模組初始值設定項 (init)
  • Sui 上車將物件引用作為輸入

Standard Move

語言 Move 於 2020 年發布,目前在 Apache 2.0 開源許可證下獲得許可。它廣泛用於Aptos,StarCoin,0L,Rooch,Movement和Offshore等網路。

Standard Move 基於 Rust 程式設計語言,與通常與特定區塊鏈相關的現有區塊鏈語言相比,它更加通用。移動語言的建立者 Sam 的目標是創建 Web3 的 JavaScript,這是一種跨平台語言,允許開發人員在多個網路環境中應用他們的技能。

“”

Move 的主要重點是智能合約,其中包括資產和訪問控制的類型和值表示形式,這是DApp開發人員在編碼時經常遇到的兩個基本概念。Move 的一流類型抽象使程式設計更安全、更高效。

從搬家到隋搬家

雖然Move語言與平台無關,但它受到以帳戶為中心的模型的限制。當Sam和他在Mysten Labs的團隊專注於構建Sui時,他們專注於創建一個更通用的網路基礎設施,而不是天秤幣專案中Diem區塊鏈的有限範圍。

“”

Sui Move被設計為Move語言的一個分支,以更好地適應Sui的創新,例如其共識模型,最顯著的區別是它採用了面向對象的數據存儲模型。通過使用Sui Move作為其本地程式設計語言,Sui網路利用Sui的共識機制,用Sui Move編寫的應用程式實現了令人印象深刻的交易性能。

去年,Sam在一篇題為“為什麼我們創建Sui Move”的文章中詳細介紹了Move和Sui Move之間的差異,展示了Sui Move的特性和功能。

🔗 在這裡閱讀全文:https://blog.sui.io/why-we-created-sui-move

通過專注於物件,並行事務處理成為可能,與僅限於串行處理的區塊鏈相比,提供了更好的性能。在更高層次上,Sui 運行時可以直接確定獨佔物件與共享物件,對前者執行即時驗證,對後者應用共識驗證。

從開發商的角度來看,Sui消除了與資產擁有權相關的大量交易前和交易後工作的需要。原始 Move 語言通過位址和類型名稱控制全域存儲,而 Sui Move 使用物件 ID 進行全域存儲控制。對對象狀態的強調為Sui Move提供了無限的可能性,例如可組合性,物件可以擁有其他物件。

Embark on the Move Development Journey等

區塊鏈語言深受密碼學傳統的影響,更注重資產擁有權,龍頭以帳戶為中心,而不是以資產為中心。Sui Move的分叉為創建和運營資產提供了更大的靈活性,為大眾等待的各種強大程式和遊戲打開了大門。

那麼,如何從使用標準Move語言進行開發過渡到Sui Move呢?熟悉原始Move的開發人員將在其工具箱中添加一種非常有用的可移植語言。要深入研究Sui Move,需要從物件的角度思考並學習一些新的指令,但是像Sui Move Analyzer和WELLDONE Code外掛程式這樣的工具可以簡化這個過程。

🛠️ Sui Move 分析器外掛程式:https://zh.blog.sui.io/move-analyzer-tutorial/

🛠️ 做得好的代碼外掛程式:https://zh.blog.sui.io/remix-ide-welldone-code/

🔍 探索有關 Move 語言開發的更多資訊:

📄 移動開發人員文件: https://docs-zh.sui-book.com/concepts/sui-move-concepts/

📄 Sui 開發者文檔: https://docs.sui.io/guides/developer/sui-101

📄 基礎開發教程: https://zh.blog.sui.io/encode-club-sui-series-1/

免責聲明:

  1. 本文轉載自[TinTinLand],所有版權歸原作者[TinTinLand]所有。如果對此轉載有異議,請聯繫Gate Learn團隊,他們會及時處理。
  2. 免責聲明:本文中表達的觀點和意見僅代表作者的觀點和意見,不構成任何投資建議。
  3. 文章到其他語言的翻譯由Gate Learn團隊完成。除非另有說明,否則禁止複製、分發或抄襲翻譯后的文章。

移動語言的特點

移動語言的原始目標

面向資源的資料

安全模型

模組化設計

更高效、更安全的開發體驗

標準移動語言

讓我們移動隋:隋的底層移動語言解釋

中級Jun 12, 2024
Sui Network依賴於智慧合約的執行,其中在Sui區塊鏈上的Rust中開發的Move語言起著至關重要的作用。我們深入研究Sui底層的Move語言,探索其不同於其他區塊鏈程式設計語言的獨特魅力。
讓我們移動隋:隋的底層移動語言解釋

移動語言的特點

移動語言的原始目標

面向資源的資料

安全模型

模組化設計

更高效、更安全的開發體驗

標準移動語言

Sui 是按照第一原則重新設計和構建的 L1 公鏈,旨在為創作者和開發人員提供一個能夠容納 Web3 中下一個十億使用者的開發平臺。

今年,Sui的本地程式設計語言Move經歷了重大更新和升級。2024 版本引入了枚舉、宏函數、方法語法等重要功能。這些重要的新功能引入了在Move程式設計語言中定義數據和調用函數的新方法,使Sui上的應用程式開發更加靈活,並與程式設計語言的最新期望保持一致。

Move語言在Sui生態系統中的關鍵作用是什麼?事實上,整個隋生態系統建立在三個關鍵概念的基礎上,確保即時交易結算和低交易成本——三大核心支柱是Move語言、並行交易執行和隋共識引擎。

Sui 上的應用程式基於 Move 智慧合約語言,該語言專注於智能合約並充分利用 Sui 的可擴展性和高輸送量環境,使開發人員能夠快速、經濟高效地支撐各種應用程式。

“”

在之前的文章中(“隋如何為Web30億使用者打造下一個開發平臺?”),TinTinLand詳細介紹了隋的技術優勢、市場前景和生態建設的基本情況。今天我們將深入探討Sui的底層——Move語言,探索其區別於其他區塊鏈程式設計語言的獨特風格。

Move 語言的特點

Sui 網络依賴於智慧合約執行,其中在 Sui 區塊鏈上的 Rust 中開發的 Move 語言起著至關重要的作用。與二餅的Solidity相比,Sui使用的Move語言提供了更強的安全性和可靠性。此外,Sui 將 Move 語言修改為以物件為中心,強調面向物件程式設計。

“”

Sui 上的 Move 語言允許創建針對特定用例量身定製的定製智能合約,有助於改進專案和應用程式開發和實施中涉及的不同流程,並説明降低與傳統仲介相關的成本。通過這個,更多的開發者和用戶有望進入Sui生態系統。

此外,Sui的Move語言的設計防止了雙花。通過這種方式,它可以説明Sui建立最安全的智慧合約平臺之一,解決和改進現有加密貨幣程式設計語言的固有缺陷。

Move Language 的原始目標

Sui/Mysten Labs的聯合創始人兼CTO Sam Blackshear,Move語言的創造者,在Meta(前身為Facebook)從事Diem區塊鏈專案時開發了Move。

在設計Move語言之前,Sam花了幾個月的時間仔細研究Solidity和以太坊虛擬機(EVM)。他認為智慧合約語言應該更像領域特定語言(DSL),而不是通用程式設計語言。這些語言專注於特定任務,例如創建物件、傳輸和共享物件以及執行訪問控制檢查。智慧合約程式設計的核心抽象應該圍繞這些任務,以確保安全性和效率。

“”

因此,Sam 和他的團隊決定設計一種名為 Move 的新語言,而不是嘗試徹底改革 以太坊虛擬機(EVM) 或 Solidity 等現有技術。Move 從 B 代碼開始,並包含記憶體安全、類型安全、資源安全和使用者友好的物件/資產處理等功能。

隨著Move語言的成功創建,下一個重要步驟是通過提供有吸引力的激勵措施來吸引更多的開發人員使用Move進行開發。據他們說,克服複雜的密鑰管理、錢包安裝和原生令牌收購等障礙對於吸引開發人員至關重要。

因此,Move開發團隊的目標是通過提供ZK登錄等功能,實現無需安裝錢包的交易,並允許贊助商的交易為他人支付交易費用,從而使開發者能夠探索更豐富的收入模式,從而將這些挑戰轉化為技術問題。

Sui 生態系統中的 Move 語言以物件為中心,具有全域存儲、物件 ID 的位址表示和全域唯一物件 ID 等功能,構成了 Sui 中其他技術創新的底層基礎。

移動語言的核心優勢

Sui 網路使用的 Move 語言的核心優勢包括:

  1. Move 語言引入了一個資源模型,每個物件都被視為一個唯一的實體,使其更加安全。

  2. Move 提供了嚴格的類型系統和擁有權模型,有助於在編譯時檢測和防止各種漏洞,特別適合處理複雜的金融交易。

  3. Move 支援高度的模組化和可組合性,允許開發人員創建可互操作的模組和庫。

面向資源的數據

Move 的核心創新之一是引入了面向資源的數據類型,其行為類似於現實世界的物件,無法無痕跡地複製或刪除,從而防止意外的數據篡改。

移動支援兩個核心物件:智能合約(移動包,是一組移動模組)和數位資產(資源)。Sui 對資源的原生支撐通過字節碼驗證表來表示。將移動原始程式碼編譯為字節碼後,稱為移動位元組碼驗證程式的靜態分析工具可確保字節碼遵循 Sui 的類型、記憶體和資源安全規則。此驗證可確保物件不會被其定義模組之外的代碼創建、複製或無意中刻錄。它還包括針對某些漏洞(如雙花和重入)的保護。

Security Model

Move 解決了現有語言中存在的一些安全問題,例如重入、動態調度、擁有權檢查和物件序列化,為開發人員提供了更安全的環境。

*應該注意的是,Move的安全性不僅僅是基於迄今為止沒有駭客攻擊;沒有智慧合約語言可以阻止程式師編寫不安全的代碼。仍然需要審計和其他檢查來識別此類漏洞。

“”

Move 的關鍵價值主張在於其類型化物件和類型安全性。類型安全不僅適用於程式,也適用於與外部代碼或不受信任的源交互時。

Move 的另一個內置安全功能是字節碼驗證程式。它確保智能合約字節碼有效且安全可執行。字節碼驗證器的設計旨在防止惡意代碼在鏈上執行,例如創建假幣、人為增加幣值或複製/銷毀現有幣。

模組化設計

Move 允許將代碼組織到模組中,每個模組都有自己的命名空間和隱私規則,從而更容易維護和重用代碼。移動代碼被組織成模組,類似於其他區塊鏈上的單個智能合約。Sui 強調這種模組化設計,旨在鼓勵開發人員保持模組較小並分佈在不同的檔中,同時遵守清晰的數據結構和代碼約定。這有助於應用程式集成和使用者理解。

更高效、更安全的開發體驗

對於 Web3 開發者來說,Move 和 Sui 上的開發體驗更加高效和安全。應該注意的是,對於使用 Move 開發的 Web3 專案,要充分利用 Move 的安全優勢,系統中的所有智能合約都必須始終如一地使用 Move。當所有協定都是用Move編寫的時,驗證者可以運行並確保對代碼和對象進行強有力的假設。

例如,Bucket協定正在Sui生態系統上構建一個去中心化金融專案。在展示系統架構及其協作時,他們特別提到,如果他們要用 Solidity 編寫專案,可能需要八個月的時間,但使用 Move 只用了兩個月,他們對它的安全性非常有信心。Move的工作方式與他們對項目構成的想法非常吻合。

標準移動語言的 Sui

創新與探索

Sui Move是從Move語言演變而來的,旨在更好地滿足新的高性能區塊鏈的需求,因此它與標準的Move語言有一定的區別。基於標準的 Move 語言,Sui 利用其安全性和靈活性顯著提高輸送量並降低最終性延遲,並使 Move 程式設計更易於練習。

“”

Sui Move 程式設計語言與標準 Move 有許多明顯的區別,包括:

  • Sui 使用自己的以物件為中心的全域儲存
  • 位址表示物件識別碼
  • Sui 物件具有全域唯一識別碼
  • Sui 有一個模組初始值設定項 (init)
  • Sui 上車將物件引用作為輸入

Standard Move

語言 Move 於 2020 年發布,目前在 Apache 2.0 開源許可證下獲得許可。它廣泛用於Aptos,StarCoin,0L,Rooch,Movement和Offshore等網路。

Standard Move 基於 Rust 程式設計語言,與通常與特定區塊鏈相關的現有區塊鏈語言相比,它更加通用。移動語言的建立者 Sam 的目標是創建 Web3 的 JavaScript,這是一種跨平台語言,允許開發人員在多個網路環境中應用他們的技能。

“”

Move 的主要重點是智能合約,其中包括資產和訪問控制的類型和值表示形式,這是DApp開發人員在編碼時經常遇到的兩個基本概念。Move 的一流類型抽象使程式設計更安全、更高效。

從搬家到隋搬家

雖然Move語言與平台無關,但它受到以帳戶為中心的模型的限制。當Sam和他在Mysten Labs的團隊專注於構建Sui時,他們專注於創建一個更通用的網路基礎設施,而不是天秤幣專案中Diem區塊鏈的有限範圍。

“”

Sui Move被設計為Move語言的一個分支,以更好地適應Sui的創新,例如其共識模型,最顯著的區別是它採用了面向對象的數據存儲模型。通過使用Sui Move作為其本地程式設計語言,Sui網路利用Sui的共識機制,用Sui Move編寫的應用程式實現了令人印象深刻的交易性能。

去年,Sam在一篇題為“為什麼我們創建Sui Move”的文章中詳細介紹了Move和Sui Move之間的差異,展示了Sui Move的特性和功能。

🔗 在這裡閱讀全文:https://blog.sui.io/why-we-created-sui-move

通過專注於物件,並行事務處理成為可能,與僅限於串行處理的區塊鏈相比,提供了更好的性能。在更高層次上,Sui 運行時可以直接確定獨佔物件與共享物件,對前者執行即時驗證,對後者應用共識驗證。

從開發商的角度來看,Sui消除了與資產擁有權相關的大量交易前和交易後工作的需要。原始 Move 語言通過位址和類型名稱控制全域存儲,而 Sui Move 使用物件 ID 進行全域存儲控制。對對象狀態的強調為Sui Move提供了無限的可能性,例如可組合性,物件可以擁有其他物件。

Embark on the Move Development Journey等

區塊鏈語言深受密碼學傳統的影響,更注重資產擁有權,龍頭以帳戶為中心,而不是以資產為中心。Sui Move的分叉為創建和運營資產提供了更大的靈活性,為大眾等待的各種強大程式和遊戲打開了大門。

那麼,如何從使用標準Move語言進行開發過渡到Sui Move呢?熟悉原始Move的開發人員將在其工具箱中添加一種非常有用的可移植語言。要深入研究Sui Move,需要從物件的角度思考並學習一些新的指令,但是像Sui Move Analyzer和WELLDONE Code外掛程式這樣的工具可以簡化這個過程。

🛠️ Sui Move 分析器外掛程式:https://zh.blog.sui.io/move-analyzer-tutorial/

🛠️ 做得好的代碼外掛程式:https://zh.blog.sui.io/remix-ide-welldone-code/

🔍 探索有關 Move 語言開發的更多資訊:

📄 移動開發人員文件: https://docs-zh.sui-book.com/concepts/sui-move-concepts/

📄 Sui 開發者文檔: https://docs.sui.io/guides/developer/sui-101

📄 基礎開發教程: https://zh.blog.sui.io/encode-club-sui-series-1/

免責聲明:

  1. 本文轉載自[TinTinLand],所有版權歸原作者[TinTinLand]所有。如果對此轉載有異議,請聯繫Gate Learn團隊,他們會及時處理。
  2. 免責聲明:本文中表達的觀點和意見僅代表作者的觀點和意見,不構成任何投資建議。
  3. 文章到其他語言的翻譯由Gate Learn團隊完成。除非另有說明,否則禁止複製、分發或抄襲翻譯后的文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!