author: Vitalik Buterin
published: 2011-08-15 13:50:20 UTC
One of the unique features of Bitcoin is that it enforces certain features of social organization in code - the inflation rate is precisely controlled in code, and it is impossible for anyone to force a different inflation rate into existence. Namecoin enforces the cost of domain names in code, although this is a temporary measure, its main purpose being to prevent early adopters from grabbing all the domain names. Naturally, some people wonder what other rules can be enforced by the currency protocol, and among European users the most commonly discussed option is integrated taxation, for the purpose of paying for public or social goods, or for providing everyone with a basic income. The ideology behind this is a noble one: the aim is to implement a voluntary social democracy, where instead of people being united by a government dominating a land area people are united in an online community, or phyle based around a common currency. One of the arguments raised against people complaining against taxation is "don't like it? Then don't live in society", and with taxes based around online communities one quite literally has the choice of opting out of society or joining a different one (for further discussion on the ideological side of the evolution and voluntarization of government in the 21st century, nationcrafting.com is a good place to start). If one wishes to have a tax in a community based around a common currency, it seems logical to build the tax right into the currency, and the rest of the article will discuss the implementation of this.
There are two sides to the implementation problem: collection and distribution. Tax collection can be done in two ways: transaction fees and indirect taxation through inflation. Bitcoin itself uses both to fund the maintennance of the network, so the ideas are clearly feasible. However, inflation tax has its limits: if inflation is too high, there is a risk of hyperinflation and resulting currency collapse. If the economy is progressing quickly, a higher rate of monetary inflation is possible - monetarists often advocate inflation equal to the growth of real GDP, but as I described previously there are serious difficulties in implementing this in code, and such a system would be undesirable since revenues would be proportional to economic growth, drying up just when they are needed most.
Transaction fees have their limits - if the transaction fees are too high, people will stop using the currency directly and will instead perform transactions within bank or bank-like services like exchanges. If the banks in question do not keep a 100% reserve, this activity would increase the effective money supply and, if there is also an inflation tax, this could also push the currency toward hyperinflation. As seen with credit cards and Paypal, people are willing to accept transaction fees of a few percent, but this is likely only because these services are currently the only widely accepted way to transfer money over the internet; the revenues that can be squeezed out of transaction fees are even smaller than those from an inflation tax.
Thus, collection is possible, but it can only support a revenue of a few percent of the economy's GDP. A 'government' that provides services to an internet-based community could afford to be much smaller, having no land area that requires a military defending, no physical infrastructure spending, and many other reductions in expenses, so a small percentage may indeed be enough, but it is not possible to get anywhere near the amount that Europe's existing social democracies collect - over 50% in a few cases.
The larger problem, however, is distribution. There are two types of proposals put into place here: for the revenues to get funneled into services, or for there to be a basic income automatially provided to everyone. The plan to implement the former generally involves a forum-like system where people can submit projects, like scientific research or maintaining a public health care system, and other people can upvote the projects. Funds will be distributed to the most popular projects - essentially an online democracy. The implementation of the latter is simple - send an equal share of the allotted revenue to each identity.
The problem that both of these encounter, however, is the precise nature of an "identity". One of the core features of online interaction as opposed to physical interaction, and of Bitcoin in particular, is pseudonymity, ie. the ability for an individual to have as many identities as he wants. If funds are distributed equally to bitcoin addresses, there will arise a group of "address miners" who spend all their computer time generating addresses, and these people will receive 99%+ of the revenue or votes. The Bitcoin faucet ran into this problem, and was forced to require an email address to receive bitcoins. Even this system only survives because the payout is so small - only 0.001 BTC. An identity could be more complex - a web of trust account or an email account are both possibilities, and as online interaction develops so will the idea of an identity. There could even be a system of some sort that mandates a certain level of public participation for an identity to count, so that they could not be automatically generated. However, the exact same problem, although in a less extreme form, remains. The "least worst" solution is the public participation minimum - looking at an identity's social and community activity - but even here people who participate twice as much could potentially get twice as many basic income shares and/or votes, making the system not a democracy but a reward for some kind of public participation, and there are substantial difficulties in creating an evaluation system. The only way out of this problem is physical identity, verified by some sort of centralized physical presence.
There is a second problem that arises if there exist multiple such communities - people could still get an identity in each and every one of them, under a different name in each one if necessary, so if the requirement of democracy is to be preserved there would need to be a central system overseeing all the communities to prevent such activity. In the end, some form of physical verification is necessary for such communities to function. Online forums with upvotes only work because the results do not influence anything important - as the Bitcoin security crisis has shown, the introduction of a profit motive changes everything.
However, the fact that a physical verifier is present does not mean that the system cannot be anonymous - it is possible to implement a secret ballot in code, where even the verifier does not know what the user voted for. The solution involves blind signing. Blind signatures are a way that allows the bank to sign the certificate without knowing what the message signed or even the signature itself looks like; a more detailed description can be found here, and a description of how blind signing would work in an anonymous bitcoin tumbler system can be found in this article. The algorithm, as described here, works like this:
First the voter prepares a voted ballot, and blinds it. This prepared package is sent afterwards using SSL secured channel to the validator entity. The validator verifies whether the voter is registered and has not yet voted and decides if the ballot is valid or not. If the ballot is valid, the tallier signs in blind the ballot and returns it to the voter through the SSL secured channel. The next step is that the voter removes the blinding factor, revealing a ballot signed by the validator. The voter then sends the resultant signed ballot to the tallier. The tallier checks the signature on the ballot and if the ballot is valid, the tallier records the vote.
In this system, neither the validator nor the tallier know who each person voted for. The key idea is that the identities are not anonymous, but because the vote is blinded before it is sent to be signed the actions of the identities are anonymous - no one knows what each person did. Thus, although the system becomes centralized, it is possible to implement an anonymous democratic distribution system. This is likely the closest that we can get to an anonymous online democracy, although it requires identities to be registered with a physical presence, thus arguably sacrificing some of what is sought with online decentralization. But once an identity is registered, everything else can happen online and anonymously, with blind signatures being used in creative ways to simultaneously ensure anonymity and everyone being able to only receive from the system once.
In order for Bitcoin, like any other product that is heavily reliant on network effects, to reach mainstream usage, it must neceessarily grow in stages. There are two models for this type of growth...
A world of electronic currency as it stands has allowed for an unpredecented amount of phyisical decentralization in modern organizations. A single web company might have some employees in one city...