Anoma: Ethereum's Intent Machine by Adrian Brink=
ETHDubai 2024 · 21 Apr 2024 · 21:14
Adrian Brink introduces Anoma as an intent machine for Ethereum.
Speakers
Topics
From ETHDubai 2024, hosted by DeFi Dubai.
Transcript
let's talk about intents um and what anoma does with regards to theorum with intense machine brief recap what is actually a VM um it has an instruction set as a program counter has different layers of memory um generally speaking programs are run sequentially this is really the model that we've known for ever since e theorum came up because the predominant and the first model to really implement this is the theorum virtu machine right um the theorum virtu machine is a it's a specific M but it's fundamentally virtual machine um in comparison what is actually an intent machine um and here it's important to understand that an intent machine isn't there to replace an a VM it is a
different layer of abstraction on top it is something that you can run on top of an intent on top of a VM or on top of some specific execution environment um so an intent machine it takes a batch of intents computes valid possible State transitions selects one According to some criteria and updates a state system here the CR iion I know here the Criterion is fully user definable um intents are just at least in sort of what are Nas doing with regards to generalized intents intents are just arbitrary code they are whatever you want them to be whatever you can program and they don't exist yet so the first one here is really the normal resource machine um which is the first generalized intent machine in existence
um I want to have a brief so of detour here on the fact that a is an interface it is not an intermediary and this is very important to understand I'll sort of go through why um so what are intermediaries um intermediaries are generally acors in the network so they are specific parties that you interact with this may be a single key this may be a blockchain but there are specific parties that you connect to like you know which counterparty which intermedia are you interacting with um and this position gives them the ability to extract r they will add to you security model um they sort of yeah they are actual things you need to consider within your deployment stack like within
your user stack that you're now relying on this intermediary this is not just an interface um and sort of the best example right now in ethereum is many bridges in the ecosystems are intermediaries pretty much all of them um and here it actually doesn't matter whether it's a multi sick Bridge or um effectively a large multi sick that is run by a validator set these are fundamentally intermediaries that you must add into your trust model right you are specifically interacting with that party in the real world actually one of the best examples here is Banks um banks are fundamentally intermediaries you have to end up trusting the banks in order to access the system um yeah and so as a result they can even charge fees and things like this or
freeze your funds and this is all true with regards to Bridges at the moment as well um on the other hand we have interfaces um and interfaces are protocols which translate or represent one semantics of ordering comput storage and so on of an underlying machine uh they are just code they're freely copied um they are very different to intermediaries right they are uh you do not have to interact with a specific counterparty if you as long as you interact like as long as you sort of adhere to this interface you can connect and talk with anyone else that aderes to the same interface um in the real world one of the best examples here is tcpip and here s of the distinction becomes very obvious right that in order to connect to the internet I do not all I
we not all of us have to talk to the same Oracle server run somewhere in New York as long as you implement tcpip and there are many implementations in many different languages you can handwrite your own honestly tcpip is not that complicated if you're dedicated and have like two weeks time you can Proby Implement your own TCP iip stack um in the language of your choice you can talk to anyone else that implements this right and this is it's a very different model it's a model where every Central server can go away and it still works that two people in this room use the interface to talk to each other this is very different to the inter intermediary case where if the intermediary goes away uh you cannot use that service anymore here this is just code you can
change it you can modify it um you can do whatever you want with it you can reimplement this from scratch it doesn't matter um and I I just want to stress this because the anormal protocol is a declarative is a protocol for declarative intents imperative ordering computer storage semantics of underlying machines it is just code you have there full specs for this you're free to copy this you're free to modify this if you want to implement this in many different languages on many different virtual machines please go ahead this is to say that there's no anoma chain there's no anoma chain to which you must send your intents in order for you to leverage aoma uh you can just use anoma deployed on ethereum without ever interacting with any specific anoma
uh you're just interacting with the interface you're cheering to the interface standard right um and yeah sadly I think this point really interfaces versus intermediaries really gets overl overlooked quite a bit in the current world where I think a lot of people assume they interacting with an interface whereas in reality they're interacting with an intermediary um so whenever you use anything on chain um actually make sure which one of these two categories you fall into intermediaries are fine you should just know about it um yeah so aoma it's a universal intent machine for ethereum this is really sort of the simplest way to say this um aoma does something that um just adds extra capabilities to what's currently
possible in ethereum it provides a generalized abstractions uh for Universal or generalized intents uh yeah so what does this actually mean um it means that Builders can write daps in terms of in intents instead of transactions or execution traces and here this is a very important difference where currently everyone is writing applications or users interacting with ethereum are interacting at the transaction level right like as a user you currently signing over a specific execution Trace you don't actually sign over a specific State change you sign over a set of up codes that can modify the state uh incidentally this is where a lot of the M comes from that the fact that if I have an execution Trace that I've signed
over and someone else has an execution Trace that they signed over um depending on how you interl them you get to different state outcomes right like this is sort of fundamentally they are not pure in that sense um within tense you are writing in terms of State updates you're writing I currently have state B and I'd like State I currently have state a and i' like State B um and the system can figure out sort of is there something to actually like provide the inverse or B to a or is there maybe 500 people that sort of if you take all 500 And1 combined then sort of this B out so intense really as a builder here you can start writing your applications in terms of partial State transitions um that may or may not get uh sort of
solved for um rather than fully fledged State transitions that are immediately executable on chain um yes so a lot of people think about intents and they think limit orders and this is technically correct limit orders are a very specific kind of an intent right but here what we really talking about with anoma and the anoma resource machine it's anoma implements General intents whatever you can Co whatever you can write down in code whatever state you want to express you can express it using anoma you're not constrained um to any kind of specific uh intent uh so you can use sort of this generalized in these generalized intents to build um
limit orders sure but you can also use this to decentralize something like a gitcoin dow um where individual users end up having individual votes uh we collect 500 of them then those 500 intents get combined into fully fledged State transition that is then actually executed on ethereum um interesting enough intense also just generalize rollups because when you think of what a rollup does right a rollup is you have a state transition from A to B someone else has B Toc and so on and then the rollup collapses the entire thing into a TOD or whatever um intents just generalize this model um yes and this is really important actually um intense and depths written uh sort of adhering to the anormal protocol specification can be ordered solved and settled on ethereum
um this is you with a noral you get an entire P2P stack in order to enable for example decentralized counterpart Discovery and distributed solving but fundamentally if you care about the security model of ethereum go ahead you can just settle to ethereum here um yeah so in summary um anoma is a universal intent machine 4 theorum intent and deps written with anoma can be ordered solved and settled on ethereum um and interesting enough if you really into to distributed systems come find me later and we can chat about sort of generalized sequencing but the consensus behind a Nora is called Typhon and it generalizes a shared sequencing which enables you to now that you have intents um you canot only settle on
ethereum main chain you can also sort of in the intent specify what um roll up or what specific security Zone you care about maybe you want to specify that you want to settle on e theory main chain because this is a security model you care about maybe you want to say that well I want to be on an evm rollup or I want to be on even a nonm roll up it doesn't actually matter here or something I can I AVS so really the pick is yours um this is and this is really important to understand like intent the intent machine here it's an abstract it's a high level of abstraction that makes it uh possible to build applications that were not possible to be built before right like it is something on top it is not something um to try to replace existing
infrastructure is just to make the developer experience and the user experiences more expressive oh actually what's my great um so yeah let's talk a little bit about 10 Centric daps on ethereum um and why usea to build daps actually what affordances are provided um you get permission as infrastructure as in you do not have to talk to a specific counter party in order to be able to use the system you can just gossip you intend to two of your friends because those are the only people you trust so you can gossip them multicast to the rest of the world um this is really up to you the topology of a Nora is not defined in the architecture and this is I think something that most um protocol
Architects are currently doing wrong to large extent that it is very difficult or it's impossible within an architecture to define the actual deployed topology of the system right the topology of the deployed system as in who which node connects to whom is purely dependent on user and operator Behavior as in who chooses to interact with whom and aoma goes to Great length to make the architecture completely topology agnostic so that the actual users the actual economic flows um can f can form the topology that they care about for example you can build a topology that is optimized for latency and here one example is that if uh three people here want to sort of locally
trade um some I don't know ether Bitcoin or something like generally intense uh the obvious thing to do is that we locally connect over fiber optics with each other to order and solve these intents and then settle them on a theorum if we all care about etherum security model right like it makes no sense that each of us talk to a servers halfway across the world in order to do the counterpart Discovery um and solving part so this is what I mean by perion as infrastructure um you get intent level and intent machine composability um so intent level composability simply means that intents aren't application specific so I have an intent for example I want to go from
State A to B and I'm sending this to the network someone else may an simple example is I want to trade I want to trade e for Bitcoin U I do not have to specify on which specific dap or exchange I want to do this I just go this is the state transition I would like to achieve um and then other people may have have completely different intents they may be wanting to trade in a different security model on a different setup um but those intents can still compose because in the end intents are just um sort of declarative models of like I have state a and I'd like State B and as long as someone else has B2 a or something like someone else has B2 C and then there's C2 a uh you get this intent level composability the other nice thing is you get intent
machine composability and what that means is uh rather than treating every single uh rollup in the ecosystem as a separate system you can just interact with the intent machine and say well I would like to settle to I would like the security of this specific rollup so rather than treating uh you can treat a network of distributed machine or distributed systems as a single intent machine rather than as many different um disjoint intent machines you also get information flow control and really this comes to the point that and I think most people don't realize this yet but so in the current world of um blockchains we all work with a large piece of globally mutable state
that is readable and writable by everyone that sits in the middle of the system right um as soon as we want to have anything with ZK State moves to Edge devices as then state will move to your local Edge device and you as a user end up having the choice here what kind of information do I actually want to reveal do I you can reveal everything you can reveal only um what you want to do but not who you are right like information flow control is fundamentally going to be important because it Maps better the model of where the state is actually going to live in these systems as in state mostly lives on local end devices rather than sort of in the middle of the network where everyone has to Sy this this is also way better from a scalability perspective because rather
than having all R All State live in the middle and like now all nodes have to sync all State uh we can have commitments to that state and the actual State the underlying data never has to be shipped across the network it just resides on edge devices like your phone your laptop whatever and you choose what actually to publish into the rest of the network um and you get this idea of heterogeneous trust and I think this is going to be actually very important because trust is very subjective not everyone will want something that's globally decentralized right like my parents for example they want something that's locally secured they want local sovereignity because they trust their local community um if you live in I don't know maybe Argentina or somewhere
like this uh you may actually really not trust your local um security you in that case it's very valid that you want to make the choice to go into the globally decentralized thing right but the important thing is with a noral we don't pick the security model sort of as a user you can individually pick do I care about local sovereignity do I want to use a globally decentralized system the architecture does not constrain the topology here of what is possible um yeah so let's go through I think four examples of what kind of Novel dabs um can you build using a normal on ethereum there great so public signal this is effectively the inverse and this is something I'd very much like to see
this is the inverse of Kickstarter where rather than being supply side driven right Kickstarter is very supply side driven someone goes I think a lot of people will like this idea then they publish they sort of Supply this idea into the market and then if enough people come together uh to actually demand then this may happen public signal is the inverse of this where a lot of individuals can start signaling in a within tense using uh cryptographically signed intense the idea that they would like X to be done and now we can start sort of seeing what is their demand for and rather than sort of supplying something and hoping that there will become will be demand we can rather listen to the sort of uh the intent gossip and go oh there clearly is
some demand here uh now now let me try to build this and the nice thing is for example if you had something where uh you need at least I don't know um 10 e or something so like 100 people come together everyone uh provides some e um and so if you publish this as demand as soon as someone is capable of supplying the other side they can take those 100 intents um together take their create their own intent that provides a supply side and then settle this immediately and make this executable onchain um this is sort of the thing I most excited about it scale free money it's the capability to effectively issue Mutual Credit lines so rather than relying on centrally issued currencies we can use scale-free money that I issue
my own currency and only my econom my like social network will trust my currency right but sort of instead of all having to Route via the central currency we each issue our own and then I can do credit clearing with people that I trust and sort of over time you can start expanding this network um that if there if I'm trying to transact with someone that I'm not directly connected to um but there's a hop along some path in my social graph um we can still transact and I think this is sort of um a very cool idea that is especially useful for smaller economies um because it allows smaller economies to sort of like really bootstrap their asset without having to rely on sort of go
everyone has to Route via USD you can directly route by your own currency um I mostly think about this in the case of Switzerland where Switzerland you can issue local currencies um as in like there is a Cooperative that there's Mutual Credit clearing in WEA or something we I forgot the city name um but so there are some attempts but I think really anomal provides here very scalable infrastructure using intents uh to actually enable scale free money at scale uh you can build multiat this is it's an actually decentralized version of Discord um because again intents are arbitrary they may be Financial in in nature they may be carrying Financial assets they may carrying e but they may also be just carrying data uh there's really no distinction here between I
think this actually an important Point regardless there's no distinction between like information and assets I think in the digital world a lot of these things are collapsing onto each other where um using intents you can just build a very cool chat application that um where sort of the topology of the network is defined by who's actually talking to whom uh and who wants to trust each other with that data uh and then you can use the prom build something like promise graph which is simply a system for uh organizations to not be bound by specific team boundaries but to uh rather like let the organizational setup reflect the actual work being done and this is something we using internally which is very cool uh so we are dark fooding the promise graph
to build ana um which is nice uh yeah if you are interested on like jamming on some of these ideas there you go it's a QR code to research.net um so let me see all right great on time all right till um VMS and IMS aren't compatible aren't competitive uh they are just a fundamentally different layer of abstraction they allow you to do something else um you should care about interfaces not intermediaries um using intermediaries is fine you should just be very aware that they add into your trust model they're not just interface um yeah what does a universal intent
machine mean for E theorum it means that you can build intent Cent daps you get a standard for intents uh and most importantly you can actually settle on ethereum um again on the affordances you get permissionless infrastructure you get intent and Machine level composability you get a large amount of information flow control which I think is going to unlock the next wave of applications actually and you get this fundamental idea of hetrogeneous trust um yeah and then we spoke about some ideas for novel daps on ethereum um there uh if you have two hours or 3 hours maybe ideally your entire flight back uh check out this post that my co-founder Chris wrote on a nor Universal in tent machine for ethereum it is dense U but it's very worthwhile
um because it explains all of anoma in a very understandable way um so if I went through some of these Concepts way too fast right now this also has all the links to sort of the underlying background material with regards to cryptography as well as the distributed system part so yeah please check it out um yeah this was it um thank you very much all right [Applause]