Hello everyone! Here’s the two-pager as promised. We really appreciate your feedback!
Virtual people parties on the Internet Computer
Determining whether supposed users are actual human beings benefits the Internet Computer ecosystem in multiple ways: For instance, social media platforms provide more meaningful interactions if the content is provided by real humans, decentralized governance processes benefit from power being distributed more evenly across many voters, and the bootstrapping of token economies becomes fairer if tokens can be distributed evenly to individuals.
Virtual people parties establish the personhood of otherwise pseudonymous identities. In a virtual people party, a small group of users validates each others’ personhood in a process that is fast, easy, and anonymous! Validated users may then achieve benefits such as increased voting power in the governance system or additional capabilities in social media dapps.
Each people party event takes place at one specific point in time; there will be different events for users in different time zones. Users register for a people party by committing to a specific location that they will visit during the duration of the party. When the party begins, the people party dapp assigns all users into groups of 6 people each, and creates a shared video session for each group, as well as a random pseudonym for each user. In each session, the participants have to prove that they are at the location they committed to. The following process is performed for each user, one by one: One user (the “prover”) shows the video captured with their phone’s main camera (i.e., they never show their face, only their surroundings) and reacts to requests from other users (the “verifiers”). The verifiers approve or deny validation depending on whether they are convinced that the prover showed them a live view of the committed location.
To ensure that one user can only participate in one group, it is required that each user must join from a distinct location. To disincentivize bots from registering with the people party canister, each user must deposit 1 ICP for the duration of the party; this deposit can be withdrawn after the party is over and if the user does not want to participate in subsequent events.
People parties and validated personhood benefits different parts of the IC ecosystem:
- Validated users receive increased voting power and thereby increased voting rewards. Dapps running on the IC, such as social network platforms, may provide extended capabilities to accounts held by validated users.
- Dapps on the IC can differentiate between humans and (potential) bots, enabling them to prioritize content created by real humans over bots.
- Decentralization is improved by providing additional voting power to validated persons, compared with a purely stake-based distribution. Allowing validated persons to act as pseudonymous node providers will also improve decentralization on the infrastructure layer.
The core component is the “people party” canister smart contract that coordinates the people parties and tracks the results. The canister allows users to register for a given party while committing to a location (ensuring that the locations of different users are sufficiently far apart) and to join a group for the party they registered for (ensuring a random assignment of users to groups). The canister orchestrates the calls, determining the order in which the users validate each other’s claims, and counts the votes. The canister keeps track of which users have been validated successfully, and allows the user to share the information about the successful validation with other dapps. The canister also informs the NNS about the neurons that are supposed to be boosted.
The frontend of the people party dapp is served by the canister into the user’s web browser. It uses WebRTC to transmit the video between the client devices.
As most users will be on mobile networks, STUN and TURN servers will be needed to relay traffic. Those servers will initially be hosted by the DFINITY Foundation, but note that they do not need to be trusted as all traffic routed through them is end-to-end encrypted in WebRTC.
Risks and mitigation
There are multiple risks associated with the people party concept.
- Registration by bots: As long as not too many bots are registered, those will end up in validation calls with real users. At least in the beginning, we consider it unlikely that bots will successfully masquerade as an actual person; of course, we will have to improve the validation process over time for this to remain true. So those bots will not be validated. Registering many bots is disincentivized by the ICP deposit; this can even be made more effective by potentially slashing a fraction in the case the validation of a user failed. The risk of being attacked by bots will have to be re-evaluated over time.
- Insufficient participation: If too few real users participate, the people party system will not provide the expected benefit in improving decentralization of the IC, and low participation will also make it easier for bots to undermine the system. To mitigate this risk, we have to advertise the concept to an as-large-as-possible user base, and incentivize continuous involvement by providing sufficient rewards (such as the voting power boost).
- Inappropriate content shown in video by malicious users: This is hard to prevent entirely, since the video streams are sent end-to-end encrypted between end devices. The prover’s streaming will stop after sufficiently many verifiers have voted. If this turns out to be a problem, we can provide a button to quickly hide a video that shows inappropriate content.