Authenticity proofs verification: off-chain vs on-chain

Preamble

pNetwork Team
pNetwork
3 min readNov 8, 2017

--

The impact of blockchain protocols on the real-world goes beyond the economic value of cryptocurrencies — decentralized applications built on top of the blockchain enable the improvement of processes among a variety of industries, bringing with themselves features like automation, security and trust removal.

While the whole action flow underneath some decentralized applications remains within the blockchain, other DApss have a need to connect with an external context.

Oraclize solves the “walled garden” limitation — it provides a secure connection between smart contracts and the external world, enabling both data-fetching and delegation of code execution. The data (or result) is delivered to the smart contract along with a so-called “authenticity proof”, a cryptographic guarantee proving that such data (or result) was not tampered with. By verifying the validity of such authenticity proof, anybody at any time can verify whether the data (or result) delivered is authentic or not.

Off-chain verification of authenticity proofs

Off-chain network monitor — http://app.oraclize.it/service/monitor

As of few months ago, authenticity proofs were verifiable off-chain only. Because the verification process is both complex, including multiple elements not supported by the EVM, and expensive Gas-wise, our initial implementation of authenticity proofs relegated such verification to an external context (outside the blockchain) only. In other terms, with such an approach anybody is allowed to verify authenticity proofs at any time after the data is delivered to the smart contract. While granting a high level of security for the data-transport-layer, especially when relevant amounts of money are at stake, the “off-chain verification” approach limits the benefits of the Oraclize system.

On-chain verification of authenticity proofs

As decentralized applications enter a further stage of development, having a secure system for the delivery of data (or results) becomes more and more important. Mainly for those smart contracts automatically triggering payments based on real-world data, being able to verify the authenticity of such data before it is used grows into a fundamental piece of the puzzle.

For a decentralized insurance system releasing an instant payout to its users in case their flight is late, having an additional guarantee on the information regarding the status of the flight represents a relevant improvement of the insurance product. A financial instrument managed by a smart contract and delegating a code execution to an external context benefits from a verification on the authenticity of the result before the exchange between the counterparties happens. A user of a decentralized gambling system wants his bet to be provably-fair and his win/loss to be backed by an authentic data.

On-chain verification enables authenticity proofs to be verified within the blockchain context. Smart contracts can check the validity of proofs (aka the authenticity of data) before the data is ultimately delivered — they can therefore decide to use the data or to discard it according to the result of the verification process.

The on-chain verification approach improves the overall security of the system. A first step in that direction was the introduction of our Ledger Proof, which enabled on-chain verification for a set of data. Our team is now working on the Proof Shield (we will deep-dive on this at our next meetup): a more advanced tool that will simplify the output of authenticity proofs, therefore enabling their verification within the blockchain context.

If you are interested to know more about the concept backing the ProofShield, you can also have a look at the introductory presentation on the matter that we did at Devcon3 in Cancún.

Note: The company has now rebranded into Provable.

--

--