Contrary to widespread misconception, Blockchain, DLTs and Smart Contracts CAN make calls to external web services

Joshua Ellul
2 min readMay 12, 2021

--

TLDR: It is widely believed and said (written) that blockchain, DLT and smart contracts cannot make requests to external web services (e.g. send a request to getthetemperature.com to get the current temperature). In this work, we show that this is a misconception. We show that blockchain, DLT and smart contracts can make requests to external web services.

I believe we (Prof. Gordon Pace and myself) have made a breakthrough (i.e. disproving a common misconception — through provision of a solution). It is a widely accepted belief in the community that blockchain/DLT platforms (and smart contracts) cannot actively make calls to retrieve information from external web services/sources. Instead, the sector makes use of “Oracles” — external entities that push information into a blockchain/DLT/Smart Contract.

This belief is preconceived. Likely based on the fact that decentralised logic (whether part of a Blockchain or smart contract) must be deterministic in nature — this means that given some input into the system, we must be able to determine the output, the final result computed. This is indeed correct, however it seems as though we (the sector) have come to believe that all nodes must execute the exact same code to reach this deterministic state — i.e. the same final output or result. This is not correct — the only important thing is that the final result is deterministic (that it can be determined given the input), and however this deterministic result is computed does not matter, as long as all nodes get to this result.

So previously it was thought that the only way to achieve such a system would be to require that every node in the blockchain makes the same call to the web service. However this raises two issues: (i) the same response from the external web service must always be the same (deterministic); and (ii) this could result in a denial of service attack on the external web service and would also not scale up as a blockchain’s size increases.

We show in a preprint paper that Blockchain systems can make external calls to web services through the use of digitally signed responses — one node (be it the miner/validator) only needs to undertake the external call and it then records the response as well as a digital signature issued by the external service. All other nodes can then verify the response to be correct based upon the digital signature. So all nodes reach the same deterministic state, i.e. the same result, but only require one node to make the external call.

We believe this will open up possibilities for many new types of applications, as well as allow for existing applications that make use of external sources more efficient.

The preprint is available from here:
https://www.researchgate.net/publication/351497108_Towards_External_Calls_for_Blockchain_and_Distributed_Ledger_Technology

Get in touch if you’re interested to discuss any aspect.

Joshua Ellul
joshua.ellul@um.edu.mt

--

--

Joshua Ellul

Chairperson // Malta Digital Innovation Authority; Director // Centre for DLT @ Uni Malta; Lecturer. Programmer. Opinions are my own.