Giter VIP home page Giter VIP logo

zkml-optimization's People

Contributors

seiyakobayashi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

zkml-optimization's Issues

[TASK]: Implement CLI App for Provers

๐Ÿ“ Overview

Implement CLI app for provers.

๐Ÿ–‹ Details

CLI app should have the following functionalities.

  1. Encode testing results as a Merkle tree
  2. Auto-generate and deploy verifiers (using circom)

๐Ÿ“š References

n/a

[TASK]: Infer I/F of Testing Data from Model

๐Ÿ“ Overview

Infer I/F (types) of testing data from the ML model fetched from IPFS.

๐Ÿ–‹ Details

It would be nice for provers to be able to know the required I/F (types) of testing data from the model itself. Planning to use tfjs.

๐Ÿ“š References

[TASK]: Update Architecture Diagrams & `README`s

๐Ÿ“ Overview

Update documentation before implementing the client-side.

๐Ÿ–‹ Details

  • Update arch diagrams to reflect the latest architecture.
  • Update READMEs to describe the current repository structure.

๐Ÿ“š References

n/a

[TASK]: Related Articles

๐Ÿ“ Overview

This issue contains articles / papers related to this project (should be including ideas of potential improvements on the original proposal).

๐Ÿ–‹ Details

[TASK]: Implement Client App for Provers

๐Ÿ“ Overview

Implement GUI client app with React for provers. Not planning to use frontend servers (e.g. SSR).

๐Ÿ–‹ Details

Client app should have the following functionalities. The GUI app should be the only interface that interacts with our verifier contracts (users should not send/receive requests/responses to/from the verifier contracts via CLI app).

  1. Fetch models / circuits / keys from the verifier contract and IPFS
  2. Commit hashes to the verifier contract
  3. Generate Merkle proofs that match the given challenge
  4. Compute witness and generate ZKPs
  5. Send Merkle proofs and ZKPs to the verifier contract for verification
  6. Get information (e.g. of models, commitments) from the verifier contract

๐Ÿ“š References

n/a

[TASK]: Implement CI workflow

๐Ÿ“ Overview

Workflows are not yet set up. Would be nice to implement CI workflows to make sure to run compiling/linting/formatting/testing commands before merging PRs.

๐Ÿ–‹ Details

  • Implement CI workflow using GitHub actions
    • Workflow should be containing at least the following
      • compiling with solc
      • linting with solhint
      • formatting with prettier
      • testing with chai / mocha

๐Ÿ“š References

n/a

[TASK]: Implement CLI App for Model Developers

๐Ÿ“ Overview

Implement CLI app for ml model developers.

๐Ÿ–‹ Details

CLI app should have the following functionalities.

  1. Generate ZK circuits from ML models
  2. Generate proving & verification keys from circuits
  3. Upload ML models / circuits / keys to IPFS
  4. Register hashes of ML models / circuits / keys to the verifier contract

๐Ÿ“š References

[TASK]: Implement `disableModel()` function

๐Ÿ“ Overview

Implement disableModel() function of Verifier contract.

๐Ÿ–‹ Details

This function should soft-delete the registered model using a flag field (e.g. isDisabled). Hard-deletion should be avoided to prevent model developers from re-registering same models (could be a potential attack when this contract becomes incentivized).

๐Ÿ“š References

n/a

[TASK]: Modify Tests to Use Mocked Contract

๐Ÿ“ Overview

Implement MockedVerifier contract that could be used for testing.

๐Ÿ–‹ Details

It seems better to be mocking some internal functions to implement tests for some functions (e.g. reveal()). Implement MockedVerifier contract that simply calls functions of Verifier contract that is to be mocked in our tests.

๐Ÿ“š References

n/a

[TASK]: Implement `updateModel()` function

๐Ÿ“ Overview

Implement updateModel() function of Verifier contract.

๐Ÿ–‹ Details

This function should update fields (except contentId & ownerAddress) of the registered model.

๐Ÿ“š References

n/a

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.