awesome-zero-knowledge-proofs
hardcaml
awesome-zero-knowledge-proofs | hardcaml | |
---|---|---|
14 | 7 | |
4,892 | 613 | |
1.1% | 0.8% | |
5.8 | 6.4 | |
about 1 month ago | 7 days ago | |
OCaml | ||
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
awesome-zero-knowledge-proofs
-
ZK proofs
Matter-Labs, Zero-Knowledge Proofs Starter Pack, etc - https://github.com/matter-labs/awesome-zero-knowledge-proofs
-
Solidity only jobs?
Check out Aztec Noir if you have 0 ZK experience. To learn, check out matter labs' awesome zkp. My favorite resource from it is "Why and How ZK Snarks". Good luck!
-
Learning Zero-Knowledge Proofs in depth from nothing?
a link collection
-
A beginner's intro to coding zero-knowledge proofs
Awesome lists are awesome, and Matter Labs, the team behind zkSync, keeps an awesome-zero-knowledge-proofs with links to all kind of resources.
-
Zero Knowledge FPGAs
Lots of resources here:
https://github.com/matter-labs/awesome-zero-knowledge-proofs
- GitHub - matter-labs/awesome-zero-knowledge-proofs: A curated list of awesome things related to learning Zero-Knowledge Proofs (ZKP).
-
An Explain like I'm 12 Introduction to the Exciting Frontier Which is Zero Knowledge Technology
Finally, the are a few other zkRollups being built such as Polygon Hermez and Scroll but to go into every project in detail would require a whole post on its own. Hopefully this has been a helpful introduction to the fascinating but often confusing world of zero knowledge technology. if you want to learn more about rollups and zkRollups I’d highly recommend checking out some of u/Liberosist’s posts on the topic. or if you want to learn more about zero knowledge tech specifically, Matter Labs curated a great list of resources here: https://github.com/matter-labs/awesome-zero-knowledge-proofs
- Matter Labs - A curated list of awesome things related to learning Zero-Knowledge Proofs (ZKP)
-
Why should you care about Ethereum Layer-2?
You can combine the two and have private transactions which are then rolled up in a computation, and then post the proof of the computation to mainnet. You get both cheap and private transactions and infra on top of the base chain.
But this goes beyond blockchain: we can hand code to other people to run and then have proof they haven't altered what we agreed upon running, so we can trust the results of someone else running something. That is useful in all sorts of research for replicability in science/engineering.
WIRED Computer Scientist Explains One Concept in 5 Levels of Difficulty : https://www.youtube.com/watch?v=fOGdb1CTu5c
https://developers.aztec.network/
https://z.cash/technology/zksnarks/
https://github.com/matter-labs/awesome-zero-knowledge-proofs
- On Web3 Infrastructure
hardcaml
-
Zero Knowledge FPGAs
title: Accelerating zk-SNARKs - MSM and NTT algorithms on FPGAs with Hardcaml
Any reason the title deviates so much from original? Is it because of all the cool acronyms and code words? Here's a decoder:
zk-SNARK: zero-knowledge Succinct Non-Interactive Argument of Knowledge
MSM: Multi-Scalar Multiplication
Hardcaml: OCaml lib for hardware: https://github.com/janestreet/hardcaml
NTT: Number Theoretic Transform
-
A circuit simulator that doesn't look like it was made in 2003
Perhaps peripheral (the original site has been hugged to death).
Both clashlang: https://clash-lang.org/
And Hardcaml: https://github.com/janestreet/hardcaml
have personally fueled my interest in hardware.
Dan Luu speaks eloquently and at length about how better options are needed for logic design. I would recommend both of the above to the enthusiastic novice.
- Functional programming language for embedded devices?
-
HRT or Jane Street?
Join JS and you can program FPGAs in a strongly typed, expressive, high level programming language (OCaml): https://github.com/janestreet/hardcaml
-
You need to stop idolizing programming languages.
[1] https://github.com/janestreet/hardcaml
-
Designing a MIPS CPU in Hardcaml (12 part series)
> You can put all the functions/tasks you want in that module.
Coming from a software background, the testing strategies available in Verilog seem very clunky and overly verbose. In comparison, Hardcaml's ASCII waveform expect-test solution feels extremely elegant and simple: https://blog.janestreet.com/using-ascii-waveforms-to-test-ha....
> And all of my development and that of my team happens through gitlab-CI.
That's probably more of a gap in my education than a fault of the ecosystem then.
---
Among other qualities, I prefer languages that let fewer mistakes slip through, and allow the developer to focus on the system they intend to build rather than avoiding bugs/misunderstandings that would be easy to catch otherwise. You bring up a lot of really good points, and I suspect that if we were doing Verilog "the right way", we would have probably run into fewer issues. But at the end of the day, developing in Hardcaml was a much more ergonomic experience: testing was straightforward, most "stupid mistakes" were impossible, setup was pretty easy, and the library provided a lot of really useful abstractions. For example, Hardcaml interfaces make it easy to represent practically any data structure that can be serialized to/from a bit vector, and the Always API allows for some pretty interesting non-trivial functional logic.
https://github.com/janestreet/hardcaml/blob/master/docs/hard...
-
Hardcaml MIPS CPU Learning Project and Blog
A few months ago, I came across the Signals and Threads Programmable Hardware episode. I really liked the idea of Hardcaml: a library to write and test hardware designs in OCaml. Representing circuits as functions felt like a good abstraction, and I’ve been wanting to learn OCaml for a while.
What are some alternatives?
baseline - The Baseline Protocol is an open source initiative that combines advances in cryptography, messaging, and distributed ledger technology to enable confidential and complex coordination between enterprises while keeping data in systems of record. This repo serves as the main repo for the Baseline Protocol, containing core packages, examples, and reference implementations.
bitvec - A crate for managing memory bit by bit
coda - Mina is a new cryptocurrency with a constant size blockchain, improving scaling while maintaining decentralization and security. [Moved to: https://github.com/MinaProtocol/mina]
bap - Binary Analysis Platform
halo2-tutorial
nerves_system_osd32mp1 - Base system for Octavo OSD32MP1
halo2
nerves - Craft and deploy bulletproof embedded software in Elixir
mina - Mina is a cryptocurrency protocol with a constant size blockchain, improving scaling while maintaining decentralization and security.
qucs_s - Qucs-S is a circuit simulation program with Qt-based GUI
zkp-tests - Playing with zero-knowledge proof languages
clash-ghc - Haskell to VHDL/Verilog/SystemVerilog compiler