DatingDapp

First Flight #33
Beginner FriendlyFoundrySolidityNFT
100 EXP
View results
Submission Details
Severity: low
Invalid

SoulboundProfileNFT: Burnable Profiles Undermine the Soulbound Concept

Summary

The contract allows users to burn their soulbound tokens, enabling them to fully delete their existing profile. This contradicts the premise of a permanent, non-transferable identity token.

Vulnerability Details

  1. Soulbound Integrity Compromise

    • A truly soulbound token is expected to be tied indefinitely to a wallet, without a mechanism to discard it.

    • By allowing burnProfile, the contract provides an escape hatch, letting users erase all evidence of having owned a particular profile.

  2. Profile Reset

    • After burning, there is no restriction preventing the same user from calling mintProfile again, effectively resetting their on-chain identity and erasing any prior reputation or negative history.

Impact

  • Loss of Persistence: The “soulbound” concept is undermined if a user can simply remove and recreate profiles at will.

  • Reputation Bypass: Users with negative reputations or suspicious actions can reset their profiles to clear any potential stigma associated with their addresses.

Tools Used

  • Manual Review: Inspection of burnProfile() shows no gating conditions beyond ownership.

Recommendations

  1. Remove or Restrict Burn Function

    • Remove burnProfile altogether if perpetual identity is desired.

    • Alternatively, allow only the contract owner or a specific governance process to burn tokens under strict conditions.

  2. Enforce Permanence

    • If the project demands an eternal record of each wallet’s profile, burn actions should be eliminated, or replaced with an “archive” concept that preserves data rather than wiping it.

Updates

Appeal created

n0kto Lead Judge 6 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Informational or Gas

Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelyhood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.