Bitcoin Forum
October 14, 2019, 12:25:12 AM *
News: Latest Bitcoin Core release: 0.18.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Suggestions for computing trust scores?  (Read 1844 times)
theymos
Administrator
Legendary
*
Offline Offline

Activity: 3542
Merit: 6320


View Profile
November 18, 2013, 01:33:26 AM
Last edit: July 30, 2014, 03:22:54 PM by theymos
 #1

Currently, trust scores are calculated in this way:

Code:
scam_reports = total unique users who report scamming
reports = total positive ratings
btc = total BTC from positive ratings
unique_reports = total unique users who posted positive ratings
oldest = timestamp of the oldest positive trust rating
latest_scam = timestamp of the latest scam rating

scam_multiplier = 1
# recent scam = bigger negative score
if(current_time - latest_scam < 7 days)
    scam_multiplier += 1.5

# new member = bigger negative score
if(current_time - oldest < 60 days)
    scam_multiplier += 3

months = months since oldest
total = reports + btc/50    # 50 BTC = 1 report

# long-term con men
if(total > 0 && scam_reports > 4)
    scam_multiplier += (scam_reports / total) * 50

# Approximately limit the number of points each person can contribute each month
subtotal = min(2*unique_reports * months, total)
# Newer users have smaller point limits
limited_total = min(subtotal, 10*months) / 10

score = min((limited_total * months - scam_reports * scam_multiplier), 150)

This kind of sucks. Any suggestions on how to improve it? I'd prefer to avoid looping through all of a user's ratings because this is much slower than just using aggregates and single-row queries, but this server can probably handle it if necessary.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
1571012712
Hero Member
*
Offline Offline

Posts: 1571012712

View Profile Personal Message (Offline)

Ignore
1571012712
Reply with quote  #2

1571012712
Report to moderator
1571012712
Hero Member
*
Offline Offline

Posts: 1571012712

View Profile Personal Message (Offline)

Ignore
1571012712
Reply with quote  #2

1571012712
Report to moderator
1571012712
Hero Member
*
Offline Offline

Posts: 1571012712

View Profile Personal Message (Offline)

Ignore
1571012712
Reply with quote  #2

1571012712
Report to moderator
If you want to be a moderator, report many posts with accuracy. You will be noticed.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1571012712
Hero Member
*
Offline Offline

Posts: 1571012712

View Profile Personal Message (Offline)

Ignore
1571012712
Reply with quote  #2

1571012712
Report to moderator
1571012712
Hero Member
*
Offline Offline

Posts: 1571012712

View Profile Personal Message (Offline)

Ignore
1571012712
Reply with quote  #2

1571012712
Report to moderator
jackjack
Legendary
*
Offline Offline

Activity: 1134
Merit: 1025


May Bitcoin be touched by his Noodly Appendage


View Profile
November 18, 2013, 06:00:10 PM
 #2

scammed = total BTC from negative ratings?

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
jimmijames73
Hero Member
*****
Offline Offline

Activity: 504
Merit: 500


View Profile
November 19, 2013, 01:48:13 AM
 #3

scammed = total BTC from negative ratings?

I was guessing scammed == scam_reports (i.e. total unique users who report scamming) Huh



<snip>

This kind of sucks. Any suggestions on how to improve it? I'd prefer to avoid looping through all of a user's ratings because this is much slower than just using aggregates and single-row queries, but this server can probably handle it if necessary.

I can't comment on the code. But I think it would be better if members only received a negative trust rating after two scam reports.  Some people are providing negative reports based on personal views, differences of opinion, or "tit-for-tat".  By requiring two reports removes some of these subjective ratings. Real scammers usually get multiple reports at once so wont be affected by this change. That's just my 0.02 btc.
theymos
Administrator
Legendary
*
Offline Offline

Activity: 3542
Merit: 6320


View Profile
November 19, 2013, 03:15:30 AM
 #4

I was guessing scammed == scam_reports (i.e. total unique users who report scamming) Huh

Right. I fixed it.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
jackjack
Legendary
*
Offline Offline

Activity: 1134
Merit: 1025


May Bitcoin be touched by his Noodly Appendage


View Profile
November 19, 2013, 08:09:25 AM
 #5

So the total scammed amount doesn't have any impact on the trust score?
Also if you don't want to go through all the ratings, then just add a column (or more) in the profile table and update it (them) each time someone adds a rating to the user

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
theymos
Administrator
Legendary
*
Offline Offline

Activity: 3542
Merit: 6320


View Profile
November 19, 2013, 01:06:02 PM
 #6

Also if you don't want to go through all the ratings, then just add a column (or more) in the profile table and update it (them) each time someone adds a rating to the user

A column of what? Trust scores depend on the viewer's trust network, so it can't be cached globally.

So the total scammed amount doesn't have any impact on the trust score?

No.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
jackjack
Legendary
*
Offline Offline

Activity: 1134
Merit: 1025


May Bitcoin be touched by his Noodly Appendage


View Profile
November 19, 2013, 03:37:47 PM
 #7

Also if you don't want to go through all the ratings, then just add a column (or more) in the profile table and update it (them) each time someone adds a rating to the user

A column of what? Trust scores depend on the viewer's trust network, so it can't be cached globally.
I meant a column in the DB, but yeah I forgot it depends on the trust network...

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
WEB slicer
Legendary
*
Offline Offline

Activity: 1120
Merit: 1001


1NF4xXDDpMVmeazJxJDLrFxuJrCAT7CB1b


View Profile
November 24, 2013, 05:02:01 AM
Last edit: November 24, 2013, 05:24:21 AM by WEB slicer
 #8

i would like to know why i have 19 good trust vs 1 bad comment and my feedback score is -6 with a WARNING under my name.

whatever the reason is, that definitely needs to be fixed. one persons feedback should not outweigh everybody else's. everybody's feedback should be weighed the same. look how ebay does it. if you have 10 positives and 1 negative your score is at 9. thats how it should be done. one bad feedback that was given when no scam ever took place certain does not warrant a WARNING under a users name. moderators also need to be active controlling spam/fake/abusive feedback. if you leave the community to govern itself it will always be a disaster.


███
███
███
███
███
███
███
███
███
███
███
███



░░░░░░░░░░░░░░░░░░▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
░░░░░░░░░░░░░░███████████████████████
░░░░░░░░░░███████████████████████████████
░░░░░░░░███████████████████████████████████
░░░░░░███████████████████████████████████████
░░░░███████████████████████████████████████████
░░░████████████████▀▀░░░░░░░░░░▀▀███████████████
░░░██████████████░░░░░░░░░░░░░░░░░░▀████████████
░░████████████▀░░░░░░░░░░░░░░░░░░░░░░░████████
░░███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░███
░░██████████
░░██████████
░░██████████
░░░██████████
░░░████████████░
░░░░█████████████████████████████████████
░░░░░▀███████████████████████████████████
░░░░░░░▀▀▀▀▀█████████████████████████████
░░░░░▄▄██████████████████████████████████
░░░░█████████████████████████████████████
░░░████████████
░░███████████
░██████████▌
▐█████████▌
▐█████████▌░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░███
▐██████████▌░░░░░░░░░░░░░░░░░░░░░░░░░░░░░█████
░███████████▌░░░░░░░░░░░░░░░░░░░░░░░░░░█████████
░▐████████████▌░░░░░░░░░░░░░░░░░░░░░█████████████
░░▐███████████████▄▄▄░░░░░░░░░░▄▄████████████████
░░░░███████████████████████████████████████████
░░░░░░███████████████████████████████████████
░░░░░░░░░████████████████████████████████
░░░░░░░░░░░░░█████████████████████████
░░░░░░░░░░░░░░░░░▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

███
███
███
███
███
███
███
███
███
███
███
███

███
███
███
███
███
███
███
███
███
███
███
███

███
███



███
███



███
███
*
!
#
HOMEPAGE
ANNOUNCEMENT
JOIN US ON SLACK
deepceleron
Legendary
*
Offline Offline

Activity: 1512
Merit: 1000



View Profile WWW
November 24, 2013, 05:47:33 AM
 #9

Something to consider is how scammers work.

First case:
1. build reputation
2. steal, trick, lie

Then there is the other:
1. Go in the noob forum and start dumping scams, phishing, paypal offers immediately. Lots of sock puppet "thanks", "got my payment" responses first.


The trust system should be able to quickly warn of trust-builder-gone-rogue-which-was-the-plan-all-along quickly. Recent negatives should have a weighted and multiplying effect. If somebody says "sorry suckers, I'm off with all your bitcoins!", their feedback shouldn't stay positive while they scam dozens more.

The first change is to put the trust feedback list in reverse chronological order, so that we can immediately see what the person's been doing. I also don't need to have feedback hidden because I never "trusted" the responder.

Along with this the trust needs both positive and negative showing on posts, not a total score. A single negative is enough that someone should look.

The second is to remove the importance of trust authorities, if someone is a mod, they should be moderating instead of handing out mega-trust. Maybe we can individually pick who's feedback is more important, but that's a lot of metas for users to manage. One user = one rating. Multiple unscored messages or interactions should be able to be left, but only by rule if multiple transactions happened.

The third is to identify false sock webs of trust. Some good AI needed to identify circles of +1s that have no community surrounding them. New users should not be able to leave positives for a while. They can still report that they were dumb noobs and got scammed, but can't prop up their sock puppets.
deepceleron
Legendary
*
Offline Offline

Activity: 1512
Merit: 1000



View Profile WWW
November 24, 2013, 05:54:17 AM
 #10

A final idea, give users two ratings:

1. Financial transaction feedback and scam reports
2. Thumbs up or down on message contents

Too many people are abusing the trust system for posters who's opinions they don't like - give them another outlet to thank posters or indicate that someone is a spamming windbag.
theymos
Administrator
Legendary
*
Offline Offline

Activity: 3542
Merit: 6320


View Profile
November 24, 2013, 06:08:56 AM
 #11

The first change is to put the trust feedback list in reverse chronological order, so that we can immediately see what the person's been doing.

It is...

Along with this the trust needs both positive and negative showing on posts

It does... The second number (orange when non-zero) is the number of scam reports.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
cooldgamer
Legendary
*
Offline Offline

Activity: 1218
Merit: 1003


We are the champions of the night


View Profile WWW
November 24, 2013, 06:18:49 AM
 #12

A final idea, give users two ratings:

1. Financial transaction feedback and scam reports
2. Thumbs up or down on message contents

Too many people are abusing the trust system for posters who's opinions they don't like - give them another outlet to thank posters or indicate that someone is a spamming windbag.
This.. this so much.  Seen so many people with bad rep that are good when it comes to trading, but have unpopular opinions.

jackjack
Legendary
*
Offline Offline

Activity: 1134
Merit: 1025


May Bitcoin be touched by his Noodly Appendage


View Profile
November 24, 2013, 11:20:30 AM
 #13

Along with this the trust needs both positive and negative showing on posts

It does... The second number (orange when non-zero) is the number of scam reports.
Do you mean "the number of negative reports"? Because AFAIK reports with 0 risked BTC are counted in the second number

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
DiamondCardz
Legendary
*
Offline Offline

Activity: 1078
Merit: 1028


View Profile WWW
November 24, 2013, 02:54:55 PM
 #14

If there are more collective negative trust ratings from different people, are additional points removed due to that?

So, for instance, 1 report is added for -5 score, another report is added for -5 score, because there are 2 reports an extra -1 score is added.

I'm dabbling in Bitcointalk again - I won't be making trades with people. If I try to trade with you, ask for a signature from my address 171717... which I have had control of since about 2015. If I can't provide it, I might have been hacked.
Kouye
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250


Cuddling, censored, unicorn-shaped troll.


View Profile
November 24, 2013, 03:15:04 PM
 #15

If there are more collective negative trust ratings from different people, are additional points removed due to that?

So, for instance, 1 report is added for -5 score, another report is added for -5 score, because there are 2 reports an extra -1 score is added.

I'd rather have have a -10 for root trust list, -5 for depth=1, etc.

I initially thought storing the rating of everyone in DB in regards to Default Trust might be a good solution, but it would require updating the whole DB every time someone in that Default trust list adds someone to his web / posts a new rating.

Then it would just require dynamic recomputing scores for people not using default trust.
Not sure if that 'd help.

[OVER] RIDDLES 2nd edition --- this was claimed. Look out for 3rd edition!
I won't ever ask for a loan nor offer any escrow service. If I do, please consider my account as hacked.
whiskers75
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Doesn't use these forums that often.


View Profile
November 24, 2013, 03:28:40 PM
 #16

Killer feature: Show 'responses to untrusted feedback'
For example, looking at my trust list, Magazine and just_me have both retaliated at me for neg-trusting them.
It would be awesome if you could show the feedback I sent to them next to this.

Elastic.pw Elastic - The Decentralized Supercomputer
ELASTIC ANNOUNCEMENT THREAD | ELASTIC SLACK | ELASTIC FORUM
Kouye
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250


Cuddling, censored, unicorn-shaped troll.


View Profile
January 23, 2014, 12:13:21 AM
Last edit: January 23, 2014, 12:29:18 AM by Kouye
 #17

I'm sorry to bump such an old thread, but I think I made up my mind on what would be the best trust system in my opinion.
It's very close to the current one, except:

=> There is no default trust list
=> The only feedback you can give publicly is a negative one (which lowers trust rating of recipient by 0.1 point, and is visible by everyone)
=> The positive feedback is only personal, and each one you give to someone grants him a +5 points (only on your own screen)
=> Nobody can check your positive trust list
=> if someone in your own, private, positive trust list left a negative feedback on someone else, it lowers the rep of this someone else by 2.5 points, instead of 0.1

So, basically, when you register, everyone will be red and taged with "be careful!".
Only the people you really trust and put in your own private, trust list, might become green.
And adding people to your own trust list will progressively help making the difference between a "-0.3" guy and a "-18.9" one.

No more "loan/trade for trust".
You trust who you want, community just issues the warnings.

[OVER] RIDDLES 2nd edition --- this was claimed. Look out for 3rd edition!
I won't ever ask for a loan nor offer any escrow service. If I do, please consider my account as hacked.
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!