前言
本書旨在介紹 Move,這是一種智能合約語言,它擷取了數位資產安全程式設計的精髓。Move 的設計圍繞著以下核心價值:
-
預設安全: 不安全的語言嚴重阻礙了智能合約開發的易用性以及數位資產的主流採用。智能合約語言的首要職責是透過設計從根本上防止盡可能多的潛在安全問題(例如:重入攻擊、缺少存取控制檢查、算術溢位等)。Move 的任何變更都應保留或增強其現有的安全保證。
-
天生具備豐富的表現力: Move 必須讓程式設計師能夠編寫他們能想像到的任何智能合約。但我們關心編寫 Move 的「感覺」與 Move 所能實現的功能同樣重要——該語言應足夠豐富,以提供任務所需的功能,同時又足夠簡約,讓選擇變得顯而易見。Move 工具鏈應該是提升生產力的工具,也是思考夥伴。
-
對所有人而言都直觀易懂: 智能合約只是一個實用應用程式的一部分。Move 應理解其更廣泛的使用情境,並同時考慮智能合約開發者和應用程式開發者進行設計。開發者應能輕鬆學習如何讀取由 Move 管理的狀態、建立由 Move 驅動的交易以及編寫新的 Move 程式碼。
Move 的核心技術要素包括:
- 透過可程式化物件,為數位資產提供安全、熟悉且靈活的抽象層。
- 一個豐富的能力系統(受線性型別啟發),賦予程式設計師對數值如何被建立、銷毀、儲存、複製和轉移的極致控制權。
- 一個具備強大封裝特性的模組系統,可在保持控制的同時實現程式碼重複使用。
- 動態欄位,用於在物件之間建立階層式關係。
- 可程式化交易區塊(PTB),以實現由 Move 驅動的 API 的原子性客戶端組合。
Move 於 2018 年作為 Facebook Libra 專案的一部分而誕生。它在 2019 年公開亮相,第一個由 Move 驅動的網路於 2020 年啟動。截至 2024 年 4 月,已有許多由 Move 驅動的區塊鏈投入生產,還有數個正在開發中。Move 是一種內嵌語言,具有平台無關的核心,這意味著它在每個使用它的鏈中都會呈現出略微不同的特性。
建立一種新的程式語言並圍繞它建立社群是一個雄心勃勃的長期專案。一種語言必須在相關方面比替代方案好上一個數量級才有機會,但即便如此,社群的品質比技術基礎更為重要。Move 是一種年輕的語言,但在差異化和社群方面都取得了良好的開端。一群由 Move 核心價值觀團結起來的、雖小但狂熱的智能合約程式設計師和核心貢獻者正在突破智能合約的極限,探索它們所能實現的應用,以及誰能(安全地)編寫它們。如果這激勵了您,請繼續閱讀!
— Sam Blackshear,Move 創作者