Rapper 50 cent is now taking Bitcoin for his new album Animal Ambition. This is obviously less about Bitcoin and more about being a very savvy marketer. He understands the value of being in front of the curve, shaping public perception, and the PR boost that Bitcoin generates among certain affluent circles. This led pundits all over the Internet to proclaim that he was on the verge of changing his nom-de-guerre to 0.0007759 BTC, or 77 millibits. The problem is that if he did denominate his name in Bitcoin he would be changing it every day. 77 millibits today, 85 tomorrow, 24 two weeks from now. The joke underlies a major problem with the entire Bitcoin ecosystem, and one that companies in the space are all-too-willing to ignore.

The reality is that Bitcoin is too volatile. It is all over the place, rising to spectacular heights and then crashing back down again. Numerous companies have come out of the woodwork to address this problem, most focusing on the Merchants. It is relatively trivial to trade out BTC at the point-of-purchase and fix the value to USD, taking very short term volatility risk. This is essentially the model that Bitpay operates under, as well as a number of payment vendors. These serves all address Merchant concerns about accepting Bitcoin, but what about the consumer? The reality is that putting money into Bitcoin is a scary process, some people want to benefit from the capabilities of digital currency without making speculative investments with their money.

If I want to buy a cup of coffee, but have to wait a while to get my BTC delivered to my wallet then I’m taking all of the volatility risk of the currency. That risk gets priced into everything I buy. It’s like rolling the dice when you go to the store, am I getting a welcome discount or a very expensive latte? That is the hidden cost and risk associated with the network, it is something the Bitcoin-faithful ignore in favor of pushing merchant and consumer adoption, but it is a major problem. Let’s imagine for a second that you take $20 out of the ATM, and expect that you will be able to buy a cup of coffee at $2 a day for the next 10. 5 Days in the cost of the coffee is now $4. Instead of 10 days worth of Coffee you now get 7. That isn’t an acceptable situation for most consumers. To put it even further into perspective, Bitcoin has been compared to various highly volatile unpredictable assets, what if you wanted to buy something from a Merchant using crude oil futures. Does that make any sense?

There are ways to address volatility. Derivative contracts on Bitcoin, options and futures will allow for tighter spreads. Ultimately that should eliminate some of the volatility concerns, but what about demand. Ripple got one thing right, which is that you have to separate the underlying from the transfer of monies. Whenever you try to price something in a scarce resource there are going to be fluctuations in price, and adding insurance instruments in order to hedge that volatility will spread the risk around. Can Bitcoin be competitive if 1-2% is pegged on to every transaction in order to constrain risk? This is a problem that gets worse as popularity increases and supply dwindles. Global remittances flow in 2012 was $514 Billion dollars. How can we possibly hope to tackle that market along with all of the others we could potentially disrupt when the unit of account has a market cap of six billion? Do we expect every Bitcoin to change hands every day?

Now on the surface I am just playing devil’s advocate. The reality is that the community is extraordinarily resilient, and I’ve got a few tricks up my sleeves also ;). The sheer scale of the current Bitcoin network is mind boggling, a lot of compute power is being used to secure the network (Ghash.io 51% not withstanding, I’ll cover that later). We have a long way to go but we are on the cusp of being able to solve the biggest problems in the space, and besides we can look to 50 cent for a little inspiration, get (bitcoin) rich or die tryin’.

This is one of those blog posts where the title pretty much sums it up. Bitcoin ATMs have been around for a long time, I remember seeing a suitcase version functioning at Defcon in 2013, and I’m pretty sure commercial versions were already operating prior to that. A recent y-combinator startup is joining the fray, and I have to wonder why. The concept is very simple, send Bitcoin to an address provided by the machine and it spits out cash, insert cash and it sends Bitcoin to your phone or printed onto a hard wallet.

There is a major structural difference between these and Bank ATMs, in that the former is in no way linked to any account accept BTC under your control, and the latter ties directly into the banking infrastructure which centrally debits and credits your account from a database. In other words the ATM is a machine that connects to an opaque network and lets you take out fiat. The Bitcoin ATM lets you trade out your digital currency which you are already carrying around for cash. If I inserted gold into the ATM and it gave me cash would we call it a teller machine? Why don’t we see gold trading machines where you insert metal and get out dollars? Probably because it is a terrible idea, you already are carrying something of value, why swap it out for something of alternate value in physical form when there are myriad other ways to spend it?

Now I’m sure some of you will say I am missing the point, you want to be able to put cash in and get Bitcoins. I get it. Of course there isn’t any structural reason why you couldn’t transfer direct into BTC from your bank account, or attach a credit card to a Bitcoin backed account, or a million other smarter peer-to-peer mechanisms to accomplish the same thing. All of which can be done without the need to install expensive physical infrastructure all over the place.

The ATM idea seems to have some kind of growing mind-share, and I think the reason that bothers me is that it is old school thinking. Its forcing a transformative new technology into an existing box (literally). Trying to make it work and behave in a way that completely ignores its radical potential. You should be able to hand anyone a dollar and get a Bitcoin. You should be able to receive it as change. You should be able to link it to a bank account or debit card, and in the not too distant future you will be able to. Where does that leave the ATM machine? We can now do perfect digital delivery of value, but instead of focusing on that capability lets come up with a convoluted way to allow people to insert paper and get digital currency.

Finally, from a technology perspective the ATM is mind numbingly boring and rapidly commoditized. A machine can probably be built in thirty days or less by someone with experience, which means that we are going to see tons of people competing in that space beyond the 3+ companies already there very shortly. This isn’t meant as an attack on any particular product, but if you find yourself thinking about how cool it would be to have a Bitcoin ATM you need to take a step back. Bitcoin is much bigger and more interesting than that. Let’s put our collective resources to developing the next wave of technology, not retrofitting a completely irrelevant and antiquated system.

How far we have come. When I started Coinlock in mid 2013 hardly any infrastructure existed for building Bitcoin based businesses. The few places making significant revenue were strung along the shadowy underbelly of the Internet, eking out a living on the fringe. Now we are on the verge of a Wall street ETF, vetted derivative exchanges, and Bitcoin backed credit cards. Some technology is just too disruptive to ignore, the implications too profound, the repercussions unavoidable. I felt that way about the Internet in 1993, at the time using the network was an exercise in the obscure. The pre-web Internet was complicated, hairy, a maze of technologies competing in some primordial soup. I spent my days on gopher and Wais with the occasional foray into the uncensored and venerable Usenet.

Bitcoin is still in these early days. The technology is difficult to understand, the protocol and software relatively immature, and the support services non-existent. Bitcoin hasn’t had it’s Netscape moment. The point in time when consumers can walk right into the eco-system and immediately see the benefits. Multiple companies are pushing forward, letting you buy Bitcoin for Cash, helping merchants accept it, etc. All of these are essential services, but ultimately I think the community has to think bigger to unlock the potential of the network. We have an open payments framework that conceivably allows direct person-to-person payments, like IP addressing for people’s bank accounts.

Let’s take the IP addressing analogy a bit further. That is the base of the pyramid, it facilitates the transaction, it is the distributed ledger. What functional components can be built on top of it? Are we going to see the creation of a distributed banking initiative? Peer-to-peer credit unions? When will I be able to package a crowd sourced loan and deliver it to a credit worthy individual? Maybe credit-rating itself can be systematized based on transactions. Can the same components be used in large-scale trust relationships between diverse groups of people? This is the foundational idea behind distributed autonomous corporations and data oracles that feed external information into the distributed ledger.

The possibilities are truly staggering. Very few people understood the potential of that early Internet. It was a haven for the weird and reclusive, the technologists and nerds, and now is intricately woven into our modern experience. If financial incentive and labor can be bound into the same network, where will that take us? The power structures prevalent in the world are hierarchical in nature, what happens when activism and finance are seamlessly and anonymously linked? The purpose of this posting wasn’t to ask a thousand questions, but to explore what seem to me to be a sea of possibilities.

The existing payment infrastructure is ripe for disruption. An international money transfer can costs upwards of 5% of the total transaction cost. $50 per $1000 sent. What if I tld you I could do the same thing for 5 cents? There is simply no way to compete with that kind of paradigm shift. Companies like Western Union are saddled with massive infrastructure, and simply have no way to deal with the flood of competing services that are going to start popping up like weeds powered by a robust and completely parallel network which for all intents and purposes is faster, and offers better security.

Entrenched interests will put up a fight. They will lobby instead of compete, they will put up barriers to entry and artificial road blocks, but the Internet has a way of routing around damage. First they ignored us, but in the end we will win. Some truly disruptive tech is just around the corner.

I decided to take some time giving Erlang another hard look, and do some Bitcoin blockchain parsing in the process. Originally developed by Ericsson for use in their telephony products, Erlang is a functional programming language that is fundamentally built around concurrency. Designed for building large distributed and fault tolerant systems, and capable of taking advantage of multi-core architecture. I’ve spent most of my career in imperative and object-oriented languages, with only brief dalliances in the functional realm including a college level lisp assignment that went wrong quickly. Writing concurrent software is hard, anything that makes it easier definitely deserves a look.

Parsing the blockchain seemed like a good project, hairy enough to offer some challenge, but with enough leeway to let me dive into the unique strengths of Erlang, explore its I/O subsystem and wrap my head around the deeper structure. You can check out my code on Github. I’ve done some high level parsing, I’ve left the script and hex output, and real csv output as an exercise for the reader, send me patches. In many ways the language is structured more like an operating system than the more mainstream alternatives. Code modules run in isolates processes and communicate via explicit message passing with mailbox queues and selective receive. Similar to Unix style mailbox or piped communication where the receive side is a structured expression. This is a simple and powerful model for communication, the Unix way, I like it already.

If you want to try out the code, just clone the repository. Check out the README for more detailed install instructions, copy a block file or ten from ~/.bitcoin/blocks/dat?????.dat into the same directory and run make all; make shell.

make shell will drop you into an Erlang shell with the necessary modules loaded:

make shell
/usr/bin/rebar skip_deps=true compile
==> blockparser (compile)
==> blockparser (eunit)
Compiled src/blockparser_sup.erl
Compiled src/blockparser.erl
Compiled src/blockparser_worker.erl
  There were no tests to run.
Erlang/OTP 17 [erts-6.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V6.0  (abort with ^G)
1> application:start(poolboy).
ok
2> application:start(blockparser).
ok
3> blockparser:parse("blk00000.dat").

This will built a raw but parses blockchain text file at blk00000.dat.csv in the current working directory. For fun lets check out the process control tree and other runtime information:

4> observer:start().

System Overview Application view Process table

Application components are structured into modules with explicit interfaces, and all of these processes have limited mutable state. This has interesting ramifications with respect to performance and limiting potential side effects. Reproducibility given a set of inputs is an important concept, and in stark contrast to languages with mutable state where you can inadvertently generate different outputs to a defined set of inputs. The code is a little more complicated than it has to be because I decided to write the entire thing within the constraints of the Open Telecom Framework.

OTP is a major component of Erlang and provides a generic set of behaviours that model general functionality. The gen_server framework facilitates bi-direction process communication, the gen_fsm framework is all about building finite-state-machines, etc. Ultimately, these processes are grouped together into a supervision tree hierarchy. I am a huge fan of supervision trees. The DJB Daemon-tools framework is my go-to for building fault-tolerant processes under Linux, and these concepts are alive and well in Erlang. This allows portions of the system to be restarted on failure, and provide fault-isolation. The typical object-oriented program will fail if there is an error in a sub-module that isn’t caught. In OTP there is a way to model and recover from even serious faults in a distributed architecture.

Somehow I got this far without mentioning pattern matching, the idea that the right and left side of an equation are matched, and that variables are single-assignment. It sounds terrible, but in practice is rather elegant and easy to deal with. The built-in bit syntax is an example of the power of expression matching when applied to binary streams, an excerpt from blockparser_worker.erl:

extract(<< >>) -> ok;
extract(<<?MAGICBYTE:32/little, 
    HeaderLength:32/little,
    VersionNumber:32/little, 
    PreviousHash:256/bitstring, 
    MerkleRoot:256/bitstring, 
    TimeStamp:32/little, 
    TargetDifficulty:32/little, 
    Nonce:32/little,
    BinRest/binary>>) ->
   [TXCount, Tbin] = getVarInt(BinRest),
   [Tdata, _Rest] = getTransactions(TXCount, Tbin),
   {ok, {?MAGICBYTE, HeaderLength,
    VersionNumber, PreviousHash,
    MerkleRoot, TimeStamp,
    TargetDifficulty, Nonce,
    TXCount, Tdata}, _Rest};
extract(<<R:8, _Bin/binary>>) when R > 0 ->
    io:format("Problem: ~w~n", [binary:bin_to_list(_Bin, {0, 10})]),
    {scan, _Bin};
extract(Data) -> {scan, Data}.

The binary being read from the the on-disk block file matches a complex expression leading with a 32bit little endian encoded MagicByte as a start token. If the pattern doesn’t match a tuple {scan, Data} is returned which causes the parent function to bit-shift forward and try to match again. A very expressive piece of code that would be difficult to match in many languages. This focus on writing binary protocols. I’m also a fan of my implementation of variable-length integers:

getVarInt(<< TXCount:8, BinRest/binary >>) when TXCount < 253 -> [TXCount, BinRest];
getVarInt(<< 253:8, TXCount:16/little, BinRest/binary >>) -> [TXCount, BinRest];
getVarInt(<< 254:8, TXCount:32/little, BinRest/binary >>) -> [TXCount, BinRest];
getVarInt(<< 255:8, TXCount:64/little, BinRest/binary >>) -> [TXCount, BinRest];
getVarInt(_) -> error.

A series of functions with guard expressions and multiple returns, but also very concise. I probably should be returning a tuple, but that is a philosophical flame-war for another day. These are the functional roots of Erlang layered with a heavy dose of pragmatism. I think that is the design feature that sticks out more than anything else, Erlang was designed primarily to solve real world problems in a specific space, and those decisions have permeated the base libraries, frameworks, and general structure.

The astute reader will note that I am using poolboy to create a worker pool that handles long running parsing requests. This may seem right, but is actually wrong. I was under the impression that poolboy was both a worker pool and a work queue, it is decidedly the former. That means in order to leverage it properly I would be roped in to building a proper queuing solution. The right way to do this would be to create a dispatch process that loads the work queue, and then have a series of processes that read from the queue as appropriate. Erlang makes that type of interaction very easy. As it stands the code is fairly efficient, I spawn a process for each core and give each a sequential list of files to work through. The I/O in that situation was fairly fast. Earlier I had experimented with sending block updates to a logging process, but that queued a tremendous number of messages in the receive queue and ultimately resulted in poor write performance.

The long and short of it is that Erlang’s concurrency and bit syntax made short work of what would otherwise have been a fairly hairy experience. It has an uncanny structure to Unix itself, and is remarkably natural if you have a strong familiarity with those process and IPC mechanisms. Definitely give it a shot, after a few hours of utter frustration you will be glad you did.

I’ve just released a specification for a digital voting system built on top of the Bitcoin blockchain, and specifically an addition to the Open Assets Platform for multiple asset classes on Bitcoin. For consistencies sake let’s refer to it as Proof-Of-Vote. You can read the full white paper here. The idea uses a variant of Manuel Araoz’ beautiful proof-of-existence and the Open Assets Platform by Flavien Charlon to sustain a system capable of supporting a wide variety of voting methodologies including liquid democracy.

Voting on the blockchain isn’t a new idea. Even Satoshi’s original paper described Bitcoin as a fact-in-time ledger, and that intrinsic property is the most critical component in creating fair systems capable of being audited by all parties involved while preserving aspects of anonymity and integrity. Richard Branson recently wrote an article about the future of voting on the Internet, speculating that in the long term it makes a lot of sense. He is absolutely correct, but for the first time ever the technology necessary to make this vision a widespread reality is at hand. There are numerous technical challenges in creating voting infrastructure, but it is remarkable how many of them can be addressed by the power of the Blockchain and secured by the massive hashing power running that network.

The key is to think of ballots as units of digital currency, distributed to an electorate that can then spend that “money” on a particular candidate, or delegate that money to intermediaries in the case of liquid democracy. Voters are secured by private keys, or BIP38 protected wallets. In addition to minting a private currency for the purpose of the vote, we can further secure the whole process by encoding the parameters of the vote in the blockchain as proof-of-existence. That proof can include the source code necessary to validate the rules of the vote, and to enforce client-side restrictions. Ultimately since every vote is anonymous but public we can determine whether they are following the rules as documented by the proof-of-existence or not. This lets multiple parties validate the result, and prevents tampering and other types of voter fraud.

I also address some concerns about anonymity. These addresses are not linked with a user’s normal Bitcoin wallet, they exist entirely separately. There is enough flexibility in the system to provide the same level of anonymity that we currently enjoy in US voting, and if a third party agency dispensed authentication tokens (cookies) they could be embedded in the vote to provide an even higher level of security and accountability without necessarily reducing anonymity.

Compare and contrast this system with the current situation in the United States, which is for the most part completely opaque. Blackbox voting has been fighting for election transparency, and against machines that do not provide a paper trail. If we don’t have schematics on how a vote is conducted, where the data is stored, or when the vote is initiated how can we possibly expect to have fair elections? When a single command could swap a person’s vote, how can we be sure we know how our votes are recorded? A system based on the blockchain could easily provide proof-of-vote, and an individual could verify their own vote against the public ledger. Combine this with the distributed nature of the vote, and we have a system that could radically alter the way democratic processes work. I am a strong proponent of validated democracy through code.

With that in mind possible room for improvement is the addition of a specification that rigorously codifies the rules of voting as a series of backtracking and account management operations on the blockchain. Such that for every inbound transaction to a candidate we can trace the previous transaction, check totals, and determine that the coin originated where we think it did. Some of these actions are intrinsic in the Open Assets specification, but making sure all of the vote constraints are satisfied will allow us to do accurate tallying and discount cases of voter fraud or manipulation by any of the parties involved.

There are numerous ways to improve this specification, and I am open to suggestions. I’ve started Digital Suffrage as a community site. At this point it hosts little more than the white paper and a sign-up so that I can e-mail people interested in working or discussing the specifics of these systems. I’ve started doing some initial development, if you are a developer with a keen interest let me know. Let’s work together to make truly liquid democratic systems possible for the first time in history.

Everyone has a different opinion about what makes digital currency important. For some the ability to transfer value between individuals irreversibly and effortlessly is the main feature. Others see profound implications in programmable money, agent-driven transactions, delegated trust, and the ability for software services and systems to integrate seamlessly on a single payment network that binds them together. Underneath all of this functionality is the blockchain, a trust-less distributed ledger that enables new types of applications and services many of which are currently pure speculation.

When people talk about the utility value of Bitcoin they are often referring to the untapped potential of decentralized ledger applications. What they mention less frequently is the network itself. The idea that tens of millions of dollars of hardware is quietly humming along, consuming electricity, and calculating hashes in order to drive the blockchain forward. The fact is that there is an infrastructure deployed world-wide that acts as an engine, and provides substantial benefits for applications running on top of it. It takes literally seconds to fork the code underlying Bitcoin, and doing so would provide any alternate coin with the same technical prowess and capabilities. However, any coin minted this way would be completely separate from the Bitcoin network, and would not benefit from the hashing power which is critically important in protecting the integrity of transactions.

In that light the Bitcoin itself is less of a currency, and more of an access token. Like metered power or water these tokens provide connectivity to the network itself, ink for the ledger. They can be used to transport far more than the coin they represent in the form of assets and alternative protocols. Many of the Bitcoin 2.0 projects are structured on this very idea, the underlying Bitcoin is almost immaterial to the content of the transaction. Baked into the meta-data itself or in the limited opcodes of the Bitcoin protocol is room for exchanges, betting, swaps, contracts, assets, secret messages or any number of uses. This layering of more sophisticated application data turns the Bitcoin network into a transport layer, and makes the Bitcoin itself part of the cost of doing business.

In many ways that makes a lot of sense. We have spent years transitioning monolithic self-hosted infrastructure into the “cloud”. Loosely coupled, API driven components that were meant to be decentralized and scaleable. What has actually happened is that the vast resources necessary to support and develop cloud services has resulted in massive centralization in the hands of a few corporations. What if we had a way of paying the network itself for a universal set of financial APIs and trust-less primitives on which complicated distributed software could be written? Now we can.

The promise of blockchain technology and the network that supports it extends far beyond this initial implementation. Paying or being paid by anyone on the planet is a serious technical achievement, but it is just the tip of the iceberg. A programmable network of trust that allows data to be transferred between parties in a public and irrefutable way is an essential building block for the next wave of network applications. This gives us the tools to link widely-spread resources like compute, storage, and memory while simultaneously having a distributed way of paying for those resources. I’m going to call it Cloud 2.0, it’s all about the network, and you heard it here first.

This blog post is devoted to the lowly Quick Response code, or QRCode for short. Essentially a 2-dimensional bar code that has exploded in popularity in recent years because it can encode substantially more data than the barcode of yesteryear and can be scanned with most cell phone cameras in a variety of conditions. It also has loss protection in that the image can be degraded, partially destroyed or otherwise altered and information can still be read, making it the hardy choice for physical placement.

The QRCode was originally invented for high speed scanning of automotive equipment, but over the years its versatility has lent itself to a wide range of consumer applications. Adding a scan-able URL to a print advertisement is an easy way to get commuters to visit your website or install a mobile application.

The type of interactions you could historically have with a QRCode were limited. You could trigger events on scanning, but there was no way to do inline authorization, identity, or payment. Bitcoin has changed all of that. Now by encoding a unique address into a QRCode you can accept irreversible payment in any physical location, and you can use that payment to spawn actions in the real world, authenticate users, or provide instant access to merchandise. This ability to have an open and inline payment mechanism is potentially transformative.

Last week Tampa Bay Wave hosted a funding drive for local area charities. As part of that drive they had a Ustreamed event speaking with various board members and activists about their experiences around non-profit activities in the region. Noticeably lacking was a sign with a QRCode on it. A simple sign would have allowed them to take digital currency donations over UStream. A college student recently racked up over $24,000 USD in online donations after showcasing a QRCode on a sign during an ESPN telecasted event. Direct transmission of value over the TV, without any intermediaries, extraordinarily low fees and a high degree of anonymity. The same technique could just as easily be adapted to Youtube or any streaming video service for soliciting donations or voting on choices for future episodes.

In addition to almost nonexistent fees, the human labor costs are substantially lower also. As the technology proliferates will we need banks of telephone operators accepting calls in order to enter credit card information and other manual processing tasks? When are we going to start seeing PBS or another channel heavily invested in funding drives utilize this technology to provide another instant revenue stream? It seems that anything that reduces the cost to acquire funding is just money in the bank, is that enough to spur adoption?

What about the rise of in-game payments? If I want to unlock that hidden door, or purchase an item upgrade, why not integrate it into the fabric of the game itself? Bypass the network to provide additional in-game content by allowing players to scan QRCodes generated by the game. This would let content publishers offer direct consumer payment without using big content networks or paying middlemen, an appealing proposition for some.

That only begins to scratch the surface of what is possible. Payment can trigger events in the real world also, like dispensing that can of coke, turning on the valve for the beer tap, and initiating point-of-sale transactions. This bridging of out-of-band transactions with the real world can inexpensively add payment to a wide variety of activities without the overhead of point-of-sale architecture. My CoinCollectr project was based on the premise that if you can build an extremely low-cost point-of-sale (POS) you can do an end-run around the expensive entrenched infrastructure we have today. If there is interest in those technologies maybe someone can convince me to Kickstart it. That same technology can be applied to a dizzying array of use cases in developed and developing economies.

Finally, not only can you trigger an action but potentially you can convey information about who you are with that action. This has applications in physical and virtual access control, micro-payments for unlocking online services and providing 2-factor out-of-band authorization for banking and other services. Thats a lot of power for a 2D barcode. Don’t underestimate the numerous ways you can integrate this technology, or the transformative nature of being able to respond to payments in a programmable and real-time way.

Let’s talk crypto currency air drops and the national coin movement. Quite a few alt coins have popped up in the last six months that purport to represent a geographic region and are using some kind of air dropped distribution. Auroracoin, Spaincoin, and Mazacoin (centered around the Lakota native-american tribe) just to name a few. Simply put, this means that the coin is mined and distributed to a specific population. That group does not need to be involved in the currency in any way, and is given a preferential allotment which is supposed to bootstrap adoption. This is an interesting conceptual mix of ideas, it preserves digital scarcity while gifting a specific population with a digital means of exchange. There is also something nice about having a pre-baked community, a rallying point around nationality or self-identity, which seems like a more natural boundary than an adorable dog or other internet meme. In some areas where traditional payments are difficult, and injecting money into a crypto is difficult this makes a lot of sense to me. I can imagine fostering digital exchange of value in places without much traditional infrastructure.

The nagging doubt in my mind is whether or not something with excellent utility but zero cost of production can have real value. Without mining cost, labor, or capital injection what exactly are we distributing? AuroraCoin made waves claiming to be the first national currency air dropped to the entire Icelandic population. Unlike many countries Iceland apparently has an excellent mechanism of tracking its citizenry, and a mechanism for people to both establish legal identity and claim their share of the AuroraCoin. When talking about crypto value I like to substitute some ordinary object as a placeholder, I think that helps navigate the question of value. Instead of distributing a digital currency, let’s distribute special rocks to all Icelanders. Now every Icelander has five special rocks which they can trade or give to other people. Do those rocks have value? They have the same utility value of any other special rock, are scarce, but potentially cost very little to create. As someone who isn’t Icelandic, why would I trade for this free rock the Icelander’s have that I do not? Certainly I could just create my own rocks and gift them to every American and we would be in the same situation?

Value is a very tricky question. It is a soft subject. Ultimately if someone is willing to pay for something it has value. The market capitalization of AuroraCoin is over 1 million USD right now, having undergone some significant fluctuations. The total available share is not clear, I imagine most Icelanders have not claimed their allotment yet. Shouldn’t the price deflate as distribution occurs? It seems that the value right now is based on a lot of artificial scarcity more than anything else. I think that summarizes the problem I have with national currencies in general, I’m not convinced that the distribution model conveys value. There is a marked difference between a community working together to create something, as was the case with Dogecoin, pooling resources and compute power, and ultimately electricity cost and a de-facto elite membership being gifted monies.

There is a lack of transparency in the operation of the coin that is a common problem in alt currencies. It seems that most of the alternative coins don’t have public figureheads. I’ve said it before, but identity is a key component of trust. All of my products have my name on them. If they perform poorly that reflects badly on me, so there is a real tangible loss to me if something I launch turns out to be a scam. For most alt coins their failure has absolutely no repercussions on the people involved. All upside, no downside. Any investor looking at an alternative currency should have a very good idea of who is behind it, and be able to independently assess their credentials and motivations. Alternative coins are already a fertile ground for pump and dump scams, and creating specific coins geared at a target population but without any general buy-in or identity seems like an idea ripe for abuse. What is stopping the creators of AuroraCoin from distributing the pre-mine amongst themselves if there is adoption outside of Iceland? There are no capital controls, rules, or regulations that prevent the spread or misuse of crypto currency.

For any pre-mined crypto currency is seems that for it to have value something of value must be traded for it, preferably another scarce resource. If a tree had to be planted for every coin minted then there is tangible human labor involved. Labor and the usage of limited resources is a foundational component of real value. For once I would like to see a national crypto currency that trades some of the countries real natural resources in exchange for the creation of the currency distributed to its citizenry.

Let me preface this post by saying and I am not a lawyer, nor should you construe this document as legal counsel of any kind. I am however a huge fan of Coinbase. They were an early mover in the digital currency space, have received significant venture capital funding and clearly are making a concerted effort to push Bitcoin into the mainstream. My interactions with them have been consistently professional and the service they have provided has been virtually seamless. They are one of the only companies doing bidirectional USD to BTC conversion, allowing consumers to attach their bank account in order to buy and sell Bitcoin via transfer.

Although their monetization strategy isn’t discussed at great length publicly, one would imagine that in addition to a 1% flat fee they profit from bidirectional order flow with their customers. If their platform is reasonably sophisticated they would be matching buy and sell orders internally before going to an external market, reaping more savings. This off-chain trading allows for significantly higher transaction rates than block-chain based technology. This is a walled-garden approach, bringing the inter-customer infrastructure in house to facilitate micro payments, faster transactions and other usability features.

The service is great, but is it legal under current regulation? Coinbase is an online wallet, which allows external parties to send Bitcoin inbound to be auto-settled to USD. An analogy would be a bank that puts a bucket out front with your name on it. In the middle of the night someone drops a few bricks of gold in that bucket. The bank takes the gold, sells it for dollars and sticks that money in your bank account, no questions asked. They certainly know one side of that transaction, you as a customer have provided them with enough information to verify your identity. Is that enough? There is no way to determine whether you are initiating the Bitcoin transfer inbound, or if a third party is sending you money. There is certainly no way to determine the validity of that third party in the current system.

To my mind that seems like a slight of hand. Anti money laundering and know-your-customer regulation is fairly strict about identity and banking relationships. The argument could be made that you are buying and selling an asset that you own, but without being able to prove ownership it seems like a two party transaction where only one party is positively identified. Regulation is creeping into physical cash deposits with Chase requiring ID, and there are rules about receiving inbound wires from known criminal elements. Iran and other embargoed countries cannot simply send money into the US without it being noted, well unless they use Coinbase.

I hear people clamoring about risk management engines and threat analysis, but Bitcoin is programmatic money. A hundred proxies could just as easily receive money as a single person. The bank secrecy act of 1970 sets the bank reporting requirements at $10,000 USD. A $10,000 USD transfer could be trickle accumulated and settled out trivially. There exist simply hundreds of ways to obfuscate the public ledger. What is the functional difference between a large shared wallet, a purpose-built mixing service, and an exchange? Has anyone conclusively been able to prove identity tracking across the blockchain in all but the most trivial cases? It seems that in most instances a user’s identity is compromised by inadvertently tainting their transactions with a known or published address.

What about money services businesses? The MSB situation in the United States is obviously absurd, requiring in many instances per-state licensing. I don’t have the exact numbers but I believe at least 28 states have differing laws on the subject. Coinbase is no doubt pursuing these licenses if they don’t already have them, a good use for the war chest. So if Coinbase isn’t outright in violation of the law, it certainly is skirting around a very sensitive issue. Electronic transfer has been carefully regulated for decades, but new technology has done a total end-run around the current system.

The current banking system and the US government has constructed an extraordinarily expensive and convoluted infrastructure in order to control capital inflow and outflow. It operates like a financial Maginot line, a series of barricades and obstacles meant to prevent uncontrolled and un-monitored flow built on 20th century know-how. It is both an extraordinary testament of engineering and completely and utterly useless in the face of new technology and the promise of trust-less digital cash and peer to peer transfer.

Ultimately, maybe it doesn’t matter whether Coinbase is in perfect compliance with the regulation, when clearly the rules are outdated and ineffective. You can’t put this genie back into the bottle, and trying to make new technology completely conform is perhaps missing the point. It seems more likely that multiple ecosystems will begin to develop, some of which are in perfect compliance, and others that are outside the general rule of law. So is Coinbase legal? A definite maybe.

I’ve decided to start my Bitcoin 2.0 series with side chains. The story definitely doesn’t start here, but proponents are making it sound like it ends here. There are a lot of competing technologies fighting for mind share trying to build next generation blockchains. As incredible as Bitcoin is, there are still limitations, and the argument is that a side-chain that allows for transfer of value between Bitcoin and other blockchain implementations is a valuable and needed innovation. Austin Hill and Adam Back are working on a blockchain company that is trying to shake things up with a new paradigm. They should be commended on a very interesting idea, a cryptographic 2-way peg that allows back and forth transfer. The question in my mind is, do we really need this? What does this offer beyond alt-coin implementations, and are those features fundamentally important?

The idea of an interoperable side-chain is that value can be transferred back and forth with another blockchain in a trust-less fashion. You don’t need an intermediate exchange to do multi-crypto transfer. You don’t need to rely on unfair mining, or pump-and-dump style trading. This is the “can’t do evil” idea, that cryptographic trust is all you should need. This is predicated on the concept that the digital scarcity of Bitcoin is a good thing, and that it should be preserved across blockchains. Separating utility value from the unit of account is a neat idea, but it doesn’t change the fact that the utility value of Bitcoin or a side-chain can be immediately duplicated in an alt. So instead of experimenting with new ideas in siloed environments and allowing the market to determine the value of the blockchain in question, the liquidity and ultimate value of the chain is entirely determined by BTC transfer.

Shouldn’t the value of a particular coin float against the values of the others? Shouldn’t I be able to experiment with new ideas in the space without hitching them to the Bitcoin bandwagon? It seems that most of the major benefits of side-chains are actually provided by merged mining, the same system that has driven Namecoin. The thing is that exchangification is extremely powerful, very efficient, allows high speed off-chain trading, and has other efficiencies with respect to capital that make it very appealing. The fact that some entities in the space have violated the community trust doesn’t mean that exchanges are a terrible idea that need to be thrown out. In fact there are many trading paradigms that would probably be very difficult to replicate outside of an exchange ecosystem.

What about digital scarcity? Limited supply drives value. So we are taking the limited supply of Bitcoin and allocating it across blockchains, and thus increasing the value of Bitcoin. The thing is there are alot of alt-chain concepts that revolve around inflationary policy, and there is quite a bit of evidence that Bitcoin’s efficacy as a currency decreases as the value increases. The hoarding mentality coupled with deflationary tendencies is pushing the value up, but the utility remains unchanged. Side chains seem to be poised to increase that overall utility, while also increasing the value. Do we want to pay more for utility that can be provided for less? Look at XRP in the ripple ecosystem, massive amounts of available units, because those units are being used in the transactional system. They are meant to protect the network, not drive the cost of doing business up as the supply dwindles. If a company wants to issue a stock, why should the value of that issuance be tied to BTC? If I issue stock on a side chain with transferred BTC and then transfer that BTC back what happens to the stock?

Let’s do a thought experiment. I’m going to create a side chain called CheaperBTC. You can transfer BTC into it from the main chain, and I’ll guarantee that the transfer fees are a fraction of the BTC blockchain on that network. Since this is a merged-mined alt-chain there is no incentive not to run the network as fees are accumulated across networks. What is to stop massive capital flight from the main blockchain in the search for market efficiency? Would this have a destabilizing affect? Interoperability can have pitfalls and unintended consequences, with a network of the value and size of Bitcoin is there strong incentive to adopt this idea? If BTC irrevocable travels between experimental side chains, what percentage of BTC will be lost in that transfer if the side chain infrastructure collapses or has fundamental bugs that Bitcoin doesn’t have? It seems likely that the deflationary spiral of BTC will become steeper in that scenario. Every change incurs risk, and there would need to be some kind of protections against abusive side chains.

Enough of devil’s advocate. This is a new idea, and it is bound to have some teething issues. The fundamental concept is interesting, and there are certainly use cases that would benefit from cross-chain asset transfer. It remains to be seen whether the benefits outweigh the risks. I believe that most of the value in side-chains already exist in a combination of alt-chains, the free market, and merged mining. Anything that expands the ecosystem is probably a good thing, but side-chains are built on many assumptions about the value of digital scarcity and the fixed monetary policies that exist in Bitcoin. Let’s work towards integrating it but judge the technology on its merits when it delivers tangible value.