2014-10-29

For the unbankables

When someone starts learning about Bitcoin, they usually gain a lot of knowledge in a number of tangential topics as well. Public key cryptography, data security, application specific integrated circuits and even different schools of economics suddenly become topics related to one another. However, the topic that comes up the most often appears to be the banking system and its many inadequacies.

The banking system when it works properly is very useful. It allows one access to one's savings from anywhere around the world and to send money to anyone else in an expedient fashion. Virtually anyone in the developed world has a bank account and people using credit cards for their purchases is a common sight. However, we don't live in an ideal world, and there are many ways the banking systems fails a lot of people.

The biggest problem with the current banking system is how reliant people are on it. When you get paid, you receive your money in a form of a cheque or a wire transfer. When you have to pay your rent, you usually write a cheque. When you're making a big purchase, you don't bring a wallet of cash with you, but instead use a credit card. Travelling with cash is a liability, so we use the cards as well. A lot of our shopping is done online, and Amazon doesn't take cash...

The unbankables


Now, imagine if one day you were cut out from the system entirely. How much of a struggle it would be to function as before? Well, there are a lot of people that struggle with this issue:


We have to remember - banks are private businesses and they can boot you out of the system for any reason. Selling guns with a license? Can't have that. Licensed Medical Marijuana Producer? Nope. Adult film actress? Go away. Something Bitcoin related? We don't want to do business with you.

Banks have an agenda


Since banks are private companies, they can close the account of anyone that doesn't fit with their agenda. That's all well and good for a company to pick who they want to work with, but the big problem is that this damages a lot of people and businesses.

Perhaps it is time to start seeing banking in another light? A video on Net Neutrality from PBS Idea Channel comes to mind. (sections around 2:28, 3:35, 4:14, 5:26 and 6:32 are of particular interest).

One could see that in the modern, digital world the banking industry could start to be seen as a common carrier.

Considering a bank to be a common carrier might be useful since just as buses are expected to transport everyone with a valid ticket and freight companies should transport anything that is paid for without discrimination, so should the banks accept anyone's money, store it as needed and transfer that money to whomever the account holder chooses without discrimination. In an era where we can communicate with one another freely and without bounds, why should our money be barred from following due to corporate's policies?

This could help address many issues people have with the modern banking. Looking back at Andreas M. Antonopoulos' Senate Hearing on Bitcoin and reading the transcript, we can see this statement:

When CAVirtex testified before this committee they stated they would like to see bitcoin regulations put in place as soon as possible to give clarity on how bitcoin is classified.  They believe, and they told this committee, that this would allow bitcoin to thrive in Canada.

When one stops and thinks about this issue from CAVirtex's perspective, the problem for them to offer the best business they can to their customers is not the lack of regulations for Bitcoin in Canada, but the animosity of Canadian banks towards Bitcoin companies. Banks refuse to do business with them since there is no regulation, so Bitcoin companies think that regulation will give them access to banking. The issue is therefore not with the lack of regulation, but with the unwillingness of banks to operate a legal business' bank account.

A missed opportunity


As I mentioned over half a year ago, the MintChip project is a really sad missed opportunity. It could've been an ideal solution - a government run, apolitical banking solution for everyone. It was shaping to be like a common carrier for money. Nobody would have to pay exuberant bank fees just because they have a low credit score, nobody would be denied an account due to past mistakes. Well, maybe Ecuador will follow through with their idea, but banning its only competitor, Bitcoin, is not faring well...

Bitcoin and beyond


If the banking system will not budge, we will have to make it obsolete with other technologies.

Bitcoin is one approach - it already is inclusive, fast and cheap to use. The only thing that needs work is price stability and accessibility to a common person, but with so many people working in this space - it's only a matter of time.

Crypto 2.0 is another approach that can solve the same issue. While those systems would not be burdened with price fluctuations, their infrastructure is a lot younger and less mature than Bitcoin's.

In conclusion


In conclusion, while the banking system is a useful concept, the current political implementation leaves much to be desired. There are too many people that get denied the access to what is an essential tool in the modern society based on arbitrary decisions by the banks in question. Perhaps a more inclusive approach is in order to make them relevant in the coming age of Bitcoin and similar systems.

2014-10-13

PFG - some games are more fair than others

The concept of Provably Fair Gambling has existed in the Bitcoin space for a few years now. It was popularized by such websites like SatoshiDice and JustDice, and now there are many such services out there. However, not all games are equally fair if you start considering all the edge cases...

I was inspired to write this article after attending Bryan Cooley's panel "Bitcoin Casinos: The Final Frontier in Online Gaming" at Inside Bitcoins' conference in Las Vegas.

Note - a lot of this article will be discussed using the analogy of a card game like Poker or Blackjack. However, everything presented here applies to every game with an element of luck, be it roulette, pachinko or anything else. It is just easier to describe some concepts with these terms.

Important cases to consider


Whether a game or a service can be considered provably fair, one has to look at a few aspects of what is being offered:

  • Are the games interactive (such as Blackjack), or does the player have no agency on the game's outcome (like Baccarat)?
  • Does the game involve one or more players?
  • Do the players play against the casino (Blacjack), or against one another (Poker)?
  • Does the casino provide the bank itself, or does it take investment money (like JustDice did)?

All of those aspects will be explored as we talk about various levels of how provably fair a game can be...

Level 0 - "Trust me"


Starting at the very bottom, we have the shadiest games that don't offer any reassurance that they are fair. We have to trust the people running the games not to cheat us. This is where all the gambling in new circumstances starts - be it traditional casinos in the distant past, online gambling in the 90's, and Bitcoin gambling before the PFGs became the norm. All in all, there is not much to discuss here - the games can be as crooked as the people running them and the players have no way of being sure if they are playing an honest game.

Level 1 - "Trust me, I'm certified"


This is the level most traditional casinos operate at. They have their gambling license, their online services are verified by third parties and so forth. While all this makes the business look more legit, it's still not scam-proof, as the story of Ultimate Poker have shown. Software review could be spotty, different software can be deployed on the final server, some rogue employees could cheat the system and so forth. While this level makes the scams less likely than the previous level, it still not perfect.

Level 2 - "Provable commitment"


This is the first level where the player can actually verify what is going on in the game. The key technology here is simple - the casino commits to an initial condition of the game, say an outcome of a coin toss, order of a deck, etc. The players is presented with a way to verify the initial state of the game at the conclusion of the game.

This system works well for single player games where the expected payout of any player action is the same - say guessing "heads" or "tails" with the same payout. However, if the expected payout for one outcome is different from the others (say, "0" appearing on the roulette spin), the system can still be cheated. The casino would only need to "stack the deck" against the player and they would win.

Level 3 - "Provable commitment with player seed"


An improvement on the previous level. The casino commits to a random seed and then the player presents their random seed to be used in combination with the server's seed. This makes the initial state of the game unknown to either party before the game starts, solving the issue of the casino being able to stack the deck against the player.

The full extent of the game must be known before the player reveals their seed however, otherwise for some games the casino can still influence player's game. Say we have a virtual horse racing game, where a player is presented with two horses - first one has a 50% chance to win and pays 1.9x the bet, while another wins 25% of the times but pays 3.9x the bet. Expected return for first horse is 0.95, while for the second - 0.975. This makes the second horse a more likely candidate to be picked by the player. If the horses are created after the player reveals their random seed, the server can create an appealing horse that will lose the game (since the casino knows the outcome of the "race" before the player picks the horse). However, if the casino commits to how the game plays for the round (horses are generated before the player reveals their secret seed), no such manipulation can take place.

This approach works well for single player games and has been a staple for such services like SatoshiDice, but this approach is inadequate for games involving more than one player.

In a multiplayer game, whether it is a player-vs-casino or player-vs-player, this approach fails. All a casino needs to run a crooked game is for the last player to determine their seed to be crooked and collude with the casino. This would allow them to pick from a number of favourable outcomes for the game to work against the other players. While this could be mitigated to some extent in games where the players play against the casino by making the players commit to a seed in secret first before revealing the actual seed, it still doesn't solve the problem of the casino and all colluding players knowing everyone's hands and all other cards in the deck. While this scenario is rather unlikely to occur, the above mentioned story of Ultimate Poker would work just as well in this level of PFG as any other level.

Level 4 - "Provably unknowable games"


The last level addresses the last problem PFG casinos face when it comes to fairness of the games (not necessarily the business as a whole mind you!) - how to make a game outcome unknowable before the game is played out? The most complicated scenario to solve is a game of poker - a multiplayer game where all players play against one another - and the possibility of collusion.

To achieve this level of fairness, the game needs to prove that even if everyone (including the casino) colludes against a single player, the player still knows that nobody knows what cards they have in their hand, nor what cards will come up next in the game. It is achievable by including every player in the deck shuffling and card dealing process. The process itself is a bit too complex to get into details here.

So far, I don't know of any service that has achieved this level of fairness. While not all games need to achieve it to be considered "fair enough", any game that involves more than one player that can influence the game definitely needs to aim this high to address all of the possible exploits.

Who watches the watchmen?


All of those precautions can still fail if there is one key component missing - a trusted frontend. Even if a game is provably fair, all is for naught if the interface you use to play the game is crooked and works against you in collusion with a malicious party.

The easiest exploit to use against the players would be to deploy a website that checks if a game is provably fair and lies about the outcome to make itself look legitimate. Most people won't check the code, and the casino would be able to scam them easily.

An operator that wants to protect the players against cheaters and gain their confidence will also have to prove that even they cannot be a malicious party. While this is possible to achieve for blockchain-based games with each game having a permanent, unalterable record on the blockchain and one doesn't rely on the website for any sensitive information, I haven't seen any serious solution to this problem in any "traditional" online casino. That's not to say that the problem is unsolvable - far from it - just that it might not be a priority for casinos at the moment.

Investor perspective


So far we've discussed only the fairness of a game itself, not considering whether the service as a whole is provably fair for its investors. If a given casino provides the bank all by itself, it's not really a problem (minus some possibility of claiming losses for tax purposes or the like), but as soon as someone else's money is on the line, that's an entirely different story.

Similarly to the fairness of the game, we can have a few levels of fairness when it comes to investing:

"Trust me" - no way of checking whether the casino is scamming its investors. Can work to some extent if the entity is known and trustworthy

"Here are my books, everything adds up" - the casino provides an extensive record of all games played in the system, allowing everyone to verify if various games add up to the proper investment amount. However, a casino still cannot prove it did not play against itself to lose its investors money and shift the winnings to its own pocket. Both SatoshiDice and JustDice achieved this level and were accused of the exact possible exploits.

The casino would also need to prove that the records were not tampered with - SatoshiDice did it by committing to the game seeds for many years in advance and embedding that data into the blockchain. JustDice would have a problem with proving the same.

"No way to lie" - it is possible for a casino to address the issue of being accused of gambling against itself to create artificial loss for its investors. Getting into the details of how this could be done is a topic for another article in itself, so I won't cover it here. In brief - it's possible, but I haven't heard of any casino implementing a solution like this yet.

In conclusion


There are many shades to how provably fair a game can be. One has to take into consideration not only the mechanics of the game and how to prove it to the player that no cheating has taken place, but also protecting the game environment and the investors' money from the casino itself. Only with all those issues addressed could a casino truly call itself "provably fair" without anyone being able to claim otherwise.

2014-10-09

Redefining "currency"

Everyone likes neat definitions of things and being able to categorize what something is. Unfortunately, Bitcoin appears to defy the traditional categorization - sometimes it is viewed as a commodity, sometimes like a digital virtual currency. The problem gets more complicated when you start considering other things that could also be considered currency in some degree, but don't completely fall under the current definition, like M-Pesa or Ithaca HOURs. In this article I would like to propose a new definition of what a "currency" could be to take into account the current technology we have and follow it up with discussion on various edge cases.

The reason for writing this article is the increasing need for new regulation to address what Bitcoin is and what laws it should abide by. This in my opinion creates an opportunity to address some old definitions and create some new structures.

Definitions


Currently, "currency" is defined as:

  • "A generally accepted form of money, including coins and paper notes, which is issued by a government and circulated within an economy. Used as a medium of exchange for goods and services, currency is the basis for trade." (Investopedia)
  • "FinCEN's regulations define currency (also referred to as "real" currency) as "the coin and paper money of the United States or of any other country that [i] is designated as legal tender and that [ii] circulates and [iii] is customarily used and accepted as a medium of exchange in the country of issuance."" (FinCEN)

Generally narrowing it down to whether or not something has been issued by a government. For some Bitcoiners, that would be a fine definition of a "fiat currency", but not "currency" in general.

I would like to propose the following definition of a "currency":

Currency is an object (physical or otherwise) that:
  • Is representing value different from the intrinsic value of the object used to represent it and the principal object used to back it
  • Can be easily transferred between parties for the purchase of goods and services
  • Is not expected to be forfeit when used in most it not all transactions legal under the law
While the wording could use some refining, I think in general the definition addresses some of the core problems I will discuss below.

Some clarifications:

  • The term "object" is used loosely - can range from a physical object, a paper note, or a piece of data used to denote the currency
  • First bullet point deals with the value of two things - whatever is representing the currency (physical object, paper note, piece of data), and what the currency itself is backed by (gold, oil, bread). The first is direct - if we have a gold coin representing the currency, we take the value of that gold coin. The second refers to what is backing the currency at the very core - if we have a digital IOU that denotes a claim to a paper note that is redeemable for a physical object, we take the value for the final object. This can be a bit confusing, but I'll elaborate on it further down
  • The second point doesn't deal with whether it is possible to find two parties that want to transact or how much effort would it take to transfer the currency, only with the fact that it is possible. A tonne of potatoes qualifies, non-transferable reward points do not
  • Last bullet points deals whether there are any restrictions placed on the object by its issuer or curator. If an object cannot be traded between parties at a risk of being forfeit (say, selling WoW gold for real-world money), it doesn't count as a currency. When something does or does not quality can be tricky to determine - one shouldn't be able to escape the definition if they create a currency and say "not tradable for pink elephants", but neither should they qualify if they say "tradable for anything in this store". A rule of thumb should be - if there are more things you can buy with it than not, then it's a currency

Country vs. not a country


In the current definition, a "currency" can only be a currency if it is issued by a country. However, since it's hard to determine if a country is a country, there would also be the same amount of problems determining whether something would be a currency under that definition.

Moreover, with the rise of cryptocurrencies that are not issued by one individual let alone a country, if we want to consider them currencies, that definition won't do.

Value


That part of definition was added to distinguish between a few things that are similar to one another, but shouldn't necessarily be on the same side of the currency / not-a-currency divide, as well as some things that are used like a currency, but shouldn't be defined as currency.

First of all, we have gold and silver versus iron, lead and other metals. Looking at them without the context of how they have been treated thorough history, they are pretty similar. However, gold and silver have value greater than would be expected from their usefulness. A large chunk of gold's demand comes from the investment and jewellery sector. It is therefore worth more than its physical qualities would suggest and should fall under the category of a currency, while something like titanium, used mainly in pigments (although it can also be found in jewellery), should not.

Another edge case that should be considered is the Tide detergent and various computer game items. The former is sometimes used as a currency for purchasing drugs, while the latter is used for trade purposes in various video games. While those items are used like a currency, they shouldn't fall under the category of currencies - their value is about equal to what they are worth. A bottle of Tide that can be bought for $10 doesn't suddenly become a $20 currency. Since they represent only the value they have - they don't fall under the definition.

Currencies backed by commodities


Since it is possible to create any number of currencies backed by commodities, we should consider those as well. We could also have currencies exchangeable for other currencies at a fixed rate, such as Bitstamp's USD IOUs in Ripple, or Seedstock.

Under the proposed definition, if the money that would not fall under the definition of a currency itself and it would not be backed by something that falls under the definition, it would not be considered a currency.

So IOUs for USD would be a currency, since they are backed by a currency. IOUs for cans of coke would not, since cans of coke are not a currency.

Transferable vs non-transferable


There are a number of currency-like things out there that fail this definition. Various online rewards, such as Air Miles, and various in-app currencies, such as Facebook Credits, are tied to one's account and are not transferable between people. If it can't be transferred between willing parties, it cannot fulfil the functions of money and therefore it doesn't fall under the definition of a currency.

This part of the definition was put in place to allow various in-game currencies to be used as tokens for simulated gambling and so forth.

Forfeitability


There are a number of currency-like things out there that would fall under the proposed definition if it wasn't for the last part. Take Plex for example. Plex is an in-game item used in EVE Online. It can be purchased for about $20, can be sent between players in the game and is sometimes used directly as an in-game currency. However, trading Plex for anything outside of EVE Online is prohibited and both parties in the transaction can have their accounts banned for engaging in such a deal.

All in all, if an object is not a subject to forfeiture when used in any legal transaction, it passes this rule.

Further sub-definitions


The definition presented earlier would define what a "currency" is. However, there would also be a need to define various other sub-classes of currencies to further distinguish between various items. Just like we have a tree of life in biology stemming from distinguishing between what is life and what is not, so too would we need various definition that would stem from a single definition of what is a currency. Some sub-categories could include:

  • Fiat currencies - currencies issued by governments and mandated as a legal tender in the given country - so your traditional USD, Euro, etc.
  • Concordia / virtual currencies - currencies with value not enforced by anyone, but agreed upon by the parties to the trade - like Bitcoin or gold
  • Convertible currencies - currencies with a fixed exchange rate to another currency - this would include various local currencies, IOUs for currencies, etc.