Episode 69: The Tornado Cash Trial
Ep. 69

Episode 69: The Tornado Cash Trial

Netherlands
•

Episode description

Aaron and Sjors explain what happened in the pro forma hearing concerning the trial against Alexy P., one of the developers behind the Ethereum-based Tornado Cash mixer. While this means that this episode dives more into the domain of Ethereum smart contracts and Dutch law, Aaron and Sjors do discuss the ongoing case from a Bitcoin perspective.

Background:

Chapters

00:00:00 Streaming sats and listener boosts
00:03:36 The Dutch hearing and detention
00:06:46 How Tornado Cash mixes ether
00:08:30 Gas fees and privacy-preserving relayers
00:10:54 TORN tokens and relayer incentives
00:13:57 DAO governance and control of the interface
00:21:21 Open-source software or a centralized business?
00:24:55 Money-laundering allegations and legal tests
00:27:33 Compliance tools and their limitations
00:32:01 Implications for Bitcoin privacy tools

THIS EPISODE’S SPONSORS:

Voltage

Bitcoin Magazine: Use promocode: BMLIVE for 10% off everything in our store!

Bitcoin Magazine Pro

Transcript

Download transcript (.vtt)
0:20

Aaron van Wirdum Live from Utrecht, this is Ethereum Explained. Sjors, we're going to make a special episode today. We're going to make an episode about the Tornado Cash lawsuit that's going on in the Netherlands. So it will be a bit more Ethereum-focused and also a bit more Dutch law-focused. Yep. But first, you've been hacking something together. You've been developing something. What's going on?

0:46

Sjors Provoost It's not so much about hacking things together. We have had support for Lightning streaming sats to our podcast for about a year now, I think. And there's some podcast players that support podcasting 2.0, for example, The Fountain, but there's others, where you can select a certain amount per minute and then it just streams those satoshis to our node, basically, or my node in this case. But there's another feature that comes with that, which is called boosts. And I don't think it's fully developed yet in terms of specs and interoperability between apps. So for now, at least when people make boosts in the Fountain app, I can see them. But I think there are ways to see them in different apps too that I still need to figure out. And so I figured it might be a good idea, as other podcasts have done, to read some of the best paying or best boosts but there are no guarantees for that so don't get any ideas.

1:37

Aaron van Wirdum So so you're kind of planning to do this every episode now is that what's going on?

1:42

Sjors Provoost Maybe.

1:43

Aaron van Wirdum Okay well let's hear it then.

1:45

Sjors Provoost Okay, so we got a boost on the last episode, 68, where we talked about RBF from at MRMR. And it was a whole 3,670—no, 74 sats.

2:01

Aaron van Wirdum Ka-ching!

2:02

Sjors Provoost Ka-ching! With the text, great topic, very useful as a node operator to learn about both the RBF stuff and how Core is maintained too.

2:10

Aaron van Wirdum Perfect.

2:10

Sjors Provoost Yep.

2:11

Aaron van Wirdum Who is this from?

2:13

Sjors Provoost At MRMR.

2:14

Aaron van Wirdum Thank you MRMR for the what was it three thousand something sats?

2:19

Sjors Provoost That's right.

2:19

Aaron van Wirdum Nice. Are we gonna go out to dinner?

2:22

Sjors Provoost No.

2:23

Aaron van Wirdum After the episode?

2:23

Sjors Provoost No.

2:25

Aaron van Wirdum What are we gonna do with all the money Sjors?

2:27

Sjors Provoost I don't know yet. I'm gonna stack it.

2:28

Aaron van Wirdum Stack sats? All right. Yeah so as mentioned this will be a Kind of a special episode because there is a lawsuit going on in the Netherlands about the Tornado Cash case, which is the anonymity smart contract on Ethereum. So this episode will be less about Bitcoin and more about Ethereum and Dutch law.

2:51

Sjors Provoost Yes, and we'll try to explain what you need to know to understand the case. We don't try to explain all of Ethereum.

2:59

Aaron van Wirdum Yeah, nor will we explain all of Dutch law. But there's still some... Pretty obvious relevance to Bitcoin I think and especially maybe to Bitcoin developers developers of Bitcoin apps and of course especially Bitcoin developers that may be working on privacy tools yeah because it might set some kind of precedent or so that's that's going to be sort of the topic of this podcast and why we're talking about this so if you're not interested in that kind of stuff you could skip this episode but if you are keep listening. Okay Sjors, first of all let's start… so first of all what yeah we were at the pro forma case last week so what is this exactly?

3:45

Sjors Provoost Yeah so it's a hearing where the judge decides whether or not to keep somebody locked up for longer pending the investigation. And so it's mostly a formality. It's not really supposed to be about the case itself. However, because there was a lot of press around, I guess, and maybe for other reasons, they did talk a lot about the contents of the case itself. So it took two hours instead of the official one hour that was scheduled for it.

4:10

Aaron van Wirdum Yeah. So what is the context?

4:12

Sjors Provoost So yeah, the context is that Alexei P, as we should call him, was arrested in...

4:17

Aaron van Wirdum Well, that's a very Dutch thing, right?

4:19

Sjors Provoost Yeah, we're recording it here. So it's kind of weird because Dutch media will always use the first name and then the initial of the last name. But American media will only use the last name. So in the end...

4:29

Aaron van Wirdum Yeah, Dutch media don't use the last, not the full last name of a suspect for as long as he's still a suspect.

4:35

Sjors Provoost And even after that, because the idea would be that if you Google their full name later, you won't find anything.

4:40

Aaron van Wirdum Right, yeah. Yeah, I was wondering what I should do as a Dutch journalist, but kind of working for an American publication. I just figured... I mean, even the free Alexei... I don't even remember his last name right now. They're using his last name, so I figured I can just use it, I guess.

5:00

Sjors Provoost There are some examples of suspects that use their full names, usually with permission from them. Anyway, that doesn't really matter. The thing is, he was arrested in August. On some sort of suspicion of money laundering but the suspicion is still was still very vague at the time and then they get a certain amount of time say up to three months to actually come up with a more fully fleshed out complaint or charge.

5:22

Aaron van Wirdum And well I think you're skipping some things now. So he was charged for money laundering why?

5:30

Sjors Provoost Well, that was still quite vague at the time.

5:32

Aaron van Wirdum Okay, but he was a developer of a privacy...

5:34

Sjors Provoost Yeah, yeah, of course. So it was because he was a developer of the Tornado Cash Ethereum smart contract and some of the stuff around it.

5:42

Aaron van Wirdum Right. Okay. So, and that was a pro forma case. So that wasn't the actual court case yet, but it was just to decide if he should be kept, which English term?

5:52

Sjors Provoost Detained.

5:52

Aaron van Wirdum Detained for longer. Yeah.

5:54

Sjors Provoost Yeah.

5:54

Aaron van Wirdum Which happened. So he's still detained now. So he's been detained for three months and now he's going to be detained for another three.

6:01

Sjors Provoost Yep.

6:01

Aaron van Wirdum And then.

6:02

Sjors Provoost And then they just have another hearing like that.

6:05

Aaron van Wirdum Yeah. Just not a pro forma case. Right. So do we know when the actual court case is going to be?

6:10

Sjors Provoost Nope.

6:10

Aaron van Wirdum Okay. All right. So that's sort of the context that I think that that's the context that our listeners need, right? Okay. So let's move on to this actual smart contract itself. Then the thing that he was developing, it was him and two other developers, right? But these other developers are not in the Netherlands. So he was living in the Netherlands, even though he is Russian, he's a Russian national. But the other two developers are somewhere else, I guess, in the Dutch… And prosecutors, you know, put him in prison, jail for now.

6:45

Sjors Provoost Yeah.

6:46

Aaron van Wirdum Okay, so what is Tornado Cash?

6:49

Sjors Provoost Yeah, so Tornado Cash is multiple things. And this is kind of what makes the case somewhat confusing and also somewhat interesting. So the core of Tornado Cash is a set of smart contracts. But you can see it as one smart contract, but it's actually multiple ones. That allow you to put in a fixed amount of Ether. So for example, 100 Ether or 10 Ether or 1 Ether. You put it in and then you take it out. From some other place in a and that's done using zero-knowledge proofs in a way that you cannot or at least not naively see which which ETH going in corresponds to which ETH going out.

7:21

Aaron van Wirdum Or you're saying you take it out from some other place you take it out of the same…

7:25

Sjors Provoost You take it out of the same bucket, but you take it somewhere else. So in Ethereum, you tend to work with accounts. Accounts are just like addresses, but they're reused quite heavily. And so you will use one address, one Ethereum account to put money into the smart contract. And then you'd use another Ethereum account to take the money out of the smart contract. And the way you take it out is by... Proving to the smart contract using some sort of fancy zero-knowledge proof that you are allowed to take something out of the smart contract.

7:55

Aaron van Wirdum Yeah.

7:55

Sjors Provoost But there's no trace of who took out what.

7:58

Aaron van Wirdum Yeah. And I think that we're not going to get into the details of how this zero-knowledge works or anything like that. This is just the general concept.

8:06

Sjors Provoost Yeah.

8:07

Aaron van Wirdum It works, or at least it seems to work.

8:09

Sjors Provoost Yeah, I mean, I'm not an expert in zero-knowledge proofs. My understanding is that if the zero-knowledge math is incorrect, then somebody might actually empty out the smart contract. That's sort of the trade-off, depending on how they've done it.

8:22

Aaron van Wirdum Yeah, well, we can just assume that it works for this case that we're talking about, and I think that's all Bitcoiners need to know at this point. So it works, but there is a problem, and the problem is fee-related, right? A privacy leak potential.

8:37

Sjors Provoost Yeah, so this contract, you might think, okay, it could just live on its own in the blockchain, and it does kind of live on its own in the blockchain, and it does not have a backdoor. So many Ethereum smart contracts these days have some sort of administrative override, but they sealed all that stuff. So that part of the system is pretty autonomous and it's just there. But there is an ecosystem around it. And part of the reason for that ecosystem around it is that taking the money out is not as easy as it sounds. Because there's a chicken-egg problem here. If in Ethereum you wanted to do anything with a smart contract, such as getting money out of the smart contract, you have to send a command to the smart contract. And this command requires a little bit of ETH, called gas, in order to execute the command. But you cannot borrow ETH. So if your account is zero, then you actually need to... To put some ETH in it before you can then go and get it out of the smart contract. And the problem with doing that is that you might then accidentally link your original ETH to the other contract. So you have one public key or one address where you had your original funds, you put some of that in the smart contract, and then maybe you moved some of those original funds to another address just enough so you can pay the smart contract to take it out. But then any blockchain analytics company could just see that it's probably the same person taking the money in and taking the money out. So there's a solution for that, and it's called a relayer, which I think is a somewhat confusing term, but it doesn't really matter. This relayer is not a... Well, I think it's partially a smart contract and it's partially a web service. And what you do is you go online to some website and you upload your proof that you got when you put the money inside the Tornado Cash. And by uploading that proof and saying, I want the money to go out to this address, basically to my new address, that service will then call the smart contract for you. So they'll pay the gas fees and they'll send you the whatever comes out of the smart contract minus fees.

10:41

Aaron van Wirdum Okay.

10:43

Sjors Provoost So so this is a way to solve the chicken egg problem somebody else is paying your gas fees and there's some way to make sure that they can't steal more than they say they're going to steal based on the fee right?

10:54

Aaron van Wirdum Okay so that's the general idea of how Tornado Cash works and then I think the next step would be so here we get sort of to where it gets interesting in relation to the court case there's something going on… with tokens.

11:12

Sjors Provoost Yeah, because if we just look at relayers, you could say, well, those relayers are taking fees. So you could... I think, pretty easily argue that a relayer is at least taking fees, is making money. The original smart contract was not making any money. However, as far as I know, Alexei is not accused of running a relayer, or at least not yet accused, because they're still sort of drawing up these charges.

11:34

Aaron van Wirdum Yeah, as we mentioned, the court case hasn't happened yet. We've only seen sort of... Trailer. We've seen the trailer of the court case, but we don't know what's actually going to...

11:46

Sjors Provoost Yeah, but I would say based on the rest of what we can discuss in this case, if you do run a relayer, you may have a similar problem, but that's not what this case seems to be about. You think relayers are interesting, but then the question is, everybody could run a relayer. So now as a user, how do you decide which relayer to use and how do you actually use the relayer? And for this, there was a bunch of other software tools that Alexei and others developed that basically made it easy if you have a MetaMask browser or a MetaMask browser plugin to just go to a website and click on a few buttons and it would just pick a relayer for you and it would do all the complicated stuff that you need to do to use a relayer. And that software is kind of where the tokenomics come in. And I don't like using this word. But tokenomics it is. Because so far you say, why the hell do you need a token for any of this? And the answer is you don't. But, you know, some people just like to build tokenomics systems. And so there is one. So there is a token called TORN. T-O-R-N. And basically what happens is this little website that the users use has a list of available relays. And in order to pick a relay, it looks at what's the lowest fee. That makes sense. But it also looks at who has staked the most TORN. So you can apparently, if you own these TORN tokens, you can stake them somewhere, somehow, and that'll give your relay priority over other relays, at least to the users of that software. So that's not enforced in the consensus anywhere. So now you can say, okay, so there's a reason to own this TORN token, namely for your relays to be more popular. So that's sort of a tokenomic story. And that comes back in the case, basically, to bite them.

13:32

Aaron van Wirdum Okay, first of all, Sjors, this all sounds very Ethereum-y. Why do you know all this? Did you research all of this just for the podcast?

13:40

Sjors Provoost I've been researching some of this stuff over the last few months.

13:42

Aaron van Wirdum Because of the court case.

13:44

Sjors Provoost Yeah, my approach with a lot of altcoins is to ignore them until something explodes. But I have in the past worked a little bit with Ethereum too. So I have some background understanding of how it works. But I don't want to say I'm completely up to date.

13:57

Aaron van Wirdum Okay, well, so... Tokenomics all sounds fantastically futuristic very exciting but there's also something going on and I think this is where it really gets relevant for the court case because as you mentioned The whole relayer thing doesn't seem to be the issue here for Alexei, even though he might be running a relay or not. We'll have to see, or maybe we'll see all about that.

14:24

Sjors Provoost I think so far they're saying he's not. At least the defense is saying he's not.

14:27

Aaron van Wirdum So there's a double function for the token. And that is where it gets relevant for the court case potentially, or it seems like it, which is governance.

14:38

Sjors Provoost Yeah, I think they're both relevant for the court case, but governance is the second reason why they may be very relevant.

14:44

Aaron van Wirdum Yeah, so supposedly this is, here we get another great Ethereum term. It's a DAO. And there's a token involved that does something governance-y. And you're going to explain us all about the governance-y, Ethereum, DAO, token-y stuff as well now.

15:00

Sjors Provoost Yeah, but this is where I have to disclaim that I'm not super up to date on how it works. And part of the reason is because it's just not that well documented. And some of the documentation got wiped out with the original sort of OFAC sanctions where lots of websites started disappearing, which made it more difficult to understand.

15:17

Aaron van Wirdum Sorry, what websites were disappearing?

15:20

Sjors Provoost Well, tornado.cash, some documentation sites, everything hosted by GitHub.

15:24

Aaron van Wirdum Oh, really? So it was taken down?

15:28

Sjors Provoost Preemptively.

15:29

Aaron van Wirdum Oh, really?

15:29

Sjors Provoost So not by the government. It was basically companies like GitHub, which is run by Microsoft. Their compliance team just shut everything down. It was remotely related to a Tornado Cash. And some of that stuff got back.

15:39

Aaron van Wirdum Interesting.

15:40

Sjors Provoost But that made it a bit more difficult for me to study how the whole thing works. So I may be a little off on the tokenomics and some other podcasts maybe will explain it better. But the governance anyway… So one thing you can do with it, DAO basically just means you have a smart contract and the tokens give you a vote in that smart contract. That's probably the simplest way to say it. And then how the voting exactly works depends on how you've implemented the smart contract. So it might be that you need a full majority change.

16:09

Aaron van Wirdum Yeah, so editor, Sjors’s got a neighbor who's drilling holes in his walls today. So I guess we're sort of occasionally taking a break until he stops. And hopefully you can kind of edit this out as well as possible. Yep. Do you remember?

16:26

Sjors Provoost Yeah.

16:26

Aaron van Wirdum Just keep going, I guess.

16:28

Sjors Provoost So DAO means that you have tokens, those can vote, and the way the voting works will vary depending on the implementation. You could have, say, if you want to change anything about the rules, then you need a 51% vote, or you could say, well, it's 51% of the people who show up to vote, stuff like that, whatever. One of the things you might be able to vote for... Is the little website that people see. And this is where I'm not entirely sure if it actually works this way, but I suspect it did. The website you see when you go to your MetaMask browser to tornado.cash can be hosted on something called the Interplanetary File System, which is a nice distributed sort of file system out there. And you identify files…

17:11

Aaron van Wirdum This is all Ethereum stuff, right?

17:13

Sjors Provoost No, IPFS exists outside of Ethereum.

17:16

Aaron van Wirdum Oh, okay.

17:17

Sjors Provoost Basically, it's just a distributed file system. I don't know all the trade-offs of it. But kind of like Tor in the sense that you have a hash of a file and that's how you identify it. So you give the file system a hash and it somehow finds the original file and presents it to you. And this is interesting because a hash actually is a checksum of the contents of the file. So in this case, you might have a hash that represents a specific piece of HTML and JavaScript and all this logic. And... Like I said, the little website you get when you use MetaMask controls which of the relayers you're going to use, and controls how the tokenomics actually pick the relayer. So this is not implemented in a smart contract, this is implemented in a website. The website basically just tells your browser, go and pick this particular relay. So if you control which website the user sees... Because you can decide which hash the user's website is going to look for, that gives you some control over the system. And in theory, you can have the smart contract itself point to a specific hash. So then you could have a DAO that could vote over which hash gets to be the real website for the end user. And then, of course, if you control the majority of the DAO tokens or somehow manipulate the vote, then, well, you control the website, and that basically could be an argument to say that you are in control of a certain system or not. Obviously none of this has been fleshed out by the prosecutor in enough detail and I feel sorry for whoever actually has to do all the tokenomics both on the side of the prosecutor explaining why tokenomics are or are not actually decentralized I mean another defense to try and explain why they're wrong.

19:02

Aaron van Wirdum Yeah and I feel bad for the host of this podcast having to listen to all of this and try to understand no I'm joking I think it's actually kind of interesting. I'm just happy that we don't usually make an Ethereum podcast, I guess.

19:15

Sjors Provoost Yeah.

19:16

Aaron van Wirdum But I want to clarify one thing before we move on. So we have mentioned this, but it's worth kind of repeating this. So we're talking about all this tokenomics and governance and how it might work or might not. But this is kind of separate. So this is still separate from the actual mixing tool, right? This is all relevant to the relayers, which is sort of...

19:40

Sjors Provoost Yeah, the analogy I made yesterday in our preparation is of a lake. And so you could say the original smart contract, the original Tornado Cash core smart contract could be like a big lake with lots of fish in it. And that's where all the money is. But then the Alexei and others built a whole nice little harbor. At the side of that lake that way you can rent boats to go on the lake and etc etc but in principle anybody can do that they don't have monopoly control over the lake itself and so if you shut them down or even if you shut those those helper smart contracts down because that's kind of how it works you have a main smart contract and a bunch of helper smart contracts around it the lake is still there and somebody else could use it. And in fact, you can just copy paste the whole smart contract and create another lake.

20:23

Aaron van Wirdum They probably did also build the lake though, right? It's just, they're just different smart contracts.

20:28

Sjors Provoost But the lake, the analogy with the lake, I make it because that smart contract is closed.

20:33

Aaron van Wirdum It doesn't have the DAO stuff going on.

20:35

Sjors Provoost And it's sort of frozen the way it is. And the prosecutor even mentioned this sort of in their opening statement saying, well, if it was only a smart contract that was created a long time ago and not touched, we wouldn't be here. But in fact there's much more going on so what that says is that perhaps if you do make a smart contract that is immutable and you don't touch it anymore and you're not doing any governance stuff then maybe you might be okay according to them which of course is all just their opinion it's not been you know checked by any judge.

21:08

Aaron van Wirdum Okay so we've discussed the DAO kind of stuff and the tokenomics at least to an extent that we sort of cover that well enough I think?

21:16

Sjors Provoost I think so I mean we can cover some of the compliance tools they built but maybe we can do that later as we yeah

21:22

Aaron van Wirdum So the first thing I want to mention here is that so when did when his arrest when Alexei’s arrest first made the news the general impression or the general what people thought was that he was arrested for writing free software open source software yeah and it now seems at least in the you know preview court case or whatever the pro forma it seems that there's that that's not really the reason or at least that's not the complete reason or that's not the full reason because it seems like it has a lot to do with the tokenomics yes because the prosecutor suggested that Alexei and the other Tornado Cash developers actually own most of the tokens themselves

22:08

Sjors Provoost Yeah, they're basically saying that his company is Tornado Cash, that all of Tornado Cash, the whole ecosystem, all the tokens, all the smart contracts are run by them just like it is a business.

22:19

Aaron van Wirdum So yeah, so when this first made the news, when the whole court case first made the news, the general sort of assumption, impression was that this developer was being arrested for writing free software, open source software. But now it seems that it has more to do with... Him owning him basically just controlling this smart contract by holding most of the tokens right so it has more to do with the tokenomics so to say than with the actual writing of software it seems like.

22:53

Sjors Provoost Yes I think so because the the picture they're painting is to say well if it… I think the picture of the prosecutor's painting is that it's not just an autonomous software system. It's actually a company run by people. And those people do some sort of sham voting. They're basically claiming that all these votes that are happening are really just manipulated by the company. And it's all just completely centralized. And therefore, they are doing the money laundering.

23:22

Aaron van Wirdum Sounds like a pretty good prosecutor in that sense to me.

23:26

Sjors Provoost Well it's a very [unclear] maxi prosecutor I guess. Right, the argument is still very vague. I mean I would not disagree that the system might be very centralized in a way but that still leaves a lot of open questions of whether they're really doing the money laundering right? They're building a system that is doing things but the system…

23:45

Aaron van Wirdum I mean I want to be clear… that I I I favor privacy tools and all of that just the sham decentralization that sounds like that that's probably right it sounds to me. Is yeah but based on you know everything I know of anything that's going on in Ethereum that sounds about right but like you said maybe it was a maybe that's a very that that's certainly a very Bitcoin maxi position so okay so basically the… prosecutor says Alexei controls smart contract de facto and then he's being arrested because…

24:23

Sjors Provoost And they're making money. But the making money argument is also, again, a bit vague because the argument from the prosecutor seems to be, well, the token is going up in value because of the money laundering and because the token is going up in value, they can cash out that value and that's why he has a Porsche.

24:38

Aaron van Wirdum Yeah they did mention they mentioned the Porsche.

24:40

Sjors Provoost So but this this argument again is it's very hand wavy so we'll have to see how they really make that legal argument that just because you own tokens and they go up in value that that means that you're responsible for the money laundering in some way well it's not it's not an obvious direct link there.

24:54

Aaron van Wirdum Well that's what I was gonna ask so that's what the prosecutor alleges right? That first of all they knew that criminals were using their tools to launder their proceeds. And they were told about this. And then second, there were compliance tools available, which they chose not to build in, even though they could have.

25:18

Sjors Provoost Yeah. So I guess we can do a little tour of money laundering law, I guess, which I'm not an expert on, but I can see various forms, various legal gradations of money laundering. And one of them is about as simple as... Somehow causing the origin of funds to be hidden. Like, that's enough.

25:40

Aaron van Wirdum Yeah.

25:40

Sjors Provoost And then that's what the law says, but there are some legal tests that you have to go through in order to prove that money laundering... For a prosecutor to prove that money laundering happened, it's not enough to say, well, you were hiding the origin. Basically, they have to show that the money was used. The laundering was... Basically, the thing that was being laundered was actually criminal money. So they have to prove that all or some of the money had a criminal origin. Then you have to prove that the suspect knew that this criminal origin... Existed or at least should have known and then well there's a couple of other tests basically along those lines now to prove that they knew that criminal things were going through that was pretty easy because like lots of companies I guess have shown that was that's not disputed that much that there were some criminals using it but then I guess you could somehow defend yourself by saying well but we have all these compliance mechanisms I mean that's what banks do right? They have all these compliance departments and they they try to mitigate the money laundering as much as possible. And if they do to put in enough effort to mitigate the money laundering, then they don't go to jail just because some money laundering did happen. But, of course, Tornado Cash was not doing that. At least that's the argument, and that's a reasonable argument. They did do two things.

26:47

Aaron van Wirdum While they could have.

26:49

Sjors Provoost Yeah.

26:50

Aaron van Wirdum I mean, that's what the court case will be about, I guess, right? Could they have done it?

26:56

Sjors Provoost Well, even that, I don't know if that's going to be what the case is about. But you could say like, well, it's a smart contract. There's nothing you can do about money laundering. It's kind of inherent to the system. Whether that would be enough of a defense, we'll have to see. I hope so. But the counter argument from the prosecutor might be something like, well, then if you want to run a business, because it's not just a software, but it's also a business. If you want to run a business, then just don't use a blockchain. For your money processing because you can't do compliance and therefore you shouldn't, you know, you should do some other business, right? So they might say that it's okay for the smart contract to exist. It's just that you can't be the one running it. So maybe that could be the argument there.

27:33

Aaron van Wirdum So what kind of compliance tools could they have used? Do you know this?

27:37

Sjors Provoost Yeah. So there were two compliance tools. The one that actually was built. And that is basically a tool where if you're a user, you send money into Tornado Cash and you take it out of Tornado Cash, and then you send it to an exchange. The exchange could ask you, where is this money coming from? And then you could prove to the exchange where it went into Tornado Cash and how you took it out. So basically, you can help the exchange see through the mixer. So you can selectively reveal to people that, yes, you were using the mixer, but this is where it came from, this is where it's going. And you can use the zero-knowledge proof to nicely prove that

28:11

Aaron van Wirdum Wait but so this would be the individual users proving this right

28:14

Sjors Provoost Yes so individual users can choose to prove this source of funds right that is not enough for Tornado Cash to survive this money laundering charge because you can say yes we allow our users to not launder money it's like that's not a very strong legal defense because you're not forcing them to to not launder money

28:33

Aaron van Wirdum Yeah okay so that's Solution one, which you think would not have been enough, but it's a solution anyway. Yeah, solution two… Which you mentioned why, if it's not enough, just for interest?

28:44

Sjors Provoost Well, because again, the charge of money laundering is that you allowed somebody to hide the source of funds. And so the fact that you helped somebody hide the source of their funds, and then you gave them the option to not hide the source of their funds. It's like, great, but you still help them hide the source of their funds.

29:02

Aaron van Wirdum So it's not a solution at all. It's not one out of two solutions. It's not a solution.

29:06

Sjors Provoost If you look at the traditional cases of custodial mixers, right, there are custodial companies that are mixers. Yeah, you can, of course, if I were to use one of those custodial mixers, then yes, sure, I could prove to my bank that I used that mixer and that this money went in and this money went out, but the custodial mixer operator is still going to prison. Because other customers would probably not do that. That would be the argument.

29:33

Aaron van Wirdum Moving on.

29:34

Sjors Provoost I'm not making a moral judgment. I'm saying this is how that's interpreted.

29:38

Aaron van Wirdum Sure.

29:39

Sjors Provoost Moving on, the other compliance tools was a little bit more enforcement in that they would check the origin address or the destination address, I don't know which of the two, against the OFAC list and various other lists.

29:52

Aaron van Wirdum What's the OFAC list again?

29:55

Sjors Provoost Office of foreign asset control there's like this u.s thing that publishes bad the names and and addresses of bad people that you should not do business with according to them. Okay, and… And this is not related to the fact that Tornado Cash itself was on the OFAC list. This would have been before that. Basically, there are companies like, I think, Chainalysis. They will publish oracles on the Ethereum blockchain that say, these addresses we promise are really the ones that OFAC is enforcing. And let's say you're willing to trust an oracle, which I think you shouldn't, but let's say you would. Then your smart contract could check against the oracle and say, okay, I'm going to refuse the specific transactions that the oracle doesn't like. Unfortunately, that is way too easy to circumvent because you would just send your money from the bad address to some other address and then onwards to the oracle. So to make a smart contract do compliance checks based on chain analysis, it's just not possible.

30:50

Aaron van Wirdum I mean, it's possible. It just doesn't work. But I mean, will a prosecutor care about whether it works?

30:56

Sjors Provoost Well, so this is interesting because the prosecutor admitted that it wouldn't work. And so they use that argument in two directions. One thing they're saying, well, the only method you thought about was so bad that you're not taking money laundering seriously as a problem because you only came up with these very bad solutions. That's one direction. The other argument is saying, well, look, you were thinking about compliance solutions. So you're admitting that it is possible to have compliance in your blockchain. So you should build compliance into your blockchain. So they're really using the same argument in two ways that are very contradictory.

31:29

Aaron van Wirdum Right. Interesting. Okay so if so these are the only two solutions that you're mentioning now and where of

31:36

Sjors Provoost And I think they mentioned specifically that there were two so

31:40

Aaron van Wirdum Right so both of them don't really work it sounds like at least

31:47

Sjors Provoost I mean obviously if you compare it to what is allowed namely to run a proper bank with like spending billions of euros on compliance staff it's not it's not even comparable so they'll never reach that bar.

32:01

Aaron van Wirdum Right okay so what is the relevance for Bitcoin here exactly? What we don't know for sure obviously yet we don't even know what the court case is going to be about exactly blah blah blah but given that there are for example some mixers on Bitcoin you've got Bisq which also operates as a DAO you've got Wasabi wallet which is actually a company like how do you see the relevance for the Tornado Cash case in the com in a Bitcoin context

32:32

Sjors Provoost Yeah well first of all again this is just what the prosecutor is arguing they might be you know the judge might simply say this is nonsense go away but one thing that's very obviously I think very apparent here, is that they are completely ignoring the difference between custodial and non-custodial wallets. Because whatever you think of the Ethereum system, I think you can very clearly see that the Tornado Cash ecosystem, even all the stuff around it, is non-custodial. They are not holding your coins. They might have some control over your software experience, but they do not hold your coins. And, well, there are Bitcoin mixes too that do not hold your coins. They are non-custodial.

33:09

Aaron van Wirdum Yeah, both Bisq and Wasabi, for example, are non-custodial.

33:13

Sjors Provoost Yes, and both of these are making money in a much more direct way. There's no tokenomic shenanigans. It's just a direct fee.

33:19

Aaron van Wirdum Well, on DAO there is.

33:20

Sjors Provoost Yeah, so the DAO we should cover separately.

33:22

Aaron van Wirdum Sorry, I mean on Bisq there is.

33:23

Sjors Provoost I think we should cover Bisq separately.

33:25

Aaron van Wirdum Okay.

33:25

Sjors Provoost So if you look at the standard mixes that are non-custodial, they just have a direct fee. So that is actually a simpler case from a prosecutor point of view than this Ethereum thing, because there is no theater around tokenomics and relays. No, there's just a non-custodial mixing service. So if Tornado Cash basically sets a precedent that that's not allowed, then I would definitely not see why non-custodial mixes would be fine. Now, you can also look at something like Bisq, which is decentralized. Then you could say it's not run as a company. And perhaps more so, I don't know, because you'd really have to look at what's really going on, whether there's no shenanigans about voting or what those votes even do and where the money is going. If you have a truly peer-to-peer system where the only people making money are the people doing the transactions, then the prosecutors can only go after those people, but not after whoever creates the whole system. But if the creator of the whole system is making money out of it because of some tokenomic shenanigan, maybe they can make that argument or they'll try.

34:26

Aaron van Wirdum Yeah, so I think depending on where the case will go, it sounds like what will be relevant is whether or not Alexei actually could control what happened with the smart contract, whether it was de facto a business, essentially, and whether they were making money. And if the answer to these questions according to the judge will be, yes, it's a problem because they're basically running a business and they're making money, then it will be very relevant to Bitcoin. Companies like Wasabi right? That that would be my assumption.

35:05

Sjors Provoost Yeah and then the question would be more like is it also relevant for things like Bisq or like JoinMarket which… yeah there it gets where they are the… incentives are different so one has a token system but just because you have tokens does not mean that necessarily it's a business but they could try some of that argument of course the real targets will be the biggest ones like they're not going to go after something with a hundred thousand euros in volume.

35:26

Aaron van Wirdum Yeah and Tornado Cash was huge right like?

35:28

Sjors Provoost Yeah it was billions.

35:29

Aaron van Wirdum Yeah it was a lot of money going through that smart contract but

35:33

Sjors Provoost From my understanding and I'm not very up to date is the custodial mixers are still much bigger so the right mixes that just take your money and then send it away right and then of course there's just people dumping money onto an exchange and then taking it off the exchange that also obfuscates your your on-chain

35:49

Aaron van Wirdum Well not if it yeah well depending on if they who's doing the on-chain analytics right and whether or not they're cooperating with that exchange yeah okay so I that was a lot for me anyways. That was a lot of Ethereum stuff and do we so and we covered why that was relevant for Bitcoin I think or is there anything?

36:14

Sjors Provoost I think so.

36:14

Aaron van Wirdum Yeah okay so we've covered a lot of Ethereum stuff a bunch of Dutch law stuff why it's relevant for Bitcoin. And I think that's an episode then, Sjors.

36:24

Sjors Provoost I think so.

36:25

Aaron van Wirdum Did we miss anything?

36:26

Sjors Provoost We probably missed a lot of things, but I think this is a good introduction.

36:29

Aaron van Wirdum Yeah, I mean, there will be, you know, to be continued. I mean, I don't know if we'll make another episode.

36:35

Sjors Provoost Somebody will have to continue this, but we'll see.

36:37

Aaron van Wirdum Yeah, so as mentioned, in another three months, that's sort of the next point of reference for this court case.

36:45

Sjors Provoost Yeah, in three months, the prosecutor will have to make a more detailed case. Yeah.

36:49

Aaron van Wirdum Okay, well, Sjors, thanks for diving into all of this Ethereum stuff. And hopefully we'll get back to talking about Bitcoin next episode.

36:58

Sjors Provoost I think so. So thank you for listening to Bitcoin

37:00

Aaron van Wirdum Explained.