Making assets interoperable & chain agnostic without adding any time delays and without effecting the security.
magine having funds on Ethereum and discovering a fantastic NFT on Optimism that you really want to purchase. The process involves transferring your funds from Ethereum to Polygon, which takes about 10 minutes, and then you can buy the NFT.
But that's not all; later, you find a service in Arbitrum that requires specific tokens. So, once again, you go through the process of bridging your assets to Arbitrum, waiting another 10 minutes, and eventually acquiring the required tokens. This is bad UX, business can’t come to all the chains you need to go there.
Now, here's the issue: with numerous chains like optimism, zkysync, polygon zkevm, gnosis, scroll, shardeum, and linea, you end up managing several wallets, and your funds get scattered across all these chains, creating a huge mess.
I am attempting to solve this problem through this project
Step 0:
User deposits his funds on multisig wallet. Owner of the multisig wallet are User and Distributed nodes and threshold for signing is 2. We will discuss about the threshold and cases where network goes rogue afterwards.
When user deposits his funds after certain block confirmation all the nodes stores a local copy saying that user has amount X in ethereum. Note: Only Deposit takes time the entire process and spending money on any chain shouldn’t take time.
Step 1:
User makes an attestation that he is willing to do transaction on another chain
We are using EAS for attestation
Step 2:
Once threshold approval is received a transaction is initiated from Escrow Wallet.
This transaction involves 2 main things:
After a certain epoch let’s say month end all the transaction values are aggregated and bill is posted on Ethereum for the user to pay. Now there are 2 cases here User pays the bill or he doesn’t. If he pays the bill then we don’t have to worry all went well. Let say user doesn’t pay the bill by himself now the network has to prove that user has made transactions on other chains and hence the bill has to be paid.
If user want’s to withdraw funds he will send a signed transaction to the nodes. Nodes will check if remaining amount ≥ current epoch bill then it will approve or else it will reject.
If nodes is malicious and does not approve the transaction for a purpose then user can raise a dispute. This dispute will have time period let say 2hrs if the nodes can’t prove user’s withdraw request as invalid then user’s withdraw request is processed without nodes approval