Isinulat ng Ethereum developer na si barryWhiteHat na sa komersyalisasyon ng zero-knowledge proof virtual machine (zkEVM), lumitaw ang isang kawili-wiling oportunidad: maaari itong magbigay ng pribadong smart contract infrastructure habang pinananatili ang compatibility sa Ethereum Virtual Machine (EVM). Maaaring magsulat ang mga developer ng Solidity code at i-compile ito sa pamamagitan ng isang partikular na bersyon ng Solidity compiler o ilang post-processing tools upang makalikha ng mga pribadong smart contract.
May ilang mahahalagang trade-off kaugnay ng private global state at privacy, at ang pangunahing dahilan ay: upang mapatunayan ang isang bagay, kailangan mong malaman kung ano ang iyong pinapatunayan. Samakatuwid, hindi maaaring umiral ang isang pribadong smart contract na may global public state na hindi mo alam. Dahil dito, hindi rin maaaring umiral ang mga pribadong smart contract na may global private state. Halimbawa, ang mga aplikasyon tulad ng Uniswap ay hindi maaaring ipatupad sa isang pribadong anyo dahil kailangang malaman ng prover ang balanse ng dalawang liquidity pools upang mapatunayan na tama ang pagkaka-execute ng swap transaction.
Dahil dito, ang ilang kilala at paboritong aplikasyon ay hindi pa maaaring ipatupad sa isang pribadong anyo maliban na lang kung mayroon tayong input-output (IO) capabilities - ito mismo ang dahilan kung bakit napakahalaga ng IO. Pinapayagan tayo nitong bumuo ng isang ganap na pribadong Ethereum, na may parehong trust assumptions gaya ng native Ethereum.
Gayunpaman, layunin ng artikulong ito na tuklasin kung paano i-compile ang pstore at pload operations sa zero-knowledge proof virtual machine (zkEVM) sa pamamagitan ng pagdagdag ng mga ito sa reth, upang makamit ang isang pribadong smart contract - ang mga kontratang ito ay may pribadong user states ngunit walang pribadong global states.