
Written by | Banach
Time | 2021.01.27
Produced | NEST fans (nestfans.com) authorized by the author to publish
Produced | NEST fans (nestfans.com) authorized by the author to publishWhy is there a trigger operator?When the internal logic of the contract meets certain conditions, the state of the contract needs to be changed. At this time, the contract will not be automatically implemented, and an external operation is required to trigger it., which is determined by the nature of smart contracts under the Satoshi Nakamoto architecture:Every operation is a global auction. Many designs that try to automate triggers do not seriously consider the problem of this game. If they are forced to sort, it is very likely that。
Game conflict: attack/arbitrage, more essentially, there is a dominant strategy for on-chain behaviorWhat is the nature of the trigger operator?The essence is an exchange based on GAS consumption + information carrying cost and state change benefits, but this exchange is non-linear (in terms of scale)
. Because of its nonlinear characteristics, can it form self-reinforcement in a certain dimension to accumulate value? This involves careful analysis of trigger operators.Generally speaking, trigger operators include three types:Whether it contains rights, that is, whether the triggered object is restricted, such as both borrowers and lenders, the trigger for repayment must be the borrower, while the trigger for liquidation can be anyone;The second is whether to carry information into the contract when triggered, including whether to carry assets, in this case, the trigger cost is likely to change, because triggers that do not carry information are more gas fees, and there will be no additional costs (there may be additional benefits, depending on the contract), but carrying information generally includes some additional The cost, especially the cost of carrying assets, at least the cost of capital risk is also a kind.Finally, whether the validity of the trigger is related to time
, the greater the correlation, the more it will affect the triggering strategy. Therefore, time correlation is also an important variable that trigger operators need to consider.In the DeFi design, the trigger operator is defined as a third-party behavior of the game, that is, it is not triggered based on the direct two parties of the transaction, but is completed by any third party and is mainly used for liquidation, which brings incentive design question. In different scenarios, different incentives will be designed, especially whether to add information cost and time effect, which constitute the different characteristics of many trigger operators. The trigger based entirely on information cost may be the case where the ultimate beneficiary is a miner, because this is an auction behavior, and the trigger of time effect can be designed asDutch auction
structure, so that most of the value is owned by the real trigger. But it should be noted that who owns the value brings two differences. The first is the difference in time speed, and the second is the difference in willingness to participate. This can be seen in various DeFi liquidation models.In addition to liquidation, the trigger operator also has a very important function, which is automatic hedgingCoFiX 2.0 , at this point, the industry has not been practiced in depth, that is, the core value of the trigger operator has not been deeply explored, which can be found inversion protocol. In addition, trigger operators that create information or actively contribute information are also a type of application. For example, in the NEST system, quotes can also be regarded as a complex trigger operator. I believe that everyone can develop more uses, not limited to the current liquidation.
As time goes by, the trigger operator will become the first operator on the chain to capture value due to its non-linearity and extensiveness (mortgage, transaction, etc. are all linear operators and cannot accumulate value).GAMEA more important question is whether the trigger operator can independently constitute a? Since each trigger operator follows a specific "scenario", it is difficult to complete different scenarios under a unified incentive system, which is different from Ethereum specifying how much gas each command consumes, because this is the standardization of the underlying commands , and then reversely select the contract structure. If an independent trigger operator GAME is involved, it is equivalent to requiring different trigger scenarios to design the trigger model according to the same standard to ensure the consistency of input and output values. This is difficult to do unless All contracts are formulated under the same standard, but this is also an important research direction:Should triggering be the starting point for smart contract development?
. Here you can try to discuss:C=g+xThere are three types of costs for triggering operators, one is the GAS fee g, and the other is the net information cost x. The total cost of each operation isY0=F(V), and after being simplified into GAME, its income is represented by a unified token, which is recorded as Y. It should be noted that the scene may contain time factors, so a time coefficient t and a scene coefficient s should be assigned. Finally, the entire system must operate normally , someone must deliver value V, that is, the base reward Y0 should be related to V:C=g+x,Y=stY0=st F(V)(In particular, there is no random factor here, and they are all deterministic variables). If all scenarios are required to be symmetric and have no arbitrage, then F needs to be consistent and linear. Then this GAME can be expressed as, a certain operation C obtains Y, where, from this formula, we can see that if no arbitrage between scenarios is required, then s must be symmetrical to all scenarios, otherwise it will appear in the competition of g, and t itself is linear, in this case, the output of Y and C almost establishes a linear relationship, and it is unlikely to form self-enhancing properties. In a completely open contract, it can be 100% copied.
From the above analysis, if the trigger operator is to become an independent GAME, a random operator must be introduced.However, as a link in a large game, the trigger operator may have some self-reinforcing characteristics.For example, it is used for hedging and quotation. Because there will be other participants contributing value, the operator incentives are not completely linear.
. Taking NEST as an example, triggering quotations requires a cost, but the value of NEST is determined by the caller, and the value of the caller does not establish a linear relationship with the mining of NEST, which leads to the self-reinforcing property of the NEST system. Similarly, CoFiX hedging incentives are not completely determined by hedging transactions, but are jointly determined by the value of normal transactions. This part does not have a linear relationship with hedging incentives.Going back, in the above formula, several corrections can also be made, such as s is not symmetrical, but a higher s appears randomly, or F is not linear, which is equivalent to stimulating a large amount of triggering, this type of design It is possible to bring some fuzzy non-linear structures, thus forming some special balances, which are not reproducible.This design is more like a game between multiple scenarios, or scene gambling, does not reflect well the role of triggers in serving scenes, nor does it see what unique properties this type of equilibrium can create. It is also mentioned that random attributes can be added to eliminate the disadvantage of linear structure being copied, but if randomness is added, all linear operators may becomelottery model
, only supports the transactional game of the internal participants of the operator, and has no exogenous value, so it is not a desirable direction.Summary: The nonlinear structure of the trigger operator can be combined with large-scale contracts to form a certain self-reinforcing non-cooperative game with significant economic value, but it cannot independently complete the design of a GAME and accumulate value.