Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Halo2 As A Compiler Series #38

Open
Demian101 opened this issue Oct 31, 2023 · 3 comments
Open

Halo2 As A Compiler Series #38

Demian101 opened this issue Oct 31, 2023 · 3 comments
Labels
documentation Improvements or additions to documentation fancy ideas fancy ideas. help wanted Extra attention is needed

Comments

@Demian101
Copy link
Member

@frank Jz Liu: "Halo 2" series articles (WIP), corrections welcome.

https://hackmd.io/OKIEOMF-TQqKaJIzYzGLQQ
https://hackmd.io/c6Yj4qmNTsaRADs8b4IsBQ

@Demian101 Demian101 added documentation Improvements or additions to documentation help wanted Extra attention is needed fancy ideas fancy ideas. labels Oct 31, 2023
@Demian101 Demian101 changed the title Halo2 Halo2 As A Compiler Series Oct 31, 2023
@Demian101
Copy link
Member Author

Demian101 commented Oct 31, 2023

"^ 为共学增加一些topic:我们想以Halo2作为一款编译器为视角,研究从算数化到最后proof generation的流程,还有一些外围的部件。看看大家有没有兴趣参与其中? 我觉得可以先以slides方式做demonstration,然后组织成为一个系列文集。"

"^ To add some topics for collaborative learning: We want to take a compiler perspective on Halo 2, studying the process from arithmeticization to final proof generation, as well as some peripheral components. Let's see if anyone is interested in participating? I think we can start with a demonstration in slides format and then organize it into a series of articles."

https://palm-isthmus-1e4.notion.site/Halo2-As-A-Compiler-Series-21f07032ca35450fad310de9aa1feee6

Q: cool,对标circom+snarkjs工具链?
A: halo2 + pse/scroll ‘s snark verifier

然后就还有一些零零散散的库
我觉得研究生态系统也挺有趣的
看看大家怎么使用halo2做自己的需求

z2o-k7e , 很关键!
尤其是各种 library, 我个人时间有限,无法做完全部调研,有人能加入就再好不过了,然后可以也放到那个什么,名字巨难念的那个public domian里面

@Demian101
Copy link
Member Author

ref: https://hackmd.io/OKIEOMF-TQqKaJIzYzGLQQ

From the above figure, we could find some analogy between a zk prove system and a compiler for general purpose.

  • Frontend: What scope can ‘Halo2 compiler’ cover? How is a gate constraint converted to polynomial, then being evaluated on domain? What is the ‘IR’? In this session we will demonstrate a common job that syntax parser does: parse a certain format then transform it to a canonical expression, here, is SAT problem.

  • Backend: Commitment Scheme, we have KZG10 or IPA. What’s the common API they are based on? Is there possibility to extend to other scheme (Ponky3: Yes, but any room for Nova-alike scheme?) Here we will check how an IOP being implemented, especially focusing on the trait — what kind of properties they are describing? Is the module is flexible enough to extend to other schemes?

  • Plugin: What other library is working with halo2? Here we will examine Halo2 ecosystem including but not limited to halo2wrong, gadgets(poseidon, ec), code-gen tool like snark-verifier, or even a full project like Scroll.
    Towards higher order: zkWASM. In zkWASM, WASM code is input, a real code parse and stack machine simulator become frontend, and now, Halo2 itself is a giant backend. Here we will go through how a WASM op could be translated to a circuit, thus filling in the what Halo2 is capable.

  • Optimization: hardware acceleration. May include, EC-GPU, GPU caching, parallel evaluation, an so on.

@Demian101 Demian101 pinned this issue Oct 31, 2023
@Demian101
Copy link
Member Author

@Demian101 : Hi Frank ,看到你已经写完了 Frontend 这一 Chapter
我理解是你有一个大体的文章框架(Frontend->Backend->toolings),我们可以补充一些东西

你提到研究各种 library,就是指让大家根据各自的兴趣,去 research 下 halo2 的生态组件,然后作为一些参考资料,不断补充到这个框架里面是嘛 ~

感觉有点像 https://halo2.club 的扩充版 [Wow]

@ Frank:

对的,感兴趣的话我们可以列一下什么和halo2结合比较紧密的库。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation fancy ideas fancy ideas. help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant