From 7eff4e2751dea6ef67bd09b184599ff97f509ebf Mon Sep 17 00:00:00 2001 From: Hamy Ratoanina Date: Tue, 19 Dec 2023 10:58:09 -0500 Subject: [PATCH] Constrain first offset of a segment (#1397) * Constrain first offset of a segment * Apply comment, revert debugging code * Modify specs * Apply comments --- evm/spec/tables/memory.tex | 5 ++++- evm/spec/zkevm.pdf | Bin 295781 -> 295982 bytes evm/src/memory/memory_stark.rs | 36 ++++++++++++++++++++++++++++----- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/evm/spec/tables/memory.tex b/evm/spec/tables/memory.tex index 883134d6..d39e99b2 100644 --- a/evm/spec/tables/memory.tex +++ b/evm/spec/tables/memory.tex @@ -44,7 +44,7 @@ We then impose the following transition constraints: \item $(1 - e_i) (a_{i + 1} - a_i) = 0$, \item $c_i < 2^{32}$. \end{enumerate} -The last constraint emulates a comparison between two addresses or timestamps by bounding their difference; this assumes that all addresses and timestamps fit in 32 bits and that the field is larger than that. +The third constraint emulates a comparison between two addresses or timestamps by bounding their difference; this assumes that all addresses and timestamps fit in 32 bits and that the field is larger than that. \subsubsection{Virtual memory} @@ -56,6 +56,9 @@ In the EVM, each contract call has its own address space. Within that address sp \end{enumerate} The comparisons now involve several columns, which requires some minor adaptations to the technique described above; we will leave these as an exercise to the reader. +Note that an additional constraint check is required: whenever we change the context or the segment, the virtual address must be range-checked to $2^{32}$. +Without this check, addresses could start at -1 (i.e. $p - 2$) and then increase properly. + \subsubsection{Timestamps} Memory operations are sorted by address $a$ and timestamp $\tau$. For a memory operation in the CPU, we have: diff --git a/evm/spec/zkevm.pdf b/evm/spec/zkevm.pdf index 455491be7a3eb9fd96457e2d7645e161afcc5525..4f4f0a00b0effa6b21385b1cf3e66f00d8f93e83 100644 GIT binary patch delta 46918 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 z zh9>Ln>RdJ!NoEulx%``;p_wkKOPg>rw~Qw956dFF9yY4oHT;9PKTqB#T zrRu*@)F)ibaO%@1SKW2dI)EQ?4J2vi$s_XRpbt*j*1F~T`f-C;_4S!gWq z@VtmGFEnvO_`VD6zVG5Y#{%`$AdVG3Iv^CQy>^y{-yXcSytvx0&ac|9Mo68k?hqK* z>_T{e5OcZXG`>!B7%Z3`R7F$FuXQ7buOnT&MQ7&cYEaL0iEvzU47-Y|>@!qx=DNnX zhtMYmJ*cu1krFumG81xgqx_pVGnf24m8Gk1N=%}EGgVHyt5T=ktkFYMa9U9rVGP1L zI0W}rJPs;y9XXK^k2S&I@ExsN6YtshPGSE7-4~$~_UX@8w6>O}Ew`yAW+ zI2{@<(A}h$leT)!bEL{{r==t3jobgw?QMT;^g|+q4(6L|?AL~Sk$ntU8~!C2JYz1I zF7-{;tZqtIw{^4TjCXomLEFObpnyX8A<6!b>Nh&~A3kaw!(uQo+kXgS`QDvt`vfyw zK#^PE>p($C5aP-);`KV(;PhOFz7IXuS;Gd4L&{L<=L# z$dLA5aU&k6H8;4*4AHW__1Fw36$o07Y+IuaALUrraq=C3tx z18S4Hm$Uu%{oBJXC+b|^zjbjWG`UY@zp|-wX|v}j8pbFPNToOt_xYmB;VCS#qN7YX z5BV*OJ@X{?H)JvX!B+p8`SmYVhPfoKSovJlL!F<}Q}gjUGu0f)a06v?3qZ^I0URU; zh2u`2s$r+0{6g?tN{d;(mr5WWRY(ypYGhtA7713thW$PoQL;&jb4F69)_@4}Ia_z$l>{76d z?=(JhZ3Zb5F8iizdKCB-Uqn*fJrJ`a6%HCs!ay^-@L;z2yIQK4qDnC}DYort8h>lu z0M=p9t+o}JyW-%_#LFf~B3Hm~wzne_%h+bTP+m7CWWQ*dkOtdfX8(i9Qg9j8k+@|n zz3Mik+yYZWj^Z_mI|H@-$OL?a6t5s}VccmNj$zR>oNOVt{zw(U*gBap72szBN&h*7 zJVZ)JjW%&;hqDHJSYDd|sw_9IuQQ}NieE-Q6_UQh-uD6#X-Qef0g146k@yO$bBa^^ zG7@*z=17x%e&`6cDUm1BS-zZfrISiO%a@9iSm}SE9GGo_kD%nsu#WE=;8by7uL8rc zAExVDR()tXA`M}_4+zWS1O310oX{ zxpk9xe1rn)2b+=q$kJ`%Ob9q`bt*l9}~z`$e<{l$e~D1S@UG)FCgBx9iUTFFX_KEK7*-s zAOj>P+_gO^@6+L${gH*(s_?{`geDxPI5Y9J`&xJ#^&|EP4b={iuZLqhL+!~`(yrgl zW}S1Rr;*^_)7|pS_p-SNg*N47W@?`izfTzXO|}ZQ+dO&_7yNMBt^J}iA+^%Q?VpN` zm47C^AR4~S|7bKZTU(e8)CV{)Pw8*`Yq&S)BZ?<1!{FCM08Hll$JlJ& zM@!E9I7aoB5^Vs!j9eQ=jtnuoH#*t(K*$%cSj-Y|?*|g$)0ui6N#>OYW^v z{i%|1g2I$Y!%^m~f+`d%jY@ipw6Ef%iVC|g(*0*=i^V?I)YADy}*3Qb8NTDJk) zSi%ZE>;sw6t`N|Fe}79xbBcyQu^`>YkGPBKIVeI?j*J`%$-BwCIlO5%-ImjOF^YZG z-Tjr8pjSW;Q-m%1kH5E1MyB@)IAOd`5Vk)2d!q2~Yiw;78r;g=yJmNLRTqE9`K1em zmy(4Bc-$rQc zr#DY25KzT&_h%*2d|hSIOc)S9CsfZo;PR<1_bx=U{GCvHU2!Zr_ zOkpj{qK#CK{8MiDJ5QW9ir?i6h=Aj%HCjK*tas@I@$JQb&_jL|feN##ex~z|XzayP z?(CV1<%x(l-f};yvrt*rOlx*(&!6`dd#2u0vX&7`daMaspI{q*@{$M+pWam31qDrp z8Z@pKaW}4KOo!;G)y0PK_`+GZ+5(ZqVn&i%>)SAFGbbhVCO6=b_XY}E=(@n=s?~2z zH$PqC$1IF-_VYOlR+gVydg?P96#jYgnPFTEZYi&`GoJ&s&Q1#gSeRaoyPHs@?u;PQ zaTR>S!L9&J&44E7ReQqs#68P(FPL%er%dIr9&P9GVZaP}1e^Dk zzxW3^Ol>lFF5TL;XRBoQ#my$jd_U!|mv=65YruSRIcH)^&~VEOnWW0cMk4<}jCek@ zTxz^3w+We6pem^)(U&OxG%K=|S?gTlxd99{J6iYMG~5mBYWs#J+608;ww02=9Z}}6 zX0*atvsd^yeRmZ!wp*FMaRI`i6m=LB)2vdoSrNqLyxu*%k?6UT7|i`s?NT}muYXDKUT_e8S1DAO9es0y9P6bC-M;=ol6QNBvI(IZCwyc? zmhk)A8VCUKl#}-RHB( zRXcR3=isjUOG-@J$cBuJ`N{k}Vv{N`i*GD;8ZDR^U_WAO1f=grN}U7N%49p` zqC``rM~;`)(x*ey`MBDV-(xl8Gq}5I%6@A2M6kjAuTqXw*Kl$j5qrY$mAgP%XFj_op$KQefDnQngQGP1A?Al-V<~&EcqqQD9Vvtz4_4ijqUQ zz`)a+rkUd-=>ng4Gldcl@LfkFIOOEvzcI2(h|%9hr-GOFSc^{xFPH`6Ae7ZGGK;BY zn-;_^BB5MbcRa2v&Ew?EfcyN)Gf~1(W%`p3QRCK)tLZQ+@*kc zW>AWI-Z+NSDETZEOxX1*E%wz97F#4FEJ(4iIX2*G{XU-Y!iqdh62=8oFM5!`<)(9} zMHpo<66x0=B3esLiBH&|d-P5aNj@WD_Q|Nm41a)%4@fh?pPQ0I6Kxzo#X#;$&?<9b z2>n^E!_MZ1>>uJT-+MHWyBr;WU`7D_DMM|-i?aa#ssu)=U4V>_HaJv-9@?ctRJ!(w z^#e%E_Pr#is?0m7G^kVso!HIBTgw{Y=X2RmGTr5t;5@+Aezd|8Q1?U3ek{JMEP#(o z&q;kIE}L)lSUscAA-05bu-fwuVU;cyU5~*GW&Jysf)6s?jb@0}L2BY7Ld8_uwD5 zwmmji!5+Rh?}(9@iT&F*7vK8otXyyM1e2z8+)uBbv~-_>S;>sRg;Vy&O&CQv0IPt? z1rH=pm+}UkGOi1U9@at9w9H8uFd+n#GRdLQq(7MJMqmnEvhS>T)y%JJcdha9TwDz8 zu5mo&W5H5WOx#?*KhR`;ucqqY;ZM&}vqG5S9dSiyPCNGjWs#@0ypd~9l130kr`~_1 zql<CInLe zTT>DNpbICI+R3$>L&1WFj&F0&q8(iM8-vqqY1zSH!OWVj<+U&|p?W(M!_PuNGX7S4 z!|Itr76r|*?iJ0_rq-XjyQAZCDx3jU>d#y1@PQGBM_0G5Zi1N(;?`)}9xfD3G~07L zQ(ZazQbQGbkWNE_ScM$9-_(Ev$OQ71aEIX8mXKw}uQGs4ioj51v8O|cy# zOaOl$@xB){d3RUKgPvXiL$h_0{X{9WY{YQ$i&+SnS$bbRFS^MI*J@d0X}{?t){PZS zoRvs@Urb-U)Yto4ufC?)2l36+p|ff}5$JWfeB#_B?C_{uKOA^6wyZ_qqHh!(os}0~ zDW~v36eEA5@kUoW%zfi@b7jk+zm&KkAsp!hGV0r+c^A;J@mfy_Oc@h~cg7)M(@IKr zcpuO3>`r57HWQcUm1;?M6F7aOhqI^>5>qHH@I3w?F9k%oiKd0%6-)FP zv_;fdMM$oA$d)s)XB%u)!?pK3GyAwv!?^DQOi$F|<)qCH3_H%wd~QxTpusvfbP3|O zh0x!yoy~a~c~d@E5mU$k=mc%kQoTK%w|ONNHgRZnWX|A|k9Z3Yw$HR_9*3?X;_u~q z&-Hq3qGUqZKw*I&X5!mG@j>|aWNO$zu>rjz`-po2AU)q>WO(8c=(GJ?!mKsu+ElHcDib9?d)>YKjR=h6kGi*6(G57e2LyD)pwJ*jyTwIlP7E-~Wi%qaLw_|Hh0 z1YSMtm1@CK28D)dB+r~tH$qFaw(CN8Z>mGY%7CEHJ(F|e2k)oeY4j2egL6R)$v_i& z5*8M99`b(ZB0BybTU{2mWRuwR7YR~B!n{fzV{mE*b5Nk!VHdA2I7LT>I38!-qCZRc zi(Omd8FNWzBwii3vq@}AN>NxEz^K0r$$)_SxrP^pR@5*6NOu8DGFnT6rgssd}MStiA)*Y(XEe8#Ly( zf9lNX__$b8zyS)+onaI?uKzRjKoI5D3U!;4mfbL8p=25Bx<-p4^m*~zMAOe58Cmr= z=mJtHkt3l_*YO}-Hwl8oN_AfM6X4J8QLh*@i?pKRjJeO}9ev^qmfsKMbdiU8=soi7#3|G|NSsTtzE3-kJd5b4H$YKDA9#%9Fo0%s%_^G4Eh-#vLEt7e}!bpD!2g7tWsrBXI86KnY+`}~`> z4|e!aMt|!4`_@VIW*)eq`fbKZ@5MjWr|DlEse?h`wo##B_T&Bfba`fzU*0D;#d(xg z=1)5)SqNU%|J?ZT?4f9ZUUwk9^4u-+hx#!FXqioRPRRnb@)!;Kjp3zVvtesC;%`X# z*pdPmRqd z|2ClKiPF0`aHp(IQhHTwDL)9?n6L6Sfd5f+Gr*3F`5uGh)?{A{EaE?S3iW!!WL3OU zwGx2z6$9Xqa>%$+#(<(ll+II|4^fG%5aROOtOGqCCC_s}jgX3`)fUn- zMJqlivlJLs=yFy)`vFn;p{7=*$Nm1C2Y*gB<@i07o}zKru<%1Bcn|RgRgaqw4mI7H zyCaXl@;L#NW0wG69w$HlKC%w2^pk8;Q=8{co$tq(S3}^PyJ}-M9pk+F*ZQtyX1{;% z7@{PoyAzK|t^Y_6r!a#&PA)v34o08q-ESXnC?Uc@UmO4$HYL9c9Os*r>?W-xl$a5m zXSNFg^vQ`l3>)%?Zt||utweiN#={R41%-J0_f+=_f5JYAsWew*jx{%$vx0T;bCFr;3lHqSJI} zhdemR^8*(km^xY8%fIsFk7pyJ)vb@zD(2kfk3VfYT<=phLqdCG^ zg;PP`$1~2ZQ^HOU4{%_2EOOmG)D3^OzomA*g%uMhkT6!WH)oh9BpA3dGzQa|U8;t0 zQYi*%lLmf?9cG3i<31{>x?SAdb8*c2Lht7a1%aTG3TY?0tG-fy+LKLM$N0e8+v|zQ zI}$;T`L>wZMb-25O_KMm=Q~s<^u3%{TD@RtN4hNRN&qD`X%z9DRQi)(oIhT z_jFf0V10<|<=+VD+1H+wRyoCu$ny8J8y=)iJ-E9+zbb;1+2de)#n$)!9b6+l`?(LX zKa4z_8L*tsqdlo|oI6C`jLd;==n@oMIvKZjb079}lN68x6Q8s9^I13N=Ur5Y3xF#} z$3gM0I-fuKg7@yWMGudQl4J4tk^546yEK0+)<;e#XM)_H`H`Q$)%8Y-VoPD*@uEz6 zNRVF<-+`VC;_b1)=v12dXw;4&CP!jHKR>c#@tov8fnXSr%-TCTXZI(0&?J&sjJ`Jx zcmHk?S01GCnPCOd62A1(%Rs{CIG{W;cj3z0QHI|< zevMjERVq%EjbDpWZ*}X%GR@hi<4fD*s4aUfY$QuE7r!6RUR0AB*2M6#$XB!5M?dRKf$7VL+@u2sQTM zDU5yWdO}e>x*iAe1OhFf$tn*!582R6oBkaubp-(YKPl55cQt&Ae{V!T%wsM85VR4C zRA7@~?@e6lI!JDPm-nV0?8?5@T&lLy$Y)UHU+>U`Q)b*VK;QoNXgGArm0D6^@SVeK zs+m{i#w@~Z{Tyi+XRl^Ug%H>%(_>F(#)8j!AqDuy$|guLT2$w_98LF!wdveig{Evd zQDGu-p-a;)nRszBf$q;jagUbamT5`s`8rc<5)>)}e=bgCZoQg^fx4FJ17)Rdi>ZdB zhh!H{EJd-NbcuqIU~Vtl3Rj}+-JkRH68Ps90U|jfl%6~1G@E?S!wMh?bWMlBsOP52 zRl`cHhYxM3H&?V?X`90KpIz)M)0l}4{IhN0+#KHsP74dJGVv`DUALOJjX%xU!@7$t zNLo89%|`f=xd;y>LT3QbaXbNGdEa~Hyc$uS&2dE@5IP4XP?&=fBVbR z!Jngj-=@{frg{JI(|)tcf+cuq3mfE2Jbu(!r?($&RA`;czd{F&SVAl!wCfMB^cF{kcBK zr(I(k8!lOKX^ei04)6@tTW4@YToPD8{09LL<4xEh7)a-CZ9TI6j{5K|)VID>wr(7tPo;wj^*tJmsY?*{yp z)M!%3645!x60J#~d?fD3B+l1+ASzO|a>l(3r7obBgi|MRzsl&WL-M2HtCA(x^(Y9TXWJfQ4=`_x}kvSx-y&wX^D zQ7olpOb-kZkP;Coc$-rM2^l)BfSjIYpP3zLpLarG4vfx}3u`~_9`?^(2p%%so*woS zJ%H#W2Y5(X=VbwXV8Ii1u?N?XwcrQo?)Aovi9L2-eX4Qrgp#QS@CLo=C002LGxs}9 z9kl5QpNhzRD$rp5L^`ty(2kqXW5=?~lH*IL-;nbThnC1+-L!>1xG zA5q8)nymGZ$EE0w#wc4nqDC`Sf~eX)#<|LtVC=dP-otN^YD zdy?{ugNI}wAR=9eFhZdt7gld~4Q0f{Hu`|HE$r}16L!IPC}!0*yM}nDrvp7nCG{c& z>he(=s@1vLlc%=;VYveG~r%PC=W2k z(qEiGb19@SRW#1?GA2PxuQI2X>3$l4*Iu`b7!-ELW=DH+Br82d%$$^pZjgE8BdW0= zfToT!BQE9fY%%Jn{KSObyYuN0y4H!SCI#lx4L}4t=^z~YHKyr&chP1uL_)>nJd)^k zRdD$U#saH3_&==CnYLa~QE;rhtSqeToNSpdUQmSpZ`4NY4TS`y%EKkf!pR}dD#^mZ zCLzhn%PTIy#>pnZ%OWWuF3H0tDnusmzkXuy|E0TJJiPxgU{htv+iPfGMSwa%t%u97 z;k_p|HpR`&0=ja+y(gh!@^rB4zrFtPOMPLYRagl)l@j0=pfC?atWa1Ac;@X(_xs1< zvf0*eSQmzela+|@%ue3}sf`|AKpkCHg%4LPTKR4x8~B;gz9P&g?8kBjqa9*awI_uF zn-t-ev)c=_Kr^PM3Y8UJt;T$5I$Frr))|X4&fKZU^sqiUz<4C*GYhDAaL^y`a42L0 zA@;U-!?Kwo(V6L!X@Y7n-xybydtGvH%NUh_xgZV=ClrI@F(D8cN*^cR{p=J|E`^aRD$v;WtRYbZs^(rw z@`rf>^S+Z-lV0HE7;2IFfz=S##D9+_5aSOmtD&F3ou4fwrb-iKDw%+NQD9r8UB}a9 z-@|K<tPH@E&5}M2 zD&>zVlF%79k3>~V{Z6}6bwd=s)gKQ6jDrWFBZ#8U%O1VKO#9hRN4ZvYv-O z)Q8EJS2CNo`HKXTFRElXKXK3vy)9H<(;o;)`t3R#qLArY5t5WYDO{uzQV5Qc<1eBP zP_}TppgWxUv2_IQ70Mr*MZZ59JQk*#kj10_A{Y~`-rt%_>mxE_za0uddhK|^rqxgz z-Q-`7QAA;01a~rgwU_AT4ylRqesl`^!0w|ZMGy76HiX>Gfqopk6n0X-e>->(kHrHI zTANoNCW{jg42_n1<|~G%52?+e01<}|ECcsMVh6+g0tL+3(W>Cl0dmfa7U;bh$Azkn zq{e>Ms7U<{Rdh=g{M|ZF#L~YS1v3)>>S-1%8s9vM8YDKxT|<5hF?DNe<X8Dc}6oOFq z*9)3FV--P<)0^4yldq~6t*mH;l(X?i_%3p=7<7wW$OJ--N74a3L+C z9z6z6XCZ-F9jNa>*L;|_g;!UIgHmOAvYG(|ukn?(?Q^N*bHh|0m zX*ocY1&e5$T&Fi{jS0woy=VU7H(^#oWSiuhPJ}U&ZL)!Od&St#p7bah4-sbs-xN&H z`(XoV`jJT3y{q@DM58;TQSVtSud@d3m`J3b-isjAA&~YbD(hH5cd0MUlT=l&VV^LS~x!+dckcihd+`OXnW6veGfi>m! z83Dy>!Q0DP^(|~oB=nodwvJI=o}cTbR)4e3JB45*v;fYvcE1^TA6$D728ux%g+8ZU zN2yU#K;5|$nErl;+BaArZDg{X=!$Eskxc2XWZJkj?DuE@%USI*z=E9~dc<;w;x}y_ zx`EWNN#f)*wa|(LZ&7^ANp1;b(WLz&{)}cQfygoXa*o6HZwcZe@o0h|K#_*-fJxJa zov)IXG$IdzQV3TQZr}o-M&2EvIkzX!NEem|+1j#HsfnA}t^^S{KP>ScbW4hywWT+I zj)n(=3pQimj;;?;8bnRqiDYd@;oD;kp%2aa-Ayc|RJN(D&iat9X^yndQD|ag$J%{} z&BMw1%aJx?5pT)p=A}@|JLUh%gMF7#(_6I=ViDQ*+j^mqq0qY7{Lg9`hi>cnYZbv( z^Z6<&r*6Z!avLX5w?%)VQ_3!b&{wO}V@mO(av|cdATV5|gwGIqTu*Ep!?U0w!0b4h zz}KVWT)^ZQo?m&*=bK+uT`okk@dUESLHabrdW{4(v7%K}Ri5b;mS6e3BAtV}9H?;r1}m}LTVRB8iLNa`ZbGKPUl+;QGiGCv qEof}fb!zM1%x8S&j>{)xapD4Ara&kZ2_gpzJ2wIqm87y1!hZo=*wsh? delta 46735 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

fVy^ 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, const D: usize> MemoryStark { trace_col_vecs[COUNTER] = (0..height).map(|i| F::from_canonical_usize(i)).collect(); for i in 0..height { - let x = trace_col_vecs[RANGE_CHECK][i].to_canonical_u64() as usize; - trace_col_vecs[FREQUENCIES][x] += F::ONE; + let x_rc = trace_col_vecs[RANGE_CHECK][i].to_canonical_u64() as usize; + trace_col_vecs[FREQUENCIES][x_rc] += F::ONE; + if (trace_col_vecs[CONTEXT_FIRST_CHANGE][i] == F::ONE) + || (trace_col_vecs[SEGMENT_FIRST_CHANGE][i] == F::ONE) + { + // CONTEXT_FIRST_CHANGE and SEGMENT_FIRST_CHANGE should be 0 at the last row, so the index + // should never be out of bounds. + let x_fo = trace_col_vecs[ADDR_VIRTUAL][i + 1].to_canonical_u64() as usize; + trace_col_vecs[FREQUENCIES][x_fo] += F::ONE; + } } } @@ -176,7 +184,7 @@ impl, const D: usize> MemoryStark { /// reads to the same address, say at timestamps 50 and 80. fn fill_gaps(memory_ops: &mut Vec) { let max_rc = memory_ops.len().next_power_of_two() - 1; - for (mut curr, next) in memory_ops.clone().into_iter().tuple_windows() { + for (mut curr, mut next) in memory_ops.clone().into_iter().tuple_windows() { if curr.address.context != next.address.context || curr.address.segment != next.address.segment { @@ -186,6 +194,15 @@ impl, const D: usize> MemoryStark { // Similarly, the number of possible segments is a small constant, so any gap must // be small. max_rc will always be much larger, as just bootloading the kernel will // trigger thousands of memory operations. + // However, we do check that the first address accessed is range-checkable. If not, + // we could start at a negative address and cheat. + while next.address.virt > max_rc { + let mut dummy_address = next.address; + dummy_address.virt -= max_rc; + let dummy_read = MemoryOp::new_dummy_read(dummy_address, 0, next.value); + memory_ops.push(dummy_read); + next = dummy_read; + } } else if curr.address.virt != next.address.virt { while next.address.virt - curr.address.virt - 1 > max_rc { let mut dummy_address = curr.address; @@ -530,10 +547,19 @@ impl, const D: usize> Stark for MemoryStark Vec> { vec![Lookup { - columns: vec![Column::single(RANGE_CHECK)], + columns: vec![ + Column::single(RANGE_CHECK), + Column::single_next_row(ADDR_VIRTUAL), + ], table_column: Column::single(COUNTER), frequencies_column: Column::single(FREQUENCIES), - filter_columns: vec![None], + filter_columns: vec![ + None, + Some(Filter::new_simple(Column::sum([ + CONTEXT_FIRST_CHANGE, + SEGMENT_FIRST_CHANGE, + ]))), + ], }] } }