464 Commits

Author SHA1 Message Date
wborgeaud
8647f144b7
Merge pull request #716 from mir-protocol/s/l1/l0
Change Lagrange polynomial notation
2022-09-13 12:57:20 +02:00
wborgeaud
a930c1a823 s/l1/l0 2022-09-12 08:09:17 +02:00
Nicholas Ward
e4ab93fe9a
Merge pull request #714 from mir-protocol/stack-manipulation-blocks
blocks in stack manipulation
2022-09-11 23:00:39 -07:00
Jacqueline Nabaglo
cae5f4870c
Stack pointer + underflow/overflow checks (#710)
* Stack pointer + underflow/overflow checks

* Daniel comments

* Extra docs
2022-09-10 13:20:30 -07:00
Nicholas Ward
0b9881c5e3 blocks in stack manipulation 2022-09-09 12:05:58 -07:00
Daniel Lubarov
09f062481a
Merge pull request #705 from mir-protocol/packed_len_div
Use `ceil_div_usize` for `PACKED_LEN`
2022-09-08 09:59:31 -07:00
Daniel Lubarov
19162db596 Tweak features 2022-09-07 15:10:40 -07:00
Sladuca
e72152eed8 fix default features in starky & evm 2022-09-06 14:56:48 -04:00
BGluth
c874fc5488
Merge pull request #704 from mir-protocol/partial_trie_derive
Added a few derives to `Trie` types
2022-09-06 07:14:30 -07:00
Daniel Lubarov
9b259cb917 Feedback 2022-09-05 10:12:23 -07:00
Daniel Lubarov
aaf7ace396 Remove JUMPDESTs 2022-09-04 22:31:56 -07:00
Daniel Lubarov
99999f1697 Use ceil_div_usize for PACKED_LEN 2022-09-04 22:28:45 -07:00
Daniel Lubarov
f2f291606b
Merge pull request #702 from mir-protocol/keccak_sponge_table_v2
Keccak sponge STARK
2022-09-04 22:21:21 -07:00
Daniel Lubarov
496581cfa1 fix 2022-09-04 17:07:06 -07:00
Daniel Lubarov
46cf46ccd8 Minor 2022-09-04 16:56:17 -07:00
Daniel Lubarov
c9cfcecc9f Logic CTL for xor 2022-09-04 16:53:04 -07:00
Daniel Lubarov
d392ec04e7 Feedback 2022-09-03 23:02:06 -07:00
BGluth
0a3455ce48 Added a few derives to Trie types
- A downstream project needed `Hash` on `Nibbles`, but I also thought it
  made sense to derive a few other core types as well.
2022-09-02 16:18:54 -07:00
Nicholas Ward
df15031145 clippy: remove unused 'peekable' 2022-09-02 15:40:24 -07:00
Daniel Lubarov
2c77247d43 Keccak sponge STARK
It contains a row for each absorb step of the sponge.
2022-09-01 09:41:19 -07:00
BGluth
ccc2a56b81 Added let_chains feature gates
- Nightly decided to move this behind a feature gate and caused builds
  to fail.
2022-09-01 09:40:39 -07:00
Jacqueline Nabaglo
4c52d37546
Save columns by verifying invalid opcodes in software (#701)
* Save columns by verifying invalid opcodes in software

* Autogenerate invalid opcode bitfield (Daniel comment)

* Remove unnecessary panic label
2022-08-30 13:06:03 -07:00
Daniel Lubarov
8505d64e37 Fill in keccakf_u32s 2022-08-30 12:28:08 -07:00
Jacqueline Nabaglo
013bf6471d
Transpose memory columns (make it an array of channel structs) (#700) 2022-08-26 22:05:16 -07:00
Jacqueline Nabaglo
f48de368a9
Make jumps, logic, and syscalls read from/write to memory columns (#699)
* Make jumps, logic, and syscalls read from/write to memory columns

* Change CTL convention (outputs precede inputs)

* Change convention so outputs follow inputs in memory channel order
2022-08-26 14:39:39 -07:00
wborgeaud
e7edfdd6a3 Minor 2022-08-26 18:30:26 +02:00
wborgeaud
a1941308eb Minor 2022-08-26 11:07:16 +02:00
wborgeaud
05c3c4d907 First pass 2022-08-26 10:12:45 +02:00
Daniel Lubarov
aae9e49e90
Merge pull request #696 from mir-protocol/public_memory
Public memory, part 1
2022-08-25 23:48:01 -07:00
Daniel Lubarov
a4300758b4 Fix test 2022-08-25 23:38:39 -07:00
Daniel Lubarov
d0be79e822 Feedback 2022-08-25 23:35:38 -07:00
Daniel Lubarov
66a3999679 Keccak generation tweak 2022-08-25 23:13:29 -07:00
Daniel Lubarov
b829b44dcf Fix test 2022-08-25 22:11:25 -07:00
Daniel Lubarov
aa87f2c3ba Public memory 2022-08-25 20:19:18 -07:00
Hamish Ivey-Law
50c9638b55
EVM arithmetic unit: unsigned comparisons (#688)
* Refactor u256 calculation; return cy/br from calculations.

* Implement less than and greater than operations.

* Add file documentation.
2022-08-26 09:13:47 +10:00
Daniel Lubarov
9671c1e535
Merge pull request #669 from mir-protocol/keccak_memory
Keccak memory stark
2022-08-25 15:55:48 -07:00
Daniel Lubarov
30cc318cde Feedback 2022-08-25 14:45:56 -07:00
Daniel Lubarov
d9c210b26c Remove compressed proofs in EVM crate
Not needed since EVM proofs are wrapped in recursive proofs.
2022-08-25 12:17:31 -07:00
Jacqueline Nabaglo
f1a5b7b2d1
Delete opcode column (#672) 2022-08-25 11:56:25 -05:00
Daniel Lubarov
6b3853592b Feedback 2022-08-25 08:05:39 -07:00
Daniel Lubarov
ff228c9386 Have witness generation take a partial trie instead of Merkle proofs 2022-08-24 20:43:49 -07:00
Daniel Lubarov
095140fda5 Use KECCAK_WIDTH_BYTES 2022-08-24 20:10:58 -07:00
Daniel Lubarov
4112065692 Fix 2022-08-24 16:06:50 -07:00
Daniel Lubarov
fb34b09888 Remove keccak_rust in favor of tiny-keccak
`keccak_rust` doesn't seem to have much usage, and it treats `x` as the major axis of its 5x5 input.  This is not exactly wrong, since Keccak itself doesn't have a notion of axis order. However, there is a convention for mapping bits of the cube to a flat list of bits, which is

> The mapping between the bits of `s` and those of `a` is `s[w(5y + x) + z] = a[x][y][z]`.

Obeying this convention would be awkward with `keccak_rust` - the words in memory would need to be transposed.
2022-08-24 15:48:02 -07:00
Daniel Lubarov
c140555f2b Fix 2022-08-24 11:53:27 -07:00
Daniel Lubarov
74cb9074d6 Minor fixes 2022-08-24 11:51:30 -07:00
Daniel Lubarov
522cac5e15 Keccak memory stark 2022-08-24 09:29:17 -07:00
Daniel Lubarov
c38a98f9e4 Simpler CPU <-> memory CTL 2022-08-23 23:38:28 -07:00
Daniel Lubarov
8e220ac623 Fix for CTL challenges
See this line -

```rust
challenges: ctl_data.challenges.challenges[i % config.num_challenges],
```

This doesn't work if we have multiple lookers from the same table; then `zs_columns` will contain multiple contiguous entries for the same challenge.

We could fix the index calculation, but it seems a bit error-prone. Seems easier to store the specific challenge as part of `zs_columns`.
2022-08-23 23:30:52 -07:00
Daniel Lubarov
782d7d0e18
Revert "Support accessing local row in CTLs" 2022-08-23 12:22:54 -07:00