18 Months in DeFi

devcon

Oh 💩

There’s nothing more sad than looking at your blog and realizing you haven’t written anything in years. The second most sad thing is realizing you said you’d commit to writing more in 2020 only to find that it’s already mid-May 🤦‍♂️. I won’t dwell too much on my failure here. I’ll just say, rather publicly, that I’m going to write more and that I’ll spend less time worrying about how it looks and whether something should be a post on (insert social platform), tweet, tumblr (if that’s still a thing), or a blog entry ✍️. For simplicity sake, I’ll concentrate on being more consistent on the blog. Technical writing and note taking will probably still be in the form of a gist.

Motivation

Why start writing now? Well, honestly, if I don’t, it will never happen and recently I’ve had a few things I thought I’d be interested in writing about. As we enter into our 3rd month of staying home, I’ve been catching up with some old colleagues that I seem to have neglected longer than my blog. A common question that naturally comes up after a long period of no contact is

". . . what the #*@& have you been up to ?"

and I don’t have a great answer for it. I find myself sort of dodging the question and sounding WAY too Californian to East Coasters with my answer of “you know, some work, a little surfing and hiking.” 🌴🏄‍♂️🥾 Mostly because the answer is, or at least I thought, kind of complex and too deep of a rabbit hole to dive into over Zoom. I’ve started to realize that most of this is a failure of communication on my part and I should be able to articulate what I’m doing in appropriate levels of technical detail. Writing some thoughts down is a perfect way to get organized with a coherent answer without worrying about droning on and on 💤.

NOTE: This post is written with the intention of helping me explain to my Mom that I didn’t spend bits of my career catering to drug dealers, initially at a Swiss Bank, and now in crypto. It is not going to dive into technicals like how we parse event logs or determine state using diffs from the chain.

Decentralized Finance

I work in a space called decentralized finance (DeFi, if we must have a short, catchy nickname). The not so modest goal of DeFi is often stated as creating a brand new monetary system on top of public blockchains 🧐. If you think about our existing monetary system and some of its components, someone is trying to create a version of this in DeFi. Within the industry there are varied applications that focus on lending, exchanges, derivatives, prediction markets, and no loss games. All of this with a core property of being decentralized. As someone who comes from a traditional finance/banking background, I came into the space as a real curmudgeon.

Statler and Waldorf

I think about the regulatory moat 🏰 that banks have surrounding their businesses coupled with a healthy dose of skepticism about the utility of blockchains. Some of this comes from being exposed to the ICO boom of 2017 when there were plenty of dubious ideas like blockchain for dentists which once had a market cap over $2B and is now trading around a market cap of $4M. That combination is having me execute some real mental gymnastics 🤸 in order to have an open mind about DeFi applications.

The concept of decentralization is best perhaps explained in the context of bitcoin. Without getting into some long existential discussion of what money is, we need to do a little setup and consider some properties money has. Money is a store of value and a medium of exchange 💸. When we hand someone a $20 bill, that is money we stored (saved) being exchanged (transferred) to someone else. In the modern day, we are handling cash like this less frequently - Apple Pay, Venmo, Paypal, Zelle, and before that wire transfers and ACH payments allow us to move money without physically counting out bills.

Let’s break down how this works. You tell your bank to pay party A, your bank confirms you actually have the money there, then pays party A. The same happens when you use a payment app like Venmo. You type in the Venmo app a cute little message with emojis 🍕🍻🎉 to pay your friend. Venmo makes sure you have the money, then sends it over to your friend. The similarity here is that a centralized entity (the bank or Venmo) is required to determine that you have the money to send. Sam the Eagle

These financial intermediaries confirm balances, help settle disputes, and reverse fraudulent transactions. They can also be control points for law enforcement and government agencies. What would be required to do this without a middle man?

As it turns out, taking out the middle man and not physically transferring the $20 bill, rather sending a transaction electronically to someone brings up a host of potential issues. One of which is called the double spending problem. This is when a person could concurrently send the same transaction to 2 different people. Since there’s no physical exchange and no centralized intermediary to verify my account balance, nothing prevents me from only having $20 in my account and then sending $20 to Party A and $20 to Party B at the same time.

With or without a central party, we need to keep track of all the transactions that happen between all participants so we can calculate balances. The way we do this in the physical world is to keep an accounting ledger. In the digital world, who will be in charge of recording the legit transactions? Bitcoin solves these problems by giving everyone on the network (each node) a copy of the ledger (all the transactions that have occurred). It is public and replicated to every node.

As I mentioned this post is meant to explain to my Mom that the work I do is legit. I’m glossing over a lot of how bitcoin works. There are other details I won’t cover here like a 51% Attack 👺☠️, the consensus mechanism used (Proof of Work [PoW]), or byzantine fault tolerance. Feel free to look these up and learn about how they tie into decentralization and the transfer of funds. The important concept to grasp in this first step is to understand the thing we are trying to do (transfer funds), the challenges of doing it without a central authority, and the fact that bitcoin somehow achieves this.

We didn’t really get into DeFi here. Stayed tuned for the next update when I write about Ethereum, hopefully get into DeFi, and ultimately into the DeFi thing I’ve been working on called MakerDAO.

Written on May 16, 2020