How to Leverage Scalability and Privacy on Mainnet
LisCon 2021 · 20 Oct 2021 · 12:33
Zachary Williamson, known as Zac, co-founder and CEO of Aztec, gives a talk on using scalability and privacy on Ethereum mainnet at LisCon 2021 in Lisbon. Aztec is a privacy focused Ethereum layer 2.
Speakers
Topics
From LisCon 2021, hosted by LisCon.
Transcript
so hi everyone uh i'm i'm zach i'm the ceo of aztec and our gig is scalable privacy uh via raised ck roll up based lay 2 operating on ethereum and so i want to talk about how do we do private d5 cheaply without with our um connect architecture and how can you uh and the community kind of integrate with this to add privacy to native d5 protocols so just to set the stage a little bit here uh i think we all know that the the massive heath valley has created a minor issue that no one could apart from wales can afford to use ethereum these days and on top of that
assigned to see that uh the lack of privacy is starting to have more and more impact repercussions this is going to be a more of a long-term developing consequence of the of the transparency of blockchain but even today you have things like trades getting front run identities being sniped and analyzed and when it comes to scaling one of the key issues that we have is that layer 2's fragment liquidity because the current model for interacting with the layer 2 is that you have to port your protocol to the layer 2 and effectively clone it and that means that new liquidity pull different prices and it's a bit of a minefield to navigate and this is something that we're trying to solve so we're taking a bit of a different approach with aztecs layer 2
where instead of trying to get trying to convince d5 protocols to migrate to aztec and say hello fork on asset clone and asset blah blah blah we want to kind of deal with ethereum as it is and not how as we want it to be and effectively allow users to cheaply interact directly with layer 1 d5 and not uh creating a situation where you're splitting liquidity and on top of that we also want to make sure that user identities are private when they're doing these transactions so this is kind of the uh a basic overview of the aztec connect architecture the idea is it's defined aggregation using zika snarks so that if you and 100 other people on the aztec network want to perform a specific trade
like a unison ether die swap we will use zero knowledge proofs to aggregate all of your transactions together into one meta transaction and when our roll-up block gets mined on chain then that one transaction will be sent to uniswap and the returns from that will be disseminated to the individuals and proportions that they invested uh and also through the form of encrypted encrypted claims on the underlying uh die instead of so identities no identities are revealed to any in this transaction flow to anybody at all this is a slightly a fancy fancy graphic of how it works the idea is inside aztec connect users create zero knobs proofs that describe the transaction they want to do this protects our identities
and then once we have aggregated enough of these transactions to make them cheap we send them to the layer one smart contract and then the proceeds from that gets split and returned to the individual users and this allows for significant gas savings um without having the traditional compromises of having to do all of your activity inside the layer two and therefore kind of splitting in fragments and liquidity so these are just um this is our kind of estimations based off of some internal benchmarking of how much it'll cost to interact with these various d5 protocols through um through our architecture uh so i mean it's a simple one over x function but the idea is if you can get to a batch size of say 100 transactions then the the floor gas price for all of
these interactions is only 10 000 gas regardless of the actual original transaction is is over a million and so uh one of the things we want to do is kind of um unblock uh reward schemes because right now i think a lot of people are in a situation where it actually costs them more gas to claim rewards they've earned in a in a protocol than they'll actually get from you know from their reward token uh so this is the summary of how it works the idea is the values being transacted on chain they they have to be public because we're dealing with a public layer one we're dealing with the the architectures as they exist you know uh but the key thing is that the identities are hidden and this is what gives privacy because sure if you know that 100 ether is going into ave but you
don't know who's who is actually contributing to the 100 eth then as long as you have a relatively large anonymity set of eth inside aztec this will provide extremely high quality privacy uh and yeah effectively yeah the gas costs get socialized amortized across all users and so how does this actually work in practice well it's a permissionless architecture so we model layer one smart contracts as uh asynchronous token swaps the idea is that you get you put tokens in and at some later time you get tokens out uh the the exchange rates don't have to be known ahead of time they don't
uh and you can have multiple output asset types uh you can actually you can also have multiple input assets this interface is slightly out of date we'll be publishing our full docs imminently and we're confident that you can model pretty much any layer 1 smart contracts using this flow or more complicated flows can be can be simulated using synthetic tokens and one of the really valuable things about this is that it allows uh protocols to chain multiple transaction flows together so i don't know how many people how many people here are smart contract developers or critical political developers yeah like quite quite a few and so i don't know if you share this problem but
but uh when it comes to optimizing gas costs and making your transaction transactions to your protocol cheap the thought crosses my mind of you know wow it would be really really useful if i could control users contract wallets as in if i want them to do three independent transactions i can sequence that without them having to do three independent ethereum calls and that's kind of what you can do with without connect because everybody interacting with your protocol through aztec is interacting through a singular bridge contract which anybody can write you can write your communities can write and so effectively everybody's going through the same layer one kind of pseudo wallet so if you have a complicated flow like you know you want to deposit into curve and then withdraw withdrawals like withdraw
something from it and then put that into element finance you can do it all in a single transaction and then get all the costs amortized down by the aggregation techniques that we're using uh so this is just an example of like i need to die trade in the first roll-up block users will be creating these these zero-knowledge proofs which basically um they will be destroying eth that they own inside aztec um we'll be creating a claim on the output of the default interaction that is yet to occur uh what will then happen is that the asset roll-up contract via a an untrusted validator will aggregate all of these claim proofs together
and then when that rollup block gets uh hits mainnet the only information that's revealed is the total amount that's being sent to the bridge contract and the british contract in question so the identities are all gone by that point uh not even the roll-up provider the third party knows knows who the entities are and then once the interaction result is created so the swap happens the results get returned back into aztec and in the next rollup block then any untrusted validator node roll up nodes can uh compute the proof which will exchange that claim notes into the outputs uh dinote in the correct ratio depending on how much was deposited and how much dye was was exchanged from the trade um it's a completely it's completely
untrusted they have a proper motive to do this because they'll get paid for creating that proof i'm at no point yeah our user id is revealed it's completely private um as i said before it's a permissionless architecture so anybody can build these bridge contracts anybody can submit transactions to roll-up sequences we're launching uh ideally in december with a ring of validators we sometimes call enroller providers but our imminent plans are to also decentralize and open that up to the community and we also have an open source sdk so that anybody can build front ends build adapt that talk to aztec connect and these are some examples of some of the launch launch interactions that we're going to be uh supporting and so
i've talked a lot about how this tech allows layer 1 transactions to be cheap but what really we care about ourselves is going a little bit beyond the status quo you know not just chasing the current functionality of ethereum but scalable but trying to add to it and so uh we we believe that adding cheap privacy can adds a lot of new kinds of interactions with theory that don't exist at the moment things like genuinely blind auctions so you nobody when you're when you're creating a bid you don't know what other people are bidding or who is bidding so you can get genuinely fair price setting mechanisms uh additionally you can do private
anonymous voting so that uh you can have dowels or protocols where for contentious controversial votes people's votes are genuinely free they're not influenced by peer pressure or community pressure uh you could do things like time weighted trading so you know if you want to buy a large position uh slowly over time then uh people using chain analysis can't see what you're up to and then you know front run your trades will snipe you use as easily and also things like private subscription services so you can subscribe to you know a journal publication an ezine uh and um paid them regularly over time without anybody know it except the the service you're subscribing to knowing that you are the ones who are paying them
and yeah and obviously the the the lack of chain analytics means you can finally actually have private trading strategies on layer one uh without chain analytics um uh exposing everything you're doing so this is our road map uh so i feel like how are we gonna get there we're pretty close already we're planning on launching in december uh in march this year we launched uh as the first version of aztec and uh zk money which allows users to shield and unshield cryptocurrencies on chain and now we're enhancing that functionality by enabling aggregated defined interactions layer one interactions and the the kind of the the end goal of our technology of this the zk rollout tech is to
um enable fully programmable privacy on mainnet um which would enable a lot of the decentralized identity ideas that the the previous guys were talking about here um being able to conditionally reveal something about yourself to one other person on chain without anybody without anybody else knowing it about it or even to reveal something about yourself to a decentralized protocol they're not sharing that information with anyone so for example proving that you're on a whitelist um would be like a basic example so anyway that's um that's that's the talk uh happy to answer any questions we've got a bit of time left for that also my co-founder joe is at the back with aztec swag if anybody wants some t-shirts want some hoodies um so yeah thanks for listening um and yeah it's
been a pleasure cheers [Applause] thank you very much so we'll take one question hi uh you mentioned multiple row up providers how can someone become a robot provider you know so was that how can someone become a roller provider so in the short term uh we're going to be launching with just a small ring of um role providers they're going to be kind of semi-trusted so the main goal of it is to now ensure that um technical faults and errors
don't don't bring the network down but the the longer term the longer term plans are to provide a user staking mechanism effectively and then um taking advantage of ethereum's consensus to sequence develop providers and so in fact it'll just be like running a node and staking some capital against your ability to provide services and you'll get snatched if you're allocated to the block and you don't perform your job and provide a roll-up