Given that the oracle and the "request/response" mechanism may be operated by multiple entities, the possibility of data being tampered with during transmission obviously exists. I want to know how chainlink guarantees the authenticity and accuracy of the data it returns to the smart contract.
-
Worse than "being tampered with", the data provided by chainlink can be frontrun by others, i.e., predicted by others before it gets to any client contract, thus subject the entire system to financial manipulation accordingly.– goodvibrationDec 11, 2020 at 12:12
-
Thank you for your reply! I am confused that whether the data returned by chainLink to the smart contract may be tampered with?– wei wangDec 11, 2020 at 12:19
-
2I guess it may be tampered with if somebody hacks their servers. At the end of the day, it's an off-chain part (chainlink's service) which interacts with the on-chain part (your contract). So any security breach on their side can lead to this data being subjected to manipulation. But then again, any security breach in your contract can just as well lead to tampering.– goodvibrationDec 11, 2020 at 12:24
-
Thank you for your kind reply! I now understand this issue more clearly.– wei wangDec 11, 2020 at 12:27
-
1What are the measures put in place so such manipulation doesn't happen?– blockbyblockDec 11, 2020 at 14:28
1 Answer
The basic request model would never be something you go to production with, for exactly the reason described.
This is why you want to work with a decentralized Chainlink network. The same reason that blockchain is secure, makes this system secure. If 1 ETH node is hacked, no one cares because it's decentralized. If 1 Chainlink node is hacked no one cares, because it's decentralized.
Have multiple Chainlink nodes respond means that any outliers are rejected. They are highly financially inclined to respond accurately, otherwise they will not make any LINK. The data is brought on from many different resources to get a high quality decentralized aggregate.
-
-
There is a subtlety here. "financially inclined to respond accurately" is not strictly speaking, correct. "financially inclined to respond with the consensus answer" is correct. Node operators are financially incentivized to return answers they think will be in agreement with others. When data providers are down (or most have issues), operators are motivated to provide any answer, as long as others submit the same. I expect in that situation node operators will either go with poor data sources that are popular and available or make an "educated guess", e.g. last price. Jun 30, 2021 at 21:08
-
This is how decentralized systems work. If 51% of Ethereum is malicious, then all nodes are incentivized to respond as such to get any reward, otherwise, they won't get credit for the blocks they produce. However, if a system is clearly faulty, then it won't be used, and without use, the value of the system drops. So they actually are heavily economically incentivized to respond accurately and not just with the consensus answer. It's a bit of a subtlety inside a subtlety. Jun 30, 2021 at 22:40
-
And the nodes responses are recorded on-chain forever, unlike in other systems. This reputation in the quality of data they return will walk around with them forever. Those that always follow the masses will be less likely to be included on jobs in the future Jul 1, 2021 at 1:18