Universal Rating System on Multichain

+1 vote
I would like to modify our rating system so it is not open to hacking, change and to give an element of trust to systems using it outside of our API...although we we still be using our API to post scores etc.

The rating system is for users to rate each other based on their existing score, with the max score that can be given of 0.1. The basic formula is (Rating of user x rating given)/1000, with a score of -10 to +10 given. So a user rating can go down based on "dislikes" but it takes a while to do so. We are doing this so we can also apply penalties for not paying back loans, as in Philippines there is no current credit scoring system. The open API allows anyone to integrate into other sites and apps. A user starts with a score of 1 for doing KYC in the system, so others can see they are a real person. KYC is also stored on Multichain already using hashed name and DOB.

Can anyone suggest best practice to store and retrieve scores in Multichain, without a user knowing who rating them?.. Perhaps in Streams, where the userhash is stored and data part has the scores as they come in, calculating from the previous score?..

Any ideas welcome..;)
asked Apr 27, 2018 by mark

1 Answer

0 votes

You can certainly use streams to score the individual scores granted by users, using stream item keys to tag who is receiving each score. But you would need to run some kind of external process to generate the summary statistics from those scores (or use an addition to getstreamkeysummary in the codebase).

However please note that it's not possible to grant scores anonymously, because nothing on the blockchain can be done without being signed by some address. The moment scoring is anonymous, anyone could manipulate the scores of someone else by posting tons of scoring events, and nobody could tell the difference between this and genuine scoring.

answered Apr 29, 2018 by MultiChain
...