Monday, October 5, 2015

Blockchain for banks - an overview

Blockchain for banks - an overview

As discussed before, the banking world appears to be looking into the blockchain space with companies like Digital Asset Holdings or R3 CEV gaining some momentum. However, a lot of people seem to see the blockchain as a silver bullet to solve a number of unspecified problems for the banking industry. Today, I would like to share with you a possible overview of how a blockchain-powered banking system might work using both public and permissioned blockchains.

Identifying the problem


There are many different needs that both the banks and their customers have. A commercial bank will have different priorities from a retail bank, and they both will have different priorities from an investment bank. The blockchain technology is very well suited for settlement between parties. More complicated functionality can be either accomplished by a more focused technology like Open Transactions or more general smart contracts available for example on Ethereum. We will mainly focus on the settlement problem in this post, but will mention other issues as they fit in.

Is blockchain the way to go?


A blockchain is a very specialized tool. As discussed before, it is similar to a database, with a few notable differences. Performance-wise, blockchains might not be as efficient as centralized or distributed databases, but what they lack in performance they make up in other areas for some projects.

A blockchain enables accountability. A public blockchain like Bitcoin is a publicly verifiable, unalterable record of history. A permissioned blockchain may still be subject to forging of records if it is kept completely private, but if it is shared with an independent auditor or a digest of the records are anchored in projects like Factom, they can also be provably unalterable.

A blockchain is also a good way of reaching distributed consensus if the involved parties don't trust one another, say for international bank settlement between Russia and USA. If all parties run on the same protocol with conflict resolution, there is no doubt which transactions came through and in what order for example.

On the flip side, depending on the technology used, the blockchain might have lower transaction throughput than a dedicated, centralized server / database. At the moment the fastest ledgers update in 2-5 second intervals (in case of Ripple). To go faster, one would need to use ledgerless technology, such as Open Transactions.

Public versus permissioned blockchains


When we have identified which problem to solve and believe using the blockchain is the way to go, we should consider whether to use public or permissioned blockchains to help us achieve our goal. Pretty much everything that can be done on a public blockchain can be also achieved on a permissioned blockchain. Bitcoin and coloured coins act similarly to MultiChain. Ethereum can be approximated by Eris, and Ripple - by Hyperledger. Worst case scenario, most crypto projects can be forked from their open source repositories and modified to suit the particular needs.

Since the permissioned blockchain is handled by known, controlled servers, it can be pushed to achieve higher performance than a public blockchain by using higher-end hardware and network capabilities. Similarly, the more controlled environment is not at a whim of spammers, transaction fee fluctuation or any external forces.

That being said, a permissioned blockchain in many cases is a walled garden barring entry to a lot of possible innovators. While this can be useful for protecting sensitive information, you can also miss out on the network effect from using the public blockchain. It's just like the internet and the intra-net - both have their uses and drawbacks.

For a lot of applications, it might make sense to either be completely on a public blockchain, or at the very least operate on both the public and permissioned blockchains at the same time. For example, if SEPA operated its own permissioned blockchain to offer settlement between all the European banks, it could also offer similar services on a public blockchain for lower-frequency transactions and perhaps a bridge to connect between the blockchains. This way if someone decided to build, say, a settlement corridor between Europe and America, they could use the already available public blockchain without having to apply for a banking license to get access to the premissioned one. This would enable more innovation to take place on low-performance environment while keeping the core network performing very efficiently for high-volume transactions.

Just to note - a public blockchain does not mean everyone would be able to use the solution indiscriminately. Pretty much every blockchain offers some way of controlling who can access various currencies issued on it, either through the use of white- and blacklists or through multisignature. This means that the banks or governments can still follow with KYC and AML requirements, even if the blockchain is public for viewing.

Picking the right approach


As with most situations, there are many ways to approach a problem on a blockchain. For example, in order to do international settlement, one can issue fiat-denominated currencies, copy an existing FX market and use that for currency conversion, use an intermediary cryptocurrency like Bitcoin (an approach used by Abra for example), or perhaps create a smart contract to handle the trades. The number and kind of options will depend on your problem at hand and it's hard to generalize this point.

Monday, September 28, 2015

Pondering Proof of Importance

Recently, I listened to a Let's Talk Bitcoin podcast discussing NEM (New Economy Movement), a new Crypto 2.0 system. So far, I was unable to receive any detailed overview of it for the Crypto Comparison Chart, but one feature that stands out as unique to NEM is their Proof of Importance mining algorithm. Lets have a look at how it holds up in comparison to what is already out there.

Proof of Importance


The detailed overview can be found in NEM's Technical Reference document. In general, it looks like a variation of Proof of Stake that gives extra weight to accounts that are actively transacting with a lot of other accounts. The actual equations as to how the weight is calculated and how it affects who will be selected as a miner is detailed over several pages of the document.

The downside of putting extra weight on transactions between accounts on the network is that the system can be easily gamed, at least until we solve the "one-identity-per-person" problem. Creating accounts and sending transactions around is trivial, and figuring out the exact method of getting the maximum return to game the algorithm is only a matter of time. Even the document itself demonstrated that an attacker performing a sybil attack can boost their importance by about 10% in comparison to someone that just holds onto their tokens:




So all in all, the system rewards those that hold the tokens moderately. Shared wallets, exchanges and payment processors would be examples of businesses that would receive proportionally more bang for their buck as it were, but a highly-optimized attacker can still beat out the quasi-random transactions of the above businesses by always performing the optimal transactions.

Conclusions


The sybil attack vulnerability of NEM reminds me of the old problem faced by Bitcoin mining pools back in 2011 - pool hopping. If a system allows any attacker to gain an advantage over honest players in the system, the algorithm needs to be changed.

As for the rest of the NEM system - I haven't yet had the time to explore it too deeply, but it also seems to suffer from the problem of being easy to front run by the miners (or harvesters as they appear to be called in NEM).

Monday, September 21, 2015

The dawn of the great crypto extinction and reimplementation

The dawn of the great crypto extinction and reimplementation

In the crypto world, there are hundreds if not more of cryptocurrencies. However, just like we saw an explosion of cryptocurrency projects in the past few years, we might see a "great crypto extinction" event, possibly accompanied with a great reimplementation effort. Let me explain what I mean by that.

The current state of affairs


Currently, we have a lot of different cryptocurrencies cropping up. Those could be roughly divided into a few categories:


  • Copycoins - currencies that copy Bitcoin and tweak only a handful of features that don't alter how the coin behaves. Those would include Litecoin, Dogecoin, or Quarkcoin.
  • Asset coins - copycoins that issue and distribute real world assets through a copycoin system, for example Coinaaa or PayCoin.
  • Innovation coins - currencies that innovate with the Bitcoin technology and take the technology in new directions. Those would include Dash (formerly Darkcoin) or Namecoin.
  • Token coins for Crypto 2.0 networks - coins tied to a Crypto 2.0 network and used as a native currency for various purposes. Those would include Ethereum, Ripple or BitShares.

With the development in the crypto space, a good amount of those standalone currency networks are already becoming obsolete. The Crypto 2.0 networks are making the copycoins and the asset coins less and less desirable to use - Namecoin can be reimplemented easily as an Ethereum script and any asset coin can be easily issued on Ripple for example.

However, there are a lot of people opposing the use of those network due to the proprietary tokens needed to run the system. However, if the concept Sidechains delivers on its promises, that issue could be solved in the near future.

Sidechains - an important piece of the puzzle


The premise of Sidechains is to allow anyone to move bitcoins out of the Bitcoin network into a separate network and vice versa. This would mean that we could easily move value between cryptocurrency networks without relying on centralized exchanges, proprietary tokens specific to those networks or multi-party voting pools.

If this goal would be achieved, it would mean that any Crypto 2.0 network could be in theory reimplemented to use bitcoin-pegged tokens as its native currency, tapping into the huge Bitcoin market cap and relatively more stable value. In other words, we could have Bitcoin-powered Ethereum, Ripple, BitShares, etc., and those would in turn make a lot of other coins obsolete in the process.

The great extinction event - who will survive?


In the crypto world, it is sometimes hard to predict which projects will survive and which will die. It seems that a lot of projects are driven by their community (such as Dogecoin), speculation (as outlined very well in The Story of Bob Surplus), or the development team behind it (Ethereum). Moreover, software never dies - if there will be at least one person running a client for CoiledCoin in 50 years, it can't really be called dead.

That being said, there are definitely some networks that will remain largely unaffected even if and when the Sidechains will take off. Those would include the blockchains that take a lot of technical expertise to develop and maintain, such as Ethereum or Ripple. They are unlikely to be dislodged from their position because they have or would have by that time a big development team improving the technology raising the barrier to entry for any newcomers.

The same could be said for more "established" cryptocurrencies, such as Litecoin. Their long history will let them remain pretty much in the same position they are today - as something to trade and speculate on.

Conclusions


With the possible advent of Sidechains, we might see a great cryptocurrency extinction event that will drive to replace obsolete cryptocurrencies with new technology. We are likely to see some more innovative projects, such as the many Crypto 2.0 networks, reimplemented as sidechains to augment what is currently possible on the Bitcoin network.

Monday, September 14, 2015

Death of Satoshi

Death of Satoshi

In the recent months, the Bitcoin community is discussing probably the most controversial issue the project has faced thus far - whether or not to increase the block size. This debate is hastened more and more by various "stress tests" that involve spamming the Bitcoin network. Among some of the arguments for and against the proposed changes you can hear people repeatedly mentioning "Satoshi's vision" (1, 2, 3) as a justification for their position. Is it perhaps time for us to stop appealing to the authority and start to forge our own path forwards?

What Would Satoshi Do?

Satoshi "Cyberchrist" Nakamoto

It seems that a lot of people have set out to save all of Satoshi's posts and quotes. The day he left his last post is remembered. Despite being gone from the Bitcoin community for almost 5 years, Satoshi's ideas seem to carry a lot of weight. This looks like early stages of religion with a gospel, rather than a technology revolution.

Satoshi was (most likely) a single person. As it goes with all people, nobody knows everything, nor can foresee exactly how the future will unfold. Trying to discern whether we should or shouldn't increase the block size can be viewed akin to divination.

Satoshi might've been visionary to create Bitcoin and code it, but lets not forget all the other developers that followed in his footsteps and took over when he left.

The "other" developers


The Bitcoin Core software has been developed over the years by a group of about 5 core developers, depending on how you count, and over 300 contributors. There are many talented developers and cryptographers working on the Bitcoin and related technologies, such as Vitalik Buterin or David Schwartz.

A famous photo of some of the top people involved in Bitcoin. Some speculate one of them might be Satoshi. More info.

To belittle their contribution to the project and the Bitcoin ecosystem as a whole in favour of someone that has been gone for a majority of Bitcoin's history by now is a major disservice. Even if we assume Satoshi was the smartest, most talented and most experienced developer to contribute to Bitcoin, he is still just one person.

The Death of Satoshi


In literature, one can set out to interpret a given text in two ways. First, by the intent of the works' author and what they themselves ascribe to the piece they created, and second, by reading the text on its own without considering who the author was or what they intended the text to be about. The latter is known as "The Death of the Author".

Perhaps when discussing how the Bitcoin software should be developed, we should assume the death of the author and move forward forging our own path?

I know this view might be hard for some people, after all, constitution worship and apologetics seem to be quite prevalent in some of the top countries using Bitcoin and it would be all too easy to use the same approach for Bitcoin. However, as we move forward into the future, Satoshi's posts and views will be more and more out of touch with the present day and we can't constantly go back and try to interpret meanings from them to solve all of our problems...

Conclusions


While Satoshi was a smart person for having came up with the idea of Bitcoin, we have to sooner or later move on to plan for the road ahead, rather than constantly look backwards.

Sunday, September 6, 2015

Pervasive banking

Pervasive banking

In computer science, there is a concept of "pervasive computing" - an idea that instead of using a specific device to perform computation, it would instead be distributed "everywhere" and we would instead just use our devices as interfaces to access this ubiquitous computing environment. So instead of having say, a laptop or a PC where we run our programs, we could have a local cloud of computing devices to provide us with their resources at our disposal. Just as computing appears to be moving to this model with say, home game streaming, perhaps it's time for the banking services to take a clue as well?

What would constitute a pervasive banking experience?

  1. The ability for anyone to access the banking network
  2. The ability to cash in and cash out at any location, not just the banks and ATMs
  3. The freedom to pay conveniently in any fashion


Number 1 we've discussed before. It would be really good if banks were considered to be a common carrier, and thus unable to refuse the service to anyone that pays the fees and follows the rules.

Number 2 is interesting. There are a few examples of some convenient cash in / out cropping up here and there. I've seen a few banks offering cash out services during checkouts at stores, Apple Pay looks like it will be offering P2P payments to allow people to pay for other people's purchases and what not, and Abra is looking into offering P2P remittance services.

Perhaps in the future we will see more companies embracing the "anywhere-in, anywhere-out" nature of banking and we might see say, self-checkout kiosks or even vending machines acting as our convenient ATMs? After all, if they can already accept deposits, make change and accept credit cards, they have all the functionality needed.

Number 3 appears to be also already in the works. We've got Google Wallet allowing you to pay wirelessly (although at the time, only in US, which still appears to be too focused on magswipes...), or a poorly named "Coin" card that replaces your multiple card with a single programmable card (unfortunately, with the outdated magswipes...). We also have some people developing Bitcoin applications that use MasterCard's PayPass technology.

Perhaps this step will become easier once everyone is talking on a common standard. Luckily, we have a W3C Web Payment Interest Group hoping to create a standard protocol for payments (list of participants includes Ripple Labs, although I don't see any other cryptocurrency expert representing). It is possible that with the standard being established it would be easier for companies to build gateways in and out of the old banking systems and allow for everyone to be able to pay in a way that is the most convenient for them - cash, credit, mobile or crypto.

Conclusions


All in all, it seems that we are heading towards the pervasive banking / Singularity of Money concept on a few fronts, although it might still be years before the idea is fully realized.


Relevant links:

Monday, August 31, 2015

The Regime Test - a Great Filter for the cryptocurrencies

The Regime Test - a Great Filter for the cryptocurrencies

Bitcoin is a decentralized cryptocurrency. Just like gold, nobody owns the system and no single entity controls the market. While some governments might try to restrict its use, at this point the Bitcoin network is so widely distributed that any attempt to shut it down is infeasible.

However, what about other cryptocurrencies out there? How can one be sure the network they use will stick with its tenants and not start acting like a centralized system? How does one know their coins are safe from being forked and erased?

One good indicator of whether a cryptocurrency will stay the course of remaining decentralized or caving in to government's will would be "The Regime Test" - waiting for the currency to be actively used by at least a few people in some sanctioned regime, bring it to the attention of both the system developers and their government and see whether they take any steps to prevent such transactions from taking place on the protocol level, or stand by their network needing to be completely decentralized.

One could see it as "a Great Filter for the cryptocurrencies" - every sufficiently successful cryptocurrency will have to face it on the road of becoming an ubiquitous, global currency. Whether the system passes the filter and remains a decentralized network or caves in to governmental pressures forces the project to take a stand on either side of the debate - it's not an issue that can be swept under the rug for long.

This test is especially important for the Crypto 2.0 systems that allow you to deal in your local currency directly. One can never expect when a new currency would appear from either a sanctioned regime or an extremist group that is suddenly traded against the more established currencies. Whether the system is then forced to ban the issuance of such currencies or lets the gateways deal with that on a case-by-case basis with their users can be an interesting precedent. If say, someone would send a Gold Dinar from a terrorist organization that then gets swapped for USD and lands in someone's account, would that person be potentially investigated as dealing with the terrorists? What about the trader that set up an order that allowed this transfer of funds? Or more interestingly - what if the trade went like this: Gold Dinar -> native token -> USD? Clearly, the native token - USD trader did not have bad intentions when enabling that trade, but the transaction couldn't have happened without them. It might be possible that suddenly the decentralized network would start requiring KYC on the blockchain for performing any sort of trade. Suddenly, the extra KYC Ripple Labs had to go through for their wallet start to pale in comparison.

All in all, the Regime Test is another gantlet for cryptocurrencies to separate the fragile ones destined to fade away from the antifragile ones that have a potential of standing to the challenge. It would be interesting to see some exchanges in places like Iran and Syria to challenge the status quo and show that in today's decentralized world, the money is like the Internet - it cannot be stopped and it flows around barriers. Similarly, it would be great to see a few cryptocurrency networks like Ripple challenged to take a stance on this issue.

PS: Stop the Bitlicense

Restrictive regimes - Iran, Syria, North Korea and New York ;).

Monday, August 24, 2015

 A legitimate reason for premining tokens

A legitimate reason for premining tokens

In the Bitcoin world, the term "premining" is a dirty word and for a good reason. There have been numerous preminted altcoins out there created with the sole purpose of being pumped and then dumped. Some other premined coins gain slightly more credibility by premining their tokens in order to create fiat-denominated cryptos. Then again, we had some big scams in that realm as well.

Over the last few years we also had a few token presales for various app-coins (Augur, MaidSafe, etc.) and platform tokens (Ethereum, Mastercoin, etc.). While the tokens have mostly been advertised as being sold to give you access to the platform / application (possibly to avoid securities regulations), it is clear that a lot of people purchase those tokens in hopes of speculating on their future price.

And lastly, we have the case of Ripple, a Crypto 2.0 platform that was completely premined and whose parent company still owns a vast majority of the XRP tokens. Some have been sold, some have been given away, but the fact still remains - Ripple Labs owns most of those tokens. Some maintain that it can be a long-term business strategy for the company - to hold onto the XRPs for a long time while building up the network to earn money from the appreciated value of the tokens. While this might be a useful stream of revenue, I think there might be a better use for such tokens for both Ripple and similar systems that might come along.

As we have seen recently, a lot of big institutions are waking up to the idea of "a blockchain" and its usefulness for accountability and so on. Ripple is among one of such blockchains pushing for being adopted by big companies like banks or Western Union.

However, from what I heard chatting with some people in the industry talking to such institutions, the hard sell in a lot of cases is the token / coin. Perhaps this is why we see banks not wanting to adopt Bitcoin but being enamoured with a more bland and generic "blockchain" - you need bitcoins to use Bitcoin, and the price of bitcoins fluctuates wildly. The institutions don't want to get exposed to the price swings, so they opt away from such platform. However, what if we could remove that uncertainty altogether? Well, in some cases we might just be able to...

Imagine we have a company that wants to get onto a blockchain and is weighing its options. One of their concerns would be whether a system they build today will hold up in a few years time, both in therms of technical capabilities (will the system be able to expand to meet the growing needs of the network, or will we have another block size debate) and pricing (will the costs stay the same or go up). While the earlier is always up in the air since you can't predict everything, the latter might have a more concrete solution.

If we took a company like Ripple Labs with their big supply of XRPs, they could possibly offer a good solution to the pricing problem for an important enough customer. All they would simply need to do is offer that company a long-term option to buy the tokens at some fixed price. This way, the company could be certain they won't pay more than X to use the system in the future, no matter where the price of XRPs might go in the future. Whatever Ripple Labs might be losing by entering the option contract and possibly selling a fair amount of tokens at a low price years down the line, it could make up in other areas - either integration fees or the rest of their XRPs appreciating in value due to the high profile of customer they brought on.

So all in all, while there are many reasons why premining is a bad practice and should generally be avoided, there are a few reasons why it might be useful for the growth of the system.