l1tx
l2tx
l2tx
s from users, verifies them, generates witness and proof, and sends it to the zkevm verifier. They use a l1tx
to provide these proofs to the zkevm verifier.barryWhiteHat Possibly can remove slot if we can use custom constarints
barryWhiteHat possibly can remove hte notation of multislto opcodes as every opcode would be multiple slots.
TODO: reconsider the name
slot
. it is used in the Solidity docs to refer to a location in storage ("storage slot"): https://docs.soliditylang.org/en/v0.6.8/internals/layout_in_storage.htmlcan we just rename
slot
->row
? as in circuit row
ying tong
My understanding of row is that it is similar to constriant. Which means that a slot can contian multiple rows. Is this correct ?
barryWhiteHat
"row" and "constraint" are not interchangeable in my understanding:
the witnessed values in our circuit are arranged in a matrix, where each column is a Lagrange polynomial, and each row is an offset in the polynomial's terms.
so the values in a single row could have multiple constraints applied to them; conversely, one constraint could involve values from multiple rows.
ying tong
barryWhiteHat
Okay that makes sense. A single constraint can use multiple rows. And the number of rows an opcode uses is that opcodes slot. Does that make sense ? Do you think we need names for both row and slot ?
ying tong
in planning the circuit layout, it may be more useful to track no. of rows than to track no. of constraints.
slot_counter
and don't increment the program counter.would it be accurate to say that the Global Counter counts the number of reads and writes?
ying tong
Yes But it is also used to distinguis between where you are in a multi slot opcode. For call data copy you use global counter to move to the next step during that step.
I feel global counter is very important and used in many places to guarentee many things.
We use it in our arguments about security https://hackmd.io/Hy_nqH4yTOmjjS9nbOArgw#Proof
barryWhiteHat
TODO: types
ying tong
Similar to a bus in a traditional computer the bus_mapping
is used to transfer information from storage, memory and stack ops to the EVM proof.
A global counter that increments for every slot of the EVM proof.
The id of the transaction/separate call context we are currently executing
Is the value of program_index
to the opcode we need to verify. Where program_index
is the location of an opcode in the L2 contract.
The location of an opcode in the L2 smart contract's bytecode.
A Memory key-value mapping of global_counter
-> index
-> value
Defines the type of memory action this is. For example 0 is read , 1 is write.
A key-value mapping for storage reads/writes. global_counter
-> index
-> value
Defines what type of storage op to do.
A key-value mapping for each stack op.
Defines the type of stack op
This is the current opcode to execute.
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing