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
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
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
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
903cdf3541
Refactor verifier contract: formatting
2024-01-25 13:08:10 +01:00
Mark Spanbroek
70b22b241f
Refactor verifier contract: remove unnecessary conversions
2024-01-25 13:08:10 +01:00
Mark Spanbroek
65655e3646
Refactor verifier contract: Formatting
2024-01-25 13:08:10 +01:00
Mark Spanbroek
676f4fc85e
Refactor verifier contract: use structs from Groth16.sol
2024-01-25 13:08:10 +01:00
Mark Spanbroek
dc0c2b7956
Refactor verifier contract: remove dead code
2024-01-25 13:08:10 +01:00
Mark Spanbroek
90c821fb61
Refactor verifier contract: remove unnecessary conversions
2024-01-25 13:08:10 +01:00
Mark Spanbroek
a066b6a007
Refactor verifier contract: fix linter warnings
2024-01-25 13:08:10 +01:00
Mark Spanbroek
6baf80d6f4
Refactor verifier contract: remove preprocessing
2024-01-25 13:08:10 +01:00
Mark Spanbroek
c0ca508a6b
Refactor verifier contract: public input as dynamic array
2024-01-25 13:08:10 +01:00
Mark Spanbroek
39a2d56a63
Refactor verifier contract: verification key as parameter
2024-01-25 13:08:10 +01:00
Mark Spanbroek
f2869ff94f
Refactor verifier contract: X -> x, Y -> y
2024-01-25 13:08:10 +01:00
Mark Spanbroek
d30dff1781
Refactor verifier contract: set verifying key in constructor
2024-01-25 13:08:10 +01:00
Mark Spanbroek
ef32ad9c1b
Refactor verifier contract: fix typo
2024-01-25 13:08:10 +01:00
Mark Spanbroek
296447724a
Refactor verifier contract: extract constants
2024-01-25 13:08:10 +01:00
Mark Spanbroek
b2509e4257
Refactor verifier contract: formatting
2024-01-25 13:08:10 +01:00
Mark Spanbroek
f3e2186ec2
Update solidity to 0.8.23
2024-01-25 13:08:10 +01:00
Mark Spanbroek
33614ee218
Calculate public inputs for ZK proof verificition
2024-01-25 13:08:10 +01:00
Mark Spanbroek
1b3b258ccc
Conversion between little and big endian
2024-01-25 13:08:10 +01:00
Mark Spanbroek
38411c27ca
Move submitProof() function to Marketplace
2024-01-25 13:08:10 +01:00
Mark Spanbroek
e6a918fed9
Submit proof as Groth16Proof struct
2024-01-25 13:08:10 +01:00
Mark Spanbroek
ae03690d51
Submit proof as field elements, not bytes
2024-01-25 13:08:10 +01:00
Mark Spanbroek
534f8cbf51
Cleanup verifier template
2024-01-25 13:08:10 +01:00
Mark Spanbroek
1af40f1790
Read proof from file in test
2024-01-25 13:08:10 +01:00
Mark Spanbroek
bf64de7e50
Update to solidity 0.8.8
2024-01-25 13:08:10 +01:00
Mark Spanbroek
3e3f2307d8
Remove GPL'ed verifier, replace by MIT verifier
2024-01-25 13:08:10 +01:00
Mark Spanbroek
e1657acdd0
Stub out zk proof verification in marketplace tests
2024-01-25 13:08:10 +01:00
Mark Spanbroek
e59f0f961e
Submit proofs as array of bytes
2024-01-25 13:08:10 +01:00
Mark Spanbroek
d29a259090
Fix linter warnings
2024-01-25 13:08:10 +01:00
Mark Spanbroek
327ae14112
Formatting with prettier
2024-01-25 13:08:10 +01:00
Mark Spanbroek
db124ddbd9
Re-arrange marketplace constructor parameters
...
first configuration, then contracts that we depend on
2024-01-25 13:08:10 +01:00
Adam Uhlíř
0d9b67bb31
feat: verifier integration
2024-01-25 13:08:10 +01:00
Eric
b5f33992b6
Increase pointer by 67 blocks each time the period is increased ( #75 )
...
* Increase pointer by 67 instead of 64 for each period
Use a prime number to ensure that we don't get cycles
where we're looking at the same hash four periods
from now.
---------
Co-authored-by: Mark Spanbroek <mark@spanbroek.net>
2023-12-15 10:02:03 +11:00
Adam Uhlíř
87461f6b83
fix: check expiration is before request end ( #77 )
2023-12-05 11:18:43 +01:00
Mark Spanbroek
b625f0d519
Merkle root is 32 bytes
2023-11-22 14:43:11 +01:00
Mark Spanbroek
efafa43910
Remove PoR parameters, add merkle root for storage proofs
2023-11-22 14:43:11 +01:00