-
Notifications
You must be signed in to change notification settings - Fork 131
Simulator issues relating to Pedersen hash #670
Description
It took some hacking to us the correct version of pedersen in various places. Here is a note I wrote to myself:
The circuit type (formerly “composer type”) is put in the vk. I don’t actually understand why. This means that UltraPlonk is hard-coded in at least 93 places in artifacts uses by e2e tests. So I need to make the simulator’s CircuitType be UltraPlonk. On the one hand, I think we should make sure somehow that the circuit simulator is actually using the UP code paths, but we don’t do that. In the common_contract_logic function, private_call_vk_hash is computed via the recursive code path, where HasPlookup determines the output. I can’t set HasPlookup for some reason. On the other hand, in abis__hash_vk, the hash is computed through compress_native in a vk datum, and here we determine whether to use lookups at runtime.
I've already discussed the vk issue here: #562. I would spend more energy understanding what's going on with Pedersen, but it sounds most efficient to wait for the new Pedersen hash be introduced--it makes more sense to undwind the hacks then, rather than to refactor now and then unwind them.