A decentralized smart contract built on Stacks blockchain using Clarity for verifying and tracking the authenticity of AI-generated content through a multi-verifier consensus system.
This contract provides a trustless platform where authorized verifiers can validate AI-generated content, assign confidence scores, and build a reputation-based verification ecosystem. It ensures content authenticity through cryptographic hashing and multi-party validation.
- Register AI-generated content with SHA-256 hash
- Link content to AI model used (GPT-4, DALL-E, Midjourney, etc.)
- Prevent duplicate registrations
- Immutable timestamp recording
- Authorized verifiers validate content independently
- Configurable minimum verifiers required (default: 2)
- Confidence scoring system (0-100 scale)
- Metadata support for verification context
- Aggregate confidence scores from multiple verifiers
- Automatic score calculation based on verification count
- Verified status granted when minimum threshold met
- Dynamic score updates with new verifications
- Verifier reputation range: 10-200 points
- Increases +5 per successful verification (cap: 200)
- Decreases -10 for disputed content (floor: 10)
- Track verification and dispute statistics
- Public dispute system for verified content
- Owner-mediated resolution process
- Prevents verification during active disputes
- Permanent dispute record keeping
Content Registry
{
content-hash: (buff 32), // SHA-256 hash
creator: principal, // Content creator
ai-model: (string-ascii 50), // AI model name
timestamp: uint, // Block height
verified: bool, // Verification status
verification-count: uint, // Number of verifications
authenticity-score: uint, // Average confidence score
disputed: bool // Dispute flag
}Verification Record
{
verified: bool,
confidence-score: uint, // 0-100
timestamp: uint,
metadata: (string-ascii 256) // Additional context
}add-verifier(verifier: principal)- Authorize new verifierremove-verifier(verifier: principal)- Revoke verifier authorizationset-min-verifiers(new-min: uint)- Update minimum verifiers requiredset-verification-fee(new-fee: uint)- Update verification feeresolve-dispute(content-id: uint, valid: bool)- Resolve disputes
register-content(content-hash: buff32, ai-model: string)- Register new contentverify-content(content-id: uint, confidence-score: uint, metadata: string)- Verify contentdispute-content(content-id: uint, reason: string)- Dispute verified content
get-content-info(content-id: uint)- Retrieve content detailsget-content-by-hash(content-hash: buff32)- Find content by hashget-verification-info(content-id: uint, verifier: principal)- Get verification detailsget-verifier-reputation(verifier: principal)- Check verifier reputationget-verifier-stats(verifier: principal)- Get verifier statisticsget-dispute-info(content-id: uint)- View dispute informationget-contract-stats()- Get overall contract statisticsis-content-verified(content-id: uint)- Check verification statusget-authenticity-score(content-id: uint)- Get authenticity scoreis-authorized-verifier(verifier: principal)- Check verifier authorization
(contract-call? .ai-verifier register-content
0x1234...hash
"GPT-4")(contract-call? .ai-verifier verify-content
u1
u95
"Verified watermark and metadata match")(contract-call? .ai-verifier get-content-info u1)
(contract-call? .ai-verifier is-content-verified u1)
(contract-call? .ai-verifier get-authenticity-score u1)(contract-call? .ai-verifier dispute-content
u1
"Metadata inconsistent with claimed AI model")| Code | Constant | Description |
|---|---|---|
| u100 | err-owner-only |
Caller is not contract owner |
| u101 | err-not-found |
Content or verifier not found |
| u102 | err-already-exists |
Duplicate registration |
| u103 | err-unauthorized |
Caller lacks required permissions |
| u104 | err-invalid-verifier |
Not an authorized verifier |
| u105 | err-already-verified |
Verifier already verified this content |
| u106 | err-not-verified |
Content not yet verified |
| u107 | err-invalid-score |
Score outside valid range (0-100) |
| u108 | err-disputed |
Content has active dispute |
- Content Creator registers AI-generated content with hash and model info
- Authorized Verifiers independently verify the content with confidence scores
- System calculates authenticity score from verifier consensus
- Content marked as verified when minimum verifiers reached
- Anyone can dispute verified content with reasoning
- Owner resolves disputes and updates verification status
- Immutable Records: Content hashes and timestamps cannot be altered
- Authorization Controls: Only approved verifiers can validate
- Duplicate Prevention: Hash-based uniqueness enforcement
- Dispute Protection: Prevents verification during active disputes
- Reputation Stakes: Verifiers risk reputation on validations
- Digital Art Marketplaces: Verify AI-generated artwork authenticity
- Content Platforms: Label AI vs human-created content
- Academic Publishing: Track AI-assisted research papers
- News Organizations: Verify AI-generated articles and images
- Legal Documents: Authenticate AI-drafted contracts
- Social Media: Combat deepfakes and misinformation
- Deploy contract to Stacks blockchain
- Owner adds initial authorized verifiers
- Configure minimum verifiers threshold
- Set verification fee (optional)
- Begin content registration
- Use SHA-256 for content hashing
- Store actual content off-chain (IPFS, Arweave)
- Register content immediately after generation
- Include detailed metadata in verifications
- Review verifier reputation before trusting scores
- Dispute suspicious verifications promptly
- Multi-signature verification requirements
- Time-locked verification periods
- Economic incentives via STX token rewards
- Integration with AI model APIs for automatic verification
- Cross-chain content verification
- NFT minting for verified content