Though chain abstraction is a relatively new concept in web3, the practice of using abstraction as a design principle is well established. A common term in many disciplines including art and computer science, abstraction is the process of reducing complex systems to manageable forms by focusing on the essential characteristics.
When done well, abstraction can make products or ideas easier to represent, understand, or manipulate.
Abstraction as a Design Principle
Abstraction is a cornerstone of good design across various disciplines, including software engineering, architecture, and product design. By focusing on essential features and user interactions, designers can create cleaner, more accessible products. Examples of abstraction in software design would be APIs that make it easier to integrate platforms like Stripe or Notion into other products, or Agoric’s upcoming Orchestration API for web3.
Stripe took common payment workflows and built an API that makes integrating them into other products easier by abstracting away the complexities of interacting directly with digital payments rails.
In product design, an abstract approach would generally lead to a minimalist interface, where the complexity of underlying mechanisms is hidden, making the product easier to use and more appealing. Operating systems like macOS or Windows provide user-friendly interfaces out of the box to interact with a computer’s hardware and software. Users can open files and run applications without needing to understand the software interactions taking place behind the scenes.
When you order a meal through an app like DoorDash, you don’t have to leave that application, open your bank’s app, then send a payment to the restaurant- that process is abstracted away through the Doordash UI.
Doordash has a lot of complex interactions going on that the user never has to deal with - in no small part thanks to orchestration!
Someone ordering a meal through an app like DoorDash doesn’t care whether it’s hosted on Google Cloud Platform or Amazon Web Services - they just want their food delivered hot. Developers building complex platforms like DoorDash rely on abstraction to make their products usable and engaging.
The Benefits of Abstraction
By removing non-essential elements, designers can create products that are more intuitive and easier to navigate. Abstract designs are often more flexible, allowing for easier updates and modifications without disrupting the user experience: e.g. platform engineers working on popular social networks often make important upgrades or improvements that aren’t always obvious like updates to search algorithms or security features.
Possibly the most important benefit of abstraction is reduced complexity that lowers the entry barrier for new users and developers, making applications and products more accessible to a broader audience. This takes on special importance in web3, where a fundamental principle is giving more people access to robust decentralized technology.
Crafted with <3 by Skip Protocol, ibc.fun abstracts away the complexities of swapping assets across the interchain.
As the industry continues to develop and refine these abstracted systems, it’s crucial to balance simplicity with functionality to make sure we get the benefits of abstraction without undermining the richness of the underlying systems.
Moving Web3 Forward with Abstraction
Abstraction is a powerful principle as it lets us handle more complex ideas by dealing with simpler, more understandable components. However, it also requires careful balance to ensure that essential features or security measures are not lost in the process of simplification. Over-abstraction can lead to systems that are too generic, potentially sacrificing performance or specificity. Hiding too many details can lead to a lack of control for users, making it difficult to perform more complex tasks or troubleshoot issues.
Along with teams like NEAR, Particle Network, Xion, and Frontier Research (and many more!), Agoric is thinking rigorously about how to get chain abstraction right so developers can build the next generation of user-friendly, interoperable web3 applications. Chain abstraction helps in crafting experiences that prioritize usability and adaptability, pushing the boundaries of what web3 products we can build.
Stay on the cutting edge of web3 development. Subscribe to the Agoric Developer Newsletter for more on chain abstraction, orchestration, and multi-chain design.
Join us to learn more about orchestration in person around the world, or online at a Welcome to Agoric session!
Want to be the first to try the Orchestration API? Complete the Getting Started tutorial and let us know about your experience on Discord. Our DevRels are happy to help!