I've been reading a lot about how smart contracts work, and I'm a little new to the area, but why do we need decentralized oracles? It feels like I can just make an API call from wherever and it's OK?
1 Answer
The whole purpose of building smart contracts is so that your contracts can execute without having to rely on any single centralized company, individual, or entity. You want to have your smart contracts be as secure as possible, so no individuals are harmed, and people don't have to worry about whether or not they can trust the application.
Adding a decentralized oracle service like Chainlink can save you heartache, coding panics, and even millions down the line. And let you sleep well at night.
Centralized oracles can be attacked, are not trustless, and cause catastrophic consequences.
Smart Contracts will auto-execute, even with bad data
Since smart contracts auto-execute, if a data source/oracle is hacked, depreciated, of out of commission, your auto-executing smart contract can break, be delayed, or even worse, financially ruin someone. Having decentralized oracles/data sources means that even if one gets hacked, you are secured by having several other oracles provide good data on-chain, and with a consensus the bad data will be ignored when all the other oracles return clean data.
Attacks
We've already seen catastrophic events occur when a blockchain application is using a centralized oracle, and that oracle gets hacked. We saw bZx lose half a million dollars from this issue, and Synthetix nearly lost 37 million sETH. Both have taken steps to become decentralized by using the decentralized oracle solution Chainlink.
Wasted Technology
Not only that, but you're defeating the purpose of even using smart contract technology by using a centralized data provider, aka a single API. The blockchain is designed by nature to be secure because it is decentralized, and this is one of the major problems blockchain solves.
Building an application on blockchain without decentralized sources is like buying a bicycle to get to work faster, and then just strapping it to your back instead of riding it.
-
1"Therefore every data request has a pre-determined Chainlink node that can fulfill it. In other words, Chainlink has yet fully implemented the decentralized nature of the original design." from Feb 2020 kaleido.io/blockchain-blog/how-chainlink-works-under-the-covers– eth ♦Jul 1, 2020 at 7:09