--- tags: [Anoma, Applications, Intents] title: type: slide slideOptions: transition: fade #showNotes: true # keyboard shortcuts: # - Esc: slide overview # - S: presenter view (only works with Slide mode link from Share menu) --- <style> <!-- limit height of graphviz diagrams --> .graphviz svg { height: 300px } </style> # A first principles jounrey from Intents to Applications (and everything in between) _Apriori_ --- ## Overview - Anoma from first principles - Intent Machines & Operating Systems - Anoma Applications are not real (virtual) --- ## Anoma from first Principles - Design a fundamental economic and coordination infrastructure - capable of understanding any and all varieties of user desires - evolve the network to meet those desires --- ## Anoma pursues this vision with Intents - What are intents? - colloquial defintion: credible commitments to a preference function over a shared state space - mathematically: atomic information flow constraints --- ## Precisely $I :=$ $(S$ $➝$ $S)$ x $(S$ x $S$ $➝$ $U$ $⋆$ $[0,1])$ - We formulate intents as a pair consisting of a transition function and a partial weighted predicate over state transitions - The guiding intuition for this formulation is to separate control from desire (*Intent Machines: Goes, Hart, Reusche*) --- ## Continued... - In the prototypical example intents will express a desire for some resource in exchange for another - The 1st component expresses a partial state transition where the intent may create/destroy what it has control over. This aids in composing intents - The 2nd component expresses a weighted predicate over transitions. If the transition satisfies the intent, it returns an element between 0 & 1, representing a kind of utility --- ## ELI 5 - Intents - Language is the OG intent protocol - You are talking to a new friend - You nod your head and smile to indicate you want to keep listening - Your friend reads this intent, processes it, and continues to talk --- ## Mapping to Language - State space: The conversation between you and your friend (topics, emotions, and nonverbal cues). - Preference function: Your desire to continue listening and engage in the conversation. - Credible commitment: Nodding your head and smiling - Intent: Your nonverbal communication conveys your intent to your friend --- ## Intent Machines - Intent Processing systems - transitions the state of the network, and returns a (possibly trivial) batch of things that was worked on - In their most general form, we define intent machines as a kind of coalgebra - a state transition function which can model non-determinism, batch execution, and quantized time --- ## Precisely - An intent machine is defined as a pair consisting of: - A state type S - A transition function: $S → D(B × S)^B$ --- ## Intent Machines compose - The composition of intent machines can be - sequential: chaining the output of one machine to the input of another - parallel: process intents simultaneously, or conditionally based on certain conditions. --- ## Anoma is an Intent Machine - The Network is composed of Machines that process intents - from the users perspective its just one big intent machine --- ## Your Mom is an Intent Machine ![image](https://hackmd.io/_uploads/rJhttxtAa.png) --- ## Alice's perspective ![image](https://hackmd.io/_uploads/SJpJ9xFRa.png) --- ## The Anoma Network - Anoma is an *intent machine* for autonomous communities. - Communities can participate in the Anoma network by running the Anoma protocol. - The Anoma network is composed of operators , people, and communities running the Anoma protocol --- ## Autonomy and Interoperability for Communities - For communities, participating in the Anoma network, it provides both autonomy and interoperability - Autonomy through infrastructural self-sovereignty - Interoperability through protocol compatibility --- ## A Network comparison visualized ![image](https://hackmd.io/_uploads/H1Hm31FA6.png) --- ## The Anoma Protocol - A distributed operating system - An operating system is software which provides an operating environment for arbitrary user software. - In practice, operating systems are developed either accidentally or deliberately. --- ## Your Boss in an Operating System ![image](https://hackmd.io/_uploads/HkgbxG9Cp.png) --- ## Accidental OS - Components not conceived of or intended of as operating system - Components grow in power and scope until they "close the circle" on being a complete environment. - web browsers - blockchains --- ## Deliberate OS - Deliberate Design: entire system is designed and implemented with the goal of providing an operating environment to arbitrary user programs. - Unix - Erlang/OTP - Urbit - Java - Emacs (GNU). --- ## Anoma OS - Accidentally designed systems only succeed in uncommon circumstances - systems can impose significant negative externalities on developers and users - Anoma opts for the deliberate development approach because it is well understood that accidental design may lead to poor systems. (*Ornelas & Pasco: Deliberate Design of Operating Systems*) --- ## The Protocol Architecture - The protocol architecture is designed around the concept of intents - After a user sends an intent, two phases take place: - counterparty discovery - settlement --- ## ELI 5 - Counterparty Discovery Example - Go to a Job Fair, - candidates look for potential employers - Emplyers look for Candidates - Settlement - Verbally commit - Sign Legal contract --- ## Protocol Mechanics - Intents are sent by a user to the intent gossip network, - directly to a solver, sometimes not. - Intents may be gossiped amongst multiple solvers - partial solving happening, before being submitted to the mempool, ordered by consensus, and executed. - User Decides Topology, roles determined at runtime! --- ## Anoma unbundles everything - Deconstruct, rotate and reconstruct Matroschka doll of abstractions - Sperate Architecture and Topology - Sperate Protocols from Operators - Seperate money from ... --- ## Architecture - Topology Separation (ATS) - Architecture - Network architecture is a framework for the specification of a network's physical components and their functional organization and configuration, its operational principles and procedures, as well as communication protocols used - Topology - Network topology is the arrangement of the elements (links, nodes, etc.) of a communication network (*Wikipedia: Network Architecture and Topology*) --- ## ELI 5 - Thought experiment Imagine you are designing a city: - Architecture - overall plan for the city, including where everything is supposed to be and how it all works together - Topology - how you decide to connect everything, roads, bridges, parks, determing the best way for people to move around the city --- ## Ethereum's Architecture - The Architecture is like the protocol stack - Defines core components like EVM, accounts, transactions, blocks, consensus - Specifies high-level system design principles and interactions - Includes features like smart contract languages, EVM upgrades, EIPs --- ## Ethereum's Topology - The topology is how it works in practice - Describes organization and interconnections of different node types - Outlines roles like full nodes, light nodes, miners/validators, bootnodes - Illustrates flow of data/transactions between nodes - Designed to support core functions like transaction propagation, consensus, execution --- ## MEV Supply Chain Meme ![image](https://hackmd.io/_uploads/B145Sz9C6.png) *(Stephane Gosselin: The MEV SUpply Chain)* --- ## Anoma's Abstract Architecture - The Resource Machine - The Ordering Machine - The Networking Machine --- ## Anoma Resource Machine (ARM) - The Anoma Resource Machine (ARM) defines and enforces the rules for valid state updates that satisfy users' intents. - The role of the ARM in the Anoma protocol is similar to the role of the EVM in the Ethereum protocol. - The ARM is a particular type of intent machine. --- ## Anoma Resource Machine Properties - Atomic state transitions of arbitrary complexity - Information Flow Control - Account Abstraction - Intent-centric architecture --- ## Taiga & The Compiler Stack - Taiga is a specific implementation of the Anoma Resource Machine with ZKPs and recurssion. - The Compiler Stack - In the Anoma compiler stack, Juvix is the language in which Anoma application developers will primarily write. - Juvix supports both transparent and shielded execution, Cairo and Halo2 as ZKP backends supported, more to come. --- ## The Ordering Machine - The ordering machine is a set of communicating engines that collaborate: - receive transaction candidates from users or solvers - order these requests for execution - execute the transaction candidates - updated the state - Make the state available --- ## Ordering Machine's Engines - Ordering Machine consists of engines - Mempool: receives tx requests and stores them such that they are available for the execution engines. - Consensus: provides total ordering on txs - Execution: updates the state of the replicated state machine by executing tx candidates. --- ## Ordering Machine Visual ![image](https://hackmd.io/_uploads/By1iXG9Ap.png) (h/t Isaac Sheff, Tobias Heindel) --- ## Typhon - Typhon is a specific implemetation of the ordring machine - includes Chimera chains (enable cross-atomic bundles) - Heterogeneous versions forthcoming - H Narwhal - H Paxos - Consensus rounds on demand --- ## The Networking Machine - Responsible for message passing between engine instances, both locally (intra-node), and over the network (inter-node). - Core functionality includes - Message routing and transport, (more complex p2p protocols are built on top) - Supports: Multiple domains, Dynamic P2P overlays, and P2P routing protocols. --- ## P2P Overlay Domains with Sovereignty (PODS) - Nodes are Heterogenous - a collection of nodes that are part of one or multiple heterogeneous domains. - Each domain has its own overlay topology, and a distinct set of P2P intra-domain protocols, tailored to the characteristics and needs of the nodes in that domain. *(Zarin, Sheff, Roos: Blockchain nodes are Heterogenous and your P2P overlay should be too)* --- ![image](https://hackmd.io/_uploads/S1MQVG90T.png) --- ## Anoma's Network Topology - Roles and responsibilities explicitly defined based on intents - Allows programmable configurations with dedicated nodes for routing, solving, execution, consensus, etc. - Promotes flexibility for different users/communities to experiment with suitable topologies --- ![image](https://hackmd.io/_uploads/r1DkHMq0T.png) --- ## Affordances for builders and users - For applications, Anoma offers developers and users three key affordances: - permissionless intent infrastructure - information flow control - intent-level composability --- ## Permissionless Intent Infrastructure - Programmable Intents with a general protocol - Permissionless substrate for Decentralized solving --- ## Information Flow Control - A mechanism for information flow control is one that enforces information flow policies. - Run-time mechanisms that tag data with information flow labels have are employed at the operating system level and at the programming language level. (*Wikipedia: Information Flow*) --- ## Anoma provides IFC - By using Anoma, users and application developers take precise control over - where the information in their intent goes - whom they share information with - what information they wish to reveal --- ## ELI 5 Information Flow Control - Thought experiment - Imagine you agree to have your picture taken - But you don't want to show your face - Wat do? --- ## Secret Unicorn ![image](https://hackmd.io/_uploads/ByFQQz5AT.png) --- ## Example of IFC - The user who authors an intent can have - precise control over where the information in their intent goes - E.g. send to trusted solvers, but don’t want any data leaked to the consensus provider. - See Viaduct: An Extensible, Optimizing Compiler for Secure Distributed Programs by Acay et al. (*Christopher Goes: Simple information flow control for partial transactions*) --- ## Intent compossability - This is the cross-chain UX you were looking for solving - application lock-in - inefficent sharding - user-facing complexity - Applications are composable - Intents can be composed and settled across domains (can be atomic) --- ## Anoma Applications - Applications in Anoma consist of a set of related resource logics, with the application state sharded across the system and potentially under different controllers. --- ## Resources and Resource Logics - Resources are the atomic units of state - not UTXO, not account, a third more interesting thing... - Resource- logics specify under which conditions Resources that carry them can be created and consumed. --- ## Resources Visualized ![image](https://hackmd.io/_uploads/Syido2FR6.png) (*Yulia Khalniyazova: The Rise of Resource Machines*) --- ## Applications are virtual - Anoma applications are virtual, - content-addressed by their specific logics - exist solely through the resources referencing them, - not deployed or tracked in a global registry. - Users need to know the relevant application logics to interact with them, and these logics can be shared via the Anoma P2P network or other communication channels. --- ## Applications are composable - State transitions for multiple applications can be combined atomically . - Interfaces can support any combination of applications without special permissioning. --- ## Application 1st, Security 2nd ![image](https://hackmd.io/_uploads/B1cdmzY0p.png) --- ## Unified System - Anoma is designed as a unified system, with all nodes running the same software but with separate configurations - nodes can enable or disable processing, storage, signing, etc. --- ## Anoma Nodes - The Anoma node software handles - P2P network connections, - state fetching and caching, - signature verification - provides a local API for interfaces to use - Allows for customized run-time configurations --- ## Customizable what? - "Agents" (entities paritcipating in the network) can choose which roles they play for a given transaction - Solver - User - Validator - Mempool worker - Executor - Prover --- ## Application concepts - Multichat - Encrypted Slack-like application - Scale-free Kudos - Scale-free Money - Public Signal - Intent-centric kickstarter --- ## Multichat - A distributed slack-like network *without* a central server operator. - Separates protocols from operators: - customize interfaces for particular types of communication. - user trust graphs to identify and maintain connectivity. --- ## Minimal Lovable Multichat - Core feature set should include: - a messaging protocol - user management system - complex permissioning - message expiry - user presence and status - a notification system - end 2 end encryption (*h/t Mike Ruzic - "Minimal Lovable"*) --- ## Multichat is for new types of organizations - Who: Designed to handle heterogeneous organization graphs - similar to discord or slack who have shared channels managed on centralized servers. - How: Share data communicate over p2p network about orgs you share information with --- ## Scale-Free Kudos - Scale-free money is credit money - Decentralizes trust and - Shifts measurement to the future - x*y = 1 - Permissionless tools for turning mutual trust into liquidity – coins are IOUs that can be issued and traded by anyone. - Circles UBI - Sardex - Cycles (*Goes: Towards Heterotopia..., Shapiro et al.: Grassroots Flash...*) --- ## Scale-free money Conventions - Minting: people can issue (mint) and destroy (burn) their currency at will. - Pricing: goods and services can be priced in the person’s own currency. - Mutual Credit: people exchange coins to create mutual credit lines, enhancing liquidity through trust. --- ## Principles - Coin Redemption: people agree to redeem any coin they’ve issued for any other coin they hold. - Example: Community can achieve liquidity and establish a community bank without external resources. - By exchanging personal coins among villagers and creating a community bank with a democratically elected board, the village can issue a common village coin and facilitate a smoother economy --- ## Public Signal - Intent-centric kickstarter - Dominant Assurance contracts (refund bonuses) - Funding campaigns 40% -> 66% (Alex Taborok) - Demand side Aggregation - Hardware procurement - funding of many kinds - Funds spectrum of Private to Public Goods - Fun gamification --- ## Minimal Loveable Public Signal - Requirements - Entrepreneurs who desire to build a project - Users who want to back projects - Dominant assurance contract mechanisms - Intents (credible commitments) - Identity verification - Application interface - Anoma nodes --- ## Public Signal Intent Types - Identity based; you submit an intent that says you will donate 1 ETH to any project Vitalik donates at least 10 ETH to - Information based; you submit an intent that says you will donate 1 ETH to any project doing superconductivity research - Incentive based; you submit an intent that says you will donate 10 ETH to any project offering a refund bonus. - Threshold based; you submit an intent that says you will donate 10,000 NAM to any project that raises > 50% of their campaign goal in 1 week or less --- ## Conclusions - Anoma is a unified system where all nodes run the same software with customizable configurations - allows users to choose network topology at runtime with intents - Anoma Network = Intent Machine / Anoma Protocol = Operating System - Affordances for developers - New types of applications --- ## References - [Towards an Intent Centric Topology (Goes 2023)](https://anoma.net/blog/towards-an-intent-centric-topology) - [Blockchain nodes are Heterogenous and your P2P overlay should be too (Zarin, Sheff, Roos 2023)](https://arxiv.org/abs/2306.16153) - [Intent Machines (Goes, Hart, Reusche 2024)](https://zenodo.org/records/10654543) - [Anoma Resource Machine Specification (Khalniyazova, Goes 2024)](https://zenodo.org/records/10498991) - [Simple information flow control for partial transactions (Goes 2023)](https://research.anoma.net/t/simple-information-flow-control-for-partial-transactions/360) - [Rise of the Resource Machines (Khalniyazova, 2024)](https://anoma.net/blog/rise-of-the-resource-machines) --- ## More References - [Viaduct: An Extensible, Optimizing Compiler for Secure Distributed Programs (Acay et al. 2021)](https://www.cs.cornell.edu/andru/papers/viaduct/viaduct-tr.pdf) - [Towards Heterotopia - the prerequisite cultural and technological substrate for a return to a world of scale-free credit money (Goes, 2022)](https://pluranimity.org/2022/09/26/towards-heterotopia/) - [Public Signal (Apriori 2023)](https://anoma.net/blog/publicsignal) - [Typhon's Chimera Chains (Sheff, 2023)](https://anoma.net/blog/chimera-chains) ## A Few More... - [Wikipedia: Information Flow](https://en.wikipedia.org/wiki/Information_flow_(information_theory)#Information_flow_control) - [Intorducing the CAKE Framework (Chiplunkar, Gosselin 2024)](https://frontier.tech/the-cake-framework) - [The MEV Supply Chain: A peak into the future of this industry (Gosselin, 2022)](https://flashbots.mirror.xyz/bqCakwfQZkMsq63b50vib-nibo5eKai0QuK7m-Dsxpo) --- ## We are Hiring! - Heliax is looking for an application researcher interested in designing and implementing some of the very first applications using the distributed operating system Anoma, ranging from - distributed P2P chat to - distributed P2P currencies - novel public-goods funding systems - MUDs - more... --- ## Application Researcher - This role offers the chance to work closely with researchers and engineers in various domains. - synthesise ideas found in research into a consistent, integrated system, - implementing a prototype, and - helping other engineers or hackers (often outside of Heliax) take the prototype into reality and production. --- ## Get in Touch ![image](https://hackmd.io/_uploads/ByVNFhKRa.png) Twitter: @apriori0x 😉 --- ## Questions? ![image](https://hackmd.io/_uploads/S1jtLf9C6.png) ---