---
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)
---