2014-12-31

Ripple as middleware

As many people may know, the current banking system is a mess when you're dealing in multiple currencies. We have disjointed networks dealing in local countries, the eurozone, and international banking on a wider scale. Using Bitcoin means having to hop onto the currency and off of it on two exchanges. There is friction at every step and companies have to focus on creating big end-to-end solutions rather than focusing on just the part they can do really well. However, I believe all of this can be simplified if we used a system like Ripple as a middleware layer.

The current situation


Currently, there are many disjointed markets out there. If you want to exchange fiat currencies, you go to a forex. If you want to buy Bitcoin, you go to one of the numerous local exchanges. For altcoins, you will most likely need to go to one of the handful websites that specializes in them. All in all, there are many problems in efficiently dealing with say, exchanging precious metals for altcoins.

Ripple as a solution


While Ripple might not be able to completely replace centralized markets that have high transaction volume and extremely low latency, it could be a good enough approximation for a lot of the projects out there.

First step in doing this would involve the creation of various gateways for the currencies we wish to use, be it USD, gold or whatever else. Since the gateways can focus only on one thing at a time, creating them is more straightforward than bringing newer and newer exchanges onto the market. If you can only handle Bitcoin but can't make a trade engine or handle fiat, you're still in business.

The second step would be copying the existing markets into Ripple through automated arbitrage bots. For example, you could take Bitstamp's USD-BTC market and post trade offers in Ripple to mimic it, although with lower granularity. When a trade is made on the network, the bot would offset it at the exchange and create profit. Given enough bots, we can represent any number of financial exchanges inside of Ripple, no matter what currency they're dealing with.

The third step would be building services that use Ripple as middleware for their payment network. Say we want to tackle Europe<->Canada money transfers. We would connect to a gateway in Europe and a gateway in Canada. When we see a Euro payment on one end, we send it to the first gateway, use the Ripple network to trade it for Canadian Dollars, and send the money out on the other end as needed. Provided we have some floating balance on both ends, we just completed an international wire transfer in 5 seconds at a fraction of the cost.

The last step would be...

Optimization through competition


Obviously, the markets will only use a product if it’s competitive and affordable. Nobody will want to pay a premium to use one product over a cheaper one with the same features. However, the beauty of this approach is that all components are interchangeable and the best ones will win.

Looking at our BitPay example, their business can be broken down into the following components:


  • The frontend gets the current exchange rate and accepts payment for the goods from the user, eventually forwarding the coins to the exchange
  • A server offsets the trade at an exchange
  • A banking component withdraws fiat from the exchange and pays the merchant in their currency of choice


In Ripple those components could be run by different entities:


  • A system like BitPay would accept customers’ coins and use Ripple to pay the merchant. They could trade the coins directly for any fiat or any other currency on Ripple, and once the funds are secured, release the payment.
  • Trades would happen atomically in Ripple. No matter how many currency hops it requires, a trade could be made with one transaction. The Ripple network will find the most efficient route on its own.
  • Any trades happening in the Ripple system would be offset by independent bots arbitraging between Ripple and various exchanges (forex, Bitcoin exchanges, etc.)
  • Merchant payouts could be handled by dedicated gateways or payment processors working with the gateways. Say, any funds deposited to a given Ripple address could be paid to a specified bank account at the end of the day.


Since the system does not require one company to handle all of those steps, multiple entities can be competing against one another to build the most efficient pieces of the puzzle, and the system as a whole would benefit. If one arbitrage bot is replaced by another that has a tighter spread - the prices go down. If someone makes a direct market between two distant currencies - the network will route through the new path, saving money. If a new payment processor comes along, they don’t need to reinvent the wheel, they use the established network and focus on making a better product. All of the components are interchangeable, and the most efficient ones will win in the end.

Possible applications


Here is a list of applications that can easily use Ripple as a middleware money network, given enough development in the space:


  • Payment processing between any currencies (BitPay, Coinbase, PayPal)
  • Exchanges (using Ripple as an exchange engine)
  • Remittance and other international payment networks (Western Union, PayPal)


Near future developments


If our guess is correct, we expect to see the following projects to start appearing in the Ripple space in the near future:


  • More fiat gateways. They should appear in places financially close to big exchanges making payments between them easier. Alternatively, big exchanges will become gateways as well (like BitStamp)
  • Given efficient gateways, arbitrage bots will appear converting every Bitcoin exchanges’ market into Ripple. We’ll see BTC-e’s LTC/USD market reflected in Ripple, BTC China’s BTC/CNY market, and many more
  • Arbitrage bots will start appearing next to large forex markets, bringing in efficient fiat<->fiat exchange rates into Ripple
  • Given some of those, payment processors like BitPay will start appearing in the Ripple space offering payments to any currency accepted by the merchant
  • Either gateways will start offering new and convenient ways to convert people's traditional money into Ripple IOUs (say, through credit cards or other automated systems), or we might see companies like Coinbase appearing to offer this sort of services for them


Conclusions

As I wrote in a previous blog post, cryptos will succeed if the banks are failing. Due to the many inefficiencies of the current international payment systems, it is very likely that a system like Ripple would be used more and more as a common middleware to enable interoperability between many networks.

Recommended reading:

2014-12-22

The need for a new measurement of value

As many of you might be familiar, there are a few key functions money needs to perform in our society. While the exact list may vary, here are some of the functions listed:

  1. Medium of exchange
  2. Measurement of value
  3. Standard of deferred payments
  4. Store of value

Today, I would like to talk to you about the measurement of value function of money in the context of the "Currency Wars".

Measurement of value


Money being used as the measurement of value (or a unit of account) means that we use the money units to denominate how much other things are worth. It is useful to have this standard reference because then we can compare things that would be otherwise hard to compare. While it might be easy to estimate that a loaf of bread is worth about a few buns, since they both fulfil a similar role and are essentially interchangeable, it is much harder to compare how many loafs of bread would be equivalent to a book in a pure barter system.

With money, everything is compared to the same unit of money, be it dollars, euros, bitcoin or otherwise. As such, everything has its own price and all of the prices are easily comparable, making everyone's life that much easier.

Currency wars


The topic of currency wars is rather big, and I don't think this post will do it justice. I recommend the book "Currency Wars" by James Rickards to learn more about this subject.

The short of it is, that a currency war, also known as competitive devaluation, is a competition between countries to achieve a relatively low exchange rate for one's own currency in comparison to everyone else. While at first it may sounds like a silly idea, after all, the stronger your currency is the more you can buy after all, it does make sense when you think about the state of your domestic industry.

If one's currency is going up in value relative to everyone else's, you will have more imports (you can buy more), but less exports (your products will become more expensive for everyone else and thus less attractive). In order to stay competitive on the global market, you want to reduce the cost of producing your goods. You can either do that through a long process of technical innovation and so on, or you can go the fast route and make your currency worth less. Since your money will be worth less, the wages you have to pay your employees are smaller, the cost to run your company are smaller, and thus your product gets cheaper.

This can be quite insidious, as it essentially means cutting everyone's wage without their consent or knowledge. One dollar today is worth less than one dollar last year and so on. Here is some rough overview of how much $1 is worth as expressed in 1913 dollars:


New measurement of value


As the money all over the world is fluctuating in value, its use as a measurement of value is a bit ridiculous once you think of it. You could compare it to trying to measure a height of a wave on a stormy sea in relation to other waves. We need a new form of measurement of value that would form a solid ground amidst the currency wars storm.

The reasoning as why we would want something like this is simple - for a lot of people, they would want to be earning the same value performing their jobs and pay the same value for their goods and services, no matter how much their local currency is fluctuating. This would allow them to detach themselves from the monetary policy of their countries that are doing their best to run it to the ground. Having an absolute measurement of value would promote real growth and innovation in becoming more and more competitive, rather than fake growth brought about through inflation.

As for what this measurement would be, this might be a bit complicated. If it was a commodity like gold, everyone would start hoarding it and its value swings would affect the economy. It cannot be a national currency, since those are too easily printed and manipulated. It cannot be a currency like Bitcoin, since it can be too easily gamed through a cycle of hoarding to increase its value and releasing to flood the market. I doubt there is anything that could be used as money in traditional sense that could be used for this purpose.

At the same time, none of this matters if we don't make it a currency. If instead, we take the VALUE of anything, be it $1 today, 100 years ago, 1BTC from January 1st 2015, or some handful of magical beans, and use that VALUE as a new standard for measurement of value of everything else, it would become like a metre stick (of for folds on imperial system, a yard stick) for the economic world. A metre is not a measurement of anything in particular, it's not a metre rod of iron, or a metre of water, it's a metre no matter what it's measuring. Similarly, our new Value Stick could be use to measure how much a dollar is worth and how much a euro is worth without actually being anything in particular.

So instead of seeing tags with dollar prices, we could see tags with Value prices, and an exchange rate of Value to dollars or any other currency, perhaps computed on the spot, like in BitTag:



Conclusions


In a world where countries go out of their way to change the value of their currency, we need a new standard for the measurement of value that is independent of any national currency, commodity or otherwise.

2014-12-19

Crypto success vs. Bitcoin success

After researching a lot of Crypto 2.0 systems (tiny.cc/Crypto), I started thinking about whether some systems could surpass Bitcoin. We have a lot of proponents of a world with only Bitcoin, only some Bitcoin copy, or all of the cryptos going the way of the dodo. While I'm personally a proponent of the Singularity of Money concept (a world with many interchangeable currencies), it is still interesting to ponder whether Bitcoin or cryptocurrencies in general will gain mass adoption among the general population.

Thinking about this for awhile, the conclusion seems to be that

Cryptos will succeed if the banks are failing. Bitcoin will succeed if the governments are failing.

Let me explain why.

People want faster horses


A lot of you should be familiar with the quote allegedly by Henry Ford - "If I’d asked people what they wanted, they would have asked for a faster horse". A similar sentiment can apply to cryptos. People don't want a new currency, they want their old currency to be better and faster. People are used to thinking in USD and Euro, not Bitcoin or Dogecoin. It would take a lot of mental effort for people to switch over to a new currency, and that might be a large barrier to overcome, not to mention the issues of price stability and so forth.

At the same time, if you have a system that offers what the banks offer only better, you are very likely to be able to compete with them. This is why PayPal and Alipay are very likely to be used for online payments, while bank wires in North America are not as popular.

Banks surround themselves with a lot of policies and discriminate against their customers. International payments are a pain, credit cards are outdated and the whole system is filled with inefficiencies. As such, if you'd have crypto systems that allow you to pay in your national currencies only better and faster than a bank, those systems are likely to succeed in the modern world.

It is very likely that the 2.0 systems that allow people to deal directly with their local currencies without jumping through random hoops will thrive in the near future. Ripple is already positioning itself to be "the internet of money" and appealing to the current financial systems.

While Bitcoin and similar systems might be a part of the solutions used, it might also be seen as an unnecessary step when it comes to money exchange not denominated in BTC. However, there are some cases where Bitcoin might be the solution needed

Governments failing


If a national currency is stable, people want to use that currency. If the national currency is not stable, people want to get rid of it and use something else. If you're in a country like Argentina or Venezuela with an inflation rate of 10% or even 60%, or perhaps have experienced the Cypriot financial crisis or the more recent fall in the price of Russian Rubles, you might be thinking to yourself "I don't want to use this currency any more".

At times like these, we start looking at alternatives - gold, dollars, franks, etc. However, those can be seized or frozen. A more modern alternative would be to look at cryptos.

And herein lies the strength of Bitcoin. While it might look unappealing to the western world, it offers an alternative to people that are losing it all. It is apolitical, not controlled by any government and is easily transportable. As such, in a world where the governments fail everyone with their monetary policy, Bitcoin and similar currencies have a room to thrive.

Conclusion


It is very likely that cryptocurrencies will succeed in the near future due to the stagnation in the modern world. However, for Bitcoin to become widely adopted, we would need to see entire regimes start to fail and people wanting to take their economy into their own hands.

2014-12-13

How to kill a currency

A lot of people have spelled Bitcoin's doom in the past. From a 51% attack to some other vulnerabilities, a lot of technical pitfalls are well known and documented. There is a whole Wiki page on this subject, and I even wrote a master's thesis on the subject. So while Bitcoin looks like it's around to stay, there are many other cryptocurrencies emerging nowadays that can be wiped out in some interesting ways. Lets discuss some of them.

Destroy the value of a currency


First off, a quick recap of the obvious for completeness sake:

The traditional 1.0 copycoins are perhaps the easiest to bring down. Their network is secured by the miners (in case the coin uses PoW) and in return the miners get paid in coins they mine. However, if the value of the coin was attacked, the miners wouldn't have any incentive to mine it. They would need to be subsidized by the people running the network. As I discussed before when talking about Quark, a repeated 51% attack coupled with double-spending various crypto-to-crypto exchanges would quickly ruin the coin's reputation and get it removed from all services, thus destroying the coin's value.

Now with that out of the way, lets talk about some new stuff.

End the "blockchain bloat"


The topic of blockchain bloat has been a heated topic in the Bitcoin community for a few years now. It started with SatoshiDice sending a lot of 1 satoshi transactions, and the topic got more interesting with the advent of Bitcoin 2.0 technologies. By "Bitcoin 2.0", I mean Crypto 2.0 platforms that use the Bitcoin blockchain as a store of their data. For example - Mastercoin and CounterParty. While those systems use the Bitcoin blockchain because they can rely on it being a universally stored immutable record, at the same time they are reliant on the network accepting and storing their extra data. This could be their potential downfall.

There are some people out there that could be called "Bitcoin purists". They create transaction blacklists to hamper the propagation of transactions from Bitcoin 2.0s and other blockchain bloaters. While those blacklists might be effective if there are a lot of nodes running this code (which is rather unlikely), a more insidious attack would be to convince the mining pools not to include data from the Bitcoin 2.0 platforms. As mining becomes more concentrated in big pools, and the mining profit margins become thinner and thinner, a few pools might welcome a subsidy from a purist or a 2.0 competitor.

Moreover, due to how Bitcoin works, this blacklisting can be quite easy to execute. Someone wishing the bloaters gone could check each block for those transactions. If there were no such offensive records in the given block, the attacker could just send the subsidy to the address from the coinbase transaction. This way one can reward censoring pools without even knowing who the parties involved are. You just have to let them know the rules of the game through an email or some public announcement.

To counteract this, the Bitcoin 2.0 would have to rely on the goodwill of the honest pools, increased transaction fees to give the pools an incentive to include their transactions or a direct subsidy from the 2.0 developers to the pools to let their transactions in.

All in all, this seems like an easy way to carve out your competition in the future if the competition between the Crypto 2.0 platforms will start to become more and more fierce.

Unenforceable embargoes


Many countries use the banking system and the flow of money as tools in their political regime. There is a lot of pressure to keep some countries, such as Iran or North Korea, from being able to deal with the rest of the world. However, in a decentralized Crypto 2.0 system, either everything goes or the system goes. This may very soon create a situation where the unstoppable force of innovation from the crypto space will meet with the unmovable object of nationalistic policies. In the end, only one will be able to prevail.

This issue affects a system like Ripple and Stellar the most. In those 2.0s one can freely trade between any pair of currencies. This means that if say, we have USD issued by a bank from the States and IRR issued by a bank from Iran, one can trade the USD for IRR just as easy as one would trade USD for EURO.

As the systems don't distinguish or discriminate between any currency or issuer, this makes the monetary sanctions unenforceable in the system without completely shutting the network down.

If this issue would ever come up, this would probably be the biggest legal battle a crypto system would have to face. Can a company develop a software that is by its very inclusive nature allowing some people to break the law? Can such a system be allowed to exist and run? Perhaps a combined pressure from a hegemonic government and oligopolistic banks would be enough to drive the crypto scene underground. However, given another outcome, we would see that the emperor has no clothes and progress cannot be stopped...

Conclusions


There is more than one way to kill a crypto. You can either attack its value to grind it down to dust, pay the miners to censor it into oblivion, or challenge the status quo and see what remains after the battle.

2014-12-11

Convenient bugs and arbitrary features

As with any software out there, Bitcoin and related cryptocurrency systems occasionally get bugs and change some features of the network. That's to be expected - one needs to adapt to the changing world or the software will become useless, especially so when we're talking about moving money around. However, in the recent times I've noticed a few Crypto 2.0s dealing with issues that could be an interesting study into the incentives of their developers.

Keep in mind, I will be speculating a bit in this post. It can be safely assumed that unless there is evidence to the contrary, the various development teams have everyone's best intentions in mind when working on their software and as such any perceived malice is only in the eye of the beholder. Similarly, since software development is essentially using finite human resources to patch up seemingly infinite amount of bugs, there are priorities for what needs to get fixed when.

With all that in mind, lets discuss some convenient bugs and arbitrary features.

Convenient Bugs




What do I mean by convenient bugs? Generally, a bug is an unexpected way a piece of software behaves. Most often, it's an undesirable behaviour for the users - if it was desirable, it would be turned into a feature. However, what if a bug for the users can be seen as a potential feature for the developers or investors? That's what I would call a "convenient bug" - an error in the code that you don't want to fix too quickly since it unexpectedly rewards you for not fixing it.

Ripple fee spike


About two months ago some people reported a sudden spike in the load on the Ripple network. In turn, that spike caused the fees enforced by the network to go up by a factor of 1000. This means that a fee that used to be negligibly small suddenly started creeping to the level of a penny per transaction.

While that might seem like much, keep in mind that unlike Bitcoin, the fees are not transferred to the miners, as Ripple has none of those, but are instead burned. As such, the amount of XRPs in the system decreases in theory enriching everyone that holds XRPs. Since Ripple Labs holds most of the XRPs, they earn the most for this fee being left at a high level. As such, this convenient bug creates an interesting incentive for the developers to label it as "minor" and not fix it for awhile, conveniently earning them more and more money.

While the amount is small for now and I doubt the developers are this greedy for some pennies, some other system might encounter a similar bug in the future and the incentive might be greater to just let the bug stay for awhile...

Counterwallet BTC trading


On the Counterparty network, one can issue any asset and trade it for either XCP or BTC. Since BTC has a longer track record than XCP and has more established value, the usual issue applies - why would you want to use another token if you can use Bitcoin? While the network does burn some XCPs to create assets, there doesn't appear to be much use for the tokens over Bitcoin in the network. Well, at least until November that is...

At the moment, Counterwallet is the only Counterparty wallet, at least to my knowledge. In November, the wallet developers addressed some issue with the wallet having problems using BTC to trade assets on the network and removed the functionality. As such, it became impossible for people to trade Counterparty assets for anything besides XCP.

While the reasoning behind the scrapping of the feature is fairly reasonable - technical limitations from the Bitcoin network and so on, some people looking for a conspiracy could see this as a move to force people to use XCPs and thus increase their value for the holders.

Arbitrary features


While convenient bugs come from the software not working as initially intended, arbitrary features are deliberate changes made to the software to achieve new and sometimes undesirable functionality.

Mastercoin fee structure


For awhile now I wondered what use are mastercoins on the Mastercoin network? Early on Mastercoin didn't have much of fee structure and as I was told you could trade any token for any token on the network as well, thus there was no need for MSCs to really exist. Well, at least until June of this year.

Almost a year after Mastercoin was launched, the developers introduced a new fee into the system - a fee for fundraising. While that's understandable way to prevent network abuse, the form it took really stood out to me as greedy. While on Counterparty one is charged a fixed amount of XCP for asset creation, Mastercoin instead used a percentage fee. 0.3% of money raised would be converted to mastercoins and then burned by the network.

This arbitrary fee essentially became a way for people that hold mastercoins to monetize their investments. Since there would be a constant buying pressure from new assets being created on the network and no downward pressure from any new MSCs being created, the tokens are bound to increase in value over time.

While the previously listed bugs could be explained by the network or software behaving unexpectedly, I am still to hear a good reasoning for why this arbitrary feature was introduced to Mastercoin.

Conclusion


In conclusion, there are many factors that may influence how a decentralized financial system is developed. While one can hope that most developers will do their best to stand for the majority of the network and look out for their best interest, there might be some that would be catering to a minority that holds enough money to sway some interests...

2014-12-02

The paradox of presales - pondering Gems

A few weeks ago during one of the Vancouver Bitcoin Meetups, we were introduced to the Gems platform. Gems is a social messaging app that allows the users to talk with other people securely and send them crypto tokens easily. Another big feature of the platform is that people can get paid to receive ads in the application straight from the advertisers, creating a new kind of relation between them and the consumer. The topic that sparked the most interest and a heated discussion, was the token presale and a small paradox it created.

Gems platform is issuing its own currency in a form of 100 million gems. Some of those tokens will be airdropped over the course of a few years, some will come in form of bounties, and a number of them will be sold during the presale to fund the project. The gems will have value on the platform because they will be used to create and pay for ads that will be displayed on the Gems network. In other words, advertisers will have to buy gems so they can pay people to view their ads. Seems simple enough.

However, as is usually the case with token presales, the first thing people ask is "why would I want to use gems if I can just use bitcoins?". The change would be simple enough from a development perspective - if a network can handle payments in gems, it should also be able to handle payments in bitcoins. Starting from this assumption, gems are an unnecessary level of abstraction - most people will prefer to be paid in Bitcoin, and most advertisers will be able to pay them in Bitcoin, so going in and out of gems just to display the ads seems unnecessary.

However! There is a third side to this coin. The most basic function of any presale is to earn money for the developers to be able to actually create the product. As such, if the Gems platform did not use gems instead of bitcoins, the developers wouldn't be able to keep the current platform design and still have money to build it. By introducing the gems, the developers can sell the tokens to raise the money to build the Gems platform.

And here lies the paradox of (a lot of) presales. In order to create a compelling product through a presale model, a developer needs to create a new token and integrate it with the platform. However, by the simple fact that the platform uses a new token rather than Bitcoin, it becomes less desirable to the end users. Without the token, there can't be a presale and thus the end product might not be made.

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.

2014-07-03

CryptAvatar - Improving wallet usability

A lot of you know about Gravatar, a globally recognized avatar service. It's essentially a website that lets you set an avatar that is associated with your email address across multiple places, like forums, StackExchange, etc. From a user experience standpoint it's a great service that can fetch all of your relevant data wherever you go without you having to type it in over and over again.

Awhile back I learned that Gravatar supports Bitcoin addresses. Neat! Now anyone can know your address of choice for Bitcoin, Litecoin and Dogecoin. Sample profile. This is useful if say, you want to tip someone some BTC and only know their email and so forth.

However, if this concept was expanded a bit, this could become a really neat feature for a number of wallets!

Friendly wallet profiles


Imagine that whenever you scan someone's address, instead of seeing a boring string like "18zRT8jaHJUZe3foLcHkocV468dZ9sGiBq", you would see someone's profile picture. You could easily identify who you're paying to, what's their name and so forth. This would be a much friendlier user experience. Essentially, it could look a bit like what PayPal did with their mobile app:


While this wouldn't protect users from some fraud of someone creating a fake profile and what have you, it would still make Bitcoin wallets more user friendly.

Pay to anything


At the moment Gravatar does not support searching for a user profile by anything other than their email, which is very limiting. If we could search by users' coin addresses, we could use their Gravatar images easier. Moreover, if Gravatar supported searching by any field the wallets would become even more user friendly. Imagine being able to find someone's Bitcoin address by their Twitter handle, phone number, or any other online profile. This would eliminate the need to scan QR codes while still allowing for easy person-to-person payments.

CryptAvatar, a sample implementation


Awhile back I was inspired to create a sample implementation of what Gravatar could become for crypto users. I call it CryptAvatar. It's a service that allows any wallet provider to search for peoples' public profiles using their email, coin address, Twitter handle, phone number and a number of other handles. It supports any currency using a similar address scheme as Bitcoin. Data is presented in a human and machine readable code. Here is a sample profile found by a handle:


Now we just have to wait for some wallet services to start supporting this...

In conclusion


All in all, Gravatar supporting Bitcoin addresses in their public profile is great, but given a few more tweaks and more searchable data a service like Gravatar focused on cryptocurrencies could really take off!

A killer feature for wallets and exchanges

Awhile back I was working on some software for a Bitcoin ATM that didn't offset its Bitcoin sales instantly at an exchange. During that time it hit me - the software I was developing could be a killer feature for a number of wallets and exchanges. Since at the moment I don't have much time to implement this myself and Coinbase recently announced a similar feature on a smaller scale, I might as well share my thoughts on the matter.

Bitcoin transaction offsetting


One can do a lot with the transparent blockchain that Bitcoin has. For example, if one uses a wallet like Blockchain that reuses the same address for change, it is really easy to estimate how much money one has spent. Take for example, this random transaction:


We can see the owner of that address spent 0.05BTC somewhere and returned 0.0015876BTC back to their address. At the current rate of about 650 USD/BTC, that's roughly a $32.5 purchase.

Since we know exactly how much an address is spending without having to have a direct access to it, we can do a neat trick of offsetting any and all purchases made with an address at an exchange automatically. We would just monitor the blockchain for any transactions coming from our address, and see how much money was transferred out of it. Then, using some publicly available APIs on a number of exchanges we can buy the same amount of BTC back instantly. Pretty neat.

A service like that would encourage a number of Bitcoiners to spend their coins more willingly. I was hesitant to spend my coins at times since buying them at an exchange was a bit of a hassle. If I could just deposit some fiat at an exchange and automatically have all my purchases offset, I would be more willing to spend the coins at a regular basis, since I would be netting the same amount of them at the end of the day.

One step further


This simple scenario is a beginning. The same service could be expanded to say, let you invest into coins as you spend them. One would just take the amount to be offset and multiply that by a ratio greater than 1. For example, 1.05 would mean that I would be buying 5% more coins that I would be spending. As a person that is bullish on Bitcoin, this would not only encourage me to spend my coins, but it would reward me for doing so with more coins ;). (I know this can be done manually and what have you, but sometimes small automatic rewards can feel better than doing things yourself)

Another great part of this approach is that it doesn't have to be an external system. The same functionality could be handled by a wallet or even an exchange itself (they would probably love it more so as it would be bringing in more volume). I would love to see a big exchange implement something like this.

In conclusion


All in all, automatic transaction offsetting in Bitcoin is really easy and encourages more bitcoins to be spent and bought all the time. What Coinbase implemented is a nice step in the right direction, but it's far from a complete solution.