Comments (4)
Can you give a bit more info pls? What do you want exactly?
from zeth.
Sure, thanks for the message @dannywillems!
As of now, the "Proof Consumer" (PC for short) is just implemented as a bunch of Python scripts (see the pyClient
folder). These scripts execute a "mock" scenario with Alice, Bob and Charlie doing Ether or ERC20 transfers in zero knowledge (the scripts call the "Proof Generator" via RPC calls and use the received proofs to call the "Mix" function of the Mixer smart contract, to effectively do private transfers).
In this issue, we propose to enhance usability of zeth by having a better way to interact with the Proof Generator and the Mixer smart contract to do private asset transfer. In fact, rather than writing your script describing the scenario you'd like to test; it'd be great to have a CLI that enables the user to enter the payment informations, then call the PG on the given inputs to get a proof and then call the Mixer to execute the transfers.
from zeth.
As mentioned on the comment above, the purpose of this issue is to have a basic CLI to enable users to do payments via the Zeth contract.
Thus, the basic functionalities desired are:
Payment
, something likezeth pay [options and args]
Receive
a paymentzeth receive [options and args]
, see #11 (note we logged the addresses of the inserted commitments on the Mixer contract to ease this check). Here we basically need to listen to the mixer events to try to decrypt the ciphertexts logged/emitted (are we the recipients?) + we need to recompute the commitment(s) and check it(them) against the one(s) appended in the merkle tree to make sure the payment is valid. Note, this command should be quite similar to the one to run a note recovery procedure (imagine a hardware failure that yields a loss of the content of the coin store), something likezeth scan/recover --keyfile [yourViewingKeyFile] --depth [depthOfTheScan]
. This would scan the blockchain up to the specified depth and try to repopulate the coinstore - ie: run the receive function constantly from the specified depth to the last block - (here we assume that the content of thekeystore
was backed up). If a payment is successfully received, then we write the note in a file in the coinstore (like already done in the test scripts, seeLines 104 to 120 in 61a224a
I wrote some more infos on how the flow would work, here some time ago: https://github.com/clearmatics/zeth/tree/master/coinstore
from zeth.
Closing this issue since the corresponding PR has been merged
from zeth.
Related Issues (20)
- Optimization of batch insertion and related Merkle tree update
- Consider using `pre-commit` as a tool to setup pre-commit hooks
- Consider updating exponents and round values for MiMC HOT 3
- Explicit solc install required for client docker image
- Extend tooling suite to run on Python code for better code quality and consistency HOT 1
- Upgrade to latest web3.py HOT 1
- bug in sha256_ethereum.tcc | get_hash HOT 6
- Use explicit scopes and access specifiers and use minimal scopes by default HOT 1
- Fix docker build of the mpc image on `develop` HOT 1
- Use codespell at part of the tools ran in the CI jobs HOT 1
- Enable Zeth tx caching and GWEI target in Wallet CLI HOT 1
- Clean up ganache build and usage in this repo HOT 1
- codeql-py-build-linux CI job failing HOT 1
- Factorize configuration files across projects HOT 1
- Remove redundancy in filenames HOT 1
- Better expose prover_server (generic) util functions HOT 1
- Refactor build system dependencies to follow PEP-518 HOT 1
- zeth sync leads to ValueError HOT 1
- CI failing
- Clean up zeth CI HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zeth.