3122 Commits

Author SHA1 Message Date
Daniel Lubarov
b0be6d7e8a Serialization refactor
Followup to #806.

A few goals here
- Zero dependencies on std. (Previously deserialization depended on std for `Cursor`.)
- Provide a single (memory buffering) impl of `Write` to make sure there's no confusion. (Previously `Buffer` and `Vec<u8>` both implemented it.)
- Move closer to the `std::io` APIs. Hopefully they will be available without std at some point (there have been some discussions...).

More specifically, this
- Changes `Buffer` to not use std's `Cursor`.
- Removes `impl Write` for `Buffer`, since it's implemented for `Vec<u8>`.
- Adds a concrete I/O error type to mimic `std::io`'s.
- Combines `Position` and `Size` into `Remaining`.
2022-11-20 09:37:18 -08:00
Hamish Ivey-Law
2501386004
Add missing feature to field crate. (#818) 2022-11-18 15:00:58 +11:00
Daniel Lubarov
7691758084 Merge branch 'openzklib-feat/no-std-support' 2022-11-17 13:08:27 -08:00
Daniel Lubarov
af2349e924 Imports 2022-11-17 12:49:19 -08:00
Daniel Lubarov
0ed92ab878 workflow_dispatch 2022-11-17 12:28:49 -08:00
Daniel Lubarov
0271817730 workflow_dispatch 2022-11-17 12:27:43 -08:00
Daniel Lubarov
9a43084f94 Merge branch 'feat/no-std-support' of https://github.com/openzklib/plonky2 into openzklib-feat/no-std-support 2022-11-17 12:17:22 -08:00
Daniel Lubarov
7720ff3799
Merge pull request #815 from mir-protocol/fri_pow_in_transcript
Include the FRI prover's PoW witness in the transcript
2022-11-17 12:08:48 -08:00
Daniel Lubarov
1732399f05 Remove comment 2022-11-17 12:08:33 -08:00
Daniel Lubarov
e22da77b34 Include the FRI prover's PoW witness in the transcript
We don't think this is required for soundness, but just to remove any doubt.

Old protocol:
```
...
P sends final_poly
V samples random r
P sends pow_witness (not in transcript)
V computes pow_response = H(r, pow_witness)
V asserts pow_response has N leading 0s
...
```

New protocol:
```
...
P sends final_poly
P sends pow_witness
V samples random pow_response
V asserts pow_response has N leading 0s
...
```
2022-11-17 12:08:11 -08:00
Daniel Lubarov
d2bd64f83f
Merge pull request #814 from mir-protocol/randomize_pi_wires
Randomize unused wires of PublicInputGate
2022-11-17 12:07:49 -08:00
Brandon H. Gomes
65d106bc31
chore: remove derivative dependency as non-crucial
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-15 16:26:43 -05:00
Brandon H. Gomes
2520bd62c6
chore: match hashbrown ahash dependency
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-15 16:14:07 -05:00
Brandon H. Gomes
812a5d468a
chore: merge branch main
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-15 01:54:30 -05:00
Brandon H. Gomes
289498e854
fix: address review comments
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-15 01:52:27 -05:00
Brandon H. Gomes
14c2a6dd1f
Fork Update (#3)
* Use static `KERNEL` in tests

* Print opcode count

* Update criterion

* Combine all syscalls into one flag (#802)

* Combine all syscalls into one flag

* Minor: typo

* Daniel PR comments

* Check that `le_sum` won't overflow

* security notes

* Test reverse_index_bits

Thanks to Least Authority for this

* clippy

* 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.

* Remove signed operation placeholders from arithmetic table. (#812)

Co-authored-by: wborgeaud <williamborgeaud@gmail.com>
Co-authored-by: Daniel Lubarov <daniel@lubarov.com>
Co-authored-by: Jacqueline Nabaglo <jakub@mirprotocol.org>
Co-authored-by: Hamish Ivey-Law <426294+unzvfu@users.noreply.github.com>
2022-11-15 01:51:29 -05:00
Daniel Lubarov
7eb0c74166 Randomize unused wires of PublicInputGate 2022-11-14 14:53:06 -08:00
Hamish Ivey-Law
56e291cf4e
Remove signed operation placeholders from arithmetic table. (#812) 2022-11-11 15:09:56 +11: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
Daniel Lubarov
7126231b52
Merge pull request #811 from mir-protocol/test_reverse_index_bits
Test reverse_index_bits
2022-11-08 13:56:34 -08:00
Daniel Lubarov
624dabb9e3 clippy 2022-11-08 13:06:01 -08:00
Daniel Lubarov
c622e45246 Test reverse_index_bits
Thanks to Least Authority for this
2022-11-08 12:27:55 -08:00
Daniel Lubarov
692ad9399e
Merge pull request #810 from mir-protocol/le_sum_check
Check that `le_sum` won't overflow
2022-11-08 12:20:12 -08:00
Daniel Lubarov
882297877c security notes 2022-11-08 12:03:58 -08:00
Daniel Lubarov
cab6c18ed6 Check that le_sum won't overflow 2022-11-08 11:55:02 -08: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
Daniel Lubarov
98b9f3a462
Merge pull request #809 from mir-protocol/update_criterion
Update criterion
2022-11-07 12:06:24 -08:00
Daniel Lubarov
3dcc0c257e Update criterion 2022-11-07 11:28:24 -08:00
wborgeaud
ce21d134a5
Merge pull request #804 from mir-protocol/static_kernel_in_tests
Use static `KERNEL` in tests
2022-11-07 09:18:49 +01:00
wborgeaud
873f4583f9
Merge pull request #805 from mir-protocol/opcode_count_interpreter
Print opcode count
2022-11-07 09:17:46 +01:00
Brandon H. Gomes
9431fd7448
chore: add missing documentation in serialization trait
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-05 10:59:46 -07:00
Brandon H. Gomes
7e432bd6cc
feat: add serialization documentation
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-04 16:47:02 -07:00
Brandon H. Gomes
9e33310ee7
feat: add no-std support for insertion gate
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-04 16:26:22 -07:00
Brandon H. Gomes
5dfe1b412e
feat: add no-std support for starky
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-04 16:04:10 -07:00
wborgeaud
4bc2e05702 Print opcode count 2022-11-04 14:38:23 +01:00
wborgeaud
47e6093e37 Use static KERNEL in tests 2022-11-04 13:55:13 +01:00
Brandon H. Gomes
9f4dc3464e
fix: add architecture gating for inline-assembly
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-03 20:04:57 -07:00
Brandon H. Gomes
fc3f63398d
wip: start moving starky to no-std
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-03 12:17:03 -07:00
Brandon H. Gomes
38e467f1c0
chore: fix serde-cbor and run cargo-sort
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-03 11:41:12 -07:00
Brandon H. Gomes
703d2c3c95
wip: start plonky2_u32 and plonky2_ecdsa no-std impl
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-03 10:58:55 -07:00
Brandon H. Gomes
e2cdd5a954
feat: upgrade Sampling APIs
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-03 08:26:03 -07:00
Brandon H. Gomes
4aaf57e9a9
feat: separate reading and writing to get infallible writers
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-02 21:07:51 -07:00
Brandon H. Gomes
7a81c5d46a
feat: move to alloc for Vec/String/Box
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-02 19:59:12 -07:00
Brandon H. Gomes
6fd0da216a
fix: remove unstable features from plonky2
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-02 17:50:31 -07:00
Brandon H. Gomes
11600b93c0
fix: do a first round of a core replacement
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-02 16:54:41 -07:00
Jacqueline Nabaglo
ea7fbed33a
Constrain mem_channel.used flag to be binary (#800) 2022-11-02 10:14:33 -07:00
BGluth
0293a65a55 Fixed bad PR merge 2022-11-02 09:45:52 -06:00
BGluth
35e8f282e4
Merge pull request #792 from mir-protocol/eth_trie_utils_0_3_0
Bumped `eth_trie_utils` to `0.4.0`
2022-11-02 09:34:26 -06:00
wborgeaud
0066f079bb
Merge pull request #796 from mir-protocol/account_code_opcodes
Implement `EXTCODEHASH, (EXT)CODESIZE, (EXT)CODECOPY`
2022-11-02 13:53:44 +01: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