Description
When public parameters are updated, tokens generated with older parameters may no longer be spendable directly. For instance, consider switching from a token that displays its content plainly to one that uses cryptographic commitments. Consequently, how can a token owner spend tokens that are now unspendable?
There are two potential solutions:
- The owner can hand over the token to the issuer. The issuer verifies the token's validity. If valid, the issuer creates a transaction to invalidate the token and issues a new one (valid under the current public parameters) with the same type and value.
- The driver can instantly convert the token from its previous form to the new one. If this is possible, the driver must also generate a proof that the conversion was done correctly. This proof will be checked by the validator to ensure the conversion is accurate.
This GitHub issue requires the preparation of the token-sdk to support these solutions. The specific implementation of these solutions in the token driver's code depends on the requirements of the use case and is left to the developer of the token driver.
The issue will be split in the following tasks: