The problem Stark Wallet solves
Issues with current Web3 wallet:
- Require users to understand the concept of public and private key.
- Users have to remember long and weird private keys or seed phrases.
- Current account recovery methods are very difficult and hacky. If users lose their private key they also lose all their assets.
Stark Wallet As a Solution
- Provides web2 auth flow to users to control their account contracts.
- Users have to only remember their password to control their accounts.
- Provides easy, secure and fast way to recover accounts. (Could not be built due to time constraints)
Challenges we ran into
Circom, the language we are using to generate ZK-SNARK proofs doesn't export verifier contracts in circom. So we had to bypass that hurdle by deploying solidity verifer on L1 Ethereum and then sending a message to the account contract on L2. Sending messages from L1 to L2 was also a bit tricky. We first started with trying to figure out how to send generic calldata from L1 to L2 but that was too difficutl. So we settled for a specific ERC20 transfer example.