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

proposal: Gridcoin Account Association #170

Closed
tomasbrod opened this issue Oct 11, 2017 · 1 comment
Closed

proposal: Gridcoin Account Association #170

tomasbrod opened this issue Oct 11, 2017 · 1 comment

Comments

@tomasbrod
Copy link
Member

tomasbrod commented Oct 11, 2017

I propose to extend the "Neural" "Network" or Project Witness to also verify ownership of project account and secure the association between BOINC and Gridcoin accounts. It wound work best with Dynamic Witness Participation proposal.

Users wishing to associate (boinc) project account to his reward key will follow this procedure:

  1. Generate Gridcoin reward key in the wallet
  2. Add Gridcoin public key to his account on the boinc project
  3. Send an association request transaction
  4. Wait for confirmation by NN Witness
  5. (optional) revert modifications to boinc profile

The key string can be added to existing field on the boinc account. No modification to boinc server necessary. Fields that can contain the key are:

  • User name
  • website url
  • profile
  • custom field

The association request transaction (ARTx) is sent to predetermined burn address with appropriate burn amount and the following data (in hashBoinc or OP_RETURN):

  • Reward public key
  • project name or gridcoin project id
  • project internal Account ID
  • Cross Project ID (optional)

The ARTx should be included in block as any normal transaction.

NN Witness will load all pending ARTxes and proceed to verify that the user profile on the selected project really contains the expected reward key in one of the allowed fields. If all is in order, it then includes this information in the stats block (superblock).

Requests that are already confirmed or are too old must be ignored. There can be only limited number of account associations in stats block and for consensus reason must be ordered by descending burn amount then ascending account ID. Requests that don't fit should be dropped. This associations are part of the consensus hash and are voted on according to DWP or NN rules.

The Burn amount can be added to reward for producing or voting for this Stats block. The fee is necessary to prevent request spam and is expected to remain very low.

Once the registration is included in the stats block, it is considered valid. The key string then can be removed from the project page and owner is allowed to claim boinc rewards.

This proposal is agnostic to CPIDs or Account IDs. If CPIDs are still used, this registration can be done for any one of whitelisted projects with the same CPID. If account IDs are used, it must be done for each project separately (key should be the same).

An upside of using UserID over CPID is that user rewards wouldn't be interrupted by a CPID change (either accidental or malicious). A disadvantage of UserID is that we'd need to advertise a beacon for each individual project.

@tomasbrod tomasbrod added this to After Sharedrop in Sharedrop-prj Oct 20, 2017
@tomasbrod tomasbrod changed the title proposal: Secure Account Association proposal: Gridcoin Account Association Nov 25, 2017
@tomasbrod
Copy link
Member Author

I renamed this scheme to Grodcoin AA, instead of Secure AA. I have no right to claim that proposed system is secure, so it is inappropriate to have Secure in title.
On side note: there is secure hash algorithm...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Sharedrop-prj
After Sharedrop
Development

No branches or pull requests

2 participants