- El problema que intentamos solucionar es la corrupción que suele suceder en los procesos de licitación en los gobiernos.
- El objetivo es que la empresa cumpla los requerimientos determinados por el gobierno manteniendo oculto los detalles concretos hasta que la oferta finaliza reduciendo la posibilidad de corrupción.
- En la prueba de concepto que desarrollamos nos centramos en un detalle en concreto, y es la oferta enviada por la empresa pero se podrían agregar más constraints e incluso incorporar TLSNotary para agregar más seguridad.
- La oferta de la empresa debe pasar los requerimientos definidos en el circuito y si la prueba es verdadera el output del circuito es guardado en el contrato específico de la oferta.
- Adicionalmente incorporamos semaphore para determinar la identidad de la empresa sin que se revele esta información. Además gracias a semaphore se garantiza que solo se pueda enviar un commitment por usuario.
- Al finalizar el proceso cada empresa debe revelar el precio ofrecido a través de otra prueba para garantizar su identidad y el commitment previo y el administrador del contrato procede a revelar el ganador del contrato.
- in the circuits folder execute
yarn install
- in the circuits folder create folder build
mkdir build
- in the circuits folder execute ./circuits/auction/executeGroth16.sh
- in the circuits/auction execute
yarn test
to check that everything is ok - in the contract/contracts folder execute
yarn install
- on the contracts/contracts folder execute
cp ../../circuits/auction/build/ZkGovAuctionVerifier.sol contracts/
- on the contracts/contracts folder execute
cp ../../circuits/auction/build/ZkGovAuction_js/ZkGovAuction.wasm test/zkproof/
- on the contracts/contracts folder execute
cp ../../circuits/auction/build/ZkGovAuction_final.zkey test/zkproof/
- on the contracts/contracts folder execute
hardhat compile
- on the contracts/contracts folder execute
hardhat test
- on the contracts/contracts
cp artifacts/contracts/ZkGovAuctionVerifier.sol/Groth16Verifier.json ../../zkgov-ui/src/lib/abi/
- on the contracts/contracts
cp artifacts/contracts/BlindAuction.sol/BlindAuction.json ../../zkgov-ui/src/lib/abi/
- on the contracts/contracts
cp artifacts/contracts/BlindAuctionFactory.sol/BlindAuctionFactory.json ../../zkgov-ui/src/lib/abi/