title: How to to prevent anyone from creating an smart contract/ NFT linking to the same URI?
body: <p>Below is a min example of a smart contract that allows registering a URI to create an NFT (for ease of argument, this is highly simplified and not doesn't allow any interaction with the contract, that is no one can register their own link, etc.):</p>
  <pre><code>pragma solidity ^0.6.0
  
  contract ExampleToken {
  string public name = &quot;example token&quot;
  string public uri = &quot;http://example-link.com/123examplelink&quot;
  address public owner_of_token = 0x1234567890...
  
  }
  </code></pre>
  <p>Except for being highly simplified, this is how we create NFTs (I am ignoring ERC standards etc.), that is we create a smart contract that allows connecting an address to a link where the file is stored (again, highly simplified, I am not using a mapping or anything).</p>
  <p>But how is it ensured that this address truly is the owner of that linked file? Couldn't I just create a second contract that claims a different address is the owner of the same link?</p>