Episode 285 - Intents with Chris Goes from Anoma

19 Jul 2023 · 1:14:52

Anna Rose and co-host Tarun Chitra talk with Chris Goes of Heliax, the team behind Anoma and Namada, about the concept of intents in blockchain design. They trace the evolution of intent-based architectures from Chris's earlier work on the Cosmos IBC protocol, discuss live intent systems already in production, and weigh the user experience trade-offs of adding zero-knowledge privacy to intent-centric infrastructure.

Speakers

Topics

Transcript

[Music] welcome to zero knowledge I'm your host Anna Rose in this podcast we will be exploring the latest in zero knowledge research and the decentralized web as well as new paradigms that promise to change the way we interact and transact online this week tarun and I chat with chrisco's from heliacs the team behind enoma and namata as a quick disclosure I am an investor in anoma through the ZK validator we start off with a short recap of Chris's Journey since we last spoke on the show and what's happened in

Cosmos since he and the team at interchange gamebeha launched IBC into the wild over two years ago we then dive into the topic of the episode that is intense and how one builds systems with intents at their core we cover the history the concept of intents from Chris's earlier work on the wyvern contracts to his more recent work on anoma the discussion around intents has been growing over the last six months or so but the meaning of the term can vary from Project to project so in this episode we try to lay the groundwork for intents we explore the history of the term and the existing projects that already have some form of intent baked in we then discuss how the term can be generalized and the new architectures that this could enable we start to

scratch the surface on the opportunity Unity that this may bring for user experience but also talk about the trade-offs these systems need to Grapple with especially when you add ZK or privacy to the mix now before we kick off I want to remind you about ZK Summit 10 it's happening on September 20th in London once again we are bringing together ZK enthusiasts experts and practitioners from around the world to showcase the latest research share updates discuss important and highly relevant themes and hopefully spark new projects new ideas and new directions there's an application form not only for speakers but also for attendees if you want to join the ZK Summit you do need to fill that out tickets are limited so applying does not guarantee a spot but

we do tend to prioritize folks who've applied early so get your application in soon I've added the link in the show notes now Tanya will share a little bit about this week's sponsors polygon Labs is thrilled to announce polygon 2.0 the value layer for the internet polygon 2.0 makes Mass adoption possible by offering users and developers unlimited scalability and unified liquidity this mission is fueled by groundbreaking ZK Innovations including a first of its kind ZK powered interoperability protocol and the next generation of the industry-leading and widely adopted plancky II proving system polycon 2.0 will change the way we experience web 3 by bringing the security and decentralization of ethereum to the scale and usability of

the internet itself polygon 2.0 and all of their ZK Tech is open source and Community Driven reach out to the polygon community on Discord at discord.gg forward slash zero X polygon to learn more contribute or to join in on building the future of web3 together with polygon [Music] Elio is a new layer 1 blockchain that achieves the programmability of ethereum the privacy of zcash and the scalability of a rollup if you're interested in building private applications then check out Elio's programming language called Leo Leo enables non-cryptographers to harness the power of zkps to deploy decentralized exchanges hidden information games regulated stable coins identity products and more alios incentivized tesnet is now live

participate as a developer apply for a grant or go for a bug Bounty check out alio.org forward slash blog for more info that's elio.org forward slash blog you can also find the link in our show notes so thanks again Elio and now here's our episode foreign and I are here with Chris goes from heliacs the team behind Noma and namata and we're going to be talking about the topic of intense welcome to the show Chris thank you for having me actually I should say welcome back uh last time you were on the show you were here talking about IBC and the work you were doing theirs I'm thinking this is over two years ago that we last spoke I think it was around the launch of IBC yeah which

was in like February March 2021. nice yeah one of the first things I want to do is do a little bit of a catch-up but I also want to say hi to tarun hi tarun hey excited to be back it's been a little bit of a sabbatical but I'm glad to have you back yeah okay Chris let's do that catch up and backstory since you were last on you were working on IBC since then we know that IBC has launched tell me a little bit about that time yeah how was it did it did it go the way you'd expected yeah uh you know I don't know how I had I mean I I tackled IVC kind of like a very tactical perspective at the time you know there was a bunch of organizational chaos within Cosmos the engineering team had to unionize and

succeed in order to launch the protocol you know we were a little bit like short-term focused let's put it that way so I I don't think I had like a theory of the political economy of IBC in 2021 we just had some design problems make the blockchains talk to each other and I really wanted it to be something other than just token transfers because I thought that was boring and if I spent like a year of my life designing a protocol that people only used to do token transfers then you know it was hard to justify here we are two years later people mostly use obviously to do Toka dressers so at least at least people understand that it's more General than that so that part like at least it didn't get communicated you know early on people read the cost

of swipe paper it said like IPC does token transfers and so you know I had to I spent a lot of time trying to communicate that uh the problem it solves is a bit more General maybe to go into a little bit what are the things that aren't token transfers that people do right now that you would say like stick out in your mind to me that one thing that sticks out is like people who use tendermint chains for custodying and then they build all this kind of like multi-sig type of management across multiple chains but there's got to be something better than that because that's like that's only like a slightly above token transfer usage yeah I mean I know there's some usage of uh I believe the the standards are called interchain accounts and interchange queries uh

interchained accounts I think is related to what you're talking about basically where you use there might be multiple layers of custody here but where you use uh one chain or an accountant one chain to control and account on another chain an interchange queries is basically like State proofs over IBC just in this nice standardized way where you can request State previous particular things people are using this for example for liquid staking in the cosmos ecosystem I think there's a chain called stride which provides liquid staking for Cosmos Hub and maybe some other chains and they use some of these non-token transfer IBC packets so you know if you go look at the chart the map of zones.com I think it is I don't know if they display packet type breakdowns but it's still

probably 99 token transfers but there is at least a little bit of other stuff would you say like looking back is there any choices that you made at the time that you would now make differently yeah I mean I think um you know it's interesting to watch in some sense IBC was kind of early like bridging protocols seem to have become a very Hot Topic in the last 12 months six months now there are a lot of other protocols uh which uh you know for my very biased perspective I kind of wonder why they are necessary like it seems like many of the problems people want to solve are problems that at least in principle IBC kind of was designed to tackle and I wonder you know why they don't just use it but I think that there

are good reasons for that I think IBC made some assumptions about I mean it's a relatively intricate protocol it's difficult to implement it in solidity even if the gas costs weren't to factor it on evm change typically they are it's just like a lot of work to implement a protocol like that um IBC you know it tries to provide many things it tries to provide for example different ordered Channel abstractions that you can have relationships between the partial ordering is in different state machines so it's designed for like efficient concurrent cross-chain communication and how many concurrent VMS are there on blockchains right now like just dot or any of them using multiple IBC ordered channels to have like efficient parallel cross chain execution I think the answer is no so

some of that protocol complexity maybe could have been like factored out or abstracted in different ways um I think there have been some learnings there I also think there's you know there's still a fair amount of like incentives for communicating things or understanding things that are kind of token aligned and unhelpful ways uh not that it's anyone's fault but I think people perceive IBC sometimes as particularly Cosmo specific or tenderment specific and some people occasionally I end up with conversations like oh do I have to use the cosmosup to use IBC or something or people thought they needed apps which you don't uh but that you know indicates a certain I think that kind of communications mismatch may lead people sometimes to reinvent the protocol wheel when they

might not have needed to do you think the role like now that it is live and it's been live the role of the relayer is something I'm kind of curious like did you already Envision how that would happen or had you thought of incentives for overlayers and maybe just to describe to the listeners like there is this agent that's helping to move things I'm maybe saying this wrong but like bring things across from different zones over IBC but that often are not compensated and so incentives for running this infrastructure has been sort of questioned or it's been thought about since then right I mean to be honest at the time when we were working on IBC we had like three engineers and so you know at the time we made the kind

of a choice to simplify our scope somewhat by leaving problems till later that at least didn't have anything to do with the security of the protocol and the relayer was one of those um so you know I'm sure we could have considered some of the things at the time more but I don't think that even if we did there was very much we could have done with the way the scope for IBC was designed right it's the scope of IBC takes tendermint as this black box or takes consensus black box which have their own peer-to-peer networks and their own rules for accepting transactions and their own systems of messaging and IBC just Builds on top of those black boxes another system of messaging on top right so the relayers are acting as message relayers uh you

know just copying data basically from one consensus Network remember pool to another and the only way uh you know thinking about it now the only way AIC to really clean those abstractions up is to like redraw some of the boundaries and to put make it basically to make consensus more aware of this interchained messaging that's going on to kind of fuse these networks at least partially so that messages can just flow at the mempool layer or the sort of lower level gossip player directly right I mean IBC when executing an IBC transaction in some sense the blockchain already knows where it should be sent right it's just the fact that the validator is running consensus don't they don't have any like protocol built in way to route a message to this other

network so you have to sort of redraw the boundaries to to get that without any additional relayer which now you have to pay and it's just this yeah kind of software engineering point of unnecessary complexity although they don't pay the relayers right still they're subsidized okay actually one one other point towards implementing IBC and other networks it definitely seems like the security characteristics of the particular implementation can be quite new nuanced and so I I've always like heard people who've tried doing like evm IBC style protocols arguing that like they can't really verify the exact same claims that you know I know I know you spend a lot of

time on the verification for tendermen Cosmos fck and I imagine that that might also be a slight barrier to entry of like re-auditing that for the new environment might be like just as hard as it was for you the first time yeah that makes sense to me do you think that's true um I mean IBC you know also I think it depends on when people try to do it early on a few of the abstractions and clients for example like clients in IBC which is the part that performs the verification we're not the cleanest they were still maybe a little bit tender but specific or made certain API assumptions which would be difficult to satisfy with an evm blockchain or a very different census algorithm over time yeah the IBC

team has done a pretty good job I think cleaning goes up so I suspect that some of these concerns might have been addressed but um you know they're still I mean IBC was not designed to be efficient on the evm right or easy to implement on the evm that just wasn't designed constraint in most roll-up teams are people building Bridge protocols currently I expect just because of the prevalence of evm networks take up to be a design constraints they probably end up with at the very least different like engineering trade-offs let's continue on with your story um so this was cool to hear the recap since IBC launched But like after the launch of it and after it was rolled out what did you do did you stick around for

a while I know you've been working at like interchange gaming at the time I think but like yeah tell me a little bit about what what you started working on since then right so IBC launched I'm going to get these dates wrong now but I think in like February March 2021 um along with the Stargate upgrade for the cosmos Network now it took you know IVC launched and then it was on one blockchain an interoperability protocol on one blockchain is not so useful right so it took a few more months before people launched other chains that I think the iris Hub had it pretty soon and the real kind of Kickstart for IBC usage came with osmosis right uh kind of later and that's later in the summer so um there was a you know a slow start but

uh around the time IBC launched I kind of wanted to see that through to actual production and there weren't you know it seemed to be working some with the token transfers and then that was kind of a good a good Cadence for me to just part ways with interchange although I still remain friends with them and kind of embarked Upon A Philosophical Investigation into what's the purpose of these all these blockchains is um which is kind of whoa well I would say like anoma started with this Vision paper right um and okay the vision paper um it describes how we thought about trying to characterized coordination in particular and how blockchains might be helpful in solving coordination problems but the

vision paper is is abstract you know it's I think it was helpful for us thinking about things um and it was helpful for recruiting some people who were interested in these aims but it wasn't yet a mathematical description of a system right um and it took us you know several kind of different tries and incarnations to come up with a good understanding of how all of these Concepts and components fit together so that's what we've been doing on a Noma in the past you know past two years really and we care about things like privacy or you know I I stopped using the word privacy recently I think is the wrong word that maybe we'll get into that later but we care about like the ability for users to reason about where their information is going within the system we care about all of these

design constraints that we wanted to kind of all include to how we even think about what the system is doing in the first place so a lot of I know majority in the past two years has been figuring out what that is and also the right words to describe it so I I suspect that sometimes people have been confused because very fairly we like use one term to describe a system and then we decided we didn't like it and then there's like some terminological Whiplash going on but uh I hope that it's that there's we're reaching the point of sort of conceptual solidification and it will become clear uh what everything means the one of those words is one of the things we want to talk about today I think uh intense and I have to say every time I say it it comes out a little bit

like intense but it's intense intentions is sort of like yeah that's why it's a good meme though that's the point oh really it's just super intense intense people people make so many memes about it because they like can't say it exactly correctly in like every different you know nice we wanted to bring you on in part because we wanted to start exploring this concept of intense and I wondered in that story you just shared and like kind of trying to figure out a lot of these Concepts when does the idea yeah for intense start for you is it withinoma the founding of heliacs or like yeah where where did that first come up and did you coin the

phrase because we think you did right um the honest answer to that question is I don't so I know when I I actually traced this back recently because I was interested in this question was like okay when did I start using this phrase because I didn't really remember um and I managed to treat the first piece of writing I found that used the phrase was actually back to this protocol called wyvern which I wrote as a early ethereum project many years ago like five six years ago now it you should you should also mention it's one of the most used ethereum contracts in history right or another way of putting it is that the ethereum miners gained a lot of extra revenue for my very not gas optimized solidity contracts which were written in the days of like four four G way gas prices like it was great

um so yeah a theory of minors you should you should donate to public goods but um I it's originally I wrote Fiverr and like kind of as um I don't know just a random project I was just thinking at the time I was reading a bunch of like meditations on moloch or something like blog posts about coordination problems and um I thought oh these blockchains seemed like a great tool for solving these coordination problems because you can make credible commitments and you could just describe your preferences about the state of the system right um and I just prototyped that in like a way but it was very you know a wyvern kind of implement intense in a very limited and restrictive way on top of the evm so in order to do that it needs like a very hacky like account

abstraction sort of thing it needs it can only do two parties basically or I run it just to do two parties other things are just more complicated but it could do simple kinds of intents and opensly use this even for stuff like bulk orders I think so users could describe which nfts they wanted to buy in a bundle or something and place bids or offers on specific combinations of things so yeah early early kind of prototypical intense system cool I didn't know you I didn't know you were behind that I know that for from I mean if you've ever signed yeah like a bulk thing on open C you see the name of that contract it's it's w-y-v-e-r-s right that's right yeah yeah okay cool interesting was it was that just you or

was there like a group of you there well so originally I tried to be pseudonymous and so it was mostly just me um and I I kind of like it was very hard to be synonymous which is why I gave up and went back back you know went to not being pseudonymous no longer synonymous I don't know what I'll do after Anova to become synonymous again oh dye my hair like some other color but um it was difficult to kind of recruit contributors in that day and age when you were pseudonymous there was just too much spam in the world so why everyone's mostly just me I mean a few people contributed to the open source stuff but I I didn't want to turn it into a company or anything so you're saying that that it was like around that time in that project where you first started

to use this term let's continue on that so when was the next time yeah I mean to be honest my Reflections at the time time I worked on this project for ethereum I thought oh cool and that was also before it became popular so I didn't have any side incentives which maybe is good but then I thought but I think I think we really need political polycentrism right I don't want one world computer I wanted like a network of sort of interoperable uh kind of overlapping uh computers so for that reason I went to work on IBC because that seemed like the thing most yeah yeah sort of relevant to this this understanding of like the political philosophy of blockchains um and then joined the cosmos project and worked on obviously so I kind of took the took the intent idea and then

said but we need like a different Foundation it went somewhere else also I think it's like you know I I don't want to claim in a special amount of foresight here I don't think that I had a special amount of foresight I was just reading some blog posts about coordination problems and the word intent comes very naturally from natural language you know if you're getting lunch with some friends you say you're intense like I want to go to Mexican food or Thai food I want to go to Thai food before 13 o'clock then you find some maps that satisfies all of those preferences and most people would have no trouble describing you know they might not always use the word intent but if you use the word intent people would understand what you're talking about

right so I think there's kind of a a natural correspondence here is there any intense stuff in IBC or would you say you shelved that for that project and then kind of came back to it after um you know it depends on whether whether some of the messages in IBC are kind of formally Intense or not depends on how exactly you define the term and some of them might be but they're you know if they're intense they're not really user level intense they're like protocol level intense like a subject to these conditions update the state atomically on this other chain right um so yes but not not at the kind of holistic user-centered understanding of intense level I think it's probably a good moment to really Define it and

maybe Define it as you define it today I think you've just given us a really kind of nice human example of the Thai food lunch plans but tell us your definition of intense today right um so I want to give two definitions here because I think they're actually the two slightly different so another reason why um you know I think intense has recently become popular and it's clearly not due to anoma because we've been talking about it for a long time and it never became popular uh so you know I I think I think credit for like intense becoming popular is much more due to uh kind of what you alluded to tarun but that it's this kind of unifying concept or Universal concept which is a great way

to describe what many of these systems are doing that you can view from a lot of different angles right so the first definition of intent I'll give here is the way that I think people use the word like in on Twitter let's just say like in the discourse and I think there people use the word intense to refer to basically credible commitment to preferences over the state of some system right and what the system is the kind of boundaries that the system vary so someone might be talking about intents on ethereum the system they're talking about is ethereum someone might be talking about intents across all the ethereum Roll-Ups like maybe Swami is interested in this then this is the system they're talking about it draws down degrees around all the ethereum Roll-Ups someone might be talking about intense you know in Cosmos or like some

Cosmos chains and then the system they're talking about draws sort of bounds the system around these cosmets changes right but in particular the the first part of that definition credible commitments to preferences um distinguishes intents from transactions in this useful way right so intense don't specify an exact path of execution right they satisfy they specify some executions of a system or some future shades of a system which users let's just stay happy with or which a user authorizes that's what makes the commitments credible and then how precisely what exact path the system takes what exact computations the validators execute or you know including solvers and other parties to get from A to B let's say is not fully constrained

by the intent whereas in a sort of transaction based system kind of at The Other Extreme a transaction fully constrained it says start at a and do little step X then little step y then little step Zed so sort of whatever you get to that's what I you know I authorize it in virtue of it's having resulted from this path of execution but an intent instead authorizes this kind of end State directly was that your first definition or was that both that was definition one yeah okay so what's definition two it's definition two is kind of the version where you try and include privacy um or try and reason about how information is Flowing around the system um and this is kind of the definition anoma uses which is just a little bit

different uh that intents our credible commitments to information flow constraints so in particular intense let's let's take the example of like a zero knowledge swap I think it's illustrative um so when you're doing some kind of serenology with Tyga and I suspect that other you know other other private swap projects I don't know exactly how they work but they're probably doing they're you know also routing information in this way uh what you're really doing is saying that I will give someone information or give the their private key which I know the public key for the ability to send these tokens which I'm sending to them in the future if I also get this other information which allows me to send these tokens that I'm getting in the future right so the thing which

you're actually routing around the system is information which is related in a particular way right in this case it's related to some State on the blockchain which is information that everyone can see that uh assuming everyone follows the protocol says that if we provide is there a knowledge proof of such and such in the future that you know counts as spending the asset right but the the you know this definition Probably sounds a really abstract and in a certain way it is but it's also helpful in that it kind of unifies what we're doing with all of these little cryptographic components right there are many different cryptographic components in a system like anoma or ethereum uh you know uh sort of public key cryptography signatures or knowledge

proofs sometimes fancier stuff verifiable encryption morphic encryption and if we think of from the perspective of like the system designer and in particular from the perspective of the user what these cryptographic components are doing from the perspective of the user these cryptographic components are allowing them to specify how information gets routed around the system right and uh you know you know you could have a transaction Centric view of that to where you say route information in exactly this way and exactly these steps in a more intense Centric view steps back and says okay here are the ways in which you could route information that I am happy with that I authorize right I guess you know one question I have about these things in general is somehow and

and maybe this is my myopic View but somehow these definitions never include any notion of efficiency and I think like somehow that seems fundamental to how well they're usable by end users like there's sort of a couple high level things right there's like how efficiently can these paths be found or taken and then um sort of how uh you know when you talk talk about some notion of credibility in in some sense to me credibility at least at least you know from the sort of like economic lens sort of means hey like the user doesn't really have to do a lot of work or a lot of communication

to figure out that the person who's doing the task or the group that's doing the task didn't [ __ ] them I think that's like kind of the that that's my colloquial definition right like you don't have to do much work to know you didn't get [ __ ] right so maybe a little too blunt of a definition but somehow there's like three components here right there's like privacy there's efficiency and then there's how [ __ ] or how easy is it to tell if I got [ __ ] right like whatever that is and somehow those three things are this like triangle that you're kind of choosing your where you are and like that that's where I find it hard to come up with one definition personally but that's my if that makes sense like there is some like balancing of this like

table of those three things it feels like I don't know do you think I'm missing anything in there because like at least that's always been my conception is that those three things are like the fundamental things you're getting at right um no I mean I think you're absolutely right that intent uh at this level of abstraction doesn't talk about efficiency um and I think that's uh kind of just a that results from that intent is a way you know at least we use it as a way of describing what's happening in a system that is dependent only on properties which the user can ultimately verify right or is not so concerned with how things get computed but rather as concerned with what could

be verified at the end and that things can be efficiently computed is very important right uh it's critical to a system actually working but um I think it is you can describe a system sort of the topology of a system and the properties which interfaces must satisfy in a kind of simpler and just more easily Universal way if you leave how things get computed as a separate choice right so not that intents wouldn't say that you know in a tense that could sign wouldn't make your system more efficient or less sufficient necessarily um it's just sort of orthogonal to the question of efficiency yeah I I get that there is there is a way of of defining it separately but it does feel like in

practice it does quite matter and you know part part of the examples of this are like the intents that people talk about those existing in practice are like Cal swap or rfqs or you know like kind of like Xerox wyvern and those just have a very particular notion of efficiency like that there's sort of a sense in which efficiencies built into their their mapping like you're you have to prove to the user some guarantees on price or some guarantees on like routing quality right and their efficiency is seems to be like quite so I guess my question is you know you're talking about a definition that doesn't include

it what's like the boundary right it feels like it's like a computational complexity boundary of like some things can be intense but like never verifiably efficient Intense or something and like how do you think about designing a system when your users are sort of uh not not omniscient and unfortunately have to run simple algorithms right uh right right no I mean then I think I think it definitely makes sense to restrict the space of like intents that you actually encourage users to author and try to execute two ones for which there are sort of computational bounds on the solving algorithms right um and something like uniswap or cow swap or openc uh all have like nicely

boundable complexity solver algorithms uh maybe a kind of interesting alternative lens to this question that I think is helpful is thinking about when we're you know we could come up with you know in principle you can make an intense system that is like a sort of interesting way to farm out NP solving problems to like a market right um and I think that that probably does have some applications like that was the original Cal swap which never took off like like whatever notes is called the decks gnosis decks in 2019 or 2020 where they have this NP hard problem but they're like we'll take any solution that verifies and so in theory it and it was just like matching these pools of

different tokens but it like completely was too complicated and like then you know by that time uniswap and like the simpler complexity things beat the more complex things but they were effectively farming out this like mixed integer linear program and being like hey find a solution you find any solution up to some constraints like you know we'll execute a new win so so I I guess like there's sort of this this thing where it it's not it's sort of um yeah this is where I find trouble reasoning about these systems from all the different aspects that people have because like some the very concrete ones the efficiency thing seems important but you you know when you gave this talk at

research day in New York like last was that last month or two months ago something like that last month maybe um you gave a lot of examples of like more General intents right like writing a programming language for for these so like how I guess like how do you think about that like how do you think about the structure of like a language for describing this and maybe this goes into it to like the philosophy of how you should write languages yeah I guess to be clear I guess I just as a protocol designer I work really hard to be lazy right like I want the minimum number of abstractions to kind of talk about how different parts of the system relates to each other and at least I find uh in in kind of conceptualizing what's going on

um efficiency to be separable as in not that you would not you know in practice you want you want to use systems where you can reason about efficiency but the relationships of the interfaces that allow you to compose a system like let's say you have you have a zero knowledge proof scheme right and difference there in order proof schemes have different specific efficiency parameters but they all provide the same abstract interface modulosome you know important but mostly abstractable or cryptographic assumptions right they all provide you away to take a statement to make a proof about it that a third-party verifier can verify not interactively usually not interactively that attest to the the truth of the statement or that you know some data is satisfying it so I think it's possible to like describe

how you would fit is there a knowledge proof scheme into some larger system and then separately calculate the efficiency of you know using the whole composite system with Different Serum Ultra proof schemes right so for just from the design perspective it's helpful to separate these parameters um I think if you do it well it can allow you to reason more cleanly about efficiency because you can view efficiency as a function of the kind of a composition of the different costs of all of your different specific Primitives right so you have kind of some system design that uses as the Reynolds proof scheme and you can reason about okay well given is there a knowledge proof scheme with proof size X and prover cost Y and verifier cost said you can say the whole efficiency

properties of this system are a function of X Y and Z right and then you sort of pull that out right so that's that's it would at least be sort of my argument for why this kind of frame could make reasoning about efficiency a little bit like easier just because it separates out these components um in terms of languages uh you know I think primarily are um what we've been spending time on is thinking about what the key you could call it VM or like what the key Black Box abstraction that an intent Center system tries to provide is right so something like ethereum was originally designed to provide a world computer and

they modeled at least that's what's that's what's on the used to be on the website and they modeled the evm after um these old Von Neumann machines which take some instructions and take a stack they have some memory and kind of run through the instructions in sequence right so users send transactions which give sequences of instructions and those are executed and the central you know replicated abstraction that's being provided here is this sort of instruction executing machine right so what we've been trying to think about is what instead would it take to make an intent executing machine and the one thing which sort of changes from a transaction-centric world to an intense-centric world is that in an intent-centric world you have multiple intents which you want to match and

settle atomically and you want to take the system from some initial state to some final state where all of the intents involved in that that is what we call a transaction right all the intents involved in that transition have their conditions satisfied so it's a different black box right as opposed to like the atomic unit is execution instruction execution instruction executed and instruction the atomic unit for us is take a lot of intents and try and match them in some way and then there's very like non-trivial problem of how do you uh you know choose because now you have multiple possible Paths of execution right there are many different at least potentially many different final output states which might satisfy all of the involved tests so now you have this very non-trivial problem of how do you pick

which I'm going to leave for later but um for now just talking about this black box so our you know I'm not sure I think originally like we thought that that might be a languages question and we did a lot of language research and we have some interesting languages which do nice things like abstractor and All crew schemes that one's called vampire but I'm not really in the end I think it's maybe not a language question it's more like a VM design question or like what is your Atomic unit of a state transition I'm kind of curious like as you describe this how if you had multiple parts of this kind of intent put forward are you talking like the end user would basically say I want this for

either this or this or maybe I want this instead for this and like is that sort of what you mean it's like this desire and how much they want to pay and what they want to do with it and like maybe can you give a little bit more color to what that ux might look like right I mean it could look like that it could look like something like a let's let's take the example of real world things because I think it'll be a little bit clearer so if I want to purchase a Festival ticket okay and a hotel ticket and a train ticket all at the same time I want atomicity for that transaction but I might have some flexibility for let's say the date so I want the cheapest set of tickets to go to the

Festival the festival's running next weekend and the weekend after so two possible weekends I want train tickets from Berlin to Munich for three people I want to be sitting next to my friends right so I have some preferences over the over the state space here but I don't you know I'm willing to go either weekend I just want the best price this Festival yeah that was that was the or the other city I came up with sorry must have some festivals I feel like you'd be coming up to Berlin right right right so in that in that example right in that uh an example of these specific real world these would be non-fungible tokens or something like this yes the user would use some kind of interface that describes what configuration of things they want and if if you go to you know

if you go to like online ticket sellers or something like that I mean they typically have some perhaps slightly simplified version of this right you can search through things based on constraints you can select your maximum price you can select which dates you're willing to fly and it will you know Google flights is a very intent based flight search engine right it's doing a lot of pathfinding for you so I think that that you know many things many applications in the real world already try and do a lot of the work of interpreting a user's intent for them and searching over the state space of available flights available hotels available you know you could even have something like available stock trades um on on on the basis of what the user said there it was

so that's the kind of like real world application example I mean also and perhaps to turin's point there are many kinds of intents for which you want very specific efficiency or fairness guarantees like you want to guarantee of optimal execution over some batch of intents or like fair pricing over some batch of intents and there your intent is going to include that constraint so it's going to say that like I am happy with the output price I get as long as the output price is calculated in this way where this way is like take all the intents in this batch which was maybe previously committed and then threshold decrypted and calculate the output price uh the best price or let solvers within some periods submit Solutions and rank

them by whatever your price optimality Criterion is so intents will include often uh properties that they want to be true about the path of execution right and that might be a way in which you can get specific kinds of efficiency or fairness guarantees I think that's particularly important when dealing with fungible assets let's say a lot of the things people use you know Unison swap to do today and it might be you know for tickets or uh something like train tickets Hotel tickets these things are a little it's harder to Define what a kind of fair price would be and maybe also a little bit less important because there's less uh you know there is Mev scalping I don't know they're weird

things but there's less immediate concern for like exact best price execution in some batch I want to just go back so we've mentioned sort of cow swap a few times and like when I started learning about this concept Cal swap was floated as like if you want to know how an intense system kind of works Cal swap sort of does that but what is different from what they are doing and what you're proposing like is there some sort of like Central actor in their system is it is it because it's including zkps that it becomes more interesting yeah I'm just curious how you'd differentiate your new ideas about intents from what that is so anoma really just aims to kind of like generalize and protocolize the architectural problems faced by

intent-centric applications So Cal swap is already right and tends to Centric application they have users sign intents they submit them to uh some kind of aggregator I think that as far as I understand like the last version of the system someone explained to me so it could have changed but the last version I understood someone users submit their attempts to an aggregate or the aggregator takes the batch of intents then solvers compete to submit solutions for that batch right so Cal swap has built all of this extra infrastructure they've built this aggregator they've built this intent language they built this kind of wage rank solutions from solvers people have built solvers and anoma really just tries to like uh build protocols that can handle many of those

things without special cased intense systems for each application so Cal swap has their own like RPC API you know Network for submitting attempts and cow swap intents are Council specific they're not composable with intents of other applications at least not easily because they're kind of being handled by this separate Network and sort of off-chain execution selection system anonoma tries to make things composable at the intent layer right so you could have intents for one application and intense from another application and maybe you know in some cases they might not even be solvable unless you compose the applications right let's suppose that I want to buy a ticket but I want to pay in some different currency other than what the ticket seller wants to accept right then I might want to

compose intents from the ticket application and from the like currency trading application so that I can get this compose thing which together matches and satisfies everybody's preferences but without application uh without intent level composition of applications is here you would just have two you know two separate interactions at the very least you couldn't make them Atomic primarily what we're aiming to do is solve the general problems once and turn them into protocols so that people who want to build applications like housewell or like openc can do so without Reinventing the wheel on intent-based architecture without building their own networks of solvers without building their own gossip systems for intents without building their own intent languages especially if they want privacy that's kind of a big

lift in terms of Photography required so we want to standardize and Abstract those components of intentions or complications just so that they're easier for people to write and can compose yeah the only thing I wanted to kind of ask slash ad is it in some sense all of that sounds great but the thing that still is hard for me to deal with is like there's so many just like difficulty or impossibility results for these types of aggregation problems and like I just like really actually understanding like how you think about things where someone writes some intent system but like they create a bunch of intents whose aggregation is basically like too hard to solve like how do you deal with some

of these like problems where like the developers can shoot themselves in the foot because you can easily do that with very tiny changes so I'm just kind of yeah like how are you thinking about that right um I mean I think that they're you know we want to still give people Freedom or at least like we don't want the architecture to necessarily constrain all these things what becomes feasible to solve will also change in time but we once you know we're trying to build say a language for intents that has very clear uh you know termination properties has computational complexity that you can reason about stuff like this so you should be able to check whether or not you know solving a particular kind of a tent is feasible that's not you know

nothing in the architecture can exactly prevent developers from shooting themselves in the foot I mean I think it's a different a different like the pistol is different right and ethereum it's easy to shoot yourself in the foot by assuming that you have this like control over ordering that you really kind of don't right and that's we see these sort of you know non-mev aware applications at least implicitly seem to be making the assumption that like people will submit transactions and that's the only thing that's happening and like there aren't other actors who can influence the ordering of events in the system uh you know unfortunately there are um so I I think I think they'll like yeah the pistol is different um and primarily we want to have a language that makes it easy to express these kinds of simple properties

um but also just let you know let a market of applications figure it out over time they're not going to like break any of the impossibility results but I also think experimentation is good the interpretation of this is a it's the second amendment of uh programming like you have the right to bear arms right right including against yourself I mean I do think that there also is the reason especially that I you know I hesitate to say that like you shouldn't do this is that I think sometimes you might want to like it could actually be uh you could make a bounty for example for computing some kind of solution which doesn't violate in the possibility result but it's just presumed to be very difficult to compute or something like this or you can create different kinds of incentives for people to discover

certain ways of solving you know certain subclasses of NP problems more efficiently so I think that there could be also applications in that area Chris I have a question about the sort of zkps in the system that you've created like are the zero knowledge proofs here just like a way to make a lot of this private or are they kind of key to constructing the thing what kind of parts of the ZK are you using basically yeah and the way we use their knowledge proofs in anoma they certainly do provide privacy we've also tried to align them with just the separation of computation from verification so that you know whether you get privacy is kind of a choice of whether the proof is zero

knowledge and whether you get like succinct compression is a choice of whether the proof is is succinct right so you can kind of separate out these properties in the architecture as they result differently from different properties to the proof scheme um we also care specifically about zero knowledge proofs because we've taken this uh nullifier commitment to nullifier scheme originally introduced by zero cache and built what we think is an interesting approach to private bridging in particular we can use commitments and nullifiers to do a kind of Global double spend detection which is something that like IBC doesn't try to do so we investigated for a while building private bridges on top of IBC

and that turns out to be very difficult because when IVC sends tokens from one blockchain to another some state from one blockchain to another because it can't reason about the correctness of the state transitions which took place on the other chain it has to do a kind of Supply check at the boundary so if I'm chain a and you're chain B and I send you five tokens and you send me six tokens back I'll say wait no you can't send me six tokens back because I only sent you five tokens in the first place that's great but it requires that you can count the tokens right this violates privacy or privacy is sort of incompatible with this company I like to think this is the Border checkpoint of blockchains where like your privacy is always goes to zero whenever you leave a nation National Border in the example

you just gave though would like if you're going cross chain with both chains need to be built in the way that you're building it are you picturing kind of like two anomas or two Nevada's or something like two instances of your system communicating yes or at least part of it at least the kind of at least what we call Tyga which is like the Privacy preserving virtual machine so we do intend for this to be kind of available as a separate component so you could run tiger as an ethereum roll-up for example you could run it in part of a different security zone or as part of a different system and still take advantage of this private bridging function is there a way to implement some of this into like thinking of the IBC model of like putting I mean I don't

know what you call it actually but like the IBC like line or like some IBC module on a chain that isn't Cosmos native would you be able to do something like that for a Noma chains read or intent Centric chains where you'd basically be able to put some module or some like yeah something on the other chain that can then of course like start talking to it yeah that's the idea I mean the Restriction in at least the way we have designed private bridging in the system is that you can only get private bridging between different instances of the VM you know in our case tiger you could do something slightly different which accomplishes the same goal which understand each other's

State system enough to reason about commitments to nullifiers so the idea with commitments nullifiers is that you represent your state in these zero cache calls them notes but in these Atomic units and that these Atomic units are consumed only once when you consume them you reveal the nullifier so how we plan to implement private bridging in anoma involves merging nullifier sets So when you say send a transaction from A to B you do some stuff on B then you merge the history back into a we can avoid this intermediate border control sort of transparent balance check because we can check that we can check the full history privately but we can check that the zero knowledge proof the full history of all of those tokens back from all the way

when they came from a and we can check that there are no double spends in that history or no violations of linearity and that it requires standardization of more than what IBC standardizes right it requires standardization of this privacy preserving VM layer you know on top of that I mean tiger is is kind of relatively agnostic to like the languages in which you write or something you just need to be able to compile them circuits so on top of that you could have other VMS or other things going on but you do need to deal with your state in this way if that makes sense continuing on that topic of privacy actually had a question from before I think this like you were speaking about something earlier about kind of hinting it at a DEX or a ZK swap I think when you were talking about that

I I started to think you know a lot like two years ago tarun Guillermo you guys did a bunch of work I think Alex did a bunch of work around these private dexes and some of the challenges when you get into these intent-based systems is it a completely new landscape where we can start to really think about private swaps in a different way or are those problems that you would highlight and it's also to your turn a little bit but like do they still stand in a system like this the fact that you'd often have to reveal something in order for like a proper Marketplace or at least in the way that we've thought about it in the past yeah I'm not uh extensively familiar with that specific paper but I think in general intents don't you know intense

are a way of designing an architecture and a way of Designing in our case the virtual machine they don't break any uh you know a possibility results or whatever you need someone needs to see enough information to combine the intents right so that someone could be like someone inside an sgx right or it could be someone inside fhe although I still think we're many years away from that but some you know logical party needs to be able to see the intents and see at least the information about uh what the users want to trade so that they want to trade a for b um and B for a in order to match them yeah I don't I don't think this changes any of that in some sense this gets more complicated because it's like non-atomic

so like you're in fact more likely to have these privacy problems I think the key thing that people have accepted is that any financial transaction fundamentally I have some public data like a price and interest rate a fee and some private data if it at least like what people expect normally right like people aren't expecting to always be showing that they're making some transaction and the public data always has some information about the private data and the key is just like allowing the user to choose how much they make public and then they get a price based on how much they get they give publicly right because like obviously if they gave all of their information you could get the best

possible price but in reality it's kind of it it's it's like the user should be able to decide their trade-off between privacy and efficiency this is again why I brought up the efficiency thing earlier there's there's sort of like I feel like it is some part kind of fundamental to this type of stuff but I agree it's like it's not clear how to do it in a way that doesn't just like tell people don't make any application right well I would also I think there's like there's privacy and deficiency and security which is another tricky like in these cross-domain systems where you might have different security assumptions you also have to trade that sometimes against efficiency right

because you have to agree typically to a set of security assumptions in order to get out to the city um so yeah you know we don't we don't try to answer those questions in the architecture we try and like maybe at least make it clear what the trade-offs are and let users uh perhaps with the help of developers pick from them um I know I think the Privacy efficiency access is also interesting because you know there's some things that you can kind of get for free like you can hide you know your user account basically without losing any of the properties you might want but you can't hide you have to reveal like what it is that you have and what it is that you want in the intent Lego in order for someone to match that and then

the more you know if you have some kind of like distributed dark pool of solvers let's think of it like that like you have a bunch of people with private liquidity who don't post it to a central place then it's just it's very hard to reason about what kinds of um fairness guarantees you can get right on the other hand it seems like um you know many parts of field board systems might be working like this I think it might be it's an interesting problem to characterize I kind of want to redefine efficiency here too because like are you talking about like is this very specific to like Dex efficiency is this like market efficiency yeah I mean I I mean there's there's two types of efficiency right

one is just strictly price efficiency right that's more like clearing price also very hard to Define you can actually in some cases show there doesn't exist any market clearing prices depending on how the Market's structured so but there's also just some notion of like does our exist in equilibrium a such that you maximize people's batching and execution and even if there does exist one can you find it quickly or can anyone find it quickly and those are like three different you know I if you made the meme of you know the like the person and then the person with the brain and then the you know the like the that's in that order right like price efficiency is kind of the easiest one but it's obviously missing a lot of the clearing aspects

um but then yeah equilibrium finding equilibrium existence is easier than equilibrium finding that's the hardest part actually Chris's talk in New York had this example of this like fixed Point iteration finding intent now that's exactly the type of thing that like you might not be able to find the equilibrium for depending on that's what I thought it was a good example though of like it is one of these ones that like might just be impossible right yeah I mean one reason I like the concept uh personally although I promise after this episode I'll shut up about it but um is that it illuminates a little bit like the boundaries of what the systems can actually do so I think Sam a friend of mine Sam Hart had this great tweet

where he's like the thing about intense systems is that you assume that users know what they want right like uh you know maybe users sometimes don't know exactly what they want uh and I I think that that that's that's probably true but it also you know maybe it provides a helpful way to understand uh you know any kind of like distributed blockchain system can conceivably do right if he was a user don't know what you want but you commit to some specific preference anyways then you're definitely going to get something that you know wasn't what you wanted because you didn't even say what you wanted in the first place so I think that the illuminating the boundary can be helpful to illustrate what these systems just can't do I have like a weird idea here which I don't know if it would fit at

all but as you describe this I start to think like could we somehow in a system like this almost have like recommendations pop-up where you like or like could you add into an intense system things that people haven't actually asked for they've left sort of an open blank space that you could then like inject something into so an interesting like IRL example of this is like if you think of like food delivery apps oftentimes they'll send you notifications to be like hey we'll give you a 10 discount if you buy from this restaurant right now because someone is already ordering in the same region or building or whatever and that actually turns the constraint problem into like a better problem sometimes

like because it like makes your their revenue go up even though like but like their costs go down on a per unit basis right because like their costs per unit are a lot lower because I went to the same building right um but the revenue went up like oh interesting and so you're so like a lot of the optimization and Marketplace designed for like these peer-to-peer gig economy stuff is like exactly doing this Google flights is also exactly doing this yeah I just wanted to mention that I actually think a lot of the real world application examples of intent based systems are going to be a little bit more interactive than blockchains are right now I mean something like trade

token X for token Y and maybe get this specific efficiency guarantee can be made non-interactive because the preferences are like sufficiently exact but often in say Airbnb decentralized Airbnb centralized Uber things like this you kind of want a round of interactivity because you can't you want to like see the exact details of the thing before you confirm so for example when I book an Airbnb you could make a non-interactive Airbnb where you just specify I want to go to this city for these dates I want a place that has like these characteristics find me one and book it don't ask me for any more confirmation and Airbnb doesn't do that right and I think the reason is that people typically have these like sort of

approximate preferences and then they want to look at the actual options they want to look at the pictures of the place and see oh it looks nice or oh you know that looks like the room's too small stuff like this and I think that not you know with kind of tokens or you know uh very like clean abstract uh sort of objects on blockchains where you don't where you know the things are fungible or you don't really care about the specific properties you don't need this kind of interactivity but with uh you know trips and an Uber where you want to see how long the ride is as a driver before you confirm or with airbnbs where you want to see like the exact details of the place I suspect that you'll have like multiple rounds of interaction built into the system yeah I mean another way of thinking

about it is the if you think of it more as like a two-sided iterative game of like I place an intent that causes someone to have to try to service it which causes me to change my intention it's like hey I want to go on a trip to Europe and then the reply you get is like here are the five places that are cheapest from your city and then you're like okay I'm gonna choose this subset okay and then they're like okay here's the path you know here's your itinerary right and like you have this thing where like the user gives some very coarse thing yeah the Searcher gives something finer the user but it's sort of a way of making in theory at least Mev work for the user rather than against the user right and in some sense that's like does seem to

be a long-term Vision you know I maybe as a curmudgeonly theory lover just like always like I look at the formulations of these things I'm like ah everything is like impossible so it's sort of like one of them but you know I I definitely get the idea like it clearly it clearly is a thing people would like right they don't want to think about swapping they don't want to think about like signing 500 open C transactions um right right um well no I think the the you know people should be very skeptical of intense systems and sometimes yeah I see comments where I think people you know maybe people take intents to be to be magical or something like this like I'll just say like give me more money and the

system will do it right and uh that's you know that's not going to happen but those yeah yeah the ones where people like oh I'll just like ask it to make me money in the soccer I'm like I don't think it's like there is clearly some it needs to be this is why I said you have to you know efficiency has to include ability to find an equilibrium not just exist in equilibrium like that that's kind of like the Holy Grail Trin you just said something about like Mev and I like I don't think we've really talked about is there like do intense and Mev have any sort of crossover yeah so so I mean like one simple way of viewing it is right is like Mev is user says a very precise transaction than the Mev Searcher is like hey I'm going to like

optimize that and optimize my profit now imagine if there was something where the user said hey here's my transaction um you can you can service it but only up to some threshold right and argument is like in uniswap the slippage limits are like that right like if I set the perfect slippage limit the Searcher can't really establish attack me or do much but because I can't figure out what the optimal search slippage limit is someone can kind of front or me now in a world where you can have these verifiable commitments you could say like hey if you're going to use my transaction you have to prove to the blockchain that you didn't make the slippage more than x oh right it's not just it's not just like hey I said it

it's like anything action you do to include my transaction has some covenants or constraints on it but was that like described in the intent itself that is sort of the intent like I don't want to lose more than like X dollars right or like I don't want to be more than exos off the previous price in the bot right like and that's sort of this approximate thing it's not exactly saying the transaction but saying some rough version of it because it relies on the other party sort of these The Searchers kind of like optimizing that overall the order flow and so the idea is you're you're encouraging people Tim said strictly profit to profit under some constraints right like you're fine with them making some profit provided they meet your

constraints and hopefully there's enough volume and aggregate aggregation effect that they can actually do that Chris am I missing anything it is in my mind this is like Mev working for you like instead of the other way right uh no I think that's exactly right I mean you can another way to think about it maybe is that there's a spectrum from being kind of very loose about what constraints you impose upon operators solvers validators the other parties processing the intent to very specific and you can be specific about different things like one way of understanding an ethereum transaction is that it's an intent that says that it must be globally ordered with respect to all the other transactions in a block so

in a sense it's actually too specific like you're paying for this property Global ordering then most of the time you probably don't care about right like most you know if you're doing a trade you don't care about ordering with respect maybe to other assets if you're doing a purchase of an nft like you don't care about ordering with respect to someone else who purchased a different nft but the way you know understanding a transaction is a special case of an intent the property that the transaction is enforcing and that you're just like paying very dearly to have enforced for you is this Global ordering so in that case you maybe want to be less specific like you actually don't care about some of those orderings but you might want to be be more specific about what kinds of you know slippage

bounds anyone who includes and builds upon matches your intent has to respect or how your intent is processed with respect to other intents in a batch stuff like this so just kind of getting to more precise specifications for you know if we think like there's some kind of delegated agency going on right as a user you have an intent and you want the operators uh you know doing things in the system validating solving relaying messages on the peer-to-peer Network Etc you want them to do things which kind of like respect your intent and you can use uh you know various kinds of commitment devices um to kind of bind them to doing that in different ways I actually have one last question which is about sort of the state of intense architectures and like obviously I think we can talk

specifically about yours but like is it a finished idea is it mapped out through and through or do you feel like this is still like parts of it are understood and and you've built those parts but there's going to be you're going to kind of need some sort of like Market testing to figure out how to do the other parts or is it a complete architecture yeah I mean I think there are parts that are sort of clearly generalizable and protocolizable um and parts that are more application specific so like uh the gossip Network consensus and private State transitions stuff like this is you can do in a general way at least specific to like certain classes of applications you know

applications using single user private state or multi-user private state in different ways just require specific configurations of cryptographic Primitives regardless of what the exact computations they're performing are but then also to turin's point different solvers especially solvers where you want to or classes of intents where you want to reason about concrete efficiency of the solving algorithms require a different like yeah specific solvers there you can't do I mean you can try and you know the general version of this is something like Z3 or whatever but it's not going to be particularly efficient for many of the cases that you might care about so that will require some more Market Discovery and testing I mean I think I think a fair amount of this you could understand this already

existing in like ethereum Mev solvers which have gotten to do pretty General and impressive things flash loads like doing a bunch of State space execution searching um cow swap solvers stuff like that so many of those techniques I think will kind of Port over already or so to speak interesting do you think it'll be the Helix team building this or do you actually see this being more of a community effort I really see this as being a community effort I I don't think that we could build all of the solvers or applications and we certainly don't want to you know we also want to make things interoperable with ethereum and Cosmos assets and existing change and valid change and validator sets as

much as possible yeah so I mean you know let's say it's been I don't know how many years since live live or in 2018 five years or it was a 2019 five years five you say this right okay five years since it came out you know now there's kind of in 2023 been this flurry of like it became a meme people were like starting companies and projects based on the name how does it feel you know personally it to be the kind of the in the Limelight from this obviously Limelight in a very tiny demographic of people who pay attention to this don't get me right but it's still in the Limelight uh does it feel like sort of imitation is the best form of flattery like do you feel like it's cool that people are

finally like realizing this because I feel like it wasn't very popular last year um I think like in the world where people were like oh we're just gonna have like the people were like losing faith I guess in like the app chain slash roll up because those two Theses are basically the same nowadays people were like way more in the like monolithic world uh I would say last year and then it kind of flipped and when it flipped people like oh [ __ ] we need this um so yeah like how do you feel like kind of about that and kind of the increase in interest in this that's a good question um I just feel like I'm now under a lot of pressure like really good pressure from from people such as you tarun to

write down some math so that my like declarations about intense you know don't seem quite so philosophical and could be concretely falsified uh so that that part is nice I mean I think maybe an interesting question for me is I think people sometimes view like what the blockchain space is doing in different ways I think some people view the blockchain space as kind of like startup land where you sort of experiment with a lot of different ideas and you know what works is kind of a complex function of market conditions and how things are explained and it's not you know there's not like any clear convergence right uh but I think personally I understand the ecosystem is more of like a distributed research

field you know it's not not quite so um you know unified it's like subfields and academic Academia and it's more oriented around synthesis of like many things which already exist but I think it's very cool that you know icon that intends from this like thinking about language and philosophy and coordination problems angle not from the like bottom-up Mev angle but the bottom-up Mev angle sort of reflecting on these actual protocols which are already deployed in the world themes to point to a same direct to the same general direction so very cool you know for me it's a very cool convergence of these two ways of approaching like the design questions and blockchain systems the sort of like what are coordination systems doing perspective and this like well how do these actual systems evolve

according to how user users actually use them perspective kind of seem to point towards the same um you know at least like many different angles to a similar concept and I think that that's cool I mean I think it's helpful to Uma from succinct to put it I think it research day intents have gotten people who think about user experience and people who think about like abstract system architecture problems to talk to each other and these two people weren't previously like these groups of people weren't talking to each other and I think that kind of uh you know unification of different aspects of the discourse realizing that they were kind of viewing the same problem through different lenses and maybe they can now

collaborate uh is really cool and could lead to some good outcomes for users nice Chris thank you so much for coming on the show and sharing with us your sort of the history of intents you mean his intensity his intensity about intense oh dear um but yeah no thanks so much for sharing with us and like this is very helpful to give context to these ideas because I mean I've known about the Noma project since the its Inception but this idea of intense even though I think we've even had it in ads on the show I wasn't always clear on like where this is coming from or what exactly you mean by that and this has been really helpful to understand that thank you I hope it

was interesting and yeah tarun I uh we you know speaking here Sonoma we definitely owe you like some good mathematical characterizations of some of these problems um so hopefully hoping that we can provide those and answer some of the very good questions around like what are the bounds for different uh efficiency classes of intent Center complications I think that's a good one yeah for sure I I think I still think it is the right mental model though because I think it does get it this all the marketplaces that exist that people have apps for like do kind of do this right like you're never really saying like a precise thing it you just get matched to something and I think like inevitably

that any way of describing that makes sense it's just more a question of yeah like yeah what what does this look like in 10 years and it does feel like there is some like actual new research to come out of that so looking forward to it cool all right thanks again thank you and I want to say thank you to the podcast team Rachel Henrik Tanya and Jonas who edited this episode and to our listeners thanks for listening