cNFTs that cannot be transferred can be minted
Closed this issue · 2 comments
Problem
Right now, there is an issue with spam cNFTs being minted using the mpl-bubblegum
program. These cNFTs cannot be burned because their burn transactions exceed 1232 bytes:
This occurs because minting does not require the inclusion of a proof, while updating a leaf (burning/transferring) does. Therefore, these assets do not adhere to the standard for cNFTs and should not be able to be minted through Bubblegum.
There is also opportunity to implement checks for this at the DAS level, but I believe that implementing a fix for this in Bubblegum is the lowest hanging fruit.
I believe that this occurs when the size of the proof is greater than 756 bytes, but this should be double checked and tested. From my testing, when the treeDepth - canopyHeight >= 24
, the cNFT cannot be burned or transferred.
Proposed Solution
An assertion
should be added to process_mint_v1
in mint.rs that ensures that the tree proof length does not make leaf updating impossible.
I'd be happy to take a crack at implementing this, but I'd appreciate any comments from official maintainers/the metaplex team as to whether or not this would be a welcome change!
cc @danenbm since you seem to be the most active maintainer on this repo
I personally agree with this sentiment that these types of cNFTs should not be considered valid assets. A MIP is in process for this change. Thank you for the testing info too, as we define this limit.
I personally agree with this sentiment that these types of cNFTs should not be considered valid assets. A MIP is in process for this change. Thank you for the testing info too, as we define this limit.
glad to hear that an MIP is in process!
thanks for all of your hard work <3