Tim Berners-Lee
Date: 2017-10-31, last change: $Date: 2023/04/21 13:36:35 $
Status: personal view only. Editing status: first draft.

Up to Design Issues


Blockchain and the Web

There are so many frequently asked questions around Blockchain and the web, so this may be place to tease a few things out, specifically about the relationship between the technologies. What technical problem is there in the world in 2017 where someone has not asked "Will the blockchain solve that?". The response is then typically "Well, what do you mean by blockchain exactly?", as it really depends which aspect of which system you are talking about. Are you talking about the original Bitcoin Blockchain, or some other use of blockchain technology, like Ethereum, or something which has a crypto-currency but quite a different protocol, like Ripple, and so on. And what were you using the system for - to transfer money, to claim a unique identity, or to notarize a document? It all depends. Now there are a huge number of things written on blockchain, so here I made no attempt to explain it or discuss its details, about which I am not an expert. Here I just try to fish out some of the distinctions between different things out there and how they relate to Web Architecture. Within that, many questions arise, some answered here, and some unanswered anywhere.

The Bitcoin Blockchain

When people talk about Blockchain, sometimes they mean the original Blockchain, in which Bitcoins are mined, and sometimes they mean anything which uses the same ideas, but are different. These are quite different. The original Bitcoin blockchain was the first the world saw of the technology and it proudly announced a new system which included:

There were mutual dependencies:
  1. The ledger depends on people mining Bitcoins to guarantee its integrity
  2. Bitcoins depend on the ledger for bring bought (split) and sold
There were a few anomalies, or ironic aspects. The ledger system works and maintains its integrity only because of the complete openness of the blocks in the chain, and the fact that many systems were constantly checking it; and yet bitcoin in fact provided a way that value could be used anonymously for criminal purposes with impunity. Material in or linked from blocks can of course be encrypted, and must be if if not public. In general the practice of encrypting stuff and making the encrypted version public requires faith that the encryption method don't be cracked in any timescale which is important to the parties. The cracking of encryption becomes ever easier with more powerful computers, latent vulnerabilities in the system, and new hacks to it.

Also, for a new fast and light system of transfer of value, it was ironic that the mining needed to both generate new coin and maintain the verified integrity of the chain necessarily by design involves burning huge amounts of energy, which is not ecologically sustainable.

Using these protocols to the web, they connect in various ways:

The value of bitcoin

Rising 500 to 7000 increasingly sharply over the years
The rise of the value of a Bitcoin against the US Dollar over the last few years to 2017-10-31

To first order, for lots of operations transferring money between different currencies and countries, the value (say in USD) of a bitcoin is irrelevant. For those making a remittance, say of USD from the USA to (say) Haiti, all one need to do is own some Bitcoin for a minute between buying them in the US and selling them in Haiti.

dot com boom: also rising 500 to 7000 increasingly sharply over the years
The NASDAQ up to 1999. People bought tech stocks because of the prices they imagine other people will be prepared to pay in future, with little justification from actual revenue of the companies.
So does the current [2017] dramatic rise in the value of Bitcoin have no connection with the use of the Bitcoin Blockchain as a system? On the contrary, there is a strong connection. The promise of rise in value of Bitcoin motivates the miners, who keep the blockchain operating and ensure its integrity. In general you can imagine that people buy bitcoin for at least two reasons

The second in a more effective at raising the cost of the currency, as the first is a temporary need. Investing in bitcoin is, if you like, just to add risk to your life. There is no logic based on future revenue to attibute value to it. Its market value is only the extent to which other people imagine other people imagine other people will value it in future. It is is completely speculative.

Systems which rely on the blockchain run the risk of breaking if bitcoin mining stops. The design of Bicoin ensures that to make each new coin, more energy is needed than to make the last one. So the cost of each coin in energy, and therefore in USD, constantly rises. This, I imagine, is why people behave as though the value of bitcoins will contantly rise. However there is nothing in the math that guarantees that will be anyone willing to pay that much say, US Dollars for it. If miners find they don't make a profit, then they will stop mining. When they stop mining, then presumably the sytsem stops, and no one can use the bitcoin blockchain to trade bitcoin.

Differences between Bitcoin Blockchain and the Web

Blockchain the web are similar only in that you can store stuff in it and later retreive it. The web and blockchain are very different.

In a blockchain system, everybody stores everything. It is a distributed ledger where every node in the system stores a copy of the whole chain. The one blockcahin is stored by the whole set of servers. Each server is responsible to the same extent to make sure the stuff in the blockchain is stored and available.

In the web, each web site is different. Hardly anybody stores the same thing. Each web site has different authors, different fans, different plans. Different requirements for size, shape and speed of the data.

When you store something on the web, there are three things you need to keep working in order for it to be available in the future:

  1. The Internet infrastructure
  2. The Domain Name System
  3. The web server which you put the stuff on

When you store something in the block chain, you need two things:

  1. The Internet infrastructure
  2. The community of people and organizations which together store the blockchain
  3. The economic and market conditions around that community to motivate the maintenance of the chain

The persistence on the web server depends on the effort you put in to set it up and have it well hosted, and the money you or whoever it is spends to maintain the server and pay for its connection to the Internet. There are important organizations like the Internet Archive which keep copies of things, but modulo those, the continued operation of the site either depends on an entity, like forbes.com which sources the material to maintain its own site, or a company such as facebook, twitter, or github which serve the data for their users, for the members of their clubs. This doesn't mean that these will magically there for ever, as those who plowed their creativity into their AOL Hometown web sites found when AOL turned off hometown.

For distributed systems like the blockchain, the responsibility for the maintenance of the data you put in them is shared by a single community. When we are talking about the Bitcoin Blockchain, then it is specifically the Bitcoin community. The companies which mine for bitcoin are crucial for the integrity of the system, as without them, there would be no new blocks on which to be able to put more information, and there would be no one checking the integrity of the data, old and new.

If your vision if that everyone will use the same single blockchain, then you are asking them to accept the same "Quality of Service" properties: the same reliability, the same time it takes, the same cost. It is like requiring everyone to join the same one club with the same facilities, opening hours, and all pay the same fee. People are different and in fact want to join different sorts of clubs with very different sorts of facilities and very different fees. If the same Bitcoin blockchain is used by gamers to exchange moves in a distributed game, and retailers for consuming spending, and banks to record the transfer of ownership of real estate, then at some point aren't the banks going to object to maintaining an infrastructure used mostly by gamers, and the gamers object to paying transaction fees used by the banks? Won't the banks spin up a new system (like Ripple, say) where anyone can join so long as you're a bank? Won't the gamers spin up their own Etherium chains because they can and they cheaper and they don't need persistence?

Looked at in that light, in terms of social space of people who use it, and the economic space of its service parameters, the Bitcoin blockchain is centralized. It's not like the web, where everyone can make their own web site, in an independent way, and make as big and as small, and as fast and as slow as they like.

Instability of Currency

When people invest in a blockchain-based currency, in order to benefit from its later rise in value, they are taking a risk that the currency will drop A bit like investing in "Dot-Com" startups doing the boom, they are giving a currency a value baed purely on the imagination that others will in future value it at a given level -- not based on a revenue or interest which the system will provide. Risks include

So if you are looking at a blockchain as a place to store your data, be aware that you connecting it to a financial system, whose continued functioning will be required to keep the data accessible.

Other blockchains in general

When you actually look at building an application to use the blockchain as the place where it stores its data, then there a few serious issues. Moxie Marlinspike'a blog is one of several blogs on the subject. Three of the issues are privacy, speed and transaction cost, and re-centralization.

Blockchains are Public

When you put something on a blockchain, then the way that the blockchain works is that a copy of it is held by every node in the system. So it is very public. If you are using it for claiming a public global digital identity, then that may be what you want. But if you want to use it for something private, like personal data, then this is definitely not what you want.

Yes, you can encrypt it. But encrypting your data for security and then putting it somewhere very public has two problems. One is that even if people can't decrypt they see that you have put something there, which may already be revealing. The other problem is that typically encryption gets easier to crack over time, with faster computers, (not to mention quantum) and sometimes discoveries of weaknesses in the algorithms.

So all the stuff on the blockchain can be held encrypted by people just waiting for a time when they are able to decrypt is.

Blockchains are Slow

If you put stuff on the blockchain, it takes a while. You have to come to a agreement with everyone using the chain what the next block will be.

Blockchains are Expensive

Blockchains workin different ways, but a common theme is 'gas fees'. The tokens you have to spend to

Of other blockchains, there are those which pretty much use the same protocol as Bitcoin, but are a distinct chain, and those which use related sorts of algorithm.

One thing which distinguishes them is whether the crypto token value is tied to a service of value, like computation or storage, such that the protocol automatically guarantees that the service is delivered in return for the coin, and so linking the value of the coin to the costs of providing and value of the service.

Re-centralization

If the actual way a practical blockain app gets to put something in the chain is through an online service -- the blockchain code doesn't run on the user's computer, but on one of a small number of portals -- then the system isn't really decentralized, in effect. The monopoly portals are back in control.

Filecoin

Filecoin is a cryptocurrency, from the designers of IPFS, in which the currency value is related to the amount users are willing to pay , and providers willing to provide for, two services. One is the storage of information, and the other is the retrieval of information. So you can go to a storage provider with your encrypted family photos, you specify a storage time, pay some Filecoin and then the protocol provides, as a property of the protocol, that the storage provider will store the data for the time given. Well, it provides that in order to remain a play on the system, it must.

You might ask, what happens if you can afford to store your stuff, but later on the market changes and you, or you readers, can't afford to access it? When you buy into the system, you are not guaranteeing that the filecoin world will exist, but that if it does, your data will be stored.

Decentralized non-blockchain protocols

These are summarized only rather than elaborated in depth. If you are thinking of stroring things on a blockchain, then are one of these in fact what you need?

Distributed Hash Tables (DHT)

Collaborating parties make their data into chunks each of which is hashed and then stored at a server chosen by indexing into the list of servers with the hash.

The InterPlanetary File System (IPFS) The "InterPlanetary File System" [sic] is a project which allows a community to share immutable files indexed by their hashes.

As IPFS can be used with a URL scheme ipfs:, a small browser extension allows it.

There is a an IPFS HTTP gateway.

Using the web as a Ledger


Now let as look at doing some of the things which people do on blockchain on the web.

Using an arbitrary web page as the head of a ledger list

If you are prepared to trust a particular social entity with the head of your ledger, you can of course put it on their web site. It may not be as "decentralized" as putting on the bitcoin blockchain, but it will delegate the job of keeping the list to a known party. But one way of working is to use a trusted web site as your ledger. Then you can base all the typically blockchain operations on it such as notarizing transfers of ownership or money, staking first claims to unique names, and so on.

Digitally signed linked data

It is straightforward to digitally sign data. You can sign a serialized document and convey or publish that serialization, or you can canonicalize it and sign the canonicalized data model, canonicalized RDF (or XML or JSON). You can then chain together a series of signed documents, each with a URI of and also typically a hash of the ones to which it refers and which it depends on. The web of linked data is particularly suitable for this of course, and a read-write store of data allows applications which operate by making chains (or in general directed acyclic graphs) of digtally signed assertions to flourish. (See the PaperTrail architecture in these notes)

Trees of hash-addressed data in the web

Many of these systems refer to immutable data by its hash. IPFS, for example, and the immutable part of MaidSAFE. But of course hashed trees of immutable data are no stranger to the web, and much if it is underpinned by git and mercurial repositories. Here a hash is used to refer, securely, to a given specific version of a repository. So the web is full of Merkle trees, which have similar proerties to an IPFS. An intersting possibility is to extend HTTP to surface the Merkle tree, so that versions, or immutable parts, of the existig web can be referred to in a secure way. This would allow a client, for example, to check our a version of a subtree of a web site, and load it into, or request it from, IPFS. This connects to the Memento framework for tracking the history of web sites. Basically, any tree of data on the web which is immutable can be secured and referred to by a hash, and this incluedes data, like the messages from past chats in a Solid Pod, which was once mutable but is then declared immutable.

Using existing web architecure in a less centralized way

If you want to use the web to store stuff, then the weak point, the main centralization, is the fact that you have to get a domain name. If you dn't get your own domain name (like alice.com), then you end up with you data stored at a URL which includes the domain name of your ISP (like alice.myisp.com) The latter means you are bound to using the same ISP forever (unless they arrange forwarding to a new provider). To all efforts to make it easier for people to get a domain name and then establish a web presence there, like a Solid POD, are useful. As are top level domains which respect their users.

Conclusion

Blockchain and the crypto currency protocols solve some interesting and useful problems, but none of them in the universal panacea which some have been looking for to fix our dependency on huge monopoly platforms. It is possible to switch certain functions, like website domain names, or personal identities, to blockchain-based protocols, but when that is done, the world has to be aware of a new dependency on the community which runs that system, as we did with DHTs. Economic models for the support of the system need to be elaborated, be transparent and and well understood. But in general use as a place for Web apps to to store data, blockchains are too slow, too expensive, and too public.



References

Updates


Up to Design Issues

Tim BL