<p>The use of an Oracle does somewhat go against the founding principle of transacting without the need for a trusted third party.</p>

<p>As <a href="https://bitcoin.org/bitcoin.pdf" rel="nofollow noreferrer">Nakamoto's whitepaper</a> states:</p>

<blockquote>
  <p>What is needed is an electronic payment system based on cryptographic proof instead of trust,
  allowing any two willing parties to transact directly with each other without the need for a trusted
  third party.</p>
</blockquote>

<p>Of course the majority of transactions do not need trusted third parties such as oracles or escrow agents. But for those that do, trust is a key issue.</p>

<p>Other people have suggested <a href="https://en.bitcoin.it/wiki/Contract#Trust_minimization:_challenges" rel="nofollow noreferrer">trust minimisation strategies</a> that can be used with oracles.</p>

<blockquote>
  <ul>
  <li>multiple independent oracles</li>
  <li>trusted hardware</li>
  <li>Amazon AWS oracles</li>
  </ul>
</blockquote>

CC BY-SA 4.0
2019-07-16T09:17:53.847Z
2019-07-16T15:15:38.677Z
2019-07-16T15:15:38.677Z
RedGrittyBrick
<p>The important distinction here is between authenticating information native to Bitcoin (via cryptography), and information external to Bitcoin (via oracles). </p>

<p>The native asset of the Bitcoin network is the bitcoin currency. Users can run a node that independently validates the state of the network, without needing to trust any third party or intermediate. The cryptography that guarantees the authenticity of a bitcoin UTXO can be computed independently, allowing the user to maintain full sovereignty over their funds. </p>

<p>However, a problem arises with authenticating information external to the Bitcoin network, and this is where oracles are required. It is not possible to connect the external world to the Bitcoin network without the use of an oracle, and so in cases where an oracle is needed, the user <strong>must trust the oracle completely</strong>. It is important to keep this in mind: a blockchain does not illicit truth from the world, and there is no way to prove (on-chain) that an oracle misbehaved and input bad data. You may be able to prove that the data was false externally (in a courthouse, etc), but this would have no bearing on the validity of on-chain transactions related to that data. The oracle could still lie, and then initiate transactions based upon that lie. </p>

<blockquote>
  <p>In this context, does an oracle not go against the previous principle? Where are there ways to get trustless Oracles?</p>
</blockquote>

<p>There certainly can be uses for oracles, but these relationships of trust between user and oracle are important to understand. For example, consider a simple trade of bitcoin for dollars:</p>

<p>Bob wants to sell 1 Bitcoin to Alice for $100, but wants Alice to send the dollars first, before he initiates the bitcoin transaction. In this case, Bob would be acting as an oracle for Alice: once the off-chain portion of the deal is complete, Bob will take action on-chain (by sending the bitcoin to Alice). So Alice must trust Bob to act honestly. </p>

<p>Understanding this, Alice decides to use a third party escrow agent, Joe. Alice asks Bob to send the 1 bitcoin to Joe, and then Alice will send Joe proof of the dollar transfer. Joe will act as oracle, so Alice and Bob must trust him, but Joe can be incentivized to act honestly by charging a small fee for his service.</p>

<p>So we can see that while trust can be minimized in certain ways, there will always be an oracle position inherent to situations where physical world happening needs to be recorded or acted upon in the blockchain. While the example was simple, it can be extended to any number of more complex situations. Oracles can be trust-minimized through clever incentive schemes, but their position can not be eliminated entirely when attempting to link the physical world to the blockchain. </p>

<p>Relevant note: There are no shortage of ‘blockchain projects’ which are premised entirely upon data fed from an oracle as being ‘trustless’ and ‘revolutionary’ (eg supply chain tracking projects)— but in reality they are just centralized coins with fancy marketing, that seek to take advantage of users which don’t understand the oracle-trust problem. </p>

CC BY-SA 4.0
2019-07-16T18:08:24.603Z
2019-07-17T01:10:36.780Z
2019-07-17T01:10:36.780Z
chytrik
<p>From what I understand of the blockchain, the main motivation, the very foundation of this technology, is the search for peer-to-peer exchange without mutual trust, without a trusted third party, so trustless exchanges. </p>

<p>However, the purpose of an Oracle is to provide an external data that is invertible. It is therefore necessary to have confidence in this oracle, while it can provide false data (voluntarily knowing that it can be beneficial or not by simple measurement error (for an IoT sensor) / algorithm error / human error...).</p>

<p>In this context, does an oracle not go against the previous principle? Where are there ways to get trustless Oracles?</p>

<p>Thank you all.</p>

<blockchain><oracle>
Doesn't an Oracle go against the Blockchain principles?
Thibault Santonja
# Doesn't an Oracle go against the Blockchain principles?

(Asked by: username_0 on 2019-07-16)

From what I understand of the blockchain, the main motivation, the very foundation of this technology, is the search for peer-to-peer exchange without mutual trust, without a trusted third party, so trustless exchanges.

However, the purpose of an Oracle is to provide an external data that is invertible. It is therefore necessary to have confidence in this oracle, while it can provide false data (voluntarily knowing that it can be beneficial or not by simple measurement error (for an IoT sensor) / algorithm error / human error...).

In this context, does an oracle not go against the previous principle? Where are there ways to get trustless Oracles?

Thank you all.

**Tags:** blockchain, oracle


---

## 2 answers

### Answer by username_1 on 2019-07-16. Score: 3

The use of an Oracle does somewhat go against the founding principle of transacting without the need for a trusted third party.

As [Nakamoto's whitepaper](https://bitcoin.org/bitcoin.pdf) states:

> What is needed is an electronic payment system based on cryptographic proof instead of trust,
> allowing any two willing parties to transact directly with each other without the need for a trusted
> third party.

Of course the majority of transactions do not need trusted third parties such as oracles or escrow agents. But for those that do, trust is a key issue.

Other people have suggested [trust minimisation strategies](https://en.bitcoin.it/wiki/Contract#Trust_minimization:_challenges) that can be used with oracles.

> * multiple independent oracles
> * trusted hardware
> * Amazon AWS oracles


---

### Answer by username_2 on 2019-07-16. Score: 2

The important distinction here is between authenticating information native to Bitcoin (via cryptography), and information external to Bitcoin (via oracles).

The native asset of the Bitcoin network is the bitcoin currency. Users can run a node that independently validates the state of the network, without needing to trust any third party or intermediate. The cryptography that guarantees the authenticity of a bitcoin UTXO can be computed independently, allowing the user to maintain full sovereignty over their funds.

However, a problem arises with authenticating information external to the Bitcoin network, and this is where oracles are required. It is not possible to connect the external world to the Bitcoin network without the use of an oracle, and so in cases where an oracle is needed, the user **must trust the oracle completely**. It is important to keep this in mind: a blockchain does not illicit truth from the world, and there is no way to prove (on-chain) that an oracle misbehaved and input bad data. You may be able to prove that the data was false externally (in a courthouse, etc), but this would have no bearing on the validity of on-chain transactions related to that data. The oracle could still lie, and then initiate transactions based upon that lie.

> In this context, does an oracle not go against the previous principle? Where are there ways to get trustless Oracles?

There certainly can be uses for oracles, but these relationships of trust between user and oracle are important to understand. For example, consider a simple trade of bitcoin for dollars:

Bob wants to sell 1 Bitcoin to Alice for $100, but wants Alice to send the dollars first, before he initiates the bitcoin transaction. In this case, Bob would be acting as an oracle for Alice: once the off-chain portion of the deal is complete, Bob will take action on-chain (by sending the bitcoin to Alice). So Alice must trust Bob to act honestly.

Understanding this, Alice decides to use a third party escrow agent, Joe. Alice asks Bob to send the 1 bitcoin to Joe, and then Alice will send Joe proof of the dollar transfer. Joe will act as oracle, so Alice and Bob must trust him, but Joe can be incentivized to act honestly by charging a small fee for his service.

So we can see that while trust can be minimized in certain ways, there will always be an oracle position inherent to situations where physical world happening needs to be recorded or acted upon in the blockchain. While the example was simple, it can be extended to any number of more complex situations. Oracles can be trust-minimized through clever incentive schemes, but their position can not be eliminated entirely when attempting to link the physical world to the blockchain.

Relevant note: There are no shortage of ‘blockchain projects’ which are premised entirely upon data fed from an oracle as being ‘trustless’ and ‘revolutionary’ (eg supply chain tracking projects)— but in reality they are just centralized coins with fancy marketing, that seek to take advantage of users which don’t understand the oracle-trust problem.


---

