Stripping down Bitcoin
Bitcoin mining is incentivized by block rewards and by transaction fees. Historically, most miner revenue has come from the block rewards but Bitcoin is designed to phase out these rewards over time. Recently, a transaction fee market has developed and transaction fees have risen very quickly, to the point where transaction fees now make up over 15% of miner revenue.
Let’s examine the case where transaction fees make up all mining revenue. To simplify, we’ll also restrict blocks to a single transaction of 1KB.
In this case, there’s no longer a need for transaction fees because the originator of the transaction can supply the proof-of-work directly instead of paying a miner to do it. Indeed, miners are now superfluous.
Since we no longer care about mining rewards and transaction fees, this core layer does not have to know about money. It’s simply a system for arriving at consensus on the ordering of messages. The messages can have any arbitrary information up to 1KB in size, the protocol doesn’t care. It’s easy to build money, scripting, and other layers on top of this ordering but the core layer doesn’t need to know about those things. Getting rid of miners is momentous because they are middlemen, they take a cut, and we’ve already seen that they wield considerable power over the system. They also make Bitcoin harder to analyze.
One transaction every ten minutes doesn’t seem very useful. What if, instead of a blockchain, we use a blockdag? A blockdag is like a blockchain but it allows for lots of transactions to be processed at the same time, instead of requiring transactions to be processed one at a time. There are already proposals that would allow thousands of transactions per second. (Blockdags could be problematic for single transaction blocks because they require larger header overhead, so further research is needed.)
The important tunable parameter would now be targeted transactions per second, which we’ll call throughput. Since we’re talking about a fundamental parameter, we know there must be tradeoffs. If we set a high throughput, each user will have to process lots of transactions each second in order to successfully submit a new transaction and in order to verify transactions. This means only users with sufficient network bandwidth and computing power will be able to participate.
On the other hand, if we set a low throughput, only users with high value transactions will be able to participate. If we set the throughput much too low, where the transaction proof-of-work cost is higher than the monopoly price of executing a transaction, then total proof-of-work will start to drop and the security of the blockdag will fall.
Sounds a lot like Bitcoin’s current woes, doesn’t it? With this simplified version, it’s easier to see that proof-of-work and block size are just spam protection so that users aren’t burdened with more transactions than they can handle and so that dishonest players can’t easily attack.
Bitcoin is notoriously hard to analyze. Perhaps by removing some of the moving parts we can gain a better understanding of this remarkable technological achievement and improve upon the pioneering implementation.