almonit / almonit-plugin

ENS+IPFS Firefox plugin by Almonit
http://almonit.club
MIT License
19 stars 7 forks source link

Privacy preserving metrics: first discussion #1

Open almonit-old opened 5 years ago

almonit-old commented 5 years ago

For projects to develop they need users feedback. One way to get it is metrics.

Metrics are also important for the social aspects of projects. For example, Almonit users want to know which websites are popular in the Almonit community.

However, it is difficult to collect user metrics without violating privacy. Privacy concerns have three elements here.

  1. Communication. If users send metrics to Almonit server, they are exposed as Almonit users.
  2. Data encryption and processing. Users surfing habits are exposed if data is not encrypted. If data is encrypted, it is hard for Almonit to calculate statistics.
  3. Statistics publishing. How to publish on-going statistics while preserving the data that each user contributed to it?

In the first version of the plugin Almonit will handle privacy as following. Users will send their metrics to the Almonit server every certain period of time.

This model is faulty since it requires trust in Almonit. Below are initial thoughts of how to create a trustless private metrics.

  1. Communication. The trivial way to solve it is using Tor or i2p. Hoever, this is difficult to do with a browser plugin. Another option is Bitcoin style privacy: messages are broadcasted to a p2p network of Almonit users (based on webRTC). The messages are encrypted to Almonit public key, without information on the sender. An issue with this proposal is that this is easy for sybill attacks or other false metric information.

  2. Data encryption and processing. This is a tough nut. Can this be tackled using tools like zk-snarks or multi-party computation?

  3. Statistics publishing. Another tough nut. Perhaps differential privacy can help here.

Reliable privacy preserving metrics are long way down the road, but it's an interesting problem to think of. A solution to this problem could be applied in almost every modern project.