Find the Fountain of Trust: Read the Principles, Types, Status and Development Direction of Prophecy

Just like any computer system, the work of the blockchain is also processing data.

There are two sources of data, one is itself in the blockchain, such as the number of ETHs in an account; a price that is not on the blockchain itself, such as ETH. How does the blockchain system get data outside of itself? It can be passed through the oracle (Oracle): when the contract needs some data outside the chain, it goes to the prophecy machine, the oracle predicts the machine to get the data, and then tells the data to the contract.

In this way, the oracle is very important. Without it, the development of the blockchain is limited to the extent of the asset data that can only be used in the chain, which obviously does not meet our expectations. However, important things are not necessarily the key things that affect the development of the system. For example, oxygen may be the most important for human beings, but it will hardly pose a problem that bothers us.

You can use the Internet to compare with the blockchain. Obviously, the data source of the Internet is almost only "outside the network" (corresponding to the chain), it also has the problem of "online" (corresponding to the chain) of data, but why does it not encounter the problem of prophecy?

The reason is not that applications on the Internet can read data from outside the network, and applications on the blockchain need to read a consistent out-of-chain data through the predictor machine—in fact, on any chain. Applications can easily write a predictive machine for themselves as an interface to out-of-chain data. The key question is whether the user believes in the data provided by this oracle.

The root cause is that the traditional Internet is a centralized structure. In this system, users choose the centralized organization, they have to trust the data provided by this organization, and the trust of data is transferred to the trust of the center. The "online" is done by the centralized server itself. Of course, users can also choose not to trust.

The blockchain is distributed, and we want to build a trustless (no trust) system. Trust is built on a transparent mechanism and an open source code implementation of the mechanism. In this way, the centralized organization can not use the user's demand for trust to establish a high wall of monopoly, and then "do whatever it wants" in the high wall.

The embodiment of the oracle is that it is not difficult to use the oracle to predict the data. A simple read and write operation can “feed” the data under one chain to the contract on the chain; but production trust is difficult, and the prophecy is difficult. Through the design of technology and mechanism, the data provided by ourselves can meet the user's need for trust.

Therefore, from a functional point of view, the prophecy machine solves the data problem, but in essence, the prophecy machine needs to solve the trust problem. This is why the Internet does not have the problem of "data access", and the blockchain has the problem of "data-on-chain".

When the blockchain evolves to use the data under the chain to explore and implement applications in more directions, the predictor must be able to meet its requirements for "trusted data." Therefore, in the discussion of the topic of “blockchain infrastructure”, we chose the oracle as one of them.

First, the design idea of ​​the prophecy machine

When we know that the core of the prophecy is to solve the problem of trust, we can understand that the main difference in the design ideas of various oracles lies in the difference in their "trust production mechanism."

According to different sources of trust, today's mainstream oracles can be divided into the following three categories:

1. Provide data from a trusted center, such as Provable (formerly Oraclize).

2. Provide data from distributed nodes, such as Chainlink .

3. Provide data from trusted federations, such as Maker 's predictor.

Before introducing the specific implementation of different types of oracles, the following points need to be noted, or worthy of our consideration and discussion:

  • The role of the prophecy is not to provide "real data," but to provide "trusted data." "Reality" is a subjective concept and a concept that is difficult to assess. There may be no tools in the world that can guarantee the output of "reality", and it is not realistic for the oracle to perform such a function. We can't design a mechanism to ensure truth, but we can design mechanisms to increase credibility. If the prophecy is required to provide truth, it is easy to fall into the uselessness of the prophecy machine and the uselessness of the blockchain, because they really cannot satisfy our requirements for reality.
  • Different application scenarios have different requirements for trust. Not all data is chained under the highest level of credibility, which involves the cost of trust, and the importance of data credibility, data fraud motives, and so on.
  • Different application scenarios, the source of trust / support is not the same. In other words, it cannot be considered that the trust realized by a certain trust production mechanism is optimal, and the trust realized by some mechanisms is not good.

In this way, when we look at the oracle project, the important focus can be on how it produces trust, and whether the trust it provides satisfies the needs of the application scenario it serves.

Another important issue involved in the design of the oracle is the problem of the data source, ie where the data provider in the predictor gets the data. There are two types, one is to get data from a single data source, and the other is to get data from multiple data sources.

Second, the specific realization of the prophecy machine

Let us start with the source of trust and understand the specific implementation of different types of oracles.

The oracle is an important infrastructure for the blockchain, but the oracle is not a "magic" technology. What it does is to apply the data outside the chain to the chain. No matter what the oracle is, it is just Different implementations of data providers.

We can imagine a small town with a big clock showing time (data source) and a blind person (blockchain application). The blind man wants to know the time, but he can't see the big clock, so someone has to tell him the time the dial shows, this person is the prophecy.

1. Data provided by a trusted center

If there are 10 blind people living in the town, and time is important to these blind people, the prophecy can become a business. Every time the blind person asks this person to ask for time, he has to give him 1 yuan, 10 blind people, each blind person asks him 10 times a day, then he can earn 100 pieces a day.

If this person is going to watch the big clock and tell the blind, we call this way to provide data by a credible center. In this case, the premise that blind people choose this person is to be able to believe that this person will not deceive them, so this person needs to prove that he is trustworthy.

The trust guarantee of a type of centralized oracle is "authentic proof technology", such as Provable. It uses the TLSNotary algorithm (https://tlsnotary.org/TLSNotary.pdf), which provides an unmodified proof for each returned result, which means that it indicates that the data provided to the contract is a data source. The correct data at a certain point in time.

Town Crier also belongs to this type of oracle, which uses the Intel SGX (Software Protection Extension) architecture to prevent data from being tampered with by running code in a black box-like environment. It is a hardware-based way of trust provisioning.

Such oracles have their own weaknesses, including technical issues, such as the TLSNotary algorithm itself; single point of failure problems; data source risk issues, etc., but they also have the advantages of low cost, high efficiency, etc., and the proof of authenticity Technology is also constantly evolving.

Although it is a centralization, because these oracles are commercialized, they do and only do data-providing work, and the security of data is directly related to its own development, so they are not compared with evil motives. small.

In addition to the predictive machine that provides trust through technology, there is another type of trusted center's predictor: Imagine if the big clock in the town added the timekeeping function. The blind man walked to the big clock and pressed a button, the big clock directly told him the time.

When a blockchain requires some kind of data from an authority (such as a state agency, a bank, etc.), it may be a good idea for the institution to build its own predictor to provide data. What is important at this time is not the technology of the oracle, but whether the data source itself is willing to open the interface. The source of trust is not the design of the prophecy, but the institution itself.

This is a way of inheriting the trust under the chain into the chain. It believes in the trust brought about by the traditional trust production mechanism. Although highly centralized, it has been positive and important for at least a long historical period, such as in the context of lending and commercial lending. Remember, the blockchain is not meant to negate the way everything else generates trust.

Taking national institutions as an example, it is easy to understand the characteristics of this type of oracle, but this category may also have commercial types of data sources and oracles that serve a particular data need, which is often a large number of special The results of the calculation of the data, and only professional institutions have the ability to give such data results.

2. Provide data from distributed nodes

The prophecy machine solves the problem of trust. The oracle of the data provided by the trusted center proves/ensures its own credibility through technical proof, while the prophecy machine that provides data by the distributed node is designed to protect its own. letter. The latter is also often referred to as the decentralized predictor, decentralized predictor network.

Let's go back to the town. Decentralized predictive machine network means that all people in the town can participate in the timekeeping. When the blind person asks for time, these participants/nodes tell the time they see to a statistician, and the statistician gives the most people to him. Tell the blind at that time.
It is not difficult to find that the design idea of ​​this oracle is consistent with the distributed idea of ​​the blockchain, so it will not add new trust types to the application on the blockchain; without adding new trust types, things The complexity will not get higher. But this approach also has limitations, such as it is relatively expensive, because it pays for a large number of participants; it requires network size, and the number and quality of participants are related to the credibility of the data. Chainlink is a predictor of this type. As shown in the following figure, the distributed oracle node/propheser service provider obtains data from the distributed data source and submits the data to Chainlink's chain aggregation contract (the medium- and long-term strategy will be changed to chain aggregation to save gas). Cost)) The contract calculates the data results via an algorithm and sends the results to the blockchain application that proposes the data requirements.

In Chainlink, the purchaser of the oracle service first specifies its own service level, which is then matched by Chainlink to the oracle node, including the quality and quantity of the node.

For example, if the buyer's contract is a $100,000 DeFi market, then five oracle nodes may be required to form the network; if the contract grows to a $1 million market, it may be necessary to select 15 oracle nodes. It can be argued that Chainlink works by providing a customized dynamic oracle network based on user needs.

In addition to the above-mentioned specialized oracle project, the forecasting market, such as Augur , can also be used as a category of decentralized oracles, because its predictions can be used as input data for blockchain contracts. Each predicted participant is a predictor node, which is also the data source itself.

The predictive machine function provided by the forecasting market may not be replaced by other types of oracles, because of the uniqueness of its data sources, such as not relying on any centralized trust, such as providing data that expresses emotions and knowledge, etc., predicting the market In the future, there may be a unique oracle prediction application scenario. But its weakness is also prominent. It has a high dependence on the number of nodes that make up the oracle network, and it is less efficient in providing data.

3. Data provided by a trusted alliance

If an application or a certain type of application has high-frequency, high-quality requirements for out-of-chain data, and the market predictor cannot meet the demand, such as insufficient security and low cost performance, these applications may require a special The prophecy of its own special needs service, and the way the data is provided by the trusted alliance is a design idea that suits the scenario.

"Providing data by trusted federations" is a special form of "providing data by distributed nodes", which is special in that the nodes that make up the network of predictors are specified. Maker's V2 version of the oracle may be classified as this type, and its nodes may include the specified price agencies such as 0x , dYdX , Set Protocol , Gnosis, etc., in addition to the anonymous personal price.

Compared with the previous two types of oracles, the trust composition of such oracles is relatively complex, including the trust of the system's mechanism design; the trust of the nodes, which is largely due to the stakeholder identity of the node itself and The institutional reputation of the node itself; trust in the mechanisms that select the node's Maker and Maker itself.

The trust in the federation (node ​​and node selection mechanism) is centralized, but it is precisely this kind of centralization that can generate "cost-effective" trust in a particular scenario, so in practical applications, such predictors may It is a practical data-winding method, especially in the early stage of the development of the blockchain industry, and the commercial predictive machine is not mature enough.

Maker's oracle is dominated by Maker, but because it meets the need for trusted data in the DeFi world, some other contracts use the oracle. We can also envision a predictive machine service from a trusted third party provided by a third party. It is a network of predictive machines composed of trusted organizations/nodes in the DeFi domain, providing professional data services for distributed finance. If the blockchain produces the next new type of application scenario, then it is possible to also create a federated oracle service that consists of trusted nodes in that domain.

Third, the road to development

As the blockchain develops, the demand for data under the chain will become stronger, and the importance of the predictor will become more prominent. But as discussed above, a larger possibility in the field of oracles is the emergence of markets with multiple forms. We can think that from the central to the alliance to the distributed, the granularity of the data providers is from large to small, and different granularity determines their different attributes, which determines their respective suitable service scenarios.

Although the oracle can also be composed of a distributed network of nodes, we look at the perspective of the blockchain and the oracle and the criteria for evaluating them are different: the blockchain is doing exploratory work, it is more It is to ask "Is this problem suitable for me to solve"; and the prophecy machine is a functional work, it is more to ask "How can I solve this problem?"

Therefore, the design of the oracle is pursuing usability and practicability: it only serves the needs and does not serve the vision. The easiest thing to understand is that it is about cost-effectiveness.

In addition to solving the trust problem through technology and mechanism, the design of the oracle also includes many other aspects, such as the privacy of data, the ability to prevent hacking, etc., because these will be related to the availability of the oracle. For this reason, the design of the oracle is a comprehensive project involving many fields.

At the end of the article, it must be pointed out that the prophecy machine is an important infrastructure of the blockchain, but this does not mean that the development of the prophecy machine will restrict the development of the blockchain. On the contrary, perhaps the development of the blockchain is for the prophecy machine. The impact of development is even greater. Only when the chain contract has broad and urgent needs for the data under the chain, and can pay for the data, the oracle can be truly and comprehensively developed.

Discussion: Wu Weilong (Genaro CTO), Li Painting

Content finishing: Li painting

Source: Chain smell