How to judge the degree of decentralization of a blockchain project?

Author: Lane Rettig

Source: Shinji Satoshi

This is the second in a series of articles on “Becoming a Key Element in a Better Blockchain”. Although decentralization is not an end in itself, it is a means of achieving many goals, including resistance review, corruption and collusion. Inclusive institutions with multiple participations; and equitable distribution of wealth, power and influence. Decentralization is not suitable for most applications due to inefficiency and high cost, but for applications that need to be decentralized, the underlying platform is more reliable than the decentralized service on the verbal.

Are we going to the center? What I want to remind is that decentralization is multidimensional, far from binary. Another closely related topic is unlicensed licensing, which is also discussed here: Allowing anyone anywhere to contribute to a project, platform or community is one of the most important parts of the decentralized spirit.

Is there more than one client application ?

There are two schools of thought here. One hypothesis is that a single canonical client application can concentrate limited resources on one project, and a development team can communicate more easily, which will maximize the success rate and competitiveness relative to other platforms. In addition, a single client application can prevent consensus failures due to inconsistent local accounting of different nodes (at least as long as each node upgrades its software after a hard fork). Another faction believes that the existence of multiple clients makes the network more likely to survive the attack (a client may completely stop the block output) or the consensus fails (one or more clients cannot run the protocol correctly, which may result in Error block or full stop block output).

In fact, both happened in Ethereum. But there are more subtle reasons. First, multiple client applications in parallel reduce the dominant impact of a single core development team on the network, which is one of the biggest problems with bitcoin governance (Zcash Fund will also decide to build a second Zcash client to balance Electric Coin Power). Moreover, different clients may make different architectural decisions and have different advantages (for example, mining, data lookup), and writing clients in different languages ​​allows more developers to participate in core development. Although parallel applications, Beta applications, etc. are very good, but the mainstream is still the main network client: For example, Bitcoin has at least 15 client applications, but 97% of the nodes run a program, the Bitcoin core.

How many organizations are controlled by mining power ?

The more parties involved in mining, the more difficult it is to collude with each other, to conduct selfish mining, or to perform a double-flower attack (often called 51% attack, in fact the mathematical principle is more complicated). This is not a hypothetical risk because it has already occurred in networks such as Ethereum Classic and Bitcoin Gold. In addition, more miners mean more equitable distribution of mining incentives. Although many individual miners may be involved in mining, but because they are motivated to gather in a few miners, even seemingly decentralized networks may rely on a few entities for mining: the three largest Ethereums The pool controls 60% of the total power, while the top four in the Bitcoin pool account for about 56%.

How many complete nodes are running? Although not mining, public full nodes are not protected against double-strike attacks, but can help prevent other types of attacks, such as eclipse attacks or routing attacks. If running a full node is as cheap and easy as possible, and ideally users can run a node on commodity hardware such as consumer laptops (or devices like Dappnode or Casa nodes) without undue bandwidth requirements. Then this will be of great help.

How is governance decentralized ?

Are there many independent decision makers responsible for agreements, brands, conferences and events, resource allocation, social media channels, Github repository, etc., or are they concentrated in the hands of a few rich and powerful entities? Even a logically decentralized protocol may have a relatively centralized decision or resource allocation. (For more information, see the "Governance" section.)

Is the platform resistant to review?

Anti-censorship is one of the main reasons for the existence of blockchain platforms. Anti-review is one of the most important features of setting up these platforms and the applications built on them, as the phenomenon of arbitrarily checking the Web2 and social media world has become a reality. Decentralization and decentralized governance of miners and complete node architectures have resulted in anti-censorship features. The ability to resist censorship is directly proportional to the degree of decentralization. A network of producers with only a few or a dozen blocks cannot be called a bitcoin or Ethereum-scale sovereign-level anti-censorship, but it may be a platform-level anti-censorship, which may be sufficient for most applications.

Does everyone have the freedom to operate under your brand?

Is there a trademark, if so, how to use it? Is it organized by an organization? Enforced? Does one party claim that the “representative” project is vocal, and is brand communication conducted in a more decentralized manner? Although the company may prefer to strictly control the brand at the advice of a lawyer, doing so may adversely affect the blockchain community because it conflicts with core principles such as decentralization and no authorization.

Are all the code open source?

Making your platform as easy as possible to contribute code is not only a good way to improve the quality and speed of development, but also a way to recruit talented contributors, discover vulnerabilities and exploit vulnerabilities, and brainstorm ideas. Develop a sense of identity and belonging in your community. Many of the best developers in the world today only work on open source software. With a low threshold, you can make your community members more confident. If they don't agree with the design or governance of the software, they can easily fork the code and take the project in the other direction. This reduces the exit cost and encourages more contributors to join. It's important to note that only open source code is not enough. Actively managing open source projects requires a lot of work; you can refer to quality projects on GitHub.

How hard is it to fork?

Bifurcation is the super mechanism of decentralization, open source and blockchain projects, and is the mechanism that separates them from the original world politics. Bifurcations have many important roles: they keep the parties honest, act as “solutions” in the event of disagreements and disputes, and are the purest manifestation of decentralized and unauthorised innovation principles: anyone anywhere can be free at any time. Put forward any ideas. A project that is afraid of forks is a project that lacks leadership or poor governance: in other words, it may not be the project you want to do. In addition to the easy forking of the code, the forked book should be as simple as possible: functions such as chain ID and rollback protection can be very helpful. To facilitate governance forks, you should save as much content as possible in a public, divisible open source code repository such as Github, rather than on Wikis, YouTube, and more.

What are the barriers to entry?

Do you need to work for a specific organization to contribute to the project? Do you need to sign a labor contract, provide proof or accept the KYC / AML process? Do you need to buy some tokens? Under normal circumstances, do you need permission from anyone before trading or trading on the web? These are contrary to the spirit of decentralization and non-authorization, which prevents many people from participating and therefore severely reduces innovation.