Replies: 2 comments 6 replies
-
Curve name is not necessary, EVM is on based on secp256k1. By the way, I think it will make more sense to verify the holding of the fund off-chain.
Because for the moment, we only have a N complexity and not a log N complexity verifier, I think that we should only verify the crypto on-chain and the balances off-chain |
Beta Was this translation helpful? Give feedback.
5 replies
-
Can you describe the general workflow for the STATUS please ? |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
EVM-verifier architecture
Introduction
On its EVM version, Alice's Ring should allow anyone to mint a Soul Bound Token (SBT) which will prove that the associated ring signature (saved on IPFS) was at least valid when the SBT was minted. This is the main purpose of the EVM-verifier.
On its first version, the EVM-verifier should only be able to allow solvency proof generation for any ERC20 token (and the native token of the chain). In the future, it should be able to allow any kind of proof generation about onChain caracteristics.
This will be achieved through simple smart contract that will allow anyone to mint a SBT by providing the ring signature, the minimal amount and the IPFS link to the signature (the signature is not saved onChain). The contract will check that the ring signature is valid and that all addresses own at least the minimal amount of tokens specified. If the proof is valid, the contract will mint a SBT and will save the the IPFS link, the signature hash and the proved amount on the contract storage.
Development tools
Architecture
SBT generation
Once the SBT has been generated on the proving address, anyone can assume that the ring signature was valid when the SBT was minted. Which means that at block
n
, the prover had at leastminAmount
tokens.Main contract components
The SBT is an openzeppelin ERC721 token. The contract with the following custom functions:
Representation of a public key:
Representation of a ring signature:
We also need a mapping to save the status of each proof:
The custom functions
How to verify a ring signature
The ring signature is saved on IPFS. The contract will only save the IPFS link. The contract will also save the hash of the signature. The hash is computed as follows:
// TO BE DEFINED
Alice's Ring will provide 2 tools to verify a ring signature:
Testing
// to be defined
Deployment
// to be defined
Beta Was this translation helpful? Give feedback.
All reactions