A Bitcoin Oracle allows for the communication of data between the Bitcoin ledger and all other systems to enable programmatic, conditional Bitcoin payments.
The word “oracle” comes from the Latin verb ōrāre, "to speak" and usually refers to a priest or priestess through whom a god is believed to speak. Most notably, oracles have had their place in Greek mythology and been predictors of the future. In the crypto space, Blockchain oracles are entities that connect blockchains to external systems, thereby enabling smart contracts to execute based upon inputs and outputs from the real world. As such, oracles:
To adequately perform the above functions, oracles are required to operate simultaneously on and off the blockchain. The on-chain aspect is the blockchain connection/listner to process requests, transmit data, send proofs, and extract data within blocks. The off-chain aspect of an oracle processes off-chain requests, retrieves and formats off-chain data, relays data to on-chain systems, and conducts computations for improved scalability, privacy, and security when compared to performing these on a blockchain.
The critical piece which makes oracles so useful for blockchains and applications are their data feeds. Again, this is any form of data that isn’t natively found on a blockchain, such as outcomes of sports matches, asset prices, or historical weather data. Fundamentally, oracles allow parties to place bets that can be opened and settled on a blockchain network.
For instance, let’s assume Alice and Bob want to bet on a football match. Alice bets $50 on team A and Bob bets $50 on team B. The $100 is held in a smart contract escrow during the bet. After the match, how does the smart contract know whether to release the wagers to Alice or Bob? This is where an oracle comes in. The oracle fetches the match outcome off-chain and delivers it to the blockchain securely and reliably for the bet to be settled.
Now, let’s shift our focus from a generic blockchain oracle to a Bitcoin oracle. Bitcoin oracles solve a fundamental constraint of the Bitcoin network - interoperability. The safety and resiliency of the Bitcoin network exists today, partially because it is closed and contained from non-Bitcoin data and components. A Bitcoin oracle communicates with off-chain systems, but still allows for the movement of Bitcoin natively on-chain. In this way, logic that sits either on a decentralized network such as Ethereum or a centralized server is now able to escrow and settle Bitcoin in the likes of having smart contracts available on the Bitcoin blockchain.
As we have shown, oracles are an integral element of most applications that are built on blockchains. They act as a bridge to pass data back and forth between a blockchain and other real world systems. Without them, blockchains become siloed systems that can’t change and respond to external happenings. Apart from integrating public data sources to facilitate sports bets (such as the Alice and Bob’s example above), more interesting use cases emerge when Bitcoin oracles rely information from other more complex smart-contract systems.
For example, let’s assume Mark is buying a car from a dealership for 3 BTC with ownership of the car living on a public ledger such as Ethereum. Before the dealership sells the car to Mark, they will open up a DLC.Link contract with the payment escrowed between the two parties. Once the blockchain confirms that the title transfer has occurred from the dealership to Mark (i.e. an update to the car’s linked NFT record), the Bitcoin payment is unlocked programmatically. This all happens in a trustless fashion provided Mark and the dealership come to an agreement on what public record they both feel comfortable using to show ownership of the car being sold.
As you can see, Bitcoin oracles can enable many different use cases that require the non-custodial escrow and movement of Bitcoin. Their capacity to allow trust-less deposits as well as integrate with any out-side data feed (such as Chainlink, APIs, and even banks) brings a whole new world of Bitcoin functionality.
If there is only one oracle for a network, than like any non-distributed and non-decentralized piece of software, this presents a single point of failure. This undermines the true purpose of decentralized applications. If the only Bitcoin oracle goes offline, then data will stop flowing in from other networks to be used to settle Bitcoin transactions. Worse yet, if the Bitcoin oracle is manipulated, the data being sourced from off-chain systems may be compromised and allow for incorrect outcomes to be published for fraudulent Bitcoin payments to occur.
To successfully bridge the gap between the strongest, decentralized asset Bitcoin and all other smart-contract enabled blockchains, the ecossytem will need many Bitcoin oracles to mitigate data inaccuracy, collusion, and downtime. DLC.Link is building the infrastructure for anyone to power up and run a Bitcoin oracle and participate in the new economy of Bitcoin lending and payment. This will further empower developers and applications on any blockchain or system to accept Bitcoin collateral without the implications, restrictions, or risk of using a third-party.