gridcoin-community / Gridcoin-Tasks

Gridcoin community tasks repository
https://gridcoin.us
MIT License
24 stars 5 forks source link

proposal: Gridcoin Account Association #170

Closed tomasbrod closed 4 years ago

tomasbrod commented 6 years ago

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:

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

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 commented 6 years ago

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...