Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
181df49
Specify the unified MEMMOVE accelerator
nicole-graus Sep 11, 2026
1d9d6e8
Correct the MEMW_A admission condition and the memset limb-boundary c…
nicole-graus Sep 11, 2026
a432246
tighten the chapter
nicole-graus Sep 11, 2026
463875b
Align the chapter with conventions
nicole-graus Sep 11, 2026
0b91690
Update spec/chapters/memmove.typ
nicole-graus Sep 16, 2026
eaa5f1a
Merge tail and count_lt8 into one single bit
nicole-graus Sep 16, 2026
6e06e36
Route the commit write through MEMW by deriving its memory domain fro…
nicole-graus Sep 16, 2026
e41c266
Derive the top halfword of each position increment instead of storing it
nicole-graus Sep 16, 2026
da84f64
change 'not discharged' by 'no guarantee'
nicole-graus Sep 16, 2026
8d517ce
reword 'line' by 'linear function'
nicole-graus Sep 16, 2026
cbcee41
fix link
nicole-graus Sep 16, 2026
4276da1
rename MEMMOVE as COPY
erik-3milabs Sep 24, 2026
55fec43
complete rewrite
erik-3milabs Sep 29, 2026
567a0d8
Update standardization section
erik-3milabs Sep 29, 2026
defbd4e
various fixes
erik-3milabs Sep 30, 2026
1430e98
Apply batched suggestions from code review
erik-3milabs Oct 1, 2026
c3b0430
Move memset to -31
erik-3milabs Oct 1, 2026
4e681b3
drop add_nw
erik-3milabs Oct 1, 2026
6cd3a2e
drop old COMMIT chip
erik-3milabs Oct 1, 2026
5a46c38
address comments
erik-3milabs Oct 1, 2026
00d0bd7
exactly when
erik-3milabs Oct 1, 2026
707f2cf
Apply suggestion from @erik-3milabs
RobinJadoul Oct 2, 2026
3f73300
Apply batched suggestions from code review
erik-3milabs Oct 2, 2026
58ce060
address review comments
erik-3milabs Oct 2, 2026
47302e4
fix borrow
erik-3milabs Oct 2, 2026
0284bbd
address "compile" remark
erik-3milabs Oct 2, 2026
a6ecb78
fix issue
erik-3milabs Oct 2, 2026
f70170f
Minor textual improvements
RobinJadoul Oct 5, 2026
16e8c1a
Full pass
RobinJadoul Oct 5, 2026
1cfe1c0
Remove double mult and double signature
RobinJadoul Oct 5, 2026
720e67a
Bring back higher-level explanation of committing
RobinJadoul Oct 8, 2026
6f5f9f6
Apply batched suggestions from code review
RobinJadoul Oct 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion spec/chapters/about_ecalls.typ
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ where `A0`-`A7` are symbolic names for the registers `x10`-`x17`
We provide a list of supported ECALL numbers.
Negative numbers (represented as 2s complement 64-bit numbers), are used for our own custom accelerators/extensions.

/ 64: `write` (@commit)
/ 64: `write` (@copy)
/ 93: `exit` (@halt)
/ -1: `SHA256` (@sha256)
/ -2: `KECCAK` (@keccak)
Expand All @@ -35,3 +35,20 @@ Negative numbers (represented as 2s complement 64-bit numbers), are used for our
/ -20: `FEXT_LOAD` (@fext)
/ -21: `FEXT_FMA` (@fext)
/ -22: `FEXT_ZERO` (@fext)
/ -30: `memcpy`/`memmove` (@copy)
/ -31: `memset` (@copy)
Comment thread
RobinJadoul marked this conversation as resolved.
Resolved

== Committing to values

To make a claim about a public value to the verifier, a guest program can _commit_ to it.
In this VM, this is achieved by writing to `stdout`, with a write syscall to file descriptor 1.
Values are committed by letting the verifier initialize and finalize the global memory argument
(see @memory and @streaming), with the claimed commitments in its own domain separated part of memory,
with domain separator value 2.#footnote[
To make sure the verifier can properly finalize the committed values, the last epoch can "bring forward"
all commitments from earlier epochs, similar to padded values, in the `L2G` table.
Then the contribution of the commitments only consists of the tuples `(2, address, last_epoch_index, value)`, which is entirely known to the verifier.
]
In doing this, we enforce that all values being committed match the claimed commitment.
The verifier should additionally check that register 254 contains the total number of bytes committed.
The technical details on how the copy to memory domain 2 is achieved can be found in @copy, where `write` is implemented.
124 changes: 0 additions & 124 deletions spec/chapters/commit.typ

This file was deleted.

Loading
Loading