A usable reputation web service
With the rise of social networking, the advent of provable identities, and ways to authorize access, there is a growing need for a reputation system to recognize good content and good people.
I have been working on this and my principles have been that the system needs to:
be simple and available as an API,
be decentralized and accept other systems to participate,
contain security measures that prevent gaming and abuse,
be transparent to users so that you know the hows and whys of the score (the correct level needs to be found here to prevent gaming)
accept reputation for any provable identity (including other systems),
collect explicit scoring from users,
implicitly derive reputation of identities by observing current and past behavior,
associate multiple identities. This means that http://alice.example.com should be able to associate her good karma with her secret http://timerider.example.org identity. This association must be kept hidden for others,
recognize different categories. A person may be highly rated in some areas, and not in others,
use a voting model that matches the real world. This model must be limited and untraceable between all parties. Positive behavior should be rewarded.
APIs needed:
Signup. A user signs up by proving to the system that she own a URL. In exchange, the system creates some shared secret that can be used to authenticate (and possibly encrypt) API requests and responses.
Bind. Binds an identity to a user’s existing identity.
Lookup. Looks up the reputation for a specific category. The set of categories is intentionally kept small for simplicity.
Vote. Submits a reputational vote for a user and a specific category.
Some security related APIs with a simple way to handle the life cycle of keys and trust.
There could be some possible APIs for user’s profile management, and perhaps statistics.
For the back-end, there are other APIs that needs to be implemented to handle decentralized sharing and calculation of scores. More on that in a later post.



Reader Comments (2)
Nice blog.