Saturday, September 6, 2014

The Essence of How Bitcoin Works (Non-technical)

A less-technical introduction to the main ideas behind how Bitcoin works, including how money is transferred, who keeps track of it, and how everything is secured. This is the written version of the following video:

If, instead of how it works, you're looking for where to buy Bitcoin, I use coinbase. And for trading, check out bitcoin wealth alliance (both affiliate links).

The goal of this video is to explain the essence of how Bitcoin works without any jargon or scary math. It is not, however, an introduction to what Bitcoin is or why it matters, for that, check out the great intro video at So, on to how it works!

Bitcoin lets people exchange money electronically as easily as sending an email or text. To send money, you use what’s called a “Wallet” app to type in an amount, enter or scan a recipient’s account number, and hit ”Send”. The recipient will then see the money pop up in their account. 

So how does it work? At a basic level Bitcoin is just a ledger with account numbers and balances. When Bob sends Carol 5 Bitcoins, his balance goes down by 5, and Carol’s goes up by 5. There’s no gold or government-issued money backing these numbers, just people’s belief that the numbers are worth something, and a system that prevents unfair changes.

Account Security

Part of this system makes sure that no one can spend money from someone else’s account.  Every time you hit “Send”, your Wallet app sends a message to the Bitcoin network describing how the ledger should change, including the sender’s and recipient’s account numbers and the amount to transfer. So what’s to prevent a thief from creating a message transferring money from someone else’s account?

Bitcoin requires a kind of signature on each message to prove that it was created by the true account owner. The signature serves the same purpose as a handwritten signature on a paper check, but it’s based on math rather than handwriting.

The math comes from the world of cryptography, which is normally used to hide secret messages, but in Bitcoin, has been re-purposed to prove ownership. Each Bitcoin account number has an associated key that only the true account owner knows, and is used to create signatures by encrypting transaction messages. Others test the signature by trying to decrypt it. If successful, they know the signature was created by the true account owner.

In addition to not relying on handwriting analysis, these math-based signatures also can’t be copied and reused on other transactions, since the signatures are unique to each transaction.

Maintaining the Ledger

So these signatures keep unauthorized transactions from changing the ledger, but who exactly is checking the signatures, and overall, maintaining the ledger? Surprisingly, anyone who wants to!

One of the main goals of Bitcoin is to provide a decentralized system, meaning no single company or government can control it. Every time someone sends money, a transaction message is passed around to all the people who want to help maintain the ledger, who I’ll call “maintainers.” Each maintainer keeps a personal copy of the ledger and updates it whenever they receive a new transaction with a valid signature.

With ledgers spread all over the world, traffic delays--and occasionally fraud--can lead to differences in those ledgers.  So how does the world decide which version to use?

Like in other democratic systems, there’s a vote, but it’s a bit different than a typical ballot system. Maintainers “vote” by trying to solve a special puzzle based on their version of the ledger. The first person to solve a puzzle announces their solution and everyone updates to that version. 
So the vote turns out to be a kind of mathematical race, but it’s designed to favor the majority’s version. This is because the more people there are working on a particular version, the faster it will be solved.

Because new transactions are constantly being generated, this voting process repeats over and over again so maintainers can continually agree about new transactions.

Voting in a Decentralized System

So why math problems instead of, say, emailing in votes to decide on a ledger? Without a central authority to register voters, it would be hard to enforce one vote per person--a single person could create multiple accounts to vote more than once, or even millions of times.  The math problems prevent this by making each vote have a cost in computers and electricity.  This means out-voting, or out-solving the majority to take over the ledger would effectively require out-spending the majority--an unlikely event.

So the math enables a fair vote in a decentralized system. Two more important details about how it does this:

To prevent someone from pre-solving a puzzle to win the race, each puzzle builds on previous answers, and the winner is not just the most recent solution, but the ledger version with the most total solutions.

The puzzles are also extraordinarily special in that there are no tricks to solving them faster, other than by buying more computers and electricity. It’s this property that underlies the entire system, and gives people assurance that solutions are truly from the majority, and not a clever attacker.

Creating Money

A final note about how money is created. Every time a puzzle is solved, a small award is added to the solver’s balance, effectively creating money “out of thin air.” This award acts as an incentive for people to help maintain the ledger, and is in addition to small fees senders attach to transactions. 

Because maintainers acquire newly created money through computation, they are typically called “miners,” but their main purpose is really to manage the ledger, not to create money.  The voting system simply provides a convenient way to randomly distribute money into the world, and in fact, after 2140 no more money will be created.


In summary, Bitcoin is an electronic currency that’s based on a collaboratively maintained ledger. People transfer money by sending messages to maintainers describing where and how much money should move.  Maintainers make sure that the messages are from the true account owners by checking digital signatures. And finally, the maintainers reach consensus with each other through a math-based voting process. 

I hope this gives you a quick sense for how Bitcoin works. If you’d like to dive deeper into the rabbit hole, check out my 22-minute video: How Bitcoin Works under the Hood.

Monday, June 16, 2014

Google Glass Review: Technically Underwhelming, Socially Misjudged

At my day job I write Augmented Reality apps for industrial applications, and we recently got the chance to develop for Google Glass, both an Augmented Reality application and heads-up guide for a factory worker assembling an industrial pump. To the horror of my fiancé, I also braved the real world for a week wearing Glass on my face, to the grocery store, running, meetup groups, and at home.

Overall, I thought the technology was underwhelming, especially compared to the hype in the media and Google's advertising. The screen is small, the battery is terrible, the processor is barely fast enough to do anything on the Augmented Reality front. I fully expected it to directly connect my brain to the Google-plex, and turn me into some sort of man-machine hybrid that never forgot a face, with the entirety of wikipedia ready to drop in on any conversation.

What I got was a gadget that showed me text messages and let me take pictures without me having to fish out my phone--which is actually pretty great, but not change-the-world-worthy.

(not mention most of the demo videos are fake--there's no way to capture the screen display at a decent frame rate, and definitely not the display and camera at the same time, so be wary!)

I think people (myself included) are misjudging Glass, comparing it against some imagined set of capabilities, and maybe giving it a little too much credit--and fear--than it deserves. Glass is not innovative because it puts a screen on your face. That's been done for 30+ years in industry, military and academia.

Sunday, June 8, 2014

Haggling in America: 4 Things I Never Thought were Negotiable + Haggling Tips

For some reason Americans don't haggle or negotiate over price--you either pay the listed price or you don't buy it. Except at maybe garage sales or car delearships, but even there we hate it. The recently released Edmonds Survey of 1002 car buyers shows this:

"One in five Americans (21%) would rather say sayonara to sex for a month than haggle over the price of a car; 44 percent would give up Facebook for one month and 29 percent would turn over their Smartphone for a weekend if it meant avoiding the haggle" 

Somehow haggling has gotten a bad rap in American culture: it feels slimy, dishonest, price-gougey--just sell me the car for a fair price rather than marking it up $4k and making the sale into this time-consuming game of counter-offers. We get emotional about it. When I offer half for whatever the sticker price says at a garage sale (my standard rule), people get insulted:

"$4 is a VERY FAIR price for this chair, and you want me to give it to you for $2!? This was $199 when I bought it!"

Despite all this cultural disdain, I've discovered you can negotiate for a surprising amount of things in America, you can save a bunch of a money, and it's not hard (but maybe a little bit unsettling at first).

Here are a few of my tales about how I discovered this, followed by some tips. Note: I'm not claiming to be some master negotiator, but I think just by making the smallest effort you can reap huge savings.

Monday, April 28, 2014

DIY Air Freshener: Cut Up Christmas Tree Branches

The closets and cupboards that we don't open very often were acquiring some nasty dank and stale smells over time. Rather than buying an air freshener, we found out that cut up Christmas Tree branches worked pretty well as DIY air fresheners. It's been about 4 months and the closets still smell pine-fresh. Take that Glade!

XMas Tree Timmings make a great DIY Air Freshener
We cut up an entire mini-tree into several tubs of branches and put them in the closets and cabinets that don't get opened very much.

Sunday, April 13, 2014

How Bitcoin Works in 5 Minutes

This is a shorter version of my original "How Bitcoin Works Under the Hood" 22 minute video, and it's also geared more towards non-programmers.


If, instead of how it works, you're looking for where to buy Bitcoin, I use coinbase. And for trading, check out bitcoin wealth alliance (both affiliate links).


At a very basic level, Bitcoin is just a digital file or ledger that contains names and balances, and people exchange money by changing this file. When Bob sells Carol a lawn mower for 5.2 Bitcoins, Bob’s balance goes up by 5.2, and Carol’s down by 5.2. There’s no gold or government issued money backing these numbers. Bob is only willing to trade his real-life lawn mower for a higher number in this digital file because he has faith that other people will also trust the system.

So who maintains this ledger and makes sure no one cheats? One goal of Bitcoin is to avoid any centralized control, so every participant maintains their own copy of the ledger. One surprising consequence of this is that everyone can see everyone else’s balances, although the real system only uses account numbers and not names, so there’s some level of anonymity.

If everyone maintains their own ledger, how are all the ledgers kept in sync as money is transferred? At a basic level, when you want to send money, you simply tell everyone else by broadcasting a message with your account number, the receiver’s, and the amount. Everyone across the entire world then updates their ledger.

As a quick aside,  I’m describing how Bitcoin works for power users--people who help maintain the system. You can also just use the system to send a receive money, however, without maintaining a ledger.

Account Security

If sending money is as simple as creating a message with some account numbers, what’s to stop a thief, Alice, from spending Bob’s money by using his account number?  Like a pen and paper check, Bitcoin requires a kind of signature to prove that the sender is the real owner of an account, but it’s based on math rather than handwriting.

Sunday, March 16, 2014

How I Moderate Discussions about Controversial Topics in Large Groups

I run a meetup group called Controversial Topic Discussion Club in Atlanta. Complete strangers from college age to retired come together regularly to discuss topics like gun control, abortion, drug legalization, charter schools, religion, and many more. The group size ranges from 8 to 40. Having run over 50 events over 5 years, and watching several others help moderate events, I wanted to share my learnings about moderating discussions to keep them respectful, fair and moving.

Before getting into the details, I want to clarify that the goal of our discussions may be different than the goal of moderating a business meeting, where you might be trying to reach a decision. Our group is more focused on learning rather than reaching any consensus, or changing anyone's mind. We're also more interested in just having a good time rather than detailing out the next health care bill, so I would rather let an interesting conversation meander rather than keep it laser focused.


Before each meeting, I prepare a list of sub-topics, questions or interesting facts that I can use to re-start conversations. For example, on our Obamacare event, here are some of my sub-topics and questions: