TL;DR
一級標題
一級標題
一級標題
1. 我們正在努力構建第一個基於PE-VM 的ZKVM,通過ZK-friendly 的設計和ZK 算法的改進,使它具備更高的吞吐率;其技術特點如下:
a. 證明快:
i. ZK-friendly: 獲得更小的電路規模,以及精簡的底層約束單元;
ii. 更快的ZK 實現: 對plonky 2 的進一步優化改進;
b. 執行快:
採用並行執行的VM(在Parallel prove 技術背景下,證明生成時間越短,作用越明顯)。
c. 針對目前執行效率最快的ZK 算法,我們完成plonky 2 的電路設計及算法研究,你可以打開鏈接:https://github.com/Sin 7 Y/plonky 2/tree/main/plonky 2/ designs去了解plonky 2 更多的設計,下一步我們將對其進行優化改進,請持續關注。 。 。
一級標題
一級標題

一級標題
我們正在做什麼?
OlaVM 是首個把並行執行的VM 引入的二層的ZKVM,融合兩種方案的技術點,獲得更快的執行速度和更快的證明速度,從而在未來實現更高的系統吞吐率。
在現在的以太坊系統中,造成吞吐率慢的原因主要有兩個:1. 共識的過程:每個節點重複執行交易進行交易的有效性校驗;2. 交易的執行:交易的執行是單線程的。
盡可能快的生成證明
如何獲取高吞吐率?
二級標題
二級標題
二級標題
盡可能快的證明生成(目前最高優先級)
a. Prophet
想要加速證明的生成,其大體可以分為兩個部分:盡可能小的電路規模和盡可能快的算法執行;盡可能快的算法執行又可以分為:算法本身參數的提升(比如選擇更小的域)和外部執行環境的改善(比如採用硬件加速)。
b. Zk-friendly
1. 盡可能小的約束規模
是的,證明生成的消耗是和約束的整體規模n 強相關的,如果能大幅縮減整體的約束規模,則證明的生成的時間則會明顯減少。這就要求,在VM 的設計中,你需要使用盡可能多的設計以減少整體的約束規模。
Prophet 的意思為“預言家”,先“預言”再“校驗“,其主要目的是:針對一些複雜的計算,我們不需要用VM 的指令去實現這些複雜的計算(可能會消耗很多的指令,從而增大VM 的執行軌跡和最終的約束規模);而是利用內置的Prophet 去完成計算,並且把結果發送給VM,然後VM 只是執行對於這個結果的合法性校驗。 Prophet 是一些具備特定計算功能的內置函數,比如除法計算,平方根計算,立方根計算等等,我們會根據實際場景,逐漸豐富Prophets 庫,使得對於大部分複雜計算場景,整體約束的縮減效果達到最大化。

由於Plonky 2 的驚人性能表現,我們暫時以Plonky 2 作為OlaVM 的ZK 後端。我們已經深入分析了Plonky 2 的Gate 設計,Gadget 設計和協議原理,並從中找到了一些優化方向,你可以關注我們的Github Repo: Plonky 2 designs 去了解更多相關的信息。
二級標題
二級標題

一級標題
一級標題
兼容性?
兼容性?
All Together
集成上述所有模塊,整個系統的數據流程圖大概如下圖所示:

Coming Soon
一級標題
一級標題
一級標題
參考
參考
參考
1.OlaVM:https://olavm.org/whitepaper/OlaVM-07-25.pdf
2.Plonkish:https://zcash.github.io/halo 2/concepts/arithmetization.html
3.Cairo VM:https://starknet.io/docs/how_cairo_works/cairo_intro.html#field-elements
4.Plonky 2:https://github.com/Sin 7 Y/plonky 2/blob/main/field/src/goldilocks_field.rs
5.Ingonyama:https://github.com/ingonyama-zk/cloud-ZK
6.Semisand:https://semisand.com/
7.Plonky 2 designs:https://github.com/Sin 7 Y/plonky 2/tree/main/plonky 2/designs
關於我們
關於我們
關於我們
GitHub | Twitter | Telegram | Medium| Mirror | HackMD | HackerNoon


