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
Mark Spanbroek
79d9c43beb
Fix marketplace deployment script
2024-01-25 13:08:10 +01:00
Mark Spanbroek
079ac4766c
Cleanup verifer.js
2024-01-25 13:08:10 +01:00
Mark Spanbroek
5d2842c69b
Deploy verifier with verifier key per network
2024-01-25 13:08:10 +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
862ea56e8b
Formatting
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
61be76da0e
Add preprocessing to generate verification contract
2024-01-25 13:08:10 +01:00
Mark Spanbroek
c08e8be8f9
Add verification keys and example proof for local deployment
2024-01-25 13:08:10 +01:00
Mark Spanbroek
6b8d3ca83b
MIT licensed version of solidity Groth16 verifier
...
Copied from 2e9be76932/templates/verifier_original.sol
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