70
$\begingroup$

As part of some blockchain-related research I am currently undertaking, the notion of using blockchains for a variety of real-world applications are thrown about loosely.

Therefore, I propose the following questions:

  1. What important/crucial real-world applications use blockchain?
  2. To add on to the first question, more specifically, what real-world applications actually need blockchain - who may or may not currently use it?

From a comment, I further note that this disregards the notion of cryptocurrencies. However, the use of smart contracts can have other potential applications aside from benefits they can pose to the area of cryptocurrencies

$\endgroup$
  • $\begingroup$ Some think that voting could be done using blockchains. I don't think this is a good idea, but you might be interested in research in that area. $\endgroup$ – Bakuriu Jan 6 at 23:05
  • $\begingroup$ We don't have a strict policy for list questions, but there is a general dislike. Please note also this and this discussion; you might want to improve your question as to avoid the problems explained there. If you are not sure how to improve your question maybe we can help you in Computer Science Chat? $\endgroup$ – Raphael Jan 6 at 23:29
  • 4
    $\begingroup$ See this The Register article: "Blockchain study finds 0.00% success rate and vendors don't call back when asked for evidence" $\endgroup$ – Uwe Keim Jan 7 at 12:44
  • 6
    $\begingroup$ @Bakuriu: Correction: some people think they can make a load of money selling people the idea that blockchains have some application in voting. They don't. $\endgroup$ – R.. Jan 7 at 14:41
  • 5
    $\begingroup$ Relevant XKCD, in particular the final panel. $\endgroup$ – gerrit Jan 8 at 11:47
95
$\begingroup$

Apart from Bitcoin and Ethereum (if we are generous) there are no major and important uses today.

It is important to notice that blockchains have some severe limitations. A couple of them being:

  • It only really works for purely digital assets
  • The digital asset under control needs to keep its value even if it's public
  • All transactions need to be public
  • A rather bad confirmation time
  • Smart contracts are scary

Purely digital assets

If an asset is actually a physical asset with just a digital "twin" that is being traded, we will risk that local jurisdiction (i.e. your law enforcement) can have a different opinion of ownership than what is on the blockchain.

To take an example; suppose that we are trading (real and physical) bikes on the blockchain, and that on the blockchain, we put its serial number. Suppose further that I hack your computer and put the ownership of your bike to be me. Now, if you go to the police, you might be able to convince them that the real owner of the bike is you, and thus I have to give it back. However, there is no way of making me give you the digital twin back, thus there is a dissonance: the bike is owned by you, but the blockchain claims it's owned by me.

There are many such proposed use cases (trading physical goods on a blockchain) out in the open of trading bikes, diamonds, and even oil.

The digital assets keep value even if public

There are many examples where people want to put assets on the blockchain, but are somehow under the impression that that gives some kind of control. For instance, musician Imogen Heap is creating a product in which all musicians should put their music on the blockchain and automatically be paid when a radio plays your hit song. They are under the impression that this creates an automatic link between playing the song and paying for the song.

The only thing it really does is to create a very large database for music which is probably quite easy to download.

There is currently no way around having to put the full asset visible on the chain. Some people are talking about "encryptions", "storing only the hash", etc., but in the end, it all comes down to: publish the asset, or don't participate.

Public transactions

In business it is often important to keep your cards close to your chest. You don't want real time exposure of your daily operations.

Some people try to make solutions where we put all the dairy farmers' production on the blockchain together with all the dairy stores' inventory. In this way we can easily send trucks to the correct places! However, this makes both farmers and traders liable for inflated prices if they are overproducing/under-stocked.

Other people want to put energy production (solar panels, wind farms) on the blockchain. However, no serious energy producer will have real time production data out for the public. This has major impact on the stock value and that kind of information is the type you want to keep close to your chest.

This also holds for so-called green certificates, where you ensure you only use "green energy".

Note: There are theoretical solutions that build on zero-knowledge proofs that would allow transactions to be secret. However, these are nowhere near practical yet, and time will show if this item can be fixed.

Confirmation time

You can, like Ethereum, make the block time as small as you would like. In Bitcoin, the block time is 10 minutes, and in Ethereum it is less than a minute (I don't remember the specific figure).

However, the smaller block time, the higher the chance of long-lived forks. To ensure your transaction is confirmed you still have to wait quite long.

There are currently no good solutions here either.

Smart contracts are scary

Smart contract are difficult to write. They are computer programs that move assets from one account to another (or more complicated). However, we want traders and "normal" people to be able to write these contracts, and not rely on computer science programming experts. You can't undo a transaction. This is a tough nut to crack!

If you are doing high value trading, and end up writing a zero too much in the transaction (say \$10M instead of \$1M), you call your bank immediately! That fixes it. If not, let's hope you have insurance. In a blockchain setting, you have neither a bank, nor insurance. Those \$9M are gone and it was due to a typo in a smart contract or in a transaction.

Smart contracts is really playing with fire. It's too easy to empty all your assets in a single click. And it has happened, several times. People have lost hundreds of millions of dollars due to smart contract errors.

Source: I am working for an energy company doing wind and solar energy production as well as trading oil and gas. Have been working on blockchain solution projects.

$\endgroup$
  • 5
    $\begingroup$ "People have lost hundreds of millions of dollars due to smart contract errors." - Wow, this is really, really scary. $\endgroup$ – Pedro A Jan 6 at 12:47
  • 6
    $\begingroup$ Look at this, @PedroA, where some random person accidentally killed a smart contract, making $300M lost for ever. $\endgroup$ – Pål GD Jan 6 at 15:49
  • 18
    $\begingroup$ Well, while the provided stats are interesting (although a source would be welcome), i would like to emphasis the word contract in smart contract. An added zero in a contract, smart or not, can't be compared to a fault in a transaction. To me, wanting to discard professionnals in code in smart contracts is exactly like wanting to discard lawyers from (non-smart) contracts. If you care about contract's effects (in blockchain or in law), you need professionnals to write it. And either way, you need a strong proofreading. Do not fall for the harmful idea that good IT is simple IT. $\endgroup$ – aluriak Jan 6 at 20:03
  • 18
    $\begingroup$ @aluriak Judges will generally uphold contracts despite typos they might contain, unless the agreeing parties had a grossly differing interpretation of some figure or clause, in which case the judge might annul it, seeing that a misunderstanding took place. Self-executing code has no such forgiveness. $\endgroup$ – SeldomNeedy Jan 6 at 21:45
  • 6
    $\begingroup$ "There are theoretical solutions that build on zero-knowledge proofs that would allow transactions to be secret. However, these are nowhere near practical yet" ZCash Shielded addresses are a working implementation of zero-knowledge proofs used to hide individual transactions for monetary exchange. You can use them right now. I'd argue that's a practical implementation. $\endgroup$ – Ari Lotter Jan 7 at 20:57
25
$\begingroup$

There are varying definitions of blockchain, and the answer to this question depends a lot on whether you consider the broad or the narrow interpretation. Typical cryptocurrency implementations such as Bitcoin have two parts:

  1. A chain of blocks, linked by cryptographic hashes (SHA256 in Bitcoin) so that the identity of the newest block prevents modifying any earlier record. Most common structure is the Merkle tree, which was first patented in 1979.

  2. A peer-to-peer network of computers that decides what is the newest block (also called "consensus protocol"). In Bitcoin this is done by proof-of-work mechanism (so called mining), which distributes the trust and authority in the network.

A wide interpretation of blockchain would be anything that has the first part, a chain of blocks. These have many widely used applications that predate the cryptocurrencies. Some examples:

  • Git version control system, where Merkle tree is used to protect the version history of software against modification.
  • Certificate Transparency logs, which allow public monitoring of issued HTTPS certificates.
  • Many distributed database systems such as Apache Cassandra, where it is used to check for data consistency between nodes.

However, even though the Merkle tree is a "chain of blocks", many consider that it alone doesn't make a system blockchain based. After all, blockchain is considered a new invention, and Merkle tree definitely isn't new. There is merit to both sides of the argument.

As Pål GD's answer details, apart from cryptocurrencies, there haven't been any widely spread real applications of the full Merkle tree + peer-to-peer network combination.

$\endgroup$
  • 4
    $\begingroup$ I agree that git is a good starting point if you want to learn what a blockchain is, but it lacks one important thing: there is no consensus mechanism! In blockchain, the consensus mechanism is that the most "expensive" chain is the truth. There is no such thing in the git protocol. $\endgroup$ – Pål GD Jan 6 at 16:08
  • 1
    $\begingroup$ A Merkle tree is not a "blockchain" despite lots of buzzword-laundering scammers trying to convince people it is. Blockchain necessarily involves a consensus protocol of some sort. It can be (and often is) an idiotic one, but there at least needs to be one. $\endgroup$ – R.. Jan 7 at 14:39
  • 4
    $\begingroup$ @R.. Hmm, what source do you base your comment on, or is it just your opinion? And defining "consensus protocol" is not straightforward either, is "whatever github.com contains" an example of an idiotic consensus protocol? ;) $\endgroup$ – jpa Jan 7 at 17:53
  • $\begingroup$ @jpa: Yes, I think degenerate cases like dictatorship (consensus defined as everyone agrees with the dictator) count as an idiotic consensus protocol. Otherwise iota wouldn't be a blockchain. ;-) $\endgroup$ – R.. Jan 7 at 23:41
10
$\begingroup$

The given answers focus on the open p2p blockchains of Bitcoin and its likes.

There is however also such initiatives as Hyperledger, R3 Corda, and Enterprise Ethereum Alliance, etc. (Even cloud providers (eg aws) have offerings). These kinds of platforms tend to avoid the time-consuming proof-of-work part and do consensus between selected parties, not being open for anyone with an internet connection necessarily. They also do not always display information in the blocks to the entire world; and instead tend to have protections regarding who can read what on the chain.

These platforms tend to promote their usefulness in cases where parties not wanting to trust each-other, or a third party, with some information, still need a shared source of said data, with agreed-upon rules of how the data will be changed that can be verified.

Goals in using such distributed ledgers include different things, such as added security, transparency and auditability, anonymity, scalability, increased industry collaboration, and allowing for new business models. Which, and how, would depend on which industry and application, but maybe some ideas can be found in this survey or similar places. These kinds of platform are likely what existing companies would look at using if they got into the blockchain space.

Looking at pieces that the platforms advertise actually being used in, we find such initiatives as:

Commodity tracking - for example major food producers and retailers joining a network aimed at "...connecting growers, processors, distributors, and retailers through a permissioned, permanent and shared record of food system data.".

Data sharing - for example insurers sharing data for compliance reasons to a network where regulators with permission can look at it. There can also be improved handling of documents on a network instead of current siloes.

Personal information control - for example hu-manity.co controlling how personal data is shared with companies.

Since blockchain is new and untested, there would at the moment be more experiments and proof-of-concept applications rather than real-world ones. Many of them will turn out to be poor matches for a hyped technology looking for a problem to solve. However, permissioned or consortium distributed ledgers is one place too look where smaller projects have started to be launched for real applications.

$\endgroup$
  • 4
    $\begingroup$ A really important use case of the food network you describe is back-tracing food-borne illness—the network helps radically cut the time to identify sources. $\endgroup$ – D. Ben Knoble Jan 6 at 23:49
  • $\begingroup$ Nice examples. I would also add decentralized DNS as an application. Namecoin came out early with dot-bit and more recently there's the ethereum name service, etc. $\endgroup$ – sfmiller940 Jan 8 at 19:15
0
$\begingroup$

An application that is not big yet, but that may become big soon is authentication of digital documents. I don't know anybody who does this yet, but it is being discussed.

The problem is this: An administrative authority of some sort has thousands, if not millions of digital documents in their care. How do we make sure that the documents that are in the database today are identical to the ones that were there yesterday?

This can have large legal consequences.

One could make several full backups on DVDs or something and store them is several different safe places, but this is costly and still not really safe.

Another problem is that these documents can be confidential and you really don't want to spread copies of them around.

Instead one can make lists of hash signatures and spread those around. They are much smaller and also not confidential. (If done right)

Now, I not sure we really need the chain aspect of block chains, two or three levels of Merkle trees are probably sufficient. However, as long as we are hashing things anyway, it costs very little to add the signature list as a document for the next batch. Maybe not necessary, but doesn't hurt.

One weakness in this system is that documents can be deleted. With only the hash value to go by we can't reconstruct them, but it would add a very visible hole in the data that should at least look ugly to those concerned.

$\endgroup$
  • $\begingroup$ As you say, this just needs lists of hashes to be stored in multiple places; no need for the blockchain at all. $\endgroup$ – David Richerby Jan 9 at 11:59
  • $\begingroup$ @DavidRicherby, A "distributed list of hashes" may solve some problems, but not many. A public git repository would be way better. Still someone could be trying to do a major rebase operation, push through a new and improved history and claim "this is the right history, your history is the forged one". Blockchains try to make that impossible (like, if you want to do a major rebase operation in Bitcoin you will need to control all the worlds mining hardware ... came to think, Bitmain could probably do that?) $\endgroup$ – tobixen Jan 9 at 23:03
  • $\begingroup$ This problem does not require proof of work or crypto coin mining at all. And O.O.'s answer that touches on distributed ledger consensus between a few selected trusted parties addresses all that is required to solve this problem. $\endgroup$ – lamont Jan 10 at 19:34
  • $\begingroup$ Whom selects whom is to be trusted? I do not like the government choosing entities verifying the government work. Anyway, "proof of work" is not required for something to be called a "blockchain" (and personally I don't believe there is any future in PoW). $\endgroup$ – tobixen Jan 11 at 19:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.