2479 Commits

Author SHA1 Message Date
Daniel Lubarov
748496442b Include degree in circuit digest 2022-08-24 10:28:50 -07:00
Daniel Lubarov
522cac5e15 Keccak memory stark 2022-08-24 09:29:17 -07:00
Daniel Lubarov
54862cb71c
Merge pull request #687 from mir-protocol/simpler_memory
Simpler CPU <-> memory CTL
2022-08-24 07:05:10 -07:00
Daniel Lubarov
3a73b7333e
Merge pull request #689 from mir-protocol/ctl_challenge_fix
Fix for CTL challenges
2022-08-24 06:46:47 -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
BGluth
881dceb154
Merge pull request #679 from mir-protocol/build_artifact_caching
Added caching for GitHub Workflows
2022-08-23 14:55:33 -06:00
Daniel Lubarov
9da698f08d
Merge pull request #686 from mir-protocol/revert-682-ctl_prev
Revert "Support accessing local row in CTLs"
2022-08-23 12:23:18 -07:00
Daniel Lubarov
782d7d0e18
Revert "Support accessing local row in CTLs" 2022-08-23 12:22:54 -07:00
Daniel Lubarov
c3c213350f
Merge pull request #685 from mir-protocol/deterministic_iteration_order
Enumerate `constants_to_targets` in a deterministic order
2022-08-23 11:59:27 -07:00
Daniel Lubarov
cc02371e92
Merge pull request #682 from mir-protocol/ctl_prev
Support accessing local row in CTLs
2022-08-23 11:26:59 -07:00
Daniel Lubarov
1b9c4778d8 Enumerate constants_to_targets in a deterministic order
Fixes #684.
2022-08-23 11:25:00 -07:00
Daniel Lubarov
00081890f3 feedback 2022-08-23 10:23:28 -07:00
Daniel Lubarov
03657643c8
Merge pull request #680 from qope/ECDSAPublicKeyTarget_ECDSASecretKeyTarget_public_fields
Change visibility of `ECDSASecretKeyTarget` and `ECDSAPublicKeyTarget`'s fields
2022-08-22 23:54:23 -07:00
Daniel Lubarov
ce456fb8ea
Merge pull request #665 from mir-protocol/trie_metadata
Trie related segments and metadata
2022-08-22 17:30:28 -07:00
Daniel Lubarov
a37dec9881 Support accessing previous row in CTLs 2022-08-22 15:20:10 -07:00
BGluth
47753e08d5 Testing forcing caching of local packages 2022-08-22 15:15:48 -06:00
Daniel Lubarov
776b93e1ac
Merge pull request #681 from mir-protocol/poly_values_check
Check each `PolynomialValues` len
2022-08-22 11:32:53 -07:00
Daniel Lubarov
e87392bdba comment 2022-08-22 11:32:36 -07:00
Daniel Lubarov
464b23297c Check each PolynomialValues len
I.e. that it is the length of some power-of-two subgroup.
2022-08-22 11:16:24 -07:00
qope
2191296639 Change visibility of ECDSASecretKeyTarget and ECDSAPublicKeyTarget's fields 2022-08-22 19:46:44 +09:00
Daniel Lubarov
8a8b3f36aa
Merge pull request #678 from proxima-one/fix-starky-avx
Fix starky avx
2022-08-21 12:06:39 -07:00
BGluth
3c3997b726 Added caching for GitHub Workflows 2022-08-20 14:26:03 -06:00
Daniel Lubarov
3a6bbd825c
Merge pull request #677 from mir-protocol/u160_comments
Tweak comments
2022-08-19 18:28:49 -07:00
Daniel Lubarov
a0de1869c2
Merge pull request #676 from mir-protocol/from_biguint_change
Change `from_biguint`'s behavior with extension fields
2022-08-19 18:28:37 -07:00
Sladuca
ca35502660 fmt 2022-08-19 17:54:48 -04:00
Sladuca
3eadc27be5 add fix to evm 2022-08-19 17:53:12 -04:00
Sladuca
ff961a34a3 fix lost evals when P::WIDTH > 0 2022-08-19 17:39:55 -04:00
Daniel Lubarov
831a671872 Tweak comments 2022-08-19 10:35:02 -07:00
Daniel Lubarov
2fd5fbbe01 Change from_biguint's behavior with extension fields
These appear to be unused for extension fields, so we're free to change the mapping without breaking anything.

As the TODO says, the mapping that's currently implemented doesn't seem natural or useful. It seems more natural to treat the `BigUint` as a base field element, potentially in a non-canonical form.
2022-08-19 09:21:10 -07:00
Daniel Lubarov
cbfc13c33f Minor paper update 2022-08-18 08:50:49 -07:00
Jacqueline Nabaglo
5922c58730
Change logic limb size to 32 bits (#674)
* Change logic limb size to 32 bits

* Remove unnecessary columns (thx Daniel!)
2022-08-17 21:19:27 -07:00
Daniel Lubarov
e3d131b99d Update paper 2022-08-17 16:29:30 -07:00
Daniel Lubarov
24cc29ff71
Merge pull request #673 from mir-protocol/start_at_route_txn
Start with PC=route_txn instead of 0
2022-08-17 12:57:38 -07:00
Daniel Lubarov
bfe86d70f5 Start with PC=route_txn instead of 0 2022-08-17 12:21:29 -07:00
Jacqueline Nabaglo
b98dd47820
Permission levels, jumps, traps (#653)
* Permission levels, jumps, traps

* Tests passing

* PR comments + documentation

* Docs + minor bugfixes

* Tests

* Use already-defined `stop` and `exception` (but renamed to `sys_stop`, `fault_exception`)

* Daniel comments
2022-08-16 09:46:10 -07:00
Daniel Lubarov
a7618ef7df Merge branch 'licenses' 2022-08-16 09:01:16 -07:00
Daniel Lubarov
2bb2be37e0
Merge pull request #668 from mir-protocol/inverse_2exp_comment
Expand inverse_2exp comment
2022-08-15 17:17:48 -07:00
Daniel Lubarov
bf4e7ff3b7 Feedback 2022-08-15 17:17:05 -07:00
Daniel Lubarov
c56b7c8118 Expand inverse_2exp comment 2022-08-15 16:17:32 -07:00
Daniel Lubarov
232303b9ec
Merge pull request #666 from mir-protocol/rlp_encode
RLP encoding functions
2022-08-15 12:19:04 -07:00
Daniel Lubarov
97b271bf69
Merge pull request #663 from mir-protocol/use_mstore_txn_field
Make use of `mstore_txn_field` in type 0 parsing
2022-08-15 11:41:18 -07:00
Daniel Lubarov
e9f38ee535
Merge pull request #667 from mir-protocol/keccak_improvement
Improved Keccak implementation
2022-08-15 11:39:56 -07:00
Daniel Lubarov
faa75178a2 MIT + Apache2 licenses 2022-08-15 07:43:00 -07:00
Daniel Lubarov
61819af07d Improved Keccak implementation
Based on the approach @SyxtonPrime described.

In terms of columns, the changes are:
- Store inputs (`A`) as `u32` limbs, rather than individual bits.
- Remove `C_partial`. It was used to store an intermediate product in a 5-way xor, but we've since realized that we can do a 5-way xor directly.
- Add `C_prime`, an intermediate result used to help verify the relation between `A` and `A'`.
2022-08-14 21:33:35 -07:00
Daniel Lubarov
539152d767 RLP encoding functions 2022-08-14 11:41:53 -07:00
Daniel Lubarov
6a7e8d0fb0 Trie related segments and metadata
Summary of the design:
- Tries are stored as immutable, copy-on-write trees
- All trie data is stored in the `TrieData` segment. Since it's immutable, data is never modified/deleted, new versions are just appended at the end.
- In order to support reverts, each context stores a pointer to the initial state trie version, plus the initial version of each storage trie.

One variation which may be worth considering is storing the whole state trie as one big trie (with sub-tries for storage). Reverts would then be simpler - we'd replace a single pointer. I thought that approach might make hashing the trie a bit more complex, as the node associated with an account would be a special type of node, rather than just another leaf. Either approach seems reasonable though.
2022-08-13 13:24:58 -07:00
Daniel Lubarov
f52e005307 Add static 2022-08-13 12:17:19 -07:00
Daniel Lubarov
137076c964 Revert "Add static"
This reverts commit 90c4e1b9d1cad9309c0cbcaeff52c172167b2c1c.
2022-08-13 12:16:19 -07:00
Daniel Lubarov
90c4e1b9d1 Add static 2022-08-13 12:15:42 -07:00