August 16, 2023
Building Invisible Blockchain Experiences: Account Abstraction vs SKALE
What is Account Abstraction?
Account Abstraction is an Ethereum Improvement Proposal (EIP) with a primary goal of improving how users interact with the blockchain. The proposal focused on removing the need to operate strictly through an externally owned account (EOA). As a developer building in blockchain, one of the key areas is user experience (UX). UX is becoming more and more important as the industry attempts to capture the attention of non-Web3 users.
While account abstraction has turned developers' thoughts into a direction of how the above areas can be improved, implementing account abstraction is any easy feat; and most of the implementations still require an EOA of some sort to manage the smart contract based wallets. Fortunately, we can look at an alternative solution to account abstraction that helps accomplish the goal of improving user experience while also simplifying the developer experience.
Alternative Solution at SKALE
One of the biggest decisions developers make today when deciding to move into the blockchain space is what network they will build on. The options today are in the hundreds with chains focusing on different scaling solutions, applications, and communities. The decision on where to build directly impacts not just the user experience of the application developers want to build, but also the developer experience they have during the build period as well as the experience they have as their platform grows and scales up to hopefully thousands and millions of users.
SKALE Network is a multi-chain Ethereum scaling solution where each and every SKALE Chain in the network operates with zero gas fees, an average of 400 transactions per second with peaks up to 700, and large gas block limits of 268 million enabling more compute on-chain.
SKALE today enables developers to focus on building amazing applications, games, and more while not having to worry about scalability down the road or jumping through hoops to satisfy a more traditional audience.
4 Categories to Consider
Looking at account abstraction versus SKALE there are a few key areas to focus on that showcase why SKALE is the solution for your dApp. These areas include developer experience, flexibility, gameplay, and user onboarding.
1) Developer Experience
Building in web3 is often a shock to new developers. There is a bit of a paradigm shift where developers have to learn how to put things on-chain instead of their own database in addition to dealing with things like gas fees, block confirmation, and wallets for their users.
As developers work to solve these issues the complexity of their code begins to increase and they often lean on additional third party tools and services to solve these problems.
The architectural decisions when building new software or adding new features may introduce limitations on packages that can be used or services that can be accessed while business requirements may limit external costs or time to learn about new technology during active development.
The actual gameplay or usability of an application is arguably the most important thing to consider. When a user first sits down to play the game or use the application they just want it to work. Users, especially gamers, generally do not want to deal with clicking twice to make an action go through, or to worry about remembering to send all of their actions to the service (blockchain or otherwise) in order to actually have their state saved.
4) User Onboarding
Onboarding users into a using dApp is a difficult sell when they are required to download a [new] wallet and/or attain gas tokens on a specific blockchain network. This adds default friction that is impossible for the average user to bypass and will often result in them choosing not to use the application altogether.
Breakdown of Account Abstraction vs SKALE
An example game, BranchRPG, will be used as comparison for each of the following categories.
The account abstraction version is deployed onto Polygon’s Mumbai Testnet and the SKALE version is deployed on SKALEs Chaos Testnet. All side-by-side comparisons will have SKALE on the left and Account Abstraction on the right.
Account abstraction seems to negatively impact developer experience due to increased code complexity, possible addition of requiring third-party services in addition to the actual blockchain, and the need for developers to work through the complex account abstraction proposal to understand the trade-offs they are making by going down that route. At first glance in BranchRPG there are a number of different types and objects that are different from a traditional transaction. Additionally, there is no direct transaction sending which requires developers to think about how to properly handle logic that is completed out-of-order.
BranchRPG was a game built to showcase the power of account abstraction. Upon an initial walkthrough of the code it was made obvious that removing account abstraction would require a couple of large changes to be made to the game in order for it to remain semi-functional. The requirements would include adding in some sort of wallet support and adding direction for the user to attain gas tokens or a service to manage either distribution or paying for transactions.
The gameplay of the original account abstraction version of BranchRPG is not very enjoyable. While the core button clicks are the same; nothing actually happens until you stop playing and manually click execute. On first play through it may feel as though the game is broken or does not really do anything due to the lack of activity when filling up with water or watering the garden. The one positive the game does handle is the reduced signing that comes with many blockchain applications.
This solution makes it easy for users to connect to the game and just start playing without clicking any buttons or making any additional downloads. However, the trade-off here is variable costs. By choosing to subsidize user transactions, the dApp will have to pay those. This means that the more users you have and the more activity on the blockchain that occurs, the more you will be paying for each interaction.
SKALE provides a much different developer experience than account abstraction. With no additional libraries or code needed for core interactions; building on SKALE is much simpler. Developers do have the option of using other libraries to abstract logic away or use supported third party services if they so choose, but they do not need to do with custom complex code or transaction management as seen in the account abstraction version of BranchRPG.
Additionally, one of the issues with the initial version is that transactions occurring out of order will only be able to be caught during the execution of all transactions due to the bundling mechanics of account abstraction. SKALE removes this complexity and makes it simpler for developers to complete the primary logic.
The flexibility developers have when migrating an application over to SKALE is showcased in this BranchRPG example. The migration from Account Abstraction to SKALE for this application took about 30 minutes for the initial reorganization. The numerous options available during the planning stage included a number of different libraries such as web3.js, ethers.js, and viem; while on the SKALE specific side the decision to either use Proof of Work for sFUEL Distribution or directing users to the sFUEL Station. Additionally, once the account abstraction was pulled out the complexity of the code was greatly reduced which was discussed in the DX section.
As stated during the overview, once players and users actually get to the application; the most important aspect is their experience when interacting with the application. After successfully migrating the codebase to SKALE, the UX of this game improved drastically. The two biggest benefits of this migration are the areas that have been successfully made invisible.
The first change is that with no paymaster, transactions no longer have to be queued up. As soon as the water is collected or the garden is watered; the transaction is immediately fired off to the chain in the background. In the original game, when the transactions were queued up, the state was not saved until the user manually chose to execute all the transactions in the queue. With the SKALE version the user is constantly updating and saving their state as soon as they facilitate an in-game action. The UX boost with this change is the reduce number of user actions required per action. By sending transactions automatically which can be done with SKALE, the user simply plays the game or interacts with the application and does not need to worry about the blockchain components.
The second change that comes with the migration to SKALE is the speed at which data updates on the client (i.e the frontend). Many blockchain-based applications including the account abstraction version of the BranchRPG game have a fairly slow time to update. With account abstraction, the client will not update until all transactions are executed as well as confirmed on chain. This means that a player can play for 5 minutes and their score will not change until the transactions are executed at which time the score/data will bulk update with all of the actions executed. With SKALE, as soon as each action is initiated the client will update once transactions are confirmed on-chain. See the videos below for a comparison of transaction finality between SKALE and Polygon.
In the SKALE version, since gas fees will not be paid by a bundler; the wallet associated with the user must be provided sFUEL (gas token) when the game starts so the user can pay for transactions. Proof-of-Work (POW) is a function available through a SKALE Chain that enables the sending of a transaction without any sFUEL. POW is used when the application first opens to draw funds from an on-chain faucet. This does not require any signed transactions and is done in an invisible manner making it an incredibly smooth onboarding.
Additionally, with SKALE there are no additional costs thanks to the zero gas fees. This means that it doesn’t matter how many users you add to your game, you don’t need to worry about any transaction fees.
After porting BranchRPG from account abstraction to SKALE blockchain and doing a side-by-side comparison it really is a no-brainer that the SKALE version turned out to be the better final product. While account abstraction is enabling developers to remove complexity, it feels more like a bandaid to a problem than a remedy to resolve it entirely. With a smaller codebase, reduced complexity, and a much greater user experience the SKALE version of BranchRPG showcases what games built on blockchain can really offer their users.
SKALE is the world's fastest blockchain, designed for fast, secure, user-centric Ethereum scaling. SKALE chains offer zero gas fees to end-users and have advanced features such as on-chain file storage, interchain messaging, zero-cost minting, ML/AI smart contracts, and enhanced security features.
The SKALE network enables developers to deploy their own EVM blockchain in minutes without sacrificing speed, security, or decentralization. Welcome to the SKALEverse.
More Information on SKALE