As a smart contract developer, I am unable to understand why do we use circom circuits for zero knowledge proofs? All the examples like A*B = C
can be done in javascript and solidity. We can also create digital signature, and perform hashing in these language. Why do we use circom circuits?