aszepieniec

Results 37 issues of aszepieniec

This writeup introduces a *contiguity argument*, which is a Polynomial IOP / RAP hybrid for establishing that the set of values is distributed contiguously across an evaluation domain. Phrased crudely,...

Add TIP-0002: multi-table subset argument

Yuncong's (@yczhangsjtu's) attack may apply whenever the correct sorting of memory tables is not enforced. It reads an inconsistent value from memory even though the memory table's AIR is satisfied...

🕵 investigation
🔴 prio: high

Except for the Hash Table, all constraints are represented as multivariate polynomials using the `MPolynomial` struct. This representation is both more reflective of the underlying maths that makes STARKs work...

🟡 prio: medium
🤖 code

Instruction Buckets are cumbersome. A tiny change in the ISA throws the instruction buckets into disarray. Getting the constraints right is challenging. I propose to get rid of instruction buckets...

🟡 prio: medium
🤖 code

This PR fixes the proof system with respect to memory consistency. More specifically, it updates table population and extension, and defines constraints for memory consistency in accordance with TIPs [0001](https://github.com/TritonVM/triton-vm/blob/master/tips/tip-0001/tip-0001.md)...

📜 specification
🔴 prio: high

Cross-table arguments like Evaluation Arguments and Permutation Arguments need an extension column on both tables to compute a running evaluation or running product. This correct computation is not verified, to...

🔴 prio: high
🤖 code

Currently, the number of challenges is hardcoded in `challenges.rs`, near the top: ``` impl AllChallenges { pub const TOTAL_CHALLENGES: usize = 130; .... } ``` All challenges have a specific...

💫 good first issue
✨ enhancement
🟢 prio: low
🤖 code

For the purpose of U32 operations, this note proposes an alternative to relying on a separate table with corresponding table relations. It describes how the `split` instruction is powerful enough...

Bug-hunt 2aed4267c0a21d4e6b6212b263c64433abc0c0d4 identified two types of errors that can occur when running the VM. 1. Rust produces a "`failed to fill whole buffer`" message. This is probably related to stdin/secret_in...

🧑‍🤝‍🧑 help wanted
🛠️ tooling
✨ enhancement
🟢 prio: low
🤖 code