本文主要介紹了 Aleo 的專案概要及最新進展,對市場十分關心的 puzzle 演算法更新做了詳細的解讀。
封面: Aleo
Aleo 是一個專注於隱私保護的區塊鏈項目,透過零知識證明技術(ZKP)實現更高的隱私和可擴展性。 Aleo 的核心理念是讓使用者能夠在不洩露個人資料的前提下進行身份驗證和資料處理。
本文主要介紹了 Aleo 的專案概要及最新進展,對市場十分關心的 puzzle 演算法更新做了詳細的解讀。
最新演算法搶先看;)TLDR
Aleo 網路每小時隨機產生一個 ZK 電路;礦工在這一小時內需要嘗試不同的 nonce 作為電路的輸入,計算出 witness(即電路中的所有變量,這個計算過程也叫 synthesize),對 witness 求 Merkle root 後,判斷是否滿足挖礦難度要求。由於電路的隨機性,這個挖礦演算法對 GPU 並不友好,在計算加速方面存在很大的難度。
融資背景
Aleo 於 2021 年完成了由 a16z 領投的 2,800 萬美元的 A 輪融資,並在 2024 年完成了 2 億美元的 B 輪融資,投資者包括 Kora Management、SoftBank Vision Fund 2、Tiger Global、Sea Capital、 Slow Ventures 和 Samsung Next 等。這輪融資使 Aleo 的估值達到了 14.5 億美元。
項目概要
隱私性
Aleo 的核心是零知識證明(ZKPs)技術,這使得交易和智能合約的執行可以在保持隱私的前提下進行。用戶的交易細節,如發送方和交易金額,預設是隱藏的。這種設計不僅保護了用戶隱私,還允許在必要時進行選擇性揭露,非常適合 DeFi 應用程式的發展。其主要組件包括:
- Leo 編譯語言:基於 Rust 語言改編,專門用於開發零知識應用(ZKApps),降低了開發者對密碼學知識的要求。
- snarkVM 和 snarkOS:snarkVM 允許鏈下執行計算,鏈上僅驗證計算結果,從而提升了效率。 snarkOS 確保資料和運算的安全,並允許無許可的功能執行。
- zkCloud:提供安全、私密的鏈下運算環境,支援使用者、組織和 DAO 之間的程式設計互動。
Aleo 還提供了整合開發環境(IDE)和軟體開發工具包(SDK),支援開發者快速編寫和發布應用程式;此外,開發者可以在 Aleo 的程式註冊表中部署應用,無需依賴第三方,如此便降低了平台風險。
可擴展性
Aleo 採用了 off-chain 的處理方式,交易首先在用戶設備上計算證明,然後僅將驗證結果上傳到區塊鏈。這種方式大大提高了交易的處理速度和系統的可擴展性,避免了類似以太坊的網路擁塞和高昂的費用。
共識機制
Aleo 引入了 AleoBFT,這是一種混合架構的共識機制,結合了驗證者的即時最終性和證明者的運算能力。 AleoBFT 不僅提高了網路的去中心化程度,還增強了效能和安全性。
- 區塊快速最終性:AleoBFT 確保每個區塊在生成後立即得到確認,提升了節點穩定性和用戶體驗。
- 去中心化保障:透過將區塊生產與 coinbase 生成分離,驗證者負責產生區塊,證明者進行證明計算,防止少數實體壟斷網路。
- 激勵機制:驗證者和證明者共享區塊獎勵;鼓勵證明者透過質押代幣成為驗證者,從而提升網路的去中心化程度和運算能力。
Aleo 允許開發者創建不受 gas 限制的應用程序,因此尤其適用於機器學習等需要長時間運行的應用。
目前進展
Aleo 將於 7 月 1 日啟動激勵測試網,以下是一些重要的最新資訊:
- ARC-100 投票通過:ARC-100(「Aleo 開發人員和營運商的合規最佳實踐」提案,涉及合規方面、Aleo 網路上資金的鎖定和延時到帳等安全措施)的投票已經結束,並獲得通過。團隊正在進行最終的調整。
- 驗證者激勵計畫:該計畫將於 7 月 1 日啟動,旨在驗證新的 puzzle 機制。計劃將運行至 7 月 15 日,期間將分配 100 萬 Aleo 積分作為獎勵。節點產生的積分百分比將決定其獎勵份額,每個驗證者至少需賺取 100 個代幣才能獲得獎勵。具體細則尚未敲定。
- 初始供應和流通供應:初始供應量為 15 億代幣,初始流通供應量約為 10%(尚未最終確定)。這些代幣主要來自 Coinbase 任務(7,500 萬),將在前六個月內分發,同時包括質押、運行驗證者和驗證節點的獎勵。
- Testnet Beta 重置:這是最後一次網路重置,完成後將不會新增功能,網路將與主網類似。重置是為了添加 ARC-41 和新 puzzle 功能。
- 程式碼凍結:程式碼凍結已於一週前完成。
- 驗證節點擴展計畫:初始驗證節點數量為 15 個,目標在年內增加到 50 個,並最終達到 500 個。成為委託者需要 1 萬代幣,成為驗證者需要 1000 萬代幣,這些金額將隨著時間逐漸減少。
演算法更新解讀
Aleo 在近日公佈最新測試網訊息的同時,更新了最新版本的 puzzle 演算法,新演算法不再著重於 zk proof 結果的生成,移除了 MSM 和 NTT(二者是 zk 中生成 proof 大量使用到的計算模組,先前測試網參與者以優化該演算法的效率來提升挖礦收益)的計算,著重於產生 proof 之前的中間數據 witness 的生成。我們在參考官方的 puzzle spec 和程式碼後,對最新演算法做一個簡單介紹。
共識流程
共識協議層面上,其流程中 prover 和 validator 分別負責產生計算結果 solution 和出塊並聚合打包 solution。流程如下:
- Prover 計算 puzzle 建構出 solutions 並廣播到網路中
- Validator 聚合交易和 solution 為下一個新區塊,保證 solution 數量不超出共識限制(MAX_SOLUTIONS)
- Solution 的合法性需要校驗其 epoch_hash 符合 validator 維護的 latest_epoch_hash,其計算出的 proof_target 符合網路中 valiator 維護的 latest_proof_target,同時該 block 中包含的 solution 數量小於共識限制
- 有效的 solution 可以獲得共識獎勵
Synthesis Puzzle
最新版的演算法核心稱為 Synthesis Puzzle,其核心是針對每個 epoch 固定產生一個共同的 EpochProgram,透過為輸入和 EpochProgram 建構 R1CS 證明電路,產生對應 R1CS assignment(即大家提到的 witness)並作為 Merkle tree 的葉子節點,計算出所有葉子節點後產生 Merkle root 並轉換為 solution 的 proof_target。建構 Synthesis Puzzle 的詳細流程和規範如下:
- 每一次 puzzle 計算稱為 nonce,它是由接收挖礦獎勵的地址、epoch_hash 和一個隨機數 counter 構建,每次需要計算新的 solution 時可以透過更新 counter 獲得新的 nonce
- 每一個 epoch 中,網路中所有 prover 需要計算的 EpochProgram 是同一個,它由目前的 epoch_hash 產生的隨機數從指令集中抽樣出來,抽樣邏輯是:
- 指令集是固定的,每一個指令(instruction)包含一個或多個計算操作,每一個指令都有一個預設的權重和操作計數
- 抽樣時根據當前 epoch_hash 產生隨機數,根據該隨機數從指令集中結合權重獲取指令併順序排列,累積操作計數到 97 之後停止抽樣
- 將所有指令組成 EpochProgram
- 使用 nonce 作為隨機數種子產生 EpochProgram 的輸入
- 聚合 EpochProgram 對應的 R1CS 和 input,進行 witness(R1CS assignment)計算
- 計算出所有 witness 後,這些 witness 將被轉換為對應的 merkle tree 的葉子節點序列,merkle tree 是一個深度為 8 的 8 元 K-ary Merkle tree
- 計算 merkle root 並將其轉換為 solution 的 proof_target,判斷其是否滿足當前 epoch 的 latest_proof_target,若滿足則計算成功,提交上文中構建輸入需要的 reward address、epoch_hash 和 counter 作為 solution 並廣播
- 同一個 epoch 中可透過迭代 counter 的方式更新 EpochProgram 的輸入進行多次 solution 計算
挖礦的變化和影響
經過此次更新後,puzzle 由生成 proof 轉變為生成 witness,每一個 epoch 內的所有 solution 計算邏輯一致但是不同 epoch 計算邏輯有較大區別。
從先前的測試網中我們可以發現許多優化手段著重於使用 GPU 對生成 proof 階段的 MSM 和 NTT 計算進行優化從而提高挖礦效率,此次更新完全摒棄了這部分計算;同時由於生成 witness 的過程產生於執行一個跟隨 epoch 變化的 program,其中的指令將存在部分串行執行的依賴關係,所以實現並行化具有不小的挑戰。
免責聲明:作為區塊鏈資訊平台,本站所發布文章僅代表作者及來賓個人觀點,與 Web3Caff 立場無關。文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。