 Hi everyone, my name is Ivan, and I'm going to do a quick overview of how to build an IKEA mixer with the specific focus on building one that is completely anonymous and does not require human interaction or human subsidies. So if you look at the state of DAFs right now, many of them are not 100% decentralized. They tend to require either a price key or maybe a relayer that's subsidized by some company. Maybe one exception would be Uniswap that exists on chain and requires pretty much no interaction. And so let's see how close we can get to that gold standard. So first off, there's a few mixing technologies that exist these days. The first one is CoinJoin that's what's used in Bitcoin, specifically, for example, in the Wasabi wallet, and it's also used in Mimble, Wimble, and Grim if you've been following that project. Then there's decoy-based, which is used in Monero, and finally there's a year-old vertical-tree-based verticals, the best number one is Ccash, and there's a few IKEA mixers built on top of that, that vertical as well, including MISIMO's stand-turned-out-cash. So CoinOverview of all three, CoinJoin is basically a set of two people doing two different transactions. They come together for the purposes of helping each other be anonymous, and they merge that into one single transaction. So for example, here if Ten is a drug dealer and Bob and Alice use CoinJoin, it's impossible to know whether Alice or Bob paid the drug dealer, so they kind of give each other this possible deniability. The problem with that is your anonymity set is very low. If there's maybe five people doing the CoinJoin, then there's five people helping you be slightly more anonymous, but that's not quite good enough. Then the next thing is the decoy-based privacy, which is used in Monero. The idea is you can use any on-chain UTXO and pretend that that could have been your input, so basically every transaction has maybe 10 to 15 sources. Only one of them is real. The rest of them could not even know that they've been used in the anonymization, so that's quite a lot better. And then there's a separate technique for hiding the amounts behind those transactions where you do bit-by-bit encoding. But decoy protocols have suffered from a bunch of attacks before. Long story short, there's risks of repeated interactions, so if the same person pays the same drug dealer a few times in a row, there's going to be multiple paths in the transaction graph from that person to the drug dealer. That's pretty bad. Point being, kind of by a process of elimination, we arrive at zero-knowledge Merkle-tree-based mixers as the only way to achieve maximum anonymity. And here the idea is there's a shielded pool that keeps all the money that wants to participate in the anonymization, and no one knows who is basically within the pool, and then you deposit into the pool we provide, and then we draw, and so that is kind of the most private way of anonymizing your points. Okay, so what are the components of a ZK Snarf mixer? First, you need a core smart contract that takes that money and processes, deposits, and controls. Typically requires a trusted setup, but not necessarily anymore. There's also ZK Starks. Then you need to generate the Merkle-tree leaves for deposits. Basically that's, if you go here, that's the first arrow of entering the shielded pool. Then you need to exit the shielded pool. And that requires about 60 seconds. And then you need to send out those transactions. The idea is every single piece of those components can live on chain, either on Ethereum or for IPFS. The hardest part is sending the transactions. So that has to be a relay or sponsoring all that. And first off, you need to differentiate between the person helping you withdraw and the recipient address, so that you can withdraw to clean addresses and have the fees handled for you. So how do we sponsor that? One, we could deposit money into Compound. Two, into the Uniswap as liquidity pool. Or we can take a fee. And so if you do a quick calculation, Uniswap would sponsor a transaction at 800,000 guests, which is roughly the average price up to 0.25, which to those who use it here, you know that this is very little. This will never go through a long chain, actually. And then if you deposit die, which gives you much higher interest rate, that's up to four quay. And then if you take 1% or 5% fee, that's much more realistic. So long story short, for anonymization amounts of roughly one ether, you need to pay roughly 5% fee to sponsor the withdrawal and make the relayer sustainable. And here are some more links to look at that.