Offchain proof of NFT ownership

If you could have an offchain proof that you owned an NFT, would that be interesting?

One way to accomplish that would be to combine a proof that a block header is valid and a merkle proof linked to that header proving that your NFT is owned by your wallet. If these two proofs were small, then you could embed them in a QR code next to something physical, allowing anyone to verify ownership of the item without access to the internet. Of course, making these proofs is easy on Celo because of Plumo and hard on other chains, so this is an interesting differentiator for Celo.

Technically, this isn’t just useful for NFTs. You could prove that you hold a particular balance or that you have a certain credit rating.

What do you think? What could we build with this?

At first glance, the biggest technical issue with this appears to be that these would be proofs of “having owned” the NFT, not of currently owning it. To validate you still own it, a chain connection is necessary, defeating the point. So this could work for non-transferable “badge-like” NFTs, not so well for the standard “trading card-like” ones that are more popular.

Generalizing, this works for anything that’s known to not be transferable for a given amount of time. E.g. you could make a proof of your amount of locked CELO, and the proof would be valid for 3 days. Or, if you know you’re going to need to “show off” a given NFT in the next week, ERC-721 could be extended to allow locking the NFT, making it intrasferable for a given amount of time, and then in your proof you’d also include a proof of the fact that the NFT is locked from time T to time T’.

Agree with @m-chrzan comments. It’s a proof of having owned something, it gets complicated when you want to show change of ownership and track those.

In the end, you can think of it as a “proof of existence”. There’s quite an old project that does this on bitcoin network https://proofofexistence.com/ by manu araoz

Yes, you can only show that you owned something at a certain block height. That said, if you constructed the proof at the start of a gallery exhibit, I would argue that this would be sufficient proof for most people interested in verifying the claim.

For a credit rating, a proof that you had certain credit score at a certain date is likely good enough as well. Alternatively, you could imagine situations where proofs could be constructed in real time but verified offchain (e.g. by showing a generated QR code to another device that isn’t connected to the internet).

I like the time lock idea. I was thinking about whether we could use a similar technique for off-chain transitions.

Interesting! Can these existence proofs be verified without access to the bitcoin network?

IMO non transferrable NFTs are basically just attestations and I would argue that many NFT use cases are sufficiently covered by this. Things like badges or POAPs don’t really need to be on-chain unless they are used for authentication in smart contracts somehow.

In those cases, attestations seems perfectly fine to be verified offchain, assuming you know the public key providing the attestation

Can’t remember it well. But i believe with PoW you can use a small chain of block as proof, since they are very economically expensive to generate.

1 Like

maybe you’re referring to flyclient?