Decentralising community trust. Aiming to solve the problem of digital trust and identification by relying on the most reliable metric: human relationships. Users can validate people they know, creating a web of trust that can be queried to form new networks and test legitimacy.
This project aims to create a web of trust on chain, where instead of validators or other parties creating universal verification (e.g. verifying to anyone that a given user has a given credential), the trust is personal between people and based on human relationships. A given user is able to say that they trust another in different ways. They can trust the authenticity of another user, that is to declare they are a real person (Proof of Personhood). This may be because they have met them in real life at an event such as a hackathon. They can also trust whether the user is truthful and reliable in their judgement. This may be because they are colleagues or friends and know them to be trustworthy. Trusting a user doesn't create any sort of "reputation" or "vouch", only posting on chain the fact that I, User A, trust User B to some extent. Once a user has a direct network, they can expand their network of trusted users by looking at the connections of their own connections. For example, if User A trusts User B to be real and trustworthy, and User B does the same for User C, User A can trust that User C is almost definitely real, and can make a judgement about whether they fully or partially trust them (or maybe not at all). The project also facilitates making judgements from combining partial trust - if 3 parties User A believes are real but potentially aren't trustworthy agree that User B is real and completely trustworthy, User A can be sure that User B is almost definitely real, and can again make a judgement about how trustworthy they are. The onchain implementation stores trusted parties for each user in a contract, allowing them to look up and update their trusts. A webapp allows users to determine whether other users are within a certain degree of trust of their network. For the scope of this hackathon all networks are public, although it could be possible to implement a ZK approach in the future.
The frontend uses React/Typescript on Next.js with a bespoke UI component and interaction system. The interface is designed for mobile first. The trust system is stored on chain in a Solidity contract and uses an offchain computation to find paths between users, which are validated on chain before being accepted.