What happens if Bitcoin mining companies vertically integrate?

Creeping centralization can come in many forms – are the Web Application Server wars a lesson from the past?!

First some history of the IT industry (you can skip this bit if you just want the meat…)

Travel back in time with me to the late nineties…. I started my career during the Web Application Server wars. The web was taking off in the late nineties and companies like WebLogic (quickly acquired by BEA) spotted a need in the marked for a Web Application Server.

They were solving an obvious problem: it was a real pain to write proper applications. Sure: you could write HTML and run it on Apache. And you could use the CGI interface to have scripts run to generate basic dynamic content. But it was painful to do anything more sophisticated

If you were a bank that wanted to build an online banking service that interfaced with your core banking system, it needed a huge amount of effort and care… and you were wholly responsible for figuring out how to manage session state, failover, transactionality and everything else. And what we quickly found was that everybody needed a similar set of code “middleware” services – and were building for themselves each time.

And one solution to this problem was the web application server. This was a server, usually written in Java, that provided a defined set of APIs and an execution environment for web applications.    You could think of it as having two faces: one face spoke “web” – it sent and received HTTP. The other face spoke “enterprise” – it provided a set of APIs, SLAs and common behaviours that app developers could rely on to build their applications.

Products like BEA WebLogic, as it became, Netscape Enterprise Server, IBM WebSphere Application Server and Microsoft’s Internet Information Services platform were all designed to solve this problem… and it became a billion-dollar industry.

Sure – somebody still had to buy, configure, install and manage these platforms (usually in corporate datacenters, running on expensive hardware) but at least there was now a clear separation: and a division of labour emerged: J2EE developers, App Server administrators, infrastructure engineers and so on.

Today is different but not that different!

Fast-forward to today and the world is different: we take a rich execution environment for granted and the state-of-the-art consists of cloud offerings that protect the developer from worrying about anything apart from their code: infrastructure, connectivity, bandwidth, middleware configuration is all delegated to the platform. (IBM’s BlueMix is a recent example of such a service)

But the insight is the same: in any field, we see lower levels of the stack become standardized and commoditized. A small number of specialized players, with economies of scale and benefitting from experience-curve effects, begin to dominate.

So I’ve often wondered if we’ll see something similar in the Bitcoin space.   Are there any parallels we can draw and, if so, what can we learn from them?

Can we see any parallels with Bitcoin infrastructure?

Look back a few years and anybody wanting to build a product or service on Bitcoin had to do it all for themselves.

For example, it seems that Mt.Gox wrote their own custom implementation of the Bitcoin protocol – which is not, perhaps, surprising given the nature of its business and the maturity of the ecosystem when it was founded. I guess that’s similar to people who wrote their own HTTP servers or implemented custom schemes for producing dynamic content back in the nineties.

More recently, APIs like BitcoinJ and platforms like BitsOfProof have emerged as credible abstraction layers upon which interesting products and services can be built. In both cases, developers typically run and maintain their own instance(s) of  Bitcoinj or BitsOfProof, etc. So one could argue this is a parallel to the on-premise app-server days of the web.  

So it’s tempting to ask… are the parallels with the web appropriate? If so, what happens if cloud-based services for Bitcoin developers emerge?

And, of course, we don’t need to imagine. These services already exist. chain.com is one such example.

Chain.com is a cloud-based Bitcoin API for developers. From their website, it appears that they maintain a set of Bitcoin nodes and ensure they are well-run and well-connected, perhaps in the way that Amazon or IBM might maintain app servers, infrastructure, routers and connectivity to major peering points on the internet.

And developers simply write their Bitcoin product or service in a language of their choice, calling the Chain APIs as and when they need to interface with the Bitcoin network.  One can imagine that coding against Chain.com makes it an order of magnitude more easy to get a new Bitcoin company up and running. You don’t need to worry about any of the infrastructure detail: Bitcoin is abstracted away to a set of easy-to-use, well-documented, high-level APIs.  

You might hardly even know you were even using Bitcoin!

And that’s a really important subtlety: if you are not running your own Bitcoin nodes, how do you know the information your service provider is giving you is accurate? How do you know you’re connected to the “real” network and seeing the real blockchain and that your transactions are making it across the network?

Now I’m sure the chain.com team are hugely competent and ethical people. This post is emphatically not a criticism of them or their service. But one does need to be open-eyed about the tradeoffs one is making as an engineer.  And one approach app developers could take might simply be to maintain their own independent copy of Bitcoin core to act as a monitor/sentinel.  It’s probably not a show-stopper.

And I can see this sort of service being immensely popular: it is a lot of effort to install and maintain Bitcoin network infrastructure… keeping it patched, making sure you really are well-connected to the Bitcoin network and so on… and if your business has latency dependencies (mining? Exchanges?) then you also need to worry about making sure your nodes are “close” to other major nodes. And so on and so forth.

Figuring out how to do this sort of stuff well has good scale effects and there will be big learning/experience curves. Just as cloud vendors can run web infrastructure better and cheaper than most companies could do themselves, we should probably expect to see small startups outsourcing their Bitcoin network integration to firms like chain.com – and maybe even hosting providers who include Bitcoin APIs and network abstraction as a core part of their service offering.

So, leaving aside the concerns this might raise around decentralization and ask yourself:

if a cloud-based Bitcoin API/application platform were to become really popular, who is best placed to deliver it?

Until a few weeks ago, I would have said I expected more firms like chain.com to be founded over the coming months and for a handful of them to gain critical mass and become the dominant application platform players of the future.

And then CoinTerra bought BitsOfProof

It was one of those lightbulb moments for me when I heard about it. Of course! How Obvious!

It makes perfect sense. Think about the capabilities and advantages that big mining firms have that they could use to build a powerful hosting proposition for developers:

  • Hosting in low-cost locations
    • They already maintain massive farms of servers, usually in locations with cheap power. They could easily offer colocation to their clients
  • Massive hashing power
    • They could commit SLAs to application clients that nobody else could make – “At this SLA, we will guarantee your transactions make it into a block within x hours”, perhaps?
  • Optimised network connectivity
    • The mining firms must surely have deep knowledge of the Bitcoin network topology so I suspect they could make promises about transaction propagation times and other time-critical requirements that would measure to some clients – “You will see transactions from other people faster on our platform than if you ran your own node”, perhaps?
  • 100% Virgin coins on tap
    • Mining companies can offer businesses who use their APIs access to freshly-minted coins… no taint, no need to ask where they came from
    • … and I’m sure there are more

Many observers, myself included, have tended to ignore mining, regarding it as an infrastructure function, with the main debate being around the threat of concentration of hashing power. What I missed until now is that a well-run mining platform is also a phenomenally powerful platform from which to build up the stack to middleware/APIs and beyond.

So the question for me is: what happens if (when?) one of the mining firms offers a hosted application environment for Bitcoin companies with a really easy-to-use abstraction API over the Bitcoin network?   Commentators such as Tim Swanson have written extensively about the incentive structure of Bitcoin mining but I’ve not yet seen an analysis that thinks through the implications of vertical integration of the sort I outline here – and what it would mean for any security analysis of the system as a whole.  

If anybody’s aware of one, I’d love to read a copy.

Disclaimer: I’ve not spoken to any of the firms named in this post and I have no insight into their product plans

A simple explanation of fees in the payment card industry

I wrote a piece last month explaining how the payment card industry works.  I talked about the various actors (acquirers, issuers, schemes, merchants, etc) and pointed out how weird it is that everybody knows the Mastercard and Visa brand names yet nobody actually has a relationship with them. One of the questions I didn’t address there was fees.  Who makes all the money? Why does it seem so expensive?

Let’s start with the standard four-party model: Merchants, Acquirers, Issuers and Schemes:

Four Party Model Fees 1

The four-party model: Merchants obtain card processing services from Acquirers, who route transactions via Schemes to Issuers, who debit Consumers’ accounts.

A Worked Example

The key point is that one firm from each category is going to be involved in every payment card transaction.  So it’s interesting to ask: how much do they get paid?

Let’s take a concrete example and work it through.  Bear in mind: this is just an example. As you’ll see, there are almost infinite variations and some merchants will pay fees considerably higher than the ones I discuss below.  Also, note: this information all comes from public sources.  I use company names below for clarity but I have no private insight or information into their fee structures

The Scenario

Let’s imagine I’m using a Visa Debit card, issued by a US bank (let’s say Bank of America) to buy $100 of goods from an online retailer.   What happens?  From my perspective, of course, it’s obvious: I’m paying $100!

Four Party Model Fees 2

Imagine I am using my Visa Debit Card, issued by Bank of America to pay for $100 goods from an online retailer.

The Merchant’s Perspective: The Merchant Discount Fee

What does the merchant see?  Well, the merchant will have a contract with an acquirer.  What does that look like?  Let’s take an example.  Costco have a page on their website that refers small merchants to Elavon for acquiring services.  Let’s use the pricing displayed on that page for Online transactions:

1.99% plus 25c per transaction (plus some other recurring/monthly fees, etc)

Many readers will be thinking that seems low but let’s go with it for now.

So, for our $100 transaction, we can calculate how much money the merchant will actually receive from Elavon/Costco:

  • Transaction value: $100
  • Elavon/Costco takes 1.99% + 25c = $2.24. This is often called the “merchant discount fee
  • So merchant gets $97.76

So our picture now looks like the one below:

Four Party Model Fees 3

Merchant receives $97.76 from the $100 transaction. Elavon gets $2.24.  But how is the $2.24 distributed between the acquirer, issuer and scheme?

The Issuer’s Perspective: The Interchange Fee

So we know how much money the merchant has paid to the “credit card industry”. But how is that money allocated between all the participants?   Visa Inc has a very helpful document on their website, which tells us part of the story: Visa U.S.A. Interchange Reimbursement Fees.

The key word here is “Interchange”.  Interchange is the fee that gets paid to whoever issued the card – and it’s set by the scheme (Visa in this case).   You’ll see in that document that this is not straightforward… there are pages and pages of rates:  the interchange fees vary based on whether the card was present or not – and on the type of good or service being bought, whether it was a debit or credit card, whether it was a corporate card, whether it was an international transaction and lots of other criteria…

So let’s just pick a simple example.  We’ll go with page 2 – “CPS/e-Commerce Basic, Debit” (Card not present).

Aside: CPS means that the merchant has complied with various Visa rules (such as validating customer address to reduce fraud risk, etc) and has thus qualified for a low cost option.  

So the issuer is entitled to 1.65% + 15c

  • Transaction value: $100
  • Issuer receives 1.65% + 15c = $1.80.  This is the interchange fee
  • So issuer owes $98.20 to the other participants (Visa, Elavon and the Merchant)

And we already know that the merchant only gets $97.76 of that money (their merchant discount fee was $2.24, remember?).  So that means there is 44c left to share between Visa and Elavon.

The diagram below shows the current state of the calculation:

Four Party Model Fees 4

Interchange Fee (what the issuer gets) is $1.80

So how is the remaining 44c allocated?

We’ve assumed the switch is Visa so we need to know much they charge.  CardFellow.com has a good explanation.

We’ve assumed a Visa Debit card so, according to that site, Visa’s fee, which we call the “Assessment” is 0.11%.   There is a menu of other charges that might apply but we’ve assumed this is a low-risk “CPS” transaction so we’ll assume none of them apply.  (In reality, the 1.55c “Acquirer Processing Fee” probably applies)

  • Transaction value: $100
  • Visa assessment is 0.11% so Visa charges 11c. 
  • So there is $98.09 to pass on to the acquirer.

And if there is $98.09 to pass on to the acquirer and we know that the merchant receives $97.76, that must mean there is 33c left for Elavon.

So there we have it… in this VERY SIMPLE, highly contrived – and probably unrepresentative – example, we end up with the result in the diagram below:

  • Consumer pays $100
  • Issuer receives $1.80
  • Visa receives $0.11
  • Acquirer receives $0.33
  • Merchant receives $97.76 – overall fee $2.24

Four Party Model Fees 6

Final picture showing how the merchant’s $2.24 fee is allocated

As I’ve stressed above, this is just a simple example but it shows two key points:

1) It is the issuer who receives the bulk of the fees (this is, in part, how they fund their loyalty schemes, etc)

2) The schemes actually earn the least, per transaction, of any of the participants.  This underlines, again, how powerful their business model is:  by being at the centre of a very sticky network, they can earn a lot of money overall by charging very low per-transaction fees.   [Edit 2013-08-10 10:35 : it's also worth noting that the acquirers and schemes have pretty much fixed-cost infrastructures - unlike issuers, who need to hire customer service and debt collection staff in proportion to number of cards issued. So the schemes and acquirers also benefit disproportionately from rising volumes.  So: low fees for schemes/acquirers for sure... but HUGE volume is what enables them to make big profits]

[Note: I use blog posts like this to help clarify my own thinking and understanding - as well as to share knowledge...  and there are one or two pieces here where I'm not 100% confident I got it totally correct... so please do tell me where I'm wrong if you spot something]

[Update 2014-08-09 18:47 Minor typos and replaced last diagram]

Think Payment Cards are Insecure? Just Wait Until Push-Payments Hit Primetime…

What Brazil’s Boleto Fraud Tells Us About Bitcoin and other Push Solutions

When I explain to people how payment cards work, they are usually aghast. I point out that when you hand your card to a merchant and sign your name or enter your PIN, you’re authorising them to suck funds out of your account and the only thing that stops somebody draining all your money is trust. The picture below shows the standard “four-party” model for payment cards and I stress that the consumer is merely authorising payment; it’s the merchant and all the other actors who actually move the money.

PushSecurity1 

The Payment Card “Four-Party” Model: Consumers authorise merchants to pull money out of their account.

(Aside: I’ve never understood why this is called the four-party model. I count at least five parties on that picture…)

Online, the problem is more stark: you type your card details, including your CVV2 “secret number on the back” into your browser and hope for the best: you have to trust the merchant, their IT supplier, the acquiring bank, their third-party processor, the card network and your own card issuer – and everybody who works for them and has access to their systems. If a bad guy gets hold of your card details at any point in this process, they could drain your account. The picture below shows the scope of all the entities with access to your critical card information:

PushSecurity2

Your Primary Account Number – PAN – passes through the hands of pretty much everybody involved in processing the transaction.

It seems mad: why would you spray such sensitive information all over the place willy-nilly? Whoever thought it was a good idea to build the system this way?!  Except… the system works.

Fraud is surprisingly low given the design – and consumers get compensated if something goes wrong. And the design isn’t actually as mad as it seems: how else would you build a consumer payment network in a world where you can’t assume the consumer has a smart device with guaranteed network connectivity?

Payment card networks also have the advantage of decades of experience and refinement. For example, the Payment Card Industry Data Security Standards (PCI-DSS) lay down rules and guidance on how to protect the sensitive card data. The EMV smartcard standards make it harder to clone cards. Issuers have sophisticated heuristics to block suspicious transactions. And forthcoming moves to standardise “tokenisation” (something I should blog about one day) will further mitigate the risk of card details getting into the wrong hands. So an underlying architecture that appears wholly unsuited to the web age has actually been patched up to be good enough (but not perfect – and it still has lots of problems)

The Push Pay Revolution – a better way to do retail payments?

As I’ve written often, there is an entirely different way to design a retail payment system, one where the consumer doesn’t have to trust nearly as many people. I call these sort of payments push payments.  Bitcoin follows this model, as does M-Pesa, iDEAL, ZAPP and the Boleto system in Brazil. The defining characteristic of push-payments is that the consumer is in the driving seat.

With Push, it is the consumer who instructs a payment – from their bank or telco or Bitcoin wallet

This is unlike pull-payments, where the consumer merely authorises the merchant to pull the funds from their account.   The difference may seem subtle but it turns out to be hugely important. The picture to have in mind for push-payments is this one:

PushSecurity4

Push payments have a very different threat model to pull payments. Now the consumer only has to trust their payment provider and their own device.

In previous articles, I talked about the benefits of push payments in terms of innovation and the reduced need to trust quite so many people.   In this post, I look at one of the downsides: push payments can be compromised in hard-to-detect ways if they are not implemented really carefully.

So what’s the problem with push payments?

First, let’s remind ourselves about what we do have to trust and what we don’t have to trust in the pull world.

In the pull world, the consumer has to trust everybody else – and, as I’ve discussed above, there are various safeguards in place to fix things when they inevitably go wrong. One might argue that the safeguards don’t always work and that they come at a cost. Both arguments are, of course, valid but let’s leave them to one side for now.

In the push world, it’s different. The way it’s supposed to work is like this:

  • Step 1: The merchant “tells” the consumer how much they’d like to be paid and to where the payment should be sent. Examples:
    • With M-Pesa, this is usually done in-person, verbally
    • With Bitcoin, it is either done ad-hoc or via a QR-code displayed by the merchant or via the emerging BIP70

To illustrate the point, here is a picture of me in Shoreditch trying to tell a Bitcoin ATM where to send some Bitcoins I’d bought. On my laptop screen is a QR code that represents my Bitcoin wallet address. Note how it’s me as the Bitcoin receiver who is telling the sender (the ATM) where to send the coins.     In the more common case, where I am paying Bitcoins, this means it is the merchant who has to show the QR code to me. I need to know where to send the money to.

PushSecurity5

This is me using a QR code on my laptop to tell a Bitcoin ATM where to send my Bitcoins. (The Apple Bitcoin ban was still in force when we took this photo… so I had to use my laptop rather than my iPhone…)

  • Step 2: Once the consumer has the payment request, they use a program or app on their smart device (laptop, smartphone, whatever) to instruct the payment. Examples:
    • An M-Pesa user launches the M-Pesa SIM app and instructs the payment
    • A Bitcoin user pastes the destination address and value into their Bitcoin wallet
    • … or uses their wallet to read the recipient’s QR code
    • … or opens the BIP70 Payment Request with their wallet)

When you put it like this, push payments are obviously superior, right? The consumer is in control, they don’t have to trust all those people and there’s no danger of a rogue agent sucking all their money out of their account!

Not so fast…

The analysis above neglects one small, but rather important, fact: devices get hacked.

In the pull model, the only devices that can get hacked are those inside the “circle of trust” – your plastic card is pretty impregnable.  And as the utterly disastrous Target breach suggests, consumers were made whole when the disaster happened. It was the big firms who messed up who suffered the consequences.  

Yes… I know this is counterintuitive… you must be asking yourselves: “is this guy seriously arguing that the Target disaster is an argument in favour of the current payment card model?!” Obviously, no…. the episode was clearly a catastrophe and it was really, really bad.   But… it did eventually get sorted out and the roll-out of EMV, tokenisation and better enforcement of PCI-DSS should reduce the risks of something similar in the future.   So I raise this merely as prelude to the push scenario.

Now ask yourself what happens if a device gets hacked in the push scenario.  The obvious question is: which device?   Well… the only device in the circle-of-trust this time is the consumer’s smartphone. Uh-oh.

This is the device from which we’re instructing real-time payments, right? The one that could be riddled with malware?

This might have been merely a theoretical risk…. And then the Brazilian Boleto fraud happened.

RSA have a great write-up of a country-scale real-life example of what can go wrong when push-payment systems get breached… and it’s really scary.

The Brazilian Boleto system is very cool.   At core, it is a way for fund requestors (utility firms, etc) to send a payment request to consumers. The request is known as a Boleto and they can be physical or electronic.

PushSecurity7

A Brazilian Boleto. Think of it as a mainstream equivalent of a Bitcoin BIP70 Payment Request…

The idea is this: the Boleto has details of the payment request and includes details of how much to pay and to where.   This is in coded text format and a bar code… basically, something that a consumer can take and feed into their banking app: scan the code with your mobile banking app, approve and you’re done. Or you could take it to a bank branch. And if you’re online, you could copy and paste the code into your online banking website and achieve the same end.

Except… the RSA paper shows all the ways it can and has gone wrong.

First, there’s a simple problem of authentication. How do you know the Boleto really did come from who it says it’s from?   The RSA paper documents examples of people receiving Boletos via email that look convincingly genuine but which have the fraudster’s payment account details in place of the firm from which they purport to come.

This is a real problem but it’s nothing new… it’s not really any different to fake websites that masquerade as real ones. We solved it in the pull world with SSL certificates and the like for websites. And the Bitcoin Payment Protocol includes the option to use the same PKI system, for precisely these reasons.

However, the RSA paper also discusses another attack – and this one’s scarier.

This second attack comes in the form of malware that runs in the consumer’s browser.   When it sees a document that looks like a Boleto, it silently changes the details that the consumer sees on their screen: the payment details are changed from the genuine recipient to the attacker. So when the consumer copies and pastes the details into their banking app, it’s the attacker’s account they’re sending the money to.

Variations on this theme are included in the paper but they all amount to the same thing: if the consumer’s device is compromised then it’s game over. And you don’t even need to compromise the whole device or get root-access… you just need to compromise the browser in this scenario.

There are various mitigation mechanisms one can implement (e.g. tying the payment instruction to a signed representation of the payment request and so forth) but the underlying problem remains: if you’re using the consumer device to instruct payments, you have an issue if that device is compromised.

Now, this risk is perhaps over-blown: the risks identified here apply equally to standalone mobile banking apps and we happily run these on mobile devices today, albeit with the belief that their bank will bail them out if something goes wrong. (It’s no surprise that banks are big users of technology like IBM Trusteer).

Similarly, Bitcoin users run their wallets on their devices, in the full knowledge that there is nobody who will bail them out if malware runs amok on the device.  

But I think the two-step dance of an end-to-end push payment request/instruction – where the device is responsible for turning the request into the instruction – is something new that needs deeper study.  So I think the Boleto story tells us is that we need to think very hard about things like:

  • User experience: how is the linkage between Step 1 (receive and authenticate request) and Step 2 (populate and instruct payment) executed and communicated to the user? If step 1 is done by a different app to step 2, what is the hand-off? What security assumptions are being msde?
  • Validation and Reconciliation: what work should (can?) the “network” do to validate that a payment instruction purporting to be in response to a payment request, really is traceable to that request?
  • Malware detection systems: what new behaviours should anti-virus and other technologies be looking out for?
  • Wallet providers: which scenarios are you willing and able to protect your consumers against?

It is possible that this is just a variation on the age-old theme that end-point security is hard – but when things like the Boleto fraud happen, we should use it as an opportunity to look at the other systems being built along similar lines and ask: are there any lessons we can learn and apply?

Why the payment card system works the way it does – and why Bitcoin isn’t going to replace it any time soon

The Payment Card Industry’s weird business model is a work of genius

Regular readers will know that I am extremely optimistic about the long-term potential of Bitcoin and cryptocurrency technology to revolutionise the financial system. But that doesn’t mean I think they will overturn all aspects of the system.

In particular, I am skeptical of claims that Bitcoin will have a meaningful impact on retail payments and break the stranglehold of the payment card companies.

Of course, many people disagree with me. Articles such as this one from last year are typical of the genre: “credit card companies” are accused of charging obscenely high fees, hindering innovation and being ripe for disruption.

IMG_1600

Payment Cards fees might seem expensive but does it mean they are vulnerable to disruption?

Now, it’s true that the fees do seem expensive at first glance but, as David Evans has argued, it’s not obvious that the Bitcoin payment processors are really that much cheaper, once you take into account their spreads and the costs of getting into and out of Bitcoin at each end.

But the main reason I think the incumbents are in such a strong position is because the industry has extremely strong network effects, which leads to formidable barriers to entry. Would-be Bitcoin entrepreneurs need to understand this structure if they are to succeed.

The Payment Card Industry is marvellous and weird at the same time

When you step back and think about it, the modern payment card industry is a marvel – an underappreciated, underrated miracle of contemporary commerce: you can travel to any corner of the earth, armed only with a piece of plastic bearing the Visa or Mastercard logo. It’s a minor miracle.

But when you look at the businesses of the major card brands, they turn out to be really, really strange companies. They simply don’t do what most of us think they do.

Take a card out of your pocket… chances are, it will be a Visa or Mastercard, or maybe UnionPay if you’re one of my Chinese readers. Let’s assume it’s a Visa card for now. And we’ll worry about American Express later, because they’re different to all the rest.

Here’s one of my Visa cards again:

IMG_1600

A Visa debit card, issued by first direct bank.

Notice something strange. There are two brands on the card. There is the Visa logo and there is one for first direct, the division of HSBC with whom I hold my current account.   Most other consumer products don’t have two firms’ logos on them. Something strange is going on.

Now, it it was first direct that issued the card to me, not Visa.

It is first direct’s website I visit to see my balance, not Visa’s

And it’s first direct I would call if something went wrong, not Visa.

I don’t have any relationship with Visa at all.

There’s no Visa call centre I can call if I have a problem with my card and there’s no Visa app on my phone.  This is strange: a hugely powerful global brand and yet the billions of consumers who use it don’t have a relationship with them.

It gets stranger. Another little-known fact is that no retailer anywhere in the world has a relationship with Visa either!  So we have one of the world’s most recognizable brands and nobody who uses their “product” has any relationship with them.

It’s worth thinking through why this might be and why it is such a powerful model.

How would you build a credit card system if you were doing it from scratch?

Imagine you run a bank in a world before credit cards.   Wouldn’t it be great if your customers could go to local shops and “charge” their purchases to an account that you hold for them?   You could make money offering credit to the customers and make some more money charging the merchants for providing this service.

This is what Bank of America did in California in the 1950s. They issued credit cards to lots of their customers in various cities and signed up local retailers to accept them. Great – the payment card industry was born! You could think of the model looking something like this:

Cards Picture 1

A simple card scheme: a bank issues cards to its customers and reimburses local merchants who accept those cards

But this model has two really unfortunate problems:

  • Your competitors are going to copy this and you’ll soon have schemes like this popping up all over the country, all run by different banks, on different systems, racing to sign up consumers and merchants onto their product
  • Your customers will travel. And they will be very upset when they discover they can’t use your card in a merchant who only takes a different bank’s cards

You would end up with the situation in the diagram below: a merchant who banked with Bank B wouldn’t accept cards issued by Bank A. Why would they? They had no relationship with Bank A and who’s to say cards from Bank A would even work with their machines?!

Cards Picture 2

Why would cards issued by Bank A be accepted by a merchant who uses Bank B if Bank A and Bank B operate competing schemes?

If you were running one of the banks, how might you respond to this problem?

One answer might be to view this as an arms race: perhaps the best strategy is for banks to enter an all-out war… sign up as many merchants as they can… sign up as many customers as they can and bet that you’ll be the last firm standing when the industry shakes out. Obvious problem: it would be ruinously expensive and what happens if it ends in stalemate? You still have the same problem.

But there’s another option… what if you cut deals with other banks: agree for them to accept your cards at their merchants in exchange for you accepting their cards at your merchants. This sounds quite promising but… obvious problem: how on earth would the merchant handle this? They’d need a huge book by every till that listed precisely which banks they could accept card payments from and which ones weren’t allowed. It would be chaos… But perhaps it points the way

A flash of insight – who are you really competing with?

Let’s recap: you’re a bank executive trying to build a payment card business. But your competitors are all trying to do the same and it’s going to end in tears: you’ll confuse the merchants with hundreds of different card types or you’ll go bankrupt trying to be “last man standing”.

It feels like having other banks accept your cards at their merchants would be good… but how to make it work?

And this is where a flash of insight changed the world.

Somebody realized that the cards “business” was actually two businesses.

The first business is all about offering credit to your customers, managing their accounts and processing their payments. We could call this card issuing.

And the second business is all about enabling merchants to accept card payments and get reimbursed. We could call this merchant acquiring.


 

Aside: we call it “acquiring” because it’s helpful to model the card payment as a receivable that the processor purchases (acquires) from the merchant at a small discount, which you can think of as the processing fee.


This is the key point: issuing and acquiring are totally different businesses which don’t compete with each other.

Sure… all the issuers compete with each other.

And all the acquirers compete with each other.

But the issuers don’t compete with the acquirers.

Indeed, they have a really strong incentive to co-operate… the issuers want all the acquirers to accept their cards… and the acquirers want to offer their merchants the ability to accept as many cards as possible.

So let’s imagine a group of issuers teamed up with a group of acquirers. And imagine they agreed that the acquirers would all process the cards of all the issuers in the group: every issuer’s card would be accepted by every acquirer.   They could use this forum to hammer out some standards: they would agree a common way to process cards, timescales for reimbursement, rules for what happens if something goes wrong… they’d define a “scheme”.

Now… this scheme would need two things: consumer recognition and merchant recognition. Consumers would need to know their card would be accepted at a participating merchant. And participating merchants would need to know a given card was part of the scheme.

So we need a brand. This brand would be something you could put on the cards and place in the shop window. It is how a merchant would know an issuer’s card was part of this scheme and it is how card holders would know a merchant was able to accept cards from that scheme.

One of these schemes is, of course, Visa. Another is Mastercard. And so on. And this is why cards carry two brands…. One to identify the issuer and one to identify the scheme.

In this way, the card schemes have created a system that allows merchants, who only have a relationship with their own bank, to accept payment cards issued by hundreds of other banks, without having to have any relationship with those banks at all.   The only thing that matters to them is that the issuer’s card is issued on the relevant scheme.

And this model has really strong network effects… the more issuers and acquirers in the scheme, the more useful the scheme is to card holders and merchants. It’s self-reinforcing.

Talk is cheap… how does it work in practice?

OK. So we have a paper agreement that says an acquiring bank will accept any valid transaction made with a Visa-badged card.   But how? How do they get approval from the issuer for the transaction? How do they get reimbursed? How does it work in reality?

Do all members of a scheme have to have a relationship with every other member so they can route the transaction to them for payment? That would be expensive and error-prone.

So this is where the scheme re-enters the picture.   In addition to maintaining a powerful brand and setting the rules, they also run a switch: the merchant acquirers send all their Visa transactions to Visa itself… and Visa then forwards them on to the appropriate issuer.   Similarly for Mastercard and the other schemes.

So we end up with a hub-and-spoke model… with Visa at the centre. (And Mastercard and Union Pay and so forth).

Cards Picture 3

Issuers and Acquirers are members of a “scheme”, which sets the rules and acts as a central “switch” to route transactions. It means merchants with one bank can accept payments from customers of another bank, without having to maintain bilateral relationships

So now we can see why card schemes are so successful: their globally-recognised brands create networks that anybody aspiring to issue or process cards need to be part of. It’s a self-reinforcing virtuous circle that is extremely hard to disrupt

And this is why Visa’s “customers” are the issuing and acquiring banks… not end-consumers… Visa exists so that issuers can receive broad acceptance of their cards… and so that merchants can, in turn, offer broad acceptance.

But the schemes depend on consumer recognition – hence why they spend so much money advertising to consumers, even though the consumers are not their customers.

What does this have to do with Bitcoin? Push versus Pull

Notice something really important: this is a pull system… the reason you need all this infrastructure is because your card information has to get all the way from the terminal in the merchant back to the issuer so the issuer can pull the money from your account and send it back to the merchant.

By contrast, Bitcoin is a push system: once you know the merchant’s “account” details, you can just push the payment to them. So why do you need all these intermediaries?

If you were a Bitcoin payment firm trying to break into the retail market, perhaps that’s where you’d start? After all, it’s true that most of the payment card infrastructure simply isn’t needed in the Bitcoin world.

But notice how I set up this story. The infrastructure was the last thing I talked about. For me, the two most important things are:

1)   Global acceptance.

2)   The rulebook

Think about what Visa and Mastercard have achieved: they offer global acceptance and predictable behavior.   Wherever you are in the world, you can be pretty sure somebody will accept your card and you know how it will work and that there is a well-understood process when things go wrong. This offer is powerful. Ask yourself: if you could only take one payment instrument with you on a round-the-world trip, what would it be? If you couldn’t stake a stack of dollar bills, I suspect you’d opt for a credit card.

And this predictability – a consequence of the rulebook – is important: consumers enjoy considerable protections when they use a major payment card. They can dispute transactions and, in some countries, their (credit) card issuer is jointly liable for failures of a merchant. Consumers like to be nannied… even if they have to pay for the privilege!

So for those who aspire to overturn the incumbents, you need a strategy for how you will become the consumer’s “default” or preferred payment mechanism.

American Express has achieved this through a joint strategy of having large corporates mandate its use for business expenses and offering generous loyalty benefits to consumers… they effectively pay their customers to use their cards.

PayPal has achieved it through making the payment experience easier – but note, even here, many PayPal payments are fulfilled by a credit card account!

And this is why I harbor doubts about whether Bitcoin will become a mainstream retail payments mechanism, at least in the major markets… why would a consumer prefer it over their card?  Perhaps the openness and possible resistance to card suspension/censorship will attract sufficient users.  But it’s not obvious.

For me, the opportunity lies elsewhere: high-value payments, smart property and so forth.  But I could, of course, be wrong.  It wouldn’t be the first time…

An aside on history and factual accuracy

I know this account would scandalize a historian but that’s OK: It’s not intended to be historically accurate… the idea is to share intuition on why things are the way they are.

Some of the more important topics I’ve ignored or deliberately simplified include:

  • I’ve not explored the difference between Visa Inc (public company) and Visa Europe (owned by its members)
  • I’ve ignored the “three-party” schemes like American Express.
  • I’ve also ignored fee structures and the importance of interchange.
  • I’ve also not discussed the role of processors… specialist firms who effectively outsource the work of issuers and acquirers
  • Security
  • … and lots more

 

A decentralized securities trading and settlement system is being built hidden in plain sight

Colored coins, chromawallet, coinprism, NXT Asset Exchange, Mastercoin, Counterparty… tens of projects are working on asset tracking, transfer and exchange systems. What are they doing? Will it work?

I wrote a piece last year explaining how today’s securities trading and settlement systems work. The full picture of participants is pretty complex:

Figure 8 csd

There are surprisingly many parties involved in the safekeeping and exchange of securities. What would the picture look like in a “decentralized world”?

At core, I think the system is all about assuring “performance”. That is… it’s all about making sure that people actually deliver on the promises they make when they enter into a trade

Recent controversies might make this seem hopelessly naïve – and they show that ensuring fairness in exchange is important – but assuring performance is the core of the aspiration.

And to deliver on this aspiration, today’s system is based on a closed, centralized model. I talked about it here and also argued  Mt.Gox model was even more centralized than the mainstream system.

We’re now seeing serious projects work on this problem. Perhaps revisiting the fundamentals will help us predict which of these projects will prevail?

Why do we have exchanges in the mainstream world?  There are lots of valid answers (liquidity, fairness, …) but none of this matters if you can’t be sure a trade you make will be settled. After all, what’s the point of agreeing a trade with somebody if they can just change their mind afterwards if it suits them?

In the mainstream world today, the general model for a stock exchange is one where it has members, who are the only entities allowed to trade on that exchange. These members are subject to strict rules. For example, the London Stock Exchange’s rule book has over 100 pages: http://www.londonstockexchange.com/traders-and-brokers/rules-regulations/rules-lse.pdf

Rule G5000 sums captures the critical function of the exchange for me:

G5000

“Obligation to settle: A member firm shall ensure that every on Exchange trade effected by it is duly settled.” Obvious, perhaps… but it needs to be said!

So the exchange helps ensure an orderly market by vetting and monitoring its members. This gives participants confidence: they don’t need to worry about who is on the other side of their trade. They know the trade they agree to will get settled. But other exchanges employ different models:

  • Prefund: Mt. Gox asked everybody to deposit their Bitcoins or fiat with them before they could trade. It guaranteed that trades executed on Gox would settle. Unfortunately, it only guaranteed they would settle on the books of Mt.Gox. As many people discovered to their cost, a settled trade on Gox was not the same as cash the bank or Bitcoins in their wallet
  • Escrow: The model I outlined in my piece earlier this year was essentially an escrow scheme. You place your Bitcoins beyond reach and they are either delivered back to you when your bid/offer expires or are delivered to the buyer. The trick here is in choosing the escrow “agent” (or agents…) carefully.
  • Clearing: This is how the The London Stock Exchange does it. In certain situations, members don’t even need to own the securities they’re selling at the time they trade them; they just need to make sure they deliver them as promised on the day of settlement. This model works because there is a closed group of trusted and well-known entities. However, there is clearly a risk: what happens if one of the participants goes bust between trade and settlement? That’s what a clearing house is there to solve, amongst other things. It keeps a close eye on its members, requires them to contribute to a “default fund” and steps in to make the other members whole if one of them fails.

Now, when we look at some of the most vibrant projects in the Bitcoin and cryptocurrency world, we see something interesting: a large number of them are working on representing non-crypto assets – such as securities – on the blockchain – They’re building out the vision of a decentralized general-purpose asset ledger.

There are two concepts we need to understand:

  • A token – something that represents an asset. Perhaps 100 shares of IBM Common Stock or ownership of a particular car.
  • An issuer – somebody that makes a promise to confer the rights and benefits associated with that asset to whomever holds it at any given point.

A concrete example: imagine I owned 10000 IBM shares (I wish…). I could issue them onto one of these platforms and publish the definition so others could see it and could see it was from me. I would, in effect, be making a promise:

“I will convey whatever benefits I enjoy through my ownership of these shares to whomever holds the token”.

So if I receive a dividend cheque, I pay it to the holder of the token. If you trust me to be good for this promise, you might be willing to purchase the token from me for $2m or so… the price of the IBM shares… owning the token would be just as good as owning the shares… and you could store it in your Bitcoin wallet and not have to deal with your broker any more!

Now, it is unlikely that you’d trust such a promise from me. But if was made by a major custodian bank you might. But note: you do have to trust the issuer.

So why bother? Why bother going to the trouble of building a decentralized asset ledger if you have to trust somebody at the end of the process?

For me, the answer is that this approach might allow increased competition between issuers. Furthermore, moving disparate asset registers (custody records, vehicle registration databases, etc) onto a common architecture might enable innovations we haven’t yet considered.   It’s too early to tell so we can all be grateful to the pioneers who are experimenting so we don’t have to.

I think there are three broad camps:

  • Coloring Bitcoins. Projects such as chromawallet and coinprism are working on systems to “tag” Bitcoins so that they can be tracked across transactions
  • New Protocols Running Over Bitcoin. mastercoin and counterparty piggy-back on Bitcoin’s peer-to-peer network, double-spend protection and consensus system but their tokens are essentially independent of Bitcoins. A counterparty token is not simply a “tagged” Bitcoin.
  • Entirely Separate Protocols. NXT and ethereum fit into this camp.

I have no particular insight into the structure of any of these projects so let’s assume they’re all run by capable, honest people and further assume that we’ll see a future where assets of all types, including securities, will be represented on a blockchain-like decentralized platform.

Then what? Presumably people will want to buy and sell…. To exchange.

And that’s where things get interesting… because we have to solve the performance problem.   We’re now in a decentralized, pseudonymous world… how do we ensure somebody who offers to buy an asset for a given price actually goes through with it and pays up?

What is the crypto-ledger rule G5000?

Is it possible to build a decentralized exchange on any of these platforms that has the strong performance guarantees we need? Can we build a decentralized exchange where a matched bid and offer inevitably lead to a settled trade?

It we look at our three models from previously, “clearing” isn’t going to work (it is, by definition, centralized and reliant on trusted identities). “Prefunding” is also problematic – what happens if the entity you sent your assets to disappears? So it looks like “escrow” is the only game in town.

Now, part of the solution already exists: we can construct “atomic” asset transfers using the Bitcoin protocol today. So I will assume exchanging payment and asset in a single transaction (“Delivery versus payment”) is achievable today on any of the platforms discussed above. But we need to get to a point where creating a valid transaction like this is inevitable once a bid and offer are matched.

Here’s where I think the state of the art is with the three approaches and it’s surprisingly different:

Coloring Bitcoins. The systems I’ve looked at don’t route bids/offers over the Bitcoin system so any matching will be done external to the platform. So it seems to me that “decentralized exchanges” on this model will have to require those posting bids or offers to demonstrate that they have placed the corresponding colored coins/Bitcoins in escrow with one or more acceptable third parties. There’s nothing that will do this automatically. So, it’s worth watchin firms like Xapo in the US and Elliptic in the UK. Professionally-run Bitcoin “cold storage vaults” such as these feel like “proto custodian banks” that could perform this function. The question is: can they devise a service that is sufficiently decentralized yet which still allows them to earn an income?

New Protocols Running Over Bitcoin. My understanding of these systems is that they embed bids/offers in the blockchain and have a protocol definition that means matches can be determined unambiguously. Furthermore, the act of making a bid or offer locks the associated assets until the trade is resolved or a bid/offer expires… automatic escrow, if you like. Assuming I am right, then this does appear to offer the “inevitability” promise that I think is so important. But it is at the expense of polluting the blockchain with bids/offers. It seems inelegant to me that one would store transient data (time-limited bids/offers) in such a permanent form of storage. But perhaps there’s no other way?

Entirely Separate Protocols. My working assumption is that NXT, too, works on the basis of bids/offers encumbering the associated assets until the outcome of the trade is resolved.  With Ethereum, the answer to every question is, of course, “it’s Turing Complete so of course you can do it” but I need to dig a little deeper to be sure….

 

Where is this going?

I think we’re going to see a market test: the colored coin approach is, in many ways, the most elegant as it uses the blockchain solely for storing/transferring the asset.   It means a range of exchange types can be trialled (escrow, pre-funding, reputation-based?)… but none of them will deliver full “inevitability” of settlement.  Perhaps consumers will care. Perhaps they won’t.

Projects like mastercoin and counterparty look able to deliver on the “inevitability” promise but will it be at the cost of blockchain bloat?

It will be an interesting few months ahead.

 

A final thought… What if we simply don’t worry about it and price it instead?!

The other approach is completely radical… instead of trying to force performance, why not model it as an option? We can think of somebody who posts a bid/offer but who then reneges as exercising an option to renege. This option clearly has value – if they would lose money by completing the trade as agreed, the option payoff is at least as much as they stood to lose! So is it possible to model the value of the option to renege and force participants to pay the option value up-front in order to post a bid/offer?

Unanswered questions: to whom would the price be paid? Is there any precedent for modeling the “option to renege” in this way? What would be the liquidity implications?

Conclusion

I said at the start of this piece that a new financial infrastructure is being built “hidden in plain sight”. For the reasons outlined above, I think the “exchange” aspect of this infrastructure still has a long way to go but we’re about to witness a fascinating experiment.

Bitcoin Mining: The First Technology Platform That Works because it goes SLOW?

They key to understanding mining is to realize we need blocks to be produced slowly!

Whenever I present Bitcoin to new audiences, I avoid talking about mining. I find it confuse more than it enlightens. Instead, I simply give some intuition. I say:

“Today’s value-transfer systems rely on central ledgers. Banks, telcos and other firms have a big computer that keeps track of who owns what. And when you want to make a payment, they update this central ledger. Bitcoin does it a completely different way. It doesn’t have a central ledger. Instead, everybody who runs the (full) software has their own copy of the ledger. That’s right: hundreds of thousands of people all have a full copy of the ledger. This means no single person can cut you off, confiscate your assets or charge you an unfair fee. And the genius of Bitcoin was to figure out a way to encourage people to maintain these ledgers and to do so honestly. Exactly how this works takes a long time to explain but the end-result is that we have a system with no trusted third parties.”

The value of this explanation is that skeptics in the audience know what assumptions I am asking them to make (“assume for now that the economic incentives and cryptography do actually work…”) but we avoid getting bogged down in unnecessary technical detail. It lets us move on to the more interesting topics

OK – so we have a way to side-step the mining question. But what if you actually need to talk about it? What then?

I am enlisted on the University of Nicosia’s Digital Currency MOOC, led by Antonis Polemitis and Andreas M. Antonopoulos and I was intrigued to see that they attack this question and the “byzantine generals” problem head-on in module two. It’s a very nice treatment.

In this post, I take a complementary approach and ask: how would I build a digital cash system from scratch if I didn’t know anything about Bitcoin? What might I try first? What might go wrong? How might I fix it?

Let’s go on a journey to build our own digital money system from scratch…

Imagine you wanted to build a system of electronic cash without a third-party. How would you do it?

Here’s one way. You could create some “money files” on your computer hard drive. These would be like bank notes. Maybe they’d look something like this:

DigitalMoney

An early attempt at a digital money system!

In the picture above, I have two “ten pound” files and two “five pound” files. Great – I have £30 of digital money. This is easy… Why did it take so long for Bitcoin to be invented?!

Now… let’s say I wanted to send £10 to a friend. This would also be easy. I’d just need to write an email, attach one of the “ten pound” money files and click “send”. Wonderful! The money has been transferred.

Screen Shot 2014-05-21 at 20.09.09

Emailing £10 to a friend. Who needs Bitcoin?

There’s just one problem…

There’s still a copy of that file on my computer.    So there was £30 in the system before and now there is £40. Now… I am, of course, honest and will delete my copy. But what if I forgot?

Worse, what’s to stop me simply making hundreds of copies of the “ten pound” file on my computer? I’d be RICH!!

This idea simply isn’t going to work and that’s why digital money systems have the idea of a ledger: there needs to be something that everybody trusts to keep proper track of how much money each person has.   We need this ledger to record the fact that I have £10 less and my friend has £10 more.

All systems before Bitcoin did this using a centralized ledger – in a bank or a telecoms firm, say.

But does this ledger really need to be centralized?

But here’s a thought what if I sent the “money file” attachment to my friend – just like before – but I also put everybody else in the entire world on cc?

The rest of the world could see that I had sent the money to my friend and if I tried to send the same file again in the future, they’d see that I was cheating and I’d be in big trouble…

If we leave aside questions of scalability, we could be on to something here…

But… race conditions are our enemy

But there’s an annoying problem. Software engineers call it a “race condition”. It’s still possible for me to cheat, even if the whole world is watching.

Here’s what I could do:

Imagine I owed £10 to each of Alice and Bob and wanted to cheat the system by sending the same £10 money file to them both:

DoubleSpendSetup1

I owe £10 to two people and want to cheat by sending them both the same £10 “money file”

I notice something interesting… Alice and Bob use different email providers….  And I know that information takes time to travel.

What would happen if I use my Gmail account to send Alice’s money to her Gmail account and I use my Hotmail account to send Bob’s money to his Hotmail account, copying everybody in the world on both emails per the rules?

Different people will see the emails arrive in a different order depending on which email provider they use.

Imagine you’re another user of Gmail:

You’ll receive a copy of my email to Alice pretty quickly. After all, I sent it from my Gmail account.   Shortly afterwards, you’ll receive a copy of the email I sent to Bob. It arrives a bit slower because it’s coming across the internet from my Hotmail account.

Now imagine you’re another user of Hotmail.

You’ll receive a copy of my email to Bob pretty quickly. After all, I sent it from my Hotmail account. Shortly afterwards, you’ll receive a copy of the email I sent to Alice. It arrives a bit slower because it’s coming across the internet from my Gmail account.

And now imagine you use a completely different email service. Who knows which email you’ll receive first… it will be effectively random.

So we have a big problem: everybody will see that I’ve tried to spend the same money twice…. that’s something, I guess.   But they won’t agree whether Alice or Bob is the rightful recipient! Some will think I sent it to Alice first – and that the payment to Bob is therefore invalid – and some will think I sent it to Bob first and that the payment to Alice is invalid!

DoubleSpendSetup2

There’s no such thing as total “ordering” in a decentralized system

And there’s no easy way to resolve this… we can’t rely on timestamps since I could fake them(and they might be identical). And we can’t simply say: “if you see a double spend then neither transaction is valid” since it would mean I could always block up the system and “take back” money simply by issuing a new payment to confuse everybody…

Oh dear.

But notice something interesting: it doesn’t matter whether Alice or Bob is judged to be the rightful owner, since one of them was always going to be disappointed. We just want everybody to know who it is.

And this is the insight that allows us to begin to solve the problem.

Because it means we should think of these payment emails to Alice and Bob not as definitive payments but as payments proposals. They might be valid. Or they might not. We need the “system” as a whole to determine it – it needs to come to consensus.

Now… figuring this out on a payment-by-payment basis would be overwhelming. So we’ll settle for a system that batches up these payments proposals into lists – or “blocks” – of confirmed payments.

So where have we got to? We have this idea of directly sending “money files” to recipients – “peer-to-peer”, if you like. And we have the second idea that you also tell everybody else in the world about it so they can see what’s happening. And the key problem to solve is: how do we come to agreement when payment proposals conflict?

Let’s bring the observers into the picture

Here’s something we could do: we could say to all the people on cc:

“hey… help us out here.   You’ve been copied on all these payment proposal emails. Why don’t one of you choose a selection of payment proposals that haven’t already been confirmed in the past and which don’t conflict with each other and email the list to everybody else? We’ll all agree that the list you circulate is the one we’ll go with to resolve the conflicts”

If we’re lucky, somebody might look through their inbox, choose some unconfirmed payment proposals and draw up such a list. Perhaps they decide that they will include the payment to Bob in their list. This means they can’t also include the payment to Alice (since those payments conflict with each other – they use the same underlying payment file). But at least we have a decision! They email this list to everybody else in the world.

Everybody receives a copy of the list and can update their own view of the world… their copy of the “ledger”, if you like…

So we all now know that a decision has been made: We have agreed through this “protocol” that Richard has paid Bob and the payment to Alice is invalid. And we know this because we know everybody else received the same file and will be following the same thought process.

Excellent. We now know Bob has the money and the world moves on. We’ve solved the problem right?

  • We have this idea of “payment files”
  • You “spend” them by emailing them to the recipient and copying everybody else in the world.
  • Somebody on copy periodically produces a list of transactions they’ve seen that are not fraudulent and are not “double-spends” and circulates this list to everybody else.
  • Everybody who receives this list knows that everybody else has also received this list and that everybody else knows that they have received it and so feels confident in updating their own records to record that the payments in this list are now “confirmed”

Except… why on earth would anybody go to the trouble of producing and circulating that list in the first place? What’s their incentive?

There really isn’t one.   So we need to incent them. Perhaps they can earn a small transaction fee or perhaps we could award them some newly created “payment files” in return for their effort. That would be a neat way of introducing these payment files into the system in the first place, in fact.

But now we have the opposite problem… everybody will want to produce these blocks and we’ll be overwhelmed with competing blocks being emailed to everybody… it will be like the worst “reply to all” email tsunami ever and nobody will know which of the competing blocks to use to update their ledgers!

It feels like we’re back to square one.

The world’s first technology platform that works because it goes SLOW

Exceptand this is the genius of Bitcoin. What if we could agree on a system that makes it so difficult to produce one of these lists that, even if everybody is trying really hard, they only produce one every few minutes?

The would give enough time for the list to work its way around the internet. And once you received it, you could be pretty sure there wasn’t a different one flying around because they are only produced every few minutes and if there was another one, you’d have seen it by now in any case…

So now you have the right balance: incentives to ensure somebody produces these lists (Bitcoin calls them “blocks”) and a system that makes it difficult so that they’re not produced so quickly that we end up with multiple competing blocks at any time.

And this is what Bitcoin mining is all about. It’s nothing more than participants in the system competing with each other to find one of these valid blocks in order to earn the reward.

Bitcoin aims for a “block interval” of about ten minutes. Perhaps this is too slow. Perhaps it’s too quick.  But it does achieve the aim of ensuing the blocks usually have time to reach everybody else before the next one is found.

Now… the system in use by Bitcoin is probabilistic… so sometimes two blocks are produced in quick succession. But this is rare… and you can deal with it when it only happens occasionally.

So how do you make things go “slow”?

One way to make block production slow is to make it incredibly difficult to produce one. This is what Bitcoin does. It uses a system called “proof of work”, where participants essentially have to perform nearly identical calculations again and again and again until a solution matching a pre-agreed pattern is discovered… and the difficulty of this problem is periodically adjusted so that a solution is found every ten minutes on average.

This seems wasteful but we need something just like this to achieve our aim of not producing blocks too quickly.

But there are other options. For example, one variant of a scheme called “proof of stake” makes it difficult to find a block unless you own several coins and you haven’t done anything with them for some time. This combination of “stake” and “time” dramatically reduces the opportunity for participants to find blocks and so the rate is kept low, without computers having to burn electricity solving puzzles to the same extent.

The security analysis and design of such schemes is an active area of research.

Conclusion

I have omitted some (lots of) important details and it’s clear that the “payment file” analogy is highly imperfect.   But I think encouraging people to consider “how would I do it” can help impact a considerable degree of understanding.  And the key insight is: “Cryptocurrency systems work because they are the first computing platforms deliberately designed to go slow!”

 

 

Bitcoin and Bankers: Reflections on a panel discussion

Look beyond currency to see the true potential for cryptocurrencies… but don’t forget to apply the lessons to today’s problems too…

I participated in the Bitcoin panel at Finextra’s Future Money conference at Canary Wharf’s Level 39 in London this week. Zilvinas Bareisis of Celent has a succinct write-up of the event here. It was live-scribed by the amazing Mela Atanassova:

Bitcoin

The Finextra team assembled the “who’s who” of the London FinTech scene and it pays to be prepared when speaking in front of that sort of audience… so I gave some thought to my talking points beforehand.

When I reflected on the event afterwards, it struck me that our moderator, Liz Lumley, had expertly led us through most of the key “what Bankers need to know” questions: In what way is Bitcoin different to what went before? Why do cryptocurrencies cause such intense discussion? Why do sensible people get so excited by this stuff? Where might it be going?

So in this blogpost I’ve combined my talking points with observations made by my co-panellists: Stan Stalnaker, Ali Farid Khwaja and Nadav Rosenberg.

How do you bring a diverse audience “up to speed” on Bitcoin?

Elizabeth Lumley kicked off the panel by asking who in the audience had a Bitcoin wallet. Over half of the hands went up. Oh dear… this was not your typical audience. What could we tell these people that they didn’t already know?

Luckily, we had been preceded by a keynote by Allessandro Hatami of Lloyds Banking Group. He’s a very smart guy and he gave a thought-provoking presentation. But I noticed something interesting: although he only mentioned Bitcoin in passing, he referred to it in the same context as Amazon Coins. Now, I’m sure he understands the differences but it highlighted that it’s very easy to lead audiences into “category errors” if we’re not careful.

Luckily, we had planned for this in advance. So I spent a few minutes outlining what I think is the “irreducible core” – or fundamental difference – of cryptocurrencies relative to everything that went before, using my “how I explain Bitcoin to new audiences” piece as the structure.

In short:

  • Bitcoin is audacious: until cryptocurrencies came along, humanity had no ability to transmit value at a distance without the permission and support of a third party. Bitcoin taught us how to do it.
  • Blockchain technology could be as important as the web: if we think of the web as the world’s first “internet-scale open platform for information exchange”, we can think of the blockchain as the world’s first “internet-scale open platform for value-exchange”. And the openness is the key.
  • The implications go beyond payments: think “economy of things” and “smart contracts”

In other words, if you’re thinking Bitcoin means “funny internet money”, you’re missing the point.

OK – it could be a cool piece of computer science. But why are so many serious people talking about it so seriously?

Some very smart, very sensible people have concluded that the “web analogy” is plausible and are investing and working on that basis. Other people have been transfixed by the elegance of the underlying consensus algorithm. So it’s not surprising that Bitcoin has unleashed a storm of commentary.

But I think there’s also another reason. I think that Bitcoin has made large numbers of intelligent, thoughtful people realize that they didn’t understand the things they thought they understood. And they are rather enjoying the intellectual rabbit-hole of discovery it has sent them down as they try to “re-learn” things they thought they already knew… This is certainly the case for me. It makes us think deeply about questions like:

The eye-opener for me was what happened when I published my piece on how payment systems work. I wrote it for Bitcoin users who didn’t know much about the banking system. What surprised me was who read it. It was being linked to from banks’ own internal training sites. The answers to these questions are not obvious and Bitcoin has inspired many of us to really think about them.

And I believe this is a big reason why so many people are talking about cryptocurrencies: they force us to clarify our own thoughts about things we thought we already knew.

OK – so cryptocurrencies are important and have potential. But give me just one good example of how it’s going to replace what we already have

I was challenged by a banker in the audience who had clearly heard the cryptocurrency story several times before and was growing tired of all the hype. Sure – it’s clever. Sure – it lets us do things we couldn’t do before. But so what? What real-world problem does it actually solve?

I answered this in three parts.

First, I pointed out how there is a short-term opportunity to take huge cost out of International Remittances. Not glamorous but a clear area where the technology could make a difference to the world.

Second, I argued Bitcoin helps us think about value: what makes today’s financial institutions valuable? Consider Payment Cards. If Bitcoin allows you to pay anybody else near-instantly for near-zero cost, doesn’t this mean Visa and Mastercard will soon be dead? My answer was no. If you believe all they do is payments then Bitcoin is a mortal threat… but that isn’t why they’re valuable. These networks are valuable to us because they promise universal acceptance – they minimize “acceptance anxiety”* no matter where we are in the world. And they have sophisticated rule-books: disputes and chargebacks give consumers and merchants certainty about what will happen when things go wrong. These things are valuable.

Third, I argued that – regardless of whether cryptocurrencies gain widespread adoption – they are already influencing today’s mainstream banking debates. Companies like XBTerminal have shown us how to route Bitcoin push-payment transactions via the terminal, to overcome the problem of mobile devices with no data connection. Peter Keenan, the Chief Executive of Zapp, was at the event and I pointed out how this approach could solve the problem his service will face when customers try to use it in underground shopping malls…

* An aside on “acceptance anxiety”: this is what I call the fear that your payment instrument won’t work when you try to use it. My prediction is that any retail payment solution has to induce less acceptance anxiety than existing methods if consumers are going to adopt it

By way of example, here’s my attempt at using a Bitcoin ATM in Shoreditch… my colleague’s smartphone wallet wasn’t working so I tried my laptop. This is not quite the seamless consumer experience we aspire to :-)  (not yet…)

Richard Bitcoin ATM.photo

 

How are Banks supposed to formulate strategy when faced with a bewildering landcape of altcoins, sidechains, treechains and who knows what else?

Answer: by keeping laser-focussed on the principles – and ignoring everything else.

This is why I am so maniacal about hammering home phrases like:

  • “Value transfer at a distance with no third party”
  • “Internet-scale open platform for value exchange”
  • “Solving the problem of coming to consensus with people you don’t know, don’t trust and where many of whom are trying to steal your money”

We have to keep focused on these principles because the reality is that the underlying technical details are constantly changing. It may not be obvious to outsiders but it’s important to realize that the cryptocurrency phenomenon is an experiment. Fire up a copy of Bitcoin Core and look at the “about” dialog. Here’s mine:

BitcoinCore

“This is experimental software”

This point is important: the Bitcoin we see today is not the Bitcoin we will be running in two years’ time. Many of today’s supposed problems (transaction throughput limitations, slow confirmation of transactions, …) will have been addressed through sidechains, treechains or solutions that haven’t even been invented yet.

So the only way to formulate strategy today is to keep focused on the principles and to ignore those details that are purely transient.

Ask yourself: what happens if our customers can send money instantly and for free? What happens if push-payments become universal? What happens if we can settle securities transactions, with finality, without needing clearing houses, custodians and CSDs? …

 

But banks should also bear in mind that widespread adoption could take longer than we expect:

Ask a technologist when the web went “mainstream” and they’ll probably say 1994 or 1995. But this answer is wrong by a decade! Facebook wasn’t even founded until 2004. Twitter? 2006. But even this misses the point. The transformational impact of the web (the internet-scale open platform for information exchange, remember…) was that it enabled the mobile and cloud revolutions. Yet Amazon Web Services didn’t launch until 2006 and the first iPhone wasn’t released until 2007.

And on top of this, the reality is that most mainstream users of cryptocurrency technology won’t even know they’re using it.

The only way to stay sane is to focus on the principles.

What about trust?

After the panel, I was approached by a member of the audience who was astonished that we hadn’t touched on the topic of trust. Fair point. Finextra’s Matt White was nearby and grabbed me for a two-minute follow-up:

 

My thanks to Elizabeth Lumley, Nick Hastings and the Finextra team for organizing such an excellent event.

 

[Updated 2014-05-05 with clearer Live-Scribe image]