介紹鋼材

中級May 27, 2024
RISC Zero是領先的zkVM開發商之一,最近推出了Steel,這是一個基於Alloy的視圖調用驗證庫。這為開發人員與乙太坊 L1 或其他 EVM 鏈的互動方式帶來了重大轉變。利用零知識證明和 RISC Zero zkVM,Steel 使開發人員能夠以可擴展、安全和經濟高效的方式執行視圖調用並可證明地讀取和計算乙太坊的狀態。
介紹鋼材

介紹鋼:一種硬化合金,將RISC Zero連接到乙太坊

乙太坊的成功導致了去中心化應用程式生態系統的蓬勃發展,但可擴展性挑戰變得越來越明顯。開發人員面臨著一個艱難的選擇:限制其應用程式的功能和數據豐富性,或者承擔過高的 gas 費用或 gas 限制的負擔。如果開發人員有辦法繞過這些限制呢?

Steel 是 RISC Zero 推出的基於 合金的視圖調用證明庫,代表了開發人員與乙太坊 L1 或基於 EVM 的鏈交互方式的巨大轉變。通過利用零知識證明和 RISC Zero zkVM 的強大功能,Steel 使開發人員能夠以可擴展、安全且經濟高效的方式執行視圖調用並可證明地讀取和計算乙太坊的狀態。

Solidity的便利性,以及ZK的強大功能。

Steel 彌合了乙太坊應用程式開發和零知識技術之間的差距,使開發人員比以往任何時候都更容易在他們的智慧合約中利用 ZK 的力量。結合 RISC Zero zkVM 的功能,Steel 使開發人員能夠在乙太坊 L1 或任何 EVM 等效鏈上構建更安全、可擴展和高效的應用程式。

借助 Steel,開發人員能夠:

  • 直接在 zkVM 中執行 Solidity 智慧合約,以獲得更複雜的鏈上邏輯
  • 在 zkVM 中訪問歷史乙太坊狀態
  • 使用延續進行無區塊和事務大小限制的計算
  • 確保安全可靠的鏈下計算,就像在鏈上執行一樣
  • 利用第一個生產就緒的 zkVM,經過各種合作夥伴的嚴格測試和使用
  • 乙太坊狀態上的私有計算
  • 通過 開原始程式碼庫保持靈活性,不受供應商限制

無縫集成,節省成本

使用 Steel,執行視圖調用就像指定所需的 Solidity 方法一樣簡單。無論是檢索 ERC-20 代幣餘額(示例)還是訪問乙太坊狀態的任何方面,Steel 都通過與 RISC Zero zkVM 的無縫集成來簡化流程,同時確保安全性和效率。我們的測試表明,Steel 能夠在單次視圖調用中處理超過 100K 的 SLOAD 操作,從而可能在主網上節省數千美元的 gas 費用。我們可以在大約 15 分鐘內使用 Bonsai 證明這一點。這至少需要 210M 的氣體,超出區塊限制 7 倍。

示例:ERC20 balanceOf

在下面的代碼片段中,我們演示了使用 Steel 為乙太坊上已部署的 ERC-20 合約證明特定地址餘額的過程。這個例子展示了開發人員如何利用 Steel 在 zkVM 的範圍內與鏈上乙太坊數據進行交互。 您可以在此處找到完整代碼

定義檢視函數簽名

首先使用 sol!宏觀。這將解析 Solidity 語法以生成相應的 Rust 結構,該結構實現了 SolCall 特徵。此結構可用於調用 balanceOf 方法,該方法採用帳戶位址並返回關聯的 ERC-20 令牌餘額。

準備通話

接下來,通過使用目標帳戶位址實例化 balanceOfCall 結構來設置調用。此外,為要查詢的合約地址和調用方的位址定義常量。

在Main中執行調用

main 函數在 zkVM 中執行,產生零知識證明。它首先讀取輸入環境,然後構造一個 ViewCallEnv 對象,確保當前狀態與預期的狀態根匹配。在提交到相關的區塊哈希和數位后,執行視圖調用,並列印餘額。

運作方式

Steel 通過三個簡單的步驟簡化了在 RISC Zero zkVM 中證明 Solidity 代碼執行的過程:

  1. 預檢階段:通過對乙太坊 RPC 節點進行視圖調用來啟動預檢。這將緩存必要的存儲槽,僅使用查詢所需的數據填充 EVM 資料庫。所有存儲插槽都會根據視圖調用的執行情況自動發現和獲取。
  2. 存儲驗證:進行存儲完整性檢查,確保 EVM 資料庫中的數據與區塊鏈的狀態根一致,從而確認其合法性。
  3. Solidity 執行:在 RISC Zero zkVM 內的 EVM 上運行給定的 Solidity 函數。

這與存儲證明有何不同?

使用傳統的存儲證明,開發人員必須手動選擇他們的智慧合約使用的存儲插槽,並重新實現智慧合約邏輯。使用 steel,所有存儲插槽都會根據視圖調用的執行情況自動發現和獲取。這為開發人員節省了大量時間,並減少了實現錯誤的空間,從而減少了出現安全漏洞的機會。

獲取經過驗證的區塊哈希

在乙太坊智能合約中使用 blockhash 操作碼進行驗證時,驗證承諾必須引用不超過 256 個區塊的區塊。給定平均區塊時間為12秒,這設置了大約50分鐘的狹窄時間範圍來完成證明生成並確認驗證交易包含在區塊中。

當鏈上需要超過 256 個區塊的經過驗證的區塊哈希時,可以使用多種策略:

  • 當需要的區塊哈希提前知道時(例如,在啟動治理提案時),該區塊哈希可以保存為合約狀態。
  • 另一種方法是使用 RISC Zero 來證明從查詢的區塊到最近 256 個區塊的哈希鏈。

鏈上應用程式的未來

我們設想一個鏈下計算與鏈上驗證無縫集成的未來。Steel 是我們為實現這一願景所做的貢獻,它使開發人員能夠在 zkVM 中可證明地訪問和計算乙太坊的完整歷史,以創建下一波數據豐富且功能更強大的鏈上應用程式。

開始使用鋼鐵

Steel 是 RISC Zero 致力於推出 zkVM 1.0 的關鍵組成部分,zkVM 1.0 是邁向廉價、安全的鏈上證明驗證和通用零知識證明的里程碑。立即開始使用 Steel,請存取我們的 GitHub 儲存庫,獲取文件、代碼範例和資源,説明您將 Steel 集成到您的專案中。

免責聲明:

  1. 本文轉載自[riscze]。所有版權均屬於原作者 [Santiago Campos]。如果對本次轉載有異議,請聯繫 Gate Learn 團隊,他們會及時處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者的觀點和意見,不構成任何投資建議。
  3. 本文的其他語言翻譯由 Gate Learn 團隊完成。除非另有說明,否則禁止複製、分發或剽竊翻譯的文章。

介紹鋼材

中級May 27, 2024
RISC Zero是領先的zkVM開發商之一,最近推出了Steel,這是一個基於Alloy的視圖調用驗證庫。這為開發人員與乙太坊 L1 或其他 EVM 鏈的互動方式帶來了重大轉變。利用零知識證明和 RISC Zero zkVM,Steel 使開發人員能夠以可擴展、安全和經濟高效的方式執行視圖調用並可證明地讀取和計算乙太坊的狀態。
介紹鋼材

介紹鋼:一種硬化合金,將RISC Zero連接到乙太坊

乙太坊的成功導致了去中心化應用程式生態系統的蓬勃發展,但可擴展性挑戰變得越來越明顯。開發人員面臨著一個艱難的選擇:限制其應用程式的功能和數據豐富性,或者承擔過高的 gas 費用或 gas 限制的負擔。如果開發人員有辦法繞過這些限制呢?

Steel 是 RISC Zero 推出的基於 合金的視圖調用證明庫,代表了開發人員與乙太坊 L1 或基於 EVM 的鏈交互方式的巨大轉變。通過利用零知識證明和 RISC Zero zkVM 的強大功能,Steel 使開發人員能夠以可擴展、安全且經濟高效的方式執行視圖調用並可證明地讀取和計算乙太坊的狀態。

Solidity的便利性,以及ZK的強大功能。

Steel 彌合了乙太坊應用程式開發和零知識技術之間的差距,使開發人員比以往任何時候都更容易在他們的智慧合約中利用 ZK 的力量。結合 RISC Zero zkVM 的功能,Steel 使開發人員能夠在乙太坊 L1 或任何 EVM 等效鏈上構建更安全、可擴展和高效的應用程式。

借助 Steel,開發人員能夠:

  • 直接在 zkVM 中執行 Solidity 智慧合約,以獲得更複雜的鏈上邏輯
  • 在 zkVM 中訪問歷史乙太坊狀態
  • 使用延續進行無區塊和事務大小限制的計算
  • 確保安全可靠的鏈下計算,就像在鏈上執行一樣
  • 利用第一個生產就緒的 zkVM,經過各種合作夥伴的嚴格測試和使用
  • 乙太坊狀態上的私有計算
  • 通過 開原始程式碼庫保持靈活性,不受供應商限制

無縫集成,節省成本

使用 Steel,執行視圖調用就像指定所需的 Solidity 方法一樣簡單。無論是檢索 ERC-20 代幣餘額(示例)還是訪問乙太坊狀態的任何方面,Steel 都通過與 RISC Zero zkVM 的無縫集成來簡化流程,同時確保安全性和效率。我們的測試表明,Steel 能夠在單次視圖調用中處理超過 100K 的 SLOAD 操作,從而可能在主網上節省數千美元的 gas 費用。我們可以在大約 15 分鐘內使用 Bonsai 證明這一點。這至少需要 210M 的氣體,超出區塊限制 7 倍。

示例:ERC20 balanceOf

在下面的代碼片段中,我們演示了使用 Steel 為乙太坊上已部署的 ERC-20 合約證明特定地址餘額的過程。這個例子展示了開發人員如何利用 Steel 在 zkVM 的範圍內與鏈上乙太坊數據進行交互。 您可以在此處找到完整代碼

定義檢視函數簽名

首先使用 sol!宏觀。這將解析 Solidity 語法以生成相應的 Rust 結構,該結構實現了 SolCall 特徵。此結構可用於調用 balanceOf 方法,該方法採用帳戶位址並返回關聯的 ERC-20 令牌餘額。

準備通話

接下來,通過使用目標帳戶位址實例化 balanceOfCall 結構來設置調用。此外,為要查詢的合約地址和調用方的位址定義常量。

在Main中執行調用

main 函數在 zkVM 中執行,產生零知識證明。它首先讀取輸入環境,然後構造一個 ViewCallEnv 對象,確保當前狀態與預期的狀態根匹配。在提交到相關的區塊哈希和數位后,執行視圖調用,並列印餘額。

運作方式

Steel 通過三個簡單的步驟簡化了在 RISC Zero zkVM 中證明 Solidity 代碼執行的過程:

  1. 預檢階段:通過對乙太坊 RPC 節點進行視圖調用來啟動預檢。這將緩存必要的存儲槽,僅使用查詢所需的數據填充 EVM 資料庫。所有存儲插槽都會根據視圖調用的執行情況自動發現和獲取。
  2. 存儲驗證:進行存儲完整性檢查,確保 EVM 資料庫中的數據與區塊鏈的狀態根一致,從而確認其合法性。
  3. Solidity 執行:在 RISC Zero zkVM 內的 EVM 上運行給定的 Solidity 函數。

這與存儲證明有何不同?

使用傳統的存儲證明,開發人員必須手動選擇他們的智慧合約使用的存儲插槽,並重新實現智慧合約邏輯。使用 steel,所有存儲插槽都會根據視圖調用的執行情況自動發現和獲取。這為開發人員節省了大量時間,並減少了實現錯誤的空間,從而減少了出現安全漏洞的機會。

獲取經過驗證的區塊哈希

在乙太坊智能合約中使用 blockhash 操作碼進行驗證時,驗證承諾必須引用不超過 256 個區塊的區塊。給定平均區塊時間為12秒,這設置了大約50分鐘的狹窄時間範圍來完成證明生成並確認驗證交易包含在區塊中。

當鏈上需要超過 256 個區塊的經過驗證的區塊哈希時,可以使用多種策略:

  • 當需要的區塊哈希提前知道時(例如,在啟動治理提案時),該區塊哈希可以保存為合約狀態。
  • 另一種方法是使用 RISC Zero 來證明從查詢的區塊到最近 256 個區塊的哈希鏈。

鏈上應用程式的未來

我們設想一個鏈下計算與鏈上驗證無縫集成的未來。Steel 是我們為實現這一願景所做的貢獻,它使開發人員能夠在 zkVM 中可證明地訪問和計算乙太坊的完整歷史,以創建下一波數據豐富且功能更強大的鏈上應用程式。

開始使用鋼鐵

Steel 是 RISC Zero 致力於推出 zkVM 1.0 的關鍵組成部分,zkVM 1.0 是邁向廉價、安全的鏈上證明驗證和通用零知識證明的里程碑。立即開始使用 Steel,請存取我們的 GitHub 儲存庫,獲取文件、代碼範例和資源,説明您將 Steel 集成到您的專案中。

免責聲明:

  1. 本文轉載自[riscze]。所有版權均屬於原作者 [Santiago Campos]。如果對本次轉載有異議,請聯繫 Gate Learn 團隊,他們會及時處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者的觀點和意見,不構成任何投資建議。
  3. 本文的其他語言翻譯由 Gate Learn 團隊完成。除非另有說明,否則禁止複製、分發或剽竊翻譯的文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!