Is That A Bitcoin In Your Pocket

Considering the Transportation Security Administration (TSA) achieved a 95 percent failure rate it’s not surprising this happened:

The TSA attempted to “screen” airline passenger Davi Barker for the virtual currency Bitcoin.

Barker is co-founder of BitcoinNotBombs, a Bitcoin advocacy group that gets donation-based organizations and social entrepreneurs set up to handle the currency. He’s written a very detailed telling of what happened right here. After going through security (he opted out of the body scanner but was successfully cleared through the checkpoint), two people stopped him, and it got uncomfortable quickly.

What next? Will some random TSA goon demand to see the Transportation Layer Security (TLS) certificate in your briefcase?

The agency’s 95 percent failure rate makes a lot of sense when stories like this keep popping up in the news. When your agents are so clueless that they harass passengers after seeing something entirely imaginary there’s little hope that they’ll catch any of the real dangers.

Technology is Trumping Statism Again

Regardless of the laughable claims made by an author at Daily Kos, market anarchism is showing how practical its rhetoric is once again. This time the place is Venezuela, the problem is currency controls and economic collapse, and the solution is Bitcoin:

(Reuters) – Tech-savvy Venezuelans looking to bypass dysfunctional economic controls are turning to the bitcoin virtual currency to obtain dollars, make Internet purchases — and launch a little subversion.

Two New York-based Venezuelan brothers hope this week to start trading on the first bitcoin exchange in the socialist-run country, which already has at least several hundred bitcoin enthusiasts.

While the Venezuelan government continues its attempt to control its population through economic controls its power is quickly fading as its economy collapses and more people turn to the “black” market for basic necessities. This is similar to what happened during the collapse of the Soviet Union.

Once the state’s controls have been circumvented its death is inevitable.

US Marshals Auctioning Off 29,656.51306529 Bitcoin

Do you have $200,000? Are you registered to participating in auctions held by the United States Marshals Service? Have you been looking to buy a lot of Bitcoin? If you answered in the affirmative to all three then I have an auction for you:

This auction is for 9 blocks of 3,000 bitcoins (“Series A Blocks”) and 1 block of 2,656.51306529 bitcoins (“Series B Block”).

The Bitcoin were supposedly seized from Silk Road although the auction description specifically states that they are not the Dread Pirate Robert’s. What I find interesting is that no trial has been held regarding the Silk Road so I’m not sure how the seized property is being auctioned off. It’s almost as if the state can just take your shit and sell it without due process. But being the land of the free I know that we couldn’t possibly have some kind of civil forfeiture laws that allow the state to get away with such things.

As of this writing Bitcoin is hovering right around the $600 mark so, assuming the Marshals get around market value for the Bitcoin, the auction is looking to bring in approximately $17,793,907.839174. That’s a nice chunk of change.

The Difference a Quality Codebase Makes

As I mentioned Tuesday, I rewrote a major chunk of WristCoin, my Bitcoin price checker for the Pebble wristwatch. Now that I’m working with a far more modular design adding exchanges requires almost no effort at all. I to add in Bitfinex support:

added-bitfinex

It took me roughly ten minutes to do so (most of that time was invested in writing the JavaScript code that grabs the current prices and feeds them to the Pebble). So let me iterate a lesson that most developers have pounded into their heads but fail to follow: don’t start with quick and dirty code, start with quality code from the beginning. Mind you in all liklihood I will fail to follow this advice as soon as I start my next project. Getting a prototype up and running quickly is just so tempting and it feels so good.

WristCoin Update

Remember WristCoin? It wouldn’t surprise me if you didn’t. I announced it in December and my last update was in January. Truth be told I got busy with other projects for a while and then Mt. Gox went belly up. I didn’t really care about Mt. Gox’s bankruptcy as I never did business with the site (due to its generally poor reputation within the Bitcoin community). But since the site was no longer an active exchange I had to remove it from WristCoin. After looking at the work that was necessary to remove the exchange I decided that the codebase in general wasn’t in line with my standards of coding.

Part of this was due to the fact that WristCoin was my first (and still only) Pebble project. When learning a new programming language, software development kit (SDK), application programming interface (API), or any other programming related thing I jump headfirst into a project. This is because writing little example piece of code bores me and I quickly lose motivation if I’m not working on a project that has a definite goal. The upside to this method is that I usually maintain my motivation to continue learning. The downside is that my first project usually looks like crap.

WristCoin, I’m ashamed to admit, looked like crap. I fell into the same trap many developers do, which is to start with quick and dirty code and an intention to clean it up later. But the second part, cleaning the code up later, seldom gets done. Instead I kept building on top of a poor foundation because I really hate to redo previously completed work (it is one of my biggest pet peeves). After reviewing the initial WristCoin code I decided a major rewrite was in order.

The previous codebase relied a lot on fixed length field, globally declared constants, and other things I’m generally not fond of. Both the Pebble app and the JavaScript code that runs on the phone contained a lot of knowledge about each featured exchange. This means removing Mt. Gox would require changing code in both the Pebble app and the JavaScript code, not an ideal situation in my opinion.

Each programmer has their own concept of what comprises beautiful code. Some programmers want the fasted code possible, others want to accomplish the most work with the least amount of code, and programmers such as myself strive for modular code that is easy to modify (due to our innate laziness). Each goal has its own set of pros and cons. The cons to module code that is easy to modify is that it tends to be over-engineered to some extend.

After a few days of work I finally finished rewriting the foundation of WristCoin. The Pebble app now knows all of jack shit about each exchange. Instead it asks the JavaScript code running on the phone to tell it every detail about the exchanges, which the JavaScript code is more than happy to provide. All of the information related to each exchange is stored in a single array of hash tables and a single function that knows how to fetch the current prices and send them to the Pebble app. To add an exchange I now need only add a hash table to the array and create a function to fetch its current prices. Removing an exchange is as simple as removing its hash table from the array (I can leave the price fetching function in if I really want to). Additionally this change will make it easy to allow the user to enable and disable desired exchanges from the phone side (the old code required the user to fetch prices and display information for every exchange at all times).

The Pebble app, which is written in C, no longer relies on fixed length fields, globally declared constants, or other such shenanigans. Memory for strings is now dynamically allocated. That means the title field (the field that displays the exchange’s name) and status field in the main screen (the field that displays the current price) are no longer of fixed length. Previously they were both fixed to 10 bytes, which was generally enough room but not guaranteed (if I had to add an exchange whose name was longer than 9 characters (because an additional byte is needed for a null terminator) would require me to increase the side of the field length constant. Now the application determines how many characters long the exchange name is and how many digits long the price information is, how may bytes will be necessary for the additional characters required to make the price display look pretty, and declares chunks of memory exactly the needed sizes. Computationally it’s a bit slower but maintaining it is going to be much easier, especially if all odds are defied and Bitcoin skyrockets in price (I don’t believe Bitcoin is going “to da moon” by the way, but stranger things have happened).

If you’re curious the main screen looks the same as it always has:

wristcoin-main-screen

I haven’t finished rewriting the extended information screen yet. It may look different than the old extended information screen but I haven’t decided on the details.

As always the code is in the public domain. You can download it, read it, criticize it, use it, abuse it, and fork it via the convenient Github repository. Likewise if you’re looking for ideas on how to do something using the Pebble SDK, and it’s something that has been done in WristCoin, I have documented this new codebase much more thoroughly than the old codebase (and since it’s public domain code you can just lift whatever you want). Do note, if you plan on looking at the code, that the rewrite is still in progress and I haven’t completed anything more than rudimentary testing. Some old code remains, some memory leaks are likely to exist, and some of the JavaScript code doesn’t work properly (namely error reporting).

Like the license, the release date remains the same. That is to say WristCoin will be completed whenever I damn well feel like releasing it. I don’t plan on charging money for this application so I have no motivation to stick to a scheduled release date.

An Argument for Cryptocurrencies

The financial industry is a quagmire of censorship, morality policing, and market control. How the financial industry restricts markets is pretty easy to ascertain. Numerous laws exist that prohibit the transfer of money for transactions that the state has declared criminal. That makes the use of the financial industry to perform transactions for things like cannabis more difficult. But how does the financial industry perform censorship and police morality? By deciding who can and cannot have a bank account. We’ve seen this before with gun stores mysteriously having their bank accounts closed. But gun store owners aren’t the only target of the financial industry’s morality policing. The adult entertainment industry has also come under the financial industry’s ire:

Just as ISPs and search engines can become weak links for digital speech, too often financial service providers are pressured by the government to shut down speech or punish speakers who would otherwise be protected by the First Amendment. It’s unclear whether this is an example of government pressure, an internal corporate decision, or some combination.

Chase has yet to give an official statement on why the accounts are being closed. At least one of the customers affected by Chase’s decision to shut down adult entertainers’ accounts, Teagan Presley, was told by Chase that her account was being shut down “because she’s considered ‘high risk.'” According to NY Daily News, her husband Joshua Lehman (whose account is also being closed) reports receiving conflicting information from Chase about why the accounts were being shut down:

I’ve heard three different reasons…When I went into our branch, they said it was the nature of our business. When I called, they said they were closing my personal account because my wife is an ‘infamous’ adult star. When I talked to my branch again, they said it wasn’t because we were in the adult industry but because we did business with a convicted felon.

This isn’t the first time Chase has been under fire for morality-based account closures. In 2013, Chase faced a lawsuit from the founder of MRG Entertainment for denying loans to people within the adult entertainment industry. And just a few months ago, Chase refused to process payments for Lovability, an online condom store. After bad press and public pressure, Chase reversed its decision, but it’s unclear whether Chase ever changed the policies that led to the decision in the first place.

Bank accounts are an Achilles heel for most “legitimate” businesses. Without one it’s difficult, if not impossible, to accept credit and debit card payments and many banks will only cash checks for account holders (or charge non-account holders a nasty cashing fee). Imagine if every bank refused to allow MidwayUSA or Brownells to have a bank account. Those stores would likely be finished.

Centrally controlled financial services, like most centrally controlled industries, are dangerous things to rely on. At any point those services can be used to enforce selected ideals. This is why I see decentralized financial systems, namely cryptocurrencies, as an important development.

I will use Bitcoin as an example because it is the most well known, but there are many cryptocurrencies out there with similar advantages. Bitcoin is a decentralized system. It doesn’t attempt to judge whether or not a transaction is legal, moral, or otherwise acceptable. The only thing the Bitcoin network attempts to do is ensure transactions are recorded and the appropriate amount of Bitcoin is transferred between accounts. Adult entertainers can bypass the financial industry’s censorship by accepting Bitcoin and may have to resort to doing so if things continue as they have been.

Cryptocurrencies really shine, at least in my opinion, because they enable the transfer of wealth without the risk of third-party judgements. As governments and industries (but I repeat myself) continue their efforts to control markets it will become more important to develop tools that allow people to bypass their controls. Obviously cryptocurrencies aren’t the be-all and end-all. Controls can still be inflicted by delivery services, manufacturers, and many other middlemen that are commonly involved in a transaction.

Using the State’s Rulings Against It

Ross Ulbricht, the man accused of being the operator of the original Silk Road, just demonstrated how effective he is at trolling. Facing charges of money laundering Mr. Ulbricht is now using the Internal Revenue Service’s (IRS) ruling that Bitcoin is property and not currency against them:

The IRS recently ruled that Bitcoin is property, not a “monetary instrument.” And now the attorney for alleged Silk Road founder Ross Ulbricht is arguing that his client must be innocent of money laundering because Bitcoin officially isn’t money, reports Wired.

I think that’s a very good defense. How can one launder money using Bitcoin, which has been ruled by the IRS as not being money? That question was hypothetical because we all know that the state doesn’t actually have to follow its own laws when prosecuting people. I’m sure the state will perform the mental gymnastics necessary to continue this case.

Senator Manchin Doesn’t Understand How Bitcoin Works

Senators are an interesting breed. They are actually paid to issue decrees about things they have no understanding whatsoever of. Case in point. Senator Machine has called for a decree to be issued that would ban Bitcoin in the United States:

Senator Joe Manchin (D-W.Va.) has called for a ban on Bitcoin.

In a letter addressed to the Treasury, Federal Reserve, and multiple financial regulatory agencies, Manchin calls the digital currency “disruptive to our economy” and highlights its potential for abuse by criminals.

Obviously Mr. Manchin doesn’t understand how Bitcoin works. As a decentralized protocol that can be accessed pseudonymously there is no central point to take out and no way to know for sure who is using it. This means banning it is, quite literally, impossible because any prohibition cannot be enforced.

If Mr. Manchin understood the technical aspects of Bitcoin he would know that he’s on a fool’s errand. But he’s a senator, which generally means he doesn’t understand the technical aspects of, well, anything. It still amazes me that people actually believe senators are qualified to run our lives considering the complete lack of understanding they have in regards to everything they legislate.

When You Suck at Doing What You Do

The big news circulating around the Bitcoin community is the apparent demise of Mt. Gox:

As of late Monday evening, the embattled Bitcoin site MtGox appears to have pulled the plug entirely in the wake of sustained DDOS attacks and the “transaction malleability” problem that has plagued other websites. The site is gone and the company’s Twitter account appears to have been erased entirely.

Several news outlets seems to be reporting this event as the death of Bitcoin. Anybody who understand the Bitcoin protocol knows this isn’t true since Mt. Gox didn’t have any control over the block chain, which is what determines who has which Bitcoin. Mt. Gox was merely one of several exchanges although it was the largest.

People who have kept an eye on Bitcoin related news know that the people behind Mt. Gox has consistently demonstrated incompetency. It always baffled me how it was able to maintain the status of the largest exchange when other exchanges did a better job and almost always had better prices. But Mt. Gox’s incompetency eventually caught up with it and it now appears to have gone under. This is an example of a free market at work. A company that sucked at fulfilling the desires of the market went away.

While it does suck for any individual who had Bitcoin or fiat currency in a Mt. Gox account it should also teach a valuable less: you cannot trust a person you’ve never met with your money. Bitcoin allows anybody to create a wallet. So long as you keep your private key private any Bitcoin sent to your public key are secure. I keep a little Bitcoin in online wallets for quick transactions but never more than I’m willing to lose. All of my other Bitcoin are sent to an account that I possess the private key for. This is something I encourage everybody to do since it’s the only way you can guarantee your Bitcoin won’t disappear if the online wallet provider disappears.

WristCoin Update

Although life has done its best to prevent me from working on WristCoin I’m finally getting close to a version 1.0 release. It is now at a point where I feel comfortable posting some screenshots of the application and giving a brief explanation of what it does.

When you open WristCoin on your Pebble you will be greeted with this screen:

wrist-coin-main-menu

This screen lists the three exchanges that WristCoin currently works with (Bitstamp, Mt. Gox, and BTC-e), fetches price information from each of the exchanges, and displays the price of the last Bitcoin sale on each exchange. I’m thinking about changing it to display the 24-hour average instead but I haven’t settled on that yet.

If you highlight and click an exchange you will be greeted with additional pricing information:

wrist-coin-extended-information

This screen shows various pricing information for a selected exchange as well as the volume of Bitcoin that has been trade on that exchange in the last 24 hours. Clicking the back button on the Pebble will return you to the main menu.

At this point the only thing I really have left to do is write better error handling code. I’ve created an icon for the app but I’m not entirely happy with it. Needless to say I’m no artist. But things are progressing smoothly and I must say that I’m very impressed with the latest beta of the Pebble iOS application.