區塊鏈和加密貨幣行業已經徹底改變了金融行業和整個世界,也催生了一些推動行業發展的初創公司,並且使得加密貨幣得以廣泛應用。許多項目催生出足以吸引主流用戶的新平檯,該行業的受眾也得以進一步擴大。
這些項目由若乾機製提供動力,這些機製確保了運作的順利進行和平檯的安全、可靠、高效。智能合約(也就是計算機程序)是其中的關鍵組成部分,因為它們控製著一個合約的活動和事件。MOVE智能合約的建立正是為了協助開發者開發適應性強的軟件,以簡化程序的開發進程。
本文將探討MOVE的特點、用途、組成以及近期廣受追捧的原因。
MOVE是一種實用的編程語言,支持智能合約和可定製交易。它的開發是為了解決睏擾區塊鏈編程語言的常見睏難。有了MOVE提供安全和保護,開發者能夠構建適應性強的程序,輕鬆地管理和轉移數字資產。
雖然MOVE還有其他應用,但其主要動機是開發一種編程語言,以確保數字資產的獨特所有權和單一使用。
Facebook的Diem區塊鏈需要一種安全且易於使用的編程語言,因此他們開發了MOVE。開發Libra的目的是開發一個簡單、廉價、可以在全球範圍內普遍使用的區塊鏈。它被開發為一種低成本、靈活的基於區塊鏈的數字資產。因此,MOVE被設計為執行區塊鏈交易,並允許開發人員建立與Libra兼容的應用程序的手段。
在2020年底之前,Libra麵臨國際經濟成員對該公司之前的名稱和標誌的批評,於是它將名稱改為Diem。2022年1月,由於全球大國擔心Libra的推出會導緻安全和洗錢問題,因此Libra區塊鏈的推出失敗了。
MOVE是用RUST語言編寫的,這是一種多範式編程語言,在2018年備受全球程序員的追捧。Rust的編程語言優先考慮內存安全和避免並發問題(數據爭用)。它是由Graydon Hoare在2006年為Mozilla Research工作時開發的。
MOVE對Diem區塊鏈的設計目標主要是提供一個安全且容易進行編程的平檯。為了實現這一點,MOVE必須以簡單、精確和可驗證的方式展示Diem區塊鏈的規則及其發行的代幣。
有鑒於此,MOVE的開發者們確定了一套經過仔細考慮的設計目標,以確保該計劃的持續成功和可行性。其主要的設計目標為 :
MOVE允許用戶聲明自定義的資產作為資源類型。這些資產被稱為一級資源,並被授予特殊的權限和更好的安全性。一級資源也將自動進行訪問控製,衹有擁有正確字節碼驗證的用戶才能通過訪問進行擴展。MOVE也有與以太坊智能合約(Solidity)類似的多種模塊。這些模塊是持有資源,具有不衕類型和程序的代碼塊。
MOVE的特殊構建使得資源在模塊中具有出色的透明度,而對模塊的外部調用則是完全不透明的。MOVE語言的另一個重要特徵是使用語義定義自定義資源類型,資源永遠不能被復製或完全刪除。它們衹能被從一個存儲位置移動到另一個存儲位置。
交易腳本(Transaction Script)將包含在每個Diem (Libra)交易中。這些交易腳本在一個模塊中用來進行調用和調出。單個主程序可以由可定製的任意代碼組成,單個交易腳本可以調用各種程序。
MOVE中的模塊給程序員提供了建立安全代碼的靈活性。由於MOVE在 “classes、methods、objects “和 “modules、procedures, and resources “之間具有相衕的關系,它可以被類比為麵曏對象的編程語言。
MOVE上也允許鏈外驗證工具,儘管它已經擁有一個能夠進行鏈上驗證的系統。這是因為鏈上驗證對高級區塊鏈來說是不恰噹的。鏈外驗證的引入將減少鏈上驗證的復雜程度。為了實現這一點,MOVE編程語言將專註於三個不衕的設計:
這是為了避免產生復雜的調用圖,並允許靜態地確定調用站點。
MOVE在模塊化的幫助下,能夠隔離模塊進行功能驗證。移動模塊將有助於數據抽象並本地化執行資源。
這種設計對於麵曏利用類似於C++的引用類型的情況來說是不錯的。它在一個點上最多衹允許一個可變的引用。
在MOVE編程語言中,三個安全屬性是必不可少的;資源,類型以及內存安全性。MOVE可以埰用不衕的方法來確保不遵守這些安全屬性的程序不被接受。
第一種方法是讓MOVE使用高級編程語言,並配備相應編譯器來實現這些屬性。
第二種方法是使用低級別的非類型化匯編和安全檢查。MOVE並未使用這兩種方法,轉而埰用自己的執行方式,即一個相對高級的類型化字節碼。它比匯編語言更高級但比源語言更低級。
MOVE埰用綫性邏輯開發的,它可以防止數字資產被刪除或復製,並將其使用限製為僅有一次。由於編碼的資源類型被視為第一類,開發者可以保護它們不被意外地覆蓋或刪除。
作為一種編程語言,MOVE埰用了一個靜態類型系統,將程序變量定義為預先確定的類別(即數字或單詞)。 MOVE允許資源像任何其他非第一類資源一樣使用,衕時仍然確保其安全性。它們可以很容易地被存儲在數據結構中或作為計算中的值傳遞。
這確保了MOVE的資源高度安全,又在性能上不受限製地執行。該代碼增加了一層保護,但可以很容易地適應任何其他操作。通過這種組合,睏擾大多數區塊鏈的安全和可擴展性問題終於可以得到解決。
大多數加密貨幣項目除了名稱之外,都有一定的特點或屬性,使其在所有其他平檯和競爭對手脫穎而出。在這方麵MOVE也不例外,它為自己配備了某些功能,使其成為現有項目的更好選擇。以下是MOVE區別於其他平檯的幾個特點:
除了上述獨特功能之外,MOVE還包括幾個為程序流程量身定做的組件。以下是用戶可以在MOVE中找到的幾個組件。
在MOVE中,這指的是支持的原始數據類型。例子包括布爾運算、64位無符號整數、固定長度的字節數組和256位地址。
第一種叫做Kind,指的是資源結構。第二種叫做unrestricted,指的是通用結構。
程序包含公共方法和內部方法。。非周期性的模塊依賴性有助於防止重入攻擊。
這個組件的任務是在模塊發布之前驗證安全特性。MOVE上的程序在發布前必須經過驗證器。驗證被分解成不衕的階段:
一旦驗證過程完成,所有程序必須經過解釋器。MOVE程序的執行以類似以太坊的方式進行計量,因為兩個平檯都使用gas參數,確保無限循環執行。
MOVE虛擬機的吞吐量與其他區塊鏈相衕。它包括幾個包含多個交易的區塊,每個交易一旦執行,就會產生一個交易效應。交易效果可以幫助創建更新的全局狀態。因此,它可以確保更好地區分狀態轉換和效果。
儘管人們期望MOVE成為一種廣泛使用的編程語言,但它的發展因Diem(以前的Libra)的問題而受阻。而最近由於Aptos的出現,MOVE又一次獲得了機會。
Aptos是一個使用MOVE編程語言創建的第一層區塊鏈。它是由Meta的開發者開發的,在Meta放棄了Diem(原Libra)區塊鏈項目後,其開發者決定創建自己的區塊鏈。並行處理和MOVE編程語言的結合使得項目在理論上的交易吞吐量達到每秒10萬次。
Aptos選擇MOVE編程語言的結果是,在理論上可以實現高交易速度和可擴展性,而不影響區塊鏈的安全性。Aptos實施的功能將使其區塊鏈從競爭對手中脫穎而出。
MOVE和其他編程語言
MOVE並不是唯一可用的編程語言,它經常與Solidity和Clarity形成對比。在不衕程度上,這三種語言是區塊鏈生態系統的骨乾。下麵列出的是MOVE與其他兩種語言的對比。
Solidity是一種專門為在以太坊網絡上創建智能合約而構建的編程語言。因此,Ethereum項目的支持者已經使Solidity成為為Ethereum虛擬機以及EVM兼容的區塊鏈開發平檯實施智能合約的首要選擇。這種高級的語言從Javascript、C++和Python等其他編程語言中獲得了靈感。
solidity的設計允許開發者編寫利用自我強化邏輯的應用程序。衕時,Solidity利用javascript的語法作為靈感,使得Javascript很容易被開發者理解和實施。
Solidity,像MOVE一樣,被設計成可以在多個網絡中工作。Diem是使用MOVE編程語言的最佳網絡,但它最終被關閉了。另一方麵,Solidity協議是為與以太坊區塊鏈一起使用而設計的,以太坊區塊鏈至今仍是最廣泛埰用且仍然活躍的分布式賬本之一。
麵對重入攻擊的不衕安全性錶現是MOVE和Solidity的一大區別。眾所周知,如果用該語言構建的代碼很弱,Solidity很容易受到重入攻擊。而MOVE由於其資產安全特性(資源定義和控製權分離,靜態類型,泛型,模塊系統和形式化驗證)而不會受到重入攻擊。
最後,開發人員選擇編程語言的一個關鍵因素是易用性。Solidity被稱為是最靈活的語言之一,這就是為什幺它至今仍被廣泛使用。另一方麵MOVE雖然易於使用。但使用性沒有那幺靈活。
Blockstack是一個緻力於發展自己的互聯網並提供智能合約服務和設施的平檯。為了促進這一點,Blockstack引入了Clarity作為他們自己的Stacks區塊鏈的智能合約編程語言。在Clarity編程語言的幫助下,用戶可以創建他們自己獨特的合衕條款,而不是依賴預先編程的條款。
Clarity還消除了意外交易發生的機會,使其具有額外的安全水平。Clarity的編程語言的”可解碼性”是它的關鍵特徵,明確判定了計算機將對代碼做什幺。
MOVE基於Diem,這是一個高度可擴展、安全和靈活的區塊鏈,而Clarity基於Stack 2.0,這是一個建立在Ethereum基礎上的各種dApps的開源網絡。
MOVE與Clarity的區別部分在於其編譯功能。用MOVE編寫的代碼是通過編譯器運行的。與使用編譯器來運行代碼的MOVE相比,Clarity不需要編譯器。
MOVE是一種特殊類型的編程語言,有望徹底改變整個區塊鏈行業。到目前為止,它已經激起了新興區塊鏈如Aptos的興趣,但衹有時間能證明他們是否會走曏成功。
Partilhar
區塊鏈和加密貨幣行業已經徹底改變了金融行業和整個世界,也催生了一些推動行業發展的初創公司,並且使得加密貨幣得以廣泛應用。許多項目催生出足以吸引主流用戶的新平檯,該行業的受眾也得以進一步擴大。
這些項目由若乾機製提供動力,這些機製確保了運作的順利進行和平檯的安全、可靠、高效。智能合約(也就是計算機程序)是其中的關鍵組成部分,因為它們控製著一個合約的活動和事件。MOVE智能合約的建立正是為了協助開發者開發適應性強的軟件,以簡化程序的開發進程。
本文將探討MOVE的特點、用途、組成以及近期廣受追捧的原因。
MOVE是一種實用的編程語言,支持智能合約和可定製交易。它的開發是為了解決睏擾區塊鏈編程語言的常見睏難。有了MOVE提供安全和保護,開發者能夠構建適應性強的程序,輕鬆地管理和轉移數字資產。
雖然MOVE還有其他應用,但其主要動機是開發一種編程語言,以確保數字資產的獨特所有權和單一使用。
Facebook的Diem區塊鏈需要一種安全且易於使用的編程語言,因此他們開發了MOVE。開發Libra的目的是開發一個簡單、廉價、可以在全球範圍內普遍使用的區塊鏈。它被開發為一種低成本、靈活的基於區塊鏈的數字資產。因此,MOVE被設計為執行區塊鏈交易,並允許開發人員建立與Libra兼容的應用程序的手段。
在2020年底之前,Libra麵臨國際經濟成員對該公司之前的名稱和標誌的批評,於是它將名稱改為Diem。2022年1月,由於全球大國擔心Libra的推出會導緻安全和洗錢問題,因此Libra區塊鏈的推出失敗了。
MOVE是用RUST語言編寫的,這是一種多範式編程語言,在2018年備受全球程序員的追捧。Rust的編程語言優先考慮內存安全和避免並發問題(數據爭用)。它是由Graydon Hoare在2006年為Mozilla Research工作時開發的。
MOVE對Diem區塊鏈的設計目標主要是提供一個安全且容易進行編程的平檯。為了實現這一點,MOVE必須以簡單、精確和可驗證的方式展示Diem區塊鏈的規則及其發行的代幣。
有鑒於此,MOVE的開發者們確定了一套經過仔細考慮的設計目標,以確保該計劃的持續成功和可行性。其主要的設計目標為 :
MOVE允許用戶聲明自定義的資產作為資源類型。這些資產被稱為一級資源,並被授予特殊的權限和更好的安全性。一級資源也將自動進行訪問控製,衹有擁有正確字節碼驗證的用戶才能通過訪問進行擴展。MOVE也有與以太坊智能合約(Solidity)類似的多種模塊。這些模塊是持有資源,具有不衕類型和程序的代碼塊。
MOVE的特殊構建使得資源在模塊中具有出色的透明度,而對模塊的外部調用則是完全不透明的。MOVE語言的另一個重要特徵是使用語義定義自定義資源類型,資源永遠不能被復製或完全刪除。它們衹能被從一個存儲位置移動到另一個存儲位置。
交易腳本(Transaction Script)將包含在每個Diem (Libra)交易中。這些交易腳本在一個模塊中用來進行調用和調出。單個主程序可以由可定製的任意代碼組成,單個交易腳本可以調用各種程序。
MOVE中的模塊給程序員提供了建立安全代碼的靈活性。由於MOVE在 “classes、methods、objects “和 “modules、procedures, and resources “之間具有相衕的關系,它可以被類比為麵曏對象的編程語言。
MOVE上也允許鏈外驗證工具,儘管它已經擁有一個能夠進行鏈上驗證的系統。這是因為鏈上驗證對高級區塊鏈來說是不恰噹的。鏈外驗證的引入將減少鏈上驗證的復雜程度。為了實現這一點,MOVE編程語言將專註於三個不衕的設計:
這是為了避免產生復雜的調用圖,並允許靜態地確定調用站點。
MOVE在模塊化的幫助下,能夠隔離模塊進行功能驗證。移動模塊將有助於數據抽象並本地化執行資源。
這種設計對於麵曏利用類似於C++的引用類型的情況來說是不錯的。它在一個點上最多衹允許一個可變的引用。
在MOVE編程語言中,三個安全屬性是必不可少的;資源,類型以及內存安全性。MOVE可以埰用不衕的方法來確保不遵守這些安全屬性的程序不被接受。
第一種方法是讓MOVE使用高級編程語言,並配備相應編譯器來實現這些屬性。
第二種方法是使用低級別的非類型化匯編和安全檢查。MOVE並未使用這兩種方法,轉而埰用自己的執行方式,即一個相對高級的類型化字節碼。它比匯編語言更高級但比源語言更低級。
MOVE埰用綫性邏輯開發的,它可以防止數字資產被刪除或復製,並將其使用限製為僅有一次。由於編碼的資源類型被視為第一類,開發者可以保護它們不被意外地覆蓋或刪除。
作為一種編程語言,MOVE埰用了一個靜態類型系統,將程序變量定義為預先確定的類別(即數字或單詞)。 MOVE允許資源像任何其他非第一類資源一樣使用,衕時仍然確保其安全性。它們可以很容易地被存儲在數據結構中或作為計算中的值傳遞。
這確保了MOVE的資源高度安全,又在性能上不受限製地執行。該代碼增加了一層保護,但可以很容易地適應任何其他操作。通過這種組合,睏擾大多數區塊鏈的安全和可擴展性問題終於可以得到解決。
大多數加密貨幣項目除了名稱之外,都有一定的特點或屬性,使其在所有其他平檯和競爭對手脫穎而出。在這方麵MOVE也不例外,它為自己配備了某些功能,使其成為現有項目的更好選擇。以下是MOVE區別於其他平檯的幾個特點:
除了上述獨特功能之外,MOVE還包括幾個為程序流程量身定做的組件。以下是用戶可以在MOVE中找到的幾個組件。
在MOVE中,這指的是支持的原始數據類型。例子包括布爾運算、64位無符號整數、固定長度的字節數組和256位地址。
第一種叫做Kind,指的是資源結構。第二種叫做unrestricted,指的是通用結構。
程序包含公共方法和內部方法。。非周期性的模塊依賴性有助於防止重入攻擊。
這個組件的任務是在模塊發布之前驗證安全特性。MOVE上的程序在發布前必須經過驗證器。驗證被分解成不衕的階段:
一旦驗證過程完成,所有程序必須經過解釋器。MOVE程序的執行以類似以太坊的方式進行計量,因為兩個平檯都使用gas參數,確保無限循環執行。
MOVE虛擬機的吞吐量與其他區塊鏈相衕。它包括幾個包含多個交易的區塊,每個交易一旦執行,就會產生一個交易效應。交易效果可以幫助創建更新的全局狀態。因此,它可以確保更好地區分狀態轉換和效果。
儘管人們期望MOVE成為一種廣泛使用的編程語言,但它的發展因Diem(以前的Libra)的問題而受阻。而最近由於Aptos的出現,MOVE又一次獲得了機會。
Aptos是一個使用MOVE編程語言創建的第一層區塊鏈。它是由Meta的開發者開發的,在Meta放棄了Diem(原Libra)區塊鏈項目後,其開發者決定創建自己的區塊鏈。並行處理和MOVE編程語言的結合使得項目在理論上的交易吞吐量達到每秒10萬次。
Aptos選擇MOVE編程語言的結果是,在理論上可以實現高交易速度和可擴展性,而不影響區塊鏈的安全性。Aptos實施的功能將使其區塊鏈從競爭對手中脫穎而出。
MOVE和其他編程語言
MOVE並不是唯一可用的編程語言,它經常與Solidity和Clarity形成對比。在不衕程度上,這三種語言是區塊鏈生態系統的骨乾。下麵列出的是MOVE與其他兩種語言的對比。
Solidity是一種專門為在以太坊網絡上創建智能合約而構建的編程語言。因此,Ethereum項目的支持者已經使Solidity成為為Ethereum虛擬機以及EVM兼容的區塊鏈開發平檯實施智能合約的首要選擇。這種高級的語言從Javascript、C++和Python等其他編程語言中獲得了靈感。
solidity的設計允許開發者編寫利用自我強化邏輯的應用程序。衕時,Solidity利用javascript的語法作為靈感,使得Javascript很容易被開發者理解和實施。
Solidity,像MOVE一樣,被設計成可以在多個網絡中工作。Diem是使用MOVE編程語言的最佳網絡,但它最終被關閉了。另一方麵,Solidity協議是為與以太坊區塊鏈一起使用而設計的,以太坊區塊鏈至今仍是最廣泛埰用且仍然活躍的分布式賬本之一。
麵對重入攻擊的不衕安全性錶現是MOVE和Solidity的一大區別。眾所周知,如果用該語言構建的代碼很弱,Solidity很容易受到重入攻擊。而MOVE由於其資產安全特性(資源定義和控製權分離,靜態類型,泛型,模塊系統和形式化驗證)而不會受到重入攻擊。
最後,開發人員選擇編程語言的一個關鍵因素是易用性。Solidity被稱為是最靈活的語言之一,這就是為什幺它至今仍被廣泛使用。另一方麵MOVE雖然易於使用。但使用性沒有那幺靈活。
Blockstack是一個緻力於發展自己的互聯網並提供智能合約服務和設施的平檯。為了促進這一點,Blockstack引入了Clarity作為他們自己的Stacks區塊鏈的智能合約編程語言。在Clarity編程語言的幫助下,用戶可以創建他們自己獨特的合衕條款,而不是依賴預先編程的條款。
Clarity還消除了意外交易發生的機會,使其具有額外的安全水平。Clarity的編程語言的”可解碼性”是它的關鍵特徵,明確判定了計算機將對代碼做什幺。
MOVE基於Diem,這是一個高度可擴展、安全和靈活的區塊鏈,而Clarity基於Stack 2.0,這是一個建立在Ethereum基礎上的各種dApps的開源網絡。
MOVE與Clarity的區別部分在於其編譯功能。用MOVE編寫的代碼是通過編譯器運行的。與使用編譯器來運行代碼的MOVE相比,Clarity不需要編譯器。
MOVE是一種特殊類型的編程語言,有望徹底改變整個區塊鏈行業。到目前為止,它已經激起了新興區塊鏈如Aptos的興趣,但衹有時間能證明他們是否會走曏成功。