All Core Devs - Execution #80

All Core Devs - Execution · 7 Feb 2020 · 1:35:29

Ethereum core developers decide that EIP-1930 will not be included, continue the discussion of EIP-2315 on simple subroutines for the EVM on the Magicians forum, and review EIP-1962 and EIP-2046.

Speakers

Topics

From All Core Devs - Execution, hosted by Ethereum Foundation.

Transcript

[Music] [Music] [Music] [Music]

[Music] [Music] [Applause]

[Music] [Music]

[Music] [Music] [Music]

[Music] [Music] hello everyone and welcome to the core devs episode 80 I am going to get started on the first agenda item it looks like it is the EFI EIP review and the first one is going to be e IP 1930

that's calls with strict gas semantics revert if not enough gas available by Ronan Sandford aka wig ho ugh or however you want to correct me Ronan you can go ahead with kind of nation yesugai's explaining what it is yeah if you could explain what it is and did this come up last meeting I wasn't here yeah no he came up last I don't know how many months ago for the previous out for it was also proposed and I remember having occurred briefly mentioning it but yeah I mean so I can describe it so basically

currently the evm opcode for like the cola codes you say they have a gas parameter and gas parameter is basically only a maximum value so it only protects the color for spending that much gas but it doesn't have any guarantee for the colleague to receive that amount of gas and so this cause so I mean in itself is okay but then there is use case where we need to be sure that the curly adhesive exactly a specific amount of gas the

main one is metal transaction for example where the signer of the transaction specify how much gas is in a coal and so the contract need to ensure that and there is no perfect way to do it I mean the obvious way will be to compute days on the up code specific up good pricing that can change what is required so it means that it's possible but then it's very brittle because if there is I've got pricing change like it happen then suddenly might in my break there's actually another solution which is to

check for the gas left after the call because you can know that if like basically since 164 is left you can compute that okay if if there is less than 63 of 64 of the gas that was necessary then you can guess and there was not enough gas but it's also not perfect so I'm I described it in more detail in zoom in the issue but basically is the proposal is to so there is two way to today's to proper I mean to option for the proposal to to work one is to make the simplest in my

opinion is to add three new occurred that of the semantics of if you don't have enough gas to make the call then it revert the other option is to try to see if no contract are using specific kind of value and so this way we can we don't need to add new code and we can just say okay if maybe the first bit is set to 1 then we interpret the rest as a strict gas value and if it's zero then we can interpret as before the reason why may

be possible is because solidity for example is never using so 1 1 1 1 like 200 to the 256 minus one because it's more costly than actually calling the gas up code to know what amount of gas is left so yeah that's kind of I deeds around of the thing but you have any question like yes I have question yep so yeah still not clear about the motivation behind it you mentioned meta transactions so the

two things I'm not sure about one is the actual use cases there why this is needed and the second thing is why can't this just be solved by chicken gasps Oh code oh yeah or in the receiving contract whatever that is so yes so ins so we want to solve it in the color or not in the curly because that's the logic of the color might be dependent and in the color if we can as I say we can compute the gas cost required based on the amount of data except a lot to kind of click compute there is two issue

with that is that it's dependent of the OP code pricing not changing and the second issue is that it's a waste because you are computing something that the EVM is already computed yeah I can understand what that's a bad idea I just don't see the reason for doing it in the first place so if you could expand on that but oh yet for the use case I mean yes in meta transaction there is two two way kind of to for the relay or to do use the first implementation of method transaction was actually very simple is that the ha layer was taking responsibility of the world transaction not failing so is that

it makes the transaction if it fail then it is mistake you should have checked that it was not failing but it's a lot harder for the vallejo because you need to consider everything so every reason that this the call my actually fail so what the newer implementation do all of them is that [Music] of the metal connection specify the amount of gas that is that it want to be given to its own to the coal and then the metal connection processor will basically pass that amount of gas to to the core and if the transaction fail as part of the cores and the color

as the metal connection code itself can assume that yes indeed it's a sign of either wrong calculation of a gas limit so the value should not be punished for that and we basically pays off a layer the problem is that all of this implementation except a few say actually is the only thing they do is they say require gas Greta's and the gas required which is actually not sufficient for why is that not sufficient because there is 164 of the gas left anyway so which means that even if the gas could be higher it was so if they do require gas plus and then

a six third extra yeah that's what I mean by beings and of good pricing dependent how is that of pricing dependent because you need to compute what the coal will actually cost the extra extra things that you need but you could basically well what the capacitor is the one with the personal Chris the math the transaction could just specify I need to be called with 64 yeah exactly so then you are pushing the security outside of the contract which is what goodness is safe decided to do so there is an issue on the people decided to fix it on on the UI side whereas the UI actually increase the gas limit so that

he contacts the user but I think it's basically moving the security on the layer that he should not be I see so yeah my comments about this one would be I think first of all I think it was kind of against that other which we have which is to try to remove the visibility of gas actually no I would say just on that point because I think it's it's actually reverse because if if the gal if the coal where you used especially the gas then the color will not even need to ask for what is gas left because without that opcode

currently as you said they need to check the gas and try to do some computation to make sure it's enough while if we add the copper I mean restrict gas semantics then they will no need for the color to check what the gas available yeah maybe so okay I'll hold with that judgment on breast I think this is kind of solvable today like you said the cow stood with on which makes the UX maybe a bit worse but the only other hand I think introducing three new coal variants are

basically duplicating all the coal variants to solve this kind of nice use case I mean I see I mean you could even each I think it's a I mean it doesn't matter really whether it's niche or not I feel like I mean and we could actually whether it's already an issues case but I mean it should have been the semantics in the first place like the reason that it's the maximum actually I mean the use case for a maximum is probably more niche than the use case for a strict semantics yeah yeah that's what I mean like we could have I mean I don't think

it's a valid argument to say something is niche or not let's I think let's focus on whether something is better or not because what we are going to solve now my helpers to design a new EVM later so I think we should try to do something I mean anyway so I just want to go back to the point of three newer code because in the proposal there is two option one is three in your code and can and then the other option is to find gas values that have never been used before which might be tricky to kind of check but that's also another approach that I have some if I put out Aleksey isn't here today so me putting

on my Alexia how does this because he's working on look in evaluating whether you one guess or to do something else that allows state was happen to those and I guess how to work with gas changes he's currently working on you have have you looked into on gas and how perhaps your proposal might be different if in that scenario or really I would just suggest something like see I looked at and guess I mean I I listened to the last call I mean and gas itself at it's a bit very very big question anyway so I don't think we should I mean so first of

all is that imagine we add the extra gas me cementing before and we want to move to an gas it would be the same as now to move to hang gas so what I mean is that we should not differ something is because maybe and gas will happen if it doesn't change as a matter and that's the that's part of what I'm wondering is because Alexi is also thinking of the other side I guess it's not so much that I'm saying let's let's wait because it's down the line is Lujan's coming I don't personally like doing that I know that something is needing to happen with stateless aetherium to have Alexi is

currently working on that I didn't go to him about unguessed and then also dissolved on gas easy to see if this is something that is how it interacts because I guess what I wouldn't want to see is this gets implemented any gets fun implemented and I mean if we longer then this will be unimplemented except we'll have to live with it in the existing clients and I mean when I talked about the niche I didn't mean to like disparage the use case for anything but I was kind of meaning that we have lots of quirky things about the EBM which should have been made otherwise

with perfect hindsight but there's kind of a big threshold to fixing these things and I think the like for the amount of work that needs to be put in in order to fix this if you weigh that against the benefits so which in this case to me it seems kind of small since it's not like we're enabling a totally new use case of doing something we couldn't do before I mean we are dreamers of it we are fixing basically a security issue for user of metal connection like I don't really see how we do that yeah it does because like if

you look at the like for number is listening like ignosi safest is currently vulnerable to her layer making the connection fail and getting paid for it yeah so the user specified the wrong amount of gas yeah but no I mean even no no even if the user specifies the correct amount then it's failure of course you could say you could argue that yeah but they can but but the point is at the end we are moving so you can do the calculation on the EVM side of adding the extra 64th which costs around I don't know 10 20 gas so we're not

gonna race arithmetic up codes by orders of magnitude I mean yeah but that's that's again is to not have to do this and dependent on a good pricing change okay I think I I understand the proposal enough and I looked in there and I didn't see the security consideration that you are mentioning so if you could add that to the EIP itself I think that would help us understand a little bit better what it's trying to accomplish actually I mean maybe maybe not security focused but I mentioned the issue no seeds I mentioned I mean you try to

explain but yeah I could maybe do some yeah yeah I think that would help us like understand a little bit more what the main what like the exact main objective because the simple summary is like what it wants to do but it doesn't there's like we're missing is their motivation section in here that I'm missing I think this is using an older CIP what's it called template yeah so if you can look at this latest IP template the one for e IP one there's other stuff that we've added now that helped us

really evaluate it a lot better so if you could change that up and then the other suggestion is to talk to alexei only because they there's a whole separate eath 1x meeting and what they do is they talk about bigger sweeping changes to the 1.0 ecosystem and if any of that's going to interact with any of the changes here we just like to get those connections made you know so good and I participated already in conversation about and gas great but I could each - Alex yeah I don't know what

the best way to reach - anymore you could do that over get her yeah actually we we do have way on the call oh we were just wondering if you know if had any commentary on the proposal that Ronin brought forward EIP 1930 and how that would interact with ungass or like Martin mentioned it would like be reverted after ungass is implemented if

we decide to implement it was that accurate yeah I like my opinion let's see so it's is kind of like you my my only something I think it's the opposite direction we want to go to because after if we do those like to those things like like in this AIT even is even harder to later change guys cause which will have a bigger back workability issues so yeah just looking through the specification

so I just from the specification side I think there are something that can be can be more like well more specified for example in the option 8 simply says add a new versions of of course but we need to know what this new world is and how much has it called how it houses of karate works yeah I think I will make sure I don't spend no time if we already decided that's not going to be you know so I think I gave that was the reason why it was also canceled in the last

time so I would not mind specifying any more even starting to implement it but I will have I will first want to yeah and we got the ungass I just want to clarify something because it won't add any extras like we have we our contract that already asked for gas mmm this one would be an issue for ungass but this one actually doesn't require of the contract to get the gas it's a it's a requirement of so it's Miriam yest will need to get to gas but not the contract itself so is it not I mean I

would imagine that's actually important so if at all and I mean and if it's if it's the same thing but I don't see how it could add complexity to what we already are another thing we change is always added complexity no but I mean I'm talking about and gas I mean because now I guess I will have outer corner with a contract that can do something based on the government then something that just required okay okay I was gonna say so so that's the ungass

proposal the innocent I really try to go against meta transactions and like alarm clock eats alarm clock types services I supposedly said that my done is probably something that should be kind of brought forward I wasn't actually where this was the thing you can post this on to the Peter for like any reference for links for this because is kind of news to me after things that will break him I guess and thrown and I yeah I can I can help

you yeah cuz that minimum even if this doesn't go forward as an EIP I think it's really important for other IPS to understand the implications for meta transactions and other things like that to make it easier you know on users and without adding too much complication to the overall client implementations so yeah even if this doesn't go forward thanks for bringing it up and we'll connect you with Alexi feel free to work on this and bring it back but as it stands right now it doesn't look like there's a lot of support for this because of the in part because of the work on ungass but go ahead and feel free to discuss it more with like

Alexian way and other people in the getter and everywhere else to see what we can come to with this ok thank you all right thank you running thank you okay so the next EIP we have is from greg listed as Gandalf on here and it's a IP 23:15 simple subroutines for the evm this one is up for efi and greg if you want just go over real quick what it is and then we'll have questions and there's also an ethereal magicians link in here if people want to click on that too yeah and there's other discussion back when it was an issue and that's

linked back through the magician's link and a bit of discussion on the pull request and basically this is a totally stripped-down 615 no validation just providing the mechanism of callin return just the mechanism and any validation any such is moved out of the vm to the next layer up for the time being so it's just simply the mechanism that says I'm making a subroutine call so I take the current

instruction pointer and push it on a second stack just like forth and when I need to return I pop the stack and go back to where I was that's it you know the same call and return that most chips have had since there were chips and that's about all there is to it there's a there's a draft PR against the Gath code base which is fairly close to complete I didn't I didn't try and implement all the test cases because that code was pretty scary

yeah four test cases normally those come up after an EF is accepted or into the EFI list so people don't waste time doing a bunch of stuff before it's like blessed I suppose we're using know there's there's three three test cases in the proposal I mean I didn't try to implement those in cloudy because there the code for implementing the test cases was hard enough I didn't want to try and understand it this week but Martin reviewed that code so I'd like to just hear from Martin know what he thought

from my point of view it was pretty easy going into a code base I never really looked at before so that partly speaks to the quality of the code base but let's say you Martin yeah so regarding the test cases I'm not sure if the so these are traces or these traces or the programs or the kind of combine you think it would be easier if you put the program bytecode or assembly in one thing and then the kind of trace as

another so so it will be easier to understand how the PC jumps when you execute the code and one thing that I am wondering about right now is the return sub like in the first test case there the dateless you haven't filled in the return stack and it hits a return sub okay we we probably don't want to dive into these tests right there but surely return Maggie should return sub continue the execution after the jump sub it's not the intention but yes it's pretty

much the same as a jump test in that in that sense no it's not it's like you have a virtual jump test right after your jumps up right it's something like that you jumped it you can put it different ways and they all work out about the same but when you return you return to the place you started that's just to maintain the sense that there that there is a target you can find but when you get there there's nothing left to do but increment the IP and then the next time you come around the loop YUM

you ain't even then you execute your next instruction um yeah yeah I mean if this one seems a lot simpler the previous one I gave you that I really don't have too much to say about this right now technically yeah it can be done it adds one more stack but so I'm kind of curious how how big oven improvements and how how how much new

cool things for this enable and what do people feel about it yeah I don't know how many of these people show up on this call so P who wanted go it's obvious I really wanted another people to go well you don't really need it because you can play this complicated game of using using the existing stack and pushing things there and then when you finish the routine you've got to figure out you know how far away is the return address that I pushed on the main stack and there's a whole class of bugs of overwriting the return address because

it's on the same stack that you're computing so it's just a really old design and stack machines yeah I'm going back to fourth at least to say just have a separate stack for for putting for putting the the return addresses on yeah it also makes it easier to do things like return more than one item you're you're just not worried about overwriting the return address which is right there and the test examples don't make that clear because they're they're intentionally really twisted up this is a zoom out a little bit on the

status on its status as efi and it going back to the first question passing my mind back to previously with originally IP the general feedback was that good idea it's more complicated there's more things going on that needs to happen all up like it doesn't need all happen at once and then this is the this is the response to that feedback so in general I think unless Thursday that was the stipulation for that one hour at this stage is there something from death or I guess we don't have anyone from nether mind do we have someone from nether on here we got Danno here they soon yeah

from Basu you have thoughts it looks relatively simple I agree that the main concern 6:15 is too much all at once and this is a great first step and yeah I support it then I'd say we should move a D if I yeah that sounds good as anyone have any qualms about this not being an EFI and kind of moving forward it's by echo what James said as for me yes Peter couldn't make it to this call unfortunately and I just would like to revisit this I mean we can move it to if

I but I think maybe we should yeah I would like to give mean we don't have to rush it to EFI by any means because like this is pretty much a 90 percent EFI situation with just waiting for one core piece of feedback that we'd like to have from Peter and of course it's great Greg is it cool if we just wait for Peter to chime any either offline or because we can put things in the FI outside of the call I this thing's been this is so old at this point that a little more delay doesn't mean anything okay in that case

yeah let's wait for Peter and then we'll throw it in EFI if there's nothing major there yeah I'd also like to just have another mind talk about idea I'll have Peter never mind and then I'll also talk to elect okay as far as each one X and then I'll report on those and we can see the bestest stipulation being added it I feel comfortable then make it fine great yeah I just like to the only thing is ECC is coming up and then I'm going to take some vacation and then I'm going to move to Kentucky so I'll start getting I'll start getting pretty busy but I'm not employed right

now so so I have some time to put into this that internet hire Gregg he's a good guy but but not for not for two or three months okay so thanks for that Gregg let's run through the next one that's gonna be e IP 1962 Alex blasts off if you want to give I think was this discussed last time as well I think it was yeah it was discussed few times where is the last oh that's right yeah I'm now cuz this is

now coming back to me but yeah go ahead with any updates or explanations well updates for mostly internal more or less changed by new interface a little to allow users to like to remove some restrictions and also to make some checks inside this app recompile optional because most of the cases I kind of not necessary for practical applications that's well they are optional so you can just specify one right to change it back on others in this what's left right now it's an integration and Elsa alternative implementation of in go which doesn't

use assembly site which may be also here but he's listening on the YouTube he told me that it would take two or three weeks maybe I can help him to make it any faster but right now there are three implementations in grafton C++ 17 and in go in assembly for x86 64 and all of them are consistent between each other in terms of results of acid testing okay and James do you know what what do you remember what feedback was given her

Alex even do you remember what feedback was given that halted this from getting into EFI I I'm just going to come in because I very strong feeling gets the CIP and not against Alex work but again the the scope and and the NDC API I discuss with various people offline about it and express them some major concern not on the quality of work of the matter and not on the need for the IP itself but by the process it's it's getting through at this point sure so at this point it's North yeah is not eligible for inclusion right that's

so it's in the list as far as to be discussed for EFI as my understanding of what right yeah it's not an EFI yet this is for review to go into the list right James you're right I didn't look at the list correctly I was talking with Greg earlier this week who joined on looking at the transition do you do and like he was the beating contract that BLS signatures or BLS can be done today I

don't understand the whole discussion happen it can be done today but just depends on which curve you want exactly so and I think anything in terms of something which people want to poke with a syringe appoint all they want any another curve person I understand that but my point is and Alex I'm talking because I think it's actually like you didn't filter if ik job at this point but when with the style VC IP I have very big concerned because things like we just like Windows just release the ball and it's the NSA release the bug on the implementation of like any curve

cryptography in Windows and you're single like single team and like both happen with windows in having this sort of giantic pre-compile or served frickin time inside the network is from your risk of concern if it's not really like brought up slowly at at the steady pace this was the reason yes it was the reason why people asked for fuzzy testing from the beginning and this is the reason why we have it kind of running all the time and especially after some kind of minor changes in value interfaces and their cells is the reason why we have now suite dependent implementations III that said I just want to bring it up because there is

another VIP the this concern I'm expressing right now I kind of try to express it before when I asked you that style but the auditing poor and very having an independent team looking at the implementation looking at the specification looking at the API and and so offline I there was a proposal from Jordi I know if you saw it about the job job for the morning right now Georgey valina was fun recommended founder of IE and item 3 and also part of the cryptographic key theorem committee I would say proposed recently 24 nightly 2494 which is inclination and

specificity curve that is using inside snort as implemented currently on today's network I reached out to him about the UI IP and asked him about his opinion and also if there will be a way to to joint effort between your IP and and like very IP to see there is a way to find like sort of a collaborative grounder you was supposed to join today apparently it didn't I pinged him before but my point here is having such a big pre-compile and with such a tremendous you know assumption beyond that for me it needs to be very careful and

carefully handling as carefully being independent implantation you determine the independent scoping of the of the of the of the path to be to integration well it when you say independent implementations ago independent a decontamination is actually independent what would you just independent it means done by a person who is outside of matter and done all by himself okay in the only the only help I provided outside it's like how to start suffice it Esther everything else he did all by himself without any advice from my side so is this as in terms of

independent limitation for implementing specific curve I don't well I just I can try to quickly Google for Georgie's proposal but yeah well it's first of all baby chap job with Edward skur and this is like even while twisted adverse curves believed to be and of much not simpler to implement they simply to implement in constant time this curve is very specific it's only for caching and doesn't give a kind of a lot of benefits it just allows you to use algebraic caches in the stream for just for a

cheap this is more or less this pre-compile is more or less to allow broader scope it's every single from recursive snarks to New York instructions like klo and Pai and which always started to kind of emerge I give it broader overview for also the developers cannot just initial of starts for also constructions which happen to I kind of come up in the last couple year that's just a difference between two freaking well III know perfectly my point if not about the need of a VIP my point is more about like as if in there is there happen to be a bug a DDoS

attack the very fact that you was implementing just by you guys make it's an attack victim because I'm assuming because this is a reason why we have an independent implementation right now yeah Martin can speak to the fact of their like can Martin if you're if you're wanting to could you speak to what the situation would be if there was a ddos vector from this pre-compile discovered like what we've done in the past as far as just kind of fixing it I guess yeah so typically we would get on the get on a call with the core developers of like the clients and buy core developers in

this sense I mean people who actually commit code to the clients and the problem with these kind of pre-compile symbols and similar problem with one of the PNP compiles is that it's not our domain and when something if something were to go wrong like either consensus issue where oh it happened at the co implementation was different than the rust implementation or if there was some vulnerability where I don't know the gasps calculation was too intense or some vector there's basically nothing we could do because we would scratch our heads and not understand a single thing

because it's not our domain and this so yeah this eats this he scares me a lot and I'm not even talking about the possibility of cryptographic errors that scares me less I'm more scared about denial of service or consensus issues and any like if the pre-comp a equipted pre-compiled erroneously calculates something that's at least layer two oh well in terms of vector as well yeah well in terms of like very trivial

mistakes and like a dos attacks there are no infinite loops obviously inside system precompile all the loops are bounded like upper bounds were used in gas prices tomates I have already proposed that I can just introduce an arbitrary fact of like 1.5 everywhere for security now when the precompile is already up to my standard to the previous like choose the old values for a gas pricing it now actually already runs faster then it kind of wants an amount of gas to be paid to it so for this part I'm much less concerned my cursor was about indeed the consensus between different

implementations but as scandal has experienced in the last months Placid testing we say together and working with him it's not set large of an issue most of the errors which we found Jimmy the facet testing and discrepancy were actually in not in underlying formulas or arithmetic so anywhere it was in a binary interface which we isn't fixed and like arithmetic errors are I think we only encountered one between different implementations were also the faulty testing and just because

we used two different polarities so when we're kind of doing a risk versus reward here this is going to enable a lot more use cases and able a lot more different curves that can be used for some of the new Stark and Stark stuff that's happening at the same time than Martin saying and Luis are saying that this it is risky because if there is an attack of any kind using it we would be a little out of the loop because it's out of our knowledge domain but one thing we can do to appease that in a way is to have people who are in that domain be

involved in a little more tighter into the you know a response team I guess we don't really have a name for it but like okay I can give you I just said I just does that it's obvious and it's my responsibility to be said your answer such quality compiles included dammit sure at least in the first time I just obviously said it's my responsibility but like I can definitely this I can I offer a solution here for for the next call could you bring Zach from Aztec because you talk about drunk can you bring Isaac from coda to talk about

recursive and also reach out to to to Geordi to seal that how your to propose on couch if the IP could be merged into yours I think there would be like a way to solve this for Geordi I will talk to him but unfortunately from what I understand our breaking our yeah it is a kind of orthogonal you can do Jordi's one with mine was like exactly very very artificial tricks you can just transfer one kerf into another one but this is particulate II it doesn't I cannot I cannot Zack and Isaac to join but I mean I obviously cannot guarantee that they will find a time but I've Allah invites

me yeah let me invite him for sure I mean my point is that if you want to bring like MNT like you know that Coda's curve the only one at this point to the ad of today that uses curve as far as I'm concerned all right I'm aware of is Isaac and I mean if that's well here I should correct your impression that when I say and well wealthy pre-compile sales kind of MIT curse as an example it's basically just one type of the pairings of their particular a structure of the curve would say that kind of the same stuff can be done like this is a sexy curve for example sexy construction yeah will also be supported even well it's

non-recursive New York instructions from you why Ariston the young let's say also going to be comes is like it's more or less a general overview and especially people listen to us understands the staff a little yeah of course that's what I mean for instance I know that my name is need for me why I mean if I mean a lot if is aware but last time I talked to him I wasn't sure you got involved and I'm pretty sure you will be interested my point is I guess there is a right if VIP is useful I agree with you my only concern at this point is in the process meaning that you are you be the only one having an eye on it and what I'm for expressing right now is trying

to find a way to for this with quorum of people to be to be convinced that these can get in without any concern because we have all the specialists in the field today in the community to do that much for it because they're going to use it I think the threshold I think the threshold is aver is a bit different I don't think it needs to come in with little conceived Airy little concerned because that's just impossible for for many pre compiles unless they're very very very simple to come in without some level of concern but I think if there are just solid I don't know I'd feel better from my like when I've responded to incidents knowing who to call and that's Alex said that we would be him could also find other people and

yeah that would make me I should I should actors is it a few times before it I kind of for ease of developer like for ease of kind of integration and roll out of this recompile I was kind of trying to mention since there is an option you can do it in kind of two waves in the first one we just kind of make a whitelist as Lewis was saying that kind of the setosa curves which he uses it's not very like which are well-known and most likely no well known by the community it's not very wide it's more or less we can make a list of ten curves which are allowed to use it still

the same code base they just want additional check at the entry point well this gap curve parameters in whitelist and for those wells also kind of explicitly check for Mattox if you call for this curve it definitely works but I didn't ever get any like strong feedback and whether this auction yeah does it have strong shoe should we try to do this that sounds like a good idea to mean but would that convert it could that would that quell anyone's concerns who had concerns over the security of this so far well I mean it's kind of less surface for exposure in terms of this that of course is just like it's the

same code base which works with them so it just still as a same pre-compile which you can kind of test battlefield test was the first wave of just a white list of ten like ten twelve curves maximising if it works well and which access we continue to work in this and we just leaves this one just remove this white list I star in a very small part board or just in a part of the next card for and some very just good it just allows people to get used to it and see what would be potential occurrence so I can see there's value in implementing I can also see that we don't have a

process for really implementing something so as far as I stuff but I have to get you involved in the security team if something happens like what are the process for that if you could help us on yeah I'm up with the process I mean if you like you or should should have to be included then I then I think that's a good way for helping us yeah sure I mean it's more it's not more or less than my side I just sorted that is my obvious responsibility to be there for time limits included and like people start using it and see what people can make app and attack it yeah I just don't know how the security team worries I

hear the church that it's kind of exist but I never been a part in this and I'm seeing it working this is just my god I know there I am getting closer than that for sure that's not even and then let's make a process like you man how this process works will make it one of those forgot acronym that Peter stood on how this happened so then other people who want to do something that were prior something similar would know yeah yeah okay that's a good idea let's let's let's take that offline for the new process creation yeah I'll have any final comments on this I'd rather take this offline and bring I think we should bring also the people we

were mentioned Jordy Zach Isaac and me from from UI to to to comment to come in comments and their ability both to like judge the quality of the API in the code and also in their current need and what they feel about such a true why do I be yeah so getting that completely cross domain other there is one oh sorry go ahead Martin I was gonna say so I come to the last time this was up for discussion 892 before I know two forks ago and I still think the same way I did them but it's too big thing to jam into

ethereum and it's not something we should spend more effort on so I'm against and Martin just I'm curious does there like having your whitelist that just have ten calls change your opinion slightly or not a law yes likely but I every time I try to look into it like now I'm browsing around and I'm come to guess schedule and it's like I never see the very solemn see concrete actual specifications like I'm used to when I'm browsing oops it's a lot of

text and a lot of mathematical language that assume that the reader knows lots of definitions that are apparent to the author but they specification I do not think it is possible for anyone to write this eat based on the existing specifications the only way to do it would be to have the rust or go code side by side and then converge line by line or the functional function but otherwise yeah so I think it's very big very big and obviously very complex I'm not in my and not in my

colleagues field of expertise so yeah well if you have comments for like style or writing which can be more understandable for people not in the field because I still try to use more or less kind of standard notation and it where you walk all this way I just use the same name everywhere but if you have this you can just post it in negator or something personal message look at the gasket 1962 it has a section called complex model evaluation rules yeah so it doesn't tell me how to I'm the first

up I'm curious what is the complexity of doing a gas calculation because I eat someone can call into this thing and with insufficient amount of gas do we need to do a lot of calculations in order to determine that is insufficient so I I know I know course you don't have to meet you well in terms of the gas model is actually quite simple basically just need to determine how much arithmetic work you do in the future and the set of parameters it's quite short for every case right just right to be expressive but yes I mean this formula

is basically say polynomial every every kind of a parameter gives a up to some formula where's explicit coefficients interpretation files margin have a question for you I'm going to put the the Jordi's valine as a VIP like naughty education either one five but it's it's the IP that of the Geordie and the and the the formatting of it could you have a look and tell me if that's will be clear on your eyes like would be something that should be comfortable with in that case Alex could converge with with Geordie to to tube team either I know George is interesting this and you IP and ex-employer and

bring it up because I discussed with him offline and yeah I similar concern about the formatting of the other of the proposal so Matt was the reason I'm asking George in the martinis to see if that's formatting is good enough for him so we can find like a way to to cross bridge here yeah and actually that's that's a good idea because if this if the formatting that they're using for the baby Jubjub curve is like more clear then yeah if you could converge on that style that'd be nice also I saw that Kobe is working with you I could consider Kobe a good resource did he actually helped write the EIP or just work on the implementation with you uh no while Kobe didn't work on the

implementation more or less sound feedback in principle I just I mean Kobe would most likely just look at the spec and will not have any questions I was only gonna ask because I we have the thing yeah he would he would have yeah but he might have something to say about the the EIP language I would think but it's it's been a bit since I've talked to miss I don't know how busy he is well yeah I I'm just looking at say Georgie's proposal and I think it's still as difficult for people to understand that baby cheetah is a mr. Thurber skirt which is probational equivalent to some Montgomery curve which are still fine

for people who are in the field but completely useless information yeah they just I think it's kind of more the same language of complexity I will try to to fight myself if if people don't shoot me a feedback but I mean it's not trivial but underlying formulas you can get into some reception quite trivial I have a question for the for the old attendee of the core dev what happened how did you manage to get at the end in 2 into 2 into if what were the process who pushed it and how did you work this is when we got the alt BN curve before wait am I on me let me see which which

which curve are you talking about I'm talking the true the current frequent bite force dark when you feel today it's old in 2013 I think that was even record exists yeah now there's record it's um it was a collaboration between the well what is now the electric coin company and the etherium foundation at the time to implement the same curve that was used in the cash at the time I think they changed now and they did change okay and that was basically engineers coordinated with the C++ team and they

made it and then I'm fuzzy on the rest of it does anyone who was there back then maybe Mart know what happened after that so I can't recall the role but it was a lot of work I do remember it was a year it was a lot of work is I do remember it that way and it was I think it was correct me if I'm wrong wasn't isn't that more simple than this this kind of huge yeah intrinsic oh it's just a single curve yeah that's that's that's the other thing like it was still it still took a long time but because it was a single curve and there was some

understanding I think we had a cryptographer at the time Daniel working more for us who helped a little I think so there was basically the it's not that there was any shortcuts taken back then it was just a more simple IP and there was like collaboration from another company with our team that did understand the curve I think it was and it did fit with something that could have caused the consensus issue oh yeah yeah so does that answer your question Elise it does it does so maybe so could we maybe get someone from the Sun Foundation who both write

code and just in the cryptography to to attest for it like someone I don't know Justine write codes or do we have anybody who does that maybe Chris Teresa maybe okay we could have him look at it or something yeah let's talk about that on getter I don't want to take too much more time on this but we definitely don't want to have this go into the abyss or anything like that with all this work done on it I do not neither just want to specify this for me from i from doesn't come from the need for the CIP I think it's this fantastic one and just afraid for the the way it is shipping and not as like the Mattress photon specifying once again yeah we've seen a plan okay well

thank you Alex and everybody for commenting and you have service to dues right now Alex sir there's still one more thing I think did oh yeah go ahead the thief to deposit contract was hoping to use the CIP in the country well said sir one of the reason why also proposed the whitelist that you can just disappear nope well wisely school definitely just takes a suitable interview and then we can start this way it also described with one more or less and is going to be very small explored resurfaced are they using the new BLS curve that like file coins using

and stuff like that yeah we're on the new standard say those mean you're posted the issue we're using the new standard the one that Carl worked a lot to kind of like help coordinate which car my under Coby okay because he can't got it yeah and we last time I spoke with everybody the existing viola signature verification that we can't that's available would not suffice and I believe it is because of the curve it's the point on the curve yeah the so yeah as possible personally so yeah you're saying yeah well I mean if we go into

some alittle technical details I feel as clarification should be available in both options was this curve whether Hugh aggregate kind of individual signatures is there in g1 og to alter if meeting is there so it's like it whatever standard to use okay yeah yeah so that's part of the reason I brought this up I just wanted to double check I want to try and figure out kind of one thing here like does 1962-1963 does cover us does he exist according to a everyone else the existing one does it not this is from like a researchers on e tune I've done my own kind of investigation I think it

does not so the other question that kind of had was if 1960 based on today's conversation seems to need a lot more work would it be feasible if I order me to simply create a standalone VIP that covers the beulas verification we need simply because the deposit contract currently covers it has like there's four main checks that we can do and the one check we don't have is the verification so having that check would be quite crucial as it means we wouldn't have to revert to deposit like down the road from this perspective like if I may advise you like or make your life

simpler I can just expose you one interface to just work on one specific curve if you like really really really want a simple separate precompile the that's only realistic and what is existing right now is just if it makes your life easier can we have Greg can you have some chaos someone come on to the next call who's really into that like Carl to give me some color on this okay that'd be perfect yeah I'll get Carl or I know I know I know there's a few others just yeah yeah I'll get them to come speak on

behalf of that because I know the guy Stokes as well was very very interested as well come on yeah yeah so we'll I'll get them to come on next time to chat about the differences I know there's things between the current one was questionable in the gaps as well I was like how much gases means because the contractor he kind of consumes quite a bit but yeah can based on today's call already on like the push back on 1962 I think I kind of separate discussions to occur anyway great look I just want you to react on Greg's remark the the the remark we had on that home on 1962 we probably apply to to to to an EIP that just came out right now

I mean I'm talking as inclusion for Berlin actually we pretty more confident with like some group of people working and improving reducing scoping 1962 then just come up with a new project from from the get from the from from the bottom yeah that's that's that sounds like the direction I'd be going in at minimum you know like to the white listing mm-hmm that sounds good for me let's yeah cool bring him on this ultimately the big one is we just need to like squeeze something in as if if possible again this is like kind of what I'm asking if it's possible to squeeze something in the next eight to three months simply because we don't have to

like kind of get the contract Rihanna did with the new addition should only be like two minds already and on is it already an audit right now we've actually finished it yeah so like it's great so we already have that so we would just have to get them to redo like two lines which is unlike the end of the world problem is the con trucks and Viper but I might just have a rear end and like bytecode to make it easier taught it because they're all my god we need fiber compiler I got straight up there was some question on that I saw okay cool alright let's have people come on next time Alex if you're if you could come on again and potentially bring some of the people Louis said that will have this be a major topic next time so we can kind

of you know get this get this through without too much more commentary and make sure everyone feels as comfortable as they can okay next one we only have 15 more minutes left so let's run through these VIP 2315 do we already do that one yep one of the times it was missed hype 21 35 that's why it's okay I got it yipeee e 2046 is it's not alex is on today okay we can skip that one then I

like to voice a couple concerns on it so we can get it a little bit oh sure yes we first need to have some clear definition on what the frickin files are oh my you know there was other stuff to try and give a larger range to say it's the first thousand modesta and the right but does it we should reference going formulas can also imply all future games we're gonna do that or we could specify a range my second concern is we're probably gonna need a reprise the existing pre compiles because they're all gasp based on the 700 call as far as the impact on the rest of the vm so i want to see some stats as to what those repricing ought to be so those are my two concerns so we

can get some feedback on at least initially great that sounds like that feedback I just have a question which just at least for a journal clarification sure I hadn't impressions at all so freakin files I ICI recover addition and multiplication of the Peruvian girl and I think also five countries in the way how their gas prices in Meatwad meter was without equally physical price said the last part again I cut out I mean for all significant files at least for a small set of them or which I kind of look at the code my impression was that they

were meet rate without a cold price so without lips having two hundred gas there's yeah for that they were measure without some hundred including the Blake precompile that just went in because that's like one per round that's incredibly cheap yes but the Blake pre-cum part is extremely expensive comparing to K check for you to be able to be honest like it's supposed to be two times faster than kitchen for most I would feel better in some stats I'm showing that we're not gonna break the

meter if we just get rid of the call right yeah definitely we should give more benchmarks but yeah yeah yeah I fried the question actually yeah about the moving sorry from moving from seven thirty to forty I know in the past was question to go for him to zero because he was it like that it's beginning what prevent us from just making going to zero why would it cost zero there is a context which going on so but we are talking about pre-compiled meaning they

are supposed to be faceted like variable pretty fast we don't we know currently the only thing we have which cost zero are jump tests and stops and doing a pre compile is more work than doing nothing at all so so when I say zero I mean at least consider the fact that you need to do sagasta meeting and then subtract this price I think in that case it was more into pricing it into the pre-compile itself yes but then you need to actually do the gas calculation so you need to enter the gas calculation all that pre-compile and before doing so

you have an upfront cost of in this case 40 and currently 700 but you need to offset the cost of doing the gas cost calculation at the minimum need to cover that that make sense it does it does it just that for instance in the case of Blake which is supposed to be like you know cheap faster than a check it makes it not mechanically pretty relevant to you to use a black except for 40 cash purposes one round the plane should it be cheaper than addition whether on the Blake should be cheaper than kitchen

right one round of Blake would be one gas and that's cheaper than traditional subtraction yeah yeah so one okay one Blake to be the compression is twelve round in any case so it would be tasty oh we still have like a cost of the first part in there that's for being in the contract but the compression function is would like to be 12 round which would be twelve gas which is roughly what you have for in relation to to k-chat without the the two combining part that you have to actually get the correct output I'm thinking we should timebox this one and yeah realize that realize that all of them most of them

are not totally priced holy act pointing at one versus the other off code and it just modest the water of it yeah it makes things strange there should be a good wish of anak an effort in the future to like have more than just a couple people like running the benchmarks needed for this stuff because it sounds like there's a lot of history being lost and how some of this came to be um but yeah let's timebox this could we let's just bring this discussion to get her because maybe even more voices can

bring more clarity to some of this as Louise's question alright that's the end of the efi list let's talk about the next upgrade timing that's gonna be James oh well the point of getting these used to discuss today was to figure out where if any of these are considering the when there will be think there will be be ready or in this kind of any oh yeah I was gonna say is the only ones I'm looking at this and it looks like Greg's looks easy 23:15 if it gets in the efi and the next

two weeks I see that being easy honestly but I'm not an implementer and then the bigger one that would like make a huge difference for like eath two would be 1962 so in my opinion we should focus the next meeting on figuring out if that should go in in the next hard fork and if so how long's like implementation and testing would take considering the fact that the stess ting has somewhat gone on already not within the etherium clients but within the code for the that was specified in the EIP and then brought into rust go and I think C++ so what did people think about that what do people

think about Greg's EIP and 1962 as far as like implementation time Danna we can start with you if you have any thoughts on that sorry I was distracted oh no problem so the 1960 - and Gregg's EIP the one for the reduce for the simple subroutines separately how long do you think those would take as far as implementation is that's something that should feasibly be in the next hard fork subroutines are relatively easy those would be like a week or two tops most of it's been writing records tests 1962 is a bit more of a wild card we need to decide if

we're gonna bring in the rest native libraries or try and find a road even then there's gonna be you know deeper builder ish build issues bringing in the native stuff integrating that so 1962 is a whole I mean there's even take two to four weeks at the minimum I think I don't know just just spitballin of that looking at the details sure yeah just depending on the go like you build and the prospector you can nice and who's rust with a see like interface which is a little wider or just built it C++ also complicated one it's a complicated up are gonna get

pressure from hyper letter to try and use encryption from their personal libraries so that might change our workflow okay and then Martin do you have any thoughts on Greg's one our 1962 for inclusion within the next hard fork no I don't I mean Greg swung seems pretty simple but yeah the other one is why scorch okay then we can wait till next meeting the other one I think has potential to be ready as Daniel CIP he

but we talked about the West you weren't here for last call we okay no I think the validated contracts for the timestamp the timestamp yeah I think that one might be something we want to try for this one in timestamps I think you need a hold off the other side see what stateless needs for the validated contracts but I think the time stamp is and I was hoping that I'm Jason Carver would have been on here so we could discuss what his issues are I think there's some conflicting concerns with the binary searches and the multiple blocks going back again that some details need to get hashed out implementation wise it doesn't look too difficult but it's the spec wise to make sure everyone's happy with it but I think is give me the longer pull getting in in from Berlin and what is what yeah

AFP number is the one with the timestamp two four five six this is for other people Dayton um okay I'm looking at the efi and I don't see much else that like feasibly could go into a next hard fork except if Prague how stuff gets worked out I own Andre is gonna join next week oh good okay because someone push that along if they want to sorry this yeah not about Prague pal but I know 1559 is one that there's been a recent PR for and it's it also seems like everyone is

in the community is like assuming this is gonna happen I'm sorry yeah you know it's almost like a given right now and and personally I'm a bit concerned by that because you know we it's not one we've discussed much on this call so I'm curious if people have any updates or opinions or thoughts they want to share about that and and I think on the last call they said they would have to go over to upgrades so especially given that yeah is there a possibility we get the first part of it in the next upgrade and what would that look like is that a 1x question why I can speak to that okay so they they made it so it's

one fork but then has two activations but it you don't need to happen so they they so it wouldn't be like a multiple you need multiple force implemented they've changed at where for me this the the more complex something is an ecosystem the longer I think it should be on a test net and so I don't normally six weeks okay cool great for a test that but I think something like EIP 5959 would need to be on Robson for a longer period of time to make sure that gas and all of those things Phil works as intended and so I I would say it should go so here's a really controversial

proposal should we say that we have the Berlin upgrade which has you know the three eeap's we just mentioned is there a scenario where we can have Berlin like have that 1559 go live on rats then either wit Berlin or shortly after so that we get you know however much time we need planning the next upgrade of des that data on it yeah because and I guess what I'm trying to say is that otherwise you know if we're always if we're always gonna need more time on test net for that EEP then we're gonna either delay an entire

upgrade because of that or have or the other alternative is we just have a one fort one eat fork on a test that's the try it out but yeah if it's in a spots where it could go live on the test that sooner than rather than later maybe it makes sense to do that all at the same time or very close to each other so my concern if there's a risk that we're gonna significantly change the AP after we go on Rosten maybe Robson's not the right Testament maybe we should spit up a New Testament just for fee market and the problem is spitting up a new test nut is getting insufficient smart contract traffic to get people to use it so that's I like the idea of separating it from Berlin

and finally giving it's on the fork but if my concern is if we if we're not certain about we're just going with finer little details putting it on rocks it might be risky because we haven't pull anything off of Robson that was an emergency like Constantinople estate the only time we did hey Trent does white blocks new testing framework simulates smart contract data once a test Nets spun up so we can like simulate that crap it will in the future I'd have to double check to see what our current future studies but that's definitely something we've been thinking about actively and and kind of trying to integrate into the platform cool that's know that happens yeah I'll double check with Zach and see where we're at on that

great thank you okay we're out of time so we'll think about this more probably talk about it on getter one thing that I feel bad that we didn't get to let me find it real quick if I can here we are the open our RPC standards that Zach came on for sorry we didn't get to that that'll be at the top of our list next time but if you do want 30 seconds to just say what what you want to talk about so people could start thinking about it that'd be cool yeah for sure thanks Hudson yeah so as you mentioned about open RPC I just wanted to address any questions and concerns that you guys

had brought up in your previous call maybe clarify what open RPC is what open RPC open our PC isn't but since I only have about 10 seconds I'd suggest just having a look at what we have that open - RPC org and that's probably a good place to start but the general idea is that we're building a service specification language based around JSON RPC yeah so thanks anyways but this will chat next week if somebody's available that'd be perfect yeah if you're able to

come or someone you want to send that'd be fine we'll put it on the agenda for next week cool a few weeks sorry that's right ok thanks everybody we don't have time to review the previous decisions or anything like that and maybe sorry oh and one final thing will happen but James you had a PRT ip1 oh yeah let's do that what's up with that oh the list of EFI this came up because on 2378 the eligible for inclusion it has some information about how the process works and after some discussion with Alex I realized that all of that kind of meta

information about how things work should all be in yet so people have a consistent way to find it and if this is a single source I made a full request to the IP one that includes a table of contents that also includes it takes out it adds part of the eligible for inclusion and what that what that piece is and then it also has some of the Alex had a a meta di e e IP 233 which is the formal process of our Forks I took the meta information from that and also added it and the rest isn't great so

there's a link to that at agenda item 4 4.1 I guess our four point I for people if they could look and add comments to that there's also an e IP IP meeting next Wednesday we think again if you want to be added to that reach out to me I can add you to the telegram chat that has the zoom link I think it's like an hour to after the meeting time that this usually is it's like 1500 UTC on every other Wednesday and this third one is this upcoming Wednesday so if you want join that reach out to me thanks everybody we'll see you in two weeks bye I better thanks

[Music] [Music] [Music]

[Music] [Music] [Music] [Applause]

[Music]