2017-11-13

The need for universal opt-in replay protection

SegWit2x got cancelled, and with it probably the most heated "battle" in the Bitcoin space thus far draws to a close. There are many lessons to be learned from this ordeal as well as some other forks that are happening around Bitcoin - what constitutes "consensus" in the community, how will the future forks be handled and so on. One important aspect I haven't seen discussed as much currently is the ongoing issue of fork-proof replay protection - a feature that caused some controversy by its absence in SegWit2x and made Bitcoin Gold a laughing stock when they created a bounty for it very close to their forking date.

Strong vs opt-in replay protection


There is an important distinction to be made between strong and opt-in replay protection. When a fork occurs, the former is always on and prevents any transaction on one side of the fork from being valid on the other side of the chain. Bitcoin Cash has strong replay protection for example.

Opt-in replay protection on the other hand is optional - you can create a transaction that won't be valid on the other side of the fork, but you are also able to have a transaction that is valid on both sides.

Strong replay protection is useful when you want to split from the main chain and remain an independent project. However, it can be detrimental when the changes you're proposing are meant to be an upgrade to the current code rather than forking off into a new project. This is why SegWit2x didn't opt to have a replay protection - it was meant to be an upgrade to the Bitcoin project and be the only version used. The only way to achieve that was to make it hard for both sides of the fork to coexist.

Problem with opt-in replay protection


While opt-in replay protection sounds like the proper way to go, there is one important problem to consider - how do you implement it in a way that will apply to all future forks?

In a perfect world, every fork would be carefully maintained and it would make sure to make its opt-in replay protection create transactions only valid on its own chain. However, as Bitcoin Gold and other projects have proven - we can't rely on forks being managed competently. Hence, we need a universal opt-in replay protection, one that is agnostic to any future forks (even those that don't honour any replay protection whatsoever) and creates transactions that will be only valid on one chain.

Universal opt-in replay protection


A fork that splits off from the main project can be caused by any alteration to the protocol. There is no universal way to differentiate between both sides of the fork ahead of time save for one - the blockchain history. You can mimic anything about the code, even pretend to be some different client, but for certain at some points the blockchains will diverge - otherwise we wouldn't be dealing with a fork. Once that is done, the data can be used to implement the replay protection.

If one could flag a transaction to only be valid if a given block hash is present in the blockchain, that would be enough to ensure it will always be possible to safely move coins around on any fork that might occur in the future.

If both sides of the fork honour that flag, only one side will include the transaction in the block. Do this on both sides and the coins will be safe to spend on two sides of the fork.

If only one side of the fork honours the flag however, the replay protection could still work, albeit with some limitations. You would need to create a transaction with the flag on the chain that doesn't honour it. This way the chain will include the transaction in its blockchain, but the main chain will reject it, since it would not recognise the block hash. After the first transaction is confirmed, it would be safe to spend the coins on the other side of the fork.

Conclusions


It is possible to implement a universal opt-in replay protection that will still be effective even if only one side of a given fork will respect its rules. This should be sufficient to protect one's bitcoins in an event of a possible future bitcoin fork.

The proposed implementation is rather simple and elegant. I came up with this idea when contemplating SegWit2x awhile back, but then became pleasantly surprised when I found out someone else already proposed it as a BIP115 a year before :). It's not part of the main codebase yet, but maybe by the time next fork rolls around we'll have something to protect our bitcoins with...

2017-11-05

What is Bitcoin in the light of hard forks?

This year has been one of the more controversial years for Bitcoin thus far. We have already seen a number of important forks happen - SegWit, Bitcoin Cash and Bitcoin Gold, and we're scheduled to witness some other forks soon - Bitcoin Cash doing a hard fork, SegWit2x looming ever closer, and we might even see some emergency PoW change hardfork in response to SegWit2x. Amidst all of that, many people are asking themselves, debating and fighting over an important question - "What is Bitcoin?" (that iconic question).

The power of the name


Earlier this year, there was a small debacle as to what Bitcoin Cash should be called. It seems that some of its opponents wanted to dismiss the fork by calling it "Bcash" to further distance it from the Bitcoin project. It seems the "Bitcoin" name by itself holds value like any other brand, otherwise we wouldn't have so many projects using it:

How many Bitcoins do we have? (source)

In response to Bitcoin Cash being called Bcash, some supporters of that project started calling Bitcoin Cash by just "Bitcoin", and referring to the SegWit side of the fork as "SegWit Coin".

While at the start it might not seem like much, a definition of what "Bitcoin" is and which side of a fork gets to call itself that is really important. Bitcoin is a currency with over 125B USD market cap, a liquid market on numerous exchanges, and countless of projects using it, many of whom would barely be able to follow what's going on in this debate. A fork of Bitcoin, on the other hand, has to start out with nothing and build up that market almost from scratch.

This is why contentious forks are so problematic and why such a simple thing as replay protection is controversial - whoever wins in the fork and gets to call itself "Bitcoin" will be the project that matters, while the loser won't matter anymore. A fork with a hard replay protection is easy to dismiss as an altcoin, while one without is much easier to pass on as an upgrade to the protocol, as Bitcoin has historically never done replay protection (while it seems Ethereum might be getting that as a standard in the future).

So what is Bitcoin, really?


With all of those forks past and future, many people have to ask themselves - "What is Bitcoin, really?". Gavin Andresen's definition has been a good guide so far:

“Bitcoin” is the ledger of not-previously-spent, validly signed transactions contained in the chain of blocks that begins with the genesis block (hash 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f), follows the 21-million coin creation schedule, and has the most cumulative double-SHA256-proof-of-work.

It might, however, be worthwhile to start drilling down the definition and listing all of the important semantics that have or might be important in the future.

So Bitcoin could be defined as:
  1. A blockchain
  2. Beginning with the genesis block hash 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
  3. Containing only validly signed transactions
  4. Containing only not-previously-spent transactions
  5. Containing no more than ~21M coins
  6. Following the ~130 year coin distribution
  7. Continuously, publicly mined
  8. Double-SHA hashed
  9. With a difficulty adjustment every 2016 blocks
  10. Mined using a PoW algorithm
  11. Following the chain with the most cumulative work
  12. With a block limit of 1MB
  13. ...

There are many such nitty-gritty details to list and rank. An important exercise for a lot of people is to rank these various features, and in case of a contentious fork - figure out which of those features might be changed.

So for example, if Bitcoin Gold is creating a fork that changes the PoW algorithm and doing private mining for awhile, versus Bitcoin Cash changing the block limit and changing the difficulty adjustment algorithm, we have forks that change the features 10 and 7, vs 12 and 9. Following this ordered list, Bitcoin Cash would be less contentious (which is not to say - not contentious at all) as it alters features lower down the list.

So would Bitcoin be Bitcoin under Script being changed to Simplicity? SegWit2x changing the block size? A fork that changes the PoW? Which part of the fork would be "more Bitcoin" than the other?

Of course, there is more to a fork than just such rules - there is a lot of politics involved, and sometimes a more controversial fork still remains dominant. Ethereum's DAO fork for example meant the "main" chain violated a very important rule - containing only valid transactions, but that side of the chain is still a lot more widely used than the "purer" alternative - Ethereum Classic.

Conclusions


Battling over which side of the fork is "the real Bitcoin" is more than just fighting over a name. It is the battle for market dominance, wide acceptance and legitimacy in the eyes of the laymen. The winner will be the world's best know cryptocurrency, while the loser will be hardly talked about outside of the crypto circles.

Seeing which side of the debate will endure the upcoming forks will definitely be a seminal point in the story of Bitcoin.

2017-10-29

Blockstream vs miners - looking at the incentives around the SegWit2x fork

The past few months in the Bitcoin community have been filled with discussion of an upcoming hardfork - SegWit2x. There have been a lot of people voicing their opinion on the matter of whether that fork should be allowed to pass or not, but today I would like to look at who I believe to be two key players in this debate - Blockstream (opposing SegWit2x) and the miners, the core signatories of the New York Agreement. More specifically, I will be focusing on the incentives both of those parties have when it comes to dealing with SegWit2x.

What is SegWit2x?


SegWit2x was first proposed as a compromise between the various factions in Bitcoin that were trying to solve the problem of blocks being full. It aimed to both enable the activation of SegWit to enable off-chain transactions, and to increase the block size to 2MB to increase the number of transactions that can be processed on-chain. It was to be deployed in two stages - first by activating SegWit in the summer (which already took place), and then by increasing the block size in winter (which is still pending).

Basic incentives for everyone


When examining why people would be for or against a certain change, it is often useful to look at the incentives they have for being on either side of the fence. An incentive shared by every Bitcoin user and company is to see Bitcoin succeed, be used by more and more people and to gain in value. You can occasionally see someone stating the opposite (along the lines of "it's good the price is going down, it will slow the adoption rate so the project will be developed further before mainstream starts to use it", or people wanting to buy the dip in price), but most people that are invested in Bitcoin want to see it grow, that's pretty much a given.

Beyond that, things tend to get murky. You can see some ideologies come into play and so on. But if you focus on SegWit2x, the basic incentive for both sides appears to come down to the good old money...

Incentives of Blockstream and the miners



So with this, we have a clear picture - Blockstream's revenue stream will come from off-chain transactions. Now, let's look at the other side of the debate.

Miners are paid directly in BTC by the blocks they mine. They mint new coins with each block, and they also collect fees for any transactions they include in that block. At the moment the block reward is 12.5BTC, and the fees add up to about 0.5 to 2 BTC on average. Pretty straightforward and as described in the original whitepaper.

So the miners are incentivised to include as many transactions in their blocks as they can, giving priority to those that pay more fees than the others per unit of size.

Clash of incentives


Both sides of this debate get their money from the same source - transaction fees. Blockstream wants more transactions to flow through their proprietary service to collect more fees from institutions and individuals. The miners on the other hand benefit from more transactions taking place on the blockchain - they earn transaction fees only for the transactions that are included in the block and get nothing from off-chain transactions until they come back onto the chain. With finite amount of money flowing through the network, this is a classic zero-sum game - the more transactions flow through your preferred channel, the more money you have and the less money your opponent has.

In an ideal scenario, we would let both of those options onto the free market and let the consumer choose what they want to use. Some would choose off-chain transactions for their speed, others would prefer on-chain transactions for the immutable records, etc. In a truly free market, the best product will win and the market will reach equilibrium. However, one side is currently at a disadvantage.

The size of the blocks is currently fixed at 1MB and SegWit has been activated on the network. This means that the miners have a finite amount of space to work with, while Blockstream and similar service providers don't have to do much to promote themselves - when the consumer will see on-chain transactions being too expensive for them and the blocks being full, they will by necessity make their way onto their platform to be able to transact.

Moreover, SegWit transactions have a smaller "weight" to them, meaning you can put more of them in a block and even go over the 1MB block limit with them.

So we have a company that benefits from the traditional blocks being filled, while also giving preferential treatment to on board onto and off board from its proprietary services, while blocking others from increasing the overall throughput, all for "the benefit of the consumer". This is basically the Net Neutrality battle all over...

Internet access or block throughput, it's all the same in the end...

Dynamics of power


Looking at this only from the lens of money is of course a bit of a simplistic view of things. There is probably a lot more politics, ideology and power in play - SegWit2x is a hard fork to the Bitcoin network being pushed by the miners rather than the traditional core developers. If it is allowed to pass, it will show that they don't have full control over the project and thus remove them from a position of power, while giving the miners more power on top of the computing power they already hold.

Conclusions


If you look at things from pure monetary perspective, the fight over SegWit2x is a fight about where the transaction fees will flow - whether they will be on or off the chain. Increasing the block size will mean more money will be going to the miners, while keeping it low will force more money to flow through SegWit-enabled services, and to a degree, through Blockstream.

SegWit2x is also a struggle for power in the space - who will be able to make changes to the protocol and how things will be handled in the future.

The struggle might be framed in many ways - allowing an average user to run Bitcoin on RaspberryPi, the centralisation of power in the hands of the miners or core developers, an attack on the Bitcoin network, etc. How much of that is genuine concern and how much of it is propaganda from either side it will be hard to discern.

But in the end, it's probably about money and power...

2017-07-11

A mark of one's existence - records in the blockchain

Part of being a human is wanting to leave a mark on the world. Within us lies the deep need to be remembered, in some form, after we die. We see it in the Cueva de las Manos - Cave of the Hands, where the inhabitants left the outlines of their hands painted on the walls as early as 13'000 years ago.

Cave of the Hands

We hear the same plight from Horace some 2000 years ago in his Odes when he states "non omnis moriar" - "not all of me will die". Similarly, to condemn someone to be forgotten was a fate worse than death for the ancient Romans. It was called damnatio memoriae, or "the condemnation of memory".

In our digital age it is perhaps easier than ever to remove someone from history. While it is easier than ever to record what's going on, it is similarly just as easy to alter and distort the events thanks to tools like Photoshop.


Photos can be altered, memories can be called into question, records could be rewritten, and we can end up with the Mandela Effect. Add to it the right to be forgotten, and soon it might be hard to believe any record or lack of it on the Internet. George Orwell would be proud of what we could do to make someone an unperson.

Everything could be subject to change. Everything that is, except blockchains.

Proof of Existence


While working at Factom I heard a great tagline - "It is hard to guess today what lie you want to tell tomorrow". It might be a very profound statement in today's world of digital records - if you can't backdate, alter historical records or the like, you'd better be completely sure how you want to proceed ahead of time.

All of this is of course only possible through the Proof of Existence and the blockchain technology. Only networks such as Bitcoin or Ethereum can be seen as objective records of history anymore. They alone are big enough to be secure from tampering (if you can't 51% attack the blockchain, you can't rewrite the history) and public enough to ensure any attempt at tempering with them will be a publicly known event. Because of that, any data embedded in the blockchain will remain unchanged and hopefully preserved as long as the blockchain persists.

Record of my data


Today is my 30th birthday, and I decided to celebrate with a little experiment.

A few months back I contacted the Personal Genome Project Canada to participate in their research and get my genome sequenced. It has been an interesting experience, and I did find some correlation between my genetic predispositions and the health quirks I've been experiencing my whole life.

During the study I requested a copy of my sequenced genomic data. It was shipped to me on an external hard drive as the files themselves were 200GB. After leaving my computer to crunch the numbers, the SHA256 results was spit out - "de7a8430be51538ebcdd031390e0de3f7cde74a9c88a76e64406e88b6259d4fe". That was the hash of my genetic information - probably the most elegant version of a digital hand print I could find.

After playing with the debug options in BitcoinQT, I managed to wrap it up neatly in the transaction 32a0f8febb0f9f9c7fe1ce9a6b2a59356f443e27186d2e4b5c5a9a3e5e16f4cd, sent from my two favourite addresses - 17TQLZvXjKTrUyRnV9DuQs4RVDgNjUPeXQ, the address in which I received my first coins in 2011, and 1PiachuEVn6sh52Ez7o6Fymvw54qvQ4RBm, my own geeky little vanity address. And so, in block 1597975 (000000000000000000b43bb4162374befa73a882efa6279d87cd3f11548cff59) my transaction was anchored and became part of the blockchain history, along things like the blockchain marriage, a tribute to Len Sassaman, and the infamous Times headline chosen by Satoshi Nakamoto. To the best of my knowledge, I'm the first person to have embedded a hash of their full genetic information this way.

It wasn't my first foray into embedding data into the Bitcoin history. That honour had to go to the illegal number from 2012 that was done as part of my master thesis research.

Larger records of data


Admittedly, the process of saving the data into the Bitcoin blockchain was a bit complicated. Preparing the inputs by hand, making sure the data itself is fairly small, it can all be rather limiting and potentially get expensive with larger amounts of records. Hence why it might be worthwhile to consider protocols that extend the Bitcoin protocol, while still offering the same cryptographic proof of existence. In comes Factom (full disclosure: I work for Factom).

With the intent of storing the same data, I created a new chain with my name and alias - ef020b0dc14223ca454cb69b36143ffbafa8b09c0ff962b18742cd97a02735c9. The hash was anchored in transaction cdeb46cad69c01f79864e20a56cb227b94c9738b79d8291e4181f5cbd9b86f27 that became part of the block 96731 (d8fea7d7df13f0e629817a552719a7e7e9860023313ddaa5fa76ad34d655ace1).

Now, there is an extra step that needs to be taken between here and Bitcoin - the anchoring process. That is performed externally by the an automatic server. It created a transaction bebfc29801239ad254da97b253c864736257143f17e3519e03e05e3761f57a8f that made its way into the Bitcoin block 1598016. And here comes the magic trick that gets us between a Factom transaction into a Bitcoin block, "the receipt":
{
   "receipt":{
      "entry":{
         "entryhash":"cdeb46cad69c01f79864e20a56cb227b94c9738b79d8291e4181f5cbd9b86f27"
      },
      "merklebranch":[
         {
            "left":"cdeb46cad69c01f79864e20a56cb227b94c9738b79d8291e4181f5cbd9b86f27",
            "right":"0000000000000000000000000000000000000000000000000000000000000003",
            "top":"07e5e997757ce1c4e935aecff3e1fb4bb9f7c466329de38ae19c342106283e7b"
         },
         {
            "left":"c48f1c742f8aea8c834b07615776e6c9f79d2300b4e1eb29ea6e295a55823402",
            "right":"07e5e997757ce1c4e935aecff3e1fb4bb9f7c466329de38ae19c342106283e7b",
            "top":"6d423f0c963ce0a9744eec94e07816263b82c1514c048fc43c791e19a44b7458"
         },
         {
            "left":"ef020b0dc14223ca454cb69b36143ffbafa8b09c0ff962b18742cd97a02735c9",
            "right":"6d423f0c963ce0a9744eec94e07816263b82c1514c048fc43c791e19a44b7458",
            "top":"d985f353aa34b1b7f021a30816019eac3cfd486743eb81b63295d12e7aa182f6"
         },
         {
            "left":"76c2296711dfc90eff2cec432b5592155ce13c4bd0f9cc15b01f842994358f35",
            "right":"d985f353aa34b1b7f021a30816019eac3cfd486743eb81b63295d12e7aa182f6",
            "top":"cb75287e2e1b170e5f5dc99ae7b738139305ad822e0c311cbdfb82ab0fa5d31d"
         },
         {
            "left":"3c00225e5d9f6d5e62c2926c02c5c03c31eaa831ee48d6e216dbe3b637125665",
            "right":"cb75287e2e1b170e5f5dc99ae7b738139305ad822e0c311cbdfb82ab0fa5d31d",
            "top":"fd03d8be680bb8c36ba01f224c71160f934c732a42de1c6d1d106b678e0f23a6"
         },
         {
            "left":"fabbd3f11bb85847530a6493361f3654d8617ab82ea3e34ddcc337c976917ec9",
            "right":"fd03d8be680bb8c36ba01f224c71160f934c732a42de1c6d1d106b678e0f23a6",
            "top":"92545cf4f7485731b6ee9007f9d3348759cd2edda60a9e5e7bc6ef2fa4f11cd1"
         },
         {
            "left":"35f75955731e0cfd98653a5979c6e53a0e97cd49ae91b06ec31001a96625666c",
            "right":"92545cf4f7485731b6ee9007f9d3348759cd2edda60a9e5e7bc6ef2fa4f11cd1",
            "top":"4c9d45d122337f6a85084b1492bbd3fe5fcd8a2bbfc71e7bacf283668fa0770b"
         },
         {
            "left":"4c9d45d122337f6a85084b1492bbd3fe5fcd8a2bbfc71e7bacf283668fa0770b",
            "right":"d9d488d0ddc24aae887d86ce094de1579fe10ce06e8f6b8cdb434f45c8d0cdcd",
            "top":"c0ee8f8410515485de6ca7831dcd09856e08ec89799cf90778ea3211b41b4ba5"
         },
         {
            "left":"e327276f2bbfa0bb9dc9d89095abcb0fe7dc3373a31392892099824c89c332a4",
            "right":"c0ee8f8410515485de6ca7831dcd09856e08ec89799cf90778ea3211b41b4ba5",
            "top":"d8fea7d7df13f0e629817a552719a7e7e9860023313ddaa5fa76ad34d655ace1"
         }
      ],
      "entryblockkeymr":"6d423f0c963ce0a9744eec94e07816263b82c1514c048fc43c791e19a44b7458",
      "directoryblockkeymr":"d8fea7d7df13f0e629817a552719a7e7e9860023313ddaa5fa76ad34d655ace1",
      "bitcointransactionhash":"bebfc29801239ad254da97b253c864736257143f17e3519e03e05e3761f57a8f",
      "bitcoinblockhash":"000000000000000000746bcc20463036af6deb09931d78fbd02546042b80f1d1"
   }
}

While it might look like gibberish, it's a simplified payment verification-style merkle branch leading from the transaction hash through the entry block key merkle root, the directory block key merkle root, up to the Bitcoin transaction itself. As the chain of hashes is complete, one is able to mathematically prove that the transaction indeed made its way into the Factom block and got anchored into the Bitcoin blockchain.

The same mechanism could be used to anchor data such as text into the blockchain, for example securing entire blog posts to prove they existed unaltered in their current state at a given point in time. I intend on doing that for this blog once I narrow down the ideal format, but that's a story for another day.

Conclusion


Bitcoin is probably the first, objective, immutable record of history we have. Any data saved into the blockchain will hopefully remain preserved for a long time. It is possible to extend the Proof of Existence into larger data sets without needlessly expanding the Bitcoin blockchain.

2017-05-29

What other cryptos can learn from Ripple

While last week I criticised Ripple's XRPs, we can't equate the whole system to its currency. There are many fundamental features of the Ripple system that other cryptos can learn from. A lot of them are small and obscure to anyone who hasn't had a hands-on experience developing systems on top of cryptos. Luckily enough, that's my speciality.

So here are a few features of the Ripple system that other cryptos can learn from, as viewed by a programmer.

AccountTxnID and Memos


Sometimes you need to send a transaction with some extra data attached. Whether it's an invoice ID, customer number, or some other business-related information, you have some data that needs to go into the blockchain. This will help you keep track of what transaction did what, give some identifiable information as to the origin of the transaction and so on.

Even Bitcoin recognised the need for this feature by introducing OP_RETURN in 2014. Before that, people used to create unspendable transaction outputs that the system would have to keep track of forever.

Ripple already had that at launch in 2012 in the form of AccountTxnID and Memos. The first is a short field, ideal for including transaction IDs and similar short strings. The latter can store a lot more complex data structures - long strings, multiple hex arrays, that sort of things.

LastLedgerSequence


When building a more complex cryptocurrency system, you have to deal with the fuzzyness of transactions before they enter a block. Essentially, when you send a transaction out, you might not know what will happen to it until it either becomes part of a block, or a conflicting transaction becomes part of a block. If a transaction becomes lost in the network, gets stuck in a processing queue, or there is something else wrong with the system, it's essentially stuck in a limbo. It may be confirmed in the next second, it may never be confirmed, or maybe it will take a few hours.

So here's the problem - how do you handle such transactions? You can try resubmitting them if you have the hex representation of them, but that still doesn't guarantee an outcome. You can try double-spending yourself, but then you have two transactions stuck in a limbo. Do you resubmit a different transaction to credit the same person? Then you might accidentally send them the money twice if you're not careful. All of those outcomes are less than ideal.

Here is where LastLedgerSequence comes in. It's a field you can include in a transaction that allows you to specify when a transaction will DEFINITELY fail. You put a ledger number sometime in the future, and if the transaction is not included before that given ledger number, you know for sure it will NEVER be included in a ledger. The transactions are allowed to fail gracefully in a predictable manner.

Data vs Metadata


First generation cryptos are fairly straightforward. A transaction does one thing and one thing only - move money around. If a transaction gets included in a block it means the transfer went through, if it doesn't - it didn't. There are only two outcomes here.

When talking about a more complex system, there will naturally be more possible outcomes. Maybe a transaction got included in a block and it did exactly what it was supposed to. Maybe it got included in a block but failed to achieve anything. Maybe there are different paths it could've taken to get to the outcome, etc.

This is why Ripple transactions have both data and metadata to them. The first shows what a transaction SHOULD do, the second - what it DID do. This allows the transactions to be more complex, while still ensuring that any given transaction call returns all the information relating to a given transaction.

Built-in, dedicated distributed exchange


An efficient Crypto 2.0 system benefits a lot from having a distributed exchange built into it. While some systems like NXT only allow trading a given IOU for its native token, Ripple goes one step further and treats all currencies the same. You can trade any currency for any other, even to the point of undermining the value of XRPs because of it. It is also a very important part of a few other features.

While systems with smart contracts like Ethereum can mimic the functionality of Ripple's built-in exchange, it would be hard to compete with the efficiency of a dedicated exchange logic. As someone who has experience programming a crypto exchange, I can attest that order sorting and matching can be a complex task that would be hard to efficiently execute in a smart contract. Ripple has the strongest distributed exchange that I've seen in any crypto project.

Trades as part of a payment


In a system with multiple currencies, how do you go from having currency A to sending someone currency B? Quite often, you'll have to take that currency to some sort of market, trade it, then use the resulting funds to send the second currency directly. Alternatively, you use some sort of third party to brokerage the deal, take a cut and take its sweet time to get there.

This is not a case with Ripple. A trade can happen as a part of a payment. Sending money from one address to another is just as simple whether you hold the same currency or not. The currencies don't matter, only the value does.


A Ripple payment that can be fulfilled by 4 different currencies

This feature leverages the power of a distributed exchange to its full potential. Everyone has access to the same market and doesn't need to hold more than one currency to transact with anyone on the network.

Atomic, multi-currency transactions


A big issue with transactions that span multiple currencies is the possibility of the transaction failing partially and the funds ending up in some transitory currency. If you're sending USD and expecting them to end up as GBP, you wouldn't want to end up with EUROs. This would be a bad outcome discouraging people from sending more complex transactions.

Ripple solves that issue by forcing every transaction to be atomic. Either the transaction is fully processed, or it completely fails. There is no way to end up somewhere down the middle. Moreover, there is virtually no limit to how complex a transaction can be. You can send out one type of currency, which would take multiple different routes and touching on multiple currencies before ending up at your destination as the intended currency. It is rather remarkable.

The consensus algorithm and predictable block times


Ripple does not rely on a traditional mining algorithm to create its blocks. Instead, Ripple uses a consensus algorithm to issue its ledgers. While the system is more centralised than most cryptos because of that, it solves a lot of other important issues.

First of all, the block times are quite consistent. You know exactly how often they are created and the interval between the blocks is very short and stable. Secondly, the system is more resilient against front running, making the distributed exchange more honest. Lastly, the system in general is less susceptible to market manipulation by the miners - they can't stall certain transactions or oracle data in hopes of manipulating the market and gaming the system.

Conclusions


While the Ripple system has its flaws, it also has a lot of interesting features other cryptos can learn from.

2017-05-22

Counterarguments to XRP value preposition

As some of you might know, I really like the idea behind the Ripple system. Creating a settlement layer based on trust and IOUs, being able to issue any asset easily, working quite well as a middleware layer, incentivising specialisation, creating a singularity of money, all of that is great. The system is not without its flaws however - centralisation of validators is an issue, and so is the token distribution. While both are interesting topics, with the recent meteoric rise in XRP price, I think it's worth focusing on that part of the discussion.

Basics of Ripple and XRPs


Ripple is a Crypto 2.0 system launched in late 2012. It is based on a protocol predating Bitcoin by a few years, known as Ripplepay. As any good Crypto 2.0 network, Ripple allows its users to issue and transact in any currency. It also supports its own native currency - ripples, or XRPs.

XRPs have a few key uses on the Ripple network. They are used to pay transaction fees, and are required as reserves for any address using the network and creating trust lines. All in all, it serves as an anti-spam measure for the network. Moreover, since every account on the Ripple network can accept XRPs, it is also promoted as a bridge currency.

IOUs are user-created currencies. While any address can issue their own currency, most people will be using IOUs issued by gateways. Those will usually be denominated in fiat or crypto. The IOUs can be traded directly on the network, sent from one user to another, and even perform atomic, multi-currency bounces in a single transaction.

There are a few key differences between XRPs and IOUs. IOUs have a counterparty risk - if the issuing gateway defaults, the tokens will be worthless. You can only send IOUs to or through people that also trust the same gateway. The gateways usually charge a small percentage fee on every transaction. IOU transactions are a bit bigger and more complicated, meaning they can cost more to execute. XRPs are their own cryptocurrency, meaning they are not redeemable for anything directly.

Beyond that, the Ripple network handles both XRPs and IOUs identically - both can be traded on the decentralised exchange built into the network, both can be part of multi-currency transactions, both operate at the same speed and they are both highly divisible.

Criticism of XRPs


The main criticism levelled at XRPs and thus also against the Ripple network is the way the coins were distributed. Ripple Labs, the creators of Ripple, created the network with 100B XRPs in it, and no new XRPs were created since the network inception. This is not an unknown practice in the crypto space - a lot of networks premine their tokens. However, the network creators usually only keep a fraction of the tokens for themselves, preselling the rest to anyone that wishes to buy some. Ripple Labs however, still owns about 60% of the originally issued tokens. This raises a few issues.

First, the company could try cashing out and potentially crash the market. It is very unlikely however. Ripple Labs has recently taken steps to promote its XRP market and put the majority of their XRPs into an escrow (then again, the escrow is unlocking 1B XRP every month for the next ~4.5 years, so it could be better).

Secondly, since the network fees are paid through burning XRPs, they essentially enrich everyone in proportion to the amount of XRPs they hold (if 1% of the tokens got burned, the remaining tokens would be worth about 1% more provided the market doesn't change). This means Ripple Labs is essentially earning 60% of all network fees on the network. This probably doesn't amount to much at the current time, but may be more important in the future.

Lastly, the amount of XRPs owned by one company gives it a negative reputation. A lot of people in the crypto space dismiss Ripple outright as "a premined scamcoin" just because of the amount of coins owned by Ripple Labs.

All in all, that isn't too damning really. Ripple Labs appears to be reputable enough not to try cashing out of what appears to be their golden goose. However, they are not the only major players around...

The founders of Ripple Labs, Jed McCaleb, Chris Larsen and Arthur Britto gave themselves 20B XRPs early on. This later came to bite Ripple Labs in the ass. Jed left the team to start his own version of Ripple called Stellar, and decided to sell his XRP stash, resulting in a legal kerfuffle, a settlement, and a schedule for how those coins may be sold. If those numbers are correct, Jed is still cashing out 20k USD per week, and come ~2019, he will be able to cash out 750M XRP (worth ~256M USD at today's price of 0.34 USD/XRP). Not an ideal situation if the money from your network will be going to a former employee building your direct competitor to the tune of a quarter of billion dollars. While some of those funds might go to charity, that's still not an ideal outcome.

Now that we've dealt with most of the issues XRPs had to face, let's have a look at how XRPs fare on their own network.

XRPs vs IOUs


While Ripple the network has to compete with Bitcoin, Ethereum and other cryptocurrency networks, XRPs the currency have another important competitor - the rest of the assets on the Ripple network. Some networks, like NXT or Counterparty, ensure their native token is at the centre of every trade - you can't trade IOUs for one another on those networks. In Ripple, you can transact purely in IOUs all day every day without touching XRPs for anything else than the fees.

This ties to the central value proposition of XRPs - being the universal medium of exchange.

Distributed currency network vs XRP as medium of exchange (source, presentation)

In short, the problem is as follows. If you have many different currencies on the network, you can have potentially a very large number of markets between those currencies (mathematically, twice as many markets as there are currencies). This means you would have to have a lot of market makers providing liquidity to every market. However, if everyone agreed to use XRPs as the common currency, you would only need to make one market per currency - between that currency and XRP.

At the moment, it looks like that is the case - the major markets on the Ripple network are all trading XRPs for the various currencies issued on the network. At the time of writing, 11M USD worth of trades and 88M USD worth of payments have been executed on the Ripple network in the last 24 hours, majority of which were using XRPs.

The main advantages given for XRPs being better than IOUs are:

  • XRPs are acceptable by anyone on the Ripple network
  • There are no extra transfer or trade fees on XRPs
  • XRPs have no counterparty risk

However, there are also some drawbacks to XRPs, even not counting the coin distribution and centralisation.

Just because someone can receive XRPs, doesn't mean they'll want to settle in XRPs. The network just essentially forces everyone to have an unlimited trust line to XRPs, even if they wouldn't want to hold them.

XRPs might be a decent universal currency for people that want to hold XRPs, but that might not be ideal for banks or big institutions. That's why we see networks like Corda, or even Interledger Protocol (also developed by Ripple Labs) that don't rely on a native cryptocurrency gain traction, while the best example of a real-world application relying on crypto token in the middle is Abra. Creating a universal, international settlement currency was the idea behind Bitcoin, and you don't really see banks using it for that cause.

Market making essentially boils down to either trading the currency like any other crypto, or copying the market from another source to offset your trades. The amount of liquidity you could copy with XRPs is small in comparison to the nigh-bottomless FX market from the real world. If you are going to see real-world use cases being deployed on Ripple, it will be more likely to see them leveraging the existing FX markets rather than going through XRPs.

While XRPs have no counterparty risk, they also have no counterparty protection. If anyone steals your XRPs, they are gone. With IOUs, you can still appeal to the issuing gateway to halt the transaction and potentially track down where it was withdrawn to. The IOUs are thus much less of a target.

On a similar note, XRPs are much harder to track, which would make them less appealing from a compliance standpoint. Gateways on the other hand can whitelist and blacklist addresses that can use their IOUs, thus having an easier time identifying anyone that uses their IOUs.

If a value of a given currency changes in value, you only need to adjust the market using that currency. If XRPs were the universal currency against which all of the currencies would be traded, any time the value of XRPs would fluctuate, you'd have to adjust the entire market.

Adding a new currency to the distributed IOU network wouldn't necessarily mean you'd have to trade it against every other currency. You could only start trading it against the most popular currency or a few currencies that are easy to make the market for (say, fiat<->USD, fiat<->EUR). Because you can easily execute multi-currency atomic transactions on the network, connecting to even one other currency connected to the network instantly means you are connected to the rest of the network.

XRPs have no transfer fees attached to them. While is possible for a gateway to issue IOUs without transaction fees (that's essentially Tether's business model, but on another network), perhaps even leveraging some other big crypto like Bitcoin or Ethereum through voting pools, the fees on those IOUs can always be changed. It seems that the network standard for transfer fees is about 0.2%, which seems to be smaller than the spread on XRP's biggest market (at the time of writing, 0.00015086 sell, 0.00015003 buy, giving about 0.55% spread). So it is possible that sending money through a very liquid FX market you would pay less in transfer fees than going through a less liquid XRP market on just the spread.

So this leaves XRPs with their primary role - paying transaction fees and fulfilling the needed reserves. All in all, about 50-100 XRPs per person / account would be enough for a lifetime of usage. That used to be less than 1 USD, and now is about 35 USD.

Conclusions


The Ripple network is a very useful Crypto 2.0 tool. However, because of the high flexibility and value propositions of the IOUs on the Ripple network, they are XRPs' main competitor in its home court. While XRPs are still needed to pay the network fees, most of the remaining value prepositions can be seen as overstated. The recent rise in the price of XRPs appears to be largely relying on market speculation (as is the case for all crypto) and a new exchange coming on the market.

Related links


2017-05-14

Another crypto bubble and the rise of altcoin markets - a story in 9 charts

The crypto markets seem to be in another bubble, orders of magnitude bigger than the last. However, this time a lot of the money is flowing into altcoins interestingly enough. How this situation will play out and where the market will stabilise at will be a really interesting story to watch unfold - whether Bitcoin will re-capture the market, or will some other crypto take its place. I would like to take this time to go over some of the history that brought us here however, as it's also a fascinating tale (if you like graphs).

Here is a short version of the story, in one graph by Woobull:
Bitcoin network congestion, market dominance, and altcoin marketcap, by Woobull.


This is a cautionary tale for Bitcoin, but before we can really talk about how Bitcoin might be impacted, we have to talk about some altcoins. So strap yourself in for this whale of a tale in 9 charts...

Story leading up


The story of this bubble really starts around 2015, when some Bitcoin core developers wanted to address the network congestion they saw coming in Bitcoin. This was the start of the Bitcoin scaling debate that gave rise to BitcoinXT, Bitcoin Unlimited, SegWit, UASF, etc. The writing was on the walls - if Bitcoin continued to grow in popularity, soon the blocks would be full and we would have to deal with the consequences. Two years have passed, and no consensus has been reached, thus priming us for the current events.

Bitcoin Unlimited Rally


The bubble proper was started by the disagreement on how to scale Bitcoin. At the moment, there were two major solutions being proposed to address the issue - SegWit and Bitcoin Unlimited. Perhaps tired of waiting for consensus to emerge, perhaps prompted by Roger Ver's ambitions, Bitcoin Unlimited started to rally people behind its hard fork. Those came in two main waves - around October 2016, and March 2017, increasing both node count and number of blocks mined.




The fact that Bitcoin Unlimited was gaining momentum, coupled with rumours of a planned 51% attack to cull a network split made serious waves in the community. We were faced with a real possibility that the network will fork and perhaps split. Every major player was taking sides in the discussion, and the tensions kept rising. The problem got exacerbated by the Covert ASICBOOST scandal. If Bitcoin had a doomsday clock for the network splitting, it would probably be uncomfortably close to midnight.

With the uncertainty of Bitcoin's future and the rising tensions, other events started to take place.

Rise of Ethereum


2016 has been a bit of a rollercoaster for Ethereum. The year started at a sub-dollar price per ETH, reached about 20 USD/ETH due to The DAO, then slumped to about 7 USD/ETH after its hard fork and network split. The new year started on a positive note with a roadmap for the future of Ethereum. ETHs were sitting comfortably at #2 market spot by market cap, increasing a bit with Bitcoin price increases (1, 2, 3, 4) as you'd expect in a calm market.

Then March came along. Bitcoin Unlimited started gaining popularity, and the fear of a potential Bitcoin network split started shaping the market. While historically Bitcoin has been seen as the stable gold standard among cryptos, the safe heaven you'd park your money at if you didn't want to cash out into fiat. However, with the future of the network being uncertain, some people decided to move their wealth elsewhere.

March was the month where Bitcoin slumped and Ethereum was there to pick up the money moving away (1, 2, 3, 4). You can practically see the ~21B USD market cap shifting gently towards Ethereum, giving it a boost from 1.6B USD to 4.6B USD in that month, while Bitcoin went from 20B USD to 15B USD.



In April the Bitcoin situation started to calm down. Bitcoins started to recover along with their market cap going back to 21B USD by the end of the month (1, 2, 3, 4, 5). However, another important development started brewing elsewhere...

Litecoin and SegWit


Litecoin has always been "silver to Bitcoin's gold", its shadow. Sometimes outperforming Bitcoin price increases percentage-wise, but rarely making a big splash overall. Seeing Bitcoin stumble with its scaling solutions, it seized on the opportunity to make a name for itself.

What is important to remember, is that Litecoin can be classified as a "copycoin" - a cryptocurrency largely operating similar to Bitcoin, on a pretty similar codebase with minor tweaks. It's so similar, that by chance or negligence, Litecoin's multisig addresses have the same prefix as Bitcoin. Copycoins in general operate on hype and innovation (real or manufactured) - there are so many similar coins that if you don't stand out from the crowd, you're going nowhere.

While Litecoin did not have the network congestion issues of Bitcoin, it still decided to improve its network and push for SegWit adoption. While it looks like the process started in February, there was a considerable rally for SegWit in late March, as indicated by the sudden jump in SegWit blocks and market activity.



The process was spearheaded by Charlie Lee, the creator of Litecoin. A notable opposition to the SegWit progress were Bitmain and Antpool. Supposedly they were blocking Litecoin's SegWit activation to prevent further SegWit adoption on the Bitcoin blockchain, where they are allegedly profiting from Covert ASICBOOST. After a long ordeal, Litecoin finally locked in and activated SegWit mere days ago.

There have been some other altcoins that also followed Litecoin's SegWit adoption, but their stories aren't that interesting.

The price also reflected that - going from under 5 USD/LTC at the start of the year with about 220M USD market cap, to a high of 35 USD/LTC and 1.8B USD market cap in the recent weeks. While this would normally allow it to take #3 spot on the crypto market cap list, another network had a meteoric rise that came largely out of nowhere...

Rise of Ripple


Ripple has had a mixed reputation in the Bitcoin community. It's the oldest and one of the most prominent Crypto 2.0 networks. It has been caught the ire of bitcoiners in 2013 for being seen as "pro-regulation" during US Senate hearingsdeclared dead in 2014 (Bitcoin has been declared dead over 100 times now), has been fined by FinCEN for Bank Secrecy Act Violations, etc. Ripple Labs have developed essentially a competitor to its own network - the Interledger Protocol.

However, more recently it looks like the company is going back to its roots and focusing on the Ripple network. It stated publishing quarterly market reports on XRPs and talking about its plans for the future. There are more and more news about various banks using its network. All in all, it looks like the market has warmed up to the currency:


While we see a small blip on the chart in early April when it crossed 1B USD market cap, the currency started to enter a meteoric rise around the start of May (1, 2, 3). The year started with a market cap of 220M USD and a price of 0.006 USD/XRP, while currently it sits at 8.4B USD and 0.22 USD/XRP.

Now, let's look at how this all comes together.

Market dominance


At the time of writing, we this is how the market looks like:

#1 Bitcoin - price: 1813 USD/BTC, market cap: 29.6B USD
#2 Ripple - price: 0.22 USD/XRP, market cap: 8.4B USD
#3 Ethereum - price: 90.8 USD/ETH, market cap: 8.3 BUSD
#4 Litecoin - price: 29.6 USD/LTC, market cap: 1.5B USD

Total market capitalisation of all coins: 55B USD, of which 25B USD are in altcoins. This means Bitcoin's market dominance is under 55%, while at the start of the story, it was about 85%:


Bitcoin has historically been the "gold standard" for crypto. The market leader, the first mover, the biggest whale. However, it seems like in this market if you're standing still, you're moving backwards.

Since the start of our story, Bitcoin has periodically dipped in its price, but overall we're seeing all-time high price. The recovery was probably due to people worrying less about the potential network split that might come from Bitcoin Unlimited. Bitcoin is certainly stronger than ever, but there might also be blood in the water - despite the price of bitcoins rising, so too did the altcoin markets grew in leaps and bounds.

Whether this bubble we're in right now (and it certainly has the look of a bubble) will pop hard and the market will rebound in Bitcoin's favour, or whether a new paradigm will be made where bitcoins play less of a dominant role, only time will tell. It is very unlikely Bitcoin will ever sink too deep into the coin list, but if the scaling stalemate continues, Bitcoin's advantage will be eroded over time.

For years one could easily dismiss altcoins as being a fad, nowhere near as mature as Bitcoin. But at some point you have to realise you might have to compete for your top dog spot. We're living in a market that is used to exponential growth, and Bitcoin's market cap is "only" two doublings away from its next competitor.

Conclusions


We are probably in the biggest crypto bubble to date. Not only has once again reached its all-time high price recently, but the altcoins have also grew by leaps and bounds.

In the near future, I would expect some large contraction, especially in the alt market. Litecoin will probably dip back down now that SegWit is activated and its rally is over.

It will be interesting to see where the money will flow if the value of bitcoins will pop - whether people will be cashing out to fiat, or altcoins.

The biggest threat for Bitcoin is still the scaling issue - if that's not dealt with soon, the issue might just go away... along with many Bitcoin users that will switch to some of the alternatives.

2017-05-07

Direct and indirect earnings in crypto

The crypto space is a strange place to be in over a long period of time. Once the coins you bought for a few dollars start becoming a noticeable portion of your net worth, you may start thinking to yourself - "should I work a normal job, or should I work for the cryptocurrency"?

This mostly stems from the fact that you generally can't use a cryptocurrency without also being invested in it. I may hold $1000 in a credit card, but I don't own any shares in Visa or Mastercard. However, when I hold $1000 worth of bitcoins, I inevitably own a part of the Bitcoin economy. As its value rises and falls, so too do the coins in my wallet. While this also is true for real-world currencies, their market cap is so far beyond us mere mortals that we can't really hope to influence it in a significant way. Cryptos are still fledgling economies where each person could make an impact.

Some of the Bitcoin core developers are also early Bitcoin adopters. I would imagine a good number of them hold a significant amount of coins. Those that do don't need to expect a salary for developing the core technology behind Bitcoin if their work contributes to the increased price of Bitcoin. If you hold $1M worth of coins and the value increases by 10% in a year, you have indirectly earned $100k that year. This is essentially the same as working for equity, except you can cash out more freely.

The same goes to a lesser or greater extent to everyone else in the space. Anyone holding the coins stands to benefit from the coins increasing in value. While this can be benevolent, the same economic forces can encourage people to use their influence for personal gain at the expense of the much broader community. Because coins aren't stocks, you can cash out and change "allegiance" at a drop of a hat unfortunately.

Even when we're not talking about people that can influence the market, the endowment effect is very much real in the crypto community. You value and perceive the coins you own much more favourably than the ones you don't. If you don't own ethers you might have cheered when the network forked and belittle its rise in price in the more recent times. It's a similar mechanism behind the "hodl" mentality. Even though you may benefit from selling coins when the value is going down and buying when the value is going up, some people tend to prefer holding onto their coins going up and down rather than realising their gains or losses. "If the price is going up, my bitcoins will be worth more. If the price is going down, I'll be able to buy more bitcoins".

With the value of various coins going through the roof in recent months, more and more of us will have to face the dilemma of what to do in regards to our growing crypto stash. Whether we continue working our day jobs like nothing happened, retire to a possible life of luxury, or perhaps start working for our cryptos in hopes of contributing to the community and indirectly to the value of our coins. A single person's contribution might not be that large, but a large community working towards similar goals can be influential. Everyone owning a crypto has their skin in the game.

2017-04-30

IOU price vs trust - a look at Tether

Fiat-denominated IOUs have a long history in the crypto space. Ripple launched in 2012 with its host of fiat gateways. BitUSD and TetherUS began circulating in 2014. PayCoin launched and died in 2015. It seems that recently Tether has gotten itself into some banking problems and its price started to reflect that. While the ordeal is not great for the company or anyone holding the tokens, it's still an important lesson to be learned in the crypto space - a dollar is not a dollar is not a dollar.

Related articles:


Tether


Tether is a company issuing fiat IOUs on the Omni network. At the moment they offer USD and EUR IOUs and claim to be 100% backed by their assets with a proof of solvency. However, their terms of service don't inspire confidence:

"
There is no contractual right or other right or legal claim against us to redeem or exchange your Tethers for money. We do not guarantee any right of redemption or exchange of Tethers by us for money. There is no guarantee against losses when you buy, trade, sell, or redeem Tethers.
"

That being said, for a long time their USD price remained rigid in comparison to things like bitUSD. That is understandable - exchanges would accept it at par rather than trading it like any other asset.

Banking problems


A month ago, Bitfinex and Tether ran into some banking problems with Wells Fargo. The latter was acting as a correspondent bank and decided to block wire transfers between the crypto companies and their customers. Those wishing to cash their tethers out need to go through Kraken, which decided to take a ~7% premium for the service due to the market problems.

There are also some alleged shenanigans going around the actual use of tethers by exchanges and the BFX tokens (related article), but that's not directly relevant to our discussion at hand.

Dollar-dollar market


What this scenario shows is that there is that every currency needs a real market.

A long time ago, before central banks became prominent, each bank used to issue their own banknotes and the value of said banknotes would fluctuate based on the trust in the bank and so on. While that was a horribly inefficient system for the brick and mortar world of retail, wasting countless hours on currency conversions, individual counterfeit measures and so on, it could work really well in the digital space.

A dollar from one bank or exchange is not worth the same as a dollar from another. A faster, more efficient exchange would have their tokens valued more favourably than a slow, clunky one. Eventually, the market would settle at some price that would indicate the level of confidence or quality of the exchange and that metric would be clear for every customer to see. We had that with the final days of MtGox.

At the current time, the only place we can see a clear market like that is Ripple - you can actually trade USD IOUs from two different gateways for one another (at the time of writing, the exchange rate between Gatehub and Bitstamp USDs is about 1.11). While each gateway accepts their own tokens at par and allows you to withdraw the USD to your bank account, the price is driven by market makers that decide what premium to charge. If someone else finds a way to close that gap, they have a chance to make some money and bring the market into a more realistic exchange rate. In the end, the market decides what each IOU is worth, not some exchange.

Conclusions


While the current Wells Fargo problem is an important issue for Tether and Bitfinex, it is an important example for why we need a liquid market for all tokens, even those denominated in fiat. That and why correspondent banking is a thing that needs to be replaced by cryptocurrency networks.

A dollar is not a dollar is not a dollar.

2017-04-09

A path to riches and rags - crypto trading and investing

Cryptocurrencies are a fascinating development in technology. At the same time being an ingenious application of cryptography, the software designed to run it, and the currency that flows through the system. It is perhaps this tantalising mix of emerging technology and money that drives a lot of people that discover cryptocurrencies to greed at some point in their experience.

A lot of people got rich with this technology already, whether through investing, innovating, gambling or dumb luck. Those people are often visible and praised, but let's not forget about the survivorship bias - there are probably just as many if not more people that have lost a lot of money trading cryptocurrencies.

The gold rush


A number of people I've talked to seem to be going through something akin to a "gold rush" at some point of their crypto career. This usually happens early on - you discover this new technology, figure out it's a form of money, then look at the past gains and tell yourself "wow, this can make me rich!". You immerse yourself in the crypto world, take in the torrent of information, then try going into mining, trading, or something similar. In my case - it was discovering the GPU mining during the first few days of the first Bitcoin bubble (where the price went to a whopping ~$30 in the end).

In most cases, the rush is rather unsustainable as a hobby - mining is a specialised industry, short-term trading is a gamble, and services developed by inexperienced developers can be a liability. You are more likely to get burned than to make an actual profit.

From here, you can generally see a few transition options - deciding to cut one's losses and leave crypto altogether, "buy and hold" approach, or going professional.

Crypto as an investment


It is possible to treat cryptocurrencies as an investment - a high-risk investment. If you're lucky, you can get high returns. If you're not - you will end up with nothing.

A long while ago I came across an idea that "buying bitcoin is like investing in the entire bitcoin economy". Given Bitcoin's finite supply, the only way for the Bitcoin economy to grow to accommodate larger trades is through increase in velocity (how fast the coins circulate) and through the increase in value. Assuming you expect the Bitcoin economy to grow, you can expect the value of Bitcoin to grow as well. Same goes for other cryptocurrencies adhering to similar principles.

That being said, it is very important to remember that an investment in a cryptocurrency is not the same as an investment in a company that makes that cryptocurrency. XRP is not the same as Ripple Labs, factoids are not the same as Factom, etc. By investing in a company, you enter into a legally binding agreement. By buying the tokens, you're just holding the tokens. The company may do well developing projects unrelated to the token it initially created, which will increase the share price, but not necessarily the token price. Same is true the other way around - someone else may step in and make the token valuable, or possibly manipulate the price (for example, the hairy MAIDSafe presale on Mastercoin). The distinction is important to make.

While there are a lot of investment vehicles available for people in the developed countries, cryptocurrencies might be a more inclusive way to invest for the less fortunate people, or those wishing to hedge away from their government's monetary policy altogether. While this sort of way of investing can certainly yield great benefits, it can also be a fertile ground for scammers.

As usual, the age-old advise applies - don't invest more than you can afford to lose, hold, don't try to day trade, keep your coins safe.

I'd also add an advise to buy coins with long-term growth potential - coins developed by competent people, being a dominant player in their own crypto niche, etc. Those have a higher chance of sticking around than the flash-in-the-pan copycoins.

Crypto trading


An alternative to buying coins and holding them is to do trading. Bitcoin, the biggest crypto out there is certainly a volatile currency. Altcoins are just a wild ridepumpers exist to exploit people, whales can sway the marketthe honey badger don't care, etc. If you can make sense of this madness, there is certainly a lot of money to be made here.

However, the same riches can be lost as easily as they can be gained. A few interesting words of wisdom:



Generally, trading cryptos is about speculating on which system will deploy the next big feature, get the next big headline, or score the next big partner. The only problem here is that the markets are so thin in comparison to the wallets of the big players, that they can be easily swayed in a direction that is not rational - this is why short-term trading is very risky.


If you don't know what you're doing, don't try to be too smart


In my crypto career I've had ample opportunity to make mistakes and learn from them. In the end, I came out ahead by sticking to what I know and not trying to be too smart for my own good. Here are some lessons I've learned along the way:

You can't really predict the market - don't try to trade if you're not a trader.

Never go full fiat. I once sold all of my coins when the market slowly crawled to about $25/BTC in early 2013. I had to buy them back at $35/BTC when the signs were clear the market wasn't going back down.

Don't diversify your portfolio into stupid things, don't invest in any company that can't realistically outperform Bitcoin. Back in the day I liked the idea of being able to buy stocks in Bitcoin companies with bitcoin itself. In the end, I'm a few coins poorer, have some mostly worthless "stocks" held by a company in Panama.

Don't keep your coins at a rickety company. While I was lucky / smart enough to survive a number of Bitcoin exchanges going under without losing any coins (I've used Bitomat, MtGox, BitCurex, Cryptsy, etc.). The two times my coins were lost were due to Ripple - some at WeExchange (a gateway that also had some crypto stocks AFAIR), and others due to the Ripple's official wallet being a brainwallet by default.

Don't lend crypto. Back in the day, I tried BTCJam. Lost all of the coins I put in, and it didn't look like the company had any plans of trying to enforce the collections. Other users have similar experience of high default rates. I've been staying clear of such websites ever since.

Be patient, make informed, long-term decisions. In the end, this approach has been the most successful for me. I haven't sold a single coin in a long time and I have a decent diversity of cryptos I expect to do well for themselves in the long run.

Conclusions


Cryptocurrencies are a high risk investment. They can yield great returns, but also end up losing you all that you've invested in them overnight.