ZKPodcast: Anoma’s Adrian Brink on Validity Predicates, Ferveo DKG & More
2 Jul 2021 · 52:06
Adrian Brink, co-founder of the Anoma Network, joins Zero Knowledge host Anna Rose to explain Anoma's privacy-centric approach to blockchain design. The conversation covers fractal scaling, the validity-predicate account model that underpins Anoma's architecture, and Ferveo, a threshold decryption scheme built to prevent front-running.
Speakers
Topics
Transcript
[Music] welcome to xero 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 i catch up with adrian brink one of the founders of enoma noma is a new protocol for multi-asset privacy and end party bartering we chat about his previous work in the space and then dive into the new project we talk about their aim to create a
system that allows any digital asset to function as a means of exchange or payment and what kind of projects or ideas a noma could enable before we start in i want to let you know about the next upcoming zk sessions event event happens on june 23rd and the topic will be all about dows nfts and novel funding mechanisms one of the goals is to find out if and how we may be able to incorporate privacy and zk ideas into these new systems i will also be hosting an interactive community discussion about how the zk community could potentially start using some of these tools event happens as mentioned on june 23rd i've added the link in the show notes and i hope to see you there next up i want to thank this week's
sponsor ey blockchain ey is committed to building a better working world on the public ethereum blockchain with robust privacy technologies technologies like zero knowledge proofs ey believes blockchain technology will be the glue that knits together a productive global business ecosystem to learn more about their products and services visit them at blockchain.ey.com or check out ey's open source contributions at github.com ey blockchain i've added both links in the show notes so thank you again ey for sponsoring the zero knowledge podcast now here is my interview with adrian [Music] so today i am talking with adrian brink
one of the founders of anoma which is a new protocol for multi-asset privacy and n party bartering welcome to the show adrian well thank you for having me so adrian you've been in the space for a while i think we've known each other for at least three years but at the same time this is actually the first time i have you on the show i believe that's true yes so before we start in on a noma let's do a little background on you where did you start in in blockchain i think we met at the first zk summit the first like back in 2018 so you're clearly there already yeah tell us where you started so i wrote my graduate thesis in computer science on e-voting on blockchains and this was at the time of the catalan
independence referendum and i'm personally a huge fan of independence movements but i thought it'd be neat if uh the catalan people can have a way to have censorship-resistant e-wording systems and i built it on ethereum at the time and of course any computer scientists listening right now will know e-voting is the thing that no one wants to touch in computer science because everyone believes it's completely insecure for some reason we put the financial system on computers but no one trusted enough to put voting systems on computers still funny to me um but yeah so i built this and as part of the research background research i came across sentiment uh tenement consensus actually dove into this and then i ended up joining cosmos as like the
third engineer third co-protocol engineer mostly because i had written jay that i know how to code and whether he needs any help building it because i thought it'd be it was a neat project it was early what what year are we talking this must have been like 2017 i think okay this is was the project already launched uh no this was just about the time of the fundraiser i think i joined like a week after the fundraiser from there built up the entire cosmos stack helped out there a lot afterwards we launched scripture labs as validator we are like one of the very first validators and this also had know my two current founders from our and chris um because we all work in costumes at the time so we build up crypto maps as our answer to no one knows how to run
these things no one knows how to run proof of stake and the people that build it are clearly the most qualified to also run it in practice uh so we sold that company earlier this year the course one but also turns out that validation is honestly not that interesting on the long run because it's mostly racking up servers and data centers and we always love doing research in protocol engineering so we ended up for pretty good two years being the second core dev team on tesla's shipping all major upgrades as while we were there so we scaled this to 15 people and we took everyone with us to work on a normal which we launched earlier this year you mentioned your two co-founders awa and chris alla has been on the on the show i think once during a combo episode
like which i did in an event it's a really short interview and chris goes definitely was on the show last year talking about ibc yeah chris is the lead author around the ibc protocol also worked on tenement consensus for a long time and custom through the stick system was it the three of you at kryptium or just you and our cryptium no it was just three of us oh it was okay so this is a long-standing founding team yeah now we've built at this point three companies i should also as an aside say the xero node validator is actually an investor in enoma but when we did that investment we were kind of an early stage investor you know i know since then there's been quite a bit of development and that's what i hope to jump into today with you so let's dive into this new protocol for
multi-asset privacy what in a nutshell is a noma so in a nutshell or noma is a protocol fundamentally designed differently than the existing smart content platforms like ethereum and also the existing chain slack theory uh like bitcoin for example a normal is fundamentally acid agnostic it doesn't care it doesn't have a specific base layer asset of course there's a proof of steak acid but you can for example pay transaction fees also in other assets that you bring onto the platform so anoma fundamentally makes the choice that the world is going to be interoperable uh we don't know necessarily about which protocols are but we have good ideas there
but assets will flow free of state machines and the noma is there to enable people to have multi-asset privacy for whatever assets they want to bring and to allow them to be traded in a very flexible manner which is derived from a protocol called the wyvern decks protocol which is backing the protocol behind openc by the way no one knows about the protocol because it doesn't chris wrote this a long time ago what's the name again can you say that the wyvern decks protocol why vandex protocol why van yeah wyvern decks okay cool cool we'll put that in the show notes for for interested listeners then yeah um and alts architecture just sonoma makes quite a few different choices so it's built around fast finality bft
it uses fractal scaling like we don't believe that there needs to be one value i said that rules all state machines i think this is very very unlikely to appear in practice anyway it seems very unlikely that we move world commerce into the ethereum valley has said no matter how scalable it is on a technical side it's just not how humans socially work we don't have a one-world government for the same reason and so on normal scales fractally that there can be many different instances and different geographies run by different people um but they all interoperate with each other and acids can flow within our noma as well as from anomaly to other systems and into a normal and you can just use these assets to privately pay someone to just shield your assets to make your own assets without transferring them private and it also allows you to have these
very complex state transitions where for example you want to trade a crypto kitty for a concert ticket in barcelona for some btc for some eth and you know normally you can atomically settle all of them and i think maybe the last thing here is also that we fundamentally believe that zero knowledge groups are going to be big and privacy is a fundamental human right so what people can do actually is deploy their own village predicates and those ability predicates can do a lot of things they can be whether this is they can be like for example new private bargaining circuit new private trading circuit a new privacy preserving transfer protocol but developers can write these and we're building a language called dubix which compiles down to zero knowledge proofs
which makes this very convenient uh so developers can deploy their own village predicates as well there's so much to go into in in everything you just said i'm sorry about that let's take one like one one thing that stood out to me here was the fractal scaling this idea of various ecosystems various blockchains this sounds a lot like the cosmos ideal and the this concept of like ibc and i know chris worked on that so i'm wondering like what is the connection in your mind between like the way you're thinking about this fractal scaling and what you were working on at cosmos and what chris was working on at ibc yeah so i mean chris is the lead architect on the ibc protocol um and ibc is a fantastic protocol i have
to say um i i think people don't really understand this but ibc isn't tied to cosmos ibc will work between nia and pocket yeah and uh no mind yeah it's just like a it's a bridging idea right isn't it isn't it sort of like a form of a bridge it's not a bridge in itself it's just a way to describe how data gets transferred between proof carrying data gets transferred between two blockchains and how it gets authenticated you can think of this more like tcp where it's just the protocol that describes how a packet from polka dot that's authenticated with the polkadot values that can be read and interpreted on the near side and vice versa it doesn't involve creating like clients on each of the chains
so that is a requirement for the protocol that you have efficient like clients okay you do have like lines yes so that's uh requirement in order to be able to instantiate the protocol you need to have efficient light glance on either side because otherwise the communication complexity blows up but yeah so norma doesn't take the view that it like a normal isn't a routing hub for assets uh mynoma is just a protocol where people can use their assets initially very much for privacy reasons so for multi-asset privacy or noma will be the very first solution i think in the world where you can have a unified privacy set between all assets right when you think about things like zcash and monero the reason why they have a really hard time getting traction is because
while they provide privacy they tie it into like a very specific asset and like i don't want to pay for coffee in zech or narrow tokens although apparently there are places that are accepting that yes thing where like room 77 in berlin was accepting bitcoin for burgers uh it's like a weird novelty but it's not going to get be the thing that gains traction so with our normal you get for the first time multi-asset privacy where to an external observer it's indistinguishable whether you're buying coffee using usdt or selling your house 400 million dollars so all assets have the same privacy guarantees and you can sort of think of the multi-asset chill pool which does this as an extension to
sapling right where sapling shields uh send our recipient an amount the multi-asset pool also shields asset identifier like is there actual computational stuff is it more than just transactions that are happening in this privacy setting what i mean is like is there private computation is there some sort of like more than just account balance changes is there something else the multi-acid child pool is just one specific validity predicate in our noma so that can be many more you can deploy others that do more private computation but the multi-asset chiller pool specifically doesn't do private computation it just does proof checking that account balances that like you aren't inflating tokens let's talk a little bit about its
connection to sapling because there's some you're using part of sapling in your construction of this right yes so this is an extension of sapling sapling is great there's no reason to throw a sapling i don't understand why a lot of the privacy tech that tries to do this on ethereum doesn't do this um but like sapling has amazing features like viewing keys and um spending keys and so on like so i'm a big fan of zapping so this is an extension to sapling got it but did you redeploy it then like is the idea that you're gonna take that code and redo it you're not actually connecting to the existing live sapling on zcash oh no not at all we're just using the code and the code is being redeployed uh so the extended code the multi-asset chill pool
was being redeployed this also means that we have to do a new trusted setup which before we're going to start something in the summer depending on where the research goes we also may do like a plonk p lookup process set up at the same time so that we get a universal um proof string so because one of the ideas behind enoma is that people write can are able to write their own zero knowledge circuits uh using juvex and it's very inconvenient to deploy a zero knowledge proof application if you have to do a radio trusted setup every time agreed so hopefully we can get around this with plookup and then people can just write private applications and deploy them directly if anyone wants to learn more about trusted setups last year i did like a series of episodes all about all of the trusted setups that have happened
so far and i think since then there's at least plumo which i actually work on and help out the team with so that's another trusted setup if ever anyone wants to try one of these out they're kind of annoying but also kind of awesome because you're like deep in the tech you're like actually contributing to real privacy uh honestly i think the biggest thing with uh private setups is mostly that you want a large number of disjoint participants and that you ideally don't want to have to redo them so if you can honestly get like an efficient universal trusted setup it'd be very convenient totally let's go into the bartering system this idea of i think you you hinted at it in the
in the intro to anoma but like you talked about different assets so bartering that idea of like trading the the milk for the flower like object for object but with no dollar in between tell me a little bit about what that looks like yeah so this is very hard to build in other imperative kind of systems um like the evm for example because the account model isn't structured the right way but without noma the way the account model is constructed is that all changes to the state are happening first so there are the state changes are applied first and then all involved accounts uh simply get the resulting state and can verify whether they're okay with it
or not and then they say yes no the state changes which makes the computation for to do state changes to lots and lots of accounts very very efficient because you can do all the sort of verification of the state changes in each account fully in parallel okay uh because they're not dependent on each other right like when you think about this in a traditional system uh you have this like step-by-step execution we sort of go like well contract one execute does some execution steps and then calls contract two that does some you know norma this all just happens all state changes first and then everyone gets called whether they're okay with the resulting state this allows us to build an incredibly flexible and party bartering system and what i mean here with end party bartering is the example for example is
uh let's say alice has some btc and wants ease bob has eve and one's i don't know dots uh and charlie has dots and once bdc traditionally there's no way to settle all three desires at the same time and recalling them intense so there's no way to settle all three intense at the same time but with our noma we can just take all three of them and settle them directly thereby removing the need to have one liquid pair that everyone connects to right like traditionally the way this is solved is everyone just like has a liquid pair against usdt and when you want to do this kind of three-party trade you all go by usct to settle this i have a question here about prices and like how you define this stuff like are you deeply connected
like do you have an oracle are you pegging this to something um right so this comes to the way acids flow into a normal are normal fundamentally interoperable so assets flow via ibc or some other interoperability protocol it really doesn't actually matter what the interoperability protocol are so now you have an asset in our noma and then you just define at what price like for your individual intent you're willing to settle this or to trade it and then there's a role called matchmaker that looks at all the hundreds of thousands of intents flowing through the system and sees which ones can be combined together and settle on chain is there a base currency then is there like a base
value that you can peg this to no this is not packed at all like when you think about when i'm submitting my intent i have btc and i want eth i'm saying i'm willing to trade at this price of better and someone else may say that really trade e for btc at this price or better and then these intents are starting to flow through the system and a matchmaker will look at them and go like well these two are compatible let me combine them and settle them on chain that's one to one though that's like be eighth btc btc eath but like when you talk about bartering and like including these other assets and you're bundling them how do you assume the value right this is why i also like the fact that i'm undefining money we don't need this form of base currency so if you have the intent btc for eve
that has some exchange rate effectively attached to it that the user sets and then you have another intent that says eth4 dots that also has an exchange rate and a third intent that says dots for btc so everyone has their own defined exchange rate effectively at which point they're willing to trade and so if you see three of them uh you don't have to sell them one by one you can just say well settling all three of them at the same time gives everyone what they want at a price that's equal or better than what they said they were willing to take and the best part here is this doesn't stop at three this goes to you can be a thousand people you can be trading the most random assets like you can be trading local currencies you can be trading commitments to climate change
you can be trading like co2 certificates because they don't need to be tied into like underlying base currency this is an incredibly generalized system that allows people to do business with other people effectively i know that like in a previous episode we did with martin kuppelmann from gnosis we talked about this concept of coincidence of wants because they have this cow protocol and i when i was going through noma i mentioned i saw that you mentioned you don't follow that model it's not coincidence of wants that you're using no it's so i i don't know how gnosis uses this but we just don't rely on the fact that two people have to have exactly the same coincidence of once it can be three or n people that collectively have an overlapping
set of like where they all coincide in terms of what intents they have yeah in traditional market this is always two-way that you like if i want to trade a chicken for a cow i have to find someone that has exactly the inverse uh without norma you don't you can find sort of a group of people that collectively settles everyone's desires but what if like what if i wanted to unload a terrible terrible dog coin and nobody wants it what happens then you will never get settled like if no one ever wants to buy the thing yourself okay so like you can put it there but no one's gonna ever take you up on it exactly okay maybe also i guess a note on the architecture here then so
in a normal there are hundreds of millions of intents possibly flowing through a system but they never get settled on chain only those that actually have get matched with other intents get settled on chain uh which means that for example like the way a market maker would operate is they probably quote a new price every half second or so and they just sent them as intense so keep updating their latest viable price and then someone can pick it up and oh i like this i like the price you're currently quoting i'll settle this on chain do you like as as sort of a person offering you you're kind of you want to participate in this do you offer two things like what you want and what you're giving or do you offer
what you're giving and what like a selection of things you would accept back you can do both this is completely up to you you can because you can think of intents like a function that just says what state transitions you're willing to accept so you can say i'm willing to accept two tickets and but for imagine dragon concert in barcelona or three blue crypto punks or a btc or a combination of all of them but it's up to you so when you write your intent you say you write a acceptance function that says i'm willing to accept and in the function you justify what you're willing to accept cool which means the cool thing is this goes way beyond trading it means that you can start having things like uh we
collectively agree to uh and only if let's say a certain percentage of the network agrees to with one percent of our transaction fees commit to sequestering co2 from the atmosphere for example um so you can do these very generalized collective commitments is what we're calling them are those like the thing is that like taking carbon out of the ecosystem that would be some like i know that there's a protocol that actually does that i think in the cosmos ecosystem where like oh region yeah they do differently though they like try to map over they try to identify who's doing well in terms of environmental damage oh i see okay okay but so say there were these like credits you'd still need like a second entity to issue those somehow and
those would maybe be nfts like i'm trying to picture what that example looks like a normal doesn't do asset issuance i mean you could if you wanted to but this is really not what the protocol is good at things like ethereum are great at asset issuance and our noma just provides the ability once you have these assets to effectively come to agreement over them to come to agreement with using these assets like co2 sequestering is far away really and we need a bunch of infrastructure more supply chains need to be on blockchains this data needs to be available we need better oracle systems yeah but it could eventually maybe be in it oh absolutely like eventually this okay we go like once we this is the goal the global economy
on hundreds of millions of different blockchains and data can flow freely between them uh we can design amazing computation to like incentivize the right behaviors for people does it sort of fall into the category of a dex like do you think of it like in that space or is it something else so if you wanted to think of this very simply in terms of early things that you can do with a noma ad launch you can for one think of this as a mixer kind of like an inter chain mixer almost because you can uh get perfect privacy for all connected assets uh without having to transfer them right the multi-asset tube will also just provide them if you transfer them to yourself and secondly you can kind of think of this like a dex but not really
like the dex is like the simplest of applications that can be built on honomar so like you can build a decks on a noma and the protocol supports this fully but long term this is much more than just the tax like this is a way to come to agreement over arbitrary state transition functions um rather than just like i want to trade a bitcoin got it is it based on and maybe you already mentioned this but is it is it a proof-of-stake protocol in itself does it have a validator group yes a normal spoof of stick and it's based on tendermint i guess so not the proof-of-stake system um so it uses tendermint consensus okay i'll bite we're probably going to swap this after launch at some point either the honey badger or heterogeneous taxes
but yeah so um it's not built on any of the existing stacks uh this is all written from scratch i just happened to use tenement consensus because honestly tenement is a fantastic consensus algorithm and i still think it's stupid that everyone's trying to reinvent consensus um like you're not gaining that much in 2017 we had a weird time where like you could erase when you consensus algorithms very strange but so you will have you're going to have a validator community like is this validator community a full-fledged like decentralized like is is that part of it very decentralized or do you have any sort of like smaller groups that are kind of born out of that uh no so noma is a full base layer it's a layer one there is a valdez set
of probably 100 or more people that runs a decentralized protocol via normal protocol they may also run matchmakers and other book operators at the same time but it's a fundamental base layer running a proof stick system in order to provide a like private digital asset agnostic cache and end party battering to anyone that wants to use it got it the reason i'm kind of asking is like i recently completed a series a spontaneous series of l2 episodes and i recently was thinking like who isn't in l2 so i was wondering if you maybe would eventually sort of you know alter this validation to not just be a validator on a base chain but also some sort of like connection point um yeah i mean i have fairly strong opinions on
like l2s and how they make like the thing is pretty much everything is like these things will just be connected to each other currently we live in this world where everyone is trying to build their own world god right like the cosmos people are trying to build their own world garden if hearing people are trying to build their own wall god and the popular people are trying to do exactly the same and everyone says interoperability yes but only within my world god and it's sort of like aol in the early days of the internet saying my interoperability is by far the best in my own world garden and i think this makes absolutely no sense long term long term you're just going to have probably thousands if not hundreds of thousands of blockchains that all just freely communicate with each other um because they're all going to build
around modern fast finality bft and then the distinction between what is an l2 and what is a l1 that just can connect to other things is becoming very thin really very blurred totally so my opinion l2s are taking all the disadvantages of building on top of an existing system so you're inheriting a lot of the engineering deficits but in terms of usability you're gaining very little over just being an interoperable l1 so i think that over time a lot of things will become just like independent ones i feel like there is more and more there's this question of like we know that l2s and other l1s bridge to other l1s are actually different and they they do offer different pricing they offer different
capabilities but they're kind of trying to solve similar problems so it's not completely clear yet if one of these models is necessarily going to win i think the main thing is that people really think at the moment that like you either win or you lose but i think the general pie that we're looking at is like way larger than most people can imagine and it's like not going to be does ethereum win against bitcoin it's going to be well we can all coexist because we all have unique offerings and like on the l2 side to me in l2 the main thing is that you're giving up that you deriving security from some l1 so you don't have your own security and early on people always assumed that no one was going to be willing to move
their eth for example into a different l1 because all of a sudden you have a totally different security model but i think that most people really don't care because most l ones just have very good security so the advantages to being like an l2 that's tied into having to like put up state routes in ethereum there are a lot of disadvantages because engineering freedom just goes down by a lot and i'm not sure that the user base will care because from a ux perspective whether you move into an l2 on top of ethereum or into a different l1 it's going to be the same you're going to go via some bridge hmm i want to go back to privacy and we did already talk a little bit about using sapling that a lot of this stuff would be
private but i kind of want to revisit now that we understand a little bit more how the bartering system works and all of that how does the privacy actually work like is it just this is all happening in a shielded way or is there like parts that are very private and parts that are not i know this has always been a question about when you're doing sort of asset transferring like you may not be able to have perfect privacy on every level so i'm curious about like where is the privacy exactly yeah so it depends on which validity predicate account you're using right like the multi-asset chill pool is just one of many validity predicates that can exist okay so with the multi-asset chill pool you're gaining pretty much perfect transfer privacy or mixing privacy what
whichever way you want to look at this but for example for trading we are currently writing trade private trading circuits as well uh where maybe some of the information is hidden but others is public which you need in order to discover counterparties over time people can deploy more and more different validity predicates that have different privacy guarantees maybe or that may not even be privacy preserving because they want to solve some other thing that they want to have like an automatic market maker as a validity this works too like you don't have to have privacy like these adjustability predicates that users get to interact with of course we have an intent gossip system where people say well i'd like to for example um trade a bitcoin funnel for example and there the question becomes how much are people revealing
before that trade gets settled and i think honestly over the long run the way this will work is that most traits happen physically like most actual commas happens physically and so the way you do it is that you don't announce to the world that you're willing to like that i'm willing to buy like a bitcoin from you but rather that we communicate and agree on prices automatically but look over a local network connection and then just end up settling it and at that point you can just fully privately settle this even so you start having private subnets effectively where you may not announce all your intents or maybe only as you advance further in the automatic negotiation do you start revealing more and more information but not to everyone just at a point-to-point level at that point is that kind of like a private otc then
that's what that sounds like a little bit i guess you could look at it this way that's a fair point but so you use this term validity predicate and then you say one example of a validity predicate is the bartering like the basically the multi-asset shielded so you sort of mentioned another validity predicate would be like an amm construction or a more like maybe an order order book based dex or something like this or maybe fix that then what what is because like i think just the terminology of that isn't completely clear to me like what what goes under that category yeah so validity predicate is every account in the system is associated with a validity predicate so for example when you hold like the native asset xan on anoma uh you hold it in an account and your
account has a validity predicate attached to it and this validity predicate in its very simplest form may say you need to have spent authorization from a private key in order to move this but then you can also start upgrading them and say well if i move under 100 then i can sort of sign this with this key and if i need if i want to move a million dollars i need to sign with three different keys but these are not the snarks right these are not like the snark is with it the proof no exactly so the verifier for example you could also say that you wanted to have some like your validity predicate should only accept a specific proof and then what you deploy as your own validity predicate is a verifier
for that proof this is the way the multi-asset chill pool's implemented the verifier for the proof of the multi-asset chill pool is deployed as an account on a normal and so whenever you want to like send an asset via the multi-asset cheap pool you submit a proof to that village to that account which then verifies it and says yes or no which means there can be many multi-asset chill pools for example and we can like seamlessly upgrade them as well because you can have like multi-asset chill pool 2 multi-asset shield pool three acceptability predicates in the system in that case so could you have a validity predicate model where there is no privacy using enoma absolutely so it's not it's not forced the privacy is more like in the example in this
first validity predicate that you're working on that's one of the key things exactly yeah got it for example also um maybe this is more clear like the way bitcoin is bridged into a noma is that oh bitcoin is hard because none of the efficient likelihood but let's say uh pocket is written to normal because they have an efficient life change the dot token is just its own validity predicate its own account in the system and the dot account in the system has a validity predicate that can verify a like-line proof from polkadot and verifies whenever you want to send like a dot between two accounts and i know that like the supply is preserved for example got it is there anywhere else where you are working or including privacy
in the enoma stack so yes um all right maybe not necessary long-term privacy but at least short-term privacy which you need for frontline prevention so we're also building a protocol called furvio which is a distributed key generation protocol which effectively means that the value set over noma jointly constructs a public key and every valve there locally has a key chair that they can use to decrypt with their shot and once you combine enough decryption shares you get the end result which is a decrypted transaction so when you submit a transaction on other systems what happens is that you're giving up information uh like a blog proposal someone watching the mempool has an asymmetric information advantage
over you because for example you may have said i am willing to trade this asset this is now public before it gets included in the block right before it's finalized in a block so what happens to noma is that users encrypt transactions against this common shared public key of the validator set and then in blocks blocks only order encrypted transactions so as a value as a blog proposal i see a bunch of encrypted transactions and i go like well they all can pay for fees let me put them into a block and then a block but i have no idea what these transactions do and then in the next block in block n plus one the validation jointly decrypts all those encrypted transactions and then do they then they get executed meaning that no one can front run you
but they're already queued up i guess like the queueing part the part where you're putting them towards being in the block it's unclear what's in it therefore you can't have this minor extractable value mev flashbots scenario where where miners are basically getting in front of it yeah by the time by the time you see what a transaction does it's already ordered and you can't retractively change the ordering anymore or inject like your own transactions but like i'm i'm thinking of it like a queue but maybe it's not exactly like that is it like at what stage is the actual stuff encrypted before it's decryption at what stage does it get included like is it is it still encrypted when it gets included or is it like at the moment of
inclusion this is what i'm trying to figure out uh think about this let's say right um so there's the values at the anomala network a shared public key is known because of values it generates them every 24 hours or so so as a user i want to send a transaction not even an intent i just directly want to move some tokens from account a to account b i as a user i construct this transaction and i encrypt it against the public key before i submit this to any full node and then i submit an encrypted transaction to a full node which puts it in the mempool which only says well this thing can pay fees right now because that information is still available but it doesn't see at all what the transaction does got it then let's say we had block 10 right now so this is in the mempool
the block proposal for block 10 goes well i have a bunch of encrypted transactions here and let me just put them all in a block then the values it comes to agreement so reaches bft agreement on it and says well block 10 is now finalized and it includes these encrypted transactions and then as soon as this is in a block validators that follow the protocol rules have to start submitting decryption shares for these transactions to each other and then in block n plus one the next block proposal will include all the decryption shares oh nothing decrypted shares they will just like use all the decryption chairs and include the decrypted transactions but not for ordering but rather for execution
like isn't new cipher's whole thing distributed key generation i feel like it is but i don't know if it's ever been used in this context um it's different they so new sapphire i think allows you to generate keys that are held by multiple parties but more with the use case of being able to hold like a bitcoin key okay that's shared between a lot of parties with favio in a normal this isn't that model it's because the purpose is that the decryption thresholds follow the bft thresholds right you need two thirds honest majority for bft and you have the same requirement for the decryption part which means that not in any individual
validator can like front run the system but it does it does sound a lot like the work that i know dev and sunny are doing at osmosis are you working like this is a connection on the protocol the reason i say like actually pretty recently we did an event with the cosmos ecosystem highlighting some of the privacy related projects that are there i'll add a link to also there like to dev's talk there because there there's some visuals that kind of illustrate some of this as well at what stage is this like is this a protocol on paper is this a oh this is fully implemented cool okay so this is already like this is something that like you have seen engineered and like this is actually working yeah this is like not
theoretical because me work in five years it's like no this works right now and this just needs to get introduced into a base layer uh the problem is this is almost impossible to retrofit into existing base layers because it fundamentally changes the way execution flow works yeah which is also one of the other reasons why with a noma like there was it was never really an option even if i had liked other ecosystems like build this on top of another layer one because fundamentally the way we structure transaction execution uh transaction submission all the gossiping part it just it's not retrofittable into existing base layers it's like fundamentally a different architectural choice that allows us to build very different applications
but couldn't like an existing pos system do like a major upgrade where they incorporate something like this of course every pos system can become any other pos system there's nothing stopping us true because it's all open source um although validators might not love it and all of the tooling might not work it's like the same way like yes google can become facebook that is true um like the technology isn't rocket science uh but most people don't do it because you have to maintain legacy and like your community may not like it that much is there i mean is there any work like this being done for proof of work systems because i mean we're thinking of this as like validators building this so this doesn't work for proof of work um because fundamentally
improve work you don't know who the miners are like up front like in proof of stake we have a list of these are all the public keys that are the validators and we need this because every value needs to generate private key shots yes um this is a very proof of stake solution this is also like why proof of work i think will exist for like very simple applications for a long time um because it's like it's interesting i think bitcoin is cool in the sense that we have a global stable clock for example that's hard to bias but like the innovations are going to come in proof of stake because the protocols are more flexible so one thing about fairview is it also provides really secure randomness um in the sense that it doesn't require vdf
pdfs with like special heart which we use unbiasable randomness but out of running this distributed key generation protocol you also get secure randomness um which you currently aren't using in it just the way that it works in the cryptographic protocol just also gives you this cool um so look we don't currently have an epic i don't have an application in mind yet to build on a normal that uses this uh but it is available nice that's that's very useful i wonder if you could use that back into something that's like at the core um yeah i mean other consensus algorithms like use randomness to select validators i'm not a big fan of it okay so it won't be it won't be that maybe like later on you can use this also in like the proof of stake system and the
consensus mechanism i know that at some point in the last half hour or so you mentioned intent gossip i kind of want to bring that back up and talk about that in this context of like the bartering system and all of these like multiple pools because gossip as we've understood is sort of like message passing right it's sending a message out and having it be repeated but how does it work in this system is it is it different yes well okay let me explain some of the uh the way the intent gossip system works so it's a matchmaking system so you know normal people can't just only submit transactions that directly hit the chain but they can also submit intense
things that they need to coordinate with other people effectively this may be a trade or an agreement to like try to fight climate change to like incorporate because of carbon it's arbitrary what they can do what intense people can submit um and the way these intents work is that they float around in a gossip system for these intents um before they get settled on chain and then people look at them and there's a there's incentive there for people to match different intents that can be met that are matchable with each other this also comes in really handy though given the upgrade system that i know my users so noma upgrades fractal so it scales fractionally and it upgrades correctly meaning that we don't have these binary switchers that all existing systems have
and that really suck in my opinion because in a binary upgrade system your software either like today the new software comes active and controls 100 million but you have no testing outside of like test environments but there was no like slow ramping up of value being tested on the new protocol version right without noma the way anomaly upgrades is that you deploy a new protocol version anyone can deploy a new protocol version and over time assets can slowly migrate into the new version right because fractal instances are interoperable with each other so from the main ledger you launch prototype 2 slowly assets migrate if a lot of assets migrate then you can do the final binary switch over where you
migrate all the remaining state with you right so this is how our normal upgrades but the intent gossip system works globally over all instances even if it's previous versions even if it's previous or future versions does that mean like trades can actually happen across that as well yes trades can also happen between instances between fractal instances which means you have like liquidity between because otherwise you have the problem that like your liquidity is fundamentally tied to your fractal instance so the upgrades almost always have to be binary in that case but in normal you can you don't enforce into this you just get one global gossip layer for all instances i think i forgot to ask this but like we talked a little bit about the like
clients but are all of the instances running like clients is that how you'd kind of imagine it or uh yes like they connect to each other via currently most likely ibc because it's honestly like an acid agnostic protocol that just works well but honestly i'm struggling with this a little bit with i i think the way people currently think about these systems is like oh interoperability protocols are specifically tied to existing things and that's like entirely not the point of interoperability protocols that i meant to uh neutrally connect things um so a normal will support whatever interoperability protocols come out if they're better protocols like udp for example a different
protocol from the internet stack if that comes out in two years and almost happy to support it because we just care about using well designed well specified interpretability protocols and yes effective factor instances also connect via the same interpretability protocols can fractal instances also be different types of blockchains like could there be a utxo one an account model one is there is there like variations on these or did they have to have at least some baseline consistency so the unknown protocol can probably change quite fundamentally but i don't think it could change to you to explore a different account model because a lot of the like order execute like transaction execution flow
and the way privacy works is just tied to this account model like this very generalized account model also i don't see a reason why you would want to do this okay future excel seems clearly worse um same for like the existing account models with imperative execution okay so let's let's talk then about different types of account models and is anoma built like ethereum first off there are accounts that say this way um but like something like near or even pocketed is much closer to ethereum than on normales um all these systems have accounts and like for example the way smart contracts are near work is also it's like this imperative execution right like you invoke a smart contract you invoke an account with code in nia and it sort of starts the first
instruction goes to a second goes to a third maybe tries to call a smart contract maybe this is a synchronous or asynchronous call but it's fundamentally top to bottom uh what happens on noma is more that the state changes are computed first and then they're passed into all validity predicates at the same time and these validity predicates really don't do computation in that sense they do verification whether they are happy with the state changes so they sort of go they don't go let me call next contract let me then do five plus five they go this is the resulting state am i happy with this like am i happy that i lost a bitcoin and received 10if that's sort of the model and there's this validity predicate that's submitted
alongside each is it in each account or is it in every account has a validity predicate okay is that submitted or is that the verification side of things that's what's used for verification so when someone creates an account uh like when an income is created a validity predicate has to be attached to that account and then that validity predicate can do verification like is invoked when that account is invoked as well how does the ethereum one work then that one's more like writing so an ethereum i call an account and then you also invoke the smart contract the code in the account right but the code more goes like it doesn't see the resulting state it just tries to like do five plus five call separate contract
uh move a token somewhere like it does imperative computation whereas in a normal it's more of a functional system to some extent like you can think of this kind of like ethereum is imperative and the normal is more functional in terms of how the accounts work so at what stage are wheat is the inoma project today are we talking it's on test net it's still like modules that are kind of like being put together is it incentivized like where where are we at yeah so maybe one important note here to start off with is uh a normal is pretty far along uh this is like not a research kind of idea where we trying to figure out whether this works in practice or not all the research is
done and it works and it's mostly focused on implementation at this point so we are currently running the first internal test nets hopefully we are starting to have public test nets in the next four weeks or so it's like the first public test nets and then probably incentivize test nets later this year as the stack gets more and more testing um yeah this is where we are timing wise what do you imagine like maybe it's too early to say this but do you imagine sort of a first use case that you're gonna highlight or work towards yeah i think one of the first use cases is certainly going to be this multi-asset chill pool and just giving people incredibly good privacy guarantees irrespective of what asset they hold i think really people underestimate this
this is kind of completely impossible to do in our space like if you have a cryptocurrency you want to shield your cryptokitty that just doesn't work um it's impossible without noma your cryptokitty can live in the exactly the same privacy set as like your usdt coffee payments so i think that's actually going to be one of the first use cases providing people really really good privacy no matter what the assets they hold and then later use cases i i can see a number of things appearing whether this is around trading or on amends and i think actually around private bartering a lot uh i think just being able to write more validity predicates and like more private circuits i have one little like i'm gonna take one step back for one sec because you're the cryptokitty
example just made me think of a question if it lives if it's an ethereum based crypto kitty does it get locked somehow in ethereum in order to enter enoma or is that kind of how it would work yeah i mean this is how bridges work generally right that the way you move an asset across a bridge is that you lock it against the valdez set off the receiving site they then meant it for you and then if someone the nice thing is if anyone else wants to go back they can also and the values have just you burn it on your normal side and the balder set unlocks it on the ethereum side um i i think at some point we should do like a whole episode around how bridging works for sure that is actually so on the docket like bridging as a topic has come up so often over the
last little while i can give you a sneak peek there yeah i don't think bridging makes a lot of money oh how do you know that because like bridging a nomad to nia it's like there's no work involved it's like you just send a bunch of data that exists and both change to each other like no one is going to charge a one percent fee to move an asset from a number one to near uh for legacy changes may be different so like for bitcoin eth monero zika nfts maybe depends where the nfps live so if the nfts live on ethereum maybe yeah but if they live on near like moving data between the end of normal it's trivial okay yeah this is a topic we're at the end of the episode so we won't be able to cover it this time but it is coming
this this is really it's good to highlight it now cool okay so listen adrian thank you so much for coming on the show and sharing all of this work and thinking around a noma and the project can people already get involved learn about it go somewhere where should they go uh yeah absolutely so a nomad.network is the first place to stop we have the research block up there's a lot of the underlying tech is explained in it and we're releasing more and more explanations for how the all the stack works uh there's the white paper as well uh which explains anoma in a very comprehensive way i'm a big fan it's not that long it's like eight pages yeah um it's a bit longer than that i think it was 14 pages i recently looked at it maybe maybe maybe 14. anyway don't tell
them get the book test um and yeah so we're always looking for good engineers if you're interested in privacy bring privacy to the masses and bring privacy to all assets um really judge me you can reach me adrian at normal.network you can also find us on twitter on the normal network yeah and i mean public testings are coming so join the discord um they're going to come in the next four weeks or so so looking forward to it very cool so thanks again adrian for coming on the show thank you for having me i also want to say thank you to the podcast producer andre the podcast editor henrik and to our listeners thanks for listening you