2.7 KiB
2.7 KiB
Overview
The Verifier contract provides a decentralized content verification mechanism on ChunkNet, allowing multiple validators to approve or reject content through a multi-signature process. It enables trustless verification of digital content by requiring a predefined number of signatures within a specified time window.
Interface
| Function | Params | Description |
|---|---|---|
requestVerification |
contentHash: Unique content identifierrequiredSignatures: Minimum validators neededvalidators: List of validator addresses |
Initiate a new content verification request |
signVerification |
contentHash: Content to verifyapproved: Validator's vote |
Allow validators to sign and vote on content |
Events
| Event | Parameters | Description |
|---|---|---|
VerificationRequested |
contentHashrequesterrequiredSignatures |
Triggered when a new verification is initiated |
ValidatorSigned |
contentHashvalidatorapproved |
Emitted when a validator signs a verification request |
VerificationCompleted |
contentHashstatus |
Signals final verification outcome |
Storage Layout
verificationRequests: Maps content hashes to verification request detailsvalidatorSignatures: Tracks which validators have signed for a specific content hashMIN_VALIDATORS: Minimum required validators (3)MAX_VALIDATORS: Maximum allowed validators (10)VERIFICATION_TIMEOUT: Request expiration period (1 week)
Access Control
requestVerification: Open to any addresssignVerification: Restricted to predefined validators- Contract inherits OpenZeppelin's
Ownablefor administrative functions
Security Considerations
- Non-reentrant function modifiers prevent recursive attacks
- Strict validation of validator addresses and signature counts
- Timeout mechanism prevents indefinite verification requests
- No duplicate validators allowed in a single request
- Prevents re-signing or multiple votes per validator
Deployment
ChunkNet Deployment Parameters
- RPC URL: https://rpc.chunknet.org
- Chain ID: 214562
- Recommended Deployment Command:
bash
forge create Verifier
--rpc-url https://rpc.chunknet.org
--private-key $DEPLOYER_PRIVATE_KEY
Testing
Test Cases
- Verify content verification request creation
- Test validator signature workflow
- Validate timeout mechanism
- Check signature count thresholds
- Ensure no duplicate validators
- Test verification status transitions
Recommended Test Coverage
- Unit tests for each contract function
- Integration tests with mock validators
- Fuzz testing for edge cases
- Gas optimization analysis