2015-03-25

An open letter to Senator Ringuette

Dear Senator,

Recently I revisited some recordings of the Senate hearings on Digital Currency from 2014-10-02. I appreciate the number of very insightful questions you have raised to the panel - it was a pleasure hearing both them and the answers to them.

During the hearing you brought up the fact that Canada Post holds a bank charter in Canada, and that the company is in need of extra revenue stream. I would like to address some of the possibilities that this fact brings to both the world of Bitcoin-related companies in Canada, as well as the wider Canadian population as a whole.

In the modern world, there are a number of technologies and services that have emerged in the recent years that are essential in everyday lives. Many people would count access to the Internet as well as banking to be among them. I will leave the discussion of the former and focus on the latter.

Efficient banking as well as access to digital payment methods is needed for virtually every business and is prevalent in personal lives of many people. However, as was illustrated multiple times in the hearing by Michael Perklin, all of the banks are private companies and have the right to refuse business to anyone they choose without any legal reason. This problem is not unique to the Bitcoin world - there are a lot of banks that discriminate against people with poor credit scores or dealing in "taboo" businesses. Such people essentially become "unbankable" - unable to take part in the modern economy that is largely driven by online purchases and digital payments.

If the Canadian Government decided to address this issue by offering even the most basic banking services through Canada Post indiscriminately to anyone in Canada, it would not only help the Bitcoin businesses, but also many of the disenfranchised people living in our Country.

I know Canada is quite open to innovation. The former MintChip project by Canadian Mint, or the possibly future project of Bank of Canada are a clear indicator that the Canadian Government is interested in the digital currency space. I do believe that no matter which direction projects like these go, Canada Post will be playing an integral role.

The current "Big Five" banks hold about 920 to 3'330 branches each in Canada, while Canada Post has over 6'000 post offices. Similarly, a lot of those offices are open for twelve or more hours per day, while a number of bank branches are open for less than eight hours per day. As such, Canada Post is an ideal solution for money deposits and withdrawals, as well as everything else that is needed (performing identity verification for example) - the post offices should be accessible to every citizen.

There are of course many other services Canada Post could offer to help with payments, such as delivering money directly to the recipient's nearest post office (as is the case with Money Orders), or perhaps even directly to their home address.

However, from what I learned talking with a few Bitcoin businesses that require efficient, traditional banking for the core of their business, all that matters to them is to be able to receive money from their customers, be able to pay their suppliers efficiently, have confidence that their bank account won't get shut down, and have all of this at an affordable rate.

Even this little is too much for a lot of banks. I have done some research on international banking for Bitcoin businesses and I have seen Canadian companies banking in Czech Republic, or companies from USA banking in Malta not because these banks are the best, but because they can't open a local bank account.

As such, I am grateful to you Senator for bringing this issue up and I remain hopeful that the future will give us a more inclusive banking system, whether it is in Canadian Dollars, or Bitcoin. I am open to any follow-up discussion, questions or general consulting you or anyone else from the Canadian Government might have.

Sincerely yours,
Piotr Piasecki.

2015-03-07

Governments - do your job. Give us unique digital signatures!

This week at Decentral Vancouver we had an interesting discussion with Gene Vayngrib, Greg Meredith and Katryna Dow (the full video of the hangout can be viewed here). We talked about the concept of decentralized identities - how people can build up online identities and trust to be able to conduct online transactions with unknown parties with minimized risk of scams. This later turned into a discussion of sybil attacks and how governments might actually be useful for something. So, lets start from the beginning...

Online identities - the current model


At the moment, online identities can be viewed as a collection of pseudonyms - it's rather hard to tell if say, ThePiachu on Twitter is the same person as ThePiachu on Reddit, etc. Similarly, it's hard to tell who this person is in real life. If we use OAuth and say, sign into multiple websites with Facebook / Google Plus / whatever, at least we can know that one entity is behind all of the accounts.

Now, why is any of this important? Well, a lot of online interactions depend on user's reputation. Everyone wants to know that the person they are talking to is the same person they talked to last time on a different website, etc. Moreover, this persistent reputation can be useful to determine how likely a person is to scam you. Building up years of online presence takes a lot of effort, so the person would only try to scam and lose the reputation if they could earn more than it would cost to build up another pseudonym. In contrast, an hour old account with no history is cheap to burn to scam, defame or troll someone online.

Decentralized identities


One could describe decentralized identities as a decentralized extension of the OAuth model. With projects like BitID or Meeco, we would be in control of our sign-in identities, just like we control our Bitcoin addresses. We can create an identity on our computer, use it to sign into some websites with our Bitcoin address and thus start building our reputation, similar to the current model. The only problem is, such identities would be vulnerable to theft. For example, if I go by the address of 1PiachuEVn6sh52Ez7o6Fymvw54qvQ4RBm and someone gets my private key, I can no longer prove that I am the original owner of this address, nor that I authorize a new address to be my identity from now on.

Moreover, there are some important use cases that this model doesn't solve. If anyone can create any number of identities, you cannot use those identities to do democratic voting, use them to distribute universal basic income to each person in a fair manner, etc. For this, we need to resort to what a lot of crypto-anarchists hate - the government.

Governments and unique identities


Like it or not, the governments (or at least some of them in the western world) do a few things efficiently. One of such things, is verifying that a given person is the person they are claiming to be. The first thing any company does when they need to verify your identity is to ask for your government ID. While they aren't 100% fraud-proof, it's pretty reasonable to assume a government can ensure:

  • that each person has a unique number assigned to them
    • the number is not shared between multiple people
    • no person has more than one such number
    • if the number ever gets stolen, it will be tracked
  • whether the person is still alive or has already died is tracked with reasonable accuracy
Now, if we took these capabilities and stick them on some hardware device say like this one:



We can solve a lot of problems quite efficiently.

Digital ID - KYC for the digital age


How a Digital ID might look:


  1. A government identifies a person and issues them an ID with a chip
    1. The ID holds a private key, performs signature on request and dispenses the public key as needed
    2. The ID is not wirelessly accessible (to avoid problems like this)
    3. They will probably need to issue them the hardware interface to use this ID online - probably some USB dongle
  2. The government keeps a record of the ID and the status of the person (alive, deceased) and the ID itself (active, stolen, replaced)
  3. The government opens up a public API for anyone to request only the most basic data:
    1. "Is ID X stolen?" - yes/no
    2. "Does ID X belong to anyone?" - yes/no
    3. "Is ID X valid?" - yes/no
    4. "List invalidated ID numbers from last year"
  4. The API responds in a cryptographically verifiable way
    1. The response is signed by the government's private key - no other party can forge the signature
    2. The response includes the request in question, validating that the inquiry was made (so the requesting party can prove they did their due diligence)
    3. The responses are aggregated into some factom-like database on the blockchain, meaning that all requests are auditable
  5. If a person ever loses their ID, the government will replace the ID with a new ID and record that the person's ID was changed and to what ("ID #245 got replaced by ID #9472")

Now, what good does this do? Quite a lot actually.

First of all, KYC becomes fully digital. No more ID scanning, photo taking, etc. A service like Kraken can just ask - "Please input your ID number here, and please verify your identity by digitally signing this verification text...". The service quickly learns that the person owns that particular ID (through challenge-response), and can take that ID to the government and ask: "A person with this ID requests KYC. Is this person in your database? Is the ID valid? Everything OK?". After a prompt positive response, the service is sure they have fulfilled their KYC requirements. If a government ever asks - "who is this person?", the service can give them their ID and the government will already know who they are looking for.

Secondly, identity theft is diminished. In order for someone to steal your identity, they would need to have access to your ID card. If your ID card gets stolen, you report it to the government and they will:
  • give you a new ID card with a new keypair
  • invalidate the old one
  • keep a record of the change for everyone to poll
This means that any digital service can periodically get the list of invalidated IDs and cross-check it against their own database. If they match, the account can be frozen, or updated (in case the ID gets replaced).

Thirdly, any service that relies on globally unique real-world identities (such as democratic voting) can utilize this system to solve the problem of sybil attacks. Similarly, if you want to build communities of real people, not just online aliases (say, LinkedIn), this also addresses your needs.

Lastly, this also solves the problem of scams. If you are unsure who you are dealing with, get their public key, verify their identity through challenge-response, and if worse comes to worse, you can pinpoint to the police who was it that did you wrong.

Conclusions


While a lot of people might oppose the governments interfering too much with the Internet through the actions of NSA and the like, there are still good for some things. If leveraged correctly, the governments can help solve one of the hard problems in cryptocurrency - unique user verification. If implemented correctly, this can make the burden of following KYC requirements cost next to nothing.

2015-03-02

Sustainable Crypto Universal Basic Income

Universal basic income (UBI) is an interesting experiment. For those of you unfamiliar with the idea, it's "a form of social security system in which all citizens  or residents of a country regularly receive an unconditional sum of money, either from a government or some other public institution, in addition to any income received from elsewhere.". In other words, every person is guaranteed to receive a specific sum of money each month for just being alive. While this might trigger Red Scare in some people, lets take a free-thinker approach to this and explore this concept further in the concept of cryptocurrencies.

N-per-person coins


The first step towards discussion of Crypto UBI, is handling one of the hard problem in cryptocurrencies that relates to n-per-person coins. Vitalik created an excellent video on this topic (part relevant to our discussion starts around here).

When it comes to cryptocurrencies, a lot of people debate how the coins should be distributed. Bitcoin uses proof of work to distribute its newly minted coins to the miners. There are a lot of other distribution models - proof-of-burn (Counterparty), pre-purchase (Mastercoin), centralized token creation (Ripple), but probably the hardest problem to tackle comes from "n-per-person coins", sometimes also called national coins.

Auroracoin is perhaps the most well known example of such a coin. It aims to distribute a large portion of its coins to the population of Iceland, where each Icelander would be eligible to receive a certain amount of coins. Doing this in a centralized fashion is an achievable process - there are companies offering KYC services that can accomplish this, and any willing government could similarly perform such an undertaking. Solving the same problem in a purely cryptographical manner, however, is an open problem.

Unfortunately, I don't see any clear way of solving the issue of uniquely identifying a person in an objective and privacy-friendly manner, therefore we would have to assume a central or distributed ID verification party would have to be involved.

The problem of inflation


Another big issue that needs to be addressed by anyone talking about Universal Basic Income is the problem of inflation. If we assume everyone is getting X amount of money each month, that money has to come from somewhere. It can be created in a form of new money, but that would expand the money supply by a large amount each month. Alternatively, we could look at taxes or some other clever method of addressing the issue.

Lets say that we want to be clever and solve this issue in a new way. To prevent inflation, we need a system that:


  • Can create new money each period easily
  • Can guarantee there will be a cap on the money supply


While initially these restrictions appear to be excluding one another, it is possible to solve them by just using one trick:

Demurrage


Demurrage is a cost associated with holding currency over a given period. In other words, you lose a certain percentage of your money each month, year, or other period measurement. If we impose a 1% per month demurrage on holding money and give a person $1000 per month, he would pay $10 the first month. The second month, he would get another $1000, pay $10 for that money, but also pay $9.9 for the $990 he has from last month. Eventually, when the person has $100k saved up, he would be receiving $1000 and paying $1000 in a month and reach an equilibrium.

A more general formula is this: If you give away $X in a period and demurrage takes away Y%, your money supply will reach $ X/Y. For 1%, it's 100*X, for 10% it's 10*X, etc.

In other words, demurrage allows us to both give everyone their Universal Basic Income and ensure a fixed money supply cap. 

The best part is, we can achieve this functionality in a cryptocurrency today. Ripple has supported demurrage for awhile, and more systems could similarly implement their own version of demurrage as needed.

World with Crypto UBI


Now that we have discussed the two components needed to create a sustainable Crypto Universal Basic Income system (unique user identification and a demurrage currency), we can ponder how a world that uses such a currency could look like.

Motivation to work


Like it or not, we are headed for a more and more automated world where human labour might not be needed (for better  or for worse). In a post-scarcity economy, UBI would probably fit in really well. In a dystopian future, it probably won't be welcome. However, lets focus on the here and now - why would anyone want to work if they received money for free?

As with any currency, it would only have value in relation to what you can buy with it. In a current world, what you would get from UBI wouldn't probably stretch much. It might be comparable to a welfare cheque - enough to survive, but without any luxuries. People would have the same incentive to work as they do now - to earn more and be able to afford more. The added benefit would come from being able to fall-back on UBI as needed.

If a lot of people decided not to work, then the value of labour would go up. People would have more inventive to work, and eventually we would find some balance of how much the currency is worth and how much labour is worth.

Catering to the basic income


Now, knowing that everyone, no matter who they are, can afford to spend X amount per month would mean anyone supplying goods and services could aim for that income demographic. You could have housing built specifically for people living only on UBI, or have restaurants to serve affordable food. Such catering would once again depend on how many people live only off UBI - the more there are, the more the prices will cater to them.

Savings and loans


Savings and loans would be interesting in UBI economy. Since by default demurrage would offer negative interest rate on holding the currency, banks could even offer zero interest rate and have people interested in saving with them. Similarly, loans could be given out at zero interest rate as well (well, not at the same time as zero interest rate saving perhaps), because this way the banks would be able to access the same amount of money in the future without suffering from the demurrage. Moreover, they would know that worst come to worse, the person in question would be able to make some payments on the debt from their guaranteed income.

Redistribution of wealth - an equalizer


The first noticeable thing about a UBI economy would be the wealth redistribution. Since everyone would be paying demurrage based on the amount of money they hold, obviously richer people would have to pay proportionally more. In order to keep rich, they would have to work harder and harder to maintain their elevated savings in comparison to other people. This would certainly be an equalizer in the society.

Alternative savings currencies


Understandably, some people will want to move their wealth from the demurrage UBI currency. Some might go into commodities, but those by themselves have a cost associated with storing them. Using Bitcoin or perhaps some other currencies would probably be a preferable option. This would make UBI currency less valuable, but if you consider how some countries engage in a "beggar thy neighbour" and currency wars approaches, this could make the country that uses UBI a cheap source of goods on the global market.

Public projects


Another advantage of having demurrage built into a currency is that the system will naturally smooth out any extra money that is thrown into the system. This means that a country using UBI can finance public projects easily by creating more currency for just this purpose and paying the appropriate people to undertake it. This could mean building public green spaces, paying for healthcare and education, or anything else that is needed.

Conclusions


While we don't have a clear roadmap of how to achieve Crypto Universal Basic Income on a same decentralized level as Bitcoin, a centralized or semi-centralized solution that achieves a stable money supply is possible. While any country switching over to pure UBI approach might suffer greatly from the disruption of its current economy, perhaps creating a ground-up Crypto UBI might create an organic growth into an acceptable monetary system.