Showing posts with label Blockchain. Show all posts
Showing posts with label Blockchain. Show all posts

2017-04-02

Do you need a blockchain? A simple overview.

Recently, I had a conversation with an entrepreneur that wanted to integrate blockchain into his business. After a lengthy conversation, we reached a conclusion that his project wouldn't really benefit from the technology at the current stage. While some blockchain enthusiasts might argue that most ventures would be better with a blockchain integration, figuring out when the technology isn't right for a project is just as important as increasing its adoption when it is.

In light of that event, I put together some simple guidelines of when you should consider using a blockchain technology or cryptocurrencies in general, what benefits they can give you and what are some downsides. If none of those criteria fit, it might be best to reconsider chasing the blockchain fad for the time being.

1) You can't use the traditional banking system


If you are operating a business that has problems with the traditional banking system, you can use the cryptocurrencies to accept payments. Perhaps PayPal is not supporting your country, charging high fees, or the nature of your business makes you undesirable for banks. Maybe your local currency is under strong foreign exchange control or experiencing hyperinflation. In all of those examples, using cryptocurrencies such as Bitcoin as an alternative means of payment is an option.

You might have problems getting your customers to pay you in those currencies, but this might be better than nothing.

2) You are sending money internationally


International bank wires can take a lot of time and be expensive. It is possible to circumvent some of that through the use of cryptocurrencies. There are some companies that support last-mile payments, such as Coins.ph in the Philippines, or Abra wanting to create "the Uber for money transfers". You could, conceivably, send a local wire transfer to your local Bitcoin exchange, convert it to BTC, then use those coins to complete the international payment.

Solutions like these are still in their infancy however - you would have to make sure the right companies exist on both sides of your transaction and that the fees are reasonable.

3) Your business is forming close payment loops


If the money in your business is always flowing in one direction, say, from your customer's credit cards, through your bank account, down to your employees and suppliers, there isn't much room for the blockchain. The process of on boarding and off boarding would detract from your business. However, when your business starts forming closed loops of payments, you can start applying the blockchain.

Say, you're moving money back and forth between two countries. You can keep track of the payments on a system like Ripple or Ethereum and only settle the difference at the end of the day, rather than having to perform a wire transfer each time money moves back and forth.

While in this scenario you could accomplish a similar goal with a simple database, the more complex your system gets and the more actors get involved, the better you are fit for a blockchain solution.

4) You have a good infrastructure you can open to other parties


Let's say you are really good at handling the last mile payments in your country. Whether it's a country that's hard to reach financially like China, or perhaps less focused on like the Philippines (going once more with our Coins.ph example). You can do good business there by yourself, but if you open your infrastructure for other people to use, you can be earning an extra income from them. In this scenario, the blockchain essentially acts as middleware between your system and anyone that wants to use your connections. Coupled with a network effects of an open system like that, even a few vendors can form a very appealing web that spans the globe.

You don't need to be handling payments to be in the infrastructure business. Market making, FX trading, international settlement and the like are also very much in demand.

Unfortunately, systems like these aren't very common at this time. You might be building an infrastructure for the future, but at the present you might only get nominal activity at first.

5) You are creating a decentralised system


If you are building a decentralised system, a blockchain may be useful for it. If it's well implemented, it can be a convenient, reliable way to synchronise data across many nodes. You can also create a cryptocurrency token to go along with the system to manage the scarce resources you would be dealing with, whether it's storage, bandwidth, or something else. Decentralised storage, DNS, perhaps a new social network or the like could all benefit from using a blockchain technology.

That being said, a lot of decentralised systems might not benefit from this system. If you're dealing with the real world or trying to use the blockchain just as a settlement layer, you might not benefit from adding a specialised blockchain layer. Similarly, a blockchain won't make a bad project good - making a "Facebook killer" will take a lot more than that.

6) You need extra transparency


You are operating a business that can benefit from radical transparency and accountability. Perhaps you want to show your data hasn't been changed after it was created, or that you have all of your financial records accounted for. That's definitely where blockchain projects like Factom can help you (full disclosure - I work at Factom). One of the core features of the blockchain technology is that the past data cannot be altered without invalidating any future records. And if the records are public, any alteration becomes evident.

The main caveat for this approach is that blockchain-based proof of existence hasn't yet been tested in court, which means the first use of it as evidence would have to jump through some additional hurdles.

7) You want to innovate with the smart contracts


Smart contracts are an innovation in the blockchain space. They allow for the creation of autonomous programs that have access to their own money. This means you can run self-contained casinos, create decentralised autonomous organisations, etc. All very interesting and cutting-edge stuff that you can probably earn a pretty penny by building for and consulting to other companies that want to get into the blockchain space with their idea.

Unfortunately, the space is currently very niche and a lot of the noteworthy projects are very much their own thing. If you know you want to be developing smart contracts and have an idea of what you want to build, you don't need this guide really.

8) You want to build for the cryptocurrency community


The cryptocurrency community is as vibrant as any community built around an emerging technology. There is some good money to be made catering to that, whether by tapping into new markets, building exchanges, wallets, payment processors, all sorts of stuff. There is money to be made in this space if you have the right product to offer.

On the flip side, if you don't understand the market, you might not be able to earn enough money to get by. There have been countless companies that went under or never launched in the short history of the blockchain technology.

9) You want to create a new economy


We are getting into the more contentious use of the blockchain technology - creating new currencies, or "altcoins". Perhaps you are part of a community that wants to start its own currency - maybe based on time, nationality, implementing universal basic income or the like. If you want the currency to be independent, freely traded in your community, you can use the blockchain technology for that. Many have tried that before.

On the flip side, if you want to use this as some means of getting rich or the people you are working with don't have a strong need for their own currency, you might be creating another pump and dump coin that will come and go. We don't need more of those.

10) You want to raise money for your project with a crowdsale


Another contentious topic in the blockchain community - ITOs - Initial Token Offerings. If you have a project that needs some funding to succeed and you can make a good case of how you can integrate it with a blockchain, you can try doing a token presale to get some money instead of looking for actual investors. There have been some good projects that used this model, like Ethereum, but there also have been a lot of bad projects that have gone down this route.

Often, adding a token to a project doesn't make sense or makes the final product worse. ITOs have a bad rep in the community for a reason. Unless you really know what you're doing or are just in it for the money, then you can use the blockchain technology for this goal.

Conclusions


These are roughly the main reasons why you'd want to consider using the blockchain technology in your business or project. If any of these resonate with what you're doing, you might find something to make your project better or at least more interesting. If not, your effort is probably best spent elsewhere.

2017-02-20

Blockchain Terminology - a developer perspective

One of the discussions I had with SCC's committee on "Blockchain and electronic distributed ledger technologies" was about the various terminologies used by the Bitcoin / blockchain community. In light of that, I figured I would put together some of my interpretations of those terms as they might be viewed by a developer working in the field. The following list is by no means exhaustive and it could be further refined, but I hope at least some of the examples and nuances in meaning would be helpful in expanding some of the definitions of more rigorous dictionaries.

Address

A string of characters representing the destination of a funds transfer on a Blockchain. For example, "1PiachuEVn6sh52Ez7o6Fymvw54qvQ4RBm" is a Bitcoin address, "0xcd234a471b72ba2f1ccf0a70fcaba648a5eecd8d" is an Ethereum address. Addresses are usually a human-readible representations of a Public Key composed using a fixed scheme, but they can also represent concepts that don't correspond to Keys, like Ethereum's contract addresses.

In most blockchain systems, every entity can own many addresses. Some blockchains like Bitcoin focus on creating a lot of addresses, while others, like Ripple, focus on reusing the same address many times over.

Addresses are analogous to bank account numbers.

Altcoin

A term that originated early in the Bitcoin history, an Altcoin refers to "an alternative coin implementation", usually being an alternative to Bitcoin. It has often been used dismissively and sometimes even derogatorily, especially when referring to a lot of "copycat coins" that are a carbon copy of Bitcoin with minor tweaks. Most well known Altcoins include Litecoin and Dogecoin.

A lot of Altcoins mostly focus on tweaking small parameters of Bitcoin while preserving how the system operates on a higher level. The tweaks most often focus on the Hashing Algorithm, Block creation time, Coin distribution, name and branding.

When an Altcoin is created solely to be speculated on and then abandoned, it's usually referred to as a "pump and dump" or a "ScamCoin".

Some part of the community refers to every non-Bitcoin cryptocurrency as an Altcoin, while others shy away from this term when talking about more sophisticated projects that differ greatly from Bitcoin, such as Ripple or Ethereum.

Block

A Block is a cryptographically secured collection of Transactions along with some extra information stored in the Block Header. That extra information usually states the Hash of the previous Block, the current time, and the Merkle Root of the transactions, among other information.

There is usually some limitation to how many and how often Blocks are created in a given Blockchain project. In Bitcoin, the Blocks require a Proof of Work to be valid. Ripple Blocks require a consensus to be reached.

Blocks are usually referred to by their Hash. Due to how their Hash is computed, the Block cannot be altered without creating a completely different Hash.

Blockchain

A Blockchain is a collection of Blocks refering to one another in a linear sequence all the way to a Genesis Block. Because of how the chain is created, any change to any Block in the sequence would invalidate all of the Blocks that came afterwards. This is one of the core features of a Blockchain known as Immutability.

If two or more Blocks refer to the same previous Block Hash, this is known as a Fork. In most systems, only one of those Blocks will be considered valid, usually the one that will end up in the longest branch.

The term "Blockchain" is also used to refer to the projects that use Blockchains. Bitcoin is a Blockchain project that contains the Bitcoin Blockchain. This term was popularized in mid-2015 by large enterprises such as Overstock and NASDAQ wanting to use the then called "Bitcoin technology" without using the term "Bitcoin" due to its various connotations.

Colored Coins

A Colored Coin is an idea of "earmarking" particular outputs of a given Transaction and assigning some extrinsic value to them, usually representing some real world assets or currencies. This is the most basic implementation of a Crypto 2.0 system, allowing simple Blockchains such as Bitcoin to track non-native currencies.

There are specific rules governing how a perticular implementation of Colored Coins handles transaction mixing and other related features.

CryptoCurrency

A CryptoCurrency is a cryptographically secured currency. The authorisation of transfers of CryptoCurrency between Addresses is handled either by public-key cryptography, or Smart Contracts.

Most Blockchain projects contain at least one form of Native CryptoCurrency, often referred to as a Coin or a Token. Bitcoin the project is used to transact in bitcoin the currency, Litecoin - litecoins, etc. Some projects have multiple native tokens (such as Factom with its Factoids and EntryCredits), while a few projects (usually Permissioned Blockchains) have none (such as Hyperledger or Eris).

Some Blockchain projects, sometimes referred to as "Crypto 2.0", can also support user-created CryptoCurrencies. Those usually take a form of an IOU for a real-world asset, such as BitstampUSD on Ripple, or TetherUSD on Omni. A few projects also create currencies based on derivatives from the Native Tokens, such as BitUSD. Some of the Crypto 2.0 projects that support Smart Contract allow for complex script to manage how the currency behaves.

Decentralized Autonomous Organizations

A Decentralized Autonomous Organization (or DAO) is a computer software that is able to manage money without being reliant on third parties. They usually take a form of an automated Smart Contract, but the definition can also include some Blockchain Projects as a whole, such as BitShares.

DAOs are created with a set of rules governing how it will handle its money (usually in a form of the Native Cryptocurrency). Once put in place those rules are usually immutable.

DAOs can exist in a legal gray area due to their distributed nature. One of the first concepts for a DAO is that of a decentralized casino. While operating an online casino might be illegal in some jurisdictions, it is hard to say whether a DAO casino is legal or not.

The most well-known example of a DAO was called "The DAO".

Distributed Ledger Technology

Distributed Ledger Technology is a term used to describe a superset of the Blockchain Technology and ledgerless crypto suites (such as Corda or Open Transactions).

The term is relatively new as of February 2017 and it may be seen as a way for governments and big companies to further move away from the terms "Bitcoin" and "Blockchain".

Fork

There are multiple different concepts in the Blockchain space that are referred to as "forks".

The simplest Fork is a Repository Fork - a term originating from software development where a developer copies a repository of a given project to create their own version of the software. This is most often used to create Altcoins - most of them are Forks of the Bitcoin repository, or other forked repositories.

Another type of Fork is a Blockchain Fork. It is an event in which there are multiple competing blocks of the same height. Those Forks may occur naturally due to multiple Miners creating a Block each at a similar time, or they can be malicious, for example - a result of a 51% Attack.

The last type of Fork is a Blockchain Fork caused by changes in the software operating the Blockchain (such as bitcoind). Those Forks may be incidental (such as the March 2013 Bitcoin fork), or deliberate (Ethereum's DAO fork). The latter are generally split into two kinds - Soft Forks and Hard Forks.

Soft Forks are less invasive and mainly require the Miners to upgrade their software. Old software will still recognize new blocks created after the Soft Fork as valid. An example of a Soft Fork could be the bugfix for Value Overflow Incident.

Hard Forks are more invasive and require everyone to upgrade their software. Old software will not recognize new blocks or transactions as valid after the Hard Fork. The Ethereum DAO Fork is perhaps the most famous example of a Hard Fork.

Contentious Hard Forks can sometimes lead to network splits, where a part of the network and community decide not to opt into the Forked code and Blockchain, and instead decide to take a different approach. Ethereum Classic is a network split that resulted from the DAO Fork.

Hash

A Hash is a cryptographic digest of a piece of data. Hashes are most often used to refer to a given Transaction or a Block, as each of them would have a unique Hash, and the length of that Hash is short enough to be easy to use.

Most Blockchain Projects use the SHA256 hashing algorithm dominantly, with ocasional use of other algorithms (such as RIPEMD-160 being used by Bitcoin for creating its Addresses).

The Block Hash is also an integral part of the Proof of Work Mining algorithm.

Merkle Tree

Merkle Tree is a tree build out of Hashes. Each node in the tree is a hash of its child nodes. The final hash in the Merkle Tree is called a Merkle Root.

Merkle Trees are used to create a single Hash that represents a collection of Hashes. It can be used in Simplified Payment Verification or Proof of Existence to prove a given Transaction was part of a Block by specifying only log2(n) hashes, rather than n hashes it would take to list all of the Transaction Hashes. SPV is an important part of Light Nodes / Wallets.

Miner

Miner is an entity involved in the Mining process of a Proof of Work Blockchain, such as Bitcoin. Other Block generation schemas use different terminology for similar functions - Validators, Farmers, etc.

The term Miner can refer to:
  • The machine doing the computations
  • The business owner running said machines
  • Less frequently, to the piece of software performing the computations
Miners often use Mining Pools to pool their computation resources and create Blocks together to reduce the variance of their income.

Mining

Mining is the process by which Miners create a Proof of Work Block in Blockchains such as Bitcoin. It is a process of iterating through many possible Blocks (often iterating using the Nonce) until the Block satisfied the PoW criteria. This involves the Hash of the Block being a number smaller than the Target for a given block (see: Difficulty).

The Miners are rewarded for creating a valid Block by the Block Reward and any Fees spent by Transactions included in the Block.

There are also a handful of minor activities similar to Block Mining that serve a different purpose. As Addresses are essentially random numbers, some people iterate over them in a process of Vanity Address Mining to create a desirable looking Address (similar to vanity plates for cars). One can also mine for different Transaction Hashes, but it's a fringe activity used only in special cases.

Node

A Node is a computer running the specialized software used to communicate directly with a Blockchain Network. A Node is often a Wallet, but it doesn't need to be.

Generally, there are two types of Nodes - a Full Node and a Light Node.

A Full Node downloads and stores all of the Blockchain information. It can provide the data to other Nodes in the network as needed. Distributed Blockchain Networks require a web of Full Nodes to be operating at all times to maintain the network.

A Light Node only downloads the core data it needs to validate the current Blockchain status (most often - Block Headers) and any information relating to the Addresses it cares about. It has a much lower memory and network footprint than a Full Node, but it cannot provide all of the information a Full Node might. A set of Full Nodes is till required to maintain the network.

Nonce

A nonce is a random number used to easily create a different input. It is most notably used in a Block Header to create a different Block Hash without changing any important information stored in a Block. This is most often used in Proof of Work Blockchains that need to iterate over many block hashes. Due to the avalanche effect, changing even a single bit in the nonce creates a completely different Hash.

Permissioned Blockchain

A Permissioned Blockchain is a Blockchain Project that restricts access to its Blockchain in some way to the users. It could require user authentication before they can connect their nodes to the network, or even download their Clients.

In constract, Permissionless Blockchains, such as Bitcoin, are inclusive by nature, allowing anyone to join and transact on the network.

Permissioned Blockchains are still in early phases of adoption as of February 2017. For their time being, their target market consists of banks, governments and other large entities that want to exert some form of control over their Blockchain network. This could be done due to regulatory, KYC or other reasons.

Some Permissionless Blockchains do offer some features for their users to restrict access to some of their financial assets. Ripple allows explicit white- and blacklists of Addresses, while Smart Contract scripts give even finer control over how a given asset can be used.

Proof of Existence

Proof of Existence is a cryptographics-based proof that a given piece of data existed, unchanged, at a given point in time. It can be used as a replacement for a notary service.

Proof of Existence relies on a public Blockchain, such as Bitcoin's. The data in question is hashes and embedded into a Transaction or a Block. Given that a Block contains a timestamp and it is impossible to rewrite old Blocks without invalidating the proceeding Blocks, it is possible to prove the data existed in its current form no later than when that Block was created.

Factom is one Blockchain project that focuses on providing Proof of Existence "as a service". It maintains its own Blockchain that is itself "anchored" into the Bitcoin Blockchain, extending the Proof of Existence to a bigger amount of data.

Proof of Stake

Proof of Stake is an alternative Block creation algorithm to Proof of Work. Instead of relying on a lot of computational power to create a Block, one instead relies on a large supply of Coins. The reasoning behind Proof of Stake is that an attacker trying to subvert the network would be risking a lot of their wealth in the attempt, therefore they would be disincentivised to attack the network to preserve the value of their Coins. Similarly, users with a lot of Coins have a high stake in keeping the Blockchain operating properly to increase the value of their Coins.

Proof of Work

Proof of Work is a Block creation algorithm that uses a Hashing algorithm to ensure predictable Block creation rate. It relies on the fact that a Hash of a Block is essentially a very large random number, and that it takes some computational time to create the Hash. While it might take a fraction of a second to create one Hash, having to create a lot of Hashes takes a significant amount of time and resources.

A valid Block has a Hash smaller than a given Target (see Difficulty). To create a Hash that satisfies that criteria, the Miner needs to compute many potential Hashes until they find a satisfactory one. Since Hashes are essentially random numbers, it is easy to approximate how many times one would need to compute a Hash to get one that is small enough.

As more Miners join the network with more powerful Mining machines, they naturally can compute more Hashes in the same amount of time. The Proof of Work algorithms are designed to handle that by making it harder to compute a valid Hash by lowering the Target more and more. If the Miners leave the network and the available computational power decreases, the Target increases to maintain the Block creation speed.

Another important design of the Proof of Work algorithm is that it takes a lot of computational power to create a valid Hash, but very little to verify it (one needs to hash the data once).

Proof of Work is used to secure the Blockchain Network from attackers trying to subvert it (they would need to have a lot of spare computing power), as well as to create a fair distribution model for the Coins (Miners are rewarded with newly minted Coin for creating a valid Block).

Smart Contracts

A Smart Contract is a simple computer script that represents an implicit contractual agreement between the parties to transact in the way described by that contract ("Code is Law"). Smart Contracts are an important aspects of such Blockchain Projects like Ethereum. In contrast to traditional legal contracts, Smart Contracts do not need a legal team to enforce them, and once put in place they usually cannot be altered. Smart Contracts can contain functions that can be called by creating a specific Transaction. The code execution is deterministic and is carried out by the Miners.

Smart Contracts may be paired with legal contracts (such as in the case of Corda), but that's rarely the case on most Blockchains.

See also: Decentralized Autonomous Organizations.

Transactions

A Transaction is an atomic operation on the Blockchain. It usually involves transfer of Cryptocurrency between Addresses, but some Blockchain Projects also have non-monetary Transactions (such as invoking a function in a Smart Contract on Ethereum, or setting a trustline in Ripple). Transactions are grouped into Blocks.

In Blockchains like Bitcoin, Transactions specify the Transaction outputs they consume to cover their fees and the outputs they create. There are some Blockchains (like Ripple or Factom) that operate on account-balance model, which keeps a running tally of the funds remaining in an account, so a Transaction doesn't need to specify which outputs they are consuming.

Transactions are authorised by the use of private-public key cryptography. A Transaction spending an output from a given Address is only valid if the private key associated with a given Address has signed the transaction.

Most Blockchain projects contain some special Transaction types. Most common special Transaction type is the Coinbase Transaction. It is the first Transaction of a given Block that credits the Miner newly minted Coins for creating that Block. This Transactions has no Inputs and is not signed by any Address. Coinbase Transactions are both rewards to the Miners and a way to distribute new Coins into the network.

Wallet

A Wallet is a collection of Addresses along with their associated private keys. The term can also refer to the piece of software that manages that Wallet, and the file that stores the data (a Wallet file).

Wallets can take the form of a standalone application (sometimes paired with a Node or a daemon, such as BitcoinQT), a web application (such as Blockchain.info's MyWallet), or be managed by a third party (such as Coinbase).

Access to the private keys is an important aspect of the Wallet design. There are services that host encrypted Wallet files, but don't have access to the keys as the user is encrypting and decrypting the file on their local machine. Other services secure their own keys and manage user's funds akin to a bank.

2017-01-30

Corda and the Distributed Ledger Technology

Recently I became involved with SCC's committee on "Blockchain and electronic distributed ledger technologies". During one of the discussions, I've learned about a new term that seems to have become very popular in the banking industry - "Distributed Ledger Technology" (DLT). Apparently companies like Deloitte or even the UK government have picked up on this new thing and seem to be abuzz with it.

Instantly this reminded me of 2015 when big companies like NASDAQ and Overstock expressed their interest with "the Bitcoin technology", but they didn't want to be associated with "Bitcoin", therefore decided to rename this whole thing as "blockchain technology". Maybe this was just another way for companies to invent a new five dollar word and charge a hefty sum to consult on it?

After doing some research, I couldn't find much on what exactly DLTs were - there doesn't seem to be a concrete definition floating around yet. However, a few people pointed me to one example of an actual implementation of a DLT - Corda. Lucky enough, someone coincidentally decided to organize a meetup about Corda around the time, so I had some good opportunity to learn what it's about.

Corda


Corda is a Distributed Ledger Technology implementation by the R3 consortium. It is open source, comes with a Slack, a whitepaper and all that.

Corda has been created from the grounds-up for the use by banks and other financial institutions, prioritising their needs first. This dictated a few important design choices:

  • Private transactions - transactions in the system are only disclosed to the parties involved. They are not globally broadcast for everyone to verify, instead only circulating in very limited circles as small as two peers.
  • No blockchain - since there is no need to let everyone know about every transaction that took place, there is also no need for a blockchain, be it public or permissioned
  • Legal smart contracts - much like a Ricardian Contract, the smart contracts executed on the Corda network have explicit legal prose attached to them.
  • Optional notaries - if two parties don't trust one another, they can bring in optional notaries to verify various aspects of the transaction (no double-spending, uniqueness of transaction, etc.)

Knowing these features, we can try figuring out what existing cryptocurrency project it resembles most. Looking at this chart comparing various projects in the space (provided funnily enough by Tim Swanson a few years back before he joined R3):

Tim Swanson's "Current Cryptoprotocol Infrastructure" from his "Great Chain of Numbers"

It looks like Corda can fall in only one spot, which is the "Ledgerless Crypto Suite", alongside Open-Transactions. Indeed, the resemblance is quite strong.

The following explanation is based on the "Introduction to Corda" presentation and other materials I managed to come by.

Corda's base building block is a cryptographic transaction. It can be a simple payment, or a more complex smart contract. The transactions specify which inputs they are spending and what outputs they are generating (this works just like Bitcoin and is different from an "account-balance" approach of say, Ripple). Each transaction has a hash of a legal prose attached to it which governs how the transaction should operate. The transaction is then signed by all of the participating parties that agree to execute it - it could only be one entity when it is a simple "send money" transaction, or span multiple parties if it is a more complex swap or financial agreement.

The transaction can also be notarised or verified by third parties as needed. This could be as simple as a server doing a blind signature to verify the transaction is unique, or perhaps the whole transaction could be disclosed to some auditors as needed.

After a transaction is signed, that's about it - every party that knows about the transaction records it in their ledgers and the financial contract is thus binding. There might be some follow-up on the smart contract as it matures or other trigger points execute it, but with no blockchain, block generation or the like, there isn't much else to it.

As it stands, Corda seems to fit in as a common middleware for banks and financial institutions to standardise their interactions with one another, especially in the realm of financial contracts. This puts the project in a similar space to Open Transactions or Interledger, not too far from Ripple or Ethereum.

Corda criticism


Due to its focus on catering to the financial institutions, Corda might be seen as "more of the same", rather than trying to revolutionise the field like Bitcoin. Some people might dismiss it out of principle for not fighting to make the banks more transparent.

A system built on private transactions will be easier to manipulate than a proper blockchain. Unless all of the transactions need to be accounted for by some independent auditor, you loose the option to have "negative proofs". Since the amount of parties involved is so small, they can easily conspire to rewrite or delete the past transactions to suit their present needs. This could be mitigated by using a proof of existence and anchoring the various hashes of transactions into something like Factom.

However, if properly maintained, the system can enforce accountability. While the transactions may not be a part of a blockchain, they do form a transaction chain - every transaction spending the previous output. Having any single transaction signed by the various parties could be used against them - they might be compelled to provide the full, unbroken chain of transactions leading up to that transaction. While this might not uncover all of the transaction branches, there is at least some cryptographic trace of what happened.

Linking the legal prose to the smart contract is also asking for trouble. Even now people can have legal disagreements as to which interpretation should take precedent when you have a contract written in two human languages. Woe to anyone who wishes to mix legal prose with a smart contract. This would either require a new profession of some lawyer-programmer, some sort of legalese language interpreter / compiler, or the smart contract will be just a farce that could be overturned so easily it might not even need to exist.

Corda's presentation seems to indicate the legal prose takes precedent over the code. This might mean that there would need to either be some backdoor for third parties to overwrite or amend the contract, or the parties involved would have to work around the code to achieve settlement in the end. All in all, this can lead to a lot of mess in the code down the line. Some might prefer the approach of "code is law", but then we have the story of the DAO as a cautionary tale.

Moreover, the contracts dealing with international law and regulations would be even more complicated. This could lead to fewer transactions taking place between various jurisdictions to avoid the legal hassle.

Beyond that, Corda seems to rely on a few known key actors common to the Crypto 2.0 space. Lack of native currency means the system will need gateways to issue assets. Some design documents mention Smart Oracles, etc.

Distributed Ledger Technologies


Based on the example of Corda and Open Transactions, we can try drawing some conclusions of what the Distributed Ledger Technologies might be as a general term.

  • The technology seems to be focused more on transactions and less on grouping them into blocks.
  • With the absence of blocks, we necessarily have to do away with any form of distributed, native currency - there is no way for that currency to be objectively generated. The system instead uses IOUs for currencies and assets.
  • The system relies on a number of key nodes / entities to operate - auditors, validators, legal authorities, banks, etc. This means the system would be at best "decentralised"
  • Cryptography is still used to authorise various transactions and move the money around.

Conclusions



Distributed Ledger Technologies seem to sound more impressive than they are in reality. Some have proposed to use this term to refer to things like Corda as well as the existing Blockchain Technologies, but it seems to be mostly an unnecessary buzzword. The existing DLTs are not really distributed, but decentralised. The word "ledger" correlates more closely to a block of transactions than what we have in Open Transactions (where you can discard old transactions as they are not needed once they are confirmed spent). So perhaps a more accurate term would be "decentralised set of transactions"? DSoTs? DSoTTs if you want to include "technology" at the end as well...

2016-07-26

How not to blockchain - a look at OneCoin

In the recent weeks there has been a resurgence of news about OneCoin, what appears to be a high-profile MLM ponzi scheme disguised as an altcoin. From what I can gather, the renewed popularity of the topic was sparked by OneCoin's Coin Rush Global Event:

Coin Rush Global Event

Watching this video as someone that has been around Bitcoin for 5 years now, there are more red flags here than you would see during International Workers' Day in some places. In fact, the video and OneCoin in general are such a good example of how you can bamboozle people by saying just the right thing that it might be a worthwhile exercise to dissect a lot of it.

The Basics


Going onto a cryptocurrency website you want to look for a few key pieces of information:

  1. Who is developing the project / the code? You want to find at least a competent development team identifying themselves. Examples: Bitcoin, Ethereum, Ripple. For OneCoin, the best resource I could come across was OneDream Team's "Top Leaders", which only boasts some news.
  2. Where is the company located? It is especially important for exchanges and other companies you're giving money to, but can be useful for the core development team if applicable. Examples: Ethereum (listed on the bottom page), Bitcoin FoundationBitStamp, not as much for Bitcoin Core (as it's a more decentralised development) Ripple, OneCoin or xcoinx.
  3. Where is the source code? If you can't see the code, you can't be sure what you're installing isn't malware or whether the blockchain itself is really there. Examples: Bitcoin, Ethereum, Ripple, but nothing for OneCoin.
  4. Is there a block explorer? If you can't browse the blockchain data and validate it yourself, how can you be sure everything adds up? Examples: Bitcoin, Ethereum, Ripple lacks a proper explorer, but has a public API endpoint. For OneCoin, best you can get is a falsi explorer (thank you /u/TimTayshun for the screenshot)
  5. Do any reputable exchanges trade it? A coin that isn't tradeable might not be a currency at all, but instead some "funny money". For a smorgasbord of examples, you can check out CoinMarketCap, indexing things as low as $8 market cap for COIN. OneCoin, despite boasting 5.2B USD market cap, is conspicuously missing...


Getting all five of the above points is a good start for any currency, but as we can see, even some of the largest coins are missing one or two of those features. Lacking all five does not bode well.

That's not how blockchain works


Putting all of that aside, let's look at the video proper and see what the event is about. Apparently the big news that day was that OneCoin is retiring it's old blockchain (!) and launching a new one in October so they can make more onecoins (!!). The justification being, and I kid you not, that they need more coins to grow, since there might not be enough coins for new merchants, Latin America, India, etc.

Let that sink in for a bit. A cryptocurrency that is not explicitly tied to a fiat currency is running out of coins for people. So instead of letting free market organically settle on a price it thinks the coins are worth and say, buying the coins from the market to give to the new merchants if they want, they instead decide to make more coins...


The issue is also more complicated than just that. OneCoin on its FAQ page claims its blockchain is mined with a custom solution based on Script and X11. However, you don't mine the blocks directly, instead "you just sign up on the mining dashboard on the exchange in your back office". This might remind some people of Proof of Stake or Delegated Proof of Stake, but no, OneCoin does it differently - "People are signed up and assigned to mining pools on a first come, first serve basis. Whenever a place is free you can join a pool.". The process appears to be:

  1. You send OneCoin money to buy the right to mine the coin
  2. You sign up to mine
  3. You wait for your turn to mine
  4. You get your coins
In other words, it's like purchasing coins from an exchange (send money, get coins), but with an arbitrary wait period (currently 3-6 MONTHS!) between sending money and receiving coins. As /u/TimTayshun pointed out, the block times are also very strange - too regular for a Bitcoin-like mining scheme. The blocks appear to be generated at the 10 minute mark without much variation. If there is any real mining going on, there is no real competition, no difficulty adjustment or anything like that. It looks a lot more like Ripple's Consensus algorithm than anything mining-related.


Splits and tokens


But even all of that is not the whole story. Enter the splits and tokens. You don't directly buy the onecoins, instead you buy packages that include tokens and splits:


Apparently in order to keep the price attractive, you split the tokens as you would company shares. In the end it means that you have a higher quantity of tokens that you can use for mining, but the value stays the same, I think. The splits apparently can only be used on the tokens, not the coins that are mined, and you can combo the various packages in some "strategy" to receive more and more splits.

This seems to accomplish a few things:

  • Make the process more opaque
  • Incentivise people to buy more and more packages to get the best value for their money
  • Make people feel like they are in control of how to get the most money and get ahead of everyone else
  • Widen the distance between real money and onecoins by extra few steps in a freemium-like model

So in other words, the entire system looks like a shady mobile app:

"Money, money, money money money money"

If that wasn't enough, you also can't forget about the match bonus for people you refer:
Because nothing inspires more confidence than a pyramid-like structure with the money flowing to the top...

There is also something about not actually purchasing tokens, but instead purchasing training from OneAcademy that conveniently comes with tokens, BVs and what have you, but at this point I think I made my point. Purchasing any cryptocurrency is simple - you take your money, you get your tokens. With OneCoin, a simple trade is a drawn out process taking many months with zero transparency. Mining is a joke, the numbers are multiplied over and over. But the story doesn't end there...

Show us your proof


During the Coin Rush Global Event, there have been a number of claims made about OneCoin and other coins as well. After hearing a lot of them, one feels the urge to shout "show us your proof". In no particular order:

  • OneCoin has 2 million active users, no other currency has as much - I would love to see a proof of that claim, since it not only asserts a lot of people are using OneCoin, but claims to know how many people are using other cryptocurrencies, which is an information that is hard to come by. Someone estimated Bitcoin to have 50M users by 2015, but that's a guess. How many people are actually active on Bitcoin or OneCoin, that would be interesting to know.
  • OneCoin has 4.5B USD market cap - seeing as the coins aren't actively traded at any reputable exchange and the blockchain is not verifiable, any number you throw out there is as valid as any other.
  • Bitcoin has almost no merchants taking it - there are 8000 physical locations taking Bitcoin today, in 2014 BitPay estimated the number to be over 20k. All in all, it would be interesting to see where the data is coming from, since it's not that easy to come by
  • OneCoin is in 195 countries, it's bigger than Western Union - It would be really interesting to see the actual list of their operations. There are 195 countries in the world, which means they would have to operate in the US, North Korea, Iran Sudan, Syria and Myanmar at the same time, violating a lot of international sanctions.
  • OneCoin can do more transactions than Visa and Mastercard combined - this would mean it can handle more than 2'000 transactions per second, it would be an impressive amount of data to synchronise in a blockchain
  • OneCoin stores all customer KYC information encrypted on the blockchain - this would not only be a huge customer data protection concern (blockchain by definition is shared between multiple parties, so all you need is a blockchain and encryption key leak and someone has compromised all of that data), but also an can be an issue of how decryption would be handled under a warrant
And from other sources:

The Icing on the Cake


Even after pointing out the various problems for a long while, there is still a lot more that needs to be addressed. Going into detail on everything would probably make this lengthy article probably twice as long. So let's finish off everything else in some quicker fashion. What follows are various claims, quotes and other titbits from the video presentation:

  • It takes over a year to mine one bitcoin - unless you're 21.co, nobody advocates Bitcoin mining to newcomers. Just like mining gold in real life, it's best left to professional companies
  • There are "Mickey Mouse coins" that copy OneCoin's concept - don't flatter yourself, everyone is aping Bitcoin
  • Just like you need a driver's license to drive a car, you need a drivers license for the cryptocurrencies - one of the beautiful things about Bitcoin is that it's inclusive - anyone can use it, you don't need a permission. While education is valuable, forcing people to go through a test before they can use cryptos is missing the point
  • OneCoin wants to be number 1 cryptocurrency world-wide in 2 years
  • When Bitcoin was one year old, it was worth 15 cents and nobody cared about it - it took two years for Bitcoin to be worth 15 cents, but now the speed at which good coins accelerate in price has increased thanks to Bitcoin. Dissing on the history to make your coin appear better is a false equivalence
  • OneCoin is one year old and it already wrote history - not really, but it will certainly write history once the jig will be up
  • They are aiming to have 20 million active users and 1 million merchants in 2 years
  • "We are the bigger community - we decide what the philosophy of cryptocurrency is"
  • The merchant / Latin America / India market capitalization is X trillions, OneCoin is only worth 5 billion, it simply does not work - normal coin would allow the price to grow to accommodate the market and use the 8 decimal places the coin has. Saying that you need to increase the amount of coins to grow is like saying you need to slice an apple into more pieces to make it bigger
  • "We can close new registrations, reject merchants... Or make more coins!"
  • "Biggest coin out there is Ripplecoin [sic], with 100 billion coins[sic]", and OneCoin will increase its number of coins to 120 Billion to be bigger than Ripple - that will still make you 3 times smaller than Fedoracoin, why not go for more?
  • You can't increase the amount with the current blockchain, need to retire the blockchain and launch a "new, more powerful blockchain" - you could, if your developers were up to snuff. Or maybe you're doing this to delete some old data from the old blockchain, or introduce some different balances that aren't supposed to be there?
  • Every account balance will be doubled after the blockchain is updated - again, increasing the numbers is not the same as increasing the value those numbers represent
  • When posting a question "will my coins be worth less after the update", the answer is not a clear "yes or no", but instead saying that the value of coins comes from brand and usability
  • Restaurant or retail store will never take Bitcoin - 8000 times false
  • "OneCoin will write history, and the cryptocurrency comminuty will have to rewrite philosophy"
  • "In 2 years nobody will speak of Bitcoin anymore"
And finally - "OneCoin Cryptocurrency is Unique, Safe, Global & With No Risk of Inflation", other than the doubling of the coins, the extra amount of coins that will be pumped into the system after the switch, etc. Those little things.

The Ecosystem


OneCoin, officially based in Dubai, boasts an impressive "ecosystem", consisting of 10 distinct items:

OneCoin's ecosystem

  • OneAcademy, an e-learning platform teaching about tarding, stock exchange, cryptocurrency, etc. in a 6-level program, boasting over 2'000'000 students and supporting 231 out of the current 195 world countries
  • OneExchange, currently not online
  • OneLife Network - "a digital platform with a unique ecosystem of sophisticated products and social networking tools that help members achieve financial independence", whatever that's supposed to mean. But fret not, they will offer you an "Ultimate Trader Package" for  the low low price of 118'000 EUR, and a tablet to match for 550EUR, only 5-6 times more expensive than a comparable tablet. No contact information
  • Merchants
  • OnePay - a payment solution based in Bulgaria
  • OneForex - an exchange that is not functional yet, but it will somehow be different from OneExchange?
  • Investment Funds
  • OneWorld Foundation - a charity helping the children based in Bulgaria, not to be confused with one world foundation, or One World Foundation or One World Foundation
  • CoinCloud - a cloud storage where you can buy 100GB of data space for 1 year for 3'030 EUR, which is about 1'500 times more expensive than Google Drive
  • CoinVegas - a gambling website based in Malta

There are 195-206 countries in the world. OneAcademy supports 231 of them

Conclusions


OneCoin, perhaps going in Microsoft's footsteps of wishing their products to be abbreviated into "The One" has raised a lot of red flags on all fronts. It does not instil any confidence in its products, its business strategy, or legitimacy of its creators. It takes money from a lot of people, turns it into a flashy show to boost confidence, and talks about its "community" and "family". The way it does business is overly complicated, intentionally opaque, and unverifiable. It is a blockchain and cryptocurrency only by self-proclamation. Keep as far away as you can from anything related and enjoy the slow-motion train wreck.

Related Links:


Bullshit checklist:


The Bitcoin Bullshit List

Your post advocates a new:
(x) Altcoin
(x) Permissioned blockchain
(x) Centralised / decentralised exchange
(x) Remittance service
(x) Gambling website
(x) Investment scheme
(x) Wallet
(x) Mining service (hardware, software, etc.)
(x) Mining pool

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

(x) The proposed security model is (x) flawed / ( ) not enough / (x) completely wrong and therefore you will be ( ) scammed / ( ) hacked / ( ) stolen from / (x) implode quickly
(x) There is already a product on the market that does exactly what you’re doing, but (x) faster / (x) cheaper / (x) better / (x) is more established / (x) is not a scam
(x) You are proposing exorbitant fees for the use of your product that are unsustainable in the long run
(x) Your product gives unfair preferential treatment to (x) yourself / (x) the earliest adopters / ( ) early investors / ( ) select few / ( ) _____________________
(x) You violate the core principles of Bitcoin, including: (x) core cryptography of the protocol / ( ) 21M coin limit / ( ) coin distribution / (x) ownership of private keys / (x) inclusive nature of the network / (x) pseudonymity of users / (x) lack of transaction censorship / ( ) ______________
(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 ( ) KYC / ( ) AML / (x) gambling / (x) MLM regulations
(x) You rely on proprietary ( ) hardware / (x) software / ( ) intellectual property / ( ) _________
x) Your solution is worse than general-purpose computing hardware / software
(x) Your product is poorly implemented
(x) Your presale tokens have no economic value
(x) Your adoption goals are unrealistic
(x) Your product has zero transparency

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) The geopolitical map of the world
(x) Adaptability to growth of the market cap
(x) The miner incentives
(x) Public reluctance to accept weird new forms of money
(x) Huge existing software and hardware investment in Bitcoin
(x) The known security exploits of the existing Internet services
(x) Secrecy of data decryption
(x) Increase in currency unit supply not being the same thing as increase in wealth
(x) Disproportionate increase in currency units drains wealth from one group into another
(x) The long-term sustainability of the project

and the following philosophical objections may also apply:
(x) It is a MLM scam
(x) It is a pump and dump
(x) It is a (x) ponzi / (x) pyramid / ( ) ___________ scheme
(x) A known (x) scammer / (x) person with poor reputation is involved with your project
(x) Why should we have to trust you and your servers?
(x) Incompatibility with open source or open source licenses
(x) Feel-good measures do nothing to solve the problem
(x) Extraordinary claims require extraordinary evidence (aka “Proof or GTFO”)
(x) I don’t trust YOU with the money

Furthermore, this is what I think about you:
(x) Sorry dude, but I don't think it would work.
(x) This is a stupid idea, and you're a stupid person for suggesting it.
(x) You’re a scammer and you should feel bad.



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) “Blockchain”
(x) “As good as / better than Bitcoin”
(x) Misunderstanding the technology

Bitcoin Bullshit Tier 2 - willful misinformation, bait and switch
(x) Selling overpriced / underperforming hardware or software
(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) Providing no company contact information
(x) Multiplying coins
(x) Rebooting the blockchain
(x) Company being hosted in hard to reach countries
(x) Claiming your product services / is available at a large amount of institutions without a proof

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

2016-06-27

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.

2016-05-30

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?