Monday, July 18, 2016

Transactional currencies - Entry Credits and Gas

Transactional currencies - Entry Credits and Gas

DISCLAIMER:
While I work for Factom, the opinions expressed in this piece are, as always, my own.

----

Working at Factom I came across an idea that seems seldom explored in the cryptocurrency space - a transactional currency called entry credits. They operate alongside the main currency of the network, factoids, but while factoids are a fully functional cryptocurrency that can freely circulate in the network, entry credits have a number of restrictions on them:

  • Entry credits are created out of factoids (by burning them) at an exchange rate dictated by the system, but they can't be turned back into factoids
  • Entry credits can be created ahead of time to lock in their factoid-entry credit exchange rate, and used later down the line
  • The exchange rate is tweaked by the system to stabilise the price of entry credits, while still allowing factoids to be a free-floating currency
  • Entry credits can only be spent (burned) to store entries into Factom - they can't be spent elsewhere
  • Entry credits are not transferable - they can only be spent by the account that received them during the factoid->entry credit conversion
These restrictions create a few interesting features for the system that I don't see explored much in other cryptocurrencies:
  • It is possible to put a large amount of entry credit tokens on a hot wallet without worrying much about theft - any would-be hacker wouldn't be able to cash out the stored value, only spend it. This makes production servers much less of a target for attacks.
  • Being able to lock in the price of the tokens ahead of time means companies can budget ahead of time and don't have to worry about token volatility
  • Having the exact amount of tokens in an account, one always knows how many transactions they can perform in the system before running out

Other tokens


While I haven't heard of another currency having the same features, there are some that function similarly.

Most cryptocurrencies adjust their transaction fees on a regular basis to keep up with the price of their coins. This can function as a way to keep the transaction cost stable without trying to control the price of a currency.

Ethereum uses a more formal approach to this with their gas currency. It is separate from their ethers, but you can't purchase gas ahead of time. The gas is used to pay for transactions and operations in smart contracts, but the final cost calculations are more complicated - one can get gas rebates for freeing up memory as far as I heard.

Conclusions


The Factom project might be one of the first projects to implement a fully transactional currency - entry credits. While being a confusing feature for some, it is an interesting approach of stabilising the transaction cost of production blockchain application, as well as limiting the attractiveness of an attack on the production servers.

Monday, July 4, 2016

The Bitcoin Bullshit List

The Bitcoin Bullshit List

If you hand around the Bitcoin space for awhile, you will inadvertently come across a few or a few hundred copycoins, scamcoins, scams, ponzi schemes and what have you. Whether it's a large scam like Paycoin, small scale pump and dumps like Quarkcoin, or something that might look like an earnest project that got too big for its own good like The DAO, after awhile you start seeing the same pattern and red flags repeat themselves over and over again.

Being inspired by the ever timely SpamSolutions.txt (a quick checklist of "why your idea to solve the problem of spam won't work"), awhile back I started compiling "The Bitcoin Bullshit List" (also available at http://tiny.cc/Bullshit). It should be expansive enough to cover most of the common scenarios, but if you think it's missing something, let me know and I'll add it in the future revisions.

So, how does the Bitcoin Bullshit List work? You simply read up on or listen to a project pitch and start filling in the checkboxes in the "Your Crypto Idea Will Not Work" section. Once you're done, you can summarise your thoughts and give the project a short "Bitcoin Bullshit Tier".

Let's go through an example to show how this might work in practice (and cutting out the unnecessary parts of the lists).

Example - The DAO


Your post advocates a new:
(x) Altcoin
(x) Investment scheme

Your idea will not work.  Here is why it won't work.

(x) Your target audience is too small to support the project
(x) The proposed security model is (x) flawed / ( ) not enough / ( ) completely wrong and therefore you will be (x) scammed / (x) hacked / (x) stolen from / ( ) ________ quickly
(x) You promise unreasonable return on investment without a clear business model of where the money is coming from
(x) Your project cannot be run legally at your jurisdiction
(x) Your project will not be compliant with the current (x) KYC / (x) AML / ( ) gambling / (x) securities regulations
(x) The solution would work better as a (x) centralised / (x) decentralised / ( ) distributed solution
(x) Your product is poorly implemented
(x) Your presale tokens have no economic value
(x) Your adoption goals are unrealistic

Specifically, your plan fails to account for:
(x) The existing regulations
(x) The required Money Services Business license
(x) The anonymous nature of cryptography
(x) Public reluctance to accept weird new forms of money
(x) The human factor

and the following philosophical objections may also apply:
(x) Ideas similar to yours are easy to come up with, yet none have ever been shown practical

Furthermore, this is what I think about you:
(x) Sorry dude, but I don't think it would work.


Bitcoin Bullshit Tier
You are advertising a new Bitcoin / crypto related project. Based on the information provided, you have reached the Bullshit Tier of 4 for the following reasons:

Bitcoin Bullshit Tier 1 - marketing babble, technology misunderstanding
(x) Dropping names of crypto celebrities to bolster one’s credibility


Bitcoin Bullshit Tier 2 - willful misinformation, bait and switch
(x) Claiming your project can accomplish something hard without a clear explanation of how to do so

Bitcoin Bullshit Tier 3 - Many red flags
(x) Assuring your product is legal
(x) Speaking about profits / return on investment
(x) Presale
(x) Token IPO
(x) Providing no company contact information


Bitcoin Bullshit Tier 4 - Outright scams
(x) Describing a financial security and claiming it’s not a security



Well, that was pretty straightforward. Now, let's compare that to something that is generally not considered a scam and see how well it fares.


Example - Litecoin


Your post advocates a new:
(x) Altcoin

Your idea will not work.  Here is why it won't work.

(x) There is already a product on the market that does exactly what you’re doing, but ( ) faster / ( ) cheaper / (x) better / (x) is more established / ( ) ______________ You are proposing exuberant fees for the use of your product that are unsustainable in the long run


Specifically, your plan fails to account for:
(x) Public reluctance to accept weird new forms of money
(x) Huge existing software and hardware investment in Bitcoin

and the following philosophical objections may also apply:


Furthermore, this is what I think about you:
(x) Sorry dude, but I don't think it would work.



Bitcoin Bullshit Tier
You are advertising a new Bitcoin / crypto related project. Based on the information provided, you have reached the Bullshit Tier of 1 for the following reasons:

Bitcoin Bullshit Tier 1 - marketing babble, technology misunderstanding
(x) “As good as / better than Bitcoin”



Generally, not that bad - some tick boxes will apply to even the most benign and well meaning projects, and that's fine.

Conclusions


With many new crypto projects cropping up and vying for your money, it's useful to step back once in awhile and see how many flags certain projects raise before buying into them. Whether it's for laughs or as a sanity check, the Bitcoin Bullshit List might be a useful tool to run through when looking at new Bitcoin and crypto-related projects:

Monday, June 27, 2016

A retrospective on one hundred posts

A retrospective on one hundred posts

Last week marked a 100th post I have posted on this blog since about 2.5 years I've been blogging somewhat regularly. Today I would like to take a look back and do a bit of a retrospective on some things posted and an overall state of the blog.

General thoughts


Like most people, I get a lot of ideas on various subjects all of the time. Some are so-so, while others merit more contemplation. This is one of the reasons why I started writing this blog - to be able to formulate my thoughts, put them down somewhere and to be able to reference them later as needed - during online conversations, or when writing out other ideas.

It has really been a useful tool for me over the years - before I started writing the blog I would discuss some interesting ideas I had either without writing them down, or in random places over the Internet where I couldn't easily find them afterwards. This would usually mean I couldn't go into that much depth and the thoughts were more ephemeral.

A few months ago I was looking for some post on my blog and I stumbled upon the post about volatile currencies I have completely forgotten about at that point. It's perhaps not the most relevant or best written post out there, but it still contains an interesting idea nugget that might be a useful reference in the future. If I relied only on my memory, it would be gone.

With that in mind, lets look at some popular or interesting posts I have written over the years that you might've missed.

Top ten


Here are the ten most popular posts from this blog, based on the number of views:

  1. On the subject of altcoins - do altcoins have any merit to exist?
  2. On /r/Bitcoin moderation - three years in review - /r/Bitcoin moderation
  3. Deniable proof of Satoshi - talking about Craig Wright's claim to being Satoshi and how future claims should be handled
  4. Liquid - when sidechains say "fuck it" - pondering the Liquid network
  5. Bitcoin historical rallies, halvenings and bubbles - talking about my experience with past bubbles
  6. Why fast maturing altcoins are doomed to fail, or why $30 dollars a day is not enough to secure Quarkcoin - discussing Quarkcoin and its reward schedule
  7. A killer feature for wallets and exchanges - an idea about how exchanges could help grow the value of Bitcoin
  8. How to kill a currency - how could one go about destroying a cryptocurrency
  9. Crypto 2.0 systems - comparing various Crypto 2.0 systems
  10. Mining versus Consensus algorithms in Crypto 2.0 systems - the consensus algorithm and its impacts on a cryptocurrency

Generally, not a bad cross-section of the blog - talking about Crypto 2.0s a number of times, criticising some projects that have some objectionable features, talking about some ideas I still wait to be implemented, etc. Some information is starting to get a bit outdated (I would've expanded the good list to include projects like Ethereum), but overall I can't complain.

Other good posts


The above posts got the most views. However, there are some other posts that I'm proud of. Maybe they got unlucky when they got posted, or the ideas presented are rather niche, but they might be still worth checking out:


Conclusions


Thank you everyone for sticking with me for the one hundred posts. If you find your mind similarly teeming with ideas, my advise to you would be to put them to writing. You may never know when your past self will surprise you with interesting thoughts that would otherwise flee.

Monday, June 20, 2016

Perfection or bust - the rise and fall of The DAO

Full disclosure - I own some ether and I have put some of it into The DAO presale. I don't think it coloured my view of the situation, but I feel it's better to be open about such things.

The DAO has made a lot of waves recently. First - last month when it became the largest crowdfunding project in history, at one point surpassing Star Citizen's 116M USD (although it might be partially due to ETH exchange rate fluctuations). Second time - earlier this week when the DAO was hacked. So lets start from the beginning and have a look at the rise and fall of The DAO.

DAOs, in general


DAO, or Decentralised Autonomous Organisations have been a fairly nebulous concept in the crypto space for awhile. They basically are computer programs that run as an organisation, using its code as law. They can hold digital assets and money that can be spend on various projects, services and other digital assets.

Some have proposed to use DAOs to create a rudimentary self-sustaining decentralised organisations. Such programs would actually use their resources to hire people to improve them. I've heard this concept described first during the 2013's Money2020 Ripple conference, and I would consider BitShares to be one of the first self-sustaining DAOs.

Of course, with the current level of cryptocurrency technology, the DAOs are very limited in scope. They can't be as sophisticated as modern AI running on supercomputers, and since code isn't lawfully binding - the various DAOs have to rely on humans to interface with the outside world.

In theory, DAOs could create a lot new jobs. As @aantonop put it though:

TheDAO will create many jobs. First for people like me who have to explain what the hell it is.

The DAO


The DAO (holding a very generic "temporary name", which it probably won't escape from), created by Christoph Jentzsch, the founder of Slock.it, was set out to be one of such self-sustaining DAOs. It was set up to be a quasi-venture-capitalist-fund. As with many token crowdsales, it was skirting the borders of the law - allowing anyone to invest, not doing any KYC, promising "benefits to the DAO Token Holders", without outright selling securities.

The project had support from a number of high-profile members of the Ethereum Foundation

The DAO started operations by selling its tokens for ETH. The promise was that later the ETH would be used to fund various projects and try to extract value from those projects to the DAO itself. The DAO also had a mechanism to upgrade itself to newer versions of the code. The entire process of both spending money and code upgrade would be governed by the token holders voting. Every vote would be proportional to the amount of tokens held.

By the end of the crowdsale, The DAO has raised 8.26M ETH, more than 10% of the total coin supply.

In theory, The DAO could've been a very strong player in the crypto space. Even if it would spend 10% of its funds just funding early stages companies, it could give out 100k USD to 100 different companies and probably have great ROI by the end.

However, there was a bug in the code...

The exploit


Around 2016-06-17, news broke that The DAO's balance was being drained. Quickly there was a call to all exchanges to stop trading the tokens and Ethers while the situation is being resolved.

As it turns out, The DAO had a small bug in it (discussion, technical overview). They managed to make a recursive call to a function and use that exploit to start draining The DAO of its ETH. Before the attack stopped, 3.6M ETH was extracted, worth about 50M USD give or take 20M due to wild price fluctuations.

The attack stopped around the time Vitalik released a blog post about how Ethereum will be handling the exploit. In the end it was decided that Ethereum will not roll back, instead creating a soft fork preventing the drained ETHs from being spent. The coins would also apparently be reimbursed and everyone that put their money into The DAO would be getting it back.

The following day, we actually got a statement from "The Attacker" about the issue, claiming that the draining of ETH was legal and in accordance to The DAO's rules ("code is law", therefore any execution of the code is always as intended). The Attacker also threatens legal action against any attempt to freeze the drained ETH. If such a case ever made it into a court, it would probably be the most important precedent for the future of decentralised organisations as a whole. Only time will tell where the story goes.

Other criticism


If The DAO has not been taken down by this exploit, it is entirely possible we might've seen a lot of other problems crop up in the future. Here are just some of the possible issues and other ideas that would need to be considered.

Setting a precedent for Ethereum. The way Ethereum handles this exploit may affect how similar future problems would have to be addressed. If they go through with the blacklisting, they might be required by law or asked by the community to do the same in the future for a lot of other things. This can open up a big can of worms. However, if they don't, then they might scare off any other similar projects from using the platform, along with some of their users. Damned if you do, damned if you don't.

Voter apathy. If The DAO would have a large amount of users sitting idly on their tokens rather than voting with their money, the software might have problems reaching the needed quorum to do anything. Apparently in Bitshares, only about 10% of stakeholders participate in voting. Perhaps switching to a Delegated Voting model might help alleviate the issue.

Unexplored legal area. The DAO seems to have aimed to exist in an unexplored legal area. It operates like a security or a venture fund without doing the due diligence. It technically cannot be sued, but people that put money into it might face legal repercussions. All in all, it probably would give any lawyer and government official a headache to try framing it in the existing rule of law.

Lack of KYC. While a lot of people in the crypto community want the government and regulations as far from their projects as possible, some oversight might deter attackers. If every investor in The DAO would be vetted by KYC first, and if only vetted individuals could hold the tokens, anyone attacking The DAO would have to be prepared to get sued and criminally charged for their actions. Right now the best we've got is to try tracing the ETHs they owned back to an exchange and possibly investigate some Ethreum / DAO short calls someone might have set up before the attack (similarly to the idea of "terrorist insider trading").

Rushed deployment. After The DAO has been released, there have been some concerns from people that the code should've been tested and vetted more to iron out any bugs. A code that holds so much money is a gold-filled pinata for any and every hacker that might try to break it 24/7. Some attack vectors have been published before the attack (description and mitigation). Since the contract is vulnerable right after it's released, rushing a release is not wise.

Any bug needs to be fixed immediately. With a smart contract running on a decentralised network, it is vulnerable to exploits all the time. Any new bug that is found needs to be fixed right away, especially if it is described publicly. With more centralised software, you can at least shut everything down until the bug is fixed, but such luxury would be harder to implement in a DAO.

One mistake and your money is gone. While this one applies to most cryptocurrencies, it also bears mentioning - any bug in the code that breaks the smart contract that holds actual money (in this case, ETH) can cost you everything. If you deploy such a piece of code and send money to it, it is gone and you won't be able to get it back.

There are no rollbacks with real coins. While any contract that issues and deals only in its own tokens can be rolled back to any point in time with a patched contract, the matter is not as simple when we're dealing with actual coins (in this case, ETH). As the native coins exist outside of the contract's controls, using such contracts to manage the coins is more dangerous than just dealing in tokens.

Putting all eggs in one basket. A contract holding over 100M USD is a disaster waiting to happen. At the very least some of that money should've been put in some deep cold storage until it is needed. Enter into some legally binding contract with 50 people if you need to to provide some multisig and keep the funds safe. It's like putting all of your coins into a hot wallet - you shouldn't do that.

Paradox of presales. Even if The DAO would function correctly, it might be a hard value proposition, similar to most other ITOs (Initial Token Offering). Unless you are an actual security / fund and building projects that funnel their earnings into the organisation, the projects that benefit The DAO holders rather than Ethereum as a whole might be inferior to the general use case. There is a lot that the Ethereum platform and anything on it could benefit from, but tying them into one smart contract might defeat the purpose. Since many DAOs want to avoid being labelled as a security, we might just get some weird projects in the end.

Relation to other projects


A few people have started comparing this bug to a few other things in the cryptocurrency space. Perhaps it is important to have a look at them and figure out how similar they are.

In the early days of Bitcoin, in mid-2010, someone found a way to create 184'467'440'737.09551616 BTC (almost 10k times more coins than would ever exist) out of thin air in a so called "Value overflow incident". The bug was fixed and the network was rolled back. The bug is similar - use an unexpected way the code works to get access to more tokens than one should be able to. However, this situation is different as it breaks the core functionality of the entire network, rather than a sub-part of it that is not governed by the protocol. Rolling back the network to before the bug was introduced is entirely justified - it is something that shouldn't have happened. With The DAO, the situation is a bit different - the core network functioned as intended, it is the final product that was at fault.

Another incident similar to this was the fall of MtGox allegedly caused by Transaction Malleability, and the attack on JustCoin with Ripple's Partial Payment Flag. In both cases, the software creators did not anticipate an obscure network behaviour that lead to their downfall. In neither cases did the network got rolled back - it functioned as intended, and to my knowledge neither of those companies got bailed out for the bugs in their code. This would probably be the closest analogy.

The decision to bail the contract out and refund the drained ETH might be either seen as the Ethereum Foundation trying to mitigate the damage to the network's reputation, or it might be due to many of the Foundation members lending their credibility to the project itself. One way or the other, I doubt we would see many similar DAOs in the future with such lineup of big name supporters to mitigate any similar damage in the future.

What is also worth noting is that because of Bitcoin's success, a lot of the cryptocurrency projects may "suffer" from an accelerated growth. There have been many incidents in the earlier days of Bitcoin of people losing their money and it wasn't that big of a deal - the coins were worth only so much. However, with networks such as Ethereum being worth a billion dollars less than a year after release, you have similar high profile bugs, but the coins themselves are worth a lot more a lot quicker. Perhaps we should try stalling the gold rush until a project has been vetted by early adopters hammering out all of the kinks and best practices? It's probably not going to happen unfortunately...

Lastly, if the Tau developers want to brag about how their platform is / will be much better than Ethereum since such bugs can't happen there, it is your time to prove yourself - deliver us your implementation of The DAO in a language of your choice so we can pick it apart and see if it breaks.

Conclusions


The DAO has been an interesting ride. It allowed the ETH to double in value and crash back down. A project of this scope if executed correctly would certainly be a game changer for any cryptocurrency network. Unfortunately, as many have made this joke before, it seems The DAO was DOA (dead on arrival). With DAOs, it's perfection or bust.

Spells of Genesis card for The DAO, reading
"Holding so much energy, the Colossus is able to withstand all threats"...

How Bitcoiners see the situation

Monday, June 13, 2016

Bitcoin historical rallies, halvenings and bubbles

As of the time of writing, we are less than 4'000 blocks / one month away from Bitcoin's second halvening (the 4-year block reward halving period). We are also in the middle of a price rally, rising from about 400 USD/BTC and currently going through the 650 USD/BTC price. This seems like a good a time as any to talk about some of my past experiences with Bitcoin rallies, bubbles, and the last halvening.



The First Bitcoin Bubble - mid-2011


I joined the Bitcoin community during the rally for the First Bitcoin Bubble (or at least the first one everyone heard about). It is the little, insignificant blip on the chart above, but at the time it was the wild, uncharted territory. The price reached a staggering 30 USD/BTC (and as far as I remember, 40 USD/BTC equivalent on Bitomat). A lot of people, myself included, were getting into the Bitcoin mining fever, projecting to make astonishing amounts of money with their computers and GPUs. However, the bubble burst, MtGox got hacked and the future of Bitcoin was uncertain. Nothing like this has ever happened before, so we didn't know if the currency could recover from such a bubble, or was it all over. By November, bitcoins were trading for about 2.25 USD/BTC.

The 2012 Halvening


As it turns out, Bitcoin didn't die. The next year started a bit anaemic, at around 5 USD/BTC. The mining difficulty has died down after the mining fever and it looked like the price of $5 was a solid bottom where the miners would be earning about as much as they put in. The first halvening was a looming event, but we wouldn't see it until the end of that year. Early in the year I thought to myself that since $5 is a rather solid price for the miners to make a bit of money, after the halvening we should see the price be at least $10. Turns out I was right - after the event, which was rather uneventful, we did see the price in the teens. Good enough reason to go out and have a small Bitcoin party everyone seemed to have been organising for the occasion.

The Cyprus Bubble - early 2013


The early 2013 started strong - Bitcoin was growing rapidly from 25 USD/BTC to the high of over 250 USD/BTC. Some of it was driven by the starting ASIC hardware race, but I think the biggest event that contributed to the price was the Cyprus financial crisis and the bank deposit seizures / bail-ins. The bubble burst when MtGox halted its trading due to not being able to handle the market volumes. The price went down to under 60 USD/BTC as people were desperate to get rid of their BTC by any means necessary.

The China Bubble - late 2013


2013 saw not one, but two big bubbles. After Bitcoin was declared dead once more in October after Silk Road was shut down (after all, allegedly only drug traffickers use bitcoin!), Bitcoin started to show it can stand on its own and shed all of the bad press.

Around the same time Bitcoin was also heavily featured in the Money 2020 event with companies like Coinbase, BitPay and Blockchain representing (funny enough, this is what I saw at my hotel :) ).

However, despite those events being a definite boost to Bitcoin's price, it seems that the majority of the rally was done by people in China. Everyone seemed ecstatic about the price rally, posting pictures of moon landing after we reached 1000 USD/BTC, putting forward motions to switch from BTC to mBTC as a default denomination, etc. It was fun all around.



The rally ended similarly after Bitcoin was allegedly banned from Chinese banks. The price declined with some fluctuations, reaching a bottom of about 220 USD/BTC in February of 2014.

The fall of MtGox


MtGox was a mixed bag in Bitcoin's history. early on, it was the biggest exchange, they were even generous enough to bail out Bitomat after it lost its private keys. Heck, they even published an ad for Bitcoin in G8 Conference Magazine:

MtGox Bitcoin ad

However, after a few hacks and general incompetency, MtGox became a joke. Due to problems withdrawing fiat for awhile, the price on MtGox was consistently 10-15% higher than other exchanges (as everyone needed BTC to cash out). When Bitcoin withdrawals were shut down, someone set up a market for trading real BTC for MtGox BTC, since the site still allowed internal coin transfers. The price was going down below the market as the withdrawals stopped but the trading continued. Eventually, the exchange was shut down in early 2014 when Bitcoin was at its lowest since the last year's bubble.

The current situation


Currently, we seem to be in a middle of a next rally in preparation for the halvening. We started the year above 400 USD/BTC, and if the last halvening is to be believed, we should end it at at least 800 USD/BTC. However, it feels like a lot of people are rooting for a new all-time high. Well, only time will tell - Bitcoin is a honey badger, it does whatever it wants.

Useful links

Monday, May 30, 2016

Tau-Chain - a programmer's perspective

EDIT:

After speaking to Ohad Asor, the creator of Tau, about the below piece, it's apparently "blatant obvious nonsense about things [I] don't understand" and "the contradictions are all around. just like eth". The Tau presale was apparently also meant for "only well informed buyers", "i have morals. im not ethereum!".

So yeah, the Tau project is not for mere mortals like myself, and the spam and promotional videos are meant for intellectual elites that will then buy the exclusive tokens. The project looks much better suited for some high-end computer science academia really, but no, token presale is the way to go.

Remember - the Tau is not for you, stupid.

END OF EDIT

Living in the Bitcoin land, you never know what you might come across next. It could be as benign as someone issuing a currency backed by pre-1965 silver US dimes, as geeky as someone creating a blockchain to mine for prime numbers, or it could be as convoluted as BitShares with the many iterations it had over the years (as someone put it - "BitSharesX - An Alt Coin That Is Impossible To Understand"). Over the last few months, I've been seeing a lot of spam about Tau-Chain, along with its many extravagant claims, and figured it might be interesting to try to understand it.

Disclaimer - the project appears to be delving really deep into the theoretical computer science that almost borders on philosophy. While I do have a masters degree in computer science, I can't claim I fully understand some of the topics Tau-Chain touches on or their implications. I will instead focus on more practical aspect of Tau and how it presents itself as a piece of software with practical use.

What is Tau-Chain?


So, what is Tau-Chain? Well, it's quite simple, just look at this graph from the founder of Tau:

A simple explanation of Tau-Chain...

Okay, it's not simple at all. This graph represents what sort of confusing things we're dealing with here...

From what I gathered looking at the project's website, its whitepaper, roadmap, some articles on it, listening to a LTB interview, viewing some other resources and talking briefly to the founder of Tau-Chain, I think we are dealing with two components here - Tau and Tau-Chain. Unfortunately, it seems the people involved in the project like to use those terms interchangeably and confuse everyone further.

Tau appears to be a new programming language, apparently similar to Idris. Unlike most traditional languages most programmers deal with on a daily basis, it is not turing-complete. Instead, it is a decidable programming language. What this means is that it avoids the halting problem, while still being able to do anything a finite turing machine can do. Since in practice we don't have infinite turing machines, from what I understand it should be able to do anything a turing-complete language could do. Apparently, this approach might be more secure. On top of that, Tau "has built-in P2P and blockchain".

Tau-Chain on the other hand, appears to be a sidechain-enabled blockchain that can run the Tau language. It seems to be similar to Ethereum with its contracts - both have a growing library of code embedded in it that anyone can call upon to build their code on. As I understand however, Ethereum's code can be more risky to use as you might not always be able to predict what the contract might do without its source code at hand, while Tau the language is more predictable in its execution?

The project also appears to have another component to it - the Agoras. As far as I can tell, they seem to be smart oracles that can execute various contracts and other Tau code. They appear to be able to interact with the Tau-Chain, as well as with one another directly. All in all, they remind me a lot of Codius, especially if you consider that that project aimed to be able to prove what code is being executed and so on. Not a bad feature, but there doesn't appear to be much new to talk about there.

What Tau-Chain promises


While initially researching Tau-Chain, one will stumble upon their promotional video:

Tau-Chain, solving all of your software development problems apparently...

Which lists a few outlandish claims about what Tau / Tau-Chain can deliver:

  • Software that always does what it is supposed to
  • No more bugs
  • Automatic requirement validation by the Tau client
  • It is impossible to write code that doesn't work
  • Thanks to Tau, the client doesn't need to trust the coder and vice versa
  • The payment for developing code is automatically paid when the code is verified by the Tau network
  • The Tau blockchain stores social norms, scientific theories, "whatever is based on facts and rules" (one example flashing in the video is "Once you start to eat you should never leave spoon, fork or knife on the table. Their place is on the plate.")
  • Tau-Chain code is reusable
  • Tau is a database of provably working code snippets
  • You can use the Tau-Chain to build search engines, social networks, market places
  • You can develop provable smart contracts on the Tau-Chain

As a software developer, I would take all of that with a huge grain of salt. Then again, it might be my turing-complete attitude talking and things might be different in the decidable language space. If this video was talking about traditional software languages, I would put my money on the video being about test-driven development - an approach to software development that starts with test cases (what the code should and should not do), and then developing the code to fulfil those tests. In theory this could mean that the software has no more bugs, it does what it is supposed to and can be verified automatically when new code is checked in. So while it would fulfil most of the listed requirements, in practice I would not expect it to be *the* solution to all problems - writing good test cases can be as hard and time consuming as writing good code, and I doubt 99% of the clients purchasing software would be able to use that. If the test cases aren't sufficiently complex, we might run into the problem of software being built just to tick the checkboxes and not much else. After all, any program operating on a sufficiently small domain could be replaced by a lookup table...

I am also very sceptical of how the software will decide what are the stored facts and how those will be handled and proven. Even more so when we're talking about "facts" about the real world and social norms. How do you prove you should not put used forks on the table, from a software perspective? How do you handle a problem having multiple contradictory answers (an infinite sum of (1-1+1-1...) can be proven to equal 0, 1, 0.5, -0.5, etc...)?

Some other claims I stumbled upon from other sources (1, 2, 3):
  • Tau client's behaviour is dictated on-chain, with the chain being able to hard-fork itself
  • Tau (-Chain?) has no rules at all, its users will set its behaviour
  • Tau does not need a coin, but it has a token presale anyway
  • "Tau network will be able to download virtually the whole internet, practically giving everyone the same information Google has, and more: data can be queried and processed more meaningfully and collaboratively, so you could perform queries as you like."

While there are more claims, lets just limit ourselves to those few (a lot more can be found in the LTB interview).

The Tau / Tau-Chain's feature of embedding how the network operates in the blocks themselves is rather unique feature as far as blockchains go, but at the same time it can be one of the more dangerous thing out there. It certainly offers the network more apparent freedom from Bitcoin-like hardfork stalemate, although in reality Bitcoin's hardfork problems are never about the code being hard to change, but about the people you need to convince. It might also impair some thin clients if they are applicable to the chain (how can you just run the chain from a given length if you don't know what the rules are from all of the previous blocks?). The definition of who the "users" in the system are (one-vote-per-person / machine / CPU?), as well as what the rules for hard-forks will be will probably shape the network very drastically early on. I wonder whether anyone will try to change the code of how the blocks are executed to "stop execution, return 0"...

The token presale doesn't appear to be anything new in the crypto world - it's the paradox of presales all over again. Tau the language and network doesn't need a new coin, it would probably operate better without it, but the developers need money to develop the language / network, so they sell tokens to speculators. Looks to me like another Bob Surplus-esque coin looking for a problem.

As for the last claim, and a few similar marketing blurbs, I think they deserve a section all of their own...

False equivalence, false dichotomy, eating your own dog food


The quote about basically being able to replace Google appears to be a false equivalence fallacy. There are many problems with trying to say you can basically be like Google:
  • I very much doubt the network could handle about 10 exabytes of data
  • Being able to efficiently categorize all of that data requires very smart algorithms and a lot of data. You can't even begin figuring some of the things out without having efficient access to enormous data sets. For example, how would you figure out a search for "high contrast pictures of fruit floating threateningly in the night" (thanks Reddit)?
  • Google is as much about the data (what the websites contain), as much as it is about the metadata (what the people are searching for and what they are clicking). Having just one part of that might not give you the full picture
  • Without having most of the data at hand, it is impossible to know if you returned most of the searched data. While you might be able to make queries based on the data you do know, you can never know how much you don't know
  • It is also impossible to prove that real-world data is correct. Since Tau-Chain is focused on storing "whatever is based on facts and rules", how would you be able to know, say, what is the weather outside right now? Sure, you can have a lot of data points, but you can't prove they are true or made up

All in all, statements like that are just red flags if someone also asks you for money. At best, they are marketing superlatives. So while sure, if we're talking about Tau the language, someone might use it to implement a Google-like service with it and so on, but the same could be said about computers based on cogs and wheels (after all, any turing machine is equivalent to another). All in all - false equivalence - your software is not even comparable to Google.

Now, lets finish this discussion with a subtle false dichotomy. I stumbled upon this marketing blurb about Tau from some of the spam I see pasted in a few chats I visit:


It compares how Tau-Chain is different from Ethereum, and links to a blog post by Peter Vessenes criticising how buggy some of the Ethereum smart contracts can be. He makes a lot of valid points - since you can't upgrade and fix the contract code post-launch, you either need a good failsafe, or write perfect code not to lose people's money. However, what I take slight annoyance with, is how this sort of marketing might misrepresent the situation - "Tau is different from Ethereum, here are a few reasons why. Here is someone criticising Ethereum (while not talking about Tau)", implying that since Tau was not criticised and it is presented as Ethereum's competitor, it somehow doesn't have those flaws. No Tau, criticism of your competitor does not mean you don't / won't have those problems yourself.

Lastly, I find it really amusing that Tau apparently doesn't like the taste of its own dog food - for all of its criticism of turing-complete languages, saying how Tau is a much better language and all of that, in the end they develop their code in C++. I did bring this point up to Tau's creator and he made valid points as to why that is - they want to develop the software in an efficient language to make it operate efficiently and in the future they might implement Tau-Chain in Tau. Understandably, software development takes a lot of resources and time, and you want to release early, release often, but this somehow doesn't fill me with confidence that Tau will be usable for any commercial-grade software any time soon...

Conclusions


While Tau appears to be an interesting development of a new programming language and its creator certainly sounds very knowledgeable in his field, Tau-Chain looks like a project looking for a problem. Bootstrapping a new token to run a blockchain to use a new programming language for smart contracts that don't halt seems like a very complicated way of reinventing everything just because you want to change a few things. I am highly sceptical of how the network will handle everything it promises, especially when it comes to dealing with things in the real world. It could be as mundane as a different flavour of Ethereum with a non-turing complete language, some smart oracles, etc., or something potentially new - only time will tell. Until Tau-Chain is released, I remain unconvinced.

Amusingly enough, the Tau-Chain video contains an Escher-like perpetual motion water mill at 1:40. I wonder if this is telling that the project is trying to invent something impossible?

Tuesday, May 24, 2016

Bitcoin rivals

Bitcoin rivals

Recently I came by a tweet by Andreas Antonopoulos stating:

Stop calling ethereum "the bitcoin rival". No one in ethereum or bitcoin believes it is a rival. Post-national currencies are not zero-sum

Which got me thinking - can Ethereum or any other cryptocurrency be seen as a Bitcoin rival?

Bitcoin vs fiat


First, lets look at how Bitcoin competes with fiat.

Looking at the definition, a rival is defined as "A competitor with the same goal as another, or striving to attain the same thing. Defeating a rival may be a primary or necessary goal of a competitor." and "Someone or something with similar claims of quality or distinction as another.".

When talking about most fiat currencies like USD, Euro, GBP, etc., or hard assets like Gold or Silver, it might be hard to call Bitcoin a rival to those, at least so far. A lot of national and international currencies exist to facilitate trade, government programs, taxes, etc. on a scale where Bitcoin doesn't register yet. Previous metals are similarly used for some trade, as well as store of value, speculation, etc.

While Bitcoin can fulfil similar niches as those currencies, the currency would first need to rise in value a few orders of magnitude to be able to compete on the same scene. In the future, Bitcoin may be seen as a competitor to USD or Gold, but it will probably take awhile. That, however, doesn't stop it from filling in some other niches.

Bitcoin in various applications


While Bitcoin might not compete against Gold or USD, it can still catch the attention of some gold bugs, internet sellers, or the unbankables. Bitcoin might be too small to compete in the primary markets of companies like PayPal or Western Union, but it seems to be catching up in the more fringe markets.

Bitcoin vs altcoins


Bitcoin's most direct rivals would be the various altcoins.

Looking at the current cryptocurrency market, we have Bitcoin at $6.9B market cap, Ethereum at $1B, Ripple at $206M and Litecoin at $181M, with every other coin having substantially less than $100M.

Bitcoin's most direct competitor feature-wise would be Litecoin, sitting at 1/38th of the market cap. While it might be a notable currency for speculation, there doesn't seem to be as much adoption and development push from within and without the Litecoin community to say that LTC is competing with BTC. As such, it doesn't look like a potential rival for Bitcoin.

Ripple, due to the centralized control of its XRP tokens, can never hope to compete with Bitcoin. Similar to Omni and Counterparty, it might be better suited to be a Bitcoin compliment - dealing with user-created currencies, while leaving Bitcoin to be the decentralized currency.

This leaves us with the main topic - Ethereum...

Bitcoin vs Ethereum


Ethereum is a bit of a mixed bag. Its genesis block started with ~72M ETH being created for the presale (~60M ETH), the developers, and the Ethereum foundation (~12M ETH). With the current supply of 80M ETH, that presale constitutes a large chunk of the total ethers in circulation. Some might see that as premining, while others, like myself, don't see similar presales as such.

Ethers also aren't always viewed as currency, but rather as a token for executing code on Ethereum. While that might be true and some core developers might say that for legal reasons (to protect themselves from any legal fallout from the token presale), it hasn't stopped people from speculating on the value and bringing the value up more than 10 fold in the last year.

Lastly, Ethereum does a lot more with its scripting language than what Bitcoin can. Until we get something like sidechains up and running, Bitcoin will probably not be Ethereum's rival anytime soon.

However, the opposite might not be true. Ethereum has 1/7th the market supply of Bitcoin, a large community around the world, and is starting to get high-profile projects like The DAO. As such, Ethereum is shaping up to be a rival to Bitcoin.

The rivalry


With all of that being said, Ethereum and Bitcoin filling the same niche of decentralized internet currency might not be too bad. Both of the currencies still have bigger opponents to overcome on their way up - fiats, precious metals, centralized payment processors taking big cuts, etc. Success of one might not mean the loss of other. As long as both communities remain on good terms, developers, exchanges, and other crypto businesses are open to accepting both currencies, and we keep our eyes on the same target of overcoming the old way of banking, there is no reason why this rivalry couldn't be a friendly coopetition.

Conclusions


Bitcoin is not yet a rival to the big fiats or precious metals, as it is too small to register. Most altcoins aren't big enough to compete with Bitcoin. Ethereum is a potential rival to Bitcoin, but there is no reason for competing directly with one another when there are old currencies and use cases to take on first.