Decentralised Event Reputation System

The problem DRate solves

Reviews/Reputations are an important source of information for users as it can play an important role and help them in making decisions. Existing reputation systems are centralised in nature and can hence be unreliable and untrustworthy with the reputation that they show. This is because the votes are held at a centralised server and can be manipulated if required. To solve this we present - DRate - a decentralised reputation system which users can use to upload movies(events) and allow users to review and rate them.

The voting system employed by the platform is inspired by Vitalik Buterin's smart voting proposal. The voting system factors in both the users vote and their preference. When a user sign's up to the platform they are assigned 100 tokens internally. When a user cast's their vote they pay a quadratically increasing number of tokens towards their vote. This means that - to cast y votes, the user spends y*y tokens. This prevents users from manipulating the rating as they are now limited in their capability in casting wrong votes.

The user gains tokens in 2 ways:

  1. By adding a movie(event) on to the platform - 50 token are provided
  2. [ FUTURE SCOPE ] By providing good reviews. In order to accomodate the current scenario of users we have made use of a simple algorithm - after a given time from adding the event to the platform the current rating of the system is noted. We then take the difference between the ratings, square the resulting value and multiply by 100. We then return the tokens provided by the user after reducing the percentage computed previously.
    For example : If current rating is 5.0 and user rating was 5.4 then the user would now lose 16% of funds which they had submitted while voting.[(5.0-5.4)^2*100 = 16%]. So if the user had submitted 100 tokens they would now only get 84 tokens back.

At this stage of the platform we do not see the requirement of tokens but would be considering it strongly in future extensions of this platform.

Challenges we ran into

Arcana does not support Mantle. Integrating polygon ID required a thorough understanding of its different subparts such that we are able to integrate it with our platform as we require it.

We had made some progress in our application before the start of the hackathon itself. The progress includes:

  1. Basic UI
  2. Uploading picture assets to IPFS with the help of NFTPort - The second piece of code has been used from the ETHIndia Project of https://github.com/jaggu21/ghar-on-chain. Note that only the NFTPort calls have been used which essentially remains the same in the case of any project.

Things that we built during the hackathon:

  1. Integration of Livepeer
  2. Integration of Arcana
  3. Integration of Polygon ID
  4. Integration of Mantle
  5. Integration of PUSH
  6. Built out the complete UI
  7. Updated the contract to support Quadratic Voting