2014-11-22

Proof of Stake lacks a fail-safe

I've discussed my various doubts about the delegated Proof of Stake a few moths back. Thinking about it some more recently, I have one more idea to add to that discussion that applies both to Proof of Stake, and distributed PoS - the lack of a fail-safe.

People criticise Proof of Work for creating centralization. Bigger miners earn more money that they invest in faster mining equipment to earn even more money and so on until there is only one entity that essentially owns the network. Everyone fears centralization in Bitcoin as it can bring about the dreaded 51% attack. However, a lot of people, including myself aren't really worried about this. Andreas Antonopoulos explained it well during the Texas Bitcoin Conference - a 51% attack isn't much of a threat any more since we can always fork the software and make the current ASICs obsolete. Just like that, any mining operation that relies on those specialized chips have it in their best interest not to attempt to be a malicious entity - they have too much to lose. While a malicious "government entity" (or anyone that wants to destroy the network at a cost) would not case about the losses, it wouldn't be able to accomplish anything regardless.

Looking at Proof of Stake, the network essentially lacks this fail-safe. If an entity controls the majority of coins in the system, they can perform a 51% attack as well. To take the network back, either one would need to abandon the PoS mining algorithm, or erase the malicious entity out of existance. However, due to the pseudonymous nature of cryptocurrencies, the attacker in question can easily shuffle their coins to new addresses and spread them around so much they become essentially indistinguishable from anyone else in the network. Tweezing them out would be hard and a lot of other people might get removed by a false-positive. As such, the network that relies on Proof of Stake cannot purge itself from a malicious attacker, like a Proof of Work network could.

Of course, a non-malicious entity wouldn't want to perform a 51% attack on the network. The attack would evaporate any value their stake would have. However, a malicious "government entity" that wished to take down a PoS network would have a much easier time doing it, since forking them out of the ledger would be much harder.

2014-11-13

Open Riptherium - thoughts on the "ultimate" platform

Counterparty recently announced its full port of the Ethereum's turing-complete programming language into its platform. Some people are calling this the end of Ethereum and other such sensationalist things. Similarly, Ethereum and Sidechains have been heralded as the altcoin killers. It does very much look like everyone's on a lookout for "the ultimate platform". This makes it as good a time as any to share my opinions on the matter, as this topic has been rattling around my head for a few months now.

Open Riptherium - the ultimate platform


When it comes to the Crypto 2.0 platforms, we have a couple of projects innovating in three main paths:


  • Variety of financial transactions
    • Lead by Open Transactions and Counterparty
    • Focused on delivering advanced financial transactions - contracts for difference, shorts, longs, leverage, derivatives, etc.
  • Ease of money flow
    • Lead by Ripple
    • Focused on connecting any number of currencies together through a web of trade pairs and making the flow of capital between the currencies rapid and unobstructed
  • Scripting
    • Lead by Ethereum and recently Counterparty
    • Focused on developing a universal programming language to execute any program or smart contract on the blockchain itself
An ideal platform would address all three aspects of the Crypto 2.0 space. Of course, those are only the main branches of the development in the space. There are a few smaller aspects that can make or brake a system. Lets discuss some of them.

The details


Coin distribution. Any decentralized system needs some means of spam prevention. This usually comes in form of transaction fees that are either paid or burned. While there are a few projects that do away with native currencies entirely (Hyperledger and Open Transactions come to mind), it is more likely than not that a Crypto 2.0 system would have a digital currency built in. A fair coin distribution model would be needed to ensure a good start to the system that doesn't unfairly benefit some people over the others. Ethereum, Mastercoin and Counterparty can be viewed as having a few distinct distribution models that are generally considered fair. Ripple on the other hand, is an example of how not to distribute tokens if you want to create a decentralized system.

Scripting. While we might not know yet what really innovative things scripting will enable in the future, it is certainly a feature that you want in your system. It can help address a lot of edge-case scenarios, from creating smart contracts, through personalized escrow, up to innovations that are barely related to money, like a distributed DNS. Scripting seems to be like the Internet in the 90s or 2000s - we know it will be a big deal, but we haven't had our Wikipedias or Facebooks yet. Ethereum and now Counterparty are leading on this front right now.

Token creation and trading. Crypto 2.0 systems are all about everyone being able to create their own tokens and trade them freely on the same network. Whether you are issuing IOUs for fiat currencies, or creating personalized tokens, you want the process to be as smooth as possible. Similarly, once the tokens are created, there needs to be an easy way to send them to anyone else on the network and to trade it for anything else on the network. Ripple does an excellent job of this. All currencies are on a level playing field and can be exchanged easily. Counterexamples would include NXT and Counterparty, for only allowing trades between the token and the native currency, and Mastercoin for charging an arbitrary fee for token creation.

Another important aspect to discuss here is whether token creation and trading is supported natively by the platform. I remember hearing Vitalik Buterin's talk on Ethereum awhile back where he was discussing scripting. The gist was, that scripting is a general purpose language - it can be used for creating any application, rather than having a set of predefined application logic. While this means that one can create any token in the system, the flip side is that one would need to code in every single functionality of a currency into that custom script - order matching, futures, demurrage, etc. As a lot of programmers can tell you - a script is never as fast as a dedicated application. This is why I think that for at least the basic currency logic (sending and exchanging money), a dedicated part of the code native to the Crypto 2.0 platform is needed to make it operate optimally. I would be very surprised if an Ethereum script could perform multi-currency hop transactions as cost-effectively as Ripple or Open Transactions. So while scripting can solve a lot of the edge-cases, I think dedicated logic for some of the currency logic is still beneficial.

Gateway incentives. Trading digital currencies is all well and good, but there are also a number of reasons to want to use traditional currencies on the system. Being able to send people USD across the glove just as fast as you can send bitcoins is a big selling feature of the 2.0s. However, those tokens need to come from somewhere - they need to be created by gateways. However, for anyone to want to go through the hassle of providing business-grade tokens, the system needs to allow them to monetize on their work. So far, only Ripple appears to have done this well through transfer fees and built-in demurrage. 


Other financial transactions. Since Crypto 2.0s are mainly about monetary transactions, allowing the users to easily tap into a variety of them is a benefit. Just like you can have distributed exchanges on the blockchains, you need distributed contracts for differences, shorting and so on. Open Transactions appear to be leading in this regard (from what I heard from one of the developers - they have implemented every kind of financial transactions) and a few platforms like Counterparty offer more than the rest.


Speed. Ideally, the system should run a lot faster than Bitcoin. A system that runs near real-time will be prepared to ones that update every 10 minutes. As always, there is a trade-off between speed and reliability. Open Transactions and Ripple are some of the fastest networks out there - OT being essentially instant, and Ripple clocking in at 2-5 seconds for a fully-confirmed operation. This is probably one of the biggest reasons against completely tying a system down to Bitcoin's blockchain like Mastercoin and Counterparty.

Security, reliability, etc. The basics you would expect from a Bitcoin successor. The network needs to be secure, the crypto needs to be strong, etc.

A good implementations. No matter how good the system is on paper, the implementation itself needs to be good as well, both for the casual users, as well as developers. While Open Transactions might have a lot of functionality, it is rather inaccessible to common people from what I heard. Counterparty, BitShares X and Ripple appear to have a good implementation in contrast.

In conclusion


In conclusion, there are a lot of features one could expect from an ideal Crypto 2.0 system. None of the current solutions appear to have all the answers yet, but a lot of them are innovating on one or more of the areas.

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.

2014-08-16

On Eve, Plex, ISK and Bitcoin

While browsing around the Internet today I came across an article on Dr. Eyjolfur Gudmundsson's view on Bitcoin in comparison to ISK and Plex, the main currencies of the Eve Online game. Reading into the points mentioned a bit further one comes across similar points that have been raised against Bitcoin many times. However, the comparison between Bitcoin and Plex is interesting enough that it can make for a good discussion.

Eve Online in brief


Just to make sure we're all on the same page here, let me quickly bring everyone up to speed on Eve Online and things surrounding it.

Eve Online is a space MMO game that is heavily focused on open-ended gameplay. Unlike most MMOs, where grinding for levels, loot and quests is the main focus of the game, Eve is a lot more focused on economics and large player corporation versus player corporation warfare. Most items in Eve are crafted by the players from simpler objects. For example, ores are refined into metals, which are built into modules, which build space ships the players use. Eve's economy is based on players performing each of those steps - players dig the ore, refine it and so forth, not the NPCs. Because of this, Eve's economy is closer to reality, with large supply chains, supply and demand, than say, World of Warcraft.

Eve's economy is running on ISK - The Interstellar Kredit. They are the base currency everyone is using in the game to buy and sell their wares. Eve is a subsciption-based MMO, meaning that each player has to pay each month in order to play the game. They can do it for real-world money, or they can buy an in-game item called PLEX - Pilot License Extension. Plex is bought and sold for ISK just like any other item in the game. The players can also buy Plex for real world money and put it in the game to sell for ISK if they want to get some in-game currency without having to grind for it. However, players can't sell Plex for real money, because that's violating the terms of services of the game.

So the exchange chain looks like this: fiat->Plex<->ISK<->Everything else in the game.

Arguments against Bitcoin


Dr. Gudmundsson raised a few points against Bitcoin in comparison to Plex:

  1. Bitcoin is volatile
  2. Nobody knows who is behind Bitcoin
  3. Bitcoin relies on trust
  4. Makers can cash out and crash the market
  5. Asks to prove that Bitcoin is not a scam

I do agree that the price of Bitcoin is volatile, but it's driven by an open market. Anyone can buy and sell it freely, so the price can be gamed by anyone with enough money and determination. Price of Plex in fiat is stable, because the market is a monopoly owned by CCP and people they license it to. You don't have a free market for Plex, since anyone that tries to sell the Plex they own gets their account shut down by CCP. Moreover, the Bitcoin market will never be flooded with excessive Bitcoins, sicne you can't make them out of thin air, unlike Plex which can be created at a whim. Heck, if someone makes a mistake selling Plex, like Amazon did (selling it at 90% discount), the commodity suddenly can lose a lot of value. All in all, Bitcoin's price is determined by free market, Plex's is determined by its monopolistic producer. Both of the approaches work because they both fulfil a different role.

Points 2-5 have been done to death and aren't that interesting in comparison, so I'll skip them. Instead, I will make some more general comparison between Bitcoin and Plex.

Bitcoin vs Plex


The main points Dr. Gudmundsson is making, is that a currency needs a government or an entity to back it - to assure it's value, price stability and so forth. In case of Plex - it is redeemable for game time and for ISK, therefore it's valuable. However, it looks like the big point about Bitcoin that Dr. Gudmundsson is missing, is that it is valuable because it's not controlled by anyone. If anyone backs a currency, that currency will only be worth something as long as they are around. Take E-gold for example - it was a centralized company backing its own currency. Because they had a real-world presence, they were shut down. CCP can be shut down and Plex will be worthless then. Bitcoin, just like gold cannot be shut down, since there is no central point of failure. Anyone can transact in Bitcoin as they do in gold if they have it - they don't need a third party to let them do so. Because Bitcoin enables anyone to transact with anyone around the globe instantly, it's valuable to the people that need it and that's one of the ways it derives its value.

Now lets say I wanted to use Plex like I would Bitcoin. I pay my friend a Plex for a drink, I start transacting with a few other people, and soon enough my Eve Online account is shut down since I just breached the terms of service... Well, so much for that... But lets say CCP relaxed their stance and let you trade Plex for anything. By necessity, it would be trade-able for USD (either it's trade-able for everything or nothing). Someone starts buying some illicit things with it and CCP suddenly finds itself needing a FinCEN Money Services Business license (Plex would be categorized as a centralized virtual currency). It's workable - now to buy some Plex you just need 2 photo IDs, a utility bill and you're all set (unless your account gets flagged for suspicious activity).

However, if all of this was tackled correctly, we could see a few interesting things come out of it. First of all, there would be little to no discounts on Plex - it would need to be sold at the market value, or else you would be just giving people money. On the flip side, people could start making a real income for playing Eve. You could have full-time professional players making a living wage. This could be huge! Thirdly, you would see people starting to use Plex to pay for real-world goods and services. With certain setups it would be damned easy, but that's a topic for another day.

Conclusions

At the moment, Plex is not a good currency outside of Eve Online as its use is heavily restricted by CCP and the terms of services. Given free reign, it would be a very interesting commodity-backed currency. Dr. Gudmundsson's arguments against Bitcoin are mainly misplaced and are similar to many concerns raised over the years.



I personally would love to see Plex explored as a free currency outside of Eve Online. If anyone from CCP would be interested, I could give you a personal overview of how it could be easily done and even show you a live demo of the implementation on live, existing technologies without any special code created by me.

Likewise, if Dr. Gudmundsson would be interested in having his concerns about Bitcoin addressed, I can personally explain every concept to him.



Interesting topic that didn't make it to this post but I would probably want to explore in the future - ISK as a currency with inevitable inflation...

2014-08-15

Thoughts on Delegated Proof of Stake and Bitshares

Today at Decentral.Bangtown meetup we had Max Wright and Dan Larimar introduce us to the concept of the Delegated Proof of Stake (DPOS), how it compares to Bitcoin's Proof of Work, and DPOS' first implementation as a part of the BitShares platform. We were encouraged to try finding problems with the protocol, but due to time constraints we weren't able to address all of the issues. So I figured - why not write my thoughts down and let everyone discuss whether they are valid concerns or not.

Coin distribution


During the presentation, we discussed how proof of stake and proof of work secure the network from 51% attacks through different means. I wanted to point out however, that proof of work has another very important function that proof of stake can't fulfil as well - initial coin distribution.

Say Bitcoin started initially with only PoS. Satoshi got the first 50BTC. After that, he owned 100% of the network. He would get the next block, and the next block, and the next block, since at all times he would own 100% of the coins. But even saying that he was generous and gave away all of his coins to a number of people, those people would own the entire network. The rich would get richer, and the poor would get poorer.

There are ways around this problem. Some coins use a hybrid PoS/PoW model, some switch from PoW to PoS after some time, etc. BitShares distributed their initial coins by selling them at a regular interval, Counterparty used Proof of Burn for issuing currency. That's all well and good, but neither BitShares nor Counterparty would've been able to accomplish their model effectively if they were not building atop of what Bitcoin and previous network have done. Satoshi couldn't have sold his initial coins for money without sacrificing his anonymity in a pre-Bitcoin world.

As long as the initial PoS currency distribution is fair (however fair would be defined), there isn't an issue. However, a lot of people can disagree what a fair distribution is and whether the initial distribution was in fact fair...

Paying for mining


Another issue raised was that mining creates a lot of cost for the Bitcoin network. Since miners earn 25BTC every 10 minutes, in order to cover their costs they will most likely need to sell those 25BTC at an exchange to get fiat to pay their bills. This means that unless there is a new buy order for 25BTC every 10 minutes, the price of bitcoins will be going down due to that constant pressure.

In my opinion we should also consider the flip side of this issue - the labour theory of value (the value of a good is determined by how expensive it is to produce it). In other words, since it costs miners X to mine 1BTC, they will not sell their bitcoins for less than X/BTC. Provided the miners have enough patience to wait for their bitcoins to be sold at that price, the cheaper coins will be bought up until there are none below the miners' price, therefore the market would have to eventually increase the price.

DDOS on delegates


As it was explained during the presentation, DPOS operates by the network electing a pool of delegates to secure the network. For BitShares, that pool is 101 delegates. If a delegate does not perform their duties (mining blocks when it's their turn), they are kicked out of the pool of delegates and a new delegate is chosen to replace them.

This leaves a lot of room for attack on a small number of nodes. Since most delegates probably won't have a state of the art computing centre to protect themselves, they will be vulnerable to DDOS attacks, among other things. If someone was determined to disrupt the confidence in the network, they would only need to go after the delegates once by one and take their machines out of the network. Of course the delegate pool would reshuffle each time with new delegates, but if good agents are taken out on a regular basis and bad agents have a chance to replace them, it would be possible to have a disproportionate amount of bad agents disrupting the network.

Since the delegates are also supposed to be transparent public figures in the space, they would be vulnerable to a lot more attacks like the rubber-hose cryptoanalysis.

Margin delegate coercion


BitShares has a pool of 101 delegates. Delegate number 101 earns 1/101 of all fees from the network. Delegate number 102 earns nothing. Such steep drop off  can be a dangerous thing.

The situation is similar to the problem of match fixing in professional sumo, as described by Steven Levitt in Freakonomics.

Essentially, the issue boils down to this - if you are at a borderline between winning and getting everything, or losing and getting nothing, you are more likely to cut a deal with someone and secure your winnings through generally frowned upon measures, such as match fixing.

Now lets say I owned a few percent of BitShares, say, 5%, and the delegate 101 has 80% approval. I can approach anyone with 75% approval, or in some cases even 70%, and cut them a deal - you pay me 50% of your earnings, and I will give you that mining spot. I remove the votes from delegate 101 and lower, add my votes to my chosen delegates 102 and up, and I control them, at least as much as they are willing to give up for the slice of the mining pie.

I don't even need votes to bring some people down. Spreading rumours is easy on the Internet, and since most people don't fact check and act impulsively, it wouldn't be too hard to remove some marginal delegates from their ranks.

Some people just want to watch the fees burn

With proof of work, the incentive for a miner is simple - they want to have as much computing power to earn as much fees and block rewards as possible. If you want more computing power - you need to spend more money, simple enough. With DPOS, each miner wants to win as many votes as are needed so they would stay in the pool of 101 delegates so they can earn as much fees and block rewards as possible. To do that, they need to be appealing to people with a lot of votes - not the average system users, but the big hoarders with big pockets.

Asides cutting some direct deals with the hoarders, the delegates can also change the transaction fees. From what I understand, each delegate can set how high the transaction fees are, and how much of those fees is burned. By lowering the fees, you appeal to the users that transact more, making it cheaper for them to operate. If you increase the amount of fees burned, you essentially give everyone holding the remaining shares the fee in proportion of how much shares they own by decreasing the money supply.

If delegates would be incentivised to appeal to the users of the system, they would keep the fees low and the burn rates high. However, since they are appealing to the hoarders, they would want to keep the fees high while keeping the burn rates high as well. Unless the system users own the majority of the shares, they will likely be paying more and the money will end up mainly in the pockets of the wealthy minority.

Malicious wallets and services


At the moment there is only one wallet for Bitshares to the best of my knowledge. If the system catches on, we can expect a lot of alternative implementations. We'll see our Blockchains, Hives, Pheevas, or even a fair share of shared ewallets.

Now, since each share in the system is a vote, whoever has access to those shares controls the network. If someone created a malicious wallet that could be used in manipulating who is the delegate, they could have a lot of leverage in the system.

Similarly, big services with big wallets, like say, exchanges and JustDice-like gambling sites would have a large sway over the network. It might be all good if we're dealing with Bitstamps, but what if we're dealing with the MtGoxes of the world?

BitShares and lack of Gateway incentives

I recently started comparing a lot of Crypto 2.0 platforms against one another, only to find that few of them have built-in incentive for Gateways. In my opinion, having such things in the system is essential. From what I understand, instead of allowing you to create any asset on the system, BitShares allows you to lock in your price with futures contracts. This is all well and good if you want to keep the value, but don't really want the underlying asset, which is good for price speculation, but not actual use. This reminds me a lot of what Locks did - "locking" your bitcoin value to a specific asset only so you can later redeem it as bitcoins in the amount proportional to the exchange rate in the future. So if I want 1 gram of gold worth of bitcoins a year from now, I pay 1 gram of gold worth of bitcoins right now and later get the appropriate amount of bitcoins. But, what if I want to get gold instead? Well, I'm out of luck. More on that discussion here.

Conclusions


So in conclusion - DPOS is an interesting idea and it's definitely an improvement on POS, but it's by no means perfect. The pool of delegates appears to be the most vulnerable area of manipulation or attack. Too much power over the delegates lies in the hands of the richer part of the network, and their incentives don't necessarily align with the most active users of the network.