MultiversX Tracker is Live!

Design idea for smart contract based Rotten Tomatoes alternative

Etherum Reddit

More / Etherum Reddit 230 Views

Abstract

RottenTomatoes.com is a movie review website that often censors and manipulates reviews.

The 2 challenges of a smart contract based review application are: 1. how to prevent spam/sybil attacks, and 2. how to incentivize users to pay transactions fees for each review they publish.

I propose solving these 2 challenges by making the application "whale focused", ie only show reviews posted by addresses that have more than some minimum balance (amount possibly chosen by the reader), and sort reviews by addresses that have the highest balance.

Presumably, whales will have little interest in spamming viagra ads, and humans seem to value the opinion of wealthy people most. Also presumably, whales won't mind paying transaction fees to publish, especially on cheaper smart contract platforms or L2s.

With this design, DNS, servers or moderation would not be required at all. A single anonymous developer could maintain the application for 1 billion users. No IT, infrastructure, legal, etc.

A governance/reward token could be issued to incentivize users and development.

DNS

No need for DNS, the app can use ENS with IPFS, eg https://cryptomatoes.eth.link

Servers

No need for backend API servers, the app can use latest reviews stored in an array to populate a "front page" directly from the blockchain HTTP provider, and filter/sort them by balance. To query hundreds/thousands of balances in a single HTTP request, it is possible to use a "bulk read balance query" smart contract. An approach used by https://snapshot.org.

The text content of each review can be an IPFS file. At least one person would have to run an IPFS node at all time and retain all IPFS files. The reader can use a public IPFS gateway like Cloudflare to access IPFS in his browser without the developer having to run any public server endpoint.

Category pages

Another browsable page should be categories, such as movies, tv shows, games, podcasts, music, etc. These can also be populated directly from the blockchain HTTP provider. Each review has a field "categoryName" (eg movies) and "itemName" (eg gladiator) and gets added to a mapping "categoryName => itemName => reviews[]". Category pages can be accessed via https://cryptomatoes.eth.link/#/category-name. The list of movies in a category can be sorted by most amount of reviews with a minimum certain balance, by date, or by using some open movie list API like Wikipedia or IMDB, or by some centrally maintained IPFS/IPNS file/record. The reader should be allowed to choose between multiple options.

Movie/game/podcast/item pages

The most important browsable page would be the movie or item page itself, accessed via https://cryptomatoes.eth.link/#/category-name/item-name. The metadata of the movie can be fetched from some open API like Wikipedia or IMDB, or centrally maintained in some IPFS/IPNS file/record. The reader should be allowed to choose between multiple options. The list of reviews, sorted and filtered by balances can be fetched directly from the blockchain HTTP provider. The text content of each review can be fetched by a public IPFS gateway like Cloudflare.

User profile pages

User profile pages can display on chain data like list of reviews, balances, list of NFTs, ENS, as well as an optional IPFS file for social media and website links. A prolific critic might link his profile on his Twitter via https://cryptomatoes.eth.link/#/address/0x1234... Whales often like to recommend podcasts, books, etc, this would be a good place to aggregate all their recommendations. If the review use case doesn't catch on, a pivot into a Medium.com like application could be built reusing a lot of the profile page code and smart contracts.

Multiple EVM blockchains for lower transaction fees

The app could aggregate multiple EVM blockchains to calculate the minimum balance. Eg a user might publish on Avalanche because of low fees, but have his "balance" for sorting calculated on Ethereum, as well as display his ENS and NFT avatar from Ethereum. This is possible because a user on Ethereum will have the same public key on all other EVM blockchains, like Avalanche and etc. On a blockchain with very cheap transaction fees, like under a cent, an artificial fee would be required to stop attackers from clogging the reviews arrays and making it slow for clients to fetch all the reviews. Another potential way to improve fetching speed is to use different array buckets for different current balance of the publisher, eg "reviews[below1ETH] => reviews[]", "reviews[below10ETH] => reviews[]", "reviews[below100ETH] => reviews[]", etc. This would require an attacker to have more than 100ETH to slow down the fetching of a publisher with more than 100ETH. Client side caching and preloading should help fetching speeds as well. And a server with a cache would get rid of this attack completely but would not be as censorship resistant.

Incentivizing development and usage

A token could be created by the developers to incentivize development and usage. They can distribute this token manually to users who write good reviews. The token could be used for balance sorting, governance, or anything else that might come up in the future.

Browser extension

The app could be made into a browser extension, and integrate with RottenTomatoes.com, IMDB.com, GoodReads.com, even Amazon.com.

Possible game theory problems

  1. Whales might spam even if they are already rich.
  2. Whales might not want to publish, because it is boring, too much of a hassle or because they don't want to pay the transaction fees.
  3. Since only whales can use it, it doesn't recreate the "Rotten Tomatoes experience" in any way whatsoever, it's a new untested user experience that might simply be too boring to use and not gain any traction.

I will not be building it, it's just an idea, if anyone is interested in building it feel free to do it without crediting me. I'm also available to talk about it in DMs if any dev is interested and has questions about it.

submitted by /u/estebanabaroa
[link] [comments]
Get BONUS $200 for FREE!

You can get bonuses upto $100 FREE BONUS when you:
πŸ’° Install these recommended apps:
πŸ’² SocialGood - 100% Crypto Back on Everyday Shopping
πŸ’² xPortal - The DeFi For The Next Billion
πŸ’² CryptoTab Browser - Lightweight, fast, and ready to mine!
πŸ’° Register on these recommended exchanges:
🟑 Binance🟑 Bitfinex🟑 Bitmart🟑 Bittrex🟑 Bitget
🟑 CoinEx🟑 Crypto.com🟑 Gate.io🟑 Huobi🟑 Kucoin.



Comments