誰是區(qū)塊鏈開發(fā)語言之王:Move、Solidity、Rust
1、簡介
在Web3行業(yè),重點是為用戶提供無縫的體驗。從這個角度來看,dApp構建在哪個區(qū)塊鏈上并不那么重要,比起確保在不同區(qū)塊鏈之間實現(xiàn)平穩(wěn)用戶體驗的互操作性更為關鍵。在2021年和2022年,關于單體區(qū)塊鏈和多鏈之間的激烈辯論不斷發(fā)展。值得注意的是,Solana和Luna曾一度嶄露頭角,然后逐漸淡出,為Aptos和Sui搶占市場的關注創(chuàng)造了機會。
Aptos 和 Sui 都是 Meta 區(qū)塊鏈項目 Diem(以前的 Libra)的后繼者,有一個共同點——他們都使用 Move 編程語言。 本文重點介紹 Aptos,深入探討其使用的 Move 語言和 MoveVM 狀態(tài)機的特性,以及它如何與現(xiàn)有的編程語言和狀態(tài)機(例如 Solidity/EVM 和 Rust/WASM)進行比較。
2、什么是Move?
2.1 Move 是如何誕生的
Facebook(現(xiàn)為 Meta)的 Diem 團隊發(fā)現(xiàn)了區(qū)塊鏈行業(yè)廣泛采用的 Solidity 編程語言的兩個局限性。 首先,Solidity 存在重入攻擊和雙花攻擊等漏洞。 雖然采用 Solidity 的區(qū)塊鏈網(wǎng)絡(例如以太坊)通過共識算法減輕了這些攻擊,但不可否認的事實是,該語言本身蘊藏著潛在的攻擊向量。
其次,Solidity 無法并行化事務處理導致瓶頸。 為了防止雙重支出,Solidity 要求順序執(zhí)行智能合約等交易。 這種順序處理限制了速度,進而阻礙了區(qū)塊鏈的可擴展性。
在這些擔憂的推動下,Diem 團隊(Meta 的區(qū)塊鏈部門)受 Rust 的影響,開發(fā)了 Move 語言,以解決上述缺點。 雖然 Rust 是一種值得稱贊的編程語言,但在用于編寫智能合約時可能會導致冗長的代碼。 隨后,Aptos保留了原來的Move語言,同時融入了面向?qū)ο蟮木幊棠P?,演變成Aptos Move。 同時,Sui 采用了一種稱為 Sui Move 的面向?qū)ο笳Z言。
2.2 Aptos Move/MoveVM 功能
Aptos 的 Move/MoveVM 經(jīng)過精心設計,主要關注安全性。 此外,Aptos 簡化了 Move 的合約代碼并啟用了并行處理,最大限度地減少了區(qū)塊鏈攻擊的可能性并最大限度地提高了可擴展性。 在本節(jié)中,我們將深入探討 Move 如何實現(xiàn)這些功能。
通過 Move Prover 和資源模型增強安全性
形式驗證涉及以數(shù)學方式證明軟件的代碼遵守特定的規(guī)則或?qū)傩浴?Aptos 通過 Move Prover 工具利用形式驗證來驗證其智能合約的安全性。 Move Prover 可以通過應用形式驗證來防御智能合約中潛在的攻擊媒介,例如雙花和重入攻擊,同時還可以識別其他代碼錯誤并確保穩(wěn)定性。 與其他依靠共識算法來抵御雙花和重入攻擊的區(qū)塊鏈不同,Move 通過其語言和工具主動解決這些問題。
靜態(tài)調(diào)度 VS 動態(tài)調(diào)度
此外,MoveVM采用靜態(tài)調(diào)度來調(diào)用函數(shù),以防止函數(shù)調(diào)用的重入攻擊。 相比之下,傳統(tǒng)的以太坊虛擬機(EVM)使用動態(tài)調(diào)度。 這兩種方法的不同之處在于程序執(zhí)行序列中函數(shù)調(diào)用的時序,通常按如下順序進行:編譯→鏈接→加載→運行→終止。 靜態(tài)調(diào)度涉及在編譯時調(diào)用函數(shù),使智能合約能夠在此經(jīng)歷初步的錯誤檢查階段。 因此,在MoveVM中,智能合約提前進入驗證階段,從源頭上有效預防重入攻擊。
事務并行處理
Aptos MoveVM 通過事務并行處理增強可擴展性。 為了實現(xiàn)這一目標,MoveVM 采用 Block-STM(塊級軟件事務內(nèi)存)將數(shù)據(jù)庫事務分布在多個線程之間以進行并行執(zhí)行。 仔細觀察 Block-STM 可以發(fā)現(xiàn)以下主要特征:
Block-STM 利用樂觀并發(fā)控制并行執(zhí)行交易并隨后驗證它們。 遇到?jīng)_突的事務會重新執(zhí)行。
Block-STM采用多版本數(shù)據(jù)結構來防止寫入沖突。 所有寫入以及事務 ID 和重新執(zhí)行的次數(shù)都存儲在同一位置。 這確保了即使交易被重新執(zhí)行,交易也會按照預定義的順序進行處理。
Block-STM引入了協(xié)作調(diào)度程序來優(yōu)先考慮子事務的執(zhí)行和驗證,從而指定事務線程之間的處理順序。 Move 使用這種協(xié)作調(diào)度程序來防止事務之間的沖突并防止其失效。
最后,動態(tài)依賴性估計用于通過估計事務的依賴性并識別相關事務來對事務進行分組。
通過Block-STM,Aptos通過以下方式實現(xiàn)并行交易處理。 此外,雖然驗證器之間的驗證是統(tǒng)一的,但每個驗證器之間的執(zhí)行是并行發(fā)生的,從而進一步增強了可擴展性。 Aptos的事務并行處理總結如下:
1. 用戶生成交易并將其發(fā)送到網(wǎng)絡。
2. 驗證器驗證交易。
3. 經(jīng)過驗證的交易根據(jù)動態(tài)依賴估計進行分組,同時每個交易組由驗證器進行并行處理。
4. 處理后的交易被編譯成區(qū)塊并在整個網(wǎng)絡中傳播。
Aptos 代幣標準增強了開發(fā)人員和用戶的便利性
Aptos 還使用 Move 構建了自己的代幣標準,即 Aptos Coin Standard。 在此過程中,Aptos 改進了與傳統(tǒng) EVM 相關的限制。 MoveVM 無需為代幣發(fā)行單獨發(fā)行智能合約,只需少量的 Gas 費用即可發(fā)行代幣。 然而,這并不是一個顯著的優(yōu)勢,因為 Solana 和 Algorand 等非 EVM 區(qū)塊鏈也使用自己的代幣標準。
盡管如此,從 2023 年 8 月開始,Aptos 推出了 FT 和 NFT 兩個新標準。 值得注意的是,新的 FT 標準使開發(fā)者可以根據(jù)自己的開發(fā)目標選擇和發(fā)行以下其中一種:常規(guī)代幣資產(chǎn)、代幣化 RWA 或游戲內(nèi)代幣。 這似乎符合 Aptos 進軍不斷增長的 RWA 相關市場的戰(zhàn)略。 在實踐中,Web 2.0 公司在對 RWA 進行代幣化時通常會尋求對資產(chǎn)的控制權,但以太坊的局限性使得實現(xiàn)這一目標具有挑戰(zhàn)性,導致許多公司開始創(chuàng)建自己的區(qū)塊鏈。 相比之下,Aptos 通過代幣標準設置在協(xié)議層面實現(xiàn)了這一目標。
3. 與其他語言和虛擬機的比較
比較Aptos Move/Move VM &其他語言和虛擬機
3.1. Move vs. Solidity
Move/MoveVM 的創(chuàng)建是為了彌補 Solidity 的局限性,因此它比 Solidity 更安全且可擴展。 如前所述,Move/MoveVM 的功能增強了 Aptos 的安全性和可擴展性。 正如2.1中提到的,MoveVM在語言階段防止了重入和雙花攻擊,而Solidity/EVM已經(jīng)出現(xiàn)了大量的重入攻擊。 2016年以太坊的DAO攻擊就是一個很好的例子,雖然以太坊基金會已經(jīng)出臺了防范措施,但DeFi中仍然存在大量的重入攻擊。 黑客仍在嘗試重入攻擊,希望將錯誤的合約部署在 EVM 生態(tài)系統(tǒng)的 DeFi 中。
如上所述,Move/MoveVM 還具有高度可擴展性,由于能夠并行處理事務,理論上最高可達 160,000 TPS。 這使得 Aptos 擺脫了瓶頸。 同時,由于存在雙花和重入攻擊的風險,EVM 必須順序處理交易。 因此,EVM 鏈遇到了瓶頸,當大量交易同時發(fā)生時,gas 成本迅速上升,交易陷入停滯。
在靈活性方面,Solidity/EVM 比 Move/MoveVM 有優(yōu)勢。 Solidity/EVM 使用動態(tài)調(diào)度,而 Move/MoveVM 使用靜態(tài)調(diào)度。 Move 使用靜態(tài)調(diào)度增強了智能合約的安全性,但與 Solidity 相比限制了其功能。 此外,Solidity 允許隨時升級協(xié)議和合約代碼,而 Move 對這些升級施加了限制。 在區(qū)塊鏈之間的互操作性方面,Solidity 比 Move 表現(xiàn)出更大的靈活性和可擴展性,主要是因為 Team EVM(包括以太坊)偏向模塊化區(qū)塊鏈,而 Team Move 則傾向于整體區(qū)塊鏈。
3.2. Move vs. Rust
Move 源自 Rust,與 Rust 有許多性能和功能相似之處,例如效率和安全性。 關鍵區(qū)別在于它們的預期目的:Rust 作為通用編程語言,而 Move 專門從事智能合約開發(fā)。 Rust 是為更廣泛的應用而設計的,并廣泛應用于各種開發(fā)環(huán)境中,包括與區(qū)塊鏈無關的開發(fā)環(huán)境。 因此,使用 Rust 編寫智能合約代碼可能會導致代碼更長、更復雜。 相比之下,Move 被定制為專用于智能合約的區(qū)塊鏈專用語言。 雖然這限制了它在區(qū)塊鏈開發(fā)中的使用,但在編寫智能合約時,它會導致相對簡潔且不太復雜的代碼。
<Move 與 Rust:智能合約比較,來源:Krešimir Klas>
上圖是 Solana 和 Sui 開發(fā)同一個智能合約時的代碼長度對比。 顯然,更長的代碼意味著更多潛在智能合約攻擊的機會。 較長的代碼還會增加開發(fā)人員犯錯誤的機會,而這些錯誤在代碼檢查期間可能會被忽視。 相比之下,Move 的優(yōu)勢在于其代碼開發(fā)更簡單,減少了開發(fā)人員出錯的可能性并促進更有效的檢查。
3.3. Aptos Move vs. Sui Move
Aptos Move 和 Sui Move 都源自同一個 Diem 團隊,因此有很多相似之處。 它們最初受到 Rust 的影響,這賦予了它們相似的語法和功能。 此外,這兩個項目都使用 Move Prover 來驗證智能合約。
然而,Aptos Move保留了原始的Diem區(qū)塊鏈并采用了面向?qū)ο蟮木幊棠P?,而Sui Move則引入了面向?qū)ο蟮腟ui區(qū)塊鏈作為Diem的演變。 Sui 過渡到面向?qū)ο蟮膮^(qū)塊鏈以支持并行性,這取決于了解要讀取和寫入的數(shù)據(jù)。 因此,Aptos 利用資源模型將應用程序構建塊分為三個不同的單元:唯一標識符、屬性和方法。 另一方面,Sui 采用面向?qū)ο蟮哪P?,將應用程序的構建塊劃分為狀態(tài)和行為。 這導致 Aptos Move 為開發(fā)人員提供了相當大的靈活性,而 Sui Move 則相對固執(zhí)己見。
Aptos Move 和 Sui Move 在區(qū)塊鏈上的操作方式上表現(xiàn)出差異。 首先,兩個區(qū)塊鏈都支持并行處理,盡管方法不同。 如前所述,Aptos 通過 Block-STM 實現(xiàn)并行交易處理,而 Sui 采用有向無環(huán)圖(DAG)結構來存儲交易。 DAG結構切斷了交易互連,實現(xiàn)了并行交易處理。
另一個區(qū)別在于如何防止重入攻擊。 如前所述,Aptos 通過在執(zhí)行前使用靜態(tài)調(diào)度來驗證智能合約的狀態(tài)來防止重入攻擊。 相比之下,Sui 通過在交易執(zhí)行期間僅更新一次智能合約的狀態(tài)來阻止重入攻擊,確保即使攻擊者中斷交易,狀態(tài)也保持不變。 此外,由于Sui的DAG結構不依賴于交易順序,因此一筆交易的中斷不會影響其他交易的獨立處理,從而為防止重入攻擊提供了額外的保護。
4.下一步:建立強大的開發(fā)者生態(tài)系統(tǒng)和殺手級 DApp
Move/MoveVM 為區(qū)塊鏈開發(fā)提供了一個有前景的平臺,但它面臨著兩個重大挑戰(zhàn)。 1)在擁有成熟的開發(fā)者生態(tài)系統(tǒng)方面,Move 仍然落后于 Solidity。 Aptos 已經(jīng)存在近一年了,而 Sui 最近才推出其主網(wǎng)。 因此,與擁有成熟開發(fā)者社區(qū)的 Solidity 相比,Move 有著相當長的路要走。 Solidity 擁有八年歷史,提供廣泛的開發(fā)人員工具和專門的培訓計劃。 對于開發(fā)人員來說,擁有一個支持性社區(qū)來為其工作提供反饋至關重要,Solidity 已經(jīng)擁有一個在全球范圍內(nèi)舉辦黑客馬拉松的龐大開發(fā)者社區(qū)。 Turing 估計 Solidity 開發(fā)者社區(qū)約有 200,000 名。
相比之下,Move 自 Facebook 以來一直在發(fā)展,但大部分都是 Diem 團隊的內(nèi)部努力。 因此,Move 的開發(fā)者生態(tài)系統(tǒng)既不像 Solidity 那樣成熟,也不像 Solidity 那樣廣泛。 雖然存在 Aptos 開發(fā)者社區(qū),包括 Aptos 論壇,但它缺乏 Solidity 中的結構化培訓計劃、開發(fā)者工具和開放反饋機制。 Sui 背后的公司 Mysten Labs 估計 Move 開發(fā)人員的數(shù)量為 10,000 人,盡管 Aptos 沒有提供官方數(shù)字。
其次,2)Move 缺乏出色的殺手級 dApp。 許多 EVM 鏈(例如以太坊和 Arbitrum)托管著眾多在加密用戶中廣泛使用的 dApp。 然而,Move 生態(tài)系統(tǒng)尚未產(chǎn)生類似的出色應用程序。 截至 9 月 26 日,Aptos 的總鎖定價值 (TVL) 為 4350 萬美元,明顯小于主要 EVM 第 2 層,后者的基礎超過 3 億美元(來源:DeFiLlama)。
Aptos 基金會承認其面臨的挑戰(zhàn),并正在積極采取措施克服這些挑戰(zhàn)。 首先,Aptos基金會高度重視開發(fā)開發(fā)者工具,以培育繁榮的開發(fā)者生態(tài)系統(tǒng)。 他們推出了 Aptos 教程來幫助早期開發(fā)人員入門,并正在創(chuàng)建像 Move Spider 這樣的教育項目。 此外,Aptos 基金會正在通過在世界各地(包括美國、韓國和中國)組織聚會小組來培育開發(fā)者社區(qū),以進一步增強開發(fā)者生態(tài)系統(tǒng)。
在業(yè)務方面,Aptos 正在積極與知名實體和在各個領域擁有大量分銷的實體建立合作伙伴關系,例如 NBCUniversal、微軟、谷歌、Netmarble(Marblex)、Neowiz 和 Chingari 等。 另一方面,Aptos 正在努力通過 AIP-41 內(nèi)部化鏈上隨機性,以促進游戲公司整合。 Aptos 采用 AIP-41 為游戲公司提供了一種經(jīng)濟高效的中間件替代方案,可替代 Chainlink 的 VRF 等中間件,以確保 EVM 鏈內(nèi)的項目隨機化,使 Aptos 成為一個有吸引力的選擇。
5. 結束語
本文以 Aptos 的 Move/MoveVM 為中心,與現(xiàn)有的區(qū)塊鏈開發(fā)語言進行功能對比。 研究結果表明,Move 是專門為開發(fā)區(qū)塊鏈智能合約而構建的,并且比現(xiàn)有語言具有明顯的技術優(yōu)勢。 然而,就開發(fā)者和 dApp 生態(tài)系統(tǒng)而言,Move 仍處于早期階段。 目前,Solidity 的開發(fā)者數(shù)量是 Move 的約 20 倍,在總鎖定價值(TVL)和影響力 dApp 方面,Solidity 占據(jù)著穩(wěn)固的地位。 盡管如此,Move 才誕生一年,是少數(shù)專門用于區(qū)塊鏈開發(fā)的編程語言之一,這表明它具有巨大的未開發(fā)潛力。 此外,Diem 團隊開發(fā)的該語言的聲譽增加了 Move 生態(tài)系統(tǒng)增長的前景。 因此,如上圖所示,作為一種綜合性區(qū)塊鏈編程語言的Move是否能夠發(fā)展到與Solidity競爭是值得關注的。
你可能感興趣的文章
-
波場鏈(Tronchain)是什么鏈?一文簡單介紹波場鏈
波場鏈(Tronchain)是一個基于區(qū)塊鏈的去中心化的數(shù)字平臺,它擁有自己的加密貨幣,叫做波場幣或TRX,本文將詳細的給大家介紹一下波場鏈(Tronchain)到底什么,需要的朋友可以…
2023-10-18 -
Metis是什么區(qū)塊鏈項目?一覽Metis鏈上的生態(tài)應用
成立于2018 年的Metis Andromeda(通常簡稱為Metis)是由Metis Labs 打造的以太坊Layer 2 解決方案,主網(wǎng)于2022 年11 月啟動,那么,Metis是什么區(qū)塊鏈項目?下面就來看看Me…
2023-10-17 -
區(qū)塊鏈技術開發(fā)費用要多少錢?大概多長時間?
區(qū)塊鏈項目的開發(fā)時間可以分為三個階段:前期分析、中期實現(xiàn)和后期測試,區(qū)塊鏈技術開發(fā)費用是一個復雜而多變的問題,它受到項目的類型、復雜度、團隊、時間等多種因素的影…
2023-10-13 -
區(qū)塊鏈技術是什么?區(qū)塊鏈技術對網(wǎng)站安全有哪些優(yōu)勢?
隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)站安全難題日益突顯,為了應對大量黑 客攻擊和數(shù)據(jù)泄漏風險,各行各業(yè)都迫切需要安全技術來維護網(wǎng)站和用戶信息,區(qū)塊鏈技術的出現(xiàn),為實現(xiàn)網(wǎng)站安全…
2025-04-22 -
一文詳細搞清楚鏈上轉賬是什么意思?
其實在區(qū)塊鏈的世界里也是可以轉賬的,但是鏈上轉賬與我們平時的轉賬是不同的,很多投資者在區(qū)塊鏈上進行鏈上轉賬的時候都會遇到一些問題,眾所周知,很多投資者想要知道這…
2023-10-12 -
如何解決區(qū)塊鏈游戲中的安全問題
區(qū)塊鏈游戲是游戲世界和區(qū)塊鏈的交叉產(chǎn)物,正在徹底改變游戲行業(yè),簡單地說,這種現(xiàn)象是任何使用區(qū)塊鏈技術來管理游戲內(nèi)資產(chǎn)、驗證交易或支持游戲邏輯的游戲或平臺,那么,如…
2025-04-22 -
閃電網(wǎng)絡是什么意思?通俗介紹閃電網(wǎng)絡
在傳統(tǒng)的區(qū)塊鏈網(wǎng)絡中,每個交易都會被寫入?yún)^(qū)塊鏈并獲得確認,這導致交易速度受到限制還產(chǎn)生高昂的交易費用,閃電網(wǎng)絡出現(xiàn)解決了區(qū)塊鏈網(wǎng)絡面臨的擴容和交易延遲等問題,了…
2023-10-09 -
加密藝術有前景嗎?一文詳細了解加密藝術未來前景
加密藝術可以說是一種重新思考藝術和藝術經(jīng)濟的方式,被這個平臺吸引的藝術家往往對顛覆傳統(tǒng)的藝術經(jīng)濟有著強烈的想法,所以對于加密藝術有前景嗎?很多投資都比較關心,下…
2023-10-09 -
Yuga Labs的新項目是什么?Yuga Labs新項目介紹
Yuga Labs是最精明的NFT品牌營銷商之一,它是Bored Ape Yacht Club的創(chuàng)建者,Yuga Labs在社交媒體透露將于2023年3月啟動BAYC元宇宙項目Otherside Second Trip,很多投資者還…
2023-10-09 -
什么是區(qū)塊鏈的最終性?為什么最終性在區(qū)塊鏈中很重要?
在區(qū)塊鏈網(wǎng)絡上實現(xiàn)最終確定性可確保交易是永久性的,并且在添加到區(qū)塊鏈后無法修改, 為了保證區(qū)塊鏈的安全和真實,這個概念至關重要,那么,什么是區(qū)塊鏈的最終性?為什么…
2023-10-08