What are Oracles in Blockchain? And Why Do Smart Contracts Need Them?