Creating a signature
Let us assume that you have built a token-gated movie streaming web application. To access the web application, a user needs to buy one NFT from an NFT collection that you released. One user buys an NFT so she can watch movies in your token-gated movie streaming web application. The main question is, how can she prove that she owns the NFT?
She could expose her private key to the Ethereum address that holds the NFT to you. It’s a valid way but it’s an extremely unwise approach. You can steal all assets that that Ethereum address holds if you know the private key.
You can also ask her to do something that originates from her Ethereum address. One example is that you can ask her to transfer a small specific amount of money, such as 0.0000001 ETH, to an Ethereum address of your choosing. If she can do it, it means she owns the Ethereum address that owns the NFT.
But that’s not efficient. The user would not be happy. A small amount of...