May 2015 Journal

106 minute read

WORDS is a monthly journal of Bitcoin commentary. This issue collects the May 2015 writing in the WORDS archive. For the uninitiated, getting up to speed on Bitcoin can seem daunting. Content is scattered across the internet, in some cases behind paywalls, and content has been lost forever. That’s why we made this journal, to preserve and further the understanding of Bitcoin.

Subscribe


Time to roll out bigger blocks

By Gavin Andresen

Posted May 4, 2015

I’m going to submit a pull request to the 0.11 release of Bitcoin Core that will allow miners to create blocks bigger than one megabyte, starting a little less than a year from now.

I will be writing a series of blog posts, each addressing one argument against raising the maximum block size, or against scheduling a raise right now. These are the objections I plan on writing about; please send me an email (gavinandresen@gmail.com) if I am missing any arguments for why one megabyte is the best size for Bitcoin blocks over the next few years.

If I am being unfair in how I am stating any of the above objections, please let me know via email.


Why increasing the max block size is urgent

By Gavin Andresen

Posted May 4, 2015

Perhaps the most common objection I hear to raising the maximum block size from one megabyte is that “blocks aren’t full yet, so we don’t have to do anything (yet).”

It is true that we’re not yet at the hard-coded one megabyte block size limit; on average, blocks are 30-40% full today.

There is a very good blog post by David Hudson at hashingit.com analyzing what will happen on the network as we approach 100% full blocks. Please visit that link for full details, but basically he points out there is a mismatch between when transactions are created and when blocks are found– and that mismatch means very bad things start to happen on the network as the one megabyte limit is reached.

Transactions are created steadily over time, as people spend their bitcoin. There are daily and weekly cycles in transaction volume, but over any ten-minute period the number of transactions will be roughly equal to the number of transactions in the previous or next ten minute period.

Blocks, however, are created via a random Poisson process. Sometimes a lot of blocks are found in an hour, sometimes all the miners will be unlucky and very few (or none!) will be found in a hour.

The mismatch between the steady submission of transactions to the network and the random Poisson distribution of found blocks means we will never have blocks that are 100% full all of the time. Sometimes miners will find a lot of blocks in a row, clearing out the queue of waiting transactions.

Conversely, very bad things can happen when miners happen to be unlucky. The queue of transactions waiting to be confirmed will grow, using more and more memory inside every full node. Full nodes could (and probably will in a future release of Bitcoin Core) start to drop transactions from the queue, which will make transaction confirmation less reliable.

If the wallet re-broadcasts transactions if they are not confirmed after a few blocks (the Bitcoin Core wallet does), then bandwidth usage spikes as every wallet on the network rebroadcasts its unconfirmed transactions.

If the number of transactions waiting gets large enough, the end result will be an over-saturated network, busy doing nothing productive. I don’t think that is likely– it is more likely people just stop using Bitcoin because transaction confirmation becomes increasingly unreliable.


Block size and miner fees
 again

By Gavin Andresen

Posted May 5, 2015

I’m still seeing variations on this argument for keeping the one-megabyte block limit:

The network will be more secure with one megabyte blocks, because there will be more competition among transactions, and, therefore, higher transaction fees for miners.

I’ve written before about the economics of the block size (and even went to the trouble of having Realℱ Economists review it), but I’ll come at that argument from a different angle.

Miner rewards expressed in BTC are:

block reward + ( number of transactions x average fee )

In the currencies that most miners care about right now (dollars or euros or yuan) rewards are:

(reward + number transactions x average_fee) x exchange rate

The fear is that as the block reward diminishes, either the number of transactions or the average transaction fee will not rise enough to replace the block reward. So miners will drop out, and the network will be less secure against an attacker with a lot of mining power (or, equivalently, it would cost an attacker less to amass enough mining power to successfully attack the network).

Focusing on just the average_fee term in that equation is a mistake; the number of transactions is just as important. If the goal is to maximize the #transaction x average_fee part of the equation, we would need to know the “price elasticity of demand” for bitcoin transactions to calculate the most-profitable-to-miners maximum block size.

But the exchange rate is even more important, at least until the reward drops to zero. So if the goal is to keep the network as secure as possible over the next ten or fifteen years, we should be focusing on doing things that are likely to increase the exchange rate. All of the things that come to my mind that make Bitcoin more valuable (like increasing the number of people using Bitcoin, increasing security using multisig wallets, allowing people to innovate and leverage the security of the blockchain for things other than payments) will benefit from a larger maximum block size.


It must be done
 but is not a panacea

By Gavin Andresen

Posted May 5, 2015

There are two related arguments I hear against raising the maximum block size:

There is no need to raise the maximum block size because the Lightning Network / Sidechains / Impulse / Factom solves the scaling problem.

If the maximum block size is raised, there will be little incentive for other scaling solutions to emerge

The first is easy to address: if any of the other proposed scaling solutions were tested, practical and already rolling out onto the network and being supported by all the various Bitcoin wallets then, indeed, there would be no hurry to schedule a maximum block size increase.

Unfortunately, they’re not; read Mike Hearn’s blog post for details. We are years away from a time when we can confidently tell a wallet developer “use this solution to give your users very-high-volume, very-low-cost, very-low-minimum-payment instant transactions.”

The second is also easy to address. The “layer 2” services that are being built on top of the blockchain are absolutely necessary to get nearly instant real-time payments, micropayments and high volume machine-to-machine payments, to pick just three examples. The ten-minute settlement time of blocks on the network is not fast enough for those problems, and it will be the ten minute block interval that drives development of those off-chain innovations more than the total number of transactions supported.

Scheduling an increase to the maximum block size now is a short-term, “kick the can down the road” fix. It is ugly, but necessary.


The capacity cliff

By Mike Hearn

Posted May 5, 2015

And why we can’t use fancy tricks to avoid it

Meep meep!

This article analyses some proposed alternatives to raising Bitcoin’s network capacity, specifically, the Lightning network. But the arguments made are general and could apply to other proposed alternatives too.

Firstly, a bit of background.

Many years ago Satoshi Nakamoto added a quick hack to the Bitcoin source code. He artificially limited its capacity to avoid a rogue miner causing problems for people in an era when using Bitcoin meant downloading the entire chain, with a slow and unoptimised client.

The limit was intended to be removed. In fact, Satoshi intended it to be removed as soon as SPV wallets were developed.

I know this because at the end of 2010 I emailed him to ask about it. He responded,

A higher limit can be phased in once we have actual use closer to the limit and make sure it’s working OK.

Eventually when we have client-only implementations, the block chain size won’t matter much. Until then, while all users still have to download the entire block chain to start, it’s nice if we can keep it down to a reasonable size.

By client-only he was talking about wallets like Bitcoin Wallet for Android, MultiBit, BreadWallet etc. The term SPV wallet wasn’t in use back then — it’s a phrase I coined when I wrote the first implementation.

According to Satoshi’s original thinking the limit could have been increased years ago. But we’ve left it to the last minute instead. According to my rough calculations, Bitcoin grows in the winter and stagnates in the summer. If current trends continue Bitcoin should run out of capacity by the start of winter 2015, and quite possibly months before. Because upgrades take time, we need to prepare for this now. Hence Gavin proposing a patch and starting the discussion.

Some people would like to believe that we can avoid changing this limit, by relying on another way to scale Bitcoin up. These people are typically not implementors. I think it won’t work, and in this article I will explain why not.

Finally, a brief word about my own background for those who don’t know me. I have spent the last five years implementing Bitcoin wallets, and before that I spent nearly 8 years at Google. Three of those years were spent on the Geo Team (Maps/Earth), where I was a professional capacity planner for one of the world’s busiest websites. Just like now, capacity planning had to be done with long lead times. In the Google world it was because we had to physically manufacture the machines and physically build the data centers. In the Bitcoin world it’s because it takes time for people to upgrade. So I am not inexperienced with our current dilemma.

The Lightning Network

What is the Lightning Network? It is the latest name for an old idea: to use payment channels between various low-trust intermediaries in order to transmit payments. A payment channel is essentially a pot of bitcoins, established on the block chain, the split of which can be negotiated by passing messages around outside the Bitcoin network. Eventually the final split of the pot settles on the chain. Various Bitcoin protocol features are used to make this work in a low trust manner.

The first and primary usage of this technique is for micropayments: the messages that re-split the pot can be passed around much faster and cheaper than a Bitcoin payment can be, because it’s only between two parties. But it was observed early on that a network of channels could be established between clients/servers and servers/servers that would allow for fast, low trust payments between the parties. Effectively, a clearing network that runs on top of the block chain and occasionally settles up on it.

Such a clearing network should be better than most are because the requirement to settle on the block chain would keep the intermediaries honest. And in theory it could process more transactions than Bitcoin itself could because the block chain only sees aggregated payments.

It’s a neat and attractive idea. So attractive that although the Lightning guys are currently getting all the attention, their idea has already been implemented by a Swedish startup called StrawPay.

StrawPay has designed a protocol called Stroem (actually Ström but lots of people don’t know how to type/pronounce that). It defines how wallets, hubs and merchants interact and set up payment channels between them. They have also implemented a cross platform GUI wallet that can actually do it all.

The Stroem protocol isn’t identical to Lightning — they vary in some technical details, notably, Stroem works with the Bitcoin protocol of today and accepts the caveats whereas Lightning doesn’t. Also, Stroem specifies all the other details the Lightning paper ignores, like how to actually start such a payment in a backwards compatible way (Bitcoin addresses cannot be used in these schemes).

I like the StrawPay guys and I wish them well. I think Stroem has a lot of potential for making micropayment routing faster and easier. It’s quite possible it will find a place in the Bitcoin ecosystem. But using it should not be mandatory.

There are several reasons why requiring this approach to scale up is not good.

The first is that the implementation complexity will hurt decentralisation.

Complexity kills kittens

It’s natural for people to focus on problems and ignore things that are going well — there’s only so much patting a back can take, after all. So Bitcoiners tend to stress out about the centralisation of mining, of exchanges, of payment processing etc. We spend much less time reflecting on our successes, and the wallet market is a big decentralisation success.

By now there are probably hundreds of different wallets out there, with dozens of different implementations of the underlying algorithms. No single wallet is obviously dominant. They compete for users in a vibrant market. This is important: if there were only one or two wallets with all the users then those wallets would essentially be gatekeepers to the system, and worse, able to change the rules of Bitcoin at a whim. The block chain wouldn’t matter because people experience the block chain almost exclusively through their wallets.

Building a wallet is no walk in the park. I should know — I’ve spent the last five years writing bitcoinj, a reusable “wallet engine” that sits at the core of quite a few Bitcoin apps and services. But still, it’s possible for someone to do it in their spare time and without a large team of people. Contrast this to HTML5 which is only implementable by large corporations. The Bitcoin protocol isn’t as simple as it looks, but it’s not overwhelming either. That simplicity is key to the diversity of wallets in present use.

Unfortunately, payment channels are not simple. Especially once you introduce more advanced features like what Lightning proposes, you end up with a much larger, more complex piece of code. A few people have made toy implementations of payment channels, but only bitcoinj has a real, production-quality implementation. Toys don’t have to think about things like documentation, serialization of state to disk, unit tests, documentation, user interface integration, error management and so on. The difference between a toy and something real is whether it’s been used to make apps that you could actually give to a non-nerd.

Payment channels in bitcoinj have been used to make PayFile, which lets you pay per kilobyte to download files, multiple Android prototypes of wifi micropayment billing 
. and StrawPay itself. The entire StrawPay implementation is built on bitcoinj from the ground up, and their GUI wallet is a fork of MultiBit HD. So we know that the code works. That means we also know how much effort it took. Luckily, most of the work had corporate funding.

You might imagine I’d be happy at the idea of everyone being forced to implement payment channels by the start of next summer. Inevitably many developers would conclude it’d be faster to just replace their own code with bitcoinj/StrawPay, and I’d get a lot more users. But I don’t want people to be forced to use my code in a hurry. That’d create a giant dev support headache for me, and I don’t want to see the hit to decentralisation, even though forking bitcoinj is very easy. Plus developers would resent being “required” to use my software and I don’t want that either.

So if we make it harder to build wallets, it stands to reason that there will be fewer of them. The StrawPay developers say:

We have a lib written in Java that wallets should use, but it’s under development. There is no support for iOS wallets yet (they don’t even have a payment channel impl AFAIK).

Even with the lib at hand there is a lot of GUI work and general plumbing for a wallet developer before the wallet is Stroem enabled.

Eventually the wallet market may consolidate around a handful of engines anyway, just as the game industry has done. But there’s no need for us to accelerate that trend unnecessarily. And it would be unnecessary, because all of this is solving a non-existent problem: Bitcoin’s core technology can scale up without any external assistance.

Examples of dead kittens

From the Lightning white paper:

If one does not broadcast a transaction at the correct time, the counterparty may steal funds. This can be mitigated by having a designated 3rd party to send funds. An output fee can be added to create an incentive for this 3rd party to watch the network.

This sort of problem may seem academic, but “not broadcasting at the correct time” can be caused by issues as mundane as your phone running out of batteries or roaming into an area with weak signal. It can be solved by adding yet more semi-trusted third parties 
. but up goes the complexity yet again!

For special cases like extremely rapid micro-billing, where there’s no other way to do it, we just have to swallow such things. For situations where we can avoid it, we should.

Another case:

When one party loses data, it is possible for the counterparty to steal funds.

And another 
.

While there may be methods to mitigate the [hacking] threat for the sender and the receiver, the intermediary nodes must be online and will likely be processing the transaction automatically. For this reason,

the intermediary nodes will be at risk and should not be holding a substantial amount of money

in this “hot wallet.”

Intermediary nodes which have better security will likely be able to outcompete others in the long run and be able to conduct greater transaction volume due to lower fees. Historically, one of the largest component of fees/interest is from various forms of counterparty risk —

in Bitcoin it is possible that the largest component in fees will be derived from security risk premiums

.

Hub and spoke payment channel networks require always-on servers that have sensitive signing keys. This is quite different to ordinary Bitcoin usage, where only the sender needs to sign, and doing all signing offline is both possible and commonplace. That raises complexity and thus costs.

Bitcoin nodes are easier than hubs

One common complaint about scaling Bitcoin up is that it will become harder to run a full node. Some people who make this complaint then point to payment channels as a solution, ignoring that it makes it easier to run a full node by simply shifting the work onto different kinds of nodes 
. nodes that are much harder to set up and run.

The main reason is that hubs in payment channel networks are stateful, so you have to make sure they have good uptime, reliability and working backups. In contrast Bitcoin nodes are almost entirely stateless, and all software that accesses the P2P network knows how to recover from a node suddenly vanishing. It happens all the time and is transparent to the user.

That makes running a full node very easy and safe: if your cheap $10 VPS goes down for a reboot, nobody will notice or complain. If it suffers from massive data loss, you can just re-install the node and it will recalculate all the data it needs from scratch. If it gets hacked, there’s nothing there to steal. None of these things are true of payment channel hubs.

Performance risks are high

StrawPay doesn’t use the design you would intuitively imagine, in which channels link sender to hub, hub to hub, and hub to receiver. Instead hubs issue receivers with promissary notes. The designers say:

I was waiting for this question. This was probably the longest discussion we had. The reasons:

1) Security: it is a complex thing to keep a payment channel server running. It has to be secure. Most merchants do not have the knowledge, and could get their wallet hacked. The Promissory Note, the way we designed it, cannot be used by anyone else than the merchant, so it is pointless to steal it.

2) Performance: we worry that in a network of hubs the progression of micropayments from hub to hub would not be fast enough. Better to tell the merchant that the consumer has paid ASAP, and let the merchant hold the Promissory Note instead.

Very hard choice.

We have already covered the security issues so that’s no surprise. But you may raise eyebrows at the mention of performance. Don’t — the payment channel protocols involve a lot of message round trips and signature creation/verification. These steps are not individually slow: they’re measured in milliseconds. But if each step takes 200 milliseconds and you have ten of them, suddenly payments are getting a little pokey.

Broadcasting a Bitcoin transaction across the network is hardly a fast thing either, but it’s at least a flood fill with plenty of room for optimisation. And a transaction can be verified locally extremely fast: it’s only the propagation delays that matter. Payments across a hub/spoke network are a graph traversal: rather different.

To put this in perspective, the EMV Contactless specifications require that a payment takes less than 500 milliseconds. That includes the time needed for the smart card to boot up, establish the radio link, perform ECDSA signatures and authorise the payment, and for the terminal to verify. Online authorizations have latency timeouts of only 200 msec on each server request. The London Underground network has stations that require people to get through the gate in only three seconds. So performance matters.

It might be that the StrawPay guys are overly conservative — the point is, nobody knows yet, because nobody has tried to build and deploy such a network. Thus, many important questions remain unanswered.

There is no time

Let’s ignore all of the above and assume payment channel networks are the best thing ever. It doesn’t matter, because we need a solution by the middle of next year at the latest, and none of the proposed networks even exist yet.

Quite simply, we are out of time. There are no credible technical proposals that could gain widespread adoption within the next twelve months, beyond simply raising the capacity on the existing system, which is well understood and implemented by everyone already.

I like the idea of Stroem/Lightning for fast routing of micropayments. I like the idea of payment channels for direct sender/receiver micro-billing. We may well one day all be using wallets that support these systems. But it’s engineering nonsense to talk about these things as solutions to our current problems.

Some people seem to think that if we hit Bitcoin’s capacity limits, there will be a smooth rise in fees and the free market will sort everything out. This is incorrect. In my next article, I’ll write about what will actually happen if we don’t fix this problem in time.

To be continued 


Will a 20MB max increase centralization?

By Gavin Andresen

Posted May 5, 2015

Continuing with objections to raising the maximum block size:

More transactions means more bandwidth and CPU and storage cost, and more cost means increased centralization because fewer people will be able to afford that cost.

I can’t argue with the first part of that statement– more transactions will mean more validation cost. But how much? Is it significant enough to worry about?

I’ll use ChunkHost’s current pricing to do some back-of-the-envelope calculations. I’m not affiliated with ChunkHost– I’m using them for this example because they accept Bitcoin and I’ve been a happy customer of theirs for a while now (I spun up some ‘chunks’ to run some 20 megabyte block tests earlier this year).

CPU and storage are cheap these days; one moderately fast CPU can easily keep up with 20 megabytes worth of transactions every ten minutes.

Twenty megabytes downloaded plus twenty megabytes uploaded every ten minutes is about 170 gigabytes bandwidth usage per month – well within the 4 terabytes/month limit of even the least expensive ChunkHost plan.

Disk space shouldn’t be an issue very soon– now that blockchain pruning has been implemented, you don’t have to dedicate 30+ gigabytes to store the entire blockchain.

So it looks to me like the actual out-of-pocket cost of running a full node in a datacenter won’t change with a 20 megabyte maximum block size; it will be on the order of $5 or $10 per month.

I chose 20MB as a reasonable block size to target because 170 gigabytes per month comfortably fits into the typical 250-300 gigabytes per month data cap– so you can run a full node from home on a “pretty good” broadband plan.


So if running a full node costs so little why are we seeing the number of full nodes on the network declining, even with one megabyte blocks? Won’t bigger blocks accelerate that decline?

And why are companies outsourcing the running of nodes and using API services like those offered by BitPay or Coinbase or Chain? Again, won’t bigger blocks accelerate that trend?

I think the answer to both of those questions is “no” – or, at least, “not significantly.” I agree with Jameson Lopp’s conclusion on the cause of the decline in full nodes– that it is “a direct result of the rise of web based wallets and SPV (Simplified Payment Verification) wallet clients, which are easier to use than heavyweight wallets that must maintain a local copy of the blockchain.” Give the typical user three experiences: a SPV wallet, a full node processing one megabyte blocks, and a full node processing twenty megabyte blocks, and they will choose SPV every time.

Hosting and bandwidth costs of $10 per month are trivial even to a cash-starved startup. Finding and hiring good people is expensive, and that is what is driving companies to outsource blockchain maintenance. A larger maximum block size won’t change that equation.


Crash landing

By Mike Hearn

Posted May 7, 2015

What not to do

A common argument for letting Bitcoin blocks fill up is that the outcome won’t be so bad: just a market for fees. Everyone loves markets, right? So who could object to that?

Actually lots of people could object, for the same reason that nobody really welcomes the new market for IPv4 addresses. IP addresses becoming scarce, complicated hacks like carrier NAT and corporations duking it out in the market for capacity is not a win for the internet: it’s a temporary kludge whilst we all migrate to the real solution: IPv6.

But it doesn’t matter — because the assumption underlying all of this is wrong. I don’t believe fees will become high and stable if Bitcoin runs out of capacity. Instead, I believe Bitcoin will crash.

In this article I will examine two scenarios.

The first is what will happen if next year (when I predict blocks will get over-full) we are running substantially the same software as today.

The second is what will happen if we are running some hypothetical upgraded version of Bitcoin Core and wallet apps.

In both cases I assume a 1mb block size limit.

Same code as today

What actually happens when Bitcoin Core runs out of capacity?

Transactions flow into the system at a somewhat steady rate. The rate is lower on Sundays. They enter the “memory pool” which is a holding area for transactions before they appear in the block chain. As the name implies, it’s stored in memory only. If a node is restarted the local copy of the pool is cleared, though of course transactions live on in the memory of other nodes.

As we approach 100% full, the first thing that happens is that confirmation times start to become huge. According to Monte Carlo simulations by Dave Hudson, at 80% full half of all transactions take around 20 minutes to confirm. At 100% full half of all transactions should wait longer than 6 hours.

But actually that’s not what would happen. The reason is that at 100% full, the true rate transactions are occurring at would likely be more than 100%. So a permanent backlog would start to build up.

Bitcoin Core has no code in it to handle a permanent and growing transaction backlog. Transactions just queue up in memory until the node runs out. At that point one of three things can happen:

  1. The node might become incredibly slow as it enters swap hell.
  2. The node might crash when it tries to allocate memory and fails.
  3. The node might be killed by the operating system kernel.

All three cases are bad news. Bitcoin Core does not restart itself automatically. If a node dies or freezes up it requires the owner to notice restart it manually, each and every time.

What’s more, almost all wallets don’t know how large the backlog is. They will let users send money regardless of how big the memory pool has become. So as the backlog grows, nodes will start running out of memory and dying. And it will take time until they get restarted.

You might think that nodes being restarted will help clear the situation because the node will forget about all the transactions and then be back to normal. But this has two problems. One — it makes double spending a lot easier. People want to buy things quickly and that will become suddenly less reliable. Two — wallets still have no clue anything is wrong. They just notice their transactions didn’t confirm yet. And wallets are programmed to keep re-broadcasting transactions that aren’t yet confirmed. So nodes will quickly fill back up again as transactions are re-announced and the backlog gets even longer, once again pushing them over the limit.

I don’t know how fast this situation would play out, but as Core will accept any transaction that’s valid without any limit a node crash is eventually inevitable.

What happens then?

Well, users will notice that transactions aren’t confirming. They will have been complaining for a long time before this, but now they’re going to reallycomplain. Some of them will experience real inconvenience and may even lose money, because e.g. they arrange an in person trade, move money from their desktop/web wallet to their phone, and by the time they arrive at the trading point their transaction has still not confirmed so their wallet will not let them send the money.

We know this because in the past we’ve hit “soft block size limits”. This is where miners are programmed by default to only make blocks below a certain size that’s less than 1mb. Back in 2013 this soft limit of 250kb was hit and transactions started to back up. Users were complaining, which is why I made the linked post. Some mining pools bumped their soft limits and started making bigger blocks, so things calmed down pretty quick. But if you read that discussion you can see all the same arguments then as now. There is no problem! Just pay more in fees!

Why a fee market doesn’t save you

There is much talk of a “fee market”. There are the beginnings of such a market today. The problem is that in the short term this would make the overload situation worse and even create more centralisation.

How so?

  • Fees are currently very low. As transaction backlogs build and nodes start to crash, everyone will think “One more penny is no big deal. I can afford that”. Let’s assume for a moment that child-pays-for-parent is implemented. So in an attempt to bump the fees on their first transaction which suddenly don’t seem to be enough, they generate another transaction, which makes the overload situation even worse and makes nodes crash out even faster!
  • There is no good way to automatically choose a fee. Even if you decide to bump your fee a little bit, because it’s taking hours to confirm transactions you can easily be outcompeted by other transactions that pay even more a short while later. The only way you are able to discover that the fee you paid is insufficient, is when you notice the transaction is not confirming. But you’re expecting transactions to take many hours anyway even if the fee is high enough (see the simulation data above). So after hours and hours you would try adding another fee with another transaction, but the same thing can happen — the “race to the top” is not synchronized and everyone is taking the smallest steps possible because they don’t want to waste money. So you have to keep adding more money and yet 
. you don’t get what you feel you are paying for!
  • SPV wallets have no way to know what their fee competition looks like without some fairly hefty protocol changes (which require a fork). Currently they can get by with some hard-coded fee levels, which work fine almost all the time. In an overload situation that wouldn’t be true any more and they would have to ask a trusted third party. The whole “small blocks makes things more decentralised” argument ignores this problem: for the many users who are using the most practical type of decentralised wallets today, they would end up with LESS decentralised software than before.
But how will miners be sustained without fees?

This comes up a lot.

Neither me nor Gavin believe a fee market will work as a substitute for the inflation subsidy. It just doesn’t seem to work, economically. You can read Gavin’s thoughts on this, and I wrote a post explaining one possible alternative.

So what role do fees have? Their primary purpose today, and I believe in future as well, is to let people buy their way out of the penny flooding protections Bitcoin has. In an ideal world most transactions would in fact be free. Only wallets that send transactions very rapidly (e.g. exchange wallets) would have to pay fees. Miners would include free transactions ordered by “priority” as they do today (calculated as coin age times value), and they’d do it because circulating bitcoins are valuable bitcoins. Additionally the psychological difference between “Bitcoin has no fees” and “Bitcoin has tiny fees” is significant.

Maybe that won’t happen. We’ll have to see. But this is the reason why I don’t see an artificial overload solving economic problems.

How would users react?

Badly.

Many years ago I was walking down a corridor with my new Google mentor, the incredible Andrew Kirmse. He said I’d be doing capacity planning and cluster buildouts for Google Earth.

I felt a bit nervous about it, so 22 year old me said:

“I guess if we run out of capacity the worst that could happen is we’d have an outage for a few hours. Or maybe a day.”

Andrew looked at me like I was insane. “Yeah 
 but that’d be bad. That’d be in the news”.

In the news??? Huh! Right! Of course it’d be in the news. Google hardly ever had outages. It had a reputation for competence. If Google Earth went down for hours because it ran out of capacity 
. that’d be seen as a sign of incompetence. That would be a story worthy of CNN. Gulp.

How do you think ordinary Bitcoin users would react on hearing of crashing nodes, a swelling transaction backlog, a sudden spike in double spending, skyrocketing fees 
 and all of it because of an entirely predictable event with an incredibly simple fix?

They would conclude that the Bitcoin developer community was incompetent. That would make the news.

And as Bitcoin holders who aren’t daily users woke up and read these stories, they would conclude that maybe they had miscalculated the future value of Bitcoin 
. that maybe Bitcoin wasn’t going to be the currency of tomorrow after all.

Whenever there are sudden swings in price, there are spikes in transaction traffic as people move their coins into exchanges. This can be seen very clearly on the graphs. As large numbers of people suddenly lost faith in Bitcoin and the price started to fall, they would decide that now was the time to get out. And so long dormant coins would start to move 
.. or at least try. The transaction backlog would get even worse.

The aftermath

Bitcoin would eventually recover. Users who became frustrated at the extreme unreliability would give up and stop trying to spend their coins. Many coins would make it to an exchange wallet and stay there. Node operators would make their nodes auto-restart. SPV wallets would find some trustworthy central authority to get fee data from.

Most importantly, the overload would eventually go away 
. because the users would go away. The backlog would clear. Fees would fall to the minimum again.

So life would go on.

Bitcoin would survive.

But it would have lost critical momentum. It would have become the MySpace of digital currencies. The faithful would have lost a lot of faith, and businesses that were trying to bring Bitcoin to the mainstream would “pivot” towards something else. People who were motivated by Making The World A Better Placeℱ would conclude the ordinary people around them would never use their products, and so they’d leave.

With upgraded code

Let’s rerun the scenario with upgraded code. It isn’t much better, but I have to do this, otherwise I know some people will bring it up.

Let’s imagine the following change is made before Crunch Day: Bitcoin Core imposes limits on the mempool size, so it can’t run out of memory any more.

There are other changes theoretically possible, like the chain fork required to let SPV clients calculate fee estimates themselves (this is a lot of work), but I don’t believe there’s any chance that they would happen in time.

OK, so 
 both blocks and the memory pool become full. Bitcoin is done: it can’t digest any more transactions at the moment.

What happens now? One of the following:

  • Wallets attempt to submit a transaction to the network, and get a reject p2p protocol message back from the remote peers, telling them that the memory pool is full. The user is shown an error message and the coins do not move. The user is understandably rather upset that his money seems to be stuck in his wallet and he cannot even sell it for a working currency.
  • Wallets attempt to submit a transaction to the network, but don’t get a reject, or only get rejects from half their peers. I’ll talk about why this can happen in a moment. The nodes that received the transactions attempt to relay it, but not everyone’s mempool is identical, so the transaction won’t propagate everywhere reliably. It might make it to some mining pools but not others. It may or may not make it across the network to the receipient of the funds. If the recipient doesn’t see it, you don’t get to buy your product. If they do see it, but the transaction doesn’t make it to all the miners, your 6 hour 50th percentile confirmation window just got a LOT worse. Transactions could routinely take a day to confirm, or more. The user will be understandably rather upset that the money seems to be stuck in his wallet and he cannot even sell it for a working currency.
  • The wallet learns that their transaction didn’t make it into the mempool, and decides to try again with a higher fee. They resubmit, and nodes say 
 OK. I will kick out the lowest fee paying transaction and replace it with yours. However, the original sender of that transaction has gone offline and doesn’t know this has happened. Now their transaction is stuck — it will never confirm. Eventually they may notice and try to bump the fee again, but once more, they have no guarantee they won’t be gazumped a second time, or a third, or a fourth 
.. after a few tries, the user will be understandably rather upset that the money seems to be stuck in his wallet and he cannot even sell it for a working currency.

Why would wallets not receive reject messages? Put simply, it’s that darned developer consensus again. Some Bitcoin Core developers believe that the reject message should be something only used for debugging and not something apps can rely upon. So there is no guarantee that a wallet would learn that its transaction didn’t fit. If not, we’re back to the infinite-confirmation-time transaction problem again.

Conclusion

I believe there are no situations in which Bitcoin can enter an overload situation and come out with its reputation and user base intact. Both would suffer heavily and as Bitcoin is the founder of the cryptocurrency concept, the idea itself would inevitably suffer some kind of negative repercussions.

For this reason, it’s important that we raise the limit with plenty of time to spare, so business as usual can continue.


Hello. I am a bitcoin.

By Elaine Ou

Posted May 12, 2015

Hello. I am a bitcoin. This is the story of my journey.

I was born on September 17, 2013 at 7:53 am. I came to life in a BTC Guild mining pool, a reward for mining block #258798 in the blockchain. Bitcoin was trading at $126 on my birthday, and 25 of us bitcoins were generated that moment.

In a mining pool, multiple clients contribute computing power to generate a block in a group-copulation sort of way. That meant that ten minutes after birth, all of us were separated and distributed amongst the miners.

I was actually just 0.1 bitcoin. Well really, I’m not a bitcoin, because a bitcoin is not a tangible thing like those Federal Reserve Notes you call money. I’m more like a bank account balance, where each transaction confers the right to transfer that balance to a new receiver. This story is a trace of transactions.

I sat in the miner’s wallet for ten days. On September 29, I was thrown into a mixer for 6 hours.

Bitcoin mixing is the process of combining a user’s funds with that of many others so it becomes impossible to tell where a transaction originated. It looks something like this:

mixing it up

This is money-laundering, of course. But there are plenty of legitimate reasons for seeking anonymity! Many people simply don’t want their spending history on public display*.

Virgin bitcoins like myself are particularly valuable for mixers – virgin meaning fresh from the coinbase, with no transaction history.

How effective is the mixing service? A taint analysis measures the strength of association between different bitcoin addresses. Prior to tumbling, the analysis looked like this:

After 6 hours of tumbling, it became this:

We rinsed and repeated for the next two days, lending my clean name to what were possibly tainted funds.

Finally, I was put up for sale on Mt Gox on October 2, 04:33 am. I was purchased 20 minutes later, and transferred into the Silk Road Marketplace.

Six hours after entering the Marketplace, at 10:12 am, I was seized along with 29,657 of my comrades. Later that day, Ross Ulbricht was arrested at a library in San Francisco.

Silk Road on October 2

The FBI or whatever transferred us to an address for Silkroad Seized Coins. And there we sat and waited for a really long time. Lots of people sent micropayments to our address, with words of encouragement and spam and phishing attempts attached.

The following June, we were moved to a new location for the US Marshals auction and divided into 3000-BTC blocks.

That was a rough few weeks as I envisioned a future providing liquidity for SecondMarket or some such. The price of bitcoin was over $600 by then; who else would want a $1.8M auction block?

As it turns out, Tim Draper wanted all ten auction blocks. On July 1, we moved to Tim’s account on Vaurum (now called Mirror).

And here I am today. I don’t know what comes next, but I feel in my heart that fate includes a trip to Elaine’s bitcoin wallet. You see, I was always disappointed in the timing of the Silk Road seizure. I had only just arrived in the marketplace! I didn’t even have the opportunity to partake in a trade for cocaine or murder-for-hire or even just some damn porn. But now, maybe I will.

*It is easy to trace bitcoin transactions, but difficult to determine if they actually reflect real-world dealings. By the way, if you use bitcoin, you should really generate a new address for each transaction. I would know, because I am a bitcoin.


The Reappropriation of Our Economic System

By BTCtheory

Posted May 13, 2015

What we have been taught about money and the economic system is little more than a collection of lies, and propaganda shoved down our throats at the point of a knife. Our economy is far from being fair, or free; and we are exploited by the whims of capitalist whom have received the seal of approve from all governments. The financialization of the economy by the state started with the creation of the Federal Reserve, and finalized with the abandonment of the gold standard. This was the beginning of the end of money having independent value from governments. When governments of the world discovered at Bretton Woods that they could simply end the convertibility of gold, and all governments could move forwards with only fiat money they were exuberant. This removed the greatest check on government power that has ever exist: the power of the purse.

To Smash the Chains

The legacy of capitalism is deep, profound, and all encompassing within our society. The reification of everything by capitalism has left no stone unturned, and has sucked every facet of life into the economic sphere. This is not the capitalism that Smith and Ricardo understood; but a distorted, anti-human Deus ex Machina careening toward the destruction of both humanity and Earth. This greatest evidence of this is in the near complete and total environmental destruction that we have experiences all over the world with the sixth great extinction of species from this planet. Indiscriminate of nationality, race, or origin; our oceans, skies, water, and land has all been polluted and raped by the powers that be. The very governments that were empowered with protecting our sacred rights were overthrown by capitalist gangsters; thugs in suits who auctioned everything off for a meager thirty pieces of silver.

The issue is not with the capitalists who only know corruption and theft–this should be expect from them most of all! The issue is with the state, politics, and the corruption that has enveloped all aspects of our social spheres. This system is corrupted and festering to the core; it cannot be saved, nor should it. The men of politics who hold themselves in such high esteem for being the negotiators of the prostitute our political system are the very ones that hold us down to be raped and used, again, and again by the capitalist machine. Our cries of consanguinity are never heard; we are little more than objects to be tolerated by them, while they exploit us to our deaths. If we are to be liberated, and free, as we were promised by our forefathers and the constitutions that govern us, than we must smash the chains of economic enslavement which we keeps us tethered to the destructive machine that we call capitalism.

To Break a Monetary System

We must harness the power of markets and entrepreneurship for the good of all, while dividing ourselves from the parasitic nature of capitalism. We must rip power away from a corrupt state which empowers a very small, exclusive class of people to the right of destroying the world of tomorrow, for a collection of trinkets today. If we are to ensure that we have something to offer to our children other than imprisonment, and a burned Earth, than we must choose to end this system of abuse now, today, and permanently.

This can be done. We have the means to break this totalitarian socio-political-economic system of the old world, and usher in a new era of global development outside of the hands of both the state, and capitalism. We can reappropriate our respective national monetary systems, for new, independent digital ones. Through this single action alone–through the reclamation of our economic power–we shall create a domino effect that shall ripple throughout the economic, political, and social structures of the world. Through using an independent money whose control and power comes from outside of the state, people can reappropriate their economic power for themselves. This will come at the direct expense of the state and capitalist who bleed us like the vampires and leeches they are. By breaking the monopolistic control of the means of exchange by the state, we shall expropriated the system of exchange, and the means of exchange itself back to its rightful owners: the general public.

We see the corruption of their system. Beneath the shimmering veneer of capitalism’s accomplishments and supposed progress, lay the untold billions of shatter lives. At its base we see that the law is nothing more that offical violence–state sanctioned terrorism with propaganda from a capitalist third estate. To fight their violence we must use the most powerful weapon at our disposal to rid ourselves of this barbaric system:

Non-violent, direct economic action

Through simply using another form of money, we banish the violence and vicious fist of the state from the economic power that each one of us generates. No longer would the state have the ability to rob us, nor would they be able to fund their crimes, or continue their corrupt regimes. To cripple the monetary system would strike at the very heart of the corrupt state-capitalist machine, and would cause for it to come to a grinding hault.

International Money for All

Each state is invested into its own system of governance, money, and taxes so that the small powerful elite can rule over all for their own pleasure. They keep their power not through democratic means, but through oppression, division, regulations, controls, taxes, boarders, prisons, levies, and so much more. This is not for protection of the masses, but their oppression. This is not create justice, but to maintain injustice. Governments create these artificial rules and regulations so that they may steal from their people, and keep them divide and silent. We must see their petty tactics for what they are, and see the magnitudes of our own strength which we have in our numbers.

For the first time in human history we can smash these artificial boundaries and false consciousnesses of nationality and statism, and find solidarity in working together through simple rejecting their corrupt economic and political systems. There are billions of people across the global that create trillions of dollars of economic wealth each year; and yet these very same people live a life of poverty and insecurity from the exploitation they face. Through creating a new popular front against capitalist exploitation under the guise of the state, we can create a new economic and political movement that can break the bonds of debt that have enslaved us.

Using digital currencies as a political action, we can reappropriate our economic wealth away from the hands of corrupt politicians and their capitalist allies, while create a revolutionary new way forward. This single action alone can ensure that we will no longer be enslaved to the same system of debt bondage that has created the conditions of the world today. Together, as a single unite body of free people, we can banish the last vestiges of slavery from this planet for all history moving forward.

The crux of power within this system is control of the economy. This control is exerted through the monopolization of the object of exchange: Money. Governments steal fragments of the wealth from each and every person on this planet through taxation and inflation, while also give themselves the power to punish with legal violence and death to anyone who opposes this monopoly. The minders of this monopolies are the capitalist banksters, thugs who strut about in fine suits with no shame of their avarice, or the blood that taints their money. Through the direct expropriation of the system that benefits only the 1% at the expense of everyone else, we will create better conditions for the great tide of all.

International Direct Economic Action

We do not seek to create a party or to organize with titles and salutations; we simply demand direct action. We understand the most significant action we can take is to refuse to participate within the old economic system, while building our own independent one. Through boycotting fiat money and using digital currencies instead, we create a dual power of both economic boycott from the current system, and economic solidarity with the new emerging one.

This new system of exchange is not based upon the false nationalities that have been assigned to us, but upon the permanence of mathematics that applies to all of us. It is a form of money that is inclusive of all peoples, regardless of whatever oppressive state one may be forced to live under. Most of all, bitcoin is a form of exchange that is outside of the control of both statist scum, and capitalist pigs. It is a totally new form of money upon which we can build a new system of exchange, and an independent economic system. If we are ever to liberate ourselves from the chains of capitalism, and the impressment of debt, then building a new and independent economic outside of their control is the only way that we can move forward.

Bitcoin and other digital currencies can be the tools upon which we build this great new economic and monetary union–but only if people are willing to learn and participate. We know that there is a deep people problem with bitcoin, and that we will need to educate and agitate if we are to create a real and substantial change. This is the start of the global economic revolution that will smash down the artificial boarders that separate us, and will economically unite us against our respective oppressors. Bitcoin is the new economic Popular Front against the exploitation of capitalist, and enslavement from tyrannical state governments around the world.

—

Next: Bitcoin, Economic Resistance, and Justice


Bitcoin and Deflation, The Last Word

By Paul Sztorc

Posted May 15, 2015

Any e-currency which is peer-to-peer must also be deflationary. Bitcoin, as “Immortal Deflationary”, presents the first real challenge to the established, “Coordinated Inflationary” currencies.

Introduction

The debate seems endless, and wrong.

When I first got into Bitcoin (in 2011), I understood why it had to introduce coins gradually (the mining half of this previous post) and also why it had to ultimately stop introducing coins, hence the fixed steady-state money supply (the 21 million coin limit).

But other people didn’t



and still don’t.

Somehow, years later, the debate rages on, still by people who seem to think that the limited supply has something to do with macroeconomic policy. It does not.

Inevitable Deflation: Three Puzzle Pieces

P2P e-cash systems without a fixed money supply will be replaced by P2P e-cash systems with a fixed money supply.

Puzzle Piece 1: Peer-to-Peer “Banking” Means Open Source

i. Security

First and foremost, people aren’t going to trust their money with something unless they understand how it works. People understand that banks work, and that online banking is just a different way of interacting with their bank, but with this newfangled “Bitcoin” software, transparent security is going to be imperative.

ii. Ownership

The major advantage to closed-source is that you can sell the software, or otherwise extract cash from its use. The P2P community isn’t into that: in fact, tons of proprietary software is itself (illegally) distributed over the P2P protocol Bittorrent every single day. The original “big” P2P software app was Napster, which fell into legal chaos by “owning” its closed source software, and therefore being legally responsible for the actions of its users. (Later, [open source / un-owned] implementations of essentially the same idea [Gnutella] are still around today).

iii. Unowned-Project / Volunteer-Based-Development Spiral

When the development and distribution of the software is itself P2P (ie, the software is designed, written, developed, and improved collaboratively), the gains from open source (onboarding, review, coordination of interested programmers) overwhelm the costs.

iv. Non-Administration

Contradiction: [1] All nodes are going to be equal (“peer-to-peer”), with no administrator nodes. [2] Under closed source, everyone is running the same application but only a few “administrators” know what the application is really doing.

Puzzle Piece 2: Open Source Means Competition

Open source software can be effortlessly copied. The copies can be trivially renamed, they can be trivially modified to use different colors, or words, or different starting parameters. It’s Darwinism at the speed of the information superhighway.

If you don’t know that, you don’t know anything about software, and you definitely don’t know anything about Bitcoin.

( Central Banks are designed to coordinate monetary policy for large areas [in fact, the world’s central banks have historically been born just-before/during expensive federal campaigns/wars/”coordination competitions”], but: the easier it is for someone to leave a group, the harder it is to get the group’s members to do something they don’t want to do. )

Puzzle Piece 3: The Winner-Take-All Network-Effects of Value-Storage

Citizens use only one form of money. Currencies spread as far as they can (usually until they reach rival-citizens who must pay rival-taxes in a rival-currency), and then compete until there is just a single survivor.

Basics of Money ( Please Skip If You Already Know )

Time passes. Some days you have not enough; other times: more than you need. People share to work as a team, and, in the past, used “memory” to keep track of who’d been pulling their weight. But, memory wasn’t completely reliable (biased toward beauty/authority, it only worked for people you already knew, etc.), so we chose a commodity to serve as community-effort-memory: money.

Which commodity would best transport value across time? The fundamental challenge is to acquire something now, that someone else will want later.

  • “Acquire something now
“ implies some kind of transact-able property: The cheaper to store and transport, the better (hence gold, with high value-to-volume and value-to-weight ratios, or the modern USD checking account, which only requires organizational safeguards, laws, and arithmetic).
  • “
that someone else
“ is more complex: What you save needs to be widely “recognizable” (to reduce the transaction cost of passing it to a new owner), needs to be of uniform-quality (aka “fungibility”, so that quality negotiations and assessments don’t slow down the transaction), and needs to lend itself well to changes in quantity (“divisibility”).
  • “
will want
“ implies some “fundamental” or “seed” value: That someone, somewhere, would definitely want this good all in itself (for some non-transaction reason). This disqualifies anything which is easily counterfeited (why take it from you if they can make it themselves), or which serves no useful purpose. Bitcoin and the USD derive their “fundamental value” from cheap, secure, storage costs (free checking accounts) and amazing message-transfer capabilities (compare the convenience and efficiency of internet signals, checks, credit cards, wire transfers, etc., to the inconvenience and insecurity of shipping bars of gold around the world).
  • “
later.” implies that you are passing the value through time: The ideal choice of money is “durable” (won’t “rot”, ie: won’t lose its quality due to changes in the atmosphere or ecology).

It is durability where Bitcoin holds the critical advantage. Bitcoin is inflation-proof, bailout-proof, it’s checking accounts are free, and accessible to anyone (criminals, oppressed minorities, children, schizophrenics, etc), and it is therefore nearly impossible to diminish the integrity of each monetary unit (“it won’t rot”).

“Recognized” as the Leader in Value-Storage


People (individuals) want money, because people (as a group) want money. It’s quite circular. What drives this amusing little quirk?

Well, of all the things to save, one will be -objectively- best. Over time, individuals will recognize the advantages of this money-form, and start saving in it, purely for convenience. Eventually, they’ll transact in it (“Why do any more roundtrip conversions, or any more price-calculating/negotiating, than necessary?”).

Having two things serve as money is non-fungibility. It introduces complexities of an unacceptable nature.


especially in the Information Age.

In fact, because modern computing [1] allows prices to be quickly and effortlessly recalculated and redisplayed, and [2] allows e-transactions to be fast and cheap, we have many options for fast roundtrip conversions that drastically reduces money’s need to serve as a unit of account or even as a medium of exchange. This leaves only value-storage as a discriminator among money-types.

Assembling the Puzzle

I hope it is now clear: if Bitcoin didn’t have a fixed money supply, it would be replaced by something which did. It would have happened with a single fork and a little publicity (rich BTC-owners could spread the following word “come with us on this hard fork at Date D, and your money will automatically be more valuable”). Since Satoshi knew that this would happen (and as non-equilibrium behavior doesn’t last long [by definition], and as hard forks endanger the digital-scarcity value-proposition / create double-spend opportunities), he built it the right way the first time.

Hopefully it is also obvious that something with a decreasing money supply also won’t work. If the supply is decreased uniformly across accounts, nothing of any consequence occurs whatsoever. How is a world where [1] Bitcoin values are cut by a factor of 1000 each year, different from a world where [2] each year, we shift our labeling scheme back from “uBTC” to “mBTC” to “BTC” to “kBTC”? This would not truly “be” a change in the money supply at all, instead merely a relabeling. If coins are destroyed randomly, risk of wealth-loss is introduced (pointlessly). As Bitcoin is anonymous/identityless, and, as users will react to protocol rules (to avoid coin-destruction), any non-uniform destruction of coins must, in practice, be a random destruction. Therefore, a decreasing money supply harms the cryptocoin-project unambiguously.

Demurrage currencies (such as Freicoin) are fundamentally uncompetitive for exactly the same reason: money exists to be saved, the savers are better off on the fork which most encourages saving.

Coordination-anxiety magnifies the open-source “fork-the-project-and-leave threat” spectacularly: if some people have a reason to move to a different cryptocoin system, and you fight them (perhaps by selling the new fork [which they can do to you, by the way; a battle fought by savers with armies of stored-value]), you run the risk of losing all of your money. Better not to fight at all, and wait it out
but –ignoring network-effects– when selling your goods/services for cryptocoin, which of the two coins are you (a brand new saver) more willing to accept? The coin which preserves its value better.

Deflation: Beyond “Good” and “Bad”

People who criticize Bitcoin for being deflationary seem to have missed a number of more important things. Policy is primarily caused by what is possible and effective, not by what is desirable.

“Should” vs. “Will”

Bitcoin, as a protocol, is immortal. We can choose to ignore Bitcoin, but it cannot be shut off, it cannot be destroyed. Regardless of how we feel about it, it is here to stay. Bitcoin might cause permanent deflation, it might cause mass unemployment, it might cause famine, or cause the water of the Nile River to change into blood or trap the whole universe in an endlessly repeating loop of Thursdays.

Who. Cares.

Some people ask the question: “Should Bitcoin, a deflationary currency, be used as money?”. The question is completely irrelevant. Instead, ask: “Will Bitcoin be used as money?”.

The will and should questions are usually quite related, of course. If something “should” not happen, then it likely “will” not happen: we’d eventually prevent it from happening. If that weren’t happening, if a group of “preventors” for a should-not-happen didn’t exist, then we could start one and attract members. After all, we’re doing what should be done; we’re the heroes and everyone loves us.

But, in this case, “should” doesn’t matter.

Deflation is Now Inevitable

Inevitable = Your Opinion Doesn’t Count

It starts pretty bad: some economists argue that inflation is badly measured (yes, that’s the CEO of the St. Louis FED), others argue that inflation can’t be measured at all (yes, that’s monetary policy expert Scott Sumner), others argue that the theoretical aggregate supply/demand curves used to determine “the price level” aren’t monotonic and don’t uniquely intersect (from a Member of Table 1).

Okay, let’s ignore all of that and assume that you can prove that “deflation” exists, and let’s say that you can prove that deflation is bad. I don’t care.

In a few billion years, this entire planet will be incinerated by the Sun and obliterated completely. And I’m about 50% certain that our species will exterminate itself sometime in the next 200 years.

I’d start with those, if you have a magical way of dealing with sad truths. This one might not even be sad, it might be happy.

“But”, you say, “surely we don’t need to use this Immortal Bitcoin? We can just ignore it.”

If everyone was willing to ignore Bitcoin, that might be true.

The Long Run Belongs to the Best Savers

The only threats to Bitcoin’s survival are technical: mainly, that something will prevent Bitcoin from scaling. Scalability debates rage on, but progress has been adequate.

If Bitcoin’s transaction costs remain sufficiently low, every online merchant will accept Bitcoin round-trip, as this results in them getting more fiat cash. Even if transaction costs increase, no payment system on the market operates at Bitcoin’s speed, reliability, and privacy levels.

Assuming it does survive, it’s exchange rate (USD/BTC) against traditional, inflationary fiat currencies will move upward forever.

That sounds bold, doesn’t it? Like I must have violated the EMH or something. But proving it is easy: first, a perpetually rising exchange rate is really just another way of saying ‘deflationary currency’
just re-price the dollars with Bitcoin numĂ©raire like everything else (BTC/$) and assume that that price will always fall (the inverse price must, then, always rise). Secondly, you can profitably arbitrage from BTC-purchases, for as long as the public remains ignorant of the benefits involved in using Bitcoin (fully consistent with the EMH). Thirdly, one can escape the generalized EMH argument (via Jensen’s inequality) with rare (but in this case realistic) expected-value and utility functions: because there is little to be gained by owning more than, say, 1000 BTC, individuals who own >1000 BTC could plausibly believe that the $/BTC rate will increase, and yet not be buying. If these >1000ers had any uncertainty about their exchange-rate beliefs at all, even selling BTC would be consistent with this belief. So, perhaps uniquely in the world of finance, it is possible to for a whole group of behaviorally-honest people to claim that the BTC/$ exchange rate will move downward forever.

We can dive deeper into the actual reasons for this specific price-decline: let’s consider the supply and demand fundamentals. Money, emphasizing digital scarcity, and relativity, doesn’t really have a supply “curve” (the supply is frozen at 100%), nor does it have a demand curve (as money represents stored value, a high price is exactly as bad as it is good – no curve at all). Changes in unit quantity tend to be directly offset by changes in price-per-unit, what matters is the product of the two: the market capitalization.

So, we are comparing money-alternatives to each other (re: winner take all network effects) on their money-merits (discussed above). Private increases in the supply of money are, as is near-universally acknowledged, a tax on holders of nominal money balances (and their associates) and a subsidy to debtors (and their associates). Revenue from this tax can then be spent/invested, and these purchases may affect the economy in innumerable ways, depending upon which purchases/investments are made, the circumstances under which they are made and the expectations that result.

No one likes losing money: everyone likes gaining money. By controlling the money supply, central bankers take from some, give to others, and alter the macro-economy in countless ways. For the greater good? Who cares. Because it isn’t happening any more: the inflation tax is voluntary, you only pay it if you save in US dollars. Today, people use dollars because they are the best medium of exchange, and an acceptable store of value, but in our future internet world, everything is a superb medium of exchange, and Bitcoin always outcompetes dollars as a store of value.

“Don’t Fight the FED”

Central Banks are for War.

Sometimes literally; but what I really mean is that the CBs represent coordination and leadership. All the users of a form of money -all of them- can be tapped to serve a single, unified purpose, and they can be tapped in a uniformly parasitic way: as little as possible from each, and never enough to kill the host(s). The US FED is like a general which commands a perfectly-obedient army of permanently-healthy dollars. With just the option to use that kind of power, you can do a lot.

I bring this up to explain why, if deflationary currencies are so powerful, we haven’t seen one take over recently. Coordination can be very useful, and banking-coordination probably helped to create/popularize checks, wire transfers, online banking, electronic tax filling, etc. It may even have helped win various Important Wars or fund Important Federal Projects, or maybe it just planted a flag in the ground that said “come to the USA, where banking is Definitely Good-Enough”. Its easier to rely on a banking network that has one person that you (or, just, that someone) can meet and negotiate with, who sets the rules, and can, at the the drop of a hat, move the whole network in a single direction. The US FED, Courts, Congress, and Armed Forces are all partners (more coordination). Most banking networks today are insecure; they aren’t exploited because fraud/hacking is illegal and you’ll get sent to prison. If the banks refused to ally themselves with their governments, how expensive would it be to run a branch, or cash a check? Banks store value, which means more can be lost than owned. Only violence can dish out a level of punishment which is significantly discouraging.

It is easy to see why, once one country “Central Banked”, all others followed: it’s a coordination arms race (try winning a war without one). In any arms race, everyone involved would prefer to live in a world where “arms” are permanently, globally, impossible: no one needs to spend money on arms, and everyone is perfectly safe. Bitcoin is the first technology, that enables such a transition to a permanent, global, un-Central-Bankable money: you get more or less what you had before, but a better store of value. ( Gold can never again function as money, it is too hopeless as a medium of exchange: expensive to transport, secure, and count. This has been true for as long as the internet has existed, and probably even for as long as the credit card has existed. )

Conclusion

Economic analysis is often journalism (“a persuasive organization of cherry-picked facts”), not science (“a process of ever-increasing predictive accuracy”); I was not surprised to see that econ-based arguments failed to achieve a “last word”.

Here I’ve tried to justify the thesis “e-cash will inevitably tend to a fixed money supply”, purely on tech/competitive grounds, and analyze the consequences of a fixed money supply for individuals instead of aggregated groups.

If you think I succeeded:

Add Disqus comments.

comments powered by

Disqus


Why Bitcoin is called Bitcoin

By Oleg Andreev

Posted May 16, 2015

— Would you like to know why it is called “Bitcoin”?

Jane touched her glasses to show she’s preparing for one of those lengthy and passionate discussions. She sipped her orange juice and continued, without waiting for an answer.

— The closest who has ever come to creating Bitcoin was Nick Szabo. Have you read his pieces on bit gold, secure property titles and smart contracts?

— I’ve heard of bit gold. It was a precursor of Bitcoin which did not take off, right?

— Not quite. Nick never proposed any specific protocol or an algorithm, only an overview. Bit gold was just an open-ended idea. It was not clear how exactly such bit gold “coins” should be generated in a trustless manner and how their ownership could be verified. Also, in his proposal gold coins were not fungible. Their value depended on scarcity defined by complexity of per-coin proof-of-work. There were a few other problems. Nick identified the need for a secure title registry, but never proposed a concrete protocol to make it work on a global scale.

— So what ingredient was missing then?

Mike started feeling impatient. It’s not the first time he would be involved in a conversation filled with words “trustless”, “ledger” or “coins”. He prepared to listen for a hundredth time about mechanics of Bitcoin, signatures, hashing and all that.

— Ha! There was none.

Mike looked genuinely puzzled.

— Look, Nick actually laid down all the ideas necessary for a functional system: proof of work for scarcity, need for secure decentralized title registry, smart contracts. All pieces of the puzzle were there, just not arranged as needed.

Jane’s eyes sparkled and she made a dramatic pause.

— Enlighten me :)

— What if you make scarce not the bit gold coins themselves, but the entire title registry? And make it so scarce that there could only be one, which automatically solves the synchronization problem. Individual coins then become perfectly fungible because they all (eventually) share the same proof of work. And since the proof of work gets stale over time and we need to add new transactions, we could timestamp new transactions with extra proof of work thus maintaining the scarcity by piling up all proofs of work into a one giant proof. Issuance of new units follows naturally: some programmed amount could be allocated for each batch of proof-of-work.

— Impressive. Does that mean that Nick is Satoshi?

— I’m not sure. Satoshi did not mention Nick Szabo’s writings at all. Either Nick naively tried to hide his relation to Bitcoin, or it was someone inspired by Nick who tried to direct attention to him.

— Or it is still Nick and he tries to make us think precisely that :)

— Either way, Bitcoin is clearly a result of studying Nick Szabo’s work which was incomplete without this tiny, but powerful unifying idea.

— You promised to tell me why it is called “Bitcoin”.

— Don’t you see it already? The ledger, blockchain, is just a single coin of bit gold with scarcity maintained by a growing proof of work. Hence “bit coin”, singular.

— Whoa. And this coin records its own history of ownership in itself. Fascinating! Sounds like a science fiction.

— It gets better! There are a few other interesting things that become evident from that perspective.

— I’m all ears.

— It’s getting late now. Lets continue next time.


Silk Meets Bitcoin

By Beautyon

Posted May 20, 2015

The title refers to the legal profession and obtaining “Silk”,

“As members wear silk gowns of a particular design (see court dress), the award of Queen’s or King’s Counsel is known informally as taking silk, and hence QCs are often colloquially called silks. Appointments are made from within the legal profession on the basis of merit rather than a particular level of experience.” — Wikipedia

As Bitcoin continues to grow, many new people are exposed to it from different professions, and they all bring to it their prejudices and thought processes. Bitcoin is a tool. It is neutral. It is math and software. It cannot object to anything that is said about it, and there are many people who object to how it works and its inevitable side effects, that will change how things are done everywhere on Earth.

The groups of men who are having a particular problem with Bitcoin, because it directly challenges, dismantles and makes aspects of their profession redundant are lawyers. In order to prevent their complete displacement and disruption, they have two choices; either corrupt the technology, or call for it to be outlawed or made unusable via regulation. The latter will not work, because billionaire entrepreneurs are shovelling money into Bitcoin, and the network is growing steadily and rapidly. Subsequently they are left with the former as their only route to control Bitcoin’s effects and consequences.

In reality what the Bitcoin detractors have as their sole remaining tool is a campaign of FUD (Fear Uncertainty and Doubt) to try and convince other computer illiterates that Bitcoin is somehow not what it appears to be. They will fail of course, just as the MPAA/RIAA failed to stop file sharing with its propaganda equating BitTorrent with terrorism.

What is interesting about the objections to Bitcoin raised by these men is just how little they know about the subject they are addressing, and how desperate and threadbare their objections are. Lets go through some of them now; they are all variants of the latest iterations of anti-Bitcoin FUD which has had to rapidly adapt and retreat as a direct result of the spread of Bitcoin and the historic volumes of investment in its infrastructure. Someone is wrong here, and it is easy to see who it is if you have a firm grasp on the details.

Where is The Money?

The first objection these people now raise is the statement that Bitcoin advocates are not “thinking commercially”. This is untrue. All the people investing in Bitcoin and writing software that leverages it are using only commercial thinking. They have done their homework, done their research, installed the tools and other necessary software, made their calculations, and understand how Bitcoin works. Bitcoin is software that is very understandable whilst simultaneously being a breakthrough. It is not unlike E=mc^2, which whilst being a short formula, is incomprehensible to anyone but physicists in the actual mechanics. Anyone can understand Bitcoin in five minutes; all you need is the CoPay wallet, topped up via a voucher. It could not be more simple.

Scepticism is not rational or applicable to software. Software is something you can read and understand; there is no mystery involved in it (unless you are not a software developer) and it is not hard to understand the simple principles of it if you are not. Software is logic and math. It uses the principles of logic and math, and there is nothing in it that is hidden if you can see the source code, which you can with Bitcoin. If someone says they are “sceptical of Bitcoin”, you know you are dealing with a man who does not understand what they are talking about.

James Randi, renowned Sceptic. His thinking does not apply to math and software, because these disciplines are explicit and not hidden. They are fully open to inspection, scrutiny and rigorous testing so that you can now with absolute certainty that it does what it claims to do..

How it Can All Go Wrong

Here is an example of how not understanding what software is can lead to total confusion when it comes to forming a sound opinion on Bitcoin.

A man who coincidentally happens to be a lawyer claims that Blockchains do not transfer assets, they record data. This is true, but it is true of all Blockchains, whether they are the main Blockchain or a privately controlled fork or derivative of it. Since the number of people participating on a Blockchain determines how tamper proof the entries on it are, it makes sense for everyone to contribute to a single Blockchain with their computing power, so that the integrity of recorded data is beyond dispute and the reach of tamperers and fraudsters. Making smaller bespoke Blockchains without the hashing power to secure the records does not make sense, or commercial sense, since it is the integrity of the stored records that is the business proposition and tool.

Once we accept this fact; that the Blockchain is an infallible, tamper proof ledger that everyone can write to, access and see without having to get permission from or pay a third party, saying that registering assets and moving them by hand signing a document and emailing it is “just as good” is clearly incorrect.

This is how fazes used to be sent from Microsoft Windows 95. That anyone can seriously equate scans of hand signed fazes to Blockchain entries is beyond belief.

There is no infallible unforgeable public record of communication when you send a scan of a hand signed document by email as proof of a transaction. You cannot even prove that the sender is who they say they are, because emails can be forged. Furthermore, signatures on paper can be scanned and cut and pasted in Photoshop to create an unlimited number of perfect forgeries. The example offered here by the Bitcoin detractors is clearly nonsense, but it speaks loudly to the level of computer illiteracy of men who think that scanned documents are equivalent to cryptographically secured entries on the Blockchain. The same goes for moving money by SWIFT; another example offered that is, we are meant to believe, equivalent to entries on the Blockchain. SWIFT, which is a private network, unaccountable, inaccessible to the public, unverifiable, slow, reversible, and which requires third parties to access it is completely inferior to Bitcoin for any purpose. Bitcoin entirely removes the need for SWIFT, and because anyone can build software against the Blockchain, it makes SWIFT completely redundant. A simple thought experiment shows how this is so:

In Bitcoin as “Open SWIFT”, unique tokens are exchangeable for money by anyone holding the keys to them. If you receive Bitcoin, you can assign it to anyone on the Earth without permission, for fees that approach zero. The tokens are re-registered instantly and irrevocably.

In three sentences its possible to construct a model that completely eliminates the need for central clearing by SWIFT; all that needs to be built is the infrastructure around the edges, with Bitcoin at the centre. This is being done.

This is the sort of thinking real entrepreneurs do; they don’t spend time trying to make others not look at or dismiss a technology, they solve

PAY NO ATTENTION TO THAT MAN BEHIND THE CURTAIN, I THE GREAT AND POWERFUL LAW DOG HAVE SPOKEN!

problems and then offer their solutions to the public, without tricks, memes, slang, FUD, nonsense or any form of deception.

Who is Confused?

When people say that Bitcoin can be used as “a digital representation of an asset” the meaning is not at all confusing, as some might like you to believe. Paper money used to be a token that represents the power of a holder to redeem an amount of gold or silver at a central bank indicated on the note. When men talk of “a digital representation of an asset” it is in this context that they are speaking. Everyone knows that the deed to a house is not the house itself; it is a document proving that you own the house. Putting that document on the Blockchain is simply a way of removing the possibility of unauthorized tampering with the entry, in a way that is infallible. The UK Land Registry is a perfect example of this, where anyone can see who owns what property, and transfers of property registered on it can only be made by lawyers. In the Bitcoin Blockchain mediated Land Registry, only the people with the keys to the entry can change titles, and anyone can see all the titles and who owns what. Its a much more efficient, and importantly, fraud proof and transparent system that is fast, and less expensive to run for the State. Unfortunately for lawyers, their position as gatekeepers is made completely redundant, and they only have a role to play when a dispute emerges. This makes them uncomfortable, just as the Buggy Whip makers where made uncomfortable by the advent of the motor car. And we know what happened with that disruption.

Tokens Are Terrible
 For Who Exactly?

To say that “tokens are a terrible way of representing financial assets” is simply odd, unless you take into account who is making the claim. All financial assets are tokenized, from deeds to property, shares, bonds and money itself. No one who owns shares in Apple actually thinks they can go to Cupertino and cut out a piece of the headquarters because they own shares in Apple. Shares are tokens that represent a proportion of ownership in a thing. This has been going on for hundreds of years, and is not new or controversial. Bonds may be thought of a “bundles of rights”, but who owns those bonds, when they mature and what their value is are all reduced to symbols on paper or in a computer. What the Blockchain and Bitcoin do is make management and transferral of those symbols and tokens doable by anyone without the need for a third party to manage security and verification of who owns what and who is who.

To say “evidence of title is easily demonstrated with things like signatures and chains of evidence like correspondence” is to fundamentally misunderstand cryptography and how it works in the Blockchain and out of it. It also betrays that you are hearing the perspective of a Luddite Lawyer, who only understands the existing forms and procedures of his profession, is stubbornly resistant to change, and who has no insight into cryptography and software. It is a fact that in the recent past, there were lawyers who only accepted personally signed original paperwork as properly executed documents and rejected facsimiles of signed paperwork, “because facsimiles are not the real thing”. Very few lawyers in the west demand in personam signatures now because they know that a fax is good enough and waiting is not convenient. Blockchain signatures and authentication will similarly completely replace faxed paperwork and hand drawn signatures. In order to understand why this is so, you must understand what a digital signature is, and why it is unforgeable and completely reliable. Digital signatures are not only more secure than signatures on paper, but they can be made and transmitted instantly.

This is a GPG clear-signed message. Everything inside the signature blocks at the top and bottom of the text is guaranteed to be as the sender wrote, and it is guaranteed that his key was used to sign it. We can know with absolute certainty therefore, that the person whose key signed it was the signing key, and if there are multiple signatures, we can know that the person who signed it was the signer himself. The text could be anything, from a promise to pay or a lease or confirmation of a sale of real property.

The Dotted Line

The making of unforgeable signatures at a distance represents a sea change in how business can be done and identity authenticated; you can be anywhere on Earth and sign a document in a way that is unforgeable and yet human readable and verifiable. This is called “Clearsigning” and you will only understand what that word means if you are familiar with public key cryptography.

It is not a requirement of every Bitcoin user that they know about Public Key Cryptography, but if you are an entrepreneur trying to sell software that uses a fork (variant) of the Blockchain source code, you would be well advised to completely understand the basics of it, so that you don’t spout out outrageous schoolboy howlers like,

“A signature on paper faxed is as good as an entry in the Blockchain”

Anyone seeing guff like this instantly knows that the speaker doesn’t know what he is talking about, does not use or understand Public Key Cryptography, and therefore probably has other gaps in his knowledge that make his claims about his own software at the very least, less robust.

Case in point, to say that,

“commercially you probably don’t want to use a “decentralised” network” to store documents and signatures”

shows a complete misunderstanding of why the Bitcoin Blockchain is secure. The fact that it is publicly maintained is the exact reason why it is secure and invulnerable. Anticipating the criticism that people do not want their private documents to be stored publicly, once again, a computer literate man would know that you only need to store the signatures for the documents in the Blockchain, not the documents themselves, where the signatures would be infallibly time stamped and recorded. Digital signatures can be generated that are detached from the documents they relate to, and the signed content does not have to be bundled along with the signature.

Commercially, this saves time and money, and allows people from all over the world to validate documents wherever they are, without permission or needing to rely on a third party. Building the software that manages this and abstracts the complexity away from the user is the textbook definition of a business opportunity.

Ned Ludd’s Hammer Comes Down

This is the difference between true entrepreneurs and men masquerading as entrepreneurs; the true entrepreneur is thirsty for knowledge and new techniques, and as he acquires and consumes them, he blends them into his products, simplifying and strengthening them. The anti-entrepreneur wants to dismiss, destroy, distract and dissuade.

Luddites smashing looms. They believed that people being put out of work by mechanical weavers was anti human, and smashed the looms that were responsible. To us today, the benefits of the mechanical loom are obvious. Anti Bitcoiners are identical in their insane quest to dissuade men from adopting Bitcoin, and do not have the intellectual capacity to see how Bitcoin will benefit everyone just as the loom did.

People who are against the Blockchain and Bitcoin are anti-entrepreneur “Tech Luddites”, who, seeing their professions under threat as the original weavers did in Ned Ludd’s era, are trying to smash the global loom that is Bitcoin.

This time, there is no physical place to attack and no loom to smash, just software and an idea, and so they attack with their own worthless counter ideas and broken software. Sadly for them, counter ideas have no force, and no one wants broken, worthless, useless software. Software is thinking in motion, and the only way to counter it is with more software
.that works. Blockchain spin-offs provide no advantage because they don’t have the scale and security that the true Bitcoin Blockchain has, and so they fail. If they do not fail, then they are fulfilling a market purpose, and none of this applies to them. In that scenario, there is no need to be a Bitcoin detractor, because what you have works exactly as described and is also useful and being rapidly adopted.

As is to be expected, a lawyer will invoke, “Legal Nexus” as a reason why the Blockchain is not workable. This is a clear expression of the panic stricken sentiment, “You cannot do without us or the sky will fall!”, but of course, no one is saying that there will be no disputes in a Blockchain mediated world. What we are saying is that the definitive transaction record will be the Blockchain, not a private, bespoke, corruptible ledger, where the rule is, “trust us, we are professionals”*.

“Trust me I’m a lawyer?” I don’t think so. Everyone will refer to the Blockchain as the definitive record, no matter who you are, be you lawyer or layman. No one will trust a private Blockchain to record ownership of their valuable assets; the first thing a thinking man will ask is, “What are they trying to hide? And why do they want the power to *reverse entries!?** These guys are CHEATERS!” Trust-less transactions are one of the effects of Bitcoin and the Blockchain. The need for third parties as verifiers, intermediaries and authorities is removed and this is what troubles the men whose profession it is to do those things.

The argument that the Blockchain doesn’t verify that the owner of an asset is the real owner is a Straw Man Argument, and demonstrates once again, a fundamental lack of knowledge about digital signatures, Multisig Bitcoin Transactions and how cryptography works. Contrary to what some would have you think, the Blockchain does provide you with a facility to verify that the thing someone is trading is actually that thing; through Multisignature Transactions. Oddly enough, this is where the law profession, could have a new central role in the Blockchain mediated world; acting as a signature party verifying that the assets in question are what they say they are. This would be a reduced role for them, but it would be for the good of society, so I’m sure they would gladly accept it. Here is how it could work.

Take a car or a house as an example; you can link a Bitcoin transaction to that object’s serial number or address, which is created and signed by the original owner or manufacturer infallibly, and their lawyer. This is the “root ownership document”, created by the company or man that made the object. When that car or house is transferred in a Multisignature Transaction, the lawyer and the original owner both sign off on the transfer and this Multisignature Transaction is recorded on the Blockchain, unalterably transferring proof of ownership to you. There is no need for “certified copies” because that is what the Blockchain provides; its is the ultimate infallible certification authority. No prior interests can be usurped because in order to transfer an asset, they (the original owner) would have to sign any transaction on the public ledger. Anyone who has priority to you has an infallible lock on the asset no matter what it is. Transferring encumbered assets is impossible on the Blockchain; this is why people are so exited by this new software. Those who do not understand it, use childish language like,

crypto-escrow-thingy

to describe a Multisignature Transaction Escrow system as Brawker used, because they either do not understand how the software works, or they do, and are deliberately trying to belittle and spread FUD on the exiting capabilities and incredible potential of the Blockchain.

The argument that counter party risk still exists with bond tokens on the Blockchain is another Straw Man Fallacy; what the Blockchain does is provide and infallible public register of assets. It has nothing to say about the soundness of an investment, or the solvency of any business. This is also true of shares and bonds recorded on paper of course. These threadbare anti Bitcoin arguments are the sound of rattling empty soda can desperation. Nothing more.

Clifford Stoll
 Again?

Saying that the Blockchain is an excellent global data management system but it is not “mainstream” or “commercial” is absurd. Mainstream simply means widely used, has nothing to do with its inherent properties or utility, and the software to make it widespread is being written right now. As for commercial, the same applies. This is not an argument against Bitcoin’s capabilities and no true entrepreneur would ever make them. It’s the same class of Clifford Stoll argument in form and style along the lines that no one will ever use the internet, “because you can’t find anything on it”.

The same goes for the “ten minute confirmations are a problem” objection. This argument is made by the same men who think that signing paper, scanning and faxing it is better than a digital signature. The amount of time it takes to have a secretary print a contract, scan it, fax it, have it received, signed, returned, and then inspected, approved and countersigned will always be more than ten minutes. The confirmation time objection is nothing more than a Straw Man, and a very silly one at that. If the confirmation time never shortens, Bitcoin will still be more efficient and beneficial by orders of magnitude compared to paper mediated signatures, because anyone anywhere can use it for legal document purposes without a third party. The savings in time both individually and in aggregate make the ten minute window a very cheap price to pay. And we must also never forget, that the ten minute confirmation window is not set in stone; we are talking about software, that will always be improved and made more efficient. Bitcoin and its features are not permanent or forces of nature; anyone with even a cursory understanding of the subject knows this, and knows that improvements are always possible. The same people who complain about the ten minute confirmation “problem” could never predict the emergence Bitcoin in the first place. They are nothing more than noisy negativists.

Now write 400 times “No Blockchain without Bitcoin”, YOU NAUGHTY BOY.

“LOL WUT?!”

Which brings us to another schoolboy “out of his comfort zone” howler. Where the author tries to bamboozle his computer illiterate reader with “tech jargon” to try and convince them that he is an authority on software, an obviously false claim which anyone who knows anything about software can instantly see through. It is precisely this sort of nonsense that throws serious doubts on any other claim about the software being peddled by people who talk like this. To argue that Bitcoin,

has limited scripting capabilities

betrays a complete misunderstanding of how software works. The Bitcoin reference client is a software daemon, that you can address with your own bespoke software, sending commands to it and retrieving answers from it via its Application Programming Interface or “API”. You can literally write any software imaginable against the Bitcoin daemon’s API, in any language you choose. Bitcoin’s scripting capabilities are no limitation whatsoever, and to invoke it in this way shows the writer is completely clueless about how not only Bitcoin works, but how services on the web are architected.

The schoolboy howlers don’t end there though. On one line, the writer claims that

Bitcoin is not a foundational protocol, like TCP/IP

He then says four lines later that a Blockchain has two components, one of them being “Its protocol”. I’m not making this up. Since he instantly concedes that the Bitcoin has and is a protocol, the question then becomes what does the word “foundational” mean? Does it mean how many people are using it? If so, if 21 are successful, the Bitcoin Protocol will be exactly that; the foundation for global commerce built in to every device from your wristwatch to your toaster. Millions of transactions are are being conducted via the Bitcoin protocol right now, and this is a fact. The protocol is readable and usable. Do we really have to spell this out? It appears that we do. The scale at which something is used does not have any bearing on its nature. There are many protocols some of which are no longer in wide use, like Telnet, yet they are all still protocols, and Wikipedia itself lists Bitcoin as a protocol:

OOPS!

Next another loud howler. Saying that the entire world should use one ledger is not the same as saying that the world “should store the entire English literary cannon in one book”. That is a very poor analogy. Saying the world should use one ledger is like saying the entire world should store every book on the internet
 and that is exactly what has happened, and only copyright maximalists and, surprise surprise, lawyers, think this is a bad thing.

Bitcoin absolutely is a new protocol on the internet; it is a new layer where what arbitrary address owns what entry can be stored and retrieved. There is nothing at all absurd about a world wide ledger if you characterize the idea correctly and understand precisely how it works. In order to do that, you cannot remain a computer illiterate.

Another example of computer illiteracy; comparing LAMP stacks to the Blockchain is absurd, and once again, shows that anyone can throw around terms without understanding what they mean. LAMP stands for Linux Apache MySQL and PHP, the operating system, web-server, database and scripting language respectively. These free tools are used to build essentially any application you can imagine from facebook on. MySQL is the software that many companies use to create and manage their databases, and this is the part that some anti-Blockchain men are trying to replace, not understanding what MySQL is, or the context it is used in.

The “B” Layer

LAMP can be used to interface with the Blockchain by adding another layer to it, the “B” layer. It means running a copy of the Bitcoin server daemon, and then accessing its functions from LAMP. In a “BLAMP” setup, you can write to the Blockchain and read from it, including other people’s entries, and so can anyone else using BLAMP. That means you can write a title to the Blockchain, and anyone anywhere can verify that the write occurred. With Multisig, you can also make an infallible claim that other verified persons or institutions have “signed off” on any transaction.

This is the correct model for anyone wanting to build applications with the Blockchain; not to create their own private, unverifiable, insecure, reversible*, broken Blockchain, but to add the new protocol layer in a BLAMP application, using the Blockchain as a global readable, writeable, infallible authentication layer for every sort of transaction imaginable.

Now consider this. The Blockchain is a,

fully public open ledger which everyone can see, and which nobody controls.

Do you consider this to be a feature or a problem? Depending on your profession, the fact that the Blockchain is not under the control of anybody and is neutral is a feature, unless your profession is the control and mediation of man’s legal interactions and obligations. The Bitcoin Blockchain does this, and it is a benefit to ordinary men at the expense of professional mediators.

What matters ultimately, is that all the entries on the Bitcoin Blockchain are unforgeable and immutable once written. And the implied lack of privacy by using the phrase “fully public” is easily addressed as I described above, by only storing the digital signatures of documents in the Blockchain, not the plain text documents themselves, the signatures being privately verifiable by GPG on the office side. In order to understand how that works, you need to be computer literate, and understand Public Key Cryptography, which obviously the author does not.

Once again saying,

It’s not possible to do XML/FpML or anything even remotely that complex on Bitcoin

shows the writer doesn’t understand how software is developed. Anything you require in terms of function can and is provided in the software that communicates with the Bitcoin daemon. That logic is something your company has to author, and once again, true entrepreneurs immediately see business opportunities in creating off the shelf software packages that do this work so that the authoring of these tools doesn’t need to be done in house.

We’ve heard this before.

That Old Chestnut?

Saying Bitcoin can’t scale is something only a man who is completely inexperienced would say. Google will show you (if you know what to ask for) that for decades people have been raising the Straw Man that X software product “doesn’t scale”; on Slashdot its been a running joke for many years, along with the other hilarious ones like “FreeBSD is Dying”. For someone who uses forced memes to try and sell software, this is particularly hilarious.

Once again, as I said before, objections to software are essentially irrational. The only people who make them are men who are trying to complete in a space, or who have some other nefarious agenda, like the MPAA/RIAA and their pathetic attempts to conflate BitTorrent with every crime imaginable.

The Verdict: Guilty. Wishful Thinking and FUD M’lud

Objections to software must be made with software, not fallacies. Wishful thinking cannot stop software. If you want to understand how software works, you must download it and use it, and read its documentation. There are no short cuts. Men who refuse to download and run software, but who continually raise objections to it all come from the same class of corporate professional class; they are computer illiterate jargon mongers, who try and cover their ignorance with bad college humour, fallacies and nonsense. Their appeal, limited or not, is irrelevant; only the software matters, and in this case its Bitcoin, which will not be stopped or derailed by any lawyer or faddish entrepreneur without insight.

The world has changed. The landscape is shifting with a quake that is way above 9 on the Richter scale. The edifices of the law and banks are being toppled by this quake, and in their place will be something better, faster, more widespread, secure and equitable, with a side effect of peace, the end of inflation and prosperity.

Now what sort of man wouldn’t want that?

*Etherium

Grilled rack of lamb, mushrooms, string beans. 2 large Westmalle Tripples:


Are bigger blocks better for bigger miners?

By Gavin Andresen

Posted May 22, 2015

After taking a break to help review some pull requests and take a trip to New York, I’m ready to continue tackling objections to increasing the block size:

Bigger blocks give bigger miners an economic advantage

This is a hard blog post to write; the arguments for why bigger blocks give bigger miners an economic advantage over smaller miners are highly technical (whenever I use the term “miner” in this post I really mean “solo miner or mining pool”).

To start: think about what happens when a miner gets lucky and finds a new block. They send it to their peers and immediately start working on finding another block on top of that new block.

Their peers will receive and validate the block, and, assuming validation passes, they then relay the block to their peers and start mining on top of the new block. The original miner is busy working during this whole validate-then-relay process; they have a head-start because they know about the new block before anybody else.

If all the miners have about the same hashing power, then the head-start doesn’t matter– they all benefit about the same amount.

If the miners don’t all have the same hashing power, then it gets complicated. Bigger miners have an advantage, but how much of an advantage?

I ran some simulations, and if blocks take 20 seconds to propagate, a network with a miner that has 30% of the hashing power will get 30.3% of the blocks.

To put that extra 0.3% in perspective, here are a couple of recent profitability calculation froms the Neighbourhood Pool Watch blog:

0.3% is in the noise, miner profitability varies much more than that from week to week.

We’ve just started to optimize block propagation for Bitcoin Core (see pull request #6077 or Matt Corallo’s high-speed relay network for example), and I’m confident that we will have 20MB blocks propagating across the network more quickly than 1MB blocks propagate today, eliminating even that small 0.3% advantage.

Longer term, I’m also confident smarter synchronization algorithms will get even much larger blocks propagating even more quickly.


All of the above assumes that miners are economically rational; that they’re not trying to mine blocks that destroy the network.

What if that is a bad assumption? Do 20MB blocks increase the risk that somebody with a lot of money to burn will try to use it to take down the Bitcoin network? Are there attacks possible with 20MB blocks that are not possible with 1MB blocks? Lets look at some possible attacks:

Miner purposely creates a block that takes several minutes to validate

If a miner can create blocks that takes other miners a very long time to validate, and the miner is trying to attack the network and has a lot of hashing power, it becomes easier for that miner to dominate the network to censor or roll-back transactions.

I find it hard to worry much about this attack, because I find it difficult to believe that an economically irrational attacker would have the resources to successfully mount an attack with expensive-to-validate blocks, but would not have the resources to simply mount a brute-force 51% or selfish-mining attack. I find all of the “invest a lot of money or effort to subvert mining” attacks implausible; mounting a sustained DDOS attacks against the network would probably be much less expensive and more effective.

Nevertheless, I will propose that 20MB blocks limit transactions to 100kilobytes to mitigate this theoretical attack (which we’ve known about for over two years now; see this discussion).

Miner is tricked into creating a block that takes a long time to propagate

Maybe you’re not worried about marginal, malicious miners, but you are worried that an honest miner might be tricked into creating a block that propagates slowly.

For example, an attacker might create 20 megabytes worth of double-spent transactions, and give the network one set of spends but feed a target miner the other set of spends. That will make the miner spend more time validating blocks that are found by the network, and will make the miner’s blocks propagate more slowly, because normally a block is full of transactions that the network has already seen and validated.

I’m not worried about this attack, because I’ve already benchmarked how long it takes to validate a 20MB block full of never-before-seen transactions– it takes about twenty seconds, which is simply not a big deal with a 600-second block time. And Bitcoin Core already has rules in place to prevent attackers from giving miners transactions that take a very long time to validate.

If the attacker’s goal is to put the honest miner out of business, this is a poor attack; it will decrease the number of blocks found by the honest miner by a tiny fraction of a percent.

If the attacker’s goal is to pull off a successful 0-confirmation double-spend, this is also a very poor attack. The transaction fees required to stuff a 20MB block full of the attacker’s transactions will easily overwhelm any marginal advantage they might gain from causing a slower-to-propagate-than-normal block.

Marginal miners are left behind because they can’t afford


I covered the cost of running a full node in a previous post. Even without any further optimizations (and we are busy optimizing) it is not expensive to run a node capable of validating 20MB blocks.

What am I missing?

I was worried that I would find out 20MB blocks would give big miners a significant advantage before I started working on this post a week ago. I’m not worried any more, but please send me email if there is something I’ve missed.


Bigger blocks another way?

By Gavin Andresen

Posted May 27, 2015

Get ten engineers on a mailing list, ask them to solve a big problem, and you’ll probably end up with eleven different solutions.

Even if people agree that the one megabyte block size limit should be raised (and almost everybody does agree that it should be raised at some point), agreeing how is difficult.

I’m not going to try to list all of the proposals for how to increase the size; there are too many of them, and I’d just manage to miss somebody’s favorite (and end up with a wall-of-text blog post that nobody would read). But I will write about one popular family of ideas, and will explain the reasoning behind the twenty-megabyte proposal.

Dynamic limits

One very popular idea is to implement a dynamic limit, based on historical block sizes.

The details vary: how often should the maximum size be adjusted? Every block? Every difficulty adjustment? How much of an increase should be allowed? 50% bigger? Double?

If the block size limit is just a denial-of-service prevention measure (preventing a big, evil miner from producing an 11 gigabyte block that the rest of the network is forced to validate), then any of these proposals will work. Engineers could bike-shed the parameter choice to death, but I like the idea of a simple dynamic limit on the maximum allowed size.

There are more complicated proposals for a dynamic block size limit that (for example) involve proof-of-stake voting or linking the maximum block size to the mining reward and/or the amount of fees in a block. I like them less than a simple solution, because consensus-critical code must be absolutely correct, and every additional line of code is another opportunity for a chain-splitting bug to slip through code review and testing.

So why a fixed 20MB ?

Some of the core committers don’t like the idea of giving miners the ability to collude (either intentionally or as a response to economic incentives) to increase the block size without limit.

For example, Gregory Maxwell wrote:

Do people (other than Mike Hearn; I guess) think a future where everyone depends on a small number of “Google scale” node operations for the system is actually okay? (I think not, and if so we’re never going to agree–but it can be helpful to understand when a disagreement is ideological).

Greg really should have said “other than Mike Hearn and Satoshi”:

Long before the network gets anywhere near as large as that, it would be safe for users to use Simplified Payment Verification (section 8) to check for double spending, which only requires having the chain of block headers, or about 12KB per day. Only people trying to create new coins would need to run network nodes. At first, most users would run network nodes, but as the network grows beyond a certain point, it would be left more and more to specialists with server farms of specialized hardware.

I struggle with wanting to stay true to Satoshi’s original vision of Bitcoin as a system that scales up to Visa-level transaction volume versus maintaining consensus with the other core committers, who obviously have a different vision for how the system should grow. Twenty megabytes is meant to be a compromise– large enough to support transaction volume for the next couple of years, but small enough to make sure volunteer open source developers can continue to process the entire chain on their home Internet connection or on a modest virtual private server.

If compromise isn’t possible, then a simple dynamic limit intended just to prevent DoS attacks is a very attractive long-term solution.


Hashing assurance contracts

By Mike Hearn

Posted May 27, 2015

A proposed model for post-inflation Bitcoin mining

Bitcoin Mining Farm / Marko Ahtisaari CC-BY 2.0

One common objection to raising the block size limit is that it’s unclear how miners will be funded when Bitcoin’s money supply formula finally drops to zero. To quote Thomas Voegtlin of Electrum,

The discussion on block size increase has brought some attention to the

other elephant in the room: Long-term mining incentives 

. proponents of the block size increase are conservative; they are trying to preserve the current regime, which is known to work, instead of letting the network enter uncharted territory.

My problem is that this seems to lacks a vision 
.. So here is my question, to both proponents and opponents of a block size increase:

What steady-state regime do you envision for Bitcoin, and what is is your plan to get there?

Mining is currently funded by the creation of new bitcoins. Satoshi’s inflation formula is an astonishingly long term piece of planning — inflation halves every four years, so there is a very long time before the supply of coins dries up.

Gavin Andresen points out that attempting to guess what will happen 20 or 30 years from now is optimistic, at best. And I fully agree. I think we need bigger blocks regardless of whether you agree with this article or not.

Still, it’s nice to have at least some answer to this question, even if the best laid plans tend to get abandoned much faster than is relevant here.

So this article describes my proposed solution: hashing assurance contracts.

The problem

Satoshi’s original idea is simple: as inflation dries up, people should start attaching transaction fees to make up the difference.

Unfortunately there’s a compelling argument that this might not work. The block chain is what economists call a public good. From Wikipedia,

A

public good

is a

good

that is both

non-excludable

and

non-rivalrous

in that individuals cannot be effectively excluded from use, and where use by one individual does not reduce availability to others.

Put in plain English, the block chain is like a lighthouse. It costs money to build and keep the lighthouse operational, but once built there’s no way to stop ships from seeing the light. Thus there is a question of who pays for it. You cannot charge sailors because there’s no way to create a bright light that is invisible to freeloaders.

It may at first seem that the block chain isn’t like a lighthouse, because miners can refuse to mine a transaction that doesn’t have a high enough fee. But it doesn’t work like that: even if one miner refuses to accept a transaction into the chain, they must still process it if it is included by another.

So miners face the following conundrum. The cost of hashing is unconnected from how many transactions are in a block, so taking a transaction and collecting its fees costs you nearly nothing. You see a transaction that has a fee a bit lower than you’d ideally like, but still not zero. You could keep it around but not put it in a block, as a signal to the market that you want higher fees. But then you’re leaving money on the table. When another miner decides he’s OK with the lower price, you will have to process the transaction anyway, therefore, you might as well just take it.

This leads people to observe that they can attach a lower fee than they were doing, and transactions still work pretty much OK. Sure, they might take a bit longer to confirm, but there are really only two speeds that matter in payments: instant and not instant. If your transaction becomes a little bit more “not instant” and takes 40 minutes instead of 10, in practice that won’t affect the setup of most business payments much. So fee prices might enter some kind of downward spiral. And as mining becomes less profitable, miners will shut down hardware in order to regain their previous margins. Hash rate will fall. Wash, rinse, repeat.

Downward spiral. Really?

Well 

. maybe. Nobody knows. The argument above relies on the idea that people won’t pay to get faster confirmations, and miners won’t be able to resist including transactions no matter how little fee they attach.

This seems plausible, in that it could happen, but we don’t know it will work out that way. It may be that actually many people do care about the difference between waiting 1 block or 10, and that miners happily set a high fee threshold and stick to it (effectively constraining supply).

This article is about what happens if the downward spiral situation does play out.

How much is too much?

One key problem here is there’s no amount of hashing that’s obviously just right. Is there too much mining going on today? Or too little? How would we even know?

The simplest answer is to measure double spending fraud. If double spending due to malicious miners forking the chain is too high then valuable people will drop out of the Bitcoin economy. In that case we can say there must be too little hashing. Of course, we hit the problem of what “valuable people” means, but let’s shelve that for now.

Currently we’re not seeing malicious miners double spending by forking the chain. So there’s too much effort going into mining. That matches our intuition — it’s hard not to see mining farms like in the picture above and wonder if the tiny Bitcoin economy really justifies it. We didn’t see double spending when mining was at half the current level, or a quarter, or even before that. Currently the Bitcoin community is being effectively taxed about $832,000 per day 
. just to support mining! If this was being paid with transaction fees each Bitcoin payment would cost about $7.50, which is uncompetitive.

We’re not spending so much on mining because we really need it. It’s because printing money distorts behaviour. If you connect money printing to bank lending then you get too many mortgages and then a housing bubble. If you connect it to arbitrary mathematical puzzles, you get too much effort put into solving them.

If Bitcoin were a centrally planned economy we’d probably tamper with the inflation formula at this point to try and reduce the waste. But that’d just bias the system more heavily towards early adopters. Every choice has a cost — so may as well stick with the devil we know, safe in the knowledge that Satoshi made inflation a temporary problem.

But eventually the ball-and-chain of the inflation formula will disappear, and the choice of how much mining we need will be up to us. Then what?

Who cares about blocks, really?

A slippery aspect of the Bitcoin protocol is that whilst it’s the receiver of a transaction that cares about double spending risk, it’s the sender who pays the fee.

Different transactions carry different levels of fraud risk. So different participants want different amounts of mining. In that spectrum there should be some kind of level that’s acceptable to the largest number of people, but how to discover what that is?

A simple algorithm is as follows:

  1. Do some trading.
  2. If you experience no double spending, lower the amount of money you’re contributing towards hashing.
  3. Once you start to see significant losses due to double spending, raise it again until the losses are acceptable.

That is probably a bit too simple — it may be better to lose some stuff to fraud than pay more towards mining. But you get the idea.

The sticking point is the “money you’re contributing” bit. Contributing how, exactly? If you don’t contribute your transactions will still clear, so why would you do that? If you do, your competitors will ride for free.

In a nutshell, this is the problem of funding public goods.

Assurance contracts

An assurance contract, more often called a crowdfund, is supposed to be a solution to the problem of funding public goods. Recall the lighthouse. We solve it like this:

  1. Someone with good reputation decides that a lighthouse would be useful, and becomes an entrepreneur.
  2. He/she calculates the cost of building it and asks every passing ship to pledge to the project. The pledge is only claimed if and when enough money is raised.
  3. The size of the pledge is chosen by the pledgor, based on how much they want it and how much they think other people might contribute.

If most sailors don’t really care in the end, the project won’t get funded. If they care but think they can get away with letting their competitors fund it, the project may well end up not funded at all. Eventually some of them will break the deadlock.

This is of course the Kickstarter model. And there’s already a way to do it on the block chain using Bitcoin protocol features, using an app I wrote called (guess what?) Lighthouse.

Can we apply similar technology to the problem of funding mining? I think the answer might be yes. Here’s how it’d work.

HACs (hashing assurance contracts)

We start by creating a new, independent peer to peer network. This network links people with an interest in seeing mining happen i.e. merchants, exchanges etc. Anyone can use the network to throw out a contract for N BTC and solicit pledges for it. Once the bitcoins are gathered, they are allocated to miners via pure-fee paying transactions.

Take a merchant that’s in the business of moving gold. They need a lot of mining to be viable: let’s say 1 petahash. They know from experience that with anything less than that, there’s some malicious miner out there that will fork the chain in order to double spend against them. They know that it costs at least 1 BTC per block to incentivise that much mining. So, they go onto the new p2p network and look for a contract for that much. If one exists (or is close enough), they join it by pledging. If none exists, they create one.

The technical details aren’t exciting so I’ll gloss over them here, but suffice it to say the Bitcoin protocol (with some small extensions) can be used to do all this in a trust-free manner. You don’t have to know who you are co-operating with to fund the mining. You’d just run a simple app that prints an address in a local wallet. You’d specify how much mining you need, and how much you’re willing to contribute, and then fill up the apps wallet. It would go off and autonomously spend your money to try to make that happen. When it ran out, it’d send you an email so you could fill it back up again. Contributing to mining would become a cost of business. If enough people did it, the cost could be fairly low.

There might be multiple contracts outstanding simultaneously.

Say our gold merchant needs at least 1 BTC’s worth of mining. But another needs less, they only need 0.5 BTC’s worth. The second merchant doesn’t care which contract completes: either will do. Luckily, the assurance contract protocol allows the second merchant to double pledge the same money: he can take part in any contract higher than his required amount, and whichever contract completes automatically invalidates the pledge to all the others.

A sufficiently smart mining agent might use all sorts of market theories to try and get people the best deal. Out of all the individual agents interacting in a p2p free market soup, some kind of consensus on the “right” amount of mining should appear, based on how much people are willing to pay. Transaction fees are still used, but only a few transactions will carry huge fees. The rest may contain fees close to zero, or no fee at all. Miners would include them anyway either to claim the free fee money and/or because the circulation of those coins is needed for merchants to be able to build the assurance contracts in the first place.

Conclusion

People want mining and they want to work together to get it. I think a decentralised P2P assurance contract system would be a neat way to solve this in the distant future, but in case it doesn’t work for some reason other ways would be found.


Categories:

Updated: