Skip to content

Drop ID too long to provoke collisions #163

@roeslpa

Description

@roeslpa

Currently Drop IDs of 256 Bit are used. That results in 2^256 Drop IDs, which is much too much even if the whole world uses one drop server. Even the smallest range of Drop IDs (64 Bit) is too long. I recommend to use fewer than 20 Bit for the largest range, depending on how many users we expect per server. So let us:

  1. Define how many users can use one (drop+block+accounting) server
    • Can an admin ( @knopwob / @thechauffeur ) estimate the maximum users depending on the number/size of drop/block requests?!
    • Example: max. 2^20 users per server
  2. |DropID| = log_2(number of users per server)
    • Four ranges of anonymity level (like it is currently implemented in the Android client)
    • Assumption: 1/4 of the users select one range
    • Example:
      1. First range 9 Bit => 2^9 Drop IDs, 2^18 user => 512 (+64 (+8 (+1))) users per ID*
      2. Second range 12 Bit => 2^12 Drop IDs, 2^18 user => 64 (+8 (+1)) users per ID
      3. Third range 15 Bit => 2^15 Drop IDs, 2^18 user => 8 (+1) users per ID
      4. Fourth range 18 Bit => 2^18 Drop IDs, 2^18 user => 1 user per ID
      5. Out of range 20 Bit => e.g. incrementing 2^19 Drop IDs with leading 1 to avoid collisions for users who do not want to be anonymous

*This sounds like much traffic, but the respective user chose to gain the maximal anonymity and since i. I guess that less than 1/4 of the users will select this range and ii. this number is only reached when 2^20 users use this server. So I think we could even use fewer Bits for this range.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions