Viewpoint | Why is progressive decentralization a viable way to develop contracts?

When the Cats were released a year ago, we did not choose to raise funds through ICO in advance, but instead designed a sustainable profit model. This pattern is this: we charge a 3.75% rate for each transaction in the game. Since the encrypted cat game is built on the Ethereum blockchain, once the game is released, we can't change the rate. It is often asked how we got that number (Translator's Note: 3.75% mentioned earlier).

This number seems to be derived from a rigorous approach. I can also compile a story about how we use the advanced predictive model to run simulation experiments to find a rate that yields the best return.

This is not the case .

We just made a well-founded speculation, then chose a number that felt fair and then put it into practice.

Unchangeable awesome

It's easy to make the wrong choices; once you add it to the blockchain, you can't make any changes, it's a big disaster. Our crypted cats are very fortunate, and the cute cats have run into a passionate community, and the 3.75% rate is working fine.

Immutability is (once it is on the chain) can no longer be edited, it is not only the biggest advantage of blockchain technology, but also the biggest obstacle to its widespread adoption. Once the code is deployed, it can never be changed. This tremendous pressure is enough to crush the developer: you can make changes at any time in the test environment, but there are always unexpected variables in the actual operation. If you blind your eyes and do nothing, it is impossible to make a breakthrough, but it is likely to cause a malfunction.

In addition to the rate, we have made a lot of decisions: How long is the encryption cat's growth period? At what rate should their reproductive cooling rate be slowed down? What is the price of the 0 generation encryption cat? Once published on the blockchain, even a seemingly insignificant decision can have serious and dangerous consequences.

Decentralization brings enormous benefits to the average person: the fairness of permanent universal rules, and the transparency of code and behavior, combined to achieve security. However, because the blockchain is immutable, the project on the chain is not a success, it is a failure, agile development is impossible, and the development team has no room for slow progress.

Agile development requires iteration. Rapid iteration is the key to building the best quality products, and the highest quality products are used on a large scale.

What is progressive decentralization?

We encountered these obstacles when we developed the crypto cat. In order to enhance the practicability of the product, we can only weaken the decentralized features. Since then, we have begun to explore progressive decentralization, the idea we briefly introduced in a recent article.

Let us explore it in more depth now.

In short, progressive decentralization advocates a phased transition to decentralization rather than direct decentralization. That is to say, to create some mechanism in the smart contract, the contract creator is given some privileges at the beginning, and then these powers are gradually blocked in a transparent and systematic way .

The most critical condition is that the power blockade mechanism must be open and transparent and unalterable at the very beginning . The contract creator cannot subsequently modify the terms and expand his power without restriction. The most important thing is to find a balance: if progressive decentralization goes the right way, contract creators can flexibly modify their code without compromising the contract's decentralized nature.

Progressive decentralization can take many forms

Progressive decentralization is not just one way to go. There are many ways to think about it, and the best approach varies from project to project.

Here are some ways developers can use to implement progressive decentralization:

  1. The project is reasonably divided, and different aspects are written into different contracts, and some of the contracts can be replaced. There are already some decentralized applications ("dapp") that use this method, such as Decentraland featuring a scalable contract.
  2. Implement variables configurable and open permissions to change variables independently. For example, Etheremon has special privileges for those who become moderators.
  3. A set of levels is pre-set in the contract, and each level gives the contract creator specific permissions. The level can only be raised and cannot be lowered. Therefore, once you enter a higher level, it is impossible to return to the original level. For example, a contract owner at the first level is free to set variables. After the second level, they lose the authority to change the core variables. At the last level, all privileges of the contract owner are cancelled.

For the hardcore fans who support decentralization, some of the above methods may be too central. But this is only the first step. It is also necessary to iterate through subsequent measures and gradually approach decentralization. The solution is to combine a transparent goal with the constraints in the contract. These constraints should include:

  1. Choice : Not everything can be changed, only certain items that need to be iterated can be changed.
  2. Scope : For many questions about the game economy, we have a rough idea but we don't know the exact answer. Limiting the configuration to a certain range allows the user to be confident that the iteration will proceed within a reasonable range.
  3. Direction : Similar to the concept of "hierarchy" mentioned above, a particular variable can only move in one direction, increasing or decreasing all the time, but it must never be reversed.

Contract creator accountability

These sound great in theory. But how can we ensure that developers will implement complete decentralization step by step in strict accordance with their roadmap? How do you convince users that this is a progressive decentralized system and join as early as possible? How can we know that this system will not eventually become a flawed centralized system?

Progressive decentralization requires contract creator accountability:

Stage based on length of time or number of blocks

Stage division based on a fixed length of time or number of blocks, lock a certain number of configuration values, cancel the permissions of the contract owner, or enter the next level. Once the critical point is crossed, the contract is automatically changed.

Imagine, for example, that the encrypted cat will adjust the cat's reproductive cooling variable every time it digs out 360,000 blocks (about 60 days) from the release. Before that, we can adjust the cooling mechanism and give it a breathing space. To achieve balance, and to assure the player that we will not have this privilege forever.

Stage division based on usage

These permissions are locked when the user or transaction reaches a certain amount. This solution may be exploited, so it needs to be carefully considered, but we can build a flexible fee mechanism in the crypto cat and wait until 10,000 transactions to lock in the cost.

Economic incentive

A positive correlation is established between the economic incentives available to the contract creator and the degree of decentralization of the contract. In this scenario, the higher the degree of contract decentralization, the more the creator gains. For example, for every level of developer increase, transaction costs will increase, and when it is fully decentralized, it will be locked in the highest cost. Or, before the decentralization is fully realized, the developers have no gains. With this kind of economic incentive, developers are transitioning to complete decentralization at a reasonable pace.

There is no optimal build method on the blockchain

“Progressive decentralization” actually includes many strategies, mechanisms, and tools that make development work on the blockchain more feasible. The best way to achieve progressive decentralization is to analyze the specific project and mix and match the above concepts.

Progressive decentralization is not perfect. The perfect smart contract is straightforward, and these measures increase the complexity of smart contracts . The measures taken and how they are taken are a trade-off process that needs to be assessed on a case-by-case basis.

Although this view may anger the decentralized hardcore fans, we believe that in the long run, progressive decentralization is more beneficial to users: it gives developers more flexibility and gives products more practicality. This means that users will really use this product, and once the product brings value to their lives, they will give Amway the product to the people around them. This product can enter the stage of large-scale application.

Original link:


Author: Arthur Camara, Dieter Shirley, Grady Mitchell

Translation & proofreading: haiki & 闵敏

Source: Ethereum fans

(This article is from the EthFans of Ethereum fans, and it is strictly forbidden to reprint without the permission of the author.