update - 7

I have been continuing to work on my wallet extension and unfortunately, I have encountered a few blockers that I have not yet been able to solve. However, since my last update, I have become more interested in the possibility of using EigenLayer for account abstraction.

Before delving into a potential solution, let's first review the current problems facing wallet development:

  1. Fragmentation of ownership, especially when funds are not available on a specific chain.
  2. The use of the same address across multiple chains, particularly on newer chains like Starknet and Zksync.
  3. Difficulty in creating similar features across different chains; for example, it can be challenging to write zk verifiers in Cairo.
  4. The significant development effort required for supporting multiple chains.

It is important to note that any solution must prioritize

  1. Self-custody
  2. Censorship resistance.

One potential solution is to create a separate registry of accounts and their ownership on a specific chain. This would address the issues of fragmentation of ownership and address management across chains. However, it would not solve the problem of feature disparity across chains and would still require significant development effort for each new chain that a wallet must support.

Another potential solution is to create a separate chain for wallet authorization and execution. This chain would validate and forward transactions to the specified target chain, and would use EigenLayer for slashing. This approach would solve the issues of self-custody and censorship resistance.

When it comes to the implementation of this separate chain, there are two options to consider: optimistic with fraud proofs or zero-knowledge (ZK) rollups. Unfortunately, an optimistic approach is not a viable option as it would not be able to revert transactions once assets have left the wallet on the target chain. Fraud proofs can only be used to penalize validators, but if the amount stolen is greater than the slashed amount, validators will still submit a wrong transaction.

ZK rollups are a useful solution, but it is unclear whether it would be better to use another ZK-based chain as the source of validation instead of creating a separate wallet chain. This is an idea that requires further thought and consideration.

To validate the problem and discuss potential solutions, I have talked to developers of Candide, Stackup and Banana wallets.