First of all, I'd like to confirm that I have the correct technical background of the way NFTs work in my mind. So, let's say Alice wants to sell her digital art (image) to Bob.
1) She hashes her image and announces to everyone that this hash is owned by her.
2) Bob gives Alice an invoice which says she gives the rights of her art from her address to Bob's.
3) Once she announces it, it's Bob's. Now Bob can prove to anyone it's his art and Alice can prove it was her art before she handed it out to Bob.
In order for Bob to upload his now-owned art, he chooses as many NFT marketplaces as possible and uploads the file plus the hash. Any seller can verify it's Bob's and that he hasn't lied.
Let's see how can this work in Bitcoin:
1) Alice creates a transaction containing the hash of her image next to OP_RETURN and the state of her art. (Currently hers)
2) Bob gives Alice his address.
3) Alice creates another transaction which contains the hash of her image and a statement which reveals she wants to give the rights of her image to Bob, revoking her previous transaction rights.
Therefore, people can see where the first transaction of that art was made and follow the spent outputs to reach the current owner.
If you haven't already, you should read up on Single-Use-Seals. Here's a great entry point:
https://petertodd.org/2017/scalable-single-use-seal-asset-transferRBG Protocol is building a bunch of stuff based on that (and several other) idea.