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

Roadmap #46

Open
48 of 79 tasks
HarryR opened this issue Sep 17, 2018 · 0 comments
Open
48 of 79 tasks

Roadmap #46

HarryR opened this issue Sep 17, 2018 · 0 comments
Assignees

Comments

@HarryR
Copy link
Owner

HarryR commented Sep 17, 2018

What would another 6-8 months of successful development on ethsnarks look like? What is success?

Ultimately this is making a set of thoroughly-tested and cross-compatible components for developers in a way which makes using zkSNARKS viable for their Ethereum compatible project.

As a developer it should be easy to get started, with documented examples of everything they need to use ethsnarks with their project. Ideally the combination of ethsnarks and related documentation will significantly reduce the time-to-market for projects using zkSNARKs on Ethereum, and have unique advantages that other projects don't - all of this make it a safer choice.

I am attacking the problem from four directions:

  • Cross-platform support
  • Real-world examples
  • SNARK-specific algorithms, to reduce proving time
  • Developer on-boarding, making adoption easy

With the aim being a SDK for zkSNARKS, with Ethereum support, that will save months or even years of time for new projects.

High-level

Specifics

  • Pinocchio and xjsnark compiler support
    • Generate proving key, verification key, proof (as .json) via cli
    • .so/.dll/.dylib support, for embedding into a program
    • Import Pinocchio compiler (into a sub-repo)
    • Provide Pinocchio examples
    • Provide JSnark examples
    • Verify opcode functionality, compatibility
    • xjsnark test cases
  • End-to-end tests for Miximus
    • NodeJS wrapper for the prover .dll/.so file
    • Deposit, Withdraw, using the prover
  • Baby JubJub support
    • More extensive edge-case tests
    • Circuit optimisations
    • Python implementation + tests
    • Solidity implementation + tests + gas costs
    • Pedersen Hash
    • EdDSA signatures (in progress)
  • Use case documentation
    • Building a circuit in C++ - getting JSON output + CLI for free, via cli stubs
    • Integrating a zkSNARK verifier into your solidity project
    • Compiling C using Pequin?
    • Integrating with xjsnark
    • Using baby jubjub
  • Fast hashing algorithms for merkle trees
    • Academic review of algorithms and constructions
    • Python, Solidity and JavaScript support
  • Javascript support, suitable for integrating with web-apps via Metamask etc.
  • Pre-release checklist
    • Coverity scan
    • PVS-Studio scan
    • Optimised release build (make build/openmp-release)
    • Examples page
    • Docker image?
@HarryR HarryR self-assigned this Sep 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant