Showing posts with label Fiat. Show all posts
Showing posts with label Fiat. Show all posts

Monday, January 25, 2016

Cryptocurrencies as protection from the government

Cryptocurrencies as protection from the government

Recently, International Monetary Fund released a report on Virtual Currencies. Overall, it's not a bad report - it discusses whether virtual currencies such as Bitcoin should be considered money, what the regulatory approach should be and what are some of the challenges related to dealing with cryptocurrencies. It has its share of misconceptions (for example: "VC schemes are difficult to monitor. Their opaque nature makes it difficult to gather information, including statistical data, or to monitor their operation." - yeah, no, that's the current banking system you are describing there), and overall it paints a cautionary picture of virtual currencies. However, I think the report is missing one important feature of cryptocurrencies that a lot of people might find interesting - they are a protection from the government. Let me explain what I mean...

Government power over money


When you stop and think about it, a lot of governments have nearly orwellian power over money. The monetary policy is not something that is often discussed by a lot of people, and often we are not equipped with the vocabulary to talk about it (like trying to form complex thoughts in newspeak). They get to decide whether savers or borrowers have it easier by controlling the rate of inflation. They get to determine how much your labour is worth by engaging in currency wars and a "beggar thy neighbour" race to devalue its currency the most. Then we have the incompetent governments that let their currency devalue in hyperinflation like Venezuela (reaching about 100+% in 2015). The fiscal and monetary policies are thrust upon us.

In short, the governments can effect our savings, future income, as well as many other factors just by controlling how money is created and spent.

Lack of trust in the government


For those and other reasons, some people resort to moving away from the government-issued currencies and adopt new forms of payments. Whether they take the form of local currencies, gold or something else, they can be an expression of lack of trust in the government.

However, there are limitations to a lot of those currencies in the modern world. Local currencies are often low-tech and they are not usable globally. Physical currencies can be seized by force (like in 1933 in USA, by the Executive Order 6102).

At the moment it would appear that only native cryptocurrencies such as Bitcoin can be a viable protection from the government in the modern world.

Protection from the government


While some people would jump to thinking that "protection from the government" necessarily means breaking the rule of law and engaging in illegal activities, that's not what I'm talking about here. What I'm discussing is withdrawing at least partially from the fiat-fuelled economy and moving into the cryptocurrency economy. One can and should still pay taxes, obey the law and so on, but that doesn't mean one has to keep one's wealth in the potential house of cards that various banks and government currencies are (look no further than the 2013 Cyprus crisis and the related bank bail-ins).

I am a saver, not a borrower. I wish for my money to at least keep its value, or be worth more. I want my wage to be stable no matter which government I work under. I don't want the currency I use to be created as debt by the banks, or even let the banks take any part in the money creation process. As such, I know of no fiat currency in the world today that satisfies my preferences, hence why I choose Bitcoin over fiat.

Conclusions


Native cryptocurrencies like Bitcoin offer a way for people to de-leverage the power governments hold over the currency and shape a new economy for themselves.

The IMF and similar organizations need to understand that asking "should the government regulate cryptocurrencies?" might be less important than "if cryptos will succeed, why would anyone continue to use fiat?". Probably for the first time ever, fiat currencies have a worthy competitor in the global Internet economy. They can either focus on becoming the best currencies they can be to compete (akin to Steam trumping free torrents), or go the way of the Kodak.

Related topics:

Monday, January 11, 2016

Full Proof of Solvency - pondering Tether

Full Proof of Solvency - pondering Tether

Tether (currently in beta) is a fiat gateway allowing its users to transact in USD IOUs on Omni and internally in Tether's shared wallet. One of the core features the platform advertises is its 100% backing of the issued assets, coupled with frequent solvency reports. This used to be a big issue in the Bitcoin world a few years back, when MtGox, once biggest Bitcoin exchange in the world, became insolvent and shut down. After that incident, a few exchanges (1, 2, 3) started looking into creating proof of solvency to bolster consumer confidence in their platforms. Today I would like to talk about what constitutes a full proof of solvency, how Tether approaches it in a multi-platform system, as well as some potential pitfalls one might face while designing proof of solvency.

Proof of Solvency


A quick recap of what is a Proof of Solvency. In simple terms, its a way for exchanges and other companies holding their customer funds to prove their liabilities to their customers never exceed their cash and crypto reserves. It stands in stark contrast to fractional reserve banking, where by definition, there isn't enough cash or precious metals to cover all of the outstanding deposits. Historically, this is an important concept for Bitcoin - the Genesis Block created by Satoshi quotes a newspaper headline talking about a bank bailout.

Since we're dealing with cryptocurrencies, the modus operandi is always "trust but verify" - claiming that you have a certain amount of money but not having a strong, verifiable and falsifiable proof usually raises red flags.

Proof of Solvency can be broken down into two parts - Proof of Liabilities, wherein the company proves how much they owe their customers, and Proof of Reserves, where they prove how much liquid fiat and crypto they have to cover those deposits.

Proof of Reserves


Proof of Reserves is usually quite tricky for the Bitcoin exchanges as it often involves interacting with "the old financial world" - banks and their banking system. To prove they are solvent, an exchange would publish statements from their banks indicating how much money they have in a segregated account. As banks usually don't focus on creating cryptographically authenticated documents or balances, this is usually the hardest part of the proof to verify outside of a full audit.

However, when we get into the cryptographic world, things get a lot easier. An exchange needs only to state which addresses they own, what is their current balance, and sign the message with those stated addresses. This proves they have access to those addresses, and anyone can go onto the blockchain and verify how much money is really in them at all times.

The last part can also be very important - being able to verify the reserve balance at all times, or at least very frequently, is a lot more reassuring than one-off statements. After all, one could borrow the money for a day to create the proof, therefore misleading everyone.

In the Bitcoin world, one might try to similarly falsify the reserves by asking someone else with deep pockets to sign the proof of reserves statements, creating a false belief that those coins form the reserves. However, this problem can be mitigated with Voting Pools.

All in all, Proof of Reserves is fairly straightforward, at least when it comes to cryptocurrencies. Banks still need to catch up.

Proof of Liabilities


Proof of Liabilities can be tricky for the Bitcoin companies as it often touches on their customer records and databases.

If we're dealing with cryptographic IOUs, things are fairly simple - one only needs to point to the issuing address, count the total number of outstanding liabilities, and sign the statement. Anyone can verify it in real time, just like in the Proof of Reserves for cryptocurrencies.

When it comes to shared wallets and private databases, as is usually the case for many exchanges, the things get a bit more complicated. The companies usually don't want to reveal the balances of every individual account, and the dumps could get quite sizeable (back in 2011, MtGox's database leak was said to contain 61'016 user accounts).

There are a few ways of compressing the data, but the most popular one appears to be creating a merkle tree consisting of account IDs and balances. A single account-balance pair would be a tree leaf. One would then combine the two balances together and pair that with a hash combination of the IDs to form a node higher up the tree. This would continue until we would get one hash and one balance at the very end.

This merkle tree would be hard to fully verify without access to the full account list, but it would also be combined with another interesting trick - every user would be able to request an SPV-like balance branch connecting their account to the merkle root of the tree. If the exchange would fail to provide the branch, the balances would not add up, there would be some negative balances or the branch would not match the latest published root - one would have a cryptographic evidence of foul-play. Now if we only had something like this for the banks...

All in all, Proof of Liabilities is a bit harder than Proof of Reserves, unless we're dealing with pure cryptos once more. Combined with Proof of Reserves, we create a Full Proof of Solvency - the company in question is completely liquid, at least for the time being. Now, lets take a look at how Tether does this...

Tether


A good chunk of this discussion is based on a few conversations I had with the company last year. Since the product is in beta and some time has passed since I spoke with them last, this description might not be indicative of the final product if and when it launches. I bring this example up mainly because it raises some insights into a few important design choices for gateway design.

Tether at the moment is a gateway focused on issuing USD-backed IOUs. Those IOUs can be transferred both on the Omni network, as well as from inside of the Tether shared wallet. In the future, it would be possible to see Tether issuing similar assets on other Crypto 2.0 networks, such as Ripple or Ethereum.

We can see their outstanding balances on their transparency page. Here we come to the first design question - what does this number represent? Is it the balance on Omni, in the shared wallet, a sum of both or something else?

In case of Tether, the number corresponds to the assets issued on Omni. Their shared wallet balance is then a subset of that amount, and as I understand, balances on any other network like Ethereum would also have their own separate balances on the Omni network.

Since we're dealing with multiple networks, the Full Proof of Solvency would be dependent on all of them. In case of Tether, we would start with Proof of Reserves to figure out how much the company has in deposits. The number would be compared with Proof of Liabilities from the Omni network. If that passes, our job is still not done. Now we would use the Omni balance of the shared wallet as a PoR to compare against the PoL of that wallet, and use similar methods for any other connected networks.

The Proofs are valid top-down. If any part is invalid, anything relying on those Proofs are also invalid (which might be more relevant for bigger constructs, like exchanges relying on Tether).

Another interesting issue to consider would be the transaction lag when moving between the different networks. As Tether's top-level settlement network is Omni, which in turn is sitting on Bitcoin, the transactions that move assets between network would have to go over one of the slowest cryptocurrency network (at least in comparison to things like Ethereum or Ripple), which might not be ideal. Since Tether as a company already needs to provide Proofs for all of the network as well as its own wallet, it would make the most sense to make the fastest element be the top level, which in this case would be the wallet.

Conclusions


Full Proof of Solvency is an interesting concept that came out of the Bitcoin world in reaction to shoddy business practices of using fractional reserves at an exchange. It can be tricky to implement when dealing with non-cryptocurrency systems, but becomes trivial on publicly auditable blockchains. It would be interesting to see something similar implemented in a traditional bank...

Sunday, August 16, 2015

Reverse BitPay - receive fiat payments, get paid in Bitcoin

Reverse BitPay - receive fiat payments, get paid in Bitcoin

There are a lot of projects in the Bitcoin space that act as Bitcoin to fiat bridges - they accept Bitcoin and sometimes other currencies on your behalf and pay you in fiat at the end of the day. However, there doesn't appear to be anything out there that does the reverse for you - allow you to accept fiat payments and pay you in Bitcoin (the closest would probably be BitWage, but that project is aimed at employers paying their employees, rather than anyone being able to accept wire payments seamlessly). A project like that may be a useful part of the "rebittance" space.

So how might a project like this look? I would imagine it would be a mix between a bank and a Bitcoin exchange. You would sign up for an account, probably verify your identity for KYC purposes, and then you would be ready to start accepting payments. You would receive a segregated bank account number, similarly to what you would get in a bank or a credit union, and whatever funds would be deposited to the account through a wire transfer (or whatever other means commonly used in US and other countries that are averse to wire transfers for some reason) would be instantly converted into BTC at the current rate.

This approach, if deployed in some key countries, would allow for much easier flow of funds internationally. Perhaps paired with a mailbox rental service, you could potentially create a virtual presence in any country, receive local payments and get paid internationally. This would allow you to tap into the global marketplace from anywhere in the world and still get paid in a timely and affordable fashion. You could either keep your earnings in Bitcoin, or convert it on the spot back into your local currency through a rebittance service or perhaps a local exchange.

Now, if you extend this solution into the Crypto 2.0 space, the service would essentially work as a fiat -> fiat-denominated crypto gateway. This would allow you to receive payments in any currency while still having an easy way to convert between everything, rather than using Bitcoin as the intermediate currency.

How likely is it that we will see a project like this any time soon? Pretty unlikely in the form described. You would probably need to start with some forward-looking bank or a credit union that has access to the legacy banking system, figure out whether it is legal for them to set up accounts for entities in another country and see if they would be willing to take the risk associated with handling money like this. Maybe once the crypto space is better established we would see something like this come about, but that can be still ways away.

EDIT:

Relevant discussions:

  • https://www.reddit.com/r/Bitcoin/comments/3hack0/reverse_bitpay_receive_fiat_payments_get_paid_in/
  • https://www.reddit.com/r/CryptoCurrency/comments/3hack1/reverse_bitpay_receive_fiat_payments_get_paid_in/
  • https://twitter.com/MeherRoy/status/633180115183235072