Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update EIP-4973: Define initial criteria of a privacy considerations section #5686

Closed
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion EIPS/eip-4973.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,25 @@ You can find an implementation of this standard in [../assets/eip-4973](../asset

## Security Considerations

There are no security considerations related directly to the implementation of this standard.
### Privacy Considerations

#### Storing Personally Identifiable Information (PII) on-chain presents privacy risks
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

before we mention privacy risk, we'd have to define privacy as e.g. "violation of contextual integrity." But then again, I think it must not be within the scope of eip4973 but an informal EIP document.


Data stored within an account-bound token often times are claims which are directly associated with an account. In general, it's a privacy concern to directly store PII related to a person on-chain or to link data directly to an identifier like an Ethereum account. Doing so would make it impossible for a user to invoke their right to be forgotten which is necessary under GDPR and could place dApp developers under scrutiny if they do so. Even in the case where data is generally regarded as public knowledge, public attributes contained in an account-bound token shouldn't be published on chain as this can lead unexpected behavior that could leak user behavior or insights which can be used to later harm the controller of the account. Instead, dApp developers should consider providing an opaque URL to an off chain storage solution so that the data is not published immutably on chain so that the claim can either be updated, refuted, or forgotten in compliance with GDPR.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section should be entirely removed:

  • We're assuming GDPR and "right to be forgotten" regime (EU), but EIP readers/users are international. Generally, it is not our place to tell people what to do.

It is a good idea to suggest putting a claim off-chain to a mutable data source:

Instead, dApp developers should consider providing an opaque URL to an off chain storage solution so that the data is not published immutably on chain so that the claim can either be updated, refuted, or forgotten in compliance with GDPR.

We should leave this in but rephrase it away from GDPR-motivated framing.


Additionally, the data contained in the off-chain storage provider requires some sort of costs in order to store the data and as such storage providers that are storing these account bound tokens may be incentivized to store this data on behalf of users for free in exchange for the right to process this data. In general, this practice is likely deceptive in nature and should be discouraged. Instead dApp developers issuing account bound tokens should look to encrypt this data at rest. It's recommended that the keys used to perform this are derived or managed by the controller of the ethereum account that the account bound token is being issued to rather than the issuer themselves.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove entire paragraph.


#### Requiring authorization of data before releasing it to third-party providers

Furthermore, the off chain storage solution should perform a consent check which has been authorized by the controller of the account before revealing the data to a third party data processor. This check should perform some basic authorization checks which ensure that the controller of the account has authorized the third party data processor access to the data.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove


#### Identifier-based correlation of attributes stored in various account-bound tokens

Since account based tokens shared a strongly correlating identifier, the ethereum account, dApp developers should be aware of the correlation that's incurred by issuing attributes to the same ethereum account even if they are not all within the same account bound token. Multiple account bound tokens that are linked to the same long lived ethereum identifier will enable the possibility that behavioral data (e.g. commonly visiting a location if multiple location credentials are linked to the ethereum account) or inferential data (inferring a users time zone based on when they commonly use their ethereum account) can be used to deduce further correlation of a user in a way that the user did not consent to. In order to prevent these concerns, dApp developers should leverage the techniques of data minimization so that only the minimal necessary information is included in the account bound token.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove: this isn't isolated to eip4973 and is generally true for any interaction with Ethereum


#### Validity of account bound tokens for data processors

Due to the inherent nature of the claims made in a particular attribute of an account bound token, it should not be assumed that the account bound token is considered valid or authentic unless the data processor trusts the issuer and their processes for validating the data of the account bound token. Data processors are encouraged to reject account bound tokens that produce privacy violations or that enable bad privacy practices based on the reputation of the issuer of the account bound token.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove


## Copyright

Expand Down