Decentralized Oracle Nodes


#1

The following was asked in the Enigma Telegram channel on 9/28/2018 by the community member named Yarci, and it was answered by Guy:

Yarci:
“Are you guys [Enigma] also gonna use decentralized oracle nodes for your secret smartcontracts? I mean, will someone be able to write smartcontracts directly through the Engima project, or will they just use the Enigma protocol as a privacy layer for their smartcontracts, and on both possibilities, how will you extract the off/chain data to feed the smartcontracts with? Are you building your own oracles? And if so, are these decentralized? Or will the possibility be there to make use of outside oracles?”

Guy:
“Since we’re using WASM, oracles come almost for free and should not be a big issue. We will run our own blockchain eventually.”

Yarci:
“But will it have the same functions as a decentralized oracle Middleware provider?”

Guy:
“It’s better. Decentralized oracles in Ethereum are a hack designed to overcome the fact that you can’t do something like TLS. Enigma nodes already act like decentralized oracles in addition to executing secret contracts. So you don’t need something like Chainlink basically. Or Oraclize.”


#2

Yarci, [28.09.18 22:57]
[In reply to Guy Zyskind | Enigma]
Can you shortly explain how Enigma nodes will act like decentralized oracles? Will they be able to extract data from of-chain API´s to be used into smartcontracts?

Yarci, [28.09.18 22:57]
How will this exactly work?

Yarci, [28.09.18 22:59]
Any technical in-depth explication for how this would exactly be put into place?


#3

Oracles are basically a way to interact with the outside world. For example, let’s say we want to contact a weather forecast REST API to bring that kind of data on-chain. With Ethereum/Solidity, this is impossible directly (you can’t use common protocols like HTTPS, TLS from Ethereum). To overcome this challenge, the solution is to create some kind of middleware/bridge that fetches data from the outside world and sends it back to Ethereum. In other words, it’s an intermediary that understands both ‘Web 2.0’ and Ethereum.

Intermediaries are generally bad, and as a result, some projects and papers (e.g., Town Crier) suggest using decentralization and SGX to overcome that. But wait - Enigma is already a decentralized network, with nodes running SGX (and in the future - MPC). As we complete our move to WASM, which supports existing libraries (such as interacting securely with web services), fetching data from the outside world would be native to the Enigma, making third-party Oracle solutions obsolete.


#4

Basically Enigma can run any kind of trusted software (including a SSL Client with a SSL certificate that could be given by the User in the Enigma contract). Right now it is only an EVM + interfacing.

A SSL client would do the request, and outputs the processed response.
Smart contract (or SGX) would check the equality of the SSL hash of the output/input.