Skip to main content

6 posts tagged with "bitcoin"

View All Tags

· 4 min read

In these series of blogs on Mental Models, I plan to take a model which I think is sufficiently generally applicable and try to get in greater details on them with examples.

One the key question most of us often face is what is the 'right' price of a product. I use the term product here in a broader sense of what can be 'bought' in competitive markets. It could be the price you pay for hiring talent in your company (aka salary), price investors pay for buying shares in a company (aka valuation) or anything else with competitive markets.

What I have observed is that the primary factors determining the price is the supply and demand for the item. It is a concept from ECON 101 but most of the time we don't apply it when thinking about things like salary, valuation, etc. The dynamics between buyer and seller, and psychological factors like FOMO (Fear of missing out) or scarcity become much more important than we would ideally like to think.  

I will explain this in more detail with the following examples.

  1. Salary for a job - Most of the time we don't think salaries to be defined by the equations of supply and demand. At least, I used to think that some jobs should be paid more than other or a senior candidate should be paid higher than a junior one for similar roles. But thats not the case.

For example, Hardware engineers in Silicon Valley are paid around 100K USD while Software engineers who have gone through similar training can easily earn 150K-200 K USD. The fact that there are much fewer companies who work on hardware leads to lower demand for such engineers and hence, the companies can pay a lower salary. Software engineers on the other hand are needed by all app/ web based startups. These startups compete with each other to attract good talent and hence bid up the price in order to make their offer more attractive.

Keep in mind that the actual job of the hardware engineer may be tougher and more mentally taxing than those working on software. Though the market doesn't care about this and supply and demand becomes the primary mechanism which determine salary. 2. Bitcoin pricing - Many people had tried to come up with intrinsic valuation model for Bitcoin, but in my opinion most of these are just intellectual exercises to justify price which one is willing to pay. The recent crash of BTC from ~6000 to ~3700 USD attests to the fact that psychological factors like people's expectation of what the future of crypto can look like are much more important factors than what valuation models can spew out.

Fundamentally speaking, nothing much has changed in the crypto space apart from SEC getting a bit more stricter. But the fact that BTC didn't stand to people's expectation of 'mooning' caused a much greater effect by reducing the demand than any other rational factor. 3. Startup Valuation- While there are ballpark numbers thrown around on how much a Series A B2C startup be valued for what revenue projection etc, these are mostly exercises which investors go through when they are not keen about a startup. If there is a startup, which is looking to raise funds and is liked by more than one VC, then it mostly becomes a game of who is more desperate to invest. It may depend upon how much dry powder these VCs have to deploy, what do their LPs think about a sector (mostly based on their experience in US or China), and how much FOMO they have. Basically supply and demand.

If there are many good startups in sector which has suddenly become hot, VCs can choose from the platter, but if there are only a few startups which fit their thesis - then it becomes a game of outbidding the other and valuation models or only treated as minor obstructions. Numbers in the spreadsheets can always be adjusted to justify the numbers which investors are willing to pay for.

To summarise, price of an asset depends a lot more on the microstructures of the deal, the buyer and seller dynamics and emotional factors like FOMO, than what we generally account for.  I think these factors become more important in comparatively illiquid markets like job market, private investing, etc. where relatively less number of parties participate and thus price discovery depends a lot on buyer and seller dynamics.

· 8 min read

I often find myself discussing with friends about decentralization and its benefits. Somehow people believe that decentralization is inherently good. Most of us have a meme of evil corp in our mind - and anything which gives us hope of taking down these evil corps seems quite appealing. Most of us hate how these evil corps like Google, FB, Uber, etc. make a huge profit - and potentially by selling our data/time as their key offering.

So something which can bring down these evil corps is good, right?

Well, the point is that good and bad are just moral standpoints, and society ultimately rewards efficiency.

The general argument is that a decentralised organization needs much less administrative cost as people are aligned based on the incentive structure. So, less number of employees for marketing, administration, etc. and hence lower cost in employee expenses. Also, decentralised orgs don't have a profit motive, so all the value created is distributed in the network.

All this is fine, but we need to ask what are we losing when we remove all these people who essentially help in coordination? Let's examine in more detail.

Let's take the example of Uber.

  • The Ops people in Uber ensure that there are enough driver partners on board before launching in a city.

  • The Marketing people make customers aware that Uber is getting launched in a city. When Uber is already launched in a city, they keep running campaigns to keep Uber at the top of the mind of people, so that they book an Uber whenever the need a cab.

  • The Customer Success team responds to customer queries and complains. If someone was wrongly charged or they lost something in the Uber, they can dial up customer care to register their issue. These people then follow up on that complain to ensure that it is resolved.

  • Support for driver partners ensures that they are well trained on etiquettes, traffic rules, etc. so that a minimum standard is maintained when someone starts driving in the Uber network.

  • Folks in legal and regulatory department handle any issues which regulatory agencies may have. They communicate with the govt. and policy-making bodies to apprise them of their business and the value it can bring to the people.

  • Product people and developers develop and maintain quality mobile apps which work in different network conditions, phone type, etc.

So, apart from the customers and drivers, there are many types of people which form a marketplace company like Uber.

Now, let's see how will these functions work for a decentralised version of Uber - dUber (in lines of dApp)

For simplicity, dUber issues a dUber ERC20 token (The primary construct will remain similar if it's a native cryptocurrency, the gas cost will be replaced by miner fees, or something similar)

So, to bootstrap the network - dUber premines dUber token and issues some in ICO to raise initial funding.

A part of the funding is used to pay developers to get the product made and released - of course in open source. The ICO is run by a team which would say be a foundation with some dUber tokens. They are paid partly in dUber token so the incentives are aligned.

Marketing - For marketing, suppose dUber air drops the tokens to customers. These effectively act as initial free use cards which even traditional startups use.

But wait, who will ensure that there is enough number of cars on the street on dUber? So, somebody needs to introduce this dUber app to the drivers. They can't be just expected to start taking rides through dUber. They need to be handheld.

Ok, so let's say we have a smaaalll team to do ops before launching in a city.

Fine. But still much better than the evil Uber, right?

Wait. What if a rider is charged wrongly for a ride? Or what if he accidentally forgets phone in the car? Who should he call in dUber? Remember, there is no company running it.

Hmm.. maybe we will have few people in call centers to address such queries. But if its a decentralised dUber, will they have a database of which car was last used by this customer? I doubt so. What to do then? Well may be read it from the payment history in the Ethreum blockchain. After all, the driver would have been paid in dUber tokens.

Ok. We can do that. But does the call center guy have the phone number of the driver? Why should dUber maintain a database of phone numbers of drivers? May be it does need to?

Or just warn the riders that you are solely responsible for your belongings. And if you forget anything, dUber can't do anything. After all, we are a decentralised org, for christ's shake.

I wonder how many people will then ride on dUber.

(As a side note : This is exactly what happens when you story crypto tokens in your wallet. You are scared shitless by the wallets that they won't be able to do anything if you lose your private key. This is drilled in your mind again and again. The fact that some people still go through them, is either a miracle or a testimony of what people can do when they are promised riches.)

dUber can decide to have phone numbers of the drivers. But, who ensures that criminals don't start driving on dUber? Well, they need to be vetted by someone. Someone needs to see their ID and work history, and only after that, they can start working as a driver. All these processes need people. Somebody who can be held accountable and punished if needed.

Of course, you can say that this can be done through reputation systems where multiple oracles can push data about the reliability of the driver. But again, running these reputation systems cost money - the oracles need to be incentivised in the right way. Also, there is always a danger of collusion.

I am not saying that a decentralised Uber is not possible. Of course, it is possible. I am only questioning if it would be more efficient than the centralised Uber. Once we start providing services and facilities which are available in today's centralised version of Uber, will the decentralised version turn out to be costlier?

If it's costlier, what is the new feature we are gaining out of it, by running Uber in a decentralised way. For the case of money, e.g. Bitcoin, Bitcoin has a very unique property which none of the fiat currencies can provide. It is censorship resistant. No government can control it. It is really owned by the person having the private key. As a by-product, it is also free from the whims of central bankers who can start printing money and devalue the currency whenever they want.

So, what unique features does a decentralised Uber provides?

In economic theory, there is a concept of the Theory of the Firm. One of the key questions in it is that of why do firms emerge? Why are not all transactions in the economy mediated over the market?

One of the best frameworks to analyse this is the transaction cost theory. According to Ronald Coase, people begin to organise their production in firms when the transaction cost of coordinating production through the market exchange, given imperfect information, is greater than within the firm.

This is what Wikipedia has to say about this.

For Coase the main reason to establish a firm is to avoid some of the transaction costs of using the price mechanism. These include discovering relevant prices (which can be reduced but not eliminated by purchasing this information through specialists), as well as the costs of negotiating and writing enforceable contracts for each transaction (which can be large if there is uncertainty).

Moreover, contracts in an uncertain world will necessarily be incomplete and have to be frequently re-negotiated. The costs of haggling about division of surplus, particularly if there is asymmetric information and asset specificity, may be considerable.

So, there a reason why firms do exist, and the primary way they are structured today is in hierarchical structures. The decentralised world in which we think individuals can act as rational actors in a market increases the coordination and transaction costs.

This post has already been longer than expected, so I will conclude Part 1 here.

In part 2, I get into the theoretical underpinnings of decentralisation and centralisation and discuss reasons why centralization may naturally emerge.

· 8 min read

American Kingpin by Nick Bilton is the story of Ross Ulbricht, the creator Silk Road, arguably the most dangerous website to have existed on the Internet.

Here are some of my notes from the book:

1. Fundamental belief

“It is not the government’s right to tell the people what they can and cannot put in their bodies,” Ross began, going on to explain that drugs—all drugs—should be legalized, as it would make society safer and people have a right to do what they want with their bodies.”

“How can you legalize something that kills tens of thousands of people a year?” The College Democrat agreed.

Ross calmly countered, “So do you think we should outlaw Big Macs from McDonald’s too, because people gain weight and have heart attacks and die as a result of them?”

The fundamental belief which ultimately led Ross Ulbricht to create Silk Road. Shows a lot of what we currently find right or wrong has been made so for benefits of big corps or people in power.

2. Ability to code up a prototype yourself is a superpower

“He spent innumerable hours writing front-end code, back-end code, and code that helped sew those digital dialects together. Ross was teaching himself all of these programming languages on the fly. He was technically doing the equivalent of building eBay and Amazon on his own, without any help and without any knowledge.”

Ross did the majority of the coding work on his site on his own. Only later he asked a friend for help. The fact that he can get a prototype out on his own was very powerful. Also, he couldn't have asked for help - as mostly what he was doing was illegal, and even he understood that.

3. Everyone has their struggle

“And he certainly didn’t tell them that the gaming simulation he had been building for months, which would simulate a seasteading project, had failed, as no one wanted to purchase it. He didn’t mention all those odd jobs he had done off Craigslist to make a few dollars, including editing science papers. He didn’t say that everything he had done had felt like a complete failure to him. One brilliant idea after another that no one else thought was brilliant.”

If you leave aside that what Ross created was illegal, the sheer audacity of his goals was remarkable. And if, even he, has had such periods of doubt, why should the rest of us have it any easier? In a way, the struggle strengthens your muscles to endure things.

4. Intentions, always good?

“René then went on to explain that he had experienced an epiphany of late, that we all work so hard in our jobs, and for what? “There is no level of success that would make me feel happy all the time,” he reflected. “Those little achievements are little fleeting moments.”

Ross scratched his beard, seemingly disagreeing with his friend. “I imagine there is some silver lining to . . . pushing yourself to the limit,” Ross said. “I’ve had similar experiences with my work, where that becomes everything, more important than anything.”

“I want to have had a substantial positive impact on the future of humanity by that time,” Ross remarked.”

In his own mind, Ross was trying to have a good impact on humanity.

5. How things turn bad

“If word got out that it was okay to sing to the cops and steal hundreds of thousands of dollars in cash, the Dread Pirate Roberts wouldn’t be the most feared pirate sailing the Dark Web, but rather a weakling pushover. The Silk Road would be known as a place where you could break the rules without reprisal.

This led to the third option for Green: killing him.”

In an effort to preserve what he was creating at Silk Road, Ross made a very rational decision of killing someone. Shows that there's a very thin line between right and wrong. Morality and immorality. And many times, it justs depends upon the story we tell ourselves.

6. Killing someone, justified?

“Yes, but the use of force is completely justified if you have to defend your own rights or personal property,” young Ross had argued while discussing one of the latest Murray Rothbard books he had devoured. Back then it had just been idealistic, hypothetical banter by a group of college students.”

“Now, as the Dread Pirate Roberts, the more Ross thought about it, the more he wondered if beating Green up would be enough of a punishment to deter others on the site from betrayal. He started to wonder if he might not have a choice but to put his libertarian theories to their ultimate test. Curtis Green had, after all, stolen DPR’s “personal property.” All $350,000 of it.”

So, the ordering of the killing for Ross aka Dread Pirate Roberts was just putting his theories to practice.

This eerily reminds me of Dostoevsky's Crime and Puninshment, where the protagonist Raskolnikov logically argues that killing the old woman was the right thing to do.

7. Repeat. Repeat.

“One of the strangest of these idiosyncrasies was the bizarre fact that he read everything—literally everything—three times. It didn’t matter what it was; if it had text on its pages, Gary would read it once, then again, and then once more. When he received an e-mail, he would read it three times before replying. He would read news articles three times. Books; text messages; research papers; someone’s tax forms. He did this, he told people, to ensure that he remembered more information than those around him. When he was younger, he had heard that the brain retains only a small percentage of words when you read, so he reasoned that if he started consuming every snippet of text at least three times, he would remember more.”

There's a very curious character of Gar Alford, who works at IRS and apparently reads everything 3 times. By going through the same material three times, he is able to catch nuances and details which others tend to miss.

So someone in 2011 was already practising the mantra of going slow which the tech world is slowly adopting now.

Slow

Art of going Slowly

8. Mission and Meaning

“Let me tell you a little parable,” Dread wrote to one employee. “It’s the middle ages in Europe. . . .” He went on with the story: A man “walks onto a construction site and he sees a group of laborers carving stone blocks for a building. Most of the men are working slowly, with long, unhappy faces. “What are you doing?” the man asks the laborers, to which they reply, “What does it look like we’re doing? We’re carving stone blocks.” But then the man sees another worker who has a glint in his eye and a smile across his face. This worker seems to be toiling at twice the speed of the others, and his stone carvings are impeccable. So the man goes over and asks him, “What are you doing?” To which this laborer looks back and answers: “I’m building a cathedral to the glory of God.”

Human beings seek meaning in the work they are doing. You provide them meaning - they can withstand anything. A great book to read on this topic is Man's Search for Meaning by Viktor Frankl in which he talks about how the captives in the Nazi concentration camps survived arduous conditions.

9. What can a single person do?

“ That every single person can have a sweeping and massive impact on the world they live in. Some choose to have a positive effect, others a negative; some don’t know the difference. But most people think their role in this big, big world is meaningless. Just a job.

Here, Jared, one of the homeland security agents who helped catch Ross Ulbricht reminisces how he had set out to end Silk Road based on a single pill he had caught in the customs checking. How these pills were destroying the fabric of American society and how his work has prevented it from debilitating further.


Ross Ulbricht was finally caught and was given a double life sentence. He is serving his term now and will possibly remain in jail for the rest of his life.

For those interested, many believe that Ross Ulbricht was railroaded and there's campaign to get his sentence reduced.

· 4 min read

One of the biggest hurdle in crypto reaching to mass audience is the importance of private key management and how the loss of private key can lead you to losing your crypto wealth.

Private Key Management

Why is private key management tough?

Cyber security is mentally taxing. Though physical security is also mentally taxing, that’s why we have locks, frisking, etc , but we have learned to accept them and they are part of our day to day lives.

  • Fingerprint based office entry solutions
  • Frisking by guards before entering
  • Security guards in apartments

We are just not used to threat in cyber realm and don’t want the pain to secure it. This is at odds with the current practice of increasing amount of value and wealth in cyber domain. Most of us spend large number of waking hours in the cyber space - working on laptops, talking on mobile, chatting, etc. Large part of our wealth currently is secured in banks/funds which we interact digitally using websites/apps. With the increasing adoption of crypto, we will now also be responsible for securing our wealth. Hence, learning about cyber security is fundamental for the times to come.

Also, as engineers and product designers we should strive to make this shift in need for cyber-security frictionless, so that more and more people can transition to this new paradigm.

Projects

Some projects which are working in the same space:

  • Gnosis Safe
  • WalletConnect - It’s an open-source project that enables desktop Dapps to interact with mobile Wallets.
  • Shamir's Secret - Sharded private keys with friends which enables authentication only when n-out of-m keys are available

Alternative Mechanisms

  • Project at ETHBerlin - Using private key enabled Govt ID (Estonia Govt ID) for login?
  • Proposal by Alex van de Sande - Login with ENS subdomains - Code
  • Tenzorum - Key Management protocol for decentralised web

Identity/Biometric based mechanisms

What are the issues with tying private keys with Identity?

Software Wallets

Hardware wallets

  • Paper wallets
  • Crypto Steel
  • Trezor/Ledger Nano
  • Ethercards - Physical Ether gift cards

Can U2F keys be used as crypto private key hardware wallets? What are the security issues involved?

Instructive Videos

Working Groups

Instructive Blogs and Posts

· 6 min read

Many people come to me ask about how they should proceed to become a developer in the blockchain space. I thought it would be a good idea to put down my thoughts in a post so that I can easily refer people to this.

As many of you may be aware, blockchain and cryptocurrencies are the craze these days and everybody wants to understand what they are all about. IMO, the current interest is overhyped. Blockchain is not the solution to every problem we are facing today. But to discard them as just another hype would be a mistake. At the least, it warrants a careful examination of how they can change the world.

To me, blockchain represents a fundamental way in which we think about cooperation and trust in society and are a foundational technology. Maybe it will not have any significant impact in the short term (1-2 yrs), but it will significantly alter the tech landscape in medium to long-term (5-10 yrs).

So, if you are really interested in this space, think for the long-term

Now let's get to the question of how can one start to learn about this space and become a "blockchain developer". I am assuming that you already are a developer/ have capability to code but in some other domain. Maybe you are an Android dev or a react dev or work on any of the other myriad technologies out there.

The beauty about this space is that most of the exciting development in blockchain space happens in open source. If you want today, you can look into the source code of bitcoin and figure out how it exactly works. Of course, you need to be able to understand the source code written by other people, which is not trivial.

Github repos for popular projects

Bitcoin Ethereum HyperLedger

Also, the blockchain and crypto community is very open and most of the discussions happen over Github issues, telegram groups, Reddit or mailing lists.

To get started, you have to get a broad understanding of what is blockchain, how its different from traditional technology, what is consensus, etc. You need not understand all this in great detail, but you should have a hang of it. In my opinion, starting with Bitcoin and Ethereum are the best way to learn about all this. For the first 15-20 days, just leave everything else and try to understand how does bitcoin and Ethereum work and what are the various concepts involved. Don't get into coding yet, as that is the simpler part and would be easier once you have the basic concepts sorted.

The best resource for learning these concepts is http://www.bitcoin.cc/

It has lots of explanatory videos and articles. It is more focused on bitcoin but does a good job of explaining the basics.

Once you are done with this, head on to Ethereum Github and digest its white paper

This repo also has a lot of good resources on blockchain aggregated in a single place.

Now, to become a developer you need to understand that there are primarily 2 types of blockchain networks.

**1. Permissioned networks

  1. Permissionless networks**

In permissionless networks, anybody can go ahead and start a node and start mining blocks and participate in the network. Good examples of such networks are Ethereum and Bitcoin

In permissioned networks, only those people who are authorised can run a node which contributes to the network. Such networks are more suited for business use cases, where a business or different parties involved in a business run nodes for the network.

The important thing to note here is that the identities of these nodes are known and everybody in the network knows who is running a particular node. This makes the job of achieving a consensus much easier. If you want to run permissioned networks, HyperLedger is a good project to follow.

From a developer perspective, there are few opportunities in this space:

  1. Build permissioned networks for businesses

Many businesses are trying to understand how they can use blockchain in their use cases. For example, a car manufacturing company may want to use blockchain for their supply chain. Such business use cases, mostly need a permissioned network as the nodes who will operate in the network are mostly known.

Hyperledger Fabric is a good protocol to develop permissioned networks. To get started, go through its documentation. Its decently well explained and should give you a good foundation to start with.

  1. Build decentralised protocols

A lot of research goes into the different type of protocols which are used by the blockchain. Things like which consensus mechanism should be used, what should be the tradeoffs between scalability and trustlessness and how the incentives for different players should be aligned.

These are the sort of things which core developers of Bitcoin and Ethereum worry about. For getting involved in such work, you need to have strong CS and Math chops. You can start getting involved with building protocols by contributing to the Bitcoin or Ethereum project and build your way from there.

  1. Build dApps on existing protocol

The third kind of thing which you can do is to focus on building dApps and smart contracts. dApps are Decentralised Applications which run on existing protocol. Ethereum is the easiest way to get started on this. Ethereum uses a language called Solidity which is similar to Javascript and any frontend developer can easily try to start dabbling in it. Solidity also has a great documentation which can help you get started.

This is also the domain of ICOs. Most Ethereum based ICOs need a smart contract which encodes the logic of their platform. So developers can get projects developing smart contracts for clients who want to do ICOs.

Apart from Ethereum, there are many new protocols which have come up like Stellar, EOS, etc. Each protocol has made its own set of trade-offs which makes it suitable for particular projects. But I would suggest if you are just starting in this field, start with Ethereum - as it has the highest number of devs working on it and most simple queries you may have can easily be solved by searching on Google or StackOverflow.

Dedicated StackExchange for Ethereum Dedicated StackExchange for Bitcoin

While trying to learn about blockchain, keep in mind that development for decentralised web (blockchains, etc.) is very different from the standard centralised development which most developers are used to. So, in the early days, you may have to break your head trying to get an intuition for how it works. But don't get disappointed and lose hope.

Blockchain community is very open and helpful and if you are stuck in some place, just ask. Post it on relevant forums on Reddit, telegram, StackOverflow etc. and I am sure somebody will help you.

All the best in your learning journey! Give a shout out to me on twitter if you need any help.

· 9 min read

Recently I have been attending a few conferences and meetups focusing on blockchain and its application. While its good that this technology is getting attention in India, I really believe that we need to do a better job at understanding this technology. Many times I come across propositions which intend to apply blockchain to something which doesn't really need blockchain. While part of this may be fuelled by the recent ICO craze, but mostly its lack of effort on our part to get into the depth and really understand what this technology entails.

Blockchain on the face of it is needed to prevent the problem of double spending in a trustless environment. Only when there are multiple parties involved and there is a problem of trust between them, does applying blockchain based solutions help.

Some points to keep in mind before applying blockchain to any system:

1. Blockchain is not needed for "immutability"

The use of blockchain as an immutable ledger is so well advertised that people think that just the use case of creating an immutable database is enough to justify using a blockchain.

But "immutability" is a nuanced concept which we will see below.

Designing atabases which are immutable by design is an age old concept. More commonly known as append-only databases, there have been many attempts to create such databases. Google's Big Query, RethinkDB and CouchDB created databases which were append only by design but they had to allow for garbage collection/updation as such databases blowup in size quickly. Datomic is an existing database which is append only by design. This allows for auditing how and where changes were made.

Here is a good discussion on immutable databases and a discussion on where such databases can be used.

The thing to keep in mind is that these append-only databases are not immutable if the admin can be an attack vector. As these databases are at the end of the day stored in hard drive of a central server, it can always be edited.

Content addressable datastores like IPFS can be used securely store data as in that case a file is addressed by a unique hash. If the data stored in the file is changed in any way, then it will no longer have the same hash. The only issue is that these hashes need to be stored in a secure way in a database and this introduces a vulnerability.

If you use blockchain, it gives you protection from the admin being an attack vector, as there is no single copy of the database which can be edited. The database is present in distributed nodes and the truth is determined by the consensus mechanism like Proof-of-Work, Proof-of-Stake, etc. and not based on what is written in a single node.

Thus, "immutability" is not a singleton concept but a spectrum. Depending upon what your attack models are and the level of data protection and trustlessness you need, there can be different solutions which serve the purpose, and are more efficient.

2. Its very hard to make blockchain work with the "Wet World"

Wet world here is referring to the physical/offline world. Things which are not digital are tough to be represented on blockchain in a non-repudiable manner. Blockchain operates in the world of bits, while the physical world is made of atoms.

Blockchain doesn't know about what is happening in the world. For example, there is no information on the blockchain if a particular team won a game or not. For this information to be available to the blockchain, there needs to be a service which pushes this data on the blockchain. Such services are called Oracles. Having trustworthy Oracles which pushes correct data on the blockchain is a non-trivial problem. According to Nick Szabo, trusted third parties are security loopholes.

Tracking items in supply chain on blockchain also faces this bottleneck. Since, the items which are transported in a suppychain are physical/"wet" accurately identifying them on blockchain is challenging. Generally such items are tagged with digital ID like RFID, barcode, etc. But it is easy to tamper with such digital IDs externally applied on an object. Unless the object itself has a digital signature (like diamond fingerprint, explained in more detail below), any external ID which is applied on an object can be tampered with or copied.

In a use case which we recently built, we wanted to track a crate of mangoes across different part of supply chain. We can do this by attaching a bar code to each crate, and tracking that barcode in blockchain. The problem is that, this barcode can easily be copied and attached to another crate. If there are no other checks and balances, this system will fail given that participants have enough incentive to fool the system.

There are some projects like Slock.it which use locks on physical objects e.g bicycle to make them operable using smart contracts. Though how secure these locks are which can be operated digitally is an area of examination. If there is enough incentive, can't that lock itself be removed? Then there will be no way to track these assets on blockchain.

On the other hand, in cases where the object itself has a digital fingerprint, this problem doesn't exist. For example, in case of diamond, shining a laser light on it in a particular way produces a diffraction pattern which is unique signature of a diamond. This unique pattern can be hashed and tracked on blockchain.

Diamond Refraction Pattern Diamond Refraction Pattern

3.You don't need blockchain for tokenization

Recently I met a gentleman who was suggesting how blockchain will change the face of small businesses in India. Now, a Pizza shop can issue a Pizza Token(PT) and ask to be paid in them. His regular customers can buy the tokens and pay him in PT whenever they order pizza from him.

On the face of it, it sounds like a genuine use case. But when we dig deeper, it soon becomes clear that there is no need of a blockchain here. Even today Ola issues Ola money which is nothing but a token which can be used only in Ola platform. The company running the service (Ola) can issue tokens for fiat, which can be redeemed by token holders in the platform. In the process, some discount is given to users for using Ola Money.

Since, we are trusting the service provider, there is no need of blockchain here. This of course leads to issues where the service provider can arbitrarily change the number of tokens needed for a service, or there being no external market for Ola money tokens (at least no formal markets)

Of course, one advantage of tokens is that you can realise your revenue before actually providing the service - but since there is no external market for such tokens, there is no speculation and trading activity which happens in case of crypto tokens.

4. In many cases, centralised services work just fine

You don't need decentralization for everything. If you trust a service provider, there is no need for decentralization. Only when there are multiple parties involved, who don't trust each other, there can be a case of decentralised applications.

Decentralised networks also have their own problems. Decentralised networks are more resilient as they don't have a single point of failure. But they suffer from effects like Braess's Paradox Braess's paradox demonstrates how adding a new high-speed road in a road network can lead to more congestion, than without the new road. So, in some cases a central planning, which has view of the complete system, may make more sense than decentralised systems which don't have any global optimization function.

Scientists have also shown how decentralised power grids can also suffer from similar problems.

5. Centralised services will always have better speed and efficiency

If speed and efficiency are your main concern, blockchain based solutions may not be the ideal choice.

Visa averages around 2,000 tps, with a peak capacity of perhaps 50,000 tps Google currently processes 65,000 queries per second. By design, it is very difficult to achieve such rates for distributed networks

On the other hand, Bitcoin is limited to 3-7 transactions per second and Ethereum to 7-15 tx per second.

Here's a graph of transactions taking place in the Ethereum network

Ethereum transaction

So, around 700K transation are made on Ethereum everyday, which comes down to 8.1 transactions per second. At its peak, Ethereum network had processed ~1.3 mn tx per day, which is around 15 tx per second

Although there are efforts to scale these system for processing more number of transactions, they will never achieve the speed of centralised systems.

Ethereum is focussing on sharding to achieve high TPS while Lightning Network is bitcoins bet to scale the number of transactions processed by creating off chain channels.

Proof of stake protocols can achieve higher number of transactions per second as they don't involve miners but only validators. Ethereum's POS protocol Casper for example will have an expected time of 4s per block in starting.

If we assume that number of tx per block is same as current, which is 150 tx/block, then the throughput with casper would be 37.5 tx per second. This is much better than current state, but still leaves much to be desired.

Since, by design any blockchain based system would involve coordination cost between different nodes, which need to be sure that only authentic transactions are being processed by the network, they would be slower than a single server processing all the transactions. The benefit such network though provides is that of trust between nodes, which is absent in a centralised system.

Only in those systems where the benefits due to increase in trust outweighs the loss in speed and efficiency, do blockchain makes sense.


Thanks Nilesh for reviewing the initial draft of this post.