How Chainlink Enhances Smart Contracts With Off-Chain Computation