metaplex-foundation/mpl-bubblegum

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:

image

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