The main problem that blockchains have, is a way to communicate with the real world and feed the information to the contract itself. This is called the oracle problem in the blockchain space. An oracle is to put it in simple terms an online notary that keeps your contract constantly updated. To clarify, the oracle is connected to the smart contract as well as various API's that is related to the terms of the contract. Weather patterns for example (for farmers insurance, flights), price feeds (for fluctuations of currencies), temperature (transport of goods), stock tickers. Basically any real event in the world that is subject to constant change. Having a centralised oracle, or making an oracle for each contract, is for the former a security and reliability issue, and for the later the same as well as time consuming to code for each contract. The way to solve this is having decentralised oracles, as it not only removes the security issue of having one oracle node run the show (thus severely increasing the risk of failure or the deliverance of bad data), but it also creates a service where reliable oracles can be requested by the user running the smart contracts, and check an oracle node providers reputation. A user, pending on the size of the value of the contract that is being issued would want more redundancy for information to safely have an aggregated data pool, as well as being delivered high quality data from premium sources. Thus the user would naturally pay for the services of the oracle.
The oracle operator themselves stake their own assets (in this case
link tokens) in their node as a guarantee that they're providing the data for the duration of the contract and the quality of the data. To not fulfil these terms would result in the oracle operator losing the link tokens he has staked to the user that requested the node. Should the terms be however met, and the oracle operates in good faith, the node operator will be paid in link tokens. This is already a working product in real time, please see
https://feeds.chain.link to view current running nodes. You can also see the various node operators on
https://market.link
There's only one company that is currently solving this problem in a decentralised manner, and as mentioned above has a working working product, that company is Chainlink. If you wish to peruse their website it's;
https://chain.link
For a visual presentation see
this video for the technical paper
click here.