乙太坊的成功導致了去中心化應用程式生態系統的蓬勃發展,但可擴展性挑戰變得越來越明顯。開發人員面臨著一個艱難的選擇:限制其應用程式的功能和數據豐富性,或者承擔過高的 gas 費用或 gas 限制的負擔。如果開發人員有辦法繞過這些限制呢?
Steel 是 RISC Zero 推出的基於 合金的視圖調用證明庫,代表了開發人員與乙太坊 L1 或基於 EVM 的鏈交互方式的巨大轉變。通過利用零知識證明和 RISC Zero zkVM 的強大功能,Steel 使開發人員能夠以可擴展、安全且經濟高效的方式執行視圖調用並可證明地讀取和計算乙太坊的狀態。
Steel 彌合了乙太坊應用程式開發和零知識技術之間的差距,使開發人員比以往任何時候都更容易在他們的智慧合約中利用 ZK 的力量。結合 RISC Zero zkVM 的功能,Steel 使開發人員能夠在乙太坊 L1 或任何 EVM 等效鏈上構建更安全、可擴展和高效的應用程式。
借助 Steel,開發人員能夠:
使用 Steel,執行視圖調用就像指定所需的 Solidity 方法一樣簡單。無論是檢索 ERC-20 代幣餘額(示例)還是訪問乙太坊狀態的任何方面,Steel 都通過與 RISC Zero zkVM 的無縫集成來簡化流程,同時確保安全性和效率。我們的測試表明,Steel 能夠在單次視圖調用中處理超過 100K 的 SLOAD 操作,從而可能在主網上節省數千美元的 gas 費用。我們可以在大約 15 分鐘內使用 Bonsai 證明這一點。這至少需要 210M 的氣體,超出區塊限制 7 倍。
在下面的代碼片段中,我們演示了使用 Steel 為乙太坊上已部署的 ERC-20 合約證明特定地址餘額的過程。這個例子展示了開發人員如何利用 Steel 在 zkVM 的範圍內與鏈上乙太坊數據進行交互。 您可以在此處找到完整代碼。
定義檢視函數簽名
首先使用 sol!宏觀。這將解析 Solidity 語法以生成相應的 Rust 結構,該結構實現了 SolCall 特徵。此結構可用於調用 balanceOf 方法,該方法採用帳戶位址並返回關聯的 ERC-20 令牌餘額。
準備通話
接下來,通過使用目標帳戶位址實例化 balanceOfCall 結構來設置調用。此外,為要查詢的合約地址和調用方的位址定義常量。
在Main中執行調用
main 函數在 zkVM 中執行,產生零知識證明。它首先讀取輸入環境,然後構造一個 ViewCallEnv 對象,確保當前狀態與預期的狀態根匹配。在提交到相關的區塊哈希和數位后,執行視圖調用,並列印餘額。
Steel 通過三個簡單的步驟簡化了在 RISC Zero zkVM 中證明 Solidity 代碼執行的過程:
使用傳統的存儲證明,開發人員必須手動選擇他們的智慧合約使用的存儲插槽,並重新實現智慧合約邏輯。使用 steel,所有存儲插槽都會根據視圖調用的執行情況自動發現和獲取。這為開發人員節省了大量時間,並減少了實現錯誤的空間,從而減少了出現安全漏洞的機會。
在乙太坊智能合約中使用 blockhash 操作碼進行驗證時,驗證承諾必須引用不超過 256 個區塊的區塊。給定平均區塊時間為12秒,這設置了大約50分鐘的狹窄時間範圍來完成證明生成並確認驗證交易包含在區塊中。
當鏈上需要超過 256 個區塊的經過驗證的區塊哈希時,可以使用多種策略:
我們設想一個鏈下計算與鏈上驗證無縫集成的未來。Steel 是我們為實現這一願景所做的貢獻,它使開發人員能夠在 zkVM 中可證明地訪問和計算乙太坊的完整歷史,以創建下一波數據豐富且功能更強大的鏈上應用程式。
Steel 是 RISC Zero 致力於推出 zkVM 1.0 的關鍵組成部分,zkVM 1.0 是邁向廉價、安全的鏈上證明驗證和通用零知識證明的里程碑。立即開始使用 Steel,請存取我們的 GitHub 儲存庫,獲取文件、代碼範例和資源,説明您將 Steel 集成到您的專案中。
乙太坊的成功導致了去中心化應用程式生態系統的蓬勃發展,但可擴展性挑戰變得越來越明顯。開發人員面臨著一個艱難的選擇:限制其應用程式的功能和數據豐富性,或者承擔過高的 gas 費用或 gas 限制的負擔。如果開發人員有辦法繞過這些限制呢?
Steel 是 RISC Zero 推出的基於 合金的視圖調用證明庫,代表了開發人員與乙太坊 L1 或基於 EVM 的鏈交互方式的巨大轉變。通過利用零知識證明和 RISC Zero zkVM 的強大功能,Steel 使開發人員能夠以可擴展、安全且經濟高效的方式執行視圖調用並可證明地讀取和計算乙太坊的狀態。
Steel 彌合了乙太坊應用程式開發和零知識技術之間的差距,使開發人員比以往任何時候都更容易在他們的智慧合約中利用 ZK 的力量。結合 RISC Zero zkVM 的功能,Steel 使開發人員能夠在乙太坊 L1 或任何 EVM 等效鏈上構建更安全、可擴展和高效的應用程式。
借助 Steel,開發人員能夠:
使用 Steel,執行視圖調用就像指定所需的 Solidity 方法一樣簡單。無論是檢索 ERC-20 代幣餘額(示例)還是訪問乙太坊狀態的任何方面,Steel 都通過與 RISC Zero zkVM 的無縫集成來簡化流程,同時確保安全性和效率。我們的測試表明,Steel 能夠在單次視圖調用中處理超過 100K 的 SLOAD 操作,從而可能在主網上節省數千美元的 gas 費用。我們可以在大約 15 分鐘內使用 Bonsai 證明這一點。這至少需要 210M 的氣體,超出區塊限制 7 倍。
在下面的代碼片段中,我們演示了使用 Steel 為乙太坊上已部署的 ERC-20 合約證明特定地址餘額的過程。這個例子展示了開發人員如何利用 Steel 在 zkVM 的範圍內與鏈上乙太坊數據進行交互。 您可以在此處找到完整代碼。
定義檢視函數簽名
首先使用 sol!宏觀。這將解析 Solidity 語法以生成相應的 Rust 結構,該結構實現了 SolCall 特徵。此結構可用於調用 balanceOf 方法,該方法採用帳戶位址並返回關聯的 ERC-20 令牌餘額。
準備通話
接下來,通過使用目標帳戶位址實例化 balanceOfCall 結構來設置調用。此外,為要查詢的合約地址和調用方的位址定義常量。
在Main中執行調用
main 函數在 zkVM 中執行,產生零知識證明。它首先讀取輸入環境,然後構造一個 ViewCallEnv 對象,確保當前狀態與預期的狀態根匹配。在提交到相關的區塊哈希和數位后,執行視圖調用,並列印餘額。
Steel 通過三個簡單的步驟簡化了在 RISC Zero zkVM 中證明 Solidity 代碼執行的過程:
使用傳統的存儲證明,開發人員必須手動選擇他們的智慧合約使用的存儲插槽,並重新實現智慧合約邏輯。使用 steel,所有存儲插槽都會根據視圖調用的執行情況自動發現和獲取。這為開發人員節省了大量時間,並減少了實現錯誤的空間,從而減少了出現安全漏洞的機會。
在乙太坊智能合約中使用 blockhash 操作碼進行驗證時,驗證承諾必須引用不超過 256 個區塊的區塊。給定平均區塊時間為12秒,這設置了大約50分鐘的狹窄時間範圍來完成證明生成並確認驗證交易包含在區塊中。
當鏈上需要超過 256 個區塊的經過驗證的區塊哈希時,可以使用多種策略:
我們設想一個鏈下計算與鏈上驗證無縫集成的未來。Steel 是我們為實現這一願景所做的貢獻,它使開發人員能夠在 zkVM 中可證明地訪問和計算乙太坊的完整歷史,以創建下一波數據豐富且功能更強大的鏈上應用程式。
Steel 是 RISC Zero 致力於推出 zkVM 1.0 的關鍵組成部分,zkVM 1.0 是邁向廉價、安全的鏈上證明驗證和通用零知識證明的里程碑。立即開始使用 Steel,請存取我們的 GitHub 儲存庫,獲取文件、代碼範例和資源,説明您將 Steel 集成到您的專案中。