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.

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