The current domain separation strategy prepended a variant and version string to each internal DST. If the proof generation and verification routines were reused elsewhere, e.g., in other standards, that would mean the DST would include "VOPRF," which is not ideal. (Certainly this proof logic is not coupled to the rest of the VOPRF protocol!) This change moves the variant and version string around to the context string, and makes that a parameter for each function. If another standard wants to change the string, they can do so by changing the context string parameter to whatever suits their needs.
The current domain separation strategy prepended a variant and version string to each internal DST. If the proof generation and verification routines were reused elsewhere, e.g., in other standards, that would mean the DST would include "VOPRF," which is not ideal. (Certainly this proof logic is not coupled to the rest of the VOPRF protocol!) This change moves the variant and version string around to the context string, and makes that a parameter for each function. If another standard wants to change the string, they can do so by changing the context string parameter to whatever suits their needs.
cc @siyengar