Account Abstraction

One of the first and foremost notions in blockchain is that to interact with anything on-chain, an address must exist (from which to send a transaction/signature). Thus emerges a naive (but somewhat sufficient) solution: every person has their own dedicated wallet which manages their own private keys to their own individual address. This works for the technically-inclined and highly risk-tolerant, but does not service the early majority. The other extreme is enterprises creating (and storing) address private keys on behalf of users for absolute ease; this continues to progress the principal-agent problem (which we find unacceptable), as individuals are no longer in full control of their own actions on-chain. This also furthers a security dilemma – that organizations are now responsible directly for the custody of user’s keys, which places personal asset risk management into the purview of said organizations.

Examining these dialectical extremes, we created an opinionated implementation of account abstraction – a user’s unique footprint and noise (email, password, favorite brand of candy, etcetera) can be used to locally generate an address for the purpose of signing transactions as themselves without explicitly requiring the user to understand cryptographic key management. This culminates into an on-chain account structure initialized by (and extending) any given address with extended metadata (such as individual user and session data). Given this, It is also fundamentally possible for someone to eject into their own wallet on VAS as well, ensuring reverse compatibility.

Last updated