Different public chains have different levels of support for application governance. For example, Ethereum does not support decentralized governance of applications, and Polkadot supports decentralized governance of applications.
Radically speaking, the application of smart contract methods does not support decentralized governance. Such applications should be defined as verifiable applications . The application chain application supports decentralized governance. They are truly decentralized. application.
However, it should be noted that this article only presents a point of view for discussion, and does not make some conclusions. The purpose is to explore the possibilities of the field of “chain governance”.
- Analysis: Is 2020 the first year of the blockchain?
- Vitalik Buterin's latest brain hole: a scalable data blockchain model without committees
- Zhongan Technology Li Xuefeng: Based on insurance, using blockchain to innovate industrial applications
- Babbitt column | Cai Weide: Blockchain application is not a wolf, but a tiger is coming.
- Blockchain leads Yunnan's new infrastructure, not only the "oldest third" but also new kinetic energy
- Data analysis of 731 companies worldwide: How does the market react to companies involved in blockchain?
On this topic, we invited Liu Yi, a partner of Random Capital, to tell him in detail.
Liu Yi is an expert in blockchain and big data technology. He has 20 years of experience in various capital market investments. Since the beginning of 2013, he has invested in bitcoin and has been engaged in blockchain angel investment for a long time. In addition to blockchain and big data technologists, Liu Yi has a background in biology, which may be an important reason why he can think about blockchain from the perspective of evolution.
Liu Yi, Partner of Random Capital,
Master of Tsinghua University, blockchain and big data technology experts.
20 years of experience in various capital market investments, early investors in Bitcoin
Blockchain reduces transaction costs through "trust minimization"
Q: In your opinion, what are the bottlenecks in the development of decentralized applications (DApp)?
Liu Yi: Why is there no real decentralized application on the smart and about platform for so many years? The important reason is that these applications cannot be modified. If the application itself cannot be modified or evolved, it cannot be driven by evolution, and it will not bring anything revolutionary. When we do Internet applications or mobile applications, we will upgrade the application in a few weeks to enhance functionality or adapt to new needs.
In addition, all programs will have bugs, and bugs that cannot be fixed will cause a series of serious problems and even lead to the failure of the entire application.
Q: But we see that there are also some ways to modify the application?
Liu Yi: Yes, but in the blockchain, we must modify the application in a decentralized way.
The blockchain creates an efficient market, a trading agreement that can reduce transaction costs if it is used to participate in transactions. Transaction cost is the core concept. Human economic activities, including the Internet, Bitcoin, and blockchain, can all be revolutionized by reducing transaction costs.
Decentralized applications are transactional protocols implemented using encryption technology that reduce the cost of trust, the largest part of transaction costs. Or we call "trust minimization", the participants of the transaction only need to trust the entire encryption protocol network, no need to trust the counterparty.
"Governance" is the process of modifying and perfecting the encryption protocol. Governance is a must, otherwise the encryption protocol can only be dead. But if governance is central, the encryption protocol will be no different from the business of the centralized Internet giant; only governance can be decentralized to minimize trust.
Q: How do you understand "transaction costs"?
Liu Yi: There are many kinds of transaction costs, from finding a counterparty to bargaining with him, deciding to complete the transaction, signing the contract, executing the transaction, and solving the dispute after the dispute. In order to complete this transaction, multiple types of transaction costs can occur.
Every update of the currency is because new alternatives can reduce transaction costs, the most important thing here is the cost of payment . The cost of payment itself is also very complicated. It involves bringing the money to the trading floor and handing it over to you. You can identify the authenticity of the currency and then take the currency away from the trading floor.
The replacement of coins by banknotes is a reduction in the cost of payment. The coin is a substitute for the precious metal currency. Because a silver ingot for a coin is one or two, you don’t need to call or cut it, which reduces the cost of payment. From paper money to digital currency, from digital currency to password currency, it is also reducing the cost of payment.
Q: How does password currency reduce transaction costs?
Liu Yi: One of the early use cases of Bitcoin is cross-border transfer, cross-border payment, and one is dark net trading. In both types of transactions, it has a very significant advantage in the cost of payment. In the latter transaction, Bitcoin also reduces the cost of privacy exposure in transaction costs.
Therefore, Bitcoin is not developed because it is a speculative product, but it is a better currency in a particular trading scenario. It represents the first generation of cryptocurrency.
Q: How does the blockchain reduce transaction costs?
Liu Yi: In the case of Ethereum , Ethereum provides a Turing-complete virtual machine, which you can use to implement a programmable password currency, which is the second generation of cryptocurrency.
This cryptocurrency not only has the advantages of Bitcoin, but also reduces the cost of trust by programming and automating these features, which have always been a particularly large part of transaction costs.
For example, if you participate in a fundraising and hit the Ethernet to a smart contract, you will not worry about not getting the token. Because the smart contract is written, you only need to trust the Ethereum and the contract.
In addition to the simple transaction of paying the first hand and you can identify the quality of the currency, you must trust the other party to a certain degree in the transaction, or you have to bear the risk of the counterparty.
This risk is itself a cost. Nowadays, all the risks in the efficient market can be priced, and the risk is actually equivalent to the high cost of your investment. How to reduce this risk? You can only find a large company transaction that has been famous for a long time, and believe this operating entity.
The problem that comes with this is centralization. For example, if you want to go to the Nasdaq, you can only find the investment banks such as Goldman Sachs and Morgan Stanley. They have already given this business a monopoly. Other small players can't get in, and small players can't provide trust.
At this time, as an intermediary, they will continue to squeeze the profits on both sides and maximize their profits, but you have no way to kill them, because in the case of its monopoly, you have no other way to generate trust and create. trust.
This is actually the biggest problem to be solved by the blockchain, which is decentralization and minimization of trust. From an economic point of view, trust minimization is the most important meaning of the existence of blockchain.
Q: How does the blockchain minimize trust?
Liu Yi: The smart contract is an agreement. It is guaranteed by Ethereum. As long as you believe in Ethereum and trust this agreement, you can trust this without having to trust the counterparty. This is trust. Minimize.
Why do you believe in Ethereum? Because Ethereum is a decentralized way of working, you believe that no individual or organization can control Ethereum. For example, if a smart contract raises $2 billion, can it take $1 billion to bribe Ethereum and change the contract? It is impossible, this is the basis of our trust in Ethereum.
Then why do you believe in smart contracts? Because it is verifiable.
However, this verifiability brings contradictions: if you want to be verifiable, you can't modify or upgrade the application; you can't modify the application to limit the innovation and development of the application itself; once you modify the application, it will destroy its verifiable, no way. Minimize trust. This is the Achilles heel of decentralized applications.
Application modification method on smart contract platform
Q: So how do you solve the problem of decentralized application modification now?
Liu Yi: In fact, some programmers have proposed to use the delegatecall() mode to bypass the limitation that the smart contract cannot be modified, and the application can be modified and upgraded. I will introduce this method later.
Because smart contracts can't be modified, the current practice is to do a new smart contract and let everyone migrate to this smart contract.
For example, version 2 of Augur and version 1 are two sets of smart contracts that are independent of each other. The version 1 market will be closed on September 15, 2019, and users will be affected if they create a forecasted market on version 1 that continues beyond September 15.
This can cause inconvenience to users who use Augur directly or indirectly, and may also cause loss of property for some users and loss of part of the network effect.
You'll also find that the upgrades for Augur version 1 through version 2 have been around for almost a year, but there are a lot of bugs that have been discovered before, and new features are coming online. However, because the upgrade will be hurt, it is impossible to upgrade frequently, and it is impossible to quickly iterate.
Another big problem with this upgrade method is that it relies on the user's trust in the project side. Augur is a well-known project with a large financing scale. Users will trust the project and will not be too worried about the trust of the new smart contract.
But some applications are developed by small teams, even by anonymous developers. Upgrades like Augur are almost untrustworthy. The new version of the contract cannot inherit the network effects of the old version of the contract, everything needs to start from scratch.
Q: How does the delegatecall() mode implement changes to the application?
Liu Yi: delegatecall() is a function that we can illustrate with a picture. The boxes in the figure are all smart contracts. The user's transaction request to the application is sent to the proxy contract Proxy. The Proxy has no business processing logic. Its function is to forward the request to the actual processing contract V1, and the data is stored in a special Store the contract on the Key-value store.
The proxy contract holds a pointer to the processing contract. The upgrade application is to write a new processing contract V2. The pointer of the proxy contract is changed from pointing to V1 to V2, then V1 is abolished. The user of this changing process is not perceptible because the data does not move.
Almost all of the complex smart contracts on Ethereum are developed using this model. They call this application "scalability", which is already implemented in some standard libraries.
Q: Does the delegatecall() mode destroy trust minimization?
Liu Yi: Yes. The downside of the delegatecall() pattern is that it destroys verifiability. I looked at a smart contract code and thought I could trust it, then I used it, but I used it to change some of the things inside, and I didn't need to notify me when I changed it.
Do users want to trust such an application? There are two situations. The first is that the user reads through the smart contract and knows which logic in the contract can be changed and which logic cannot be changed. If the user thinks that the part that can be changed does not affect the trust of the smart contract, that is to say, no matter how the variable things change, it does not break the agreement between us, then the trust can continue.
But this threshold of trust is actually very high, because even if the user can read the smart contract code, it is impossible to say that all the logical branches inside are clearly understood.
This is why I don't like this upgradeable model. It destroys the original verifiability of smart contracts, but it doesn't bring new things.
In the end, it actually returned to the old way of centralizing the Internet. It is the person or organization behind the smart contract. This is the second case where users can trust the application.
For example, the TUSD contract is a stable currency, but its 100% French currency reserve is regulated by the New York Financial Bureau. It is also regularly audited by the old audit firm Cohen & Co. In this case, you can trust it without paying attention to how its smart contracts are written and how they are upgraded. Their contracts are indeed upgradeable.
In the delegatecall() mode, either a high trust threshold is generated, the user must be able to understand the contract, or the old way back to centralized trust, and the way to minimize trust through the blockchain is destroyed.
Modify decentralized applications in a decentralized manner
Q: How can I implement changes to my application without disrupting trust minimization?
Liu Yi: In fact, some people are already exploring this road. For example, MakerDAO , Aragon, etc., they are all scalable applications, but it is not a company or a person who decides whether to upgrade the application, but a decentralized organization. "DAO".
I think that only applications that use DAO for governance are real DApps, decentralized applications; others are "VApps", verifiable applications.
Q: The application on Ethereum can be upgraded with DAO. Why does Ethereum not support decentralized management of applications?
Liu Yi: It will be very difficult to modify and manage the application in the DAO way on the smart contract platform.
The first problem is that it is necessary to first determine where the contract can be modified and where it cannot be modified. If the bug is in a place that cannot be modified, or if you need to modify a place that you thought you didn't need to modify, then even if all the stakeholders in the DAO agree to modify it, you can't change it. This is a limitation of the smart contract itself.
The second problem is that the smart contract platform itself is designed to develop verifiable applications. It does not provide infrastructure related to DAO and application governance, that is, it cannot implement programmable governance of applications.
These two problems exist in the application of intelligent contract platform development, but applications developed through the application chain can solve these problems.
For example, MakerDAO , which has repeatedly voted through the DAO contract to adjust the stable rate, has been a model for the centralized management model of Ethereum.
However, when the code audit found a loophole in the voting contract at the end of April this year, it may only make the MKR of the user vote permanently locked, only to deploy a new voting contract, and to call the user to transfer the MKR in the old version of the contract; It is the definition of governance rules, but its own upgrade is still determined by the project side.
Therefore, because of the limitations of the smart contract platform, these DAOs cannot achieve true and thorough decentralized governance. It can only be through DAO limited governance in the pre-defined governance category. Governance outside this category is still back to the old path, and it is done in a centralized way, and cannot be managed by the community.
Q: How is the application modified on Polkadot?
Liu Yi: The processing logic applied on Polkadot is written in the rust language . It is an executable binary file compiled into a wasm and distributed to nodes through the chain.
We have now agreed on a protocol or application, implemented with wasm, but if someone makes a proposal that should change a certain processing logic, or add a function, or modify a parameter, then developers can follow this proposal Implement a new protocol, write it again with rust, and then everyone votes on the chain and decide whether to replace the original with this protocol.
As soon as everyone votes, the new executable, wasm, will be downloaded to all nodes. When the node finds a new version, it will execute the new version from the chain.
The entire process of applying updates is done automatically on the chain and does not cause forks. So we say that Polkadot implements a programmable full-process chain governance.
Q: The application of smart contract development and the application of the application chain, a big difference in the modification problem seems to be that the latter is modified and upgraded through the node, which is a bit like the upgrade of the public chain itself?
Liu Yi: Yes. The difference is that this upgrade is performed by DAO in the form of chain governance, but most of the public chain's own upgrades are not done in a chain-based manner.
For example, Ethereum upgrade is a way of managing under the chain. Everyone decides which EIPs to include, and then determines a point in time. Everyone puts the new software on.
If we do a classification, Ethereum does not support the chain management of the public chain, EOS supports the chain management of the public chain, but they do not support the decentralized governance of the application; Polkadot supports the decentralized governance of the application chain, Cosmos currently only supports the centralization of the application chain.
Q: Why does Polkadot provide programmable governance, which is chain governance?
Liu Yi: The processing logic on the Polkadot chain is an executable program.
You can make a proposal on the Polkadot chain, such as adjusting a key parameter. After you compile the program and put it on the chain, first of all, the proposal itself can be programmed.
Secondly, the rules of voting governance, including who is eligible to vote, how to count the votes when voting, the conditions to be met by the proposal, etc., are also program-defined, clearly defined, and automatically executed, and everyone follows the process to vote. can.
If the voting result satisfies the conditions for passing the proposal, the executable program of the proposal will be automatically distributed to each node through the chain. When the node finds a new program, it will call the set_code function, overwrite the original program at runtime, and execute the new one. program. The entire process is performed automatically.
As far as I know, Polkadot is currently the only blockchain that can be upgraded without forks in operation. Cosmos should also support decentralized governance on the chain, but it has not seen its chain upgrade technology.
Q: Can you understand that, first, the application modification on Polkadot is where you want to change, there is no limit; second, the Polkadot platform supports the programmable and automated execution of decentralized governance. This solves the two problems encountered in the DAO approach to managing applications on the smart contract platform.
Liu Yi: Yes.
Q: After the application is attacked by hackers, if the application supports decentralized governance on the chain, can it solve the problem better?
Liu Yi: Yes. For example, if the hacker took the money away, the transaction could not be changed, but the money could be frozen by upgrading the application and even taking the money from the hacker's address.
These can be achieved through the chain management of the application, you can do it by writing a program. So we call it programmable governance, and this space is infinite.
But what exactly is the optimal governance structure? This is the problem we face, such as whether we need to set up a committee, can do emergency processing, and can quickly freeze the hacker account.
If we can design a reasonable governance mechanism, the application will always adapt to the needs of market changes and its own evolution, the application will become better and better, and the market size will become bigger and bigger.
Q: So you think that many applications may be more suitable for application-based development than for smart and about development?
Liu Yi: Right. There are two ways to minimize trust in applications on the blockchain. One is contract-based verifiability, that is, the trust that can not be modified by smart contracts is minimized; one is the minimization of trust generated by contract-based decentralized governance.
The application of the smart and contractual approach does not evolve, which hinders the release of DApp's innovative potential, but if it evolves, it will undermine trust minimization. However, this does not mean that all applications are not suitable for development with smart contracts. Governance comes at a price. For some applications, the best option is still smart contracts.
The application chain approach enables programmable, decentralized governance, which modifies the encryption protocol in a chain-by-chain manner through DAO without sacrificing the most important meaning of the blockchain—trust minimization.
The conversation with Teacher Liu Yi is enough to make people rethink the topic of "governance", but it seems to be a bit strange to most people.
On the one hand, blockchain is a mechanism for providing trust, which can minimize trust; on the other hand, the ultimate trust that the blockchain provides to users seems to follow the short board theory, which depends on the barrel. The shortest piece.
After the development of blockchain technology over the years, the shortcomings of trust that are present in front of us may be "governance." Providing a decentralized distributed system is one thing, and decentralizing the way to govern this system is another.
As Kevin Kelly said in a public speech just in China, he believes that the mathematical foundation of the blockchain is easy to trust, but those that do blockchain services and organizations also need to be trusted. This kind of trust is another level.
Governance includes not only the governance of the public chain itself, but also the governance of decentralized applications, which are also an important part of the chain of trust. The importance of the former has been noticed by most industry insiders, but the importance of the latter and how to use technology to support this governance seems to be rarely discussed, which may be the meaning of this article.
This article is not short, not too good to read, thank you for reading.
Interviewee: Liu Yi, Partner, Random Capital
Interview & Author: Li Painting
Original: Chain smell ChainNews