Anoma: an intent-centric architecture

ETHCC 5 · July 2022 · 14:51

Christopher Goes explains Anoma's intent-centric architecture and its separation of protocol logic from security choices. The speaker discusses counterparty discovery, settlement and interactions across trust zones and chains.

Speakers

Topics

From ETHCC 5, hosted by Ethereum France.

Transcript

oh i'm christopher and i'm going to talk a little bit about anoma enoma is an architecture and set of protocols sounds like a lot of stuff man for full stack decentralized apps in the next 15 minutes i will try and explain what that consists of and why you might want it and there might be some images in between but first let me say anoma is built by heliacs by adrian abba myself and too many people list unfortunately in images on one slide but you can find them at helix.dev team i know it would not exist without great effort by all of these people so i want to start out with a little bit of history i promise i won't go too far back in time this is not going to be a story about how you know blockchain

economics were necessitated by genghis khan this history will be recent i want to start out with the first generation does anyone remember just just wondering does anyone remember like the global bitcoin stock exchange raise your hand if you ever use the global bitcoin stock exchange okay look it up it's interesting the first generation of protocols um brought something which i think we can call scriptable settlement uh in scriptable settlement pioneered by bitcoin where you could have scripts governing how you could redeem uh specific coins uh allowed already for some applications that allowed for colored coins maybe the og erc20s uh of course bitcoin was forked and slightly modified for namecoin perhaps the og ens there was a long tail of

bitcoin forks but the trade-offs required because the scripting system was so limited meant that these applications were tricky to build they didn't generally have the security liveness or user experience properties you would want and so as vitalik mentions in the white paper along came the generation of programmable settlement uh pioneered of course by ethereum ethereum brought fungible and non-fungible assets programmable multi-signatures decentralized exchanges daos amms all of the applications you see here today all's well and good and in the time since i think i think we can safely describe all of these protocols as programmable settlement plus plus so there have been advances in civil resistance proof of stake eth2 tendermint advances in scaling roll-ups sequencers advances in privacy pioneered by zcash journal

proofs advances in consensus different bft algorithms interesting stuff like avalanche single saw finality coming soon i hear an eth2 but still all of these protocols serve the essential purpose of programmable settlement wait wait what is programmable settlement go back a second so in applications often we want to do two things the first thing we need to do is like find some people we want to interact with and only once we find some people and we interact who we want to interact with and once we decide together on what to do can we settle and you see this already in many applications on ethereum settlement is not sufficient settlement only works when parties know who they are and they know what they want many apps need to do uh counterparty discovery it's more useful if you can

like say something about what you want and use some kind of automated framework to find counterparties for you and then you can settle settle it on a decentralized ledger so you can have the uh privacy security fault tolerance guarantees that you want so kind of party discovery just consists of whatever it takes to help counterparties or people who might want to be counterparties discover each other and help them agree on what to settle you need this for marketplaces where you have buyers and sellers you need it for something like quadratic public goods funding where you have projects donors funders and you're needed for daos where you have voters who want to vote together on proposals so we see now a lot of different approaches contemporary approaches to counterparty discovery a few projects do counterparty discovery on the blockchain amms do this any sort of on-chain order book does this but

this is expensive costs a lot of gas and it's kind of silly because you don't actually need you're just using the blockchain as a very expensive order data store for data which you probably don't need to order so a lot of other projects do counterparty discovery with a single operator database openc operates a database of orders xerox relays operate databases of orders flashbacks operates private mempool roll up sequencers keep a database of transactions which they order but this creates a trusted party and it means that unless the order database is available you can't like access any of these orders you can't find any counterparties so sometimes we see a more advanced approach and some attempts to say desensorized roll-up sequencers are trying to create an application-specific sovereign chain recently dydx announced that they're doing something like this

of course this does this can help but it all of these applications if they build different app-specific sovereign chains introduce really complex security models for users and it's tons of dev work so an interesting question arises can this be generalized and we propose that the answer is yes so in a noma we're building a framework for both programmable counterparty discovery and settlement uh which we think are the essential two phases from user intents to uh subtle state transition anoma follows two key design principles and i'll spell out what those are the first is intent centricity and the second great tagline is homogeneous architecture heterogeneous security what does that mean let me start with the first intent centricity means that in this

architecture users express what they want instead of how to get it it's the responsibility of the system of the operators in the system to figure out how to get it in a way that satisfies what users have said that they want and users do this in a noma with something we call intense intents are just pieces of data they're arbitrary but they express binding programmatic commitments to preferences users sign intents they authorize them intents are then sent across a peer-to-peer intent gossip network they're processed by entities we refer to as solvers who look at bunches of intents find intents which are compatible with each other say people who want a ring trade and create transactions which settle the appropriate state transitions um on some kind of settlement layer and i'll talk about what the settlement

layers look like in a second but enoma tries to provide for applications what we refer to as a black box architecture namely users author and submit intents then there's like some magic there's a black box stuff happens and the system or the black box can provide end-to-end privacy security and liveness guarantees from that abstract perspective just like a zero knowledge proof system can provide uh certain like abstract information theoretic guarantees even if implemented in different cryptographic ways but you can use it safely if you work only with the properties of the abstract interface then once intensive and processed by enoma users can check the updated state so what's inside this black box oh my

god first phase counterparty discovery user creates an intent sends it to the intent gossip network these intents might include uh private state or shielded state they are routed around the intent gossip network they are processed by a solver the solver figures out how to match different users who have compatible preferences and they create a transaction those transactions are put in a block by a proposer they're then agreed on by validators providing finality they're executed they're verified and updated state commitments are signed so that users can verify what happened the second part of this diagram is not really new but the first part is where we think it's possible to bring programmatic counterparty discovery into play so that all of these different applications which use different

varieties of counterparty discovery can agree on a common framework save themselves time and give users more power over the intense their signing the liquidity that they're providing the preferences that they're expressing the second key design principle is something we call homogeneous architecture and heterogeneous security what a tagline am i right this is based on the idea that protocols can be benevolent monopolies so in order to display the slide deck in order to purchase tickets to this conference in order to browse things on your cell phone um we're all using the same protocol we're all using tcp ip and everyone wins pretty much from using the same protocol i mean tcip it could be slightly more efficient there's some

improvements with quick and stuff but the counterfactual losses are pretty marginal and because we all agree on this protocol we can interoperate you know different manufacturers can build different hardware that supports it different software that supports it we can all agree but security domains and the analogy in tcbip to security domains is who you choose to connect to security domains are not benevolent monopoly they're terrible monopolies because someone controls them if there's a single security domain you don't have any sort of local sovereignty over your assets or data or interactions usually whoever controls the security domain can do a lot of rent extraction if users don't have an easy way to opt out both in theory into practice and parts of security cannot be completely abstracted because some party still has a choice of which transactions

to include and how to order them so inanoma in the architecture we try to separate the protocols and the architecture from the security model and make the security model a matter of user choice so what do applications look like again in this architectural framework on ethereum applications look like a smart contract which does settlement and then in that smart contract you might build some custom kind of intent mechanism some way users can submit signed messages in noma we try and abstract this so applications consist of intent formats they consist of solver algorithms ways to match those intense form transactions and they consist of validity predicates which you can think of settlement and variants which verify uh that uh whatever intents are being submitted by the solver in a transaction

were actually signed by the users and the ultimate settlement reflects the preferences that the users expressed this is a vertically integrated architecture which means we can provide end-to-end security liveness private privacy guarantees and it also means that applications are portable across security domains so sometimes you'll hear people talk about like cloud computing and vendor lock-in how aws and you know google cloud and microsoft azure or whatever um you know on purpose create these like proprietary apis that no one else can support so as soon as you integrate a lot of your web infrastructure with one of their services it will be hard for you to leave blockchains are also like this unless we agree on a standardized architecture as long as everyone writes their apps for one like

architecture and one language of one vm then they will be locked in as long as the security model is tied to that architecture they will be locked in uh to this choice of who is operating it and they can basically they suffer from the same problems of rent extraction right so the exit costs the only way to make the exit cost low is to standardize protocols so when i said that enoma is an architecture what did i mean by that i meant that it's a common way to organize a sort of set of components that you need for counterparty discovery and settlement it's a set of protocols that you can use and you can plug in different components in different ways and because we follow the principle of um homogeneous architecture heterogeneous security users can choose what kind of security they want to

accept where they want to pay for settlement so you could use a noma just using the intent gossip network only in sequence settle elsewhere like settle to ethereum you could use enoma to decentralize your roll-up sequencer uh fun fact a decentralized sequencer is just a blockchain which also posts execution proofs to somewhere else as long as you were ordering things that is what consensus does you could use enoma with fractal instance local settlement so with a fractal instance uh settlement instance uh that somebody runs in a local local area perhaps one uh for more of the world and you could also use anoma in an interesting way with temporary fractal instances almost blockchains that you create on demand where you only need local ordering like you need to play game of poker or settlers of catan and you really don't need to pay someone to globally order

your transactions for that game with everyone else in the world because the state is local so i just alluded to it but what about use cases uh so one thing you could build with enoma and this name is not going to win me any marketing awards but you could build unicow xc which is unit swap plus cow swap plus 0x plus openc all in one application because you have a unified framework for counterparty discovery and settlement and all all of these products are doing counterparty discovery separately and settlement currently on ethereum right and if they do counterparty discovery in the same framework um you also wouldn't need to like send transactions to open or close lp positions on uniswap which is pretty cool and if you look at the gas features of ethereum like these four applications plus tokens on average about 75 of it

um you could do bitcoin quadratic funding without a trusted multisig uh because of course it's very expensive of all the donations and quadratic funding are being made by sending transactions to ethereum because everyone has to pay for gas but in principle you don't need to do this uh you just commit to making a donation as in perhaps only if you can express more constraints like projects want a certain minimum amount of funding and then the funder probably can pay the gas to settle it all at once you just need the ability to do counterparty discovery and then you can settle and the validity predicate or the settlement invariant will check that everyone signed the messages saying that they would donate this much et cetera of course um provides hopefully a helpful way for roll-up sequencers which would like to decentralize their consensus in ordering to do so

we're also really interested in private dows most real organizations in the world require privacy to work because as soon as you expose everything that you're doing to the outside world it's very easy to cherry pick data misrepresent things target people privacy is necessary for sovereignty and if we want daos to be able to provide a kind of useful organizational substrate for organizations doing real things real things are usually objectionable to somebody then they will need to be private private auctions private local games and multi-party multi-variable private bartering and particularly with private local games one thing that i think is cool is that using this kind of framework where you have uh sort of generalized applications over the settlement layer settlement layers can be created on demand just when you need ordering so if you want to play poker let's say let's say you want

a pet so you start out you deposit some things you create a local fractal instance with a portion of state to start your poker game you just run the fractal instance you can run it for free you don't need to pay any gas fees you're running it on your computer and you like your friends computers because that's all you need to order you could play private poker and then as soon as you're done you end up with the final state of the game you've all signed it on this fractal instance just through the consensus mechanism you report that back and you can uh sort of rebalance the tokens according to the poker chips and whatever formula you came up with so blockchain's on demand um i think i am basically out of time here uh at just the right instant i hope um thank you very much uh please find me

uh cw goes find us at our noma network helix dev we actually have we've printed some white papers uh you know we'd love if you want to critique our white paper and we hope that this can be a useful framework for a lot of people especially people who need counterparty discovery so if you need counterparty discovery we'd love to talk to you and if you think you can falsify our hypothesis that can it can be generalized we'd love to prove you wrong because it can be generalized please find me and thank you very much [Applause] you