Sean King

My photo
San Juan, Puerto Rico, United States

Tuesday, June 14, 2011

Understanding Bitcoin: A Guide for Newbies

Bitcoin has been all the buzz in recent weeks, not only among geek types but in mainstream sources like the Washington Post, The Atlantic, NPR, and even The Economist. Even so, it's apparent by searching for #Bitcoin on Twitter that many still don't understand what it is and why both its liberating and subversive potentials are so enormous.

I think this confusion is due to the fact that most people who have explained Bitcoin so far get bogged down in the technicalities of what makes it new and revloutionary rather than analogizing it to what we all already understand--our tried and true banking system. In this post I'll attempt to explain Bitcoin in terms everyone can understand.


The Current System

In our current financial system we can transfer money to others in two general ways: (1) directly by giving them cash, or (2) indirectly by working through a financial intermediary (such as a bank or credit card company). For very practical reasons, most financial transactions today are conducted indirectly through an intermediary. Among the reasons for this are the facts that transporting large quantities of cash from one person/place to another is both dangerous and comparatively expensive.

Thus, we presently store our cash at banks which, if they do their job properly, are supposed to keep it safe for us, and we transfer that cash to third parties not by actually delivering cash to them but by ordering the intermediary to pay the money to their account or to their order. We do this by, for instance, writing checks, through the ACH system, or by wiring the funds. Banks charge fees for these custody and transfer services.

While this system has worked for centuries, it has several major drawbacks. I'll mention just a couple here. First, it's inefficient: All those transaction fees and monthly charges add up over time. Banks make BIG money for providing custodial and transfer services. These banking fees essentially represent an additional tax on commerce--one paid to bankers rather than governments. To the extent these fees can be avoided, our system of commerce would be far, far more efficient.

Second, contrary to the expectations of the naive, banks don't actually keep the money we deposit with them in a safe. Instead, they loan it out to other people--not people that we select or approve, but people of the bank's choosing. And, all too often they loan it to people who ultimately can't or won't repay. If they do that too many times and for too long, the bank eventually goes bankrupt and, unless the government bails it out, our "deposited" money disappears along with the bank.

Also, even if these borrowers do repay, it's the banker that keeps the interest they pay, passing only a very small portion of it (if any) on to us. Thus, in addition to the fees banks charge us for custodying our money, they also use it for their own purposes and profit.


Hypothetical Solutions

Well, what if you didn't need a bank to keep your money safe and transfer it? What if sending actual cash from one person to another was as easy as sending an email or a text message? For instance, imagine a world where you (and everyone else) could "scan" your cash into your computer and then email it to others whenever you want to "spend" it. We do this with things of great value every single day (e.g., legal documents, priceless pictures, etc.), so...why not currency?

Such a system has obvious advantages. First, your money never leaves your custody. There are no intermediaries and thus no transaction fees. And, maybe best of all, no checkbook to reconcile! In such a system your money would reside safely on your computer or smartphone (where it can easily be protected via encryption and automatic backups) until you "spend" it by sending it to others. Pretty neat, huh?

But, there are obvious practical problems with the scanning of money, right? I mean, once you scan your money, you now have two copies of it--the paper or metallic original and the electronic copy on your hard drive. If both are equally "spendable", then money will eventually become worthless since anyone and everyone can essentially counterfeit money by scanning it. And, once it's scanned, they could make multiple additional electronic copies at will, inflating the money supply even more. That sounds kinda fun for a while, but eventually everyone becomes money makers, the supply of money increases drastically, and runaway inflation sets in as prices are bid up by people with money to burn.

Clearly, that won't work.

So, how can we resolve these problems? Well, what if the scanner were designed in such a way that it destroyed the paper or metal currency the very second that it stored the electronic copy on your hard drive? That's clearly a better system since now you can't spend both the paper currency and the electronic currency. It's a first step, but it's not enough.

So, what if it were also possible to scan the money in such a way that the electronic copy on your computer couldn't be replicated. Or, more precisely, so that everyone could immediately tell (or rather their computers or smart phones could immediately tell them) if a given electronic copy of the currency was a duplicate or the original. So long as the replicated (i.e., counterfeited) copy could easily and immediately be distinguished from "original", then no one would accept the counterfeited one and only real ones would circulate, right?.

Electronic money of this type would make everyone happy (well, accept the banker, that is) and make our financial system much more efficient.


Enter Bitcoin

Until Bitcoin, such a system of electronic cash was just a pipe dream since no one had figured out how to prevent people from easily making multiple copies (i.e., counterfeiting) electronic money. Bitcoin resolved this problem in some ingenious ways.

First, the inventor of Bitcoin eliminated the need for us to scan our existing bills and coins into electronic money, thereby inflating the money supply. Instead of scanning paper money and coins into electronic currency and destroying the originals as contemplated in the hypothetical above (which would be illegal in any event), the founder of Bitcoin created a computer algorithm that "produces" a whole new type of electronic money, called "Bitcoins", at a predetermined rate and right on your hard drive. Thus, Bitcoins aren't simply copy of your existing money, they are newly "made" money.

Because they are newly made and clearly different from exiting fiat currencies, they are not counterfeit and therefore do not inflate the money supply. For instance, making more Bitcoins does not impact the value of the US dollar anymore than the European Central Bank printing more Euros impacts the value of the dollar. More Euros reduces the value of each Euro, but it does not reduce the value of dollars. In a like manner, more Bitcoins reduces the value of each Bitcoin, but it doesn't impact the value or purchasing power of any other currency, at least not initially.

So, what gives each Bitcoin its value then? The same thing that gives any currency value--the willingness of others to accept it for goods or services or in payment of debt. And why would people be willing to accept Bitcoins? Because they are so freaking convenient, because they eliminate the middle man (banker), because they are easily divisible and transferable, and for at least a dozen other reasons.

To prevent people from counterfeiting Bitcoins, or altering the rate at which Bitcoins are created (and for other reasons), the Bitcoin software, which is available to anyone for free on the web, is hard-coded to award newly "minted" Bitcoins only when a given computer (any computer, even your computer) solves a very complex math problem. When that computer solves the problem, and can prove conclusively that it did so to other computers in the Bitcoin network, all computers in the network will recognize the "creation" of new Bitcoins by that computer, and those Bitcoins are deemed by the network to be owned by the computer that generated them, or rather the possessor of that computer. Because solving this very difficult math problem takes time (more than a year of processing for today's average desktop computer), and because only Bitcoins generated by a computer that can "prove" to others in the network in a verifiable and theoretically incorruptible way that it has solved the problem are recognized as authentic, counterfeiting Bitcoins is theoretically impossible. In fact, each electronic Bitcoin itself contains this "proof-of-work", proof of having solved the problem, within it.

Currently, over six million Bitcoins have been created in the manner described above and, at the time of this writing, each one is valued on the largest public Bitcoin exchange (mtgox.com) as being worth about $16 US dollars. After twenty-one million Bitcoins are so created, which will take many more years (till after 2030 by current projections), the process will end and mathematically no more Bitcoins will or even can be created. Or, if they are, they will not be recognized by the network as authentic. Thus, unlike fiat currencies which can be inflated or deflated in amount at the whim of some central bank or issuing government, the world's supply of Bitcoins will eventually become fixed.

While this requirement that each "created" Bitcoin contain proof of being the product of a computer having solved a very complex and time-consuming math problem largely solves the problem of counterfeiting, there remains the possibility of "double spending". In other words, once I've generated some Bitcoins via my computer, or obtained some in normal commerce, what keeps me from spending them more than once? After all, I could email some to you, but then forward that same email, with Bitcoins attached, to my friend, John.

In our present system, the "trusted" intermediary, the bank, prevents double spending. When I write you a check, the bank takes money from my account when it credits it your account. It's a zero sum game. Sure, I can overdraw my account by writing a subsequent bad check to you or someone else, but only those payees who present their checks to the bank first, while I still have money in my account to cover them, will actually get paid by the bank. The others get stiffed. By stiffing the others, the trusted intermediary insures that no new money is created as a result of my bogus checks. The integrity of the system is thus preserved, albeit at the expense of the stiffed party.


The Bitcoin Way

Since the whole purpose of Bitcoins is to do away with the trusted but expensive intermediary and make dealing in cash just as easy as dealing with checks and credit cards, the Bitcoin network resolves the double spending problem differently. When I send Bitcoins to someone (I don't actually do it by email but via a different software program--a "Bitcoin client"), the system automatically sends notification to every other computer in the network telling them exactly how much I sent, and to whom, and when. Thus, contrary to what has been implied in some media reports, every single Bitcoin transaction is public knowledge. With one important exception/protection that I will note below, anyone in the system can know at any given moment exactly how many Bitcoins I have, or anyone else has. And, they can also tell where I got them from. And where that person got them from, etc. Thus, because every transaction is instantaneously broadcast to the network in real time, double spending Bitcoins is all but impossible. In essence, everyone can see inside my/your/their wallet at any given moment!

Although broadcast of transaction information is instantaneous, not every computer in the Bitcoin network is always turned on. Thus, it may take some time, minutes or even hours or days, for knowledge of a given transaction to completely satiate the network. In the meantime, couldn't one of the computers without the complete transaction history be duped into excepting double-spent Bitcoins? If computer A didn't know that computer B had spent all its coins already, couldn't it be duped into accepting Bitcoins from B (analogous to B writing a bad check)?

Not really. Complete satiation of the network isn't really necessary to protect network participants. When a computer joins or rejoins the network, it simply queries all other computers in the network (called "nodes") to figure out which one has the longest, and therefore the most complete, Bitcoin transaction history. It, along with all others in the network, will then adopt the contents of the longest transaction history as its own. Only Bitcoins that are properly accounted for and recorded in the complete transaction history are recognized as valid by other computers in the network. Double spending, while theoretically possible, is extremely difficult in practice.

Furthermore, even if a computer were temporarily duped into accepting double spent Bitcoins, other computers in the network, the ones with the complete transaction history, wouldn't recognize the transaction as legitimate. Thus, the duped computer would be "stiffed" by the others in the network. The transfer of Bitcoins to the duped computer would be ignored. Such is the price for maintaining the integrity of the system. While this system is not perfect, it's far better than our current system where duping someone is as easy as writing a bad check (double-spending Bitcoins is far more difficult).


Privacy and Safety

But this ability to effectively see into everyone's wallet raises at least two other issues: Privacy and safety. After all, advertising one's wealth is a great way to make oneself a target! Would you feel comfortable publicly broadcasting to the world that you currently have $10,000, $100,000, $200,000 or even $1,000,0000 in CASH sitting at your home or office? Would you walk down the street broadcasting to the world that you had $10,000 in cash on your person at that very moment? Of course not. And, this is true even if you obtained every bit of that cash entirely legally. Thus, contrary to media report, the confidentiality built into Bitcoin (discussed below) is not JUST a privacy thing, and it's primary purpose is not to facilitate illegal actively. Rather, confidentiality is a SAFETY and SECURITY thing. Unlike banks, homes, offices and cell phones are not, by and large, protected fortresses.

Bitcoin resolves this confidentiality problem, and therefore the safety, security, and privacy problems, in very simple way: All Bitcoin transactions are reported to the network as taking place between two anonymous ID numbers, not two individual humans or businesses. Thus, when Bitcoin publicly broadcasts a transaction, it does NOT actually tell the world who the parties to that transaction were by name. Rather, it publicly broadcasts the ID number of the party that the money transferred from, the ID number of the party it transferred to, when it transferred, and how much was transferred. Thus, if I send ten Bitcoins from my ID number XYZ123 to your account ID number ABC456, Bitcoin would simply broadcast to the world that ID number XYZ123 just sent ten Bitcoins to ID number ABC456. That's it. Unless you or I tell others, nobody knows the persons or businesses behind each ID number.

But, if we engage in enough transactions with enough people, many will eventually come to know that ID number XYZ123 belongs to me, right? After all, people can't send me Bitcoins if they don't know my ID number, and vice versa. Since anyone who knows my ID number can then look it up in the network at anytime and see how many Bitcoins it contains, my privacy (and potentially my safety and security) is once again compromised.

To resolve this, the Bitcoin client lets you create as many ID numbers on your computer as you want (ID numbers, however, are actually called "Bitcoin addresses" rather than "ID numbers", but don't let the lingo throw you off). Importantly, neither the Bitcoin client nor the Bitcoin network keeps track of who "owns" each ID number.

So, I could, if I wanted, create a new ID number (Bitcoin address) for every single transaction in which I, or rather my computer, engages. Creating new ID numbers for each transaction could be automated so that I don't even have to think about it. So, for instance, I could have Peter send Bitcoins to one of my account numbers for legal work that I provided him today and another for legal work that I provide him tomorrow. Paul could send Bitcoins to yet another ID number to buy my golf clubs, and Mary to yet a third to reimburse me for the lunch I bought her. Same for James, Donald, Cindy, Carla, Marla, your employer, etc. Anytime I want someone to send me Bitcoins, my Bitcoion client can create a new, unique ID number for that transaction. No one in the Bitcoin network, save possibly the person sending me the Bitcoins, knows who is behind that ID. All my ID's are totaled by the Bitcoin client software on my computer so that I can tell at any moment how many Bitcoins I have in total.

Thus, each person with whom I conduct business only knows a few of my ID numbers, one for each transaction I have with them (if I'm smart). If Mary ever looks up the ID number that I gave her so she could reimburse me for lunch, she will be able to see only how many Bitcoins I have logged under that ID at that moment, if any. Neither she, nor anyone else, has any way to determine which other ID's on the Bitcoin network belong to me.

And, if I'm smart, I won't leave much money under the ID number that I gave to Mary or Peter or Paul or Paul. Rather, I will transfer the money out of that ID number to another that no one else knows I own. Again, this process could be automated. Thus, if Mary bothers to look, she could see the money she gave me leaving the ID that she knows about, and she can even tell where it went, but she won't know who is behind the receiving ID. Did I transfer the money to another of my ID's? To my wife's? Or to the electric company to pay my electric bill? Or to Walmart to buy shoes? Mary can't know.


Conclusion

In short, that's what Bitcoin is: Electronic cash that can be "emailed" from person to person with no intermediary, the supply of which is predetermined and can't be manipulated, and the value of which is determined solely by market forces. If successful, Bitcoin will undermine the foundations of our financial system in the same way that another peer-to-peer network, BitTorrent, undermined the foundations of the music and movie industries. Vested interests, big and powerful vested interests, will now doubt resist, but it remains to be seen whether they will be any more successful in restricting Bitcoin than they have been at limiting BitTorrent.

Sunday, June 12, 2011

Buy on Amazon.com with Bitcoin!

One of the touted advantages of engaging in commerce using Bitcoins is that there's supposedly no need for a "trusted intermediary" (i.e., a bank or credit card company). However, that's only true once sufficient numbers of businesses begin accepting Bitcoins as direct payment for goods and/or services. Until then, converting your Bitcoins to fiat currencies, or even better, real things, can be difficult.

Many have already begun offering trusted intermediary services that permit you to trade Bitcoins for fiat currencies like the US Dollar, but what if you want instead to buy real goods without the hassle of first converting your Bitcoins to dollars? That's more difficult. I want to make it a little easier.

To this end I've decided to offer up my services as a trusted intermediary who is willing to purchase goods on Amazon.com on your behalf and have them shipped to the address of your choosing in exchange for you sending me sufficient Bitcoins to cover my cost, plus a nominal fee for my services (only one percent for a limited time!). In, short, if you contact me following the below instructions (or by email if you want to work out alternative arrangements), I will purchase (same day) any item available on Amazon.com and have it sent to the person/address of your choice, subject to the below terms and conditions. Gift cards are a particularly good choice because I can send you those by email from Amazon almost instantaneously. Turning your Bitcoins into real goods just got a little easier!

As for why you can "trust" me to function as your intermediary in this regard, consider that I have lived in the same town (Knoxville, Tennessee) since I was five years old, I run several successful businesses from there, and I hold several professional designations and licenses (any of which could be jeopardized should I attempt to defraud you). A simple Google search of my name should be sufficient to verify this information, establish my identity, and hopefully confirm my trustworthiness.


Anyway, here are the steps you need to follow begin ordering goods on Amazon.com with Bitcoins:


Step 1) Find the item you want on Amazon.com and determine its total cost. For this purpose, total cost includes the cost of the item plus shipping & handling and any applicable sales tax.

The easiest way to determine the total cost is to log into Amazon.com, add the item to your shopping cart, proceed to checkout, choose your shipping method, and then note the "Order Total" in red at the top right of the screen, but DO NOT CLICK ON THE "PLACE YOUR ORDER" BUTTON. Instead, take a screen shot of this Order Total page. The amount noted in the "Order Total" represents the total cost of the item. Here's a screenshot that gives an example of the Order Total page (click on the picture to enlarge):





Step 2) Email your order to me at sgking37922[at]gmail.com. Your email should be in the following form:

a) Include the words "Amazon Bitcoin Order" in the subject line of your email.

b) Include a link to the Amazon.com page for the item you wish to purchase. For instance, if you want a new Kindle like the one in the above screenshot, simply include a link to it (or its URL) in your email.

c) Include a copy of the screen shot from step 1) above reflecting the total cost (i.e., the "Order Total").

d) Include the name of the person to whom you'd like the item shipped along with the desired shipping address.

e) Include a single screenshot showing both this page reflecting last price (in US Dollars) of a Bitcoin (see note at bottom left of the chart) and this page reflecting the official US time. Your screenshot should look like this (click on the picture to enlarge):





The email containing the above-described items should be sent to me within ten minutes of the date/time noted on the Official US Time screenshot accompanying your email.


Step 3) After sending your email, send a sufficient number of bitcoins to cover the total cost ("Order Total") of the item from step 1, plus a one percent fee for my services, to the bitcoin address at the top left of this page. Yes, for a limited time I'm willing to do this for only a one percent fee! Your email should reference the exact amount of Bitcoins sent to me as well as well as the time they were sent so that I can tie the Bitcoins you sent to your email/order.

For instance, if the total cost of the item (i.e., your Order Total) per the first screenshot above is $164.00 and the current Bitcoin value at the time you email me is $20.14 per the second screenshot above, then you would email me 8.22 Bitcoins ($164.00 divided by $20.14 equals 8.14 Bitcoins which is then multiplied by 1.01 to cover my one percent fee, bringing the total to 8.22).

Subject to the below conditions, I will place your order on Amazon.com the same day that I receive your email and confirm receipt of your Bitcoin transfer. I will also (same day) email you confirmation of the order for your records.


Terms and Conditions

By emailing me an order as described above, you agree that my services are provided subject to the following terms and conditions which shall be contractually binding on us both:

In providing these services, I am (1) providing liquidity for your Bitcoins (i.e., I purchase goods on your behalf with my US Dollars in exchange for your Bitcoins), and (2) I am acting as your agent in executing your directed order at Amazon.com in my name. I do not guarantee Amazon's services or those of their affiliates, partners, or shippers. Although my responsibility in this transaction shall end with placing an order at at Amazon in a manner consistent with your instructions and providing you with proof of my having done so, I will of course assist you as best I can in resolving any potential issues with Amazon or its affiliates, partners or shippers (since the order was placed in my name, after all), provided that you agree to cover any out-of-pocket costs that I may incur as a result (just as you would be responsible for such costs had you placed the order directly with Amazon).

You represent and warrant that any Bitcoins sent to me in accordance with the above are your property, that you have the legal right and authority to transfer legal title to them, and that they were obtained legally and not in exchange for any illegal good or service.

As the end purchaser of any goods that I may order on your behalf in my name for delivery to your designated address, you are solely responsible for any sales or use tax that may apply to the transaction and you agree to indemnify me and hold me harmless for the cost of such taxes should you fail to pay and should any governmental agency therefore attempt to collect such taxes from me instead.

I reserve the right to refuse to place any order that you may send me, or to postpone such an order for up to a week, for any or no reason whatsoever, including the fact that the value of the Bitcoins sent to me may have declined considerably between the time you sent your order and the time I place it. In the event that I refuse or postpone any such order, I shall notify you of this fact by email the same day I receive your order.

You may cancel any order prior to its execution by me on the Amazon.com site by notifying me by email referencing your prior order and including "Cancel" in the subject line. However, if an order is executed by me prior to receiving your cancellation, that order is final and nonrefundable unless I am able to obtain a refund through Amazon.com. I shall promptly pay to you any refunds that Amazon may pay to me for any goods you may return. I may at my sole election pay any such refunded money to you in US Dollars or its equivalent in Bitcoins (as valued at the time of the refund on the mtgox.com exchange).

In the event that I refuse any order or you cancel any order prior to execution, I will refund all Bitcoins that you sent to me for that order within 24 hours of receiving a return address to which I can send them. My sole obligation in the event of a refused or canceled order shall be to return any and all Bitcoins that you sent me for the cancelled order.

Feel free to email me at sgking37922[at]gmail.com with any questions.

Thanks,

Sean

Saturday, June 11, 2011

Will Work for Bitcoin

Just putting it out there that I'm proud to join the small but growing number of businesses who will accept Bitcoin as payment for goods/services. In my case, legal services.

If any Bitcoiners out there need legal or tax advice, look me up.