Monthly Archives: March 2018

Blockchain is an emerging technology for decentralised and transactional data sharing across a large network of untrusted participants. It enables new forms of distributed software architectures, where agreement on shared states can be established without trusting a central integration point. While many of us talk about how blockchain can change the way businesses operate and consumers get services, very of us have actually solutioned the projects or designed the architecture. Since blockchains are at an early stage, there is little product data or reliable technology evaluation available to compare different blockchains or even provide design decision points.

Based on my knowledge and understanding, I have tried to structure briefly, key design decision considerations for architecting a blockchain-based system.

Degree of decentralization

This is a deliberate decision of the project to let go of the control. Fully centralized systems exist today, but blockchain introduces decentralization. It is up to the project requirements whether you need to a fully decentralized system or a partial one (mostly useful for enterprise solutions).

Control of verification process

Verification process may also be a key consideration, by either allowing a fixed single verifier, x-of-y verifiers, random leader selection or all nodes as verifiers. This is again based on project requirements and should be weighed against the four key parameters mentioned in this article later.

Storage and Computation

While blockchains provide some unique properties, the amount of computational power and data storage space available on a blockchain network remains limited. It should be decided clearly, whether to keep transaction data, transaction collection (only hashes) or its computation (through smart contracts) on the blockchain or off the blockchain.

Visibility

You may chose to keep a blockchain private (within an organization), make it public or enter a consortium with a group of organizations. For business purposes, both private and public make little sense. While private blockchains defeat the purpose of blockchain and provide little RoI, public blockchains are too risky for a business.

Consensus

The choice of a consensus protocol is also a critical consideration for handling transactions and may also affect the choice of blockchain, mainly because there are not many blockchains which give an option of choosing a consensus mechanism.

The above design decision considerations should be weighed against the impact of the following key parameters:

Fundamental Design Principles of Blockchain

Concepts like immutability, transparency, etc as explained in my book ‘Internet of Transactions’

Cost Efficiency

The development effort and infrastructure required to build this solution.

Performance

Required Throughputs and Transactions per second

Flexibility

Interoperability and data exchange with other blockchains

This article is based on my ongoing research in this area, which is going to be a part of my next book on ‘How to Advise and Design Blockchain Solutions’.

I would love to hear any suggestions or contributions, write to me at mailme@dipenderb.com

Whistleblowers are important to every society and government. They are the honest people in the system which help with the checks and balances and report the wrongdoings and discrepancies. Therefore, governments & companies need to encourage them. They need to be protected and be reassured at the same time about their privacy and safety. If there is a robust system out there, which helps them file complaints anonymously, it can be a boost to the whistleblower system.

As I was going through the Whistleblowers Protection Act, 2011 in India, its salient features say:

The Act seeks to protect whistleblowers, i.e. persons making a public interest disclosure related to an act of corruption, misuse of power, or criminal offense by a public servant.

Any public servant or any other person including a non-governmental organization may make such a disclosure to the Central or State Vigilance Commission.

Every complaint has to include the identity of the complainant.

The Vigilance Commission shall not disclose the identity of the complainant except to the head of the department if he deems it necessary. The Act penalizes any person who has disclosed the identity of the complainant.

The Act prescribes penalties for knowingly making false complaints.

Although the law and policy makers try to ensure that the system works well and delivers the intended benefit, but there have been instances in the past where the whistleblowers have been harassed and even lost lives (although the reasons for losing their lives cannot be directly related to it, but the timelines can be). The problems that I find with this system are:

If someone leaks the identity or information, there’s no traceability as to who did it.

Let’s say there are 20 people involved in handling the complaint filed by the whistleblower, there’s no need for each of those to know the name and identity of the whistleblowers. We can restrict it to a few people only. This directly reduces the chances of the information leakage.

It is only a thought for now, if we can bring this system on blockchain and use the anonymity feature to our benefit, which has been perceived as a disadvantage until now. The Bitcoin, which is a public blockchain, hides the identity of people transacting bitcoins sounds beneficial for this purpose.

This directly delivers the following advantages:

Builds a reassuring system for the honest whistleblowers’ protection

Traces the complaint status in real time with transparency

Traces the information leakages in the system

Since the information and identity is available to few, it still keeps a check on false complaints filed.

I understand that the system has to be regulated and the government has to be open & honest at its heart to implement such a system. I would like to throw open this topic for discussion. What are your thoughts on it?