iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
Web 3

從BlockChain看Web3系列 第 5

[Day 5] How Move beat Solidity - Solidity怎麼輸的?

  • 分享至 

  • xImage
  •  

MOVE與Solidity的差別是一個有趣而重要的話題,因為它們都是用於創建智能合約和去中心化應用的編程語言,但它們有不同的設計目標和特點。我將從以下幾個方面來比較它們:

• 數據結構:MOVE採用了一種名為資源(Resource)的數據結構,它是一種封裝了資產和操作的抽象單元,可以根據不同的類型和權限進行分類和管理。資源具有不可複製、不可銷毀、可儲存、可索引等屬性,可以保證數字資產的安全性和唯一性。Solidity採用了一種名為帳戶(Account)的數據結構,它是一種由地址和餘額組成的抽象單元,可以根據不同的功能進行分類和管理。帳戶可以分為外部帳戶和合約帳戶,其中外部帳戶由私鑰控制,合約帳戶由代碼控制

• 共識算法:MOVE採用了一種名為Narwhal的共識算法,它是一種基於HotStuff協議的權益證明算法,可以實現高吞吐量和低延遲的交易確認。Narwhal還結合了一種名為Tusk的排序服務,可以將交易分成不同的分區,並在不同的驗證者之間進行並行處理,目前採用了一種名為Ethash的工作量證明算法,它是一種基於雜湊函數的算法,需要大量的計算能力和電力來驗證交易。Ethash的缺點是吞吐量低、延遲高、能耗大。Solidity計劃在未來切換到一種名為Casper的權益證明算法,它是一種基於拜占庭容錯協議的算法,可以提高效率和安全性。

• 編程語言:MOVE使用了一種名為Move的編程語言,它是一種基於Rust的開源語言,用於創建可定制的交易邏輯和智能合約。Move的設計目標是提高安全性和效率,並允許資產在智能合約中自由流動。Move支持泛型、模塊、函數、結構等程式設計元素,可以提高代碼的重用性和表達力。Move還支持多種代幣標準,例如ERC-20、ERC-721等,並且可以與其他基於Move的區塊鏈(如Diem、Aptos等)兼容。Solidity使用了一種名為Solidity的編程語言,它是一種基於JavaScript的高級語言,用於創建智能合約和去中心化應用。Solidity的設計目標是提高易用性和表達性,但也存在一些安全漏洞和效率問題。

• 安全性和驗證:MOVE提供了一種名為Move VM(虛擬機)的執行環境,它是一種基於堆疊的字節碼解釋器,可以在不同的區塊鏈平台上運行Move代碼。Move VM還提供了一種名為Move IR(中間表示)的文本格式,MOVE還支持形式化驗證,這是一種使用數學方法來證明代碼正確性和安全性的技術。MOVE內置了一種名為Move Prover(驗證器)的工具,可以對Move代碼進行靜態分析和符號執行,並且可以使用Z3等SMT求解器來驗證代碼是否符合預定義的規範。Solidity提供了一種名為EVM(以太坊虛擬機)的執行環境,它是一種基於堆疊的字節碼解釋器,可以在以太坊平台上運行Solidity代碼。EVM還提供了一種名為EVM Assembly(組合語言)的文本格式,可以方便地編寫和測試Solidity代碼。Solidity也支持形式化驗證,但需要使用第三方工具,例如VeriSol、KEVM等,來對Solidity代碼進行轉換和驗證 。

參考資料

一文了解 Move 相比 Solidity 的三大優勢

Solidity 最強對手:MOVE 程式語言及新公鏈崛起

Solidity與Move函數深度對比,你不知道的都在這裡了

Move與Solidity全方位對比

Sui Bridging | Sui Docs

Sui 主网和跨链桥已上线

Ethash - Ethereum Wiki


上一篇
[Day 4 ] Let's Move
下一篇
[Day 6] Hands-on-Step 0:安裝
系列文
從BlockChain看Web330
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言