ZUPP WALLET

ZUPP WALLET

"Securely Access Your Assets with Unmatched Privacy: Experience Next-Level Protection with our ZKP Based 2FA Account Abstraction Wallet"

Created on 19th February 2023

ZUPP WALLET

ZUPP WALLET

"Securely Access Your Assets with Unmatched Privacy: Experience Next-Level Protection with our ZKP Based 2FA Account Abstraction Wallet"

The problem ZUPP WALLET solves

Currently, the main obstacle to bringing more people on board with Web3 is the uncertainty
and fear of losing all assets due to the ease with which transfers can be made just by having
knowledge of the private key. In the past, even highly skilled developers have made
mistakes and accidentally exposed their private keys to the public, which has resulted in
unfortunate consequences.

If there was a confirmation feature similar to 2FA in Web2 that allowed for added security without compromising anonymity, it would be highly beneficial. Getting inspired from the eth-infinitism account abstraction implementation and ZKotp we have tried to implement the same thing by confirming the initiation of a transaction only when a 2nd factor pin is entered which is generated by the google authenticator.

In the future, if someone's account is hacked by accident, they can be assured that our
wallet will provide an added layer of security by requiring an OTP. If the OTP is not provided,
the user will be notified of any suspicious transaction activity, allowing them to take
appropriate action.

Moreover, as our smart contract wallet pays it's gas fees of its own therefore there is no dependency on the externally owned accounts.

Challenges we ran into

  1. BUNDLER: The foremost problem was with running the eth-infinitism bundler because it got recently updated due to which the entry point contract was not working as it was expected to(even config_js was missing).

To solve this problem we contacted the people in the community who helped us with setting up the bundler locally with the correct config file and teh entry point.

  1. ARCANA WALLET WITH SOCIAL LOGIN: Trying to implement it we faced dependency and provider related issue. Basically the Arcana provider was'nt working inside the etherjs provider.

To solve this we initialised the Arcana provider and generated an object which when was working when used inside the etherjs provider.

  1. POLYWRAP: Apart from uploading the merkle tree in the localhost we even tried to store it in the ipfs using Polywrap but was unable to do so because we could'nt figure out the parameters required to design the schema and also to convert that javascript function into assembly script was a bit tricky.

So now we are using Polywrap to extract the value of the native token of a chain and other chain informations like gas limit.

  1. ZKPROOFS: As the size of our circom file was very huge , we were'nt able to generate the wasm file using the PowerOfTau because by default it was of power 16.

After a lot of research we got to know that we need to increase the power of PowerOfTau to 32. After which we were able to generate the wasm files and verifier using which we verify the OTP.

Tracks Applied (5)

Arcana

Our application has integrated Arcana wallet for seamless onboarding of users via social login. Additionally, by leverag...Read More

Arcana Network

Quicknode: Built on QuickNode RPC

We are using quicknode as our rpcnode to interact with the ethereum blockchain in our bundler which is used to package a...Read More

QuickNode

Push Protocol

We are using Push Protocol for alerting the user about any invalid otp input by pushing an Alert message into the victim...Read More

Push Protocol

ConsenSys: Truffle + Infura

We have used truffle for its development environment for the Ethereum blockchain, along with automated testing and contr...Read More

ConsenSys

Polywrap

We are using polywrap for determine the gaslimit on a particular chain and to findout the value of the chain native toke...Read More

polywrap

Discussion

Builders also viewed

See more projects on Devfolio