Giter Site home page Giter Site logo

espressosystems / cape Goto Github PK

View Code? Open in Web Editor NEW
93.0 93.0 19.0 7.2 MB

Configurable Asset Privacy for Ethereum

Home Page: https://cape.docs.espressosys.com/

License: GNU General Public License v3.0

Shell 3.45% Python 0.71% Solidity 19.98% TypeScript 1.50% JavaScript 0.93% Rust 72.08% Nix 0.94% CSS 0.10% HTML 0.16% Procfile 0.01% Dockerfile 0.14%
ethereum rust smart-contracts solidity zero-knowledge-proofs

cape's People

Contributors

alxiong avatar ancient123 avatar bfish713 avatar clu8 avatar dependabot[bot] avatar dieracdelta avatar fkrell avatar jbearer avatar kevinji avatar kmchicoine avatar nimavaziri avatar nyospe avatar philippecamacho avatar pictographer avatar shenkeyao avatar sveitser avatar tri-joe avatar victorkoenders avatar zhenfeizhang avatar

Stargazers

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

Watchers

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

cape's Issues

Prepare for audit

https://gitlab.com/translucence/cap-on-ethereum/cape/-/issues/42

  • Go through all the TODOs in the code. Fix each of them or delete if not relevant anymore.
    • Initial cleanup
    • Check remaining TODOs related to CAPE contract code with @sveitser
  • Review the code and check if it is readable. In particular review/add comments.
  • Check that the README.md is up to date
    • Initial cleanup
    • Brownie section generates errors #448
    • Should we remove/ comment the arbitrum section that does not quite work yet? #447

Roadmap: Plonk verifier

Planning

TurboPlonk Verifier

  • #70
  • struct definition: Proofs, VerifyingKey #117, #151
    • (among which fields like OpenKey and k_coset_repr can be shared across different vk)
    • deseralizing proof into group and field elements
  • Point & Field validity check #40, #64
  • FS transcript
    • basic append and get challenges API
    • higher level append vk, evals API #171
  • #181
  • Algebraic operations
  • #9
  • #45
  • #10 (single proof is just a special case)

Transaction Validity Verifier

References:

Integration tests based on the smart contract

https://gitlab.com/translucence/cap-on-ethereum/cape/-/issues/77

An effective way of documenting users' workflow could be by writing integration tests involving the AAPValidator and Wrapper smart contract. See Application UI Specification.

  • Generate user keys
  • Mint some units of an asset
  • Transfer some units of an asset to another address and check balances
  • Fail to transfer more units of an asset than an address owns
  • Freeze an asset, fail a transfer, unfreeze, make the transfer successfully
  • Build a transaction, but wait too long to submit it and observe the failure
  • Fail a transfer because the relayer is unreachable
  • Discover shenanigans, e.g. bogus ledger update
  • Fail to submit a transaction that's already been submitted
  • Submit several transactions all of which transfer a single asset and observe that only one succeeds
  • Get the list of default asset types and whatever metadata comes with them
  • Flip a bit in a transaction and observe failure to validate
  • Wrap and unwrap some ERC-20 tokens
  • Confirm that transaction history agrees with tests performed
  • Demonstrate tracing
  • Do something with owner memos

Revisit the use of the Nullifiers Merkle Tree inside the contract

The initial analysis suggested that it is cheaper in terms of gas to use a hashmap rather than a sparse Merkle tree to handle the nullifiers.
After a deeper inspection, @tri-joe noticed that the analysis is a worst case analysis and that on average and in practice the size of a non-membership proof for nullifiers is smaller, which may make the authenticated data structure competitive again.
One clear advantage of using a hashmap is that its implementation is simpler, while in addition to potential gas peformance gain, the nullifiers merkle tree is also appealing for making the smart contract look more like an AAP validator.
For now we will keep the hash map but come back later to this ticket when all the logic of the smart contract is implemented.
More details can be found here.

https://gitlab.com/translucence/cap-on-ethereum/cape/-/issues/99

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.