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

Project Idea: Semaphore + Account Abstraction #345

Open
aguzmant103 opened this issue Aug 15, 2023 · 7 comments
Open

Project Idea: Semaphore + Account Abstraction #345

aguzmant103 opened this issue Aug 15, 2023 · 7 comments
Labels
good first issue Good for newcomers help wanted Extra attention is needed

Comments

@aguzmant103
Copy link
Contributor

No description provided.

@aguzmant103 aguzmant103 added help wanted Extra attention is needed good first issue Good for newcomers labels Aug 15, 2023
@FoodChain1028
Copy link

Hi @aguzmant103, is there any detail about this project? I would love to build something with this.

@moven0831
Copy link

moven0831 commented Sep 19, 2023

Hi @FoodChain1028, I've got some ideas about applying Semaphore on AA's wallet recovery. Since a contract-based wallet owner can assign multiple addresses as wallet guardians. We can use Semaphore to register the guardians instead of directly listing them on the smart contract. This alternation can provide privacy if the guardian's address needs to be hidden under some scenarios.

@FoodChain1028
Copy link

Hi @FoodChain1028, I've got some ideas about applying Semaphore on AA's wallet recovery. Since a contract-based wallet owner can assign multiple addresses as wallet guardians. We can use Semaphore to register the guardians instead of directly listing them on the smart contract. This alternation can provide privacy if the guardian's address needs to be hidden under some scenarios.

Hi, @moven0831. This idea looks good, yet for now we have to interact the contract-based wallet with another Externally Owned Address; thus the relationship between this address and proof in revealed as a result. A method from me to fix this is using a relayer address for everyone wants to use this service, the user would send their fee (like a transferring fee and everyone need to send the same amount of money here) and proof to the relayer and relayer would do this for the users. To be more specifically, the relayer is more like a mixer box to:

  1. verify the identity in the Merkle Tree (As the owner of this AA contract).
  2. mix the address to make any proof - user EOA - AA contract unrelated, and thus would preserve the privacy.

@cedoor
Copy link
Member

cedoor commented Sep 19, 2023

Hey guys, this could also be useful -> https://github.com/saleel/aa-zk-test

Author: @saleel

@saleel
Copy link
Contributor

saleel commented Sep 19, 2023

Thanks for the tag @cedoor. It was an experiment I did a while back, and need to make some changes in that code to make it work correctly.
I am also in the process of doing a write-up on explaining the whole stuff. Planning to do both in the coming weekend.

@FoodChain1028
Copy link

Hi, @saleel, is there any chance or anything I can help you with?

@saleel
Copy link
Contributor

saleel commented Oct 9, 2023

I wrote about it here - https://saleel.xyz/blog/zk-account-abstraction/
Here is the repo with sample code - https://github.com/saleel/semaphore-wallet

@FoodChain1028 Above is a reference implementation. There are some minor changes needed in semaphore (mentioned in the blog towards the end) before we can implement a production level semaphore wallet. But feel free to use the code as you wish, and I would be happy to help if you have any questions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers help wanted Extra attention is needed
Projects
Status: 📋 Backlog
Development

No branches or pull requests

7 participants
@cedoor @saleel @moven0831 @aguzmant103 @FoodChain1028 and others