You've probably seen that over the past few months Bitcoin has once again been frequently in the news with the price reaching new all time highs.
But did you know over the last summer the DeFi space (Decentralized Finance) has exploded in popularity? And this has little to do with Bitcoin.
DeFi (Decentralized Finance) is a term meant to generally describe cryptocurrency and blockchain based projects that provide financial services. These new applications do things like operate exchanges (DEX - Decentralized Exchange), offer peer to peer loans, operate derivatives markets and sell NFT art.
Many of these applications are built as applications written in languages that can run on top of blockchain projects such as Ethereum. They are decentralized because the blockchain they run on is decentralized and every computer operating a blockchain node is running a copy of the program.
This means these decentralized applications are running and available anywhere in the world 24/7 and anyone can interact with them. Ethereum, for example has been billed as "The World Computer".
Smart Contracts are simply programs that run on top of a blockchain. In this case I will be talking about Ethereum which is where about 80% of the DeFi action happens to be right now (but FYI there are many other competing projects).
So a smart contract is just software running on top of the Ethereum Network that anyone can interact with. You can make complex applications out of these to perform real world tasks. I'll list a few:
In each of these cases the intermediary is essentially just a piece of software running on a blockchain. There are many competing exchanges, exchange aggregators and derivatives markets (options and futures), and plain old payments systems in addition to the categories I mentioned above.
Basically, anything you can think of in terms of financial services is being built as a DeFi application right now.
There are several languages used for programming these smart contracts, and most of the jobs posted that I've seen revolve around Ethereum. Ethereum is the most established blockchain for building these kinds of decentralized applications. It is also the largest in value in terms of market cap.
For Ethereum the main language used is Solidity, which is a statically typed language (think Java) but it has syntax similarities to JavaScript.
Like Java with the JVM (Java Virtual Machine), Ethereum uses the Ethereum Virtual Machine to actually run smart contract code. The details are complex but the short answer is that means that many programming languages can be written to run on smart contracts on the Ethereum network aside from Solidity. Another popular programming language for smart contracts is Vyper.
Holy crap this stuff is complicated. I know I know, we are going really far down the rabbit hole. There are a lot of terms to learn and totally new concepts to understand. These decentralized systems throw some of the concepts you are familiar with out the window!
Enjoy this meme, it's probably what you feel like is happening right now:
I'll just touch on one other topic before we wrap this up. One of the big issues with DeFi is Contract Risk. Which means, you are trusting the code you are interacting with to no have bugs (or security vulnerabilities) which would cause all of your cryptocurrency (money) to disappear!
Contract risk is a very real concern. Because of this several auditing companies have started which sell services auditing the code of smart contracts. Many DeFi projects advertise that they have been audited and raise money specifically for the purpose of hiring auditors. Contracts must continually be audited as the code is updated.
As this space continues to get larger, there might be even more jobs in auditing than there are for developers (of course the auditors themselves should be programmers).
Hopefully this was a helpful introduction to a technology space that has been taking off astronomically. As I write this 39 billion dollars is locked in DeFi contracts right now.
I think the big takeaway is that this idea of smart contract programming is a specialized skillset for programmers. There are multiple blockchains smart contracts can be written for but Ethereum (using the Solidity language) is the big one. There is a lot of ramp up time when learning how to program smart contracts so most of these job postings are looking for experienced folks in this domain.
In addition to the backend (which would be the smart contract side), user interface programmers are still needed to make UIs using React, Angular or whatever popular front end system is being used.
Question? Leave me a note for when I do a follow up to this article!