Public blockchains are inherently adversarial participation systems. A good philosophy going into any blockchain transaction is essentially not to trust anyone or anything. Enter DeFi.
We have constructed DeFi ecosystems, such as Compound and Kyber Network, for lending, borrowing, exchanging and governing that require very little to no trust. One big draw to the trustless nature of these platforms is that the smart contracts that govern the rules of capital flows are immutable… until they aren’t. For example, MakerDAO has the multi-collateral token DAI which is a replacement of old single-collateral DAI (now dubbed “SAI”) with new sets of logical improvements. New smart contracts were simply created and everyone was told to move over to the new ones. We have the popular DeFi platform Synthetix: who, in late 2019 changed much of their infrastructure by creating new contracts and deprecating their old ones, making them the old ones unusable.
For anyone who integrated with these platforms with another immutable smart contract of their own before the migrations, there were a lot of things that simply broke. We experienced that first hand with a few of our apps, including Structured.
There are many other instances of this kind of thing. What are companies and developers to do? The DeFi community is adamant about the composability aspects of building atop one another and “money legos”, yet developers are often left with permanently broken dApps when other platforms move their smart contracts. One solution is simply to introduce update functions that allow a centralized party to change the smart contract address references within their smart contracts. One issue with that is now users need to trust the app creator not to change the addresses in a way that could adversely effect them. Something users shouldn’t do in an adversarial environment such as public blockchains. The other problem with this is that often the method calls change when large platform providers make updates, which requires developers to re-write their contracts, which can’t be done because the smart contract code is immutable.
With the OrFeed project, we have developed a system of grabbing a token address based on its token symbol, as well as an extendible registry system for others to contribute information in a completely decentralized fashion. One of the problems with OrFeed’s default oracle, however, is that it has centralized management of token addresses and other smart contracts (such as Kyber, Synthetix, and Uniswap) that are needed for it to serve as an aggregator platform. This needs to change. No one should trust a centralized third-party to manage/update smart contracts that their apps rely on to function properly. This includes us.
This brings us to an oracle management DAO. We recently developed the OrFeed DAO, to take over control of oracle and other smart contract address updates across the OrFeed ecosystem. However, one must ask, how can we trust the governing body to accurately update feeds in a timely fashion and in accordance with changes that are made across the DeFi ecosystem.
There needs to be strong incentives for the people involved in the DAO to report accurate updates, vote on them, and maintain that reporting/voting behavior into perpetuity. In my opinion, the incentives could come from the OrFeed DAO rewarding participants from funds obtained from oracle registration (currently .05 ETH to prevent spamming), as well as third party apps that could use the OrFeed ecosystem to provide casino, leveraged trading facilities and other revenue-generating dApps. DAO tokens would ideally be distributed to the dApp developers who have traction, OrFeed data dependency, and thus incentives to ensure OrFeed reliability.
This is a rough idea, and the DAO has not yet been handed over the keys to manage the OrFeed ecosystem. We are very open to discourse on the topic, new ideas around incentive structures, and contributions toward the creation of OrFeed dApps that could be leveraged to enhance possible incentive structures. We would like to be immutably bound to the openness towards creating sustained reliability within the DeFi ecosystem, versus being trusted.