EIP-4974: Ratings

Hi @dtedesco1,

I like the idea of a reputation token standard and have been thinking about it as well.

Here are some of my thoughts:

  • Reputation tokens are hard to earn, but easy to burn.
  • Reputation tokens cannot be transferred (period), but can be minted and staked.
  • Reputation token supply is inflationary. Total supply of reputation tokens is constant increasing so that reputation loses value over time and must be continuously earned for an owner to maintain their share of reputation tokens.

There are lots of things to work out, but a real-world example has helped me think about this. I started life as a physicist, but switched to finance ages ago. My first job in asset management had an interesting flat culture. The management team rotated every year. My office was next to the founderā€™s grandson and was the same modest size. No corner offices. Also, everyone in the investment team bent over backwards to help me. It was great. The way it was explained to me, everyone was enthusiastic about helping me because the sooner I got up to speed, the sooner I could help them. Sounded great. But when my first annual review came around, I learned there was a more pragmatic reason why everyone was trying so hard to help me. I received an odd email saying that I had 10 points that I could allocate to colleagues with a maximum of 5 points to any one person and could allocate to at most 10 people (1 pt each). I didnā€™t have to allocate any if I didnā€™t want to. The basis for allocation? We were to allocate points to colleagues who we felt had helped us do our jobs better the previous year. Bonuses were largely influenced by how many points you received. I always thought that was a great was to incentivize a helpful culture. Now, it seems like a total no-brainer to tokenize this concept.

With this in mind, I am thinking that once someone has achieved a certain level of reputation, e.g. maybe owning 1 reputation token, they are periodically, e.g. once a month, allowed to mint (not transfer) a limited number of tokens to others who they feel have helped them or helped the project.

The natural use case for reputation tokens would be DAO governance as means to combat the current plutocracy of purchased governance tokens. Rather than buying votes, you earn votes via reputation and you vote on initiatives by staking your reputation on them. The amount you can stake is tracked similarly to how allowance is currently tracked in ERC-20.

Need to think about Sybil attacks. Maybe some kind of modified quadratic voting?

Edit: Btw, if there is a non-transferrable token standard, I think it should also contain a consent mechanism, e.g.

1 Like
  • Reputation tokens cannot be transferred (period), but can be ā€¦ staked.

This is contradictory. Staking implies transferring. Or more specifically, staking means not being able to transfer something that you were previously able to transfer.

Oh, nvm, I see you are talking about being able to burn.

So this is like reputation points on StackOverflow.

1 Like

As I regularly get approached by people about Soulbound tokens, and especially now at devcon, Iā€™ve pointed people here a couple of times already. I think the idea of fungible but non-transferrable points, aka experience points, resonated with many people. Iā€™d encourage you to pursue this @dtedesco1 further.

2 Likes

Thanks for the encouragement, Tim! I will take a fresh look at this soon. Some folks are overdue responses and Iā€™ve got to clean up the PR.

1 Like

Hey, just wanted to add that Iā€™m using this EIP as a starting point for social tokens that can actually be redeemed for prizes. This is for an NFT project who has a ā€œpointsā€ system for people who buy an NFT from the collection, or buy physical art from the artist behind the project. The social points are then used to redeem prizes (like 10% off) on the artistā€™s shop and burned. The concept of having an operator (the artist in this case) and non-transferable (between individuals), non-valued tokens is a perfect fit for what weā€™re wanting to experiment with.

Iā€™ll come back to post my implementation once I have it done, but just wanted to say that I really appreciate the thought put into this EIP, which gave me a much-needed starting point for this project. I look forward to seeing where it ends up!

EDIT: Wanted to post what Iā€™ve put together in case anyone is curious to see a non-perfect implementation :slight_smile:

1 Like

I was looking to implement a karma-like system, no update on this?

1 Like

We have gone through several iterations and just completed the Draft stage. Now we are moving the EIP into Review: Update EIP-4974: Move to Review by dtedesco1 Ā· Pull Request #6334 Ā· ethereum/EIPs Ā· GitHub

In addition to what @0xThresh is working on, itā€™d be great to have more implementations during the Review stage. Do you want to share what your working on @donnoh and we can see if itā€™s a good fit?

1 Like

Iā€™m trying to implement a DAO model focused on education where a teacher (or coordinator) gives access to others via non-fungible SBTs (credentials) and can grant voting rights using fungible SBTs (karma points) based on course votes or other virtuous behavior. The teacher has a fixed amount of karma (like 50% initially) so the DAO tends to decentralize over time. I already implemented non-fungible SBTs following ERC-5192 which is compatible with EIP-712, so I thought it would make sense to also have fungible SBTs to be compatible to ERC-20, what do you think?

1 Like

This use case sounds compatible. EIP-4974 ratings are similar to fungible SBTs, butā€“unlike ERC-20-like tokensā€“ratings can be negative, in case you need to identify malicious or low reputation accounts. This may be useful in a highly decentralized environment. Happy to discuss more over DM/call, and even help write some code, if you want to try implementing. Let me know.

I donā€™t believe thereā€™s a ā€œneedā€, as much as a ā€œdesireā€ ā€” ā€œa desire exists forā€¦ā€.

Maybe Reddit will integrate with ethereum so that you can carry over your social points from their centralized platform.

This might open the door for China to integrate their social points system as well, which might be the motivation / desired purpose?

Iā€™m sure the normies will love getting pegged with unwanted titles they didnā€™t ask for. Especially ones that come from authorities they donā€™t necessarily wish to associate with.

ā€œDaddy government, I paid the bribe and served the time, can you please remove that title from my universal identity account?ā€

Maybe someone else is who you donā€™t want the title from, and whom refuses to remove it. In that case does the target user demand to speak with the Ethereum department manager, or should they call you directly to complain about the ruining of Ethereum?

Layer 1 doesnā€™t ā€œneedā€ a social credit system.

Itā€™s important to consider potential nefarious use cases of any potential standard. The issues you raise are noted in the Drawbacks section of the latest version of this EIP:

Drawbacks

One potential drawback of using this standard is that ratings are subjective and may not always accurately reflect the true value or quality of a contract or wallet. However, the standard provides mechanisms for updating and removing ratings, allowing for flexibility and evolution over time.

Users identified in the motivation section have a strong need to identify how a contract or community evaluates another. While some users may be proud of ratings they receive, others may rightly or wrongly receive negative ratings from certain contracts. Negative ratings may allow for nefarious activities such as bullying and discrimination. We implore all implementers to be mindful of the consequences of any ratings systems they create with this standard.

As itā€™s is still in review, feel free to make suggestions on how to improve this section or other parts of the EIP.

1 Like

hey, I want to implement this very soon so iā€™m available for DM or a call :slight_smile:

1 Like

You are an anon edge lord, and IMO, your behavior to disturb the discussion isnā€™t useful.

1 Like

I discussed with my team and int8 seems too low for our purposes. Our app is meant to decentralize over time and it accomplishes this with inflation. int8 cannot inflate meaningfully over long periods of time.

I recently implemented a soulbound fungible token for a reputation system. Instead of being non-transferable it is rather once transferable from issuer to beneficiary and the minting/supply to potential issuers can be implemented independently.

I also made an extension which makes it possible to deposit the earned token as a collateral. That means giving other accounts the authority to burn the token. For example in the case of reputation so that the activities which increase reputation can also potentially lead to a loss of reputation and introduce a risk (as in stack overflow reputation). Like that, tokens can be used to bet in prediction market scenarios to gain new tokens. Or a holder can allow other accounts to burn loyalty points in exchange for rewards.

If you have the time, take a look and let me know what you think of it.