Welcome to Zero Knowledge. I'm your host, Anna Rose. In this podcast, we will be exploring the latest in zero knowledge research and the decentralized web, as well as new paradigms that promise to change the way we interact and transact online. This week, James and I chat with Joseph DeLong from Sushi. We talk about working with anonymous contributors, the evolution of the Sushi project from a fork of Uniswap to a full-fledged ecosystem of products. We also talk about the recently discovered vulnerability in the MISO contracts, how this was caught and mitigated, and what's next for the project.
Anna (00:00:45):
But before we start in, I want to highlight something for job seekers in the space. If you're looking for a job, you want to jump into the zk world, the next ZK Jobs Fair is happening on September 30th. This will be our 4th. So we host these on gather.town. And they're an awesome way to get to know the teams that are hiring in a very casual social virtual space. So if you're looking for your next job, be sure to get your application in. I've added the link in the show notes. And for potential hiring teams, we still have some booths available, so do get in touch by emailing sponsorships@zeroknowledge.fm. In general, I recommend everyone checks out the new website, it's been up for now two weeks, and I'm pretty excited about it. And the updated Jobs Board.
Anna (00:01:30):
I would also like to thank this week's sponsor, Centrifuge - a real-world DeFi project. Centrifuge puts real-world assets on the blockchain, allowing issuers to get liquidity on their assets and investors to make a safe, stable yield in the volatile crypto world. It's built on Substrate, and so Centrifuge also is bridging the Ethereum and Polkadot worlds. And speaking of jobs in the space, Centrifuge is currently hiring for a number of positions. This includes Senior Rust Engineers, Senior Fullstack Engineers, Security and DevOps engineers, as well as a General Counsel. Head over to centrifuge.io/careers to learn more. So thanks again, Centrifuge! Now here is our episode all about Sushi.
Anna (00:02:16):
So today I'm sitting with James and Joe DeLong from SushiSwap. Welcome to the show, Joe.
Joe (00:02:22):
Cool. Thanks for having me.
Anna (00:02:23):
Hey, James.
James (00:02:24):
Hey, Anna. It's good to be back.
Anna (00:02:26):
Glad to have you back. So Joseph, Joe, this is the first time that we have you on the show, but it's not the first time that we've been talking about SushiSwap on the show. Last year, right after SushiSwap first launched, and actually right before Uniswap token launched, in that little window, we did this episode two-parter, three-parter rather, with Hasu and Tarun. And it's a really cool episode, maybe just the primer, that early story of SushiSwap. So I'll put that in the show notes. But I'm so happy to have you on the show, because I feel like you're going to be able to fill me in on what's happened in this crazy project since then. But before we do that, let's hear a little bit about you. You've been in blockchain a lot longer than just your work with SushiSwap, I've known you from conferences, maybe for 3 years. So what were you doing before Sushi?
Joe (00:03:21):
Before Sushi I was doing Ethereum 2.0 research for ConsenSys. We had built out a team called TXRX Research. I was working on cross-shard transactions, research regarding that. And the team was working on a smattering of research topics that pertain to Eth2. Before that I was helping build the Teku client, which is the Java implementation of the Eth2 client, built by ConsenSys.
Anna (00:03:49):
All right. Were you working with Ben actually?
Joe (00:03:51):
Yep. Ben almost fired me like a million times.
Anna (00:03:54):
Oh, shit!
Joe (00:03:54):
Yeah. He's awesome. But I just got a little crazy on Twitter a few times. Once in particular with Charles Hoskinson and then another time with some other people.
James (00:04:11):
Getting crazy on Twitter is part of the job now, right?
Joe (00:04:14):
It feels like it. Yeah, I enjoy it.
Anna (00:04:17):
What made you step away from that? That's an exciting field of research. What made you decide to move more towards a dApp or DEX?
Joe (00:04:26):
I've seen a lot of people make this jump from protocols to dApps. I feel like working on protocols is similar to maybe doing military service or something. It's like something that's not incredibly glamorous, but it's something necessary. And the risk/reward is relatively balanced, relatively low. And so Maki asked me to join Sushi and I had been participating in all of this DeFi Summer stuff. And it intrigued me to get into DeFi, especially, as James will know, this mashup of where DeFi space meets protocols is pretty interesting as well.
Anna (00:05:10):
When was that? You weren't part of this first team that we were talking about last year on the show, I don't think. So at what point did you start to think you might be joining?
Joe (00:05:22):
Yeah, it was... Maki called me December 27th and I was with my family, my extended family, for... It was around Christmas time, we were in an Airbnb all together and I kind of liked it. It's kind of sexy. It's a little risk-on, and I had been a Sushi farmer/supporter/community member, and I had talked to Maki a bit and respected his leadership style and work. And I thought that it would be a great opportunity.
Anna (00:05:51):
What was Sushi at that time, in December?, Maybe a little backstory about it, too. It had arrived as this fork/clone of Uniswap, had at some point gathered a lot of the liquidity, and then there was Uniswap launched a token, liquidity was moving back and forth.That's where I know the story, that's what we covered. I actually don't know anything since then. So what was happening maybe from that point to when you joined?
Joe (00:06:23):
Sure. I think that that's probably a good place to pick up, because this fork novelty had worn off, but the team had huge potential. We have, this is not biased in any way, we have the best development team of any protocol out there right now. And when I arrived, we had really solid team at that time as well. And really I saw a lot of potential and just wanted to help in professionalizing the organization, helping with architectural direction, but also moving it from kind of a ragtag team of outlaws to a legit DeFi project.
Anna (00:07:08):
How big was the team when you joined?
Joe (00:07:10):
Six.
Anna (00:07:10):
Okay. How big is it now?
Joe (00:07:14):
It's about 24. Most of it is organizational structure. They already had a pretty good thing going and I just wanted to enhance that. And I think we have been doing pretty good ever since. We still lagged behind in some of our hiring. I'd like to be hiring maybe at least 12 more developers across protocols, front-end smart contract developers. But yeah, I think we're in a really good place right now.
James (00:07:45):
That's a lot developers. How do you work on project management with a distributed team of some semi-anonimous people?
Joe (00:07:54):
Yeah, there are some challenges, I would say, particularly ownership of repos and what kind of access do you give somebody? But once they're on core, there's a relatively high amount of trust, that we're not going to get like poison pill commits or anything. And so there's a huge amount of trust. We do "team of teams" style and development. For instance, in Trident, we have a smart contracts team, we have people working on front-end design, we have people working on front-end implementation, we have people working on the routing engine and they're all broken up into teams, but just cross-communicate and between each other.
Anna (00:08:36):
Are there a lot of anonymous..? Maki, who you mentioned, they are an anonymous character online. Do you know your teammates? Or do you actually work in an anonymous state together?
Joe (00:08:48):
One of them actually told me, I thought he gave me his real name, and one of them is telling me it's a made up name. And I was like, "Of course, of course it's a made up name, Chester LaCroix! How could I have not..!" Sounds like the name of a jewel thief.
Anna (00:09:10):
Oh, that's good. But do you know your teammates?
Joe (00:09:12):
For the most part, yeah.
Anna (00:09:13):
Okay.
James (00:09:13):
Not as well as you might think, though.
Joe (00:09:15):
Yeah, there are a few anons, there are a few pseudo-anons, I would say.
Anna (00:09:19):
What would you use then to gauge that trust? Maybe you're using a different metric than seeing their face, knowing their name. What is it then?
Joe (00:09:28):
Oh, yeah. I talked about this a few times, what real professionalism is, real professionalism is not suit and tie or having a nice email signature, real professionalism is committing to doing something and then doing it, being accountable for your actions, being a good co-worker, being a good leader, being a good follower, that sort of stuff. I think that is real professionalism. And I think that trust is built up on a basis of exhibition of real professionalism.
Anna (00:09:59):
Do you use though any back... Maybe previous commits, something like looking at their github? Or any of the other behavior maybe you saw, especially when you're thinking of hiring someone who you will never, you won't know their name, you won't be able to check their CV necessarily.
Joe (00:10:14):
What we'll do, unless it's somebody who's been working with the team already, we''ll typically pick the best people that we've been working with to come join core. If we have a need that we really need to fill, what we'll do is we will find someone who fits the role, approach them and ask them to commit either part-time or full-time for a month. And then we just evaluate their performance. This is a great system, but it also is terrible for the person who maybe has another job or has to live a month not knowing that somebody is going to commit to them. And so I would implore the world to find a better system than that, because it's hard to judge people that way.
Anna (00:10:58):
But don't you feel like when you're hiring, you're taking a risk, you're going to put in time and effort and it's like both sides are constantly trying to mitigate the risk they're taking.
James (00:11:11):
Yeah. Working in this space at all is very risk-on, we're all doing extremely risky things that might not work out all the time. Taking a risk on hiring someone generally is one of the safer things we can do. The big risks that I feel like I'm taking, and I don't know if this is the same for you, Joe, is, is this product going to hit the market and are people going to use it?
Joe (00:11:37):
Yeah, I think that's the risk. Especially with Kashi, we found that we were like, "Everybody's going to use Kashi right away!" And it took us 2 or 3 weeks, even with rewards, to get $10 million in TVL on Kashi, maybe 1-2 weeks.
James (00:11:52):
And is Kashi a lending market?
Joe (00:11:54):
Yeah. It's isolated lending market. So you can, just the way that you design AMM pools now, I pick token A and token B, I can do the same for a lending market. I can pick my lending token and my collateralization token.
Anna (00:12:09):
Would you only release this each time as a single pair?
Joe (00:12:12):
Yeah, but you can design any pair that you want. So it's like a permissionless system, where you can design those pools. And the reason that we do that is, where you have pooled lending, like on Aave or Compound, there's an inherent risk. Essentially by lending or borrowing, you're taking on the entire risk of any individual token that's in the platform, because if there was a failure to liquidate, the protocol itself becomes insolvent. And by doing risk-isolated lending, essentially that risk is isolated to that individual lending pair.
James (00:12:47):
So if you want to play it out, you have Compound at one end of the spectrum, where all of the tokens are in the same pool, you have Rari in the middle with a bunch of different pools with different token combinations, and Kashi is the other end where each pool has exactly two tokens.
Joe (00:13:06):
Exactly. And permissionless, too. So you can just create your own pools, which is great for betting against new tokens.
Anna (00:13:14):
Who uses it? Is it teams that would deploy this themselves or is it individual deployment within an interface that you've created?
Joe (00:13:22):
I think it's more individuals. We have had some teams, like the Fei team and the RAI team, Reflexer Labs have approached us in specifically wanting to do lending markets. Our plan long-term is to... Basically for each lending market, we need to integrate in Oracle. And the Oracle allows you to tell when to do liquidations and the utilization rate, etc., to determine what kind of elastic rates charge for the lend. So right now we have Chainlink integration. We would like to enhance that, we had started, but there was a really bad user experience to integrate TWAP Oracles. But generally that's the direction that we're headed: as long as there is an AMM pool, you can lend against something or you can borrow against something.
Anna (00:14:12):
So I always hear about Chainlink integrations. I don't know what that means. Is that like you're pulling or their Oracle data somehow? But where do they get their Oracle data? Why would you trust their data more than, I don't know, something else?
Joe (00:14:29):
So this is out of simplicity. TWAPs require 2 snapshots and Chainlink will provide a price feed. And so we're relying on this kind of centralized authority to say what the price of token A or token B is. Long-term we want it to be entirely permissionless, so just looking at other AMM markets. But there were also other security considerations, like depth of liquidity, volatility that we can't really get a good read on on-chain. Whereas Chainlink handles much of that. They say: "The market size is this, and there's a good enough liquidity. So we're going to provide a price feed". But the other way where we're going to use some TWAP Oracles as well to create markets has positives and negatives, the positive is that I can create any market that has an AMM pool. The negative is that it can get really degenerate really fast.
Anna (00:15:30):
You had mentioned something a little earlier in this episode as well, Trident, but I don't know what that is either. And I know that there's a few products that you've created this year, so maybe we can go through some of them? Maybe Trident is not a product actually. I literally have no idea what that is.
Joe (00:15:46):
That's perfect. I'm glad you asked. This is actually some critique that DCinvestor made the other day. It was like we get too cute with the names and that becomes complicated. If you're talking about an iPod or an iPad, people are going to learn those terms, but for esoteric lending markets or capital markets, it's a little bit, I don't know, that you can stay cute with the names. But so we've built a few things this year. Mainly Bento is, I would say, our major development. Bento is a strategy vault that is also an application host. And so tokens come into BentoBox, those tokens are taken and exercised in strategies. And then a virtual balance is made on top, available for applications that you can build, like Kashi, like Trident, etc.
Anna (00:16:39):
When you say "strategy vault", is that like Yearn strategies? Is it similar to the idea that you put money in and behind the scenes there's all sorts of mechanisms happening with your funds? You don't have to know about it. You don't care about gas prices. Is that what you mean when you say strategy vault?
Joe (00:16:56):
Totally. So it goes into the vault and then there are strategies that are attached to it. Right now, we only have a Compound strategy, but we're adding an Aave one, and we're integrating with Yearn more deeply as well. But basically those tokens that you deposited into Bento are then getting exercised in the best yields. And so up to 80% underlying of any particular tokens. And so that allows us to build applications on top that have access to a virtual balance, which is a claim to tokens underlying. So Kashi, you deposit your collateral and that collateral isn't being used, that collateral is actually taken and being used in a strategy underneath.
Anna (00:17:40):
Oh, wow! And you said other protocols could also be built on top of Bento. So Kashi was this 2, just very narrow lending, 2 sides, 2 tokens...
Joe (00:17:53):
Isolated lending.
Anna (00:17:54):
Isolated lending, sorry. But what else could be built on that?
Joe (00:17:56):
So we built our next AMM, Trident, on top.
Anna (00:18:00):
Ah, there's Trident. Okay.
Joe (00:18:00):
Yeah. So Trident is another application on BentoBox. And we built a lot of different features into this, but consider this: I'm an LP, I'm an LP on Sushi right now and we're using V2 contracts. And my underlying collateral is only used when a swap happens and then never all at once. So if you think of the capital inefficiency of that, say, I have 50 markets with ETH in it, and in terms of volume, let's say TVL for ETH is $1,000,000,000 for that ETH. At any moment, there are probably $20 million worth of swaps actually occurring. And so $880 million of that ETH... No, sorry, $980 million of that ETH, it's not this hard, is being underutilized. And so that up to 80%, so we would take 800 million of that underlying ETH and that we'll get invested it into a strategy. And then the other 20% would be made available as cash on hand for the swaps that are occurring.
James (00:19:16):
But the swap pool would behave as if it had the entire amount?
Joe (00:19:21):
Exactly.
James (00:19:21):
So it would give you the lower market impact implied by the higher amount, but it would only have immediate access to a small proportion of that. The rest is invested earning returns.
Joe (00:19:34):
Yes. But if you think about it, if you spread it across the entirety of the market, the way that we had engineered BentoBox, it coalesces at the base layer. And so if you think about it in the entirety of the market, let's say that we have a billion in TVL of ETH, and then there are 800 million invested, how many trades are going to happen, that occur, that are going to be more than $200 million in ETH. It's like the price impacts would blow you out anyway. And so that 20% is immediately available. And then once it's been withdrawn, let's say that I am a crazy whale and I have 250 million in ETH locked in Bento and I trade for 200 million, then rebalance is called onto the strategy and that returns another 20% and it creates this inverse log curve of withdrawal. And so I can do 200 million and then whatever, the next 20% comes back and then I can withdraw my 50 million.
James (00:20:37):
So you may have to wait a little while until Compound has the liquidity to give you that cash back, but you're going to get your money back relatively quickly.
Joe (00:20:47):
In almost 100% of the cases, you will be able to have access to your money instantaneously. There are only a very narrow set of circumstances and narrow set of whales who will not be able to access that instantaneously.
James (00:21:00):
Yeah. I don't know about you, but I'm not checking around a few hundred million dollars on SushiSwap this week.
Joe (00:21:07):
Yeah. Right. Me either, man.
Anna (00:21:16):
Okay. So here's another one, MISO. You just mentioned another thing. They tend to have themes, although what is Trident? Kashi, Bento okay...
James (00:21:26):
The naming is all off there!
Anna (00:21:27):
MISO... But Trident? Is it like the gum or is it like the fork?
Joe (00:21:36):
Exactly. You fell onto it! So we've got a lot of shit for being a fork, a lot of shit, and we spend a lot of our time getting bullied on Twitter about being a fork by people who are bag holders of other projects. And so we just decided to lean into the fork narrative, as a joke. And CryptoCobain, he made this joke that the Trident is a fork, if you think about it. And so we thought that was going to be a great name for the new protocol, Trident.
James (00:22:09):
Is Trident a three-pronged approach though? Are are there three strategy prongs to Trident? Or is it just about the fork?
Anna (00:22:18):
The metaphor stops somewhere.
Joe (00:22:23):
It's about a fork. But we built Trident as kind of an AMM factory. And all of our pools conform to an IPool interface. So you can implement any pool type that you want and add it to the master deployer. And then now we can route to it.
James (00:22:42):
So you could have several different types of pools following the same interface?
Joe (00:22:46):
Uh-huh...
James (00:22:46):
Something that's more like the traditional Uniswap pool or something more like a Curve pool or a Balancer pool?
Joe (00:22:54):
So we built 4 different types. We built a V2, our standard traditional constant product pools. And we built a concentrated liquidity as well. That's comparable to V3 in some senses. We also built a stable swap pool that permissionlessly allows you to add up to 32 pairs. So if you want to go from DAI to USDC, something like that, that's a stable swap, RenBTC to WBTC, that's a stable swap, where the equivalent exchange is expected not to have a huge price differential.
James (00:23:34):
And that's similar to Curve and Saddle?
Joe (00:23:37):
Yep, exactly. And then weighted pools. And we built all those.
James (00:23:43):
Weighted pools would be similar to Balancer?
Joe (00:23:45):
That's right.
James (00:23:46):
Yeah. I'm trying to figure out all the analogs here that can compare things, to understand.
Joe (00:23:53):
Sure. You got to understand that I want to keep everyone's name out of my mouth, you know?
James (00:23:59):
I'll say them for you!
Joe (00:24:00):
Okay. Cool, thank you! So Trident, we also built this routing engine called Tines. And Tines allows us to go multi route and multi hop, nest it. And so since we have these different pools that different tokens succeed at, for instance, stables tend to succeed at these stable swap pools, shitcoins tend to do really well in V2-style pools, majors tend, blue chips tend to do really well in V3-style pools. We want it to be able to have the ability to compose that in such a way that would give you best prices.
James (00:24:41):
So the benefit of the IPool interface is that the Tines routing engine can look at each pool, use the same interface to access them and find the best route across many different types of pools.
Joe (00:24:54):
Uh-huh. And it takes into consideration price impacts, gas, map topology. It's pretty rad. Oh fees too, of course.
James (00:25:01):
Very cool. So the Tines is roughly equivalent to all of these other DEX aggregators, but it works within the Trident ecosystem?
Joe (00:25:13):
Yeah, totally. And it's cheap. It's GPLv3. So if anybody wants to fork it and use it for their DEX agg[regator] or something else, we're happy to see that as well.
James (00:25:22):
Great.
Anna (00:25:23):
All right. So now MISO?
Joe (00:25:25):
Yeah. MISO is our IDO platform. It's a token launcher platform.
James (00:25:31):
And what does IDO stand for?
Joe (00:25:33):
Good question.
James (00:25:37):
Initial Decentralized Offering maybe?
Anna (00:25:40):
DEX offering?
Joe (00:25:43):
I've only ever heard it as Initial DEX Offering.
James (00:25:48):
Initial DEX Offering, I just Googled this, it's Initial DEX Offering.
Joe (00:25:53):
Yeah. That's what they call these platforms. I actually hadn't even ever thought about it, but like Polkastarter, etc., there are other... And this is a token launcher platform that we built, that allows you to do Dutch, batch, just like a regular token sale and we don't take anything upfront, it's completely free. You just can launch your token from there. Right now, we're in a gated launch phase, but the ideal long-term, if we can figure this out, is to have it be completely permissionless.
James (00:26:24):
Very cool.
Anna (00:26:25):
Is there any equivalent to this in Uniswap? I know tokens were launching themselves in Uniswap, kind of.
Joe (00:26:32):
No.
Anna (00:26:32):
They don't do this. You wouldn't call it an IDO launching there?
Joe (00:26:39):
Yeah, no, they don't have an idea of platform. We're expanding horizontally and I don't necessarily see Uniswap as our competition.
Anna (00:26:47):
Okay. That was actually a question that I had. I know that there's more products, so we won't move away from that, but that was actually a question of, nowadays, a year later, I mean, it sounds like it's very, very different from Uniswap. I guess you don't consider them competitors, but do you still get a lot of comparisons?
Joe (00:27:08):
Yeah, totally. And that's fine. And I think Uniswap sees us as competitors as well, but we really just want to have the best DeFi experience for everyone, with the best access to lending and swapping and tokens that are being launched. I mean, we had to stay competitive on the basis of how our pools were. The price impacts were too high. Capital efficiency was too low, but we're going to see a 2X capital efficiency over Uniswap, if not more, depending on what the rates on the strategies are.
James (00:27:45):
You said a little earlier that you were horizontally expanding, you're moving out into different lines of business. But it feels like you're looking to assist with the entire token lifestyle, go with a vertical expansion. You're starting with MISO for IDO's, building liquidity in the swap pools and Trident pools and moving into vaults and lending for the same tokens. Are you trying to build out to get the entire lifecycle of new tokens?
Joe (00:28:17):
Yeah, I think so. We have been working on some other interfaces that allow you to, if you're launching a token, to have like a Shopify experience for the token launcher. It's like, "I have to launch my tokens. Maybe I want to have, incentivized pools, I need the launch pools. I want to manage that. I want to manage a treasury". Those are the kinds of problems that we're approaching and we'll have those more deeply integrated, I think, post Trident launch.
James (00:28:48):
Interesting.
Anna (00:28:50):
Let's finish with the products that you have. Cause I know I have at least one more on this list, which is xSushi. Is that one of yours? Would you consider that a product?
Joe (00:29:01):
Yes. It's a very early one. You take SUSHI and you stake it into xSushi, which has a one-to-one exchange. Each time that harvest is called on the fees that were collected from the AMM, they're collected and then swapped for SUSHI and then deposited into this xSushi contract. And so you deposit SUSHI and you essentially can withdraw more SUSHI.
Anna (00:29:32):
It's not like a Flash Loan though?
Joe (00:29:33):
No. I mean, we have Flash Loans, too.
Anna (00:29:37):
Oh, God! What do you call them?
Joe (00:29:40):
We just call them Flash Loans, but they're on BentoBox. We have a lot of products, I think.
James (00:29:50):
That is a lot of products. We talked about growing the team a little earlier. How many of these products existed last December, when you joined? And how many of them were built out by new team members and how many were built out by outside contributors and then adopted into Sushi?
Joe (00:30:07):
So we had Bento, Kashi and MISO, those were in the pipeline, so to speak. Bento and Kashi were a co-development between Sushi and BoringCrypto. And MISO was a co-development with Chef Gonpachi, but really it took a lot to get those across the line, I think. The initial estimates for Bento and Kashi was November and I joined in January and they weren't done. And we weren't done until March. And then MISO was just really launched in May. So maybe 5 or 6 months differential from what we thought. But Trident is an all new design and I feel like a majority of the Trident team has been hired after the fact, after that initial team. We have working on it, we have Moody, Sarang, Gasper, Keno, David, we have a decent-sized team that were not there before.
James (00:31:12):
So when you described your role as professionalizing the team and adding structure, I guess a lot of that was taking these products that were in the pipeline and making sure that they get across the finish line and out into the world. Is that about right?
Joe (00:31:29):
No, for professionalizing, I just mean helping to encourage a work environment where it would be, because I've been at crypto startups, there are a lot of shitty ones out there. And in terms of toxic environments, that's something that I focus a lot on in my life. Once you create a toxic environment, let's say that there starts to be an overactive amount of misogyny or HR problems. You can create a really bad culture, and they didn't have that problem, by the way. I'm just saying helping guide them to a place where they could have a collaborative culture. That was what I would deem more professional, just make it a regular business. Why does it have to be some DAO, blah, blah, blah? We've been focusing on the same human problems for the last... The first cuneiform letter is about somebody complaining about the quality of copper of a supplier that paid it to him. These are the same problems that we've been dealing with since the beginning of humanity. And so just because we're a DAO doesn't mean that you can act crazy, right? Being a DAO just means we're more like a decentralized company.
James (00:32:46):
So your opinion here, it seems like you're saying that we don't need to throw away 10,000 years of human experience in order to work on cool decentralized things.
Joe (00:32:58):
Yeah, totally.
Anna (00:32:59):
And it also sounds like, just because we're at the cutting edge of something, doesn't give us the right to be assholes.
Joe (00:33:05):
Yeah.
Anna (00:33:05):
It's like cowboys. You want to shoot the guns and be bad.
James (00:33:14):
But I think we're all just assholes for fun.
Joe (00:33:18):
I mean, this touches actually something really close to me. If you look at, let's say, the Ethereum Foundation, for example, how many of those early founders, like Vitalik, and how many of them were like...
James (00:33:31):
Charlie?
Joe (00:33:34):
Yeah. I was like "Try to find a way not to say his name!"
Anna (00:33:36):
I was waiting to see who's going to say... Which one do you pick? Who's on the other side?
James (00:33:38):
There are so many choices, though.
Joe (00:33:43):
Yeah. Just because we're out there on the edge, doesn't mean that we can't act normal. We should treat the people that we're working with the same way that we would treat a co-worker. The idea that we're just not in the same dimly lit, fluorescent building doesn't mean anything.
James (00:34:00):
You think we've gone and thrown the baby out with the bath water on this one.
Joe (00:34:04):
Yeah, totally.
James (00:34:05):
I think I agree with that.
Anna (00:34:08):
So one thing, Joe, is there any other products that we did not cover so far? You said there's a lot.
Joe (00:34:14):
Oh, there's Shoyu. Shoyu is the NFT platform we've been working on.
Anna (00:34:18):
Ooh! I actually had a little NFT question coming up, so maybe we can explore that!
Joe (00:34:24):
One of our developers wanted to work on an NFT platform. And so they applied for a grant and got one. And they're currently building it out. I think we're going to see early alpha next month sometime. And yeah, that's going to be great, creating, swapping, a good space for artists just all around.
Anna (00:34:50):
This past week, as we're recording it, Sushi was in the news, the crypto news again, but not for the fork and not for product releases, but for a found vulnerability. I think this episode will only come out in two weeks and I know this is quite fresh for you, but I would love to hear... Well, I actually want to understand which product, first of all, was this in and what was it exactly.
Joe (00:35:16):
So it's in MISO, which is our IDO platform or token launcher platform. And this occurred during the bitDAO sale. So bitDAO sold 350 million USD worth of bitDAO tokens. And that was what it was at risk. Luckily I get a DM from Dan Robinson, shout out, that says "You're up!" And then I got another one from Georgios from Paradigm. And keep in mind, this is on the heels of me just absolutely publicly eviscerating them for what I deemed to be self-dealing for Paradigm and one of their L2 platforms. And so, yeah, fate loves irony, of course.
Anna (00:36:10):
So these are the folks that were going to save you, you didn't know. Okay, so what happened?
Joe (00:36:15):
I think, it gets a bit wild on Twitter. But so they messaged me and Sam, Samczsun, has found a specific vulnerability, in which our msg.value can be utilized more than once, using one of our batching methods. This is why everybody says "use WETH and not ETH", the reason being is that we have a uniform interface, if we're all using ERC-20, and in this instance, it does not. And so msg.value, you make a deposit and msg.value can be used multiple times. And that would be great. It actually wouldn't matter. They could buy a bunch of the token and they would just be stupid, bitDAO would just issue a new token and say whatever, "Sorry", cause this is an initial launch. So we're not talking about something that is already entrenched. But we also had a refund method that allows you, if you overcommit, to withdraw. And so you could overcommit the entirety of the ETH, increasing your balance, and then you could withdraw at the end. And this even could go after the auction was closed, before the auction was finalized.
James (00:37:29):
So the net effect is that you could steal the whole proceeds of the auction?
Joe (00:37:33):
Yes.
James (00:37:33):
Wow!
Anna (00:37:33):
Would you have had to do this in batches? Or could you do this in 1 or 2s? Is this like a funneling? Is it you have to deposit, take out deposit? Or is it like..?
Joe (00:37:45):
You could have done it atomically, as long as you were inside the gas limit.
Anna (00:37:49):
Wow!
Joe (00:37:49):
Yeah. Pretty much sucks. That was a pretty stressful day.
Anna (00:37:54):
But it didn't happen, right? This, what you're telling, it's a vulnerability, not an exploit, so...
Joe (00:38:00):
Yeah. All the funds were safe, but the thing about vulnerabilities, it's information asymmetry. If that information is to get out, the fact that anybody knows it, somebody discovered it and then they approached us. But the fact that, if there's any information leak on that, it could be exploited. And so we're kind of sweating and looking through mitigation efforts, with a help from our partners, ImmuneFi and Paradigm. And so we're looking at mitigation methods, one of the ways that we could have done it, first one, was just buy the rest of the round and call it a day. And then have them finalized. The other strategy was a white hat attack, where we become the admin for the auction. We take a Flash Loan to commit the entirety of the remaining, then finalize the auction. And this is a great strategy, I think, it's a nice, happy medium, there are problems with accounting that we need to sort out in the end. But the problem is the information asymmetry still, we need to get admin from bitDAO.
James (00:39:15):
And you don't want bitDAO to know about the vulnerability.
Joe (00:39:19):
No, we don't mind that they know about the vulnerability, but we want to wait till the absolute... Cause people don't know how to deal with these situations. We want to wait till the absolute last moment to reduce the probability of information leakage. So we build out this white hack, it takes about two hours. Then we approach bitDAO and they say, "We don't like this approach. We would just like to ask some people who are going to contribute to this auction, who were already planning on participating, to participate now. And then we will cover the maximum." Cause Dutch auctions end, once you reach a maximum price, they will pay to the maximum price and then they will call finalize on the auction. And that's what they did. They put it together, bitDAO was great. They did it in, I want to say, 20 minutes, something like that. They got the commitments together, had the committers commit and then finalize the auction very quickly. But we needed to have the white hack prepared, because we couldn't really approach them, cause then we would cause more information leakage. So there was still one vulnerable contract, we had NCG. So that NCG auction was coming and that was the only other active ETH MISO token auction. Luckily it was closing in 4 hours. By the time that we had resolved the bitDAO auction, there was maybe about 2 hours left for NCG.
Anna (00:40:54):
Wow! So it wasn't just going to affect that one that you had found it for, but rather any that had already started at that point. Did you stop at that point? The chance for anyone to launch another one?
Joe (00:41:08):
Oh, yeah. Definitely. That's the first thing we told the PM. It was like, "No more, no more launching of auctions, please!" But only ETH-based auctions were vulnerable, because it is wrapped around this message dot value. So we did have a concurrent one that's actually still running. That is another bitDAO auction, but the sale is in SUSHI, which is an ERC-20, so we're totally fine. But NCG, we had to keep quiet even after we had accomplished what we needed to with bitDAO, because the same vulnerability existed, although to a lesser extent, we're not talking about $350 million, we're talking about 8, a loss that Sushi could sustain. The other one is like the end, it's the asteroid hitting the dinosaurs.
James (00:42:03):
Do you think, if there had been losses, that Sushi would be responsible for those? I guess, the question behind the question here is we go through a lot of effort to try to get assurances on these contracts. I know that you went through audits, and I did some informal review of MISO, and that multiple teams and individuals failed to catch this. What is the right way to handle user losses and these sorts of situations? Because we obviously can't prevent them.
Joe (00:42:36):
Yeah. We had 2 audits and we had a formal verification, a formal verification is supposed to be a lot more... Assuming that it's complete, it's supposed to be robust. And then we had informal audits. We had people review it. I wasn't gonna blow you up, James. But yeah, James helped us.
James (00:42:55):
Oh, I'm happy to blow myself up!
Joe (00:42:55):
Even when we were talking to some of our auditors, some of them were like, "Hey, sorry we missed this!" And I was like, "So did we, so did everybody." But back to the question, which is how do you deal with [it]? One, I feel a sense of responsibility for that sort of stuff. I would want there to be some amends, but the Sushi treasury is much less than $350 million. So what do we do? Do we inflate all of SUSHI to pay back these stolen funds? Or... I just don't know. And so I think long-term... This is it, everything in the world is vulnerable. That's why they have cybersecurity insurance. That's why you have car insurance. Even if it's self-driving, it doesn't matter. Something, a tree can fall on it, everything can fail in some sense. And so everything in this world has actuarial risk or memes. And this is the former.
James (00:44:03):
Do you think the space is going to move towards insuring this kind of risk in addition to getting audits? And what's the role of audits versus insurance in the future?
Joe (00:44:16):
I think audits and formal verification will be a way to underwrite the insurance. Actually I come from the insurance world. I worked at USAA for quite some while, helped them build some blockchain things and some insurance things. And the one thing that our industry is too immature to know is that there's huge risk appetite in reinsurers. And so when I insure something, reinsurers are like, "I break off the most dangerous traunches and I sell them to reinsurers". Let's say that I have an umbrella policy for somebody that's $1,000,000. My expected claims are probably going to be less than $100,000, but 100,001 to 1,000,000, those losses might put my insurance company out of business. So what I do is that I break that risk off and I sell it to a reinsurer. And that's how I see it happening in the future. I even think [that] traditional reinsurers, like Munich Re, Swiss Re, Lloyd's of London, I think that they'll have appetite for this sort of thing, especially as expertise grows and we can put in affirmative actuarial risk around something.
James (00:45:34):
So the main thing we're missing right now is maturity of the industry, so we can understand the risk better. And we can take that risk that we understand and take it to reinsurers or the traditional insurance industry.
Joe (00:45:48):
Yeah. I think smart money will do that. And this is something that I think a lot of platforms are asking for. And so this is probably the next actual DeFi primitive, insuring protocols as a whole, because I would love for Sushi to be able to purchase coverage. For this Trident launch, I'm nervous as shit, even though we're going to have so many audits, formal verifications, code contests, bounties, but still there's risk. And so it would be better to offset that risk.
Anna (00:46:21):
To wrap up the story of this exploit, has it all been resolved? You mentioned you had the different kinds of ways to mitigate it, but what do you do now with that?
Joe (00:46:31):
Yeah. So we're going to improve our contracts. The first thing that we're going to do is...
Anna (00:46:36):
Disallow ETH maybe? Or..?
Joe (00:46:39):
Yeah, that's probably not a bad design. But we should do post-checks in this virtual balance of what we say, is there an ETH matches what is underlying an ETH? We should do that for all tokens. I think that that's like a revert check. But I don't think that's satisfactory enough, especially because we have encountered some intricacies, that are not vulnerabilities per se, about these contracts. And so we just don't feel confident in the set anymore. And so we're going to go through another audit, as well as make some our own internal review on top.
Anna (00:47:18):
Okay. So you're going to put the product on hold for a bit, or pause the service in a way.
Joe (00:47:25):
We're not going to have any auctions until September. So we're going to have time to thoroughly review and make sure there aren't any additional vulnerabilities.
Anna (00:47:34):
Got it. A lot of DEXes right now are at least experimenting with L2s, there's a lot of dApps in general, a lot of DeFi projects are thinking of having 2 instances, one on the main chain, one on the L2 chain. Sometimes people are looking at even other EVM-compatible chains to potentially deploy to. What is the strategy right now for Sushi?
Joe (00:47:57):
Yeah, sure. So we're taking this approach of going everywhere. And so we are one of the first DEXes to deploy on all these individual chains. We have a huge presence on Polygon, Fantom. We have deployments on OKEx, Heco, BSC, xDai, Harmony, Avalanche, Celo, and Palm now.
James (00:48:19):
That's a lot of places.
Joe (00:48:20):
Yeah. So L2s are really not a big deal for us. The deployments are approximately the same, as they are for our main chain. There is a bit of fragmentation of liquidity. But our current understanding is that that liquidity is going to remain on that chain anyway. So it's not really a fragmentation of that liquidity.
James (00:48:41):
Yeah. We can't really avoid that, I think.
Anna (00:48:42):
There's a few missing from what you described. For example, you're not like... And I know you you've already said "Don't compare us to Uniswap", but I'll do one last one. So they're also on Optimism. You're not. I understand that there was some, something went down there. Kerfuffle. Okay.
Joe (00:49:04):
Kerfuffle. Yeah. So what happened was we were excited about Optimism, we really wanted to deploy there early. In fact, I think I tweeted something to the effect of whatever the Genesis block is, we'll be deployed in the next block. And so we helped them early on, debugging some of their tooling that wasn't working, being one of the first projects to deploy there. And we had worked on our deployment, it seemed ready to go. And we had a call with Optimism to say, "Hey, we're ready to go". And they told us that we couldn't go until Uniswap deployed. And we weren't super happy about that. Especially after we had worked on their platform. And sometimes one of the things you do is that you lend your credibility to these early projects. And we were lending them this credibility that, I guess, they just, in my opinion, don't deserve. We were getting ready to deploy and basically we had to stop so that their preferential partner, Uniswap, could deploy, who wasn't ready. We had to wait until they were ready. You know, that's nice! But we're ready and we want to go and to assert the preference. The problem is all around protocols actually. There's this idea of credible neutrality for operators. They have to be credibly neutral, because there's a lot of things that a sequencer or an operator or whatever you want to call it, a block producer can do, like transaction censorship, etc., like unfavorable block ordering, like censoring, there's a ton of things that you can do in that position. And so we wanted to... If there's no credible neutrality there and the preference is like what if Uniswap says we don't like Sushi's contracts? Will you censor them? Maybe they will. And so we need a credible neutral actor. And so that's why we're going to prefer Arbitrum for our Optimistic rollup. And we're going to take a wait-and-see approach to see if Optimism succeeds. I think that they have worse opcode coverage. They don't have an on-chain prover. There are a lot of issues there. And Arbitrum seems ready to go and has really decent opcode support and leadership. So I think we're going to prefer that.
James (00:51:29):
I think it's interesting that you bring up credible neutrality, which was introduced in a blog post by Vitalik 1,5 year ago. Vitalik and Hayden from Uniswap and Karl from Optimism are all old friends. Do you think that this is a example of people not behaving neutrally to favor their in-group, their friends?
Joe (00:51:52):
Yes. I say that with an asterix, because this has happened to us with another project that had investment from a16z. We had a better deal for them and they were essentially coerced, I guess, into not launching on Sushi and preferential for Uniswap. Had that never happened, I wouldn't be so whining about it, but that did happen. And we lost a lot of TVL due to meddling of venture capital. And so my gut instinct on this, the first go, was that this wasn't nepotism, that this is something orchestrated, because you look at the ones, that Optimism is a Paradigm a16z investment, Synthetix is a Paradigm a16z investment, Uniswap is a Paradigm a16z investment. It's like, "Hmm, I see". It doesn't take that much pattern matching to figure out what you think is going on here.
Anna (00:52:50):
But I know... Even the names you just mentioned just recently, there was, maybe not that recently, but there was some talk about the SushiDAO potentially... Or there was a proposal to give tokens to, I don't know if it was one of those VCs or a bunch of VCs, these tokens at preferential prices. Was it, in a way, because there's this feeling of disadvantage? Because you don't have one of these partners, in a way, in the ecosystem?
Joe (00:53:15):
Yes. I think that was the motivation, but I would say that I am against this deal and I think I have come out from the start. There are so many things wrong with it. Introducing Sushi into this idea of being a security, just like giving a gigantic discount to people that were probably going to market buy anyway, I've never been in love with this idea.
Anna (00:53:39):
Yeah. What happened to that? Is that still being considered or it didn't pass, did it?
Joe (00:53:44):
No. So it was just a proposal in the forum. And on a basis of our feedback from our legal team, we're not gonna move forward with that, cause it introduces us into so much risk.
James (00:53:53):
Very interesting. Saying that you feel like you're at something of a disadvantage and that you feel like the shared investors for these projects are one of the reasons they're giving each other preferential treatment... Do you feel like there is an in-group in the Ethereum ecosystem that you're not part of?
Joe (00:54:11):
100%. Even just working on these research problems I'm coming from Ethereum research, like ethresear.ch, where we all share information and we collaborate, cause I was in protocols before. And so could you imagine, if Vitalik worked on something and then didn't open source it or didn't make it publicly available, try and make it proprietary. It is a really sad situation inside DeFi, I think.
James (00:54:41):
Isn't Vitalik a notional contributor to Optimism and Uniswap?
Joe (00:54:48):
I mean, he came up with the idea of AMMs. That's that blog post. I mean, he came up with a lot of different ideas that he publishes in ETH Research and in his own blog, but I wouldn't lump him into that. Excellent working on protocols with him. But the point I was making about ETH Research, ethresear.ch, is this idea of free and open working space. I've tried to work on other DeFi primitives that are coming out that interests me, like things that Paradigm are working on, but their research is proprietary and I'm boxed out because I'm "a competitor". And it's okay, then we'll fight in the dark or whatever. Like fight in the shade, that's what they say in "300".
James (00:55:34):
It seems like for you, this is about the intersection between Ethereum and Silicon valley, the more traditional investment space.
Joe (00:55:44):
Totally. Yeah, I think so. And we're moving towards a future, where we're comfortable letting go of decentralized ideas, so long as it is financially beneficial for me. And that is just TradFi with blockchains.
Anna (00:56:01):
Yeah. I often get this feeling... I never wanted to work in finance. I don't like finance. I like this cool tech!
Joe (00:56:09):
Exactly. I mean, I feel the same way. I remember sitting in the car, I was with my wife, I just was like, "You know what? I think I like economics". And she's like, "I know." And I was like, "I thought I was a software developer all this time!"
James (00:56:27):
It's so funny! I don't know. Cause I feel like... I've been involved in this for 7, going on 8, years. And I feel like that's been the long-term arc of the space, away from decentralization and towards things that capture money.
Joe (00:56:44):
Let's push back against that. That idea seems really good for business in a short-sighted sense, but misses the long-term idea that we wouldn't be here, if good old Hoskinson had his way and Ethereum was a business and he was the CEO. And if they had closed the source on one of the clients. Or Linus Torvalds didn't give away Linux for us or Satoshi said, "Actually I want to turn Bitcoin into a business". If it wasn't for these pioneers, we wouldn't exist here today. And if you think that what you're building on top of the chain is, in some way, business proprietary, I have some bad news for you. I think that there are a lot of people who are smarter than you, who saw the incentives for being more collaborative.
James (00:57:38):
Very interesting.
Anna (00:57:40):
I think together we've gone on quite a journey from last year's DeFi Summer, the episode that we had done, to now and all of these products, all of these developments for Sushi. But what's next? What's happening in your world? You'd mentioned you're going to pause MISO for now, but what else is on the roadmap? What do you see next year looking like?
Joe (00:58:01):
I mean, we're rolling out products just like crazy. And so we're going to continue to improve what we have and roll out new products. And we're going to continue to scale horizontally, until we feel like we've approached critical mass in that sense, and then do better, vertical on the product. We are going to finish up Trident. Then on the roadmap, we have some improvements that we'd like to make to our existing platform. We want the UX to be what I would describe as "normy-friendly". And that requires us to enhance our gas relayers, integration of the products together more tightly. That's what's in the near term.
Anna (00:58:41):
Are you excited?
Joe (00:58:42):
Yeah. I'm crazy excited about the future of Sushi. That's the only thing that I... Cause it's stressful, I'm not a billionaire and so I have not billionaire problems, I have wife and kids and my normal life. Sushi is an immense amount of stress at some moments and that manifests itself sometimes, and crazy shit posting on Twitter. But I wouldn't do it, if it wasn't exciting for me, I wasn't excited about the future. I can't do anything that I'm not excited about.
Anna (00:59:17):
Do you think it's a helpful project, in a way, Sushi? It's like, you about it, it's the antithesis of some of these trends.
Joe (00:59:26):
Yeah. I think by the end of this year, we'll be so differentiated from anything in the space that people say, in hindsight, it was inevitable. In hindsight, it will seem inevitable for Sushi. Props to Maki for when the absolute darkest days came for Sushi, before I was even there, but I likely would've given up, he stuck it out and kept it going. And I really appreciate that fortitude.
Anna (00:59:54):
Cool.
James (00:59:54):
Well, Joe, it's been a pleasure chatting with you, as always. Thanks so much for joining us today.
Joe (01:00:00):
Thanks. A pleasure to be here.
Anna (01:00:03):
Yeah. Thanks so much for being on the show. I want to say thank you to the podcast, producer, Andrey, the podcast editor, Henrik. And to our listeners, thanks for listening.