121 Commits

Author SHA1 Message Date
wborgeaud
ac40bd5f5d
Optimize ecMul precompile (scalar multiplication on BN254) (#852)
* windowed mul

* Working

* Window of 4 bits

* Fix

* Comments

* Unroll loop

* Unroll loop

* remove global

* Minor

* Minor

* Implement `CALLVALUE, CALLDATALOAD, CALLDATASIZE, CALLDATACOPY` in interpreter

* Minor

* Doesn't work

* Minor

* Minor

* wnaf msm

* Working hardcoded values: 28657 opcodes

* Working wnaf

* Small wnaf optim

* Precompute works

* Working together

* Bump to 129 bits

* Working glv decomposition

* Working MSM with GLV

* Almost working

* Working

* ECC test folder

* Working with real sig data

* Fix tests + Clippy

* Minor

* Cleaning

* Comments

* Cleaning

* Smaller glv test file

* Print opcode count at the end of interpreter run

* More constants

* Add z3 proof that the GLV scalars are 129-bit or less

* Minor change to z3 proof

* Move files and renaming fns

* Testing

* Fix BN GLV

* BN precompute table

* Working precompute

* Working bn tests

* Working

* Minor

* Minor

* Use MULFP254

* Minor

* Merge conflicts

* Remove unused asm file

* ECC fns renaming (#874)

* PR feedback
2023-02-13 20:11:32 +01:00
wborgeaud
ca002aeafa
Optimize ecrecover ASM (#840)
* windowed mul

* Working

* Window of 4 bits

* Fix

* Comments

* Unroll loop

* Unroll loop

* remove global

* Minor

* Minor

* Implement `CALLVALUE, CALLDATALOAD, CALLDATASIZE, CALLDATACOPY` in interpreter

* Minor

* Doesn't work

* Minor

* Minor

* wnaf msm

* Working hardcoded values: 28657 opcodes

* Working wnaf

* Small wnaf optim

* Precompute works

* Working together

* Bump to 129 bits

* Working glv decomposition

* Working MSM with GLV

* Almost working

* Working

* ECC test folder

* Working with real sig data

* Fix tests + Clippy

* Minor

* Cleaning

* Comments

* Cleaning

* Smaller glv test file

* Print opcode count at the end of interpreter run

* More constants

* Add z3 proof that the GLV scalars are 129-bit or less

* Minor change to z3 proof

* Minor

* Hamish's suggestion

* Working

* Cleaning

* Clippy

* PR feedback

* Minor PR feedback
2023-01-31 19:23:54 +01:00
Nicholas Ward
24d6627a62 addressed comments 2022-12-13 10:08:36 -08:00
Nicholas Ward
2e62ac1b63 cleanup 2022-12-13 10:08:36 -08:00
Nicholas Ward
778aec627b rename blake -> blake2b 2022-12-13 10:08:36 -08:00
Nicholas Ward
0d05a4bbbf FIX 2022-12-13 10:08:36 -08:00
Nicholas Ward
54a2e96473 progress 2022-12-13 10:08:36 -08:00
Nicholas Ward
dd29ec1f46 fixes and test infrastructure 2022-12-13 10:08:30 -08:00
Nicholas Ward
609ed6c984 fixes 2022-12-13 10:08:16 -08:00
Nicholas Ward
d3e5feba83 Blake progress 2022-12-13 10:08:16 -08:00
Nicholas Ward
6e782a1a1e Blake progress 2022-12-13 10:08:16 -08:00
Nicholas Ward
efa80edaa9 blake initial 2022-12-13 10:08:16 -08:00
Daniel Lubarov
f4ab65f973 Fixes to get test_simple_transfer working 2022-12-08 23:27:20 -08:00
Daniel Lubarov
d23cecfcd8 Kernel code to do jumpdest analysis 2022-11-21 13:06:03 -08:00
Hamish Ivey-Law
1c87fbb712
EVM shift left/right operations (#801)
* First parts of shift implementation.

* Disable range check errors.

* Tidy up ASM.

* Update comments; fix some .sum() expressions.

* First full draft of shift left/right.

* Missed a +1.

* Clippy.

* Address Jacqui's comments.

* Add comment.

* Fix missing filter.

* Address second round of comments from Jacqui.
2022-11-09 10:47:15 +11:00
Jacqueline Nabaglo
626c2583de
Combine all syscalls into one flag (#802)
* Combine all syscalls into one flag

* Minor: typo

* Daniel PR comments
2022-11-07 12:29:28 -08:00
wborgeaud
68107502df Merge branch 'main' into account_code_opcodes
# Conflicts:
#	evm/src/cpu/kernel/aggregator.rs
#	evm/src/cpu/kernel/tests/mod.rs
2022-11-02 13:46:14 +01:00
wborgeaud
313402de02
Merge pull request #797 from mir-protocol/balance
Implement `(SELF)BALANCE`
2022-11-02 13:44:29 +01:00
wborgeaud
70b5dda399 Merge branch 'main' into account_code_opcodes 2022-11-02 10:43:35 +01:00
wborgeaud
6ed6574272 Balance 2022-10-28 11:15:43 +02:00
Dmitry Vagner
fa05a33040 Merge branch 'main' of github.com:mir-protocol/plonky2 into Fp12 2022-10-28 02:03:47 -07:00
wborgeaud
560b9b2a97 Finish extcodecopy 2022-10-21 18:11:27 +02:00
Dmitry Vagner
7d4cec55fb fp6 mul 2022-10-20 16:18:41 -04:00
Dmitry Vagner
3b8b812f46 aggregator 2022-10-18 11:30:21 -04:00
Dmitry Vagner
041fda134f capitalization?? 2022-10-18 10:57:20 -04:00
Dmitry Vagner
0847d9885d alphabetical 2022-10-18 10:42:11 -04:00
Daniel Lubarov
9639ff22dc MPT storage logic 2022-10-17 22:46:48 -07:00
Dmitry Vagner
b9a1b4413d move fp6mul and add more comments 2022-10-18 00:21:12 -04:00
Dmitry Vagner
cc9559d954 Merge branch 'main' of github.com:mir-protocol/plonky2 into Fp12 2022-10-18 00:08:03 -04:00
Dmitry Vagner
3cff0928c4 better test API 2022-10-17 11:02:24 -04:00
Daniel Lubarov
f125786d9b More directories for MPT logic 2022-10-16 22:55:09 -07:00
Daniel Lubarov
7f366cdace Treat storage tries as sub-tries of the state trie
I.e. have leaves in the state trie point to the root of a storage trie
2022-10-16 20:26:37 -07:00
Dmitry Vagner
e01c91bdf0 Merge branch 'main' of github.com:mir-protocol/plonky2 into Fp12 2022-10-13 17:08:44 -04:00
Dmitry Vagner
d1bad81985 stuff 2022-10-12 10:06:34 -04:00
Daniel Lubarov
cad0473e1d More MPT insert logic 2022-10-10 09:40:28 -07:00
Daniel Lubarov
6bb1ad94e8 MPT insert logic, part 1 2022-10-08 22:27:57 -07:00
Daniel Lubarov
817156cd47 Begin MPT insert 2022-10-08 13:23:00 -07:00
Dima V
dd6c5a0d1a
Merge pull request #640 from mir-protocol/ripeMD
RipeMD
2022-10-03 15:49:04 -07:00
Dmitry Vagner
54885fefa0 fix merge problem 2022-10-03 14:57:04 -07:00
Daniel Lubarov
66c28e953d Unroll num_bytes
Since it's in some code paths where speed is critical.
2022-10-03 14:42:11 -07:00
Dmitry Vagner
d42250d677 merge 2022-10-03 14:25:33 -07:00
Nicholas Ward
43df58ea18 alphabetical 2022-10-03 14:10:10 -07:00
Nicholas Ward
99fb730aea rearranging and cleanup 2022-10-03 14:07:21 -07:00
Nicholas Ward
9ee861fb15 minor fixes 2022-10-03 13:43:03 -07:00
Nicholas Ward
1e03c438e0 moved memory functions to memory ASM file (not sha2) 2022-10-03 13:34:16 -07:00
Nicholas Ward
cad56263f4 fix 2022-10-03 13:34:16 -07:00
Nicholas Ward
e652ef922b simplification and documentation 2022-10-03 13:34:16 -07:00
Nicholas Ward
0394fa3fba cleaned up test 2022-10-03 13:34:16 -07:00
Nicholas Ward
67e19fd7c9 fix of message schedule 2022-10-03 13:34:16 -07:00
Nicholas Ward
42019264ad compression 2022-10-03 13:34:16 -07:00