What are Oracles and Why Do Smart Contracts Need Them?

What is an Oracle? “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 world of Software, the word keeps much of what they 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…