Commit Graph

404 Commits

Author SHA1 Message Date
r4bbit 576fefe46e
refactor: Use custom errors instead of string messages
This reduces the gas cost as custom errors always use 4 bytes.
2024-08-06 11:07:03 +02:00
r4bbit 0f596e639a chore(ci): update certora-cli version in CI tasks
This updates `certora-cli` to the latest version (at the time of the
commit, this was 7.10.1).
2024-08-06 11:01:24 +02:00
Slava bbd57ab876
Add Codex Devnet and Testnet networks (#135)
* Add Codex Devnet and Testnet networks (#112)

* Add circuit assets for Codex Devnet and Testnet (#112)
2024-08-06 08:37:40 +03:00
r4bbit e62ebf6b0e
fix: ensure requestStorage() reverts if maxSlotloss > slots (#140) 2024-08-05 10:58:51 +02:00
Slava 8b3761c1a7
ci: add ci job concurrency (#136)
* ci: add ci job concurrency

* ci: update actions to the latest major versions
2024-08-01 07:51:52 +03:00
r4bbit 688a8ed929
Set up certora and implement first rules (#122)
Co-authored-by: 0xb337r007 <0xe4e5@proton.me>
Co-authored-by: Adam Uhlíř <adam@uhlir.dev>
2024-07-24 18:50:18 +02:00
Giuliano Mega 7ad26688a3
update circuit assets to latest version for hardhat and dist test net (#121) 2024-07-17 16:39:15 -03:00
Slava 924d192de1
ci: update actions to the latest major versions (#120) 2024-06-14 13:53:18 +02:00
Adam Uhlíř 57e8cd5013
feat: expiry specified as duration (#99) 2024-05-06 15:13:32 +02:00
Jaremy Creechley 4d9320a582
Update .tool-versions (#94) 2024-03-20 13:09:32 +00:00
Ben Bierens a58427e496
Updates dist-test circuit (#96)
* Updates dist-test circuit

* Removes unused example-proofs for dist-tests
2024-03-18 13:33:28 +01:00
Mark Spanbroek 8ecc5bfc66 readme: update todo list, we have actual proofs 2024-03-13 15:28:49 +01:00
Mark Spanbroek 53999c74d3 Provide all gas to precompiles
Rationale: subtracting 2000 from the provided gas seems
arbitrary, and doesn't provide any benefits. Whether
verify() fails with an out-of-gas error, or returns
'false', in both cases the proof is not verified.

Co-Authored-By: Balazs Komuves <bkomuves@gmail.com>
2024-03-13 15:25:59 +01:00
Mark Spanbroek 84eba26f76 Document that group elements are checked by precompiles
Co-Authored-By: Balazs Komuves <bkomuves@gmail.com>
2024-03-13 15:25:59 +01:00
Mark Spanbroek c55b34fc76 uint -> uint256
Co-Authored-By: Balazs Komuves <bkomuves@gmail.com>
2024-03-13 15:25:59 +01:00
Mark Spanbroek 3b6f7b8ec7 Rename _Q -> _R
Using 'r' for the size of the scalar field is
standard practice.

Co-Authored-By: Balazs Komuves <bkomuves@gmail.com>
2024-03-13 15:25:59 +01:00
Mark Spanbroek ab1b91fe49 Return false when incorrect amount of public inputs 2024-03-13 15:25:59 +01:00
Mark Spanbroek bd489c7f9a Groth16Verifier implements its interface 2024-03-13 15:25:59 +01:00
Mark Spanbroek f9637f192b Rename: vkX -> combination 2024-03-13 15:25:59 +01:00
Mark Spanbroek a4ce10f4de One less addition 2024-03-13 15:25:59 +01:00
Mark Spanbroek df58f2d3db Formatting 2024-03-13 15:25:59 +01:00
Mark Spanbroek 576254423e Return false when public inputs are invalid 2024-03-13 15:25:59 +01:00
Mark Spanbroek d38e0f5954 make functions private 2024-03-13 15:25:59 +01:00
Mark Spanbroek b676b245d6 Improve argument names 2024-03-13 15:25:59 +01:00
Mark Spanbroek 235f11a863 Primes are named as in EIP-197 2024-03-13 15:25:59 +01:00
Mark Spanbroek a4777bade5 Reordering, formatting 2024-03-13 15:25:59 +01:00
Mark Spanbroek c7687c5b83 Remove library 2024-03-13 15:25:59 +01:00
Mark Spanbroek 3840e2bf92 Remove unnecessary if-statement 2024-03-13 15:25:59 +01:00
Mark Spanbroek 949909fd98 Simpify pairing check 2024-03-13 15:25:59 +01:00
Mark Spanbroek 601ed18455 Verifier returns false when one of the operations fails 2024-03-13 15:25:59 +01:00
Mark Spanbroek c495770679 Pairing check returns boolean success and outcome 2024-03-13 15:25:59 +01:00
Mark Spanbroek a97a598b0e Add and multiply return bool success 2024-03-13 15:25:59 +01:00
Mark Spanbroek 111ed0826c Rename addition -> add, scalarMul -> multiply 2024-03-13 15:25:59 +01:00
Mark Spanbroek 91388096c1 Fix: size in bytes of input and output were too high 2024-03-13 15:25:59 +01:00
Mark Spanbroek 80dfa41e32 Remove calls to invalid()
Gas estimation seems to work just fine without them?
2024-03-13 15:25:59 +01:00
Ben Bierens c3d7db3456
from the codex-storage-proofs-circuits commit 066bd73a0bdebc813a231035ea50e1c91f139f2a (#92) 2024-03-08 12:56:26 +01:00
Ben Bierens b797f7d428
Fix/dist tests (#90)
* fix: downgrade targetted evm version

* feat: remove the target compilation downgrade

* Revert "feat: remove the target compilation downgrade"

This reverts commit a7705608da.

* Revert "fix: downgrade targetted evm version"

This reverts commit 8c7501b549.

* apply only evm version change

---------

Co-authored-by: Adam Uhlíř <adam@uhlir.dev>
2024-03-05 11:14:31 +01:00
Mark Spanbroek 118ee0b22b Slash and free slot sooner when proofs are missed
This makes it faster to test these scenarios in the
codex integration tests.
2024-03-03 06:54:22 +01:00
Adam Uhlíř 965529dcea
chore: add verifier assets for codexdisttestnetwork (#89) 2024-02-26 10:26:00 +01:00
Mark Spanbroek f413f1ea64 Represent elements from field F_{p^2} as `real + i * imag`
Reason: Circom and Ethereum EIP-197 both represent these
elements as arrays of two elements, but they do it in
reverse order of each other. This change makes it explicit
which number is the real part, and which number is the
imaginary part.
2024-02-21 10:42:41 +01:00
Mark Spanbroek ed54b80fc9 Increase proof period
In Codex's integration tests we now create real ZK proofs,
which take a bit longer to generate. We therefore need a
period that remains the same while the proof is generated.
2024-02-21 10:34:32 +01:00
Mark Spanbroek e5cb3bc571 verifier: circuit assets for a 5 sample storage proof 2024-02-14 13:33:37 +01:00
Mark Spanbroek 6c9f797f40 Explicit getters for token and config
Implicit getters have slightly different semantics when
it comes to ABI encoding their results.
2024-02-06 12:27:40 +01:00
Mark Spanbroek fb17fb5843 Fix deployment bug in loading zkey hash 2024-01-31 16:52:43 +01:00
Mark Spanbroek 31bbd702c2 Remove contract aliasing; doesn't work
Contract aliasing (specifying a fixed address for a
contract) doesn't work. We're now echoing the
addresses of the deployed contracts instead.
2024-01-31 15:45:01 +01:00
Mark Spanbroek c7b18af7cd Deploy 2 versions of the marketplace on local network
One with the real Groth16 verifier,
and one with a dummy verifier used for testing.
2024-01-31 15:45:01 +01:00
Mark Spanbroek ec803adb3d Test verifier accepts any proof, except all 0 values 2024-01-31 15:45:01 +01:00
Adam Uhlíř 331bc56e8f
feat: zkey hash in marketplace config (#81) 2024-01-30 06:36:27 +01:00
Mark Spanbroek a186cb4045 Formatting 2024-01-25 13:16:49 +01:00
Adam Uhlíř d4c7057fff ci: check formatting 2024-01-25 13:16:49 +01:00