header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

Solidity 1.0.0 ——下一代智慧合約語言中令人興奮的改進

閱讀本文需 15 分鐘
受社群回饋和創意想法影響, Solidity 1.0.0 的預期首次亮相可能與以太坊的重大更新保持一致,反映了整個生態系統的成長和穩定。
原文標題:《Solidity 1.0.0-下一代智慧合約語言中令人興奮的改進》
原文作者:Adam Boudjemaa
原文編譯:懷老師


導論


在廣泛分析諸如Solidity Github 倉庫、 Solidity 發展路線圖、 Twitter 上的社在群組對話、活躍的Pull Requests 和Issues 等資訊後,本文深入探討了Solidity 的未來將會走向何方。


這門領先的智慧合約程式語言即將發布 0.9.0 和 1.0.0 升級,其中將推出幾項備受期待的增強功能。


本文旨在向讀者介紹 Solidity 的最新發展和改進,這些發展和改進基於社區的投入和正在進行的辯論。雖然提供的相關資訊尚無定論,但它揭示了潛在的技術進步方向。


1. 革命性地將require() 與Custom Error 整合


目前方法(0.8.x):



預期會在0.9.0 或1.0.0 出現:



比起使用大量的 if 條件用字串訊息或custom error 拋出錯誤,將require() 和custom error 結合起來使用將使程式更加清晰並節省gas。


2. 內部表示(IR)最優化:釋放效率


Solidity 中的< strong>內部表示(IR)流程在將智慧合約原始碼轉換為以太坊虛擬機器(EVM)的可執行指令方面發揮關鍵作用。


內部表示讓複雜的程式碼簡潔化與標準化,使得將程式碼轉換為機器語言的過程更有效率。 Solidity 即將推出的 改進 0.9.0 旨在使這種編譯過程更快、更有效率,最終降低成本並提高開發人員的生產力。


3. 增強錯誤處理:澄清與簡化程式碼


預期未來的更新將增強Solidity 中的錯誤處理,從而導致更直接的錯誤訊息和更輕鬆的偵錯。


這種增強對於處理複雜合約的開發人員特別有用,可以節省時間並最大限度地減少潛在錯誤。


4. 定點數算數:高精準度與高性能


【譯者註:定點數是與浮點數相對應的計算機用來表示小數的資料類型,其整數位與小數位長度均為定值, 因此比浮點數更安全。目前的 Solidity 並沒有內建任何表示小數的資料類型,開發人員常常需要將原始數 據乘以一個很大的數來手動預留出小數位,並在之後的運算中時刻留意小數點問題,相當麻煩。 】


現階段,諸如 ABDKMath64x64 和 DSMath 的外部函式庫都用 Solidity 實現了定點數。


0.9.0 版本的更新預計將整合原生的定點數運算,不再需要外部函式庫。這將使小數計算更加簡化。


5. EVM 物件格式(EOF):建構智慧合約字節碼


Solidity即將到來的EOF 升級準備為智慧合約引入結構化的和版本控制的字節碼。


這項改進有望使未來的合約更新升級更加容易實現,保持向後相容性,並在編譯階段實現更有效的分析。


雖然這不會改變智慧合約開發人員的直接編碼體驗,但編譯器的輸出將會更省 gas。


6. 瞬態儲存:暫時且有效率的資料處理


Solidity 的新功能,瞬態存儲,提出了一種在合約執行期間臨時保存數據而不將其永久記錄在區塊鏈上的方法。這種方法預計在 gas 消耗方面更有效率。


類似下列程式碼的瞬態儲存很有可能出現在 Solidity 0.9.0 或 Solidity 1.0.0。



7.原生整合重入保護


< p>在版本0.8.0 之前,SafeMath 函式庫是開發人員用於算術運算以避免溢位和下限溢位問題的常用工具。隨著 Solidity 0.8.0 的發布,這些安全檢查被直接嵌入到語言中。


類似地,Solidity 版本 0.9.0 或 1.0.0 預計將原生整合重入保護。此功能旨在簡化實施安全協定以防止重入攻擊的過程。


你將會看到類似這樣的東西:



未來展望:Solidity 1.0.0 之路


在諸如Github 、 Twitter 、 Ethresearch 和Reddit 的各種平台上,Solidity 社群內部關於0.9.0 版本發展規劃的討論如火如荼。


一個焦點性的爭論正在揭曉:


是直接謹慎地過渡到Solidity 1.0 .0 以宣告這門語言的完全成熟,還是先透過0.9.0 版本逐漸地進步到更高級的版本?


受社群回饋和創意想法影響,Solidity 1.0.0 的預期首次亮相可能與以太坊的重大更新保持一致,反映了整個生態系統的成長和穩定。


1. 類型系統的演進:提高靈活性和安全性。預計會有一個升級類型的系統,從 Haskell 或 Scala 等函數式 程式語言中汲取靈感。這種演進旨在增合約開發的安全性和靈活性。


2. 整合原生預言機支援:簡化外部資料互動。計劃包括在 Solidity 中整合對去中心化預言機的內建支持, 促進與外部資料來源的更安全和直接的互動。


3. 改進狀態管理:完善區塊鏈互動。狀態管理能力的增強正在討論中,可能會引入狀態通道或側鏈等元素作為內建結構,旨在優化區塊鏈上的交互並降低 gas 費用。


4. 合約設計中的模組化方法:提高重用性。人們正在設想向模組化合約架構的轉變,允許使用可替換的組件。這可以顯著簡化開發過程並提高程式碼的可運維性。


5. 整合式形式化驗證工具:確保合約可靠度。人們期望將形式化驗證工具直接整合到 Solidity 中,這項措施旨在確保合約符合特定的標準和行為,從而降低錯誤和漏洞的可能性。


6. 建立跨鏈能力:實現跨區塊鏈的互通性。未來的更新可能會引入原生的跨鏈相容性功能,從而允許 Solidity 合約在各種區塊鏈協議中順利運行。


7.實施進階隱私措施:增強資料安全。人們正計劃將高級隱私工具(如零知識證明或同態加密)直接整合 到語言中,旨在加強資料安全和使用者隱私。


8. 抗量子密碼學:為未來的挑戰做準備。鑑於新興的量子運算能力,人們正在考慮實施抗量子加密方法以 保護以太坊合約免受未來潛在的威脅。


結論


在探索Solidity 的潛在路徑時,本文將社群見解和當前發展與社區預測結合,讓您對主題有全面的理解。雖然我們已經深入研究了 0.9.0 和 1.0.0 版本的可能性,但隨著 Solidity 繼續其開發之旅,實際的軌跡和功能集可能會發生變化。請關注這些對話和概念如何在不斷發展的智能合約程式設計世界中實現。


原文連結

本文來自投稿,不代表BlockBeats 觀點。


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交