AA is the future of web3 wallets, but they have a big problem. If you have an AA in several networks, they can’t communicate with each other. It's a problem when you want to change ownership or sensitive settings. Unify helps AA projects make their AA cross-chain.
Account Abstraction is the future of web3 wallets, but they have a big problem. If you have an Account Abstraction in several networks, they can’t communicate with each other. It's a problem when you want to change ownership or sensitive settings. Unify helps Account Abstraction projects make their Account Abstraction cross-chain.
For example, if you have a Gnosis Safe on 5 networks and want to add a new owner to your Safe account, you must send 5 transactions to each chain. If you have a threshold of more than 1, you need 5 times collect signatures and make 5 transactions. And if you make a mistake in any chain, you will have an out-of-sync, and you will need to send a new few transactions to fix it. In bad case for 5 networks, you will need 20 clicks in your UI and 10 transactions to add a new owner.
Unify is the protocol for communications between your Account Abstraction from any network. You can update ownerships or other sensitive settings for all chains with one transaction in L1 without the risk of being out of sync. Unify will make your existing Account Abstraction cross-chain and add more UX to your product.
The idea is to create two types of Account Abstraction—the Main Account Abstraction for L1 and Sub Account Abstraction for L2. You can have more than one L2 for your Account Abstraction. For MVP, we make our solution for Gnosis Safe and PolygonZKEVM. It's good technology because Gnosis Safe is a framework for Account Abstraction, and PolygonZKEVM is zk-rollup with a short sync time with L1. L2 is more secure than Sidechains and other stuff, but this scheme is valid for sidechains too.
We make MVP for PolygonZKEVM and Gnosis Safe. We create two modules for Safe: SenderUnify - this module lives on Ethereum (testnet) and sends information about owners and thresholds from your L1 Safe to other L2s. ReceiverUnify - this module lives on Polygon ZKEVM (it can also live on other L2s) and is responsible for receiving messages from L1 and updating the configuration in Safe existing on PolygonZKEVM.
We use PolygonZKEVM Bridge (LxLy Bridging) to send messages. We focused on L2 because L2 allows you to receive and send messages based on L1 security. It seems to us that the future of scalability is in L2, which means that solutions such as cross-chain AA will gain more momentum. In addition, we believe that the time for bridging data between L1 and L2 will be even shorter.
Technical algorithm:
Change of ownership and threshold happen on L1. L2 receives the result of the execution and updates the settings internally. It does not repeat the execution, as it would if you sent transactions to each L2 yourself. Therefore, in our scheme, there is no problem with out-of-sync because the system will come to the same data anyway.
If you had several Safe accounts without Unify, for example, ten L2, you would have done the same number of clicks and transactions. With Unify, one transaction is enough to update the data for all L2.
Please, follow these steps for testing our live MVP: