WIth the latest update, Alice can also provide a 32-byte challenge to ProveAssetOwnership, which is then required by the verifier side for VerifyAssetOwnership
So if Bob wants to ask Alice to create a unique proof for an asset, the steps are:
Bob generates a random 32byte challenge (name it c)
Bob sends c to Alice
Alice calls ProveAssetOwnership for the asset, providing c in the request (field name is Challenge)
Alice sends proof to Bob
Bob calls VerifyAssetOwnership providing the proof of Alice, plus the challenge c
Here is an itest example too
https://github.com/lightninglabs/taproot-assets/blob/main/itest/ownership_test.go18 h 06
So now Bob can be sure that Alice did not "steal" this proof, as it is bound to the challenge he just generated
From Lightning labs slack :
WIth the latest update, Alice can also provide a 32-byte challenge to ProveAssetOwnership, which is then required by the verifier side for VerifyAssetOwnership So if Bob wants to ask Alice to create a unique proof for an asset, the steps are: Bob generates a random 32byte challenge (name it c) Bob sends c to Alice Alice calls ProveAssetOwnership for the asset, providing c in the request (field name is Challenge) Alice sends proof to Bob Bob calls VerifyAssetOwnership providing the proof of Alice, plus the challenge c Here is an itest example too https://github.com/lightninglabs/taproot-assets/blob/main/itest/ownership_test.go 18 h 06 So now Bob can be sure that Alice did not "steal" this proof, as it is bound to the challenge he just generated