Skip to content

f3r10/zk-gov-acution-verifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Definition

  • 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.

instructions

  • 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

once the contracts are deployed copy ABIs from front-end

  • 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/