Skip to content

Aman035/Proof-Of-Testimonial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub contributors GitHub issues GitHub forks GitHub stars GitHub license


Logo

Proof Of Testimonials

Bringing the power of decentrealized verifiable attestations to your testimonials. Ensuring every review is genuine and credible

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Built With
  3. Deployments
  4. Installation
  5. Contributing

About The Project

Problem Statement

In a world where product and services quality depend heavily on testimonials and reviews, the authenticity of these reviews can often be questionable. False testimonials can mislead consumers and damage the reputations of good businesses. Fake reviews can also be used to manipulate the market and create unfair competition. Whereas, genuine testimonials can help businesses grow and build trust with their customers. Currently all the testimonials found for any web2 / web3 product have to be taken at face value. There is no way to verify if the testimonial was added by a real user or a bot and even if it was added by a real user, there is no way to verify if the user really gave the testimonial or if it was added by the product owners itself twisting the words of the user. This is where Proof Of Testimonials comes in.

Solution

Proof of Testimonials allows users to add products they want reviewed. Users can also create their profiles, enhancing their credibility by linking their social media accounts and other platforms. All products and profiles are attested off-chain using SignX, which can be verified anytime outside the scope of the platform.

Proof of Testimonials also ensures bot resistance and safety against profile spoofing.

  • Bot Resistance: Every user profile must have a Threshold Gitcoin Passport Score to add a testimonial. This ensures that the user is real and not a bot. ( Note: The Threshold Gitcoin Passport Score can be set by the product owner and is currently set to 1 for the MVP demo. )
  • Profile Spoofing Detection: Each user profile SignX attestation is linked to the previous profile attestation, thus forming a chain of attestations. This helps the platform detect any recent changes or spoofing in profiles.

Proof of Testimonials also ensures that users who add testimonials are rewarded for quality contributions and penalized for fake testimonials. This is managed through the following mechanisms:

  • One-time Reward on Whitelist: Users are minted 1000 POT tokens when they achieve a Threshold Gitcoin Passport Score and are added to the whitelist.
  • Testimonial Addition Fee: Users must pay a flat fee of 100 POT to add a testimonial, preventing spamming of the platform with excessive testimonials.
  • Testimonial Reward: The testimonial owner is rewarded with 10 POT when their testimonial is upvoted by a whitelisted user, and similarly penalized with 10 POT when downvoted by a whitelisted user. All rewards and penalties are tracked in a reward pool, which can be claimed by the user once it reaches a minimum value of 50 POT (set for the MVP demo).

Currently, Proof of Testimonials allows users to add off-chain attestations on Arweave using SignX, as most attestations involve large data volumes that are not feasible to store on-chain. Additionally, since SignX has not yet launched on Non-Devnet, these attestations are selected by the Proof of Testimonials backend ( which will be a set of validator nodes in the future ), verified, and indexed on-chain for reward and punishment mechanics. As the validator nodes manage on-chain transactions, Neon EVM is used for the MVP demo, which offers fast processing and very low network fees.

Built With

Client

Contracts

Backend

Deployments

Installation

git clone https://github.com/Aman035/Proof-Of-Testimonial.git

Client Installation

cd client
npm install
# Start in development mode
npm run dev
# Build for production
npm run build
# Start in production mode
npm run start

Contracts Installation

cd contracts
forge install
# compile contracts
make compile
# Run tests
make test
# deploy contracts ( Set up .env file according to .env.example beofre deploying )
make deploy

Backend Installation

cd server
npm install
# Start in development mode
npm run dev
# Start in production mode
npm run start

Contributing

  1. Fork the Project
  2. Create your Branch (git checkout -b Amazing)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin Amazing)
  5. Open a Pull Request


This project was started by Aman during EthGlobal's Scaling Ethereum 2024.

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors