Introducing the ProofShield

pNetwork Team
pNetwork
Published in
4 min readDec 29, 2017

Oraclize has been around for ~ 3 years now. Our key feature has always been the one of delivering data backed by strong authenticity guarantees. Those are cryptographic guarantees proving that such data was not tampered with. By verifying the validity of such authenticity proof, anybody at any time can verify whether the data delivered is authentic or not.

Thanks to this approach, the trust in Oraclize is minimal and full transparency is guaranteed even for those decentralized applications willing to go beyond the blockchain context itself and connect with the external world.

On-chain vs Off-chain proofs verification: the problem

Specifically on Ethereum, the verification of the authenticity proofs backing the data, is not always trivially doable by the receiving smart contract within such context. This is due to enormous costs to execute complex operations (such as the authenticity proof verification) on the public blockchain. A way to address this very problem is “off-chain proof verification”: our authenticity proofs can be verified at any time off-chain by using the proof-verification-tool or our web-based service monitor.

With this approach, however, the on-chain smart contract, in most cases, will not be able to verify the authenticity proof by itself: as a consequence, wrong data might be delivered to it. While this is something that has never happened so far (anybody could check it independently by verifying off-chain the authenticity proofs delivered during the last ~ 3 years of operations), the “off-chain proofs verification” limits the benefits of the Oraclize system.

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. A more detailed explanation of this problem was introduced earlier:

The resources above introduce the problem and give a brief introduction to our solution to tackle it: the ProofShield.

The ProofShield

On-chain verification of authenticity proofs improves the overall security of the system as it enables smart contracts to verify the authenticity of data before the data is ultimately delivered and leveraged.

A first step in that direction was the Ledger Proof: a new kind of proof we have introduced earlier this year, enabling the on-chain verification of claims (signatures) coming from a Ledger device.

The ProofShield goes beyond that, converting every authenticity proof to a new simplified form, which is better suited to be verified on-chain in a context like Ethereum. Thanks to the ProofShield, smart contracts can verify the validity of proofs (and consequently the authenticity of data) from within the blockchain context and therefore decide to leverage the data or to discard it according to the result of the verification process.

Today, we are proud to announce that a first experimental version of the ProofShield is live on Ethereum testnets and ready to be tested.

A first version of the ProofShield was developed leveraging the Ledger Trusted Execution Environment — more information on this are available here. Thanks to its flexible design, however, the ProofShield is agnostic to the technology and can be integrated with other technologies as well.

Anybody interested to experiment with the ProofShield can find more information on the matter in our official documentation.

Some restrictions do apply (i.e. on the length of the query), but in general most queries will be able to support it. More details will be release shortly, in the meantime the ProofShield feature is already enabled on all Ethereum public testnets and is ready to be tested.

Other than our official documentation, this is a quick-start example code showcasing its use.

The ProofShield marks an important milestone in our agenda as guarantees stronger than ever can now be delivered to smart contracts, moving once again the security of our service to a new level.

Enjoy!

Note: The company has now rebranded into Provable.

--

--