The encoding of infinity points and Fp2 elements is currently un(der)-specified and this has led to discrepancies in different ZKVMs, e.g. ZisK follows the EIP-2537 spec, where zkvm_bls12_381_fp2 is the concatenation c0 || c1 whereas SP1 encodes Fp2 as c1 || c0. Likewise, ZisK treats all 0's as the infinity point whereas SP1 uses a 0x40 flag instead. I have opened an issue in SP1 succinctlabs/sp1#2881 but the interface description should perhaps be more explicit.
The encoding of infinity points and Fp2 elements is currently un(der)-specified and this has led to discrepancies in different ZKVMs, e.g. ZisK follows the EIP-2537 spec, where
zkvm_bls12_381_fp2is the concatenationc0 || c1whereas SP1 encodes Fp2 asc1 || c0. Likewise, ZisK treats all 0's as the infinity point whereas SP1 uses a0x40flag instead. I have opened an issue in SP1 succinctlabs/sp1#2881 but the interface description should perhaps be more explicit.