I.

In December 2001, Argentine President Fernando de la Rua imposed an ATM withdrawal limit of $250 per week. The country was in a drawn-out recession since 1998, and the government tried to stop a precipitating bank run.

I was 12 at the time, and my whole life savings were $80. My godfather had given me a $100 bill as a gift a few years back, and I had spent $20 on a pirated copy of The Sims. I didn’t know what else to spend the money on—so that’s how I still had $80.

I didn’t understand the big fuss about a maximum withdrawal of $250 per week. If I couldn’t think of any way to spend $80 in years, why would anyone want to withdraw more than $250 in a single week? A Nintendo 64—my wildest dream—cost only $150. My dad patiently explained to me that most people had to pay rent, some had to buy expensive medicine weekly, pay for family expenses, etc.

He also explained that many people were very angry about not being able to use their hard-earned money. The government was forcing banks to maintain this $250 weekly cap. He looked sad and tired as he told me these things. Back then, he worked at a bank and was terrified of going to the office every day. Years later, he told me that clients with whom he had long-standing business relationships came screaming for their money, and there was nothing he could do.

Businesses went broke. Some people died, unable to buy vital medicine. Many consequently lost their life savings after the government “pesified” deposits, abandoning the peg to the dollar. Riots filled the streets, and a mix of desperate and opportunists sacked supermarkets. It was a dark time for the country and our family.

II.

In January 2009, bitcoin was born. I was still in college back then, age 20 and studying computer science. In 2011, I simultaneously took a course on Distributed Systems and one on Cryptography. During that semester, I came across the bitcoin whitepaper. What caught my eye was its claim to solve the distributed timestamping problem. We had spent a whole class or two at the Distributed Systems course exploring different ideas on how to solve it, and learning why none of them really worked.

This weird paper by some Japanese guy seemed to solve it in a really smart way, by combining cryptographic hashing resistance to pre-images, economic incentives, and without relying on any trusted central authority. No matter how hard I looked at it, I saw no holes. This “blockchain” data structure seemed like a wonderful discovery. Excited, I told my professor about it after class, and emailed the white-paper. He never replied. He didn’t seem to be interested. Maybe I was missing something? I let it be for the moment, but I couldn’t help thinking about bitcoin from time to time. Its technical design was marvelous.

Some months later, thanks to a friend forwarding a newsletter, I found bitcoin again. This time, I managed to get hold of some coins. I was thrilled! Gavin Andresen had set up a website called “Bitcoin Faucet” where he would gift you a small amount. But first, I had to get my own bitcoin address. I was a total n00b back then, so I googled around and found a website called “mybitcoin.com” which gave you an online bitcoin address. Awesome! I created my account and got my first 0.02 BTC—worth 16 cents, because 1 bitcoin was worth $8—using Gavin’s bitcoin faucet. Thanks Gavin, by the way. You opened the path for so many…

This is how I got my first ever fractions of bitcoins. It was May 2011. As some of you may know, this doesn’t end well… In July 2011, the website mybitcoins.com either got hacked or the owner fled with everyone’s coins. I took note: bitcoins are easily stolen, and I moved on. I didn’t touch bitcoin again for years.

III.

In April 2014, it was late at night on a rainy Tuesday, and I was still at the office. After pressing ENTER on my keyboard, a long string of alphanumeric characters appeared on my terminal, and nerd chills ran through my whole body.

For the past 4 months, I had been working as a programmer for BitPay, a bitcoin payment processor. I had been coding the company’s open-source bitcoin toolset. Bitcore, we had called it. Anyone could use it to interact with the Bitcoin network and build their own apps. We had recently released the latest version, which had almost any function we could ever dream of. I had stayed late at the office because I wanted to run a fun test: to craft and send a bitcoin transaction using only tools we had created. And, to my delight, I had just succeeded.

First, I obtained two bitcoin fragments I owned, called “UTXOs”. A UTXO, short for “unspent transaction output”, is like a digital locker. Inside lie some fractions of a bitcoin, called satoshis, or sats for short. The person who owns the key to that locker can open it and move those sats. He or she can do this by building a bitcoin transaction and sending it to the bitcoin network.

So, a UTXO is simply an unspent output from a previous transaction that is waiting to be used as an input in a new transaction. Think of it like having a $10 bill. That $10 bill is a UTXO. When you buy a $7 sandwich, you hand over the $10 bill (the input UTXO), and you get a new $3 bill back as change (the output UTXO). The $7 goes to the sandwich shop in the form of a new UTXO that only they can spend, and the $3 is a new UTXO that you can spend later.

The sum of all the sats contained in your UTXOs (those for which you have the key to unlock) is your bitcoin balance. Normally, a bitcoin user manages their UTXOs from their wallet software. But in this case, I was making everything from scratch. This was an artisanal, hand-made bitcoin transaction™. No wallet was going to help me! So, I got the info by manually copying their coordinates from a transaction I had received earlier.

Whenever we craft a bitcoin transaction, we’re opening up some UTXOs, taking the sats from inside them, and creating fresh UTXOs to store them. Once opened, a UTXO is destroyed forever, or “spent”. I like to think of it as opening the digital locker with the corresponding key, and moving the contents to new digital locker I configure right there. The bitcoin protocol assures that no sats are lost or created in the process. If you tried, for example, to spend three UTXOs of 1000 sats each, but create a new UTXO with 3001 sats, the network would reject it.

In my case: I had two UTXOs totaling 0.2 BTC, and I created a single output UTXO for 0.2 BTC, the same amount. My transaction had all the information needed, but it was missing a key element: my signature. The unsigned transaction is analogous to an unsigned check: it has all the important info but is still not valid. The signature would prove to the bitcoin network that I indeed owned the UTXOs I was attempting to open. I wrote some code to materialize my private key and perform math operations with the raw, unsigned transaction. This math is such that the result will only be valid if I have the correct private key. This is what prevents anyone else from moving my coins. The result: my signed bitcoin transaction.

Once it was signed, everything on my end was done. I only had to push it to the bitcoin network and wait. This means, once again, relying on my own code—remember, I obstinately wanted to do everything myself! I opened a connection to a public node in the bitcoin network and sent a message notifying them of my new transaction. A few instants later, it acknowledged reception. According to the bitcoin protocol, this node would propagate the transaction to all other nodes connected to it. Now, my transaction waited in a sort of “waiting room” with many others, which is called the mempool. Some minutes later, it got confirmed by a bitcoin miner. My transaction had been added to the global, shared, permissionless, bitcoin ledger!

I sat back on my chair in amazement at what I had just done. I created a private key with code I wrote myself. From this, I derived the corresponding bitcoin address, again using code I wrote myself. I then sent it some bitcoin using a wallet. At this point, the only thing protecting those 0.2 bitcoins was my own damn code. What an empowering and scary moment. I then created the transaction, sending the coins back to my wallet. The transaction was created with code I wrote, signed by code I wrote, and sent to the bitcoin network by code I wrote. The rules of how those sats would be spent in the future were determined by me, and me alone.

It then dawned on me… The sheer subversiveness of what I had just accomplished. I had moved money, with my own bare hands. Literally no human, corporation, or government could have stopped what I had just done. As long as the bitcoin machine kept ticking, we had forever gained the freedom to transact.

IV.

This moment took years to digest. In many ways, it changed my path. I built my career working in crypto, and my mission has always been bringing this raw experience of economic freedom to as many people as possible. 10 years have gone by, and echoes of that night still define my life.

Today, my friends in Argentina save in stablecoins. The most daring use DeFi to lend out their savings and earn interest. There, inflation often exceeds 50% annually, and buying US dollars was outright illegal for 8 years. A country where it’s almost impossible to access traditional investments—or even savings instruments—turns stablecoins and DeFi into an economic breath of fresh air.

I’ve seen how these tools changed lives. One friend was able to save enough to buy an apartment. Another bought a laptop by taking out a stablecoin loan on a DeFi platform when no bank would lend to him. He went on to study programming. Countless others—including myself—used crypto to get paid by their remote employers or customers. We were all leapfrogging the decadent local banking environment and broke country.

When economic instability is the norm, being able to access a global, permissionless financial system is revolutionary.

This revolution created a new world. A world where no government or politician can change the rules one random day. A world where financial innovation moves at the pace of programmers, not legislators. A world where even a kid in South America can program their own money. All this is a very big deal for us down south.

I sometimes read from people in developed countries, offended by bitcoin’s carbon emissions or by the huge amount of scams in the crypto space. I can’t help but chuckle. They just don’t see it. To really get crypto, you have to have been fucked by some third party with power over your money. Be it a government, a bank, a business, or an ex-employer, it will come.

Given time, we all eventually appreciate the benefits of a neutral, open financial system. Argentines know this early on. The rest might take a bit longer. Lucky for them, bitcoin will always be there, waiting with open arms… immutable, unwavering, eternal, unbiased, welcoming, and untamed.

If you’d like to get an email when I publish, consider subscribing below:

Acknowledgments

Thanks to Lemu and deadpine for providing feedback on earlier versions of this post.

Cover photo by MidJourney

Comments and Discussion

Email a private comment