Giter Site home page Giter Site logo

kaigeffen / moonmath-manual Goto Github PK

View Code? Open in Web Editor NEW

This project forked from leastauthority/moonmath-manual

0.0 0.0 0.0 133.94 MB

A resource for anyone interested in understanding and unlocking the potential of zk-SNARKs, from beginners to experts.

License: Other

Shell 0.05% TeX 99.95%

moonmath-manual's Introduction

The MoonMath Manual

The MoonMath Manual is a resource for anyone interested in understanding and unlocking the potential of zk-SNARKs, from beginners to experts.

The acronym zk-SNARK stands for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,” and refers to a cryptographic technique where one can prove correct execution of computation and possession of certain information without revealing the information itself. Zk-SNARKs, a type of zero-knowledge proof, offer a new paradigm for privacy, and have been used to enable private blockchain transactions. They also have the potential to securely scale blockchain-based solutions.

Most explanations struggle to clarify how and why they work, so zk-SNARKs remain somewhat “magical” and elusive, deterring developers from exploring or utilizing them in projects. Resources are scattered across blog posts and GitHub libraries. This results in a high barrier to entry, thereby slowing the widespread adoption of zk-SNARKs and associated privacy-enhancing technologies. Even worse, implementing zk-SNARKs without understanding the fundamentals of how they work increases the potential for security issues.

We want to change that with our MoonMath Manual to zk-SNARKs, designed for an audience with only minimal experience in cryptography and programming.

What is particularly unique about the MoonMath Manual is that it is designed to enable users to construct zk-SNARKs using simple pen-and-paper computations. Throughout the manual, users are encouraged to complete exercises that ensure they engage with the foundational building blocks of zk-SNARKs. While doing that, readers build the smallest possible — but fully functional — cryptographic stack to compute zk-SNARK internals without the need of a computer.

As users go through the manual, they will grasp mathematical concepts that are not only used in SNARKs, but also in other zero-knowledge proofs and cryptography more generally.

Donations

If you would like to support the continuous production of content like this, please donate via one of the following channels, or contact Least Authority for additional solutions:

Download

You can download the latest version of the moonmath manual here.

Build instructions

Prerequisites

  • LaTeX distribution installed

  • Latexmk installed

  • Docker installed

Steps

In order to build the PDF document of the moonmath manual, please follow these steps:

  1. git clone https://github.com/LeastAuthority/moonmath-manual.git (download the source)

  2. cd moonmath-manual (change into the moonmath-manual folder)

  3. ./install_sagetex_sty.sh (install sagetex.sty)

  4. pdflatex main-moonmath.tex (create SageMath files from document)

  5. ./generate_sagetex_files.sh (run SageMath 9.3 on the output files)

  6. latexmk -pdf main-moonmath.tex (build main-moonmath.pdf)

moonmath-manual's People

Contributors

planetmacro avatar sylvia-blaho avatar wuan avatar stevethakur avatar kaplannie avatar spartucus avatar dd23 avatar abhigulati avatar georgwiese avatar margheritla avatar memingon avatar blakemscurr avatar keks avatar melvillian avatar oneeman avatar skytools avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.