Abstracted zk implementation