Understanding Blockchain Oracles: Bridging Smart Contracts and Real-World Data