I've been toying around with a proof of view scheme now for some time. It's a toy-scheme. More fun than serious. Perhaps its possible, at this point I'm just structuring the idea.
The problem/question is this: How do we prove someone has viewed x Advert, and provide incentive for people who have viewed X advert?
With Swarm in development and Ethereum coming together, I've been thinking about ways to build an advertising platform with Ethereum using a sort of proof of view scheme.
You can, with some certainty, prove that someone has viewed an image by asking them a content related question about that image. So why not create an incentivised platform on Ethereum to do so (well there is many reasons, but lets continue anyways).
For sake of simplicity, there are two types of parties: Advertisers (those who post ads), and Users (those who post answers).
The Basic Idea:
- An Advertiser posts an Advert image (to say Swarm) and an Advert contract to Ethereum with a stake of X Ethers as incentive for users to view the Advert image and answer the Advert content question
- Users view the ad (based on incentive of stake, question difficulty and ramifications of the submission) and then answer a content related question about the Advert and submit a hash of the answer.
- Users who got the right answer are entered into a lottery to win a portion of the stake posted by the Advertiser
There are two ways (I know of) to prove that a user has submitted the right answer: (1) they submit the actual answer in a later block, or (2) they submit a hash which is cryptographically related to the answer hash posted with the Advert question. At this point, I don't know which one of these would work better, I just know they are both possibilities.
The posted data for an advertiser posting to the BC is something like this:
, "from": "1488Vsdf2XYJQnf6hkHTyJssaer3DwE6mo"
, "stake": 100
, "question_hash": "1Hsd3Ksdf7rHwKcqsdfkDvgjbg6x5g3TDD "
, "answer_hash": "21a226168bdec8a07bfbfd392ae0aa5456182fc528c7fda2a"
, "answer_length": 4
, "number_of_words": 1
, "question": "Who is in the photo top right of the photo?"
, "time_to_answer": 8
, "difficulty": 10
, "pow_hash": "64ac52facfbb7a33103acefa730af6863c39e894cefdb9e0"
Explanation of input data.
from: the Advertising Company address the Advert is from
stake: the amount the Advert Advertiser is willing to stake as incentive for good users viewing their advert
answer_hash: A hash of the actual answer to the question posted
answer_length: The actual character length of the answer
question: The content question related to the image (to prove someone actually viewed the ad)
time_to_answer: How many blocks until the answer will be posted
number_of_words: How many words are in the answer to the question posted
difficulty: The PoW hashing difficulty needed to submit an answer (used to mitigate spam)
pow_hash: A hash provided by the advertiser to prevent Ad spamming the BC
The initial user posted answer hash data would look something like this:
, "answer_hash": "6eb892fae746c9ab35ed76045103abac5d574c249f0"
, "pow_hash": "3045022100d9bd656b5337d9b93e7e7125f33943d09849a17674cf4890"
The Advert posted answer would be posted like this:
, "answer": "goat"
The user answer would look something like this:
, "prev_answer_hash": "FSDkdsfkjsdfisdfFJSfdisdfjsdfljsdoijsdfijd"
, "answer": "seal"
This idea is influenced by the same concept discussed in many of Vitalik's talks regarding getting the weather in a certain city in a decentralized way. You post a question like "What is the weather in Toronto" and the median answers submitted are then chosen to be the most correct. Reward is them given to those that posted the most right answer. This proof of view scheme may have different ramifications than that talked about by Vitalik, but I thought I'd put the idea down regardless.
Some Technical Thoughts/Scheme Ramifications:
- There will be an answer and question POW hash required to mitigate spamming
- If the answer posted by the Advertiser is longer than the posted answer length by the question poster, the stake is lost and no one receives the stake
- If the answer is posted by the Advertiser before the time_to_answer, the stake is lost and no one receives the stake
- All answers submitted must provide their POW difficulty hash
- If the answer posted is not cryptographically provable to the answer hash posted previously by the ad poser, the stake is lost
- If the stake is too low, no one will attempt to answer the question (not enough incentive)
- If no answer is posted by advertiser, they loose their stake of Eth
- If the answer posted has more words than in the count posted, the stake is lost
- A dashboard interface could be designed to rate questions posted (given question ramifications), to make it easier for people who want to make Ether viewing adverts
- The dashboard could also allow users to choose advertisers that they have made money from in the past or who they trust will produce good solvable Adverts
- Advertising companies could publish their "from" addresses (to build a social following around their businesses Adverts)
- Advertisers who constantly produce bad Adverts will be ranked lower than those who post answerable Adverts with the User dashboard, and community
- The Eth cost for even posting an Ad or Ad answer will to mitigate Advert and user spamming
- All answers should be submitted within a specified protocol (e.g. all lower case, no dashes, no trailing spaces, UTF-8), any answers submitted outside the protocol are invalid
- All initial user answers would be posted as a hash in the allotted time
- All user answers would be posted after, their answer a key to their posted answer hash, related to their address
- Spamming: perhaps a malicious user party has a huge server farm, they could submit thousands of answer hashes from different addresses, thus spamming out other normal users
- Artificial Intelligence is getting really good at solving these sorts of problems, and may invalidate this whole scheme entirely (while this may not be a worry now, it will be in the future as Captcha's (or Reverse Turing Tests) are becoming less effective to discern humans from computers due to Captcha breaking software/AI/and algo's).
- The Malicious Advertiser: they answer their own adverts, upping their chances of getting some of their stake back. (POW could mitigate this)
-Guessing: Computers are getting really good at guessing answers, perhaps an algorithm could be developed to just guess the right answer to the question (Advertisers who want actual people to answer the question, should post a question that is solvable but hard to just guess out of the blue)
All Ideas are welcome, this scheme has holes and flaws, but I'd thought Id put it down in the forum anyways to further field ideas and concerns.
Cheers, hope you all liked my toy scheme/protocol idea,