Eric Mastro
c0be4e9b1d
WIP: reorg curves, use witnet as base
...
Now that curve ops are transactions, need to change up tests so that we can verify the result somehow? https://docs.ethers.io/v5/api/contract/contract/#Contract--write
2022-06-08 15:16:08 +10:00
Eric Mastro
976ae66cab
WIP: reorg to allow for more curves
...
Current tests are failing because ECMUL is not a valid opcode in hardhat. Exploring alternatives.
2022-06-08 15:15:05 +10:00
Eric Mastro
98c2555036
chore: clean up
...
- Move bulk of verification to curves/Bn254Proofs.sol
- remove all unneeded structs and add Proof struct
- bring in point `isOnCurve` check so that we can use solidity compiler 0.8.x
- remove all other Bn254 library deps
- changed proof type from bool to Proof
- add Bn254 test file (uncalled yet)
TODO:
- update Proofs test such that verifyProof test is called (need to generate proof using https://github.com/status-im/nim-codex/pull/76 )
- call Bn254 tests from test harness
2022-06-08 15:06:53 +10:00
Eric Mastro
b03a415fb9
WIP: cleanup
2022-06-08 15:04:59 +10:00
Eric Mastro
cbe4024c6f
WIP: Change to passing PublicKey.key in sig verification
2022-06-08 15:04:59 +10:00
Eric Mastro
36c84f58b6
WIP: Swap over to AltBn254 solidity lib
...
Still need to figure out how to stringify TauZero and verify the signature.
2022-06-08 15:04:59 +10:00
Eric Mastro
1d4f9729b0
WIP: Got further without pairings
...
Likely use a diff lib to have a better solidity api
2022-06-08 15:04:59 +10:00
Eric Mastro
aa9d976dd4
WIP: more work but still not finished
2022-06-08 15:04:59 +10:00
Eric Mastro
c0969815a1
WIP: type conversions, start moving verifyProof
...
- Add type conversions from BLS12-381 to BN254
- start moving verifyProof over to BN254 in solidity
2022-06-08 15:04:58 +10:00
Mark Spanbroek
2bf01da728
[proofs] Submitting proof emits event containing proof
2022-04-12 09:04:29 +02:00
Mark Spanbroek
29b5775951
[proofs] willProofBeRequired() predicts proof requirement
2022-04-05 11:36:31 +02:00
Mark Spanbroek
3fd7c756d9
Fix flaky tests
...
By ensuring that there's enough blocks left
for submitting a proof.
2022-03-15 10:01:12 +01:00
Mark Spanbroek
f8ddc4a2f6
Add getChallenge() to Storage contract
2022-03-15 10:01:12 +01:00
Mark Spanbroek
fd55afcc5a
Make pointer downtime configurable
2022-03-15 10:01:12 +01:00
Mark Spanbroek
476956c4d5
Replace pointer duos with pointer downtime design
2022-03-15 10:01:12 +01:00
Mark Spanbroek
6d726fc2cc
Require a block height of at least 256
2022-03-15 10:01:12 +01:00
Mark Spanbroek
78eaaa7812
Replace Proof implementation with new design
...
More info: https://github.com/status-im/dagger-research/pull/66
2022-03-15 10:01:12 +01:00
Mark Spanbroek
036a214427
Proof period and proof timeout are network constants now
2022-03-15 10:01:12 +01:00
Mark Spanbroek
f7af18eb2d
Lint with solhint
2022-02-10 07:46:03 +01:00
Mark Spanbroek
78755ecaa2
Format using prettier
2022-02-10 07:46:03 +01:00
Mark Spanbroek
c0fb0c725c
Do not require proofs before start of contract
2021-11-03 17:15:03 +01:00
Mark Spanbroek
8efa9fe162
Stop requiring proofs when contract has ended
2021-11-03 17:02:12 +01:00
Mark Spanbroek
2784800c3e
Add end time to proofs based on contract duration
2021-11-03 17:01:11 +01:00
Mark Spanbroek
3326c4fe74
Make isProofRequired() work for the current block
...
The block hash of the current block is not known yet, so
we use the block hash of the previous block to determine
whether a proof is required for a block.
2021-11-03 13:20:40 +01:00
Mark Spanbroek
3b6ec4126d
Fix comments
2021-11-02 11:22:34 +01:00
Mark Spanbroek
aa0def1127
Move timeout validity check to Proofs contract
2021-11-01 15:28:22 +01:00
Mark Spanbroek
d1f5ce0786
Extract logic around proofs into separate contract
2021-11-01 15:12:05 +01:00