feat: Add proof delegation system for Boundless Signal campaign #961
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Users running Boundless provers with dedicated wallets cannot claim campaign points because their prover wallet differs from their main wallet connected to social profiles.
Solution
Add a proof delegation system that allows provers to securely delegate their proof-solving accreditation to another address using EIP-712 signatures.
Features
boundless account delegate-proofs
commandscripts/delegate-proofs.js
for easy delegation (optional)Security
Usage
Files Changed
contracts/src/ProofDelegation.sol
- Core delegation contractcrates/boundless-cli/src/bin/boundless.rs
- CLI integrationcrates/boundless-market/src/deployments.rs
- Optional deployment configscripts/delegate-proofs.js
- User-friendly delegation scriptscripts/deploy.js
- Deployment scriptCONTRIBUTION_PROOF_DELEGATION.md
- Comprehensive documentationTesting
Campaign Integration
The campaign system can query
ProofDelegation.getProverTarget(prover)
to get the delegated address for any prover, then credit points to the delegated address instead of the prover address.Important: Campaign Duplication Prevention Required
Problem Identified
The delegation system could create a duplication exploit where users who have already claimed campaign points could delegate their prover wallet and potentially claim rewards again on their delegated address.
Example Scenario:
Risk: 0xMain could potentially claim Silver/Gold again using the same proofs
Recommended Solution for Campaign Backend:
Point Recalculation:
gBerry