Authentic Non Fungible Tokens

Nothing prevents several Non Fungible Tokens (NFTs) to be associated to the same digital asset, for instance, an image. As a consequence, the NFTs ecosystem is flooded with NFT replicas associated to the same assets of famous NFTs. The purpose of this paper is to propose creating NFTs in such a way that NFT/asset combination can not be replicated. We call the NFTs created in this way, Authentic NFTs. NFT token ids are known in advance, before creating the NFTs. Our approach is to include the NFT token id in the digital asset, and have the asset being digitally signed by it’s creator (author/artist). Given that NFT IDs are unique, our main finding is that any Authentic NFT replica can not be authentic. Either the NFT replica id does not match the NFT ID in the asset (if the asset was not modified), or the NFT replica asset is not signed by the asset creator (if the asset was modified).


INTRODUCTION
Nothing prevents different Non Fungible Tokens (NFTs) to be associated to the same digital asset, for instance, an image.This contributes to the proliferation of large numbers of NFTs associated with the assets of famous NFTs.In a set of 8,363,550 NFTs, collected by [3], 2,438,496,or 29.2%, were duplicated.[8] reports that marketplaces are deleting 80% of NFTs due to plagiarism fake collections, and spam.These massive numbers show that distinguishing authentic NFTs is becoming a really difficult task.They are also an indicator of the necessity of addressing this issue [1,9] and that proposed solutions [4,8] have still not been able to improve the situation.Given that NFT token ids are known in advance, before minting, our proposal is to include the NFT token id in the digital asset itself, and then digitally sign it.We call the NFTs created this way Authentic NFTs.An Authentic NFT is attributed to a known creator if the following two conditions are met: a) the asset associated to the NFT includes the NFT ID; b) the asset associated to the NFT is signed by the given creator.To create a replica of an Authentic NFT, two possibilities arise.The first one is to create an NFT associated exactly with the same asset associated with the Authentic NFT.Given that NFT IDs are unique, the created NFT ID will not match the one in the asset.As a consequence, the created NFT will not be an Authentic NFT.It will be a replica.The second one is to replace the NFT ID in the asset associated with the Authentic NFT, so that the NFT ID of the replica will match the one in the asset.Given that only the creator of the asset associated with the Authentic NFT can use his signature, there is no way this modified asset can be signed by that creator.As a consequence the created NFT, associated with the modified asset, will not be an Authentic NFT.It will be a replica.Given a known creator, authenticity of NFTs can be easily verified.This verification procedure can be automated, transforming the task of distinguishing the authentic NFTs of a known creator in an easy task.This paper is organized as follows.
In Section 2, we introduce NFTs with the help of an example, the famous "EVERYDAYS: THE FIRST 5000 DAYS" NFT.In Section 3, the proposed solution to the NFTs replicas issue is described.In section 4, a proof-of-concept implementation of Authentic NFTs is presented.Finally, section 5 has conclusions and future work.

NON FUNGIBLE TOKENS
An NFT is an unique block-chain token that is associated with an asset.The asset is usually a digital content, such as an image file.
Besides tokens, block-chains such as Ethereum [11], among others [5], also store computer programs, that in this context are called "smart contracts" [7].These programs, as well as all the information in the block-chain, are publicly accessible [10].
An NFT is identified by the unique pair: Table 1: "EVERYDAYS: THE FIRST 5000 DAYS" NFT identification.
Table 1 shows the pair that identifies the famous "EVERYDAYS: THE FIRST 5000 DAYS" NFT, by Beeple.
Inspection of the smart contract at this address1 confirms that the tokens it creates are NFTs, because they implement the standard NFT interface, ERC721 [14].All tokens that implement the ERC721 interface are NFTs.They also implement the optional interface ERC721Metadata [14] meaning that the NFTs it creates have three extra fields: name, symbol and tokenURI.The tokenURI is the token Uniform Resource Identifier (URI) which, in non-technical words, is the link to the NFT content.In case of the "EVERYDAYS: THE FIRST 5000 DAYS" NFT the values of these extra fields2 are in Table 2.
To understand the values in Table 2, one must be aware that this smart contract is in fact a contract used by the NFT creation service MakersPlace.com to create NFTs for a variety of NFT creators.That's why the name and the symbol of the "EVERYDAYS: THE FIRST 5000 DAYS" NFT have nothing to do with the artwork itself.
The only data in the "EVERYDAYS: THE FIRST 5000 DAYS" NFT, stored in the block-chain, that is related to this NFT artwork itself is the tokenURI: ipfs://ipfs/QmPAg1mjxcEQPPtqsLoEcauVedaeMH81WXDPvPx3V C5zUz.
transaction that was permanently recorded in the Ethereum blockchain.We recall that the only data stored in the block-chain, that is related to NFT artwork, is the tokenURI.
A couple of questions naturally arise.
First, what did the buyer of this NFT effectively bought?The buyer bought the possibility of showing this token in the balance of his account.If the possession of an original Picasso or Van Gogh gives some status in the real world, the possession of an NFT bought by this amount of money certainly gives some status in the digital world.The buyer also bought the possibility of reselling this token.Given the order of magnitude of the amounts we are talking about, this a very important possibility.Every other rights such as copyright, are not included or even referenced in the content associated with this NFT.Therefore this kind of rights remain governed and enforced by the laws that exist outside the block-chain.
Second, what prevents someone to create another NFT with the same tokenURI?The answer to this second question is: nothing!Nothing prevents the creation of a smart contract equal to that in the address of Table 1, and mint an NFT with id 40913 and the tokenURI in Table 2. Actually this was already done.The smart contract at address 0x5FBbACf00ef20193a301a5BA20acf04765fb6DaC, token ID 40913, has the tokenURI of "EVERYDAYS: THE FIRST 5000 DAYS"NFT.In other words, besides the contract address, these two NFTs are exactly equal.
Under these circumstances a third question emerges.What distinguishes the authentic NFT?And the answer in this case is: the smart contract address.That's what distinguishes the authentic "EVERYDAYS: THE FIRST5000 DAYS" Beeple's NFT at address 0x2a46f2ffd99e19a89476e2f62270e0a35bbf0756 from the fake one at address 0x5FBbACf00ef20193a301a5BA20acf04765fb6DaC.Nothing more distinguishes these two NFTs because everything else is exactly equal.
This evidence poses a fourth question.Although printed bills have a unique serial number, they are considered fungible, because bills with the same face value can be exchanged.Why equal NFTs that differ only in an address, which is by all means equivalent to a serial number, are considered non fungible?The answer to this question is outside the scope of this paper, and given the current market capitalization of traded NFTs, it is probably irrelevant.Given this scenario, the conditions for a chaotic NFT ecosystem are installed.Given the number of NFTs associated to the Beeple "EVERYDAYS: THE FIRST 5000 DAYS" image, this is in fact what is happening now.Searching for "EVERYDAYS: THE FIRST 5000 DAYS" in one of the largest NFTs marketplace [13], the popular https://opensea.io,yields 96,376 items.

AUTHENTIC NFTS
In this paper we propose to create NFTs in such a way that the NFT/asset combination can not be replicated.We call them Authentic NFTs.Once an Authentic NFT is created, it is impossible by design to create another Authentic NFT with the same asset, created by the same creator.This immediately stops the possibility of creating more Authentic NFTs associated with the same asset.
The main idea behind the creation of an Authentic NFTs is to include the NFT identifier in the asset itself, and then, have the asset being digitally signed by its creator.This is made possible because the NFT ID is known in advance, before minting the NFT.

NFT ID in the associated asset
The inclusion of the NFT ID in the asset can be explicit or implicit.In case, for example, of an image, the explicit inclusion of the NFT ID is achieved by drawing the NFT ID in the image itself, is such a way that the NFT ID becomes readable.The implicit inclusion of the NFT is achieved by including it in the image file metadata.In case, for example, of a text document, the explicit inclusion of the NFT ID is achieved by writing the NFT ID in the text, itself.The implicit inclusion is achieved by including the NFT ID in the document file metadata.In case of a plain text file only the explicit inclusion can be used because in this case there is no metadata.
Both ways of including the NFT ID in the media file, either explicit or implicit, modify the file content, meaning that media file associated with different NFTs becomes different.
In order to allow automatic authenticity validation, we propose that whenever the media file includes metadata, the inclusion of the NFT ID implicitly, in metadata, be mandatory.In the other cases the explicit inclusion is mandatory (besides explicit inclusion, there is no other possible way in cases where no metadata is available).
In either case, to allow automation, we propose that the inclusion of the NFT ID should be done through the fields in Table 3.

Creator signature
The Authentic NFT is associated with the asset, but also with its creator, through the asset signature made by the creator.This is accomplish by using the NFT metadata in Listing 1.This metadata schema is an extension of the ERC721Metadata standard [14].
We assume that besides the image field, which is usually used by marketplaces as the graphical representation of the NFT, a media_file field exists.The media file contains the digital artwork.These fields are generic and make sense in any NFT.In case of an NFT of an image, the image field can reference a low resolution preview version of the image, while the media_file can reference the full resolution image.
The specific fields related with our Authentic NFT proposal are included in the authentic_nft block.
The version field allows the existence of different versions of the Authentic NFT metadata schema.Future requirements will impose evolution of this schema to newer versions.
The digital_media_signature_type field allows the usage of different kinds of signature schemas.The natural choice of signature schemas to use would be the block-chain signature schema itself.Despite these schemas having all features required by our proposal, most block-chain signature schemas, such as the Ethereum one, do not allow keys to be revoked, for example.As this can be an important feature, we allow for different signature types, such as OpenPGP, or even the signature schemas used by citizen identity cards in many countries, such as the ones in the European Union.
The image_signature field is a URI pointing to image signature file.The media_file_signature field is a URI pointing to media file signature file.

Authenticity verification
To verify the authenticity of an Authentic NFT, the NFT identifier (contract address and token ID), the associated asset, and the asset creator signature, are collected.All this information is publicly available in the block-chain.
If the asset contains the NFT identifier and the creator signature is valid, then the NFT is authentic.The process of validating a digital signature, shows the ID of the signer.It competes to the user who is verifying the authenticity of the NFT to check if the signer is the creator he is interested in.In other words, the asset creator must be known.
NFTs are unique tokens.This uniqueness is provided by the unique NFT identifier.
If a second NFT is created associated with exactly the same asset of an Authentic NFT, this second NFT will have its own unique NFT ID, which therefore will not match the one in the asset.The result is that this second NFT is considered non authentic, or fake.
If the asset associated to an Authentic NFT is modified in order to replace the NFT ID so that it matches the one in a third NFT, regarding the Authentic NFT asset creator, this third NFT is considered non authentic, or fake.That's because there is no way the modified asset can be signed by the Authentic NFT asset creator without his intervention.The creator of the modified asset can not sign it with the Authentic NFT asset creator signature.
These three use cases are illustrated in Figure 1.

Security Evaluation
The two possibilities of creating an Authentic NFT replica, either by using the Authentic NFT tokenURI, or by modifying the Authentic NFT asset, are closely related to spoofing and tampering attacks [3,8,12].
In the first case a malicious NFT creator tries to create a replica of an Authentic NFT, so that the smart contract that creates the replica can be seen has the legitimate smart contract that created the Authentic NFT, and ultimately, the malicious creator can be seen

Blockchain Digital Content
Figure 1: NFT 1 is an Authentic NFT created by "Author".NFT 2 is a replica of NFT 1 but is not an Authentic NFT because the asset it points to does not include NFT 2 ID.NFT 3 is a replica of NFT 1 but is not an Authentic NFT created by "Author" because the asset it points to is not signed by "Author".
has the genuine creator.Recall that by using the same tokenURI the asset signature in the NFT metadata is valid.But using Authentic NFTs, this spoofing attack is prevented because replicas created in this way can't be Authentic NFTs.The NFT ID of the replica, smart contract address and token ID, will not match the one in the asset.
In the second case a malicious NFT creator tries to modify the asset associated to an Authentic NFT, so that he can create an Authentic NFT of his own, associated to an asset associated to valuable token.He modifies the asset so that the NFT ID matches the replica one.Given that he modified the asset, he will have to sign it, because the asset signature in the NFT metadata won't be valid.But there is no way he can sign the modified asset with the original creator signature.Only the original creator has this ability.Therefore, using Authentic NFTs, this tampering attack is prevented.

Dependency on external data sources
This proposal is entirely based on off-chain NFT metadata.Heavily relying on off-chain metadata introduces a level of dependency on external data sources.Any compromise or unavailability of these external data sources could potentially impact the ability to verify the authenticity of Authentic NFTs which in turn undermines the overall security and trustworthiness of the Authentic NFT ecosystem.But this dependency is already present in the NFTs ecosystem, where the assets of the great majority of NFTs are stored off-chain.Therefore, regarding this issue, this proposal does not add any new level of dependency.

User experience
The adoption of our proposal at scale, for non-technical users, implies the support for Authentic NFTs by the NFTs platforms.This support can be split in two parts.One is the authenticity verification.The other is the creation of Authentic NFTs.
Regarding authenticity verification part, given that both the asset and the asset creator signature are available through the NFT metadata, all the authenticity verification process can be automated by the platforms.When a non-technical user selects an authentic NFT of it's interest, the platforms can supply information regarding the authenticity of the selected NFT, and, in case of being an Authentic NFT, the asset creator fingerprint.Based on this information, namely the asset creator fingerprint, the user can decide if the particular NFT was created by its creator of interest.
Regarding the creation of Authentic NFTs, the adoption of our proposal does require that users must be familiarized with using digital signatures.Compared with the usual NFTs this is in fact an extra requirement.However this is not consider a severe drawback as more and more people are using digital signatures in their everyday lives.In cases where this requirement is fulfilled all the infrastructure for creating NFTs by non-technical users can easily be adapted to support Authentic NFTs.After the user uploads it's digital asset, the platforms includes the ANFT fields, described in Table 3, in the asset.Then the user should download the modified asset to sign it.After that the user must upload the signed asset.Then, the platform verifies that the signature is valid and mints the Authentic NFT.From the user point of view, there are in fact tree more steps necessary for creating an Authentic NFT: download the modified asset; sign it; and upload it (again).But this is the only extra work users must do in order to benefit from having an ecosystem of Authentic NFTs.

PROOF-OF-CONCEPT
As a Proof-of-Concept of our proposal we deployed an elementary smart contract to mint ERC721 NFTs.Since the core of our proposal relies on NFT metadata, an elementary contract capable of minting ERC721 NFTs, is perfectly enough to achieve our goal of demonstrating Authentic NFTs in the real world.
With this contract we minted two Authentic NFTs.One associated with the PDF author version of this paper.To see it on the blockchain, grab the values of the ANFT fields found in this paper title section, and use a block-chain gateway such as https://etherscan.io,for example, or even in an NFT market place such as https://opensea.io.
We minted a second Authentic NFT associated with the Solidity source code of the contract used to mint both NFTs.To see this second NFT on the block-chain, use the value of the ANFT-Contract-Address, field in this paper title section and search for token ID 2.
In both NFTs we adapted the proposed schema of Listing 1 in order to have support from common NFT market places (an attributes group was added to the schema).
With this two NTFs we demonstrate the creation of Authentic NFTs associated with assets of PDF and text plain formats.These formats are by far less common than PNG or JPG images formats.
Regarding the creation of Authentic NFTs associated to author versions of papers in PDF format, this can be an alternative to the publication of these pre-print versions in repositories such as the Cornell University https://arxiv.org/ or Research Gate.These are centralized services.What happens if they go down?The disadvantage is that the creation of an NFT have costs.At least the reward that the network requires in order to execute the mint function (gas fees in case of the Ethereum block-chain).A clear advantage is that the NFT will be in the block-chain forever.It does not depend on a centralized service.It never goes down.And in the event the paper becoming famous, the NFT can be sold.This author version paper can be cited as: João B. Sousa and Gonçalo Marques."Authentic Non Fungible Tokens".Ethereum block-chain, contract address: 0x52121B1Cc59EFB5d1ABC90B069d0D22526ff2a2D, token ID: 3 (2023).
Appendix A illustrates the steps required to verify the authenticity of the NFT associated with this paper.This steps can be automated in order to facilitate authenticity verification by non technical users.

CONCLUSIONS
Distinguishing NFTs can be a really difficult task because, except for the smart contract address, different NFTs can be exactly equal.
In this paper we propose creating Non Fungible Tokens (NFTs) in such a way that the NFT/asset combination can't be replicated.
The main idea is to include the NFT ID in the NFT asset itself, before minting the NFT, and sign the asset.This is possible because the NFT ID is known in advance, before minting.
NFTs associated with the same asset of an existing Authentic NFT, are considered fake because the NFT ID doesn't match the one in the asset.
NFTs associated with a modified asset of an existing Authentic NFT, are considered fake because the asset is not sign by the original creator.Signing the modified asset with the original creator signature is only available to the original creator.Not to malicious replicas creators.
Following this proposal, the authenticity of NFTs is shifted from the contract address (and the token ID) to the asset and its creator signature.Knowing the Authentic NFT asset creator identifier becomes mandatory.This is somehow similar to what happens with physical paintings.A Picasso painting is not authenticated by Picasso's canvas supplier and the serial number of the particular canvas Picasso used.A Picasso painting is authenticated by the painting itself and Picasso's signature.Naturally, Picasso's signature must be known.
Following this proposal, Authentic NFTs are easily distinguishable from fake ones.
Our proposal is entirely based on off-chain NFT metadata, which facilitates its implementation, adoption and easily allows accommodation of future requirements.
This proposal was developed in the Ethereum blockchain.All that is required to use it in other blockchain platforms is that the NFTs IDs in those platforms are known before minting.Providing that this requirement is fulfilled this proposal can be equally used across other blockchain platforms.

Table 3 :
Authentic NFT asset fields.No spaces should exist between the field name, the colon, and the field value.