What are Oracles and Why Do Smart Contracts Need Them?

"An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions or precognition of the future, inspired by the gods" - this is the literal definition of an oracle. When moving to the software world, the word keeps much of what it used to mean, with a few tweaks here and there. Leaving aside predictions and Godly figures, Oracles are, in a strict software sense, external data feeds used by software engineers and developers to…