I hope this is the right place to ask a question on how does block-chain help this theoretical requirement. I have also asked this question on SO; so far, no response. And, Ethereum SE is still in Area 51 at the time of writing this.

If cross-posting is a violation of forum protocol, please let me know. I will delete from the other site and leave this as is.

Here goes ...

I am trying to understand Smart Contracts through an anti-virus service idea. I hope, it matches the idea as expected of Smart Contract and Blockchain 2.0.


Suppose, I have received a 25 MB file from some one through some media. I would like to have it scanned for virus before I actually open it for use. How can I be sure that it is not infected?

Traditional Solution

Perhaps there is a cloud based service provided for virus scan - Virus Scanning as a Service (VSaaS). This provider has subscription plans based on file type, volume and frequency of scans. I could approach this provider to scan my file and receive a binary response as TRUE (clean) or FALSE (infected). But, I have no choice but to trust two things of the provider:

  • Did the provider scan at all? Or, more generally, was 'work' done at all? Maybe, there is a tiny script to return TRUE and FALSE with 50% probability regardless of how many and what type of files are sent.

  • Was the provider's scan conclusive? Maybe, the provider does not have all of the virus signatures to scan successfully. So, the provider may respond with TRUE (clean) whereas, it is actually infected with the latest strain of a virus.

Smart Contract

Can a distributed application (or, Smart Contract) resolve this problem? I know that the underlying blockchain provides a publicly available ledger that can verify:

  • If I have sufficient coins (say, BTC) to cover the scan service request.
  • If a scan request (the transaction in this case) was made, to whom, when, etc.

What I want to know is, the mechanism to confirm that a virus scan did actually happen in its entirety? Should multiple 'full nodes' do a virus scan of the same file? If so, am I now not spreading my ambiguity across multiple full nodes - in effect, different cloud providers in a conventional way?

How would an Ethereum platform address this requirement?

  • Some cryptosystems allow for proof of computation, but that's almost completely unrelated to Ethereum. Simply telling multiple people to do the same task and comparing the results isn't a solution because there's nothing stopping all of the "people" from being the same person. Virus scanning is a fair portion of snake oil regardless, you'll see extremely high false negative and false positive rates even just with off the shelf software.
    – Claris
    Commented Oct 1, 2015 at 18:06
  • You don't want potential viruses embedded into a blockchain for everyone to download... (unless you want to take down the system)
    – AndyM
    Commented Oct 1, 2015 at 21:18
  • Firstly, the focus is not so much on virus or files; it is whether an intended task be executed without having to trust a centralized authority. This problem can be extrapolated to other areas. Consider the example of looking up weather of a certain place on some day. How do I know if the look-up actually happened? Secondly, I did a quick search on 'proof of computation cryptographic systems'; I got responses only on 'proof of work'. @Bitcoin an example, please? Commented Oct 2, 2015 at 3:00
  • Found a similar question bitcoin.stackexchange.com/q/39162/6975 Commented Oct 3, 2015 at 15:32


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.