Ideas to solve sibyl attack problem for an identity proof system.

Friendship, location-proof, staking and face recognition.

Peter Porobov
Upala Digital Identity
9 min readFeb 20, 2019

--

Artwork by Maxim Zhestkov

If you missed the previous posts. I’m developing a new identity proof system. It’s purpose is to distinguish people from bots and clones (people with multiple IDs). It is based on six degrees of separation idea. It is a huge goal. To get there I started a series of posts, showing my development process. I will then transform these posts into whitepaper. I fund myself — buy ads to keep me going!

Forget the limits of resources, time and morale! (don’t worry, the video is safe for work)

What is a sibyl attack problem

We want every ID to represent a unique human. But in a voluntary system it is very hard to notice anyone splitting into two. Not everybody is in the system. So it is impossible to notice a extra ID popping out of nowhere.

Markus Knecht commented on my previous post and gave this simple explanation of the sibyl problem.

The following situations are completely indistinguishable:

1: Two people living in the same flat: one is out in the morning and home in the afternoon, the other is out in the afternoon and home in the morning meeting different people when they are out but never the same ones and they never invite other people to their home.

2: A single person with two phones each with another account going out in the morning with phone 1 and in the afternoon with phone 2 and does never meet the same people in the morning as in the afternoon and does never invite people into its home.

emojione.com

Existing solutions

The only working solution to sibyl problem for now is a state ID.

uPort, Akasha, ERC-725, keybase, pgp/gpg, Web Of Trust, Bouillon project don’t provide uniqueness. These are either for identity storage or for trust networks or related. But trust is not uniqueness. In many cases it is OK to trust two IDs and don’t care, that they belong to the same person.

I came across only two projects, which are trying to provide uniqueness. These are Bright ID and Pseudonim pairs. Bright ID focuses on network analysis. Pseudonim pairs focuses on random pairs validation. I think there should be another solution.

I must say I looked through the documentation very quickly, only reading titles. I’m keeping myself away from papers to preserve my fresh and “naive” view and share it. Please, authors forgive me if I’m wrong about your projects.

In this post I’m throwing a bit more pieces to the sibyl-protection puzzle in the form of ideas and questions. I haven’t seen these ideas anywhere, so I hope it will be helpful.

Ideas

I bet on friendship, location-proof, staking and face recognition. All ideas are grouped into sections:

  • Locals and friends
  • Initiatives
  • Devices and algorithms

Important keywords are outlined. Scroll to something that catches your attention and share your thoughts.

Locals and friends

I like to imagine collaborating friends. I believe we should benefit from the trust between them. Imagine small groups, communities, villages, multi-storied houses, schools, campuses. Let’s start replicating social connections from there.

State ID, issuing own IDs

We can “subscribe” our friends by typing in their state ID on our phone. The app will encrypt it, search for duplicates and create a new record, if there were no duplicates.

State ID is a unique reliable number. But there are drawbacks. The most important one — not everyone in the world has a reliable ID.

I refused the idea of using state ID but left it here anyway. It is the only working solution - there should be a clue.

FOAM

FOAM. Proof of location, space-time and movement.

FOAM is a blockchain-based location service. Unlike GPS it will allow to reliably prove device location. With FOAM released we will be able to prove a real-world handshake.

We can use it for additional overhead for bots. Here are some ideas:

  • Handshakes app may ask random people for a meeting. Everyone confirms the number of people they see and their photos.
  • Every time you use the app, your location gets recorded (and encrypted) for further analysis.
  • The app may require an inviter and invitee to be at the same location.
  • We can ask an ID to be at a certain place at a certain time. Space-time overhead. Ask clone suspects to be at different places at the same time.
  • Proof of movement. Move together for 1 km to create an account (Human runs).
  • Until FOAM is in development, we can take pictures of known landmarks with current block hash to confirm location.

Friends can easily meet each other, bots and clones can’t.

Two-to-one (peer-to-peers). Triad — is the building block.

What if we use a triad of nodes instead of a single node as the smallest indivisible part of the system? What if in order to register an ID the app would require two existing IDs to witness the new one (confirm photo, ID, humanness, location, etc.).

  • It is simple to split oneself into two. Triads will require a more sophisticated conspiracy.
  • A triad could form a police unit (blade runners), which checks if a person or other triad exists.
  • Triads could be used to start a new communities (clusters).
  • A triad could share responsibility for life — chose your friends wisely.
  • No, “third person” is a random set of validators from around the world which will stake on a new connection.

Friends can easily form triads — bots and clones cannot.

Initiatives

Vote is cheaper than fraud

There is probably no solution to sibyl problem in a voluntary identification system. Meaning the overall accuracy will be significantly lower than that of a state ID. But we can substitute accuracy with probability. Every ID will have a probability of uniqueness.

Keeping sibyl problem in mind how would you calculate this probability? Analyzing connection is not enough or too complicated. We have to add up some game theoretic mechanics. I can’t foresee right now will it be possible to measure a person’s uniqueness or average uniqueness of the whole system.

In any case the system will be useful for services where vote is cheaper than fraud. Vote price is a threshold. 80% is not enough for government elections, but good enough for social networks or some minor voting.

UBI. A pyramid-like scheme. Laggards sponsor early birds.

We can introduce a commission a joining the network. Let it be very low. Participants invite others and form a pyramid. The payments from newcomers are split up the chain of handshakes. This way early birds get return of investment (probably huge). Those in the middle join for free. And it is only the laggard who have to pay for the service. In other words early birds receive universal basic income (UBI).

Horizontal connections. Reputation. Stake.

In the scheme above there are no horizontal connections, no reputation. Even worse it endorses to invite profiteers who will invite even more profiteers. But we’d rather endorse bringing friends and trust to the network.

Probably mechanics of “Laggards sponsor early birds” could be used to stake on “humanness” or trustworthiness of anybody in the system (incentivize horizontal connections). The earlier the stake, the higher the returns.

Investors, buyers, advertisers

We can try to get rid of commission by introducing some external source of money. We can:

  • sell uniqueness data.
  • use affiliate marketing campaigns to drive growth.
  • establish a fund to bootstrap further growth (big companies, governments?).

Devices and algorithms

Face recognition

It is impossible to search a face with a perfect match in a database. But it is possible to find similar faces. Here try searching my photo. The photos with score above 0.65 are mine! I’m impressed, scared and … embarrassed. This is brand new company which appeared at 12th of February 2019. The service searches people by their photo in Russian social network vk.com and does a really good job (so good that vk.com is already suing them).

Try search me — http://searchface.ru/

Here is how we can use face recognition:

  • Take a picture of a new user through the 6handshakes app.
  • The app stores the photo on user’s device and uploads it to some open storage, encrypted with a special key. The key is generated in ceremony like ZCash’s — so that nobody knows it.
  • The key is available to the face recognition algorithm. The algorithm searches for clones suspects.
  • If there is a suspected clone, the clone and our new user are asked to upload a new photo within a determined time interval (with current block hash and proof of location by FOAM).
  • Random validators confirm they see two different (maybe very similar) people at different locations.

Devices

We can introduce a notary or a validator entity, equipped with some device or app on their phone (a smart phone is a special equipment too — you are lucky to have it).

The same way FOAM is planning to use beacons (LoRa Wifi devices) we can incentives people to buy fingerprints and eye scanners, face-recognition devices, DNA-tests, chip implanters, passport printers, etc. Notaries (or validators) will earn money for building, updating or healing the network (register people and hunt replicants for bounties!)

It does matter who you are, where you are and who you are friends with

At this point I think I have a draft solution to sibyl problem. Started to write a more detailed description.

One of my twins after a successful attack — http://searchface.ru/

UPDT: A solution to sibyl attack problem.

Clap and support

Thank you for reading! I can see the stats! The bare fact that you are here is very motivating. If you would like to help more, read my other articles, share your thoughts. And don’t forget to buy my ads — this is how I make my own funding. You can benefit too!

--

--