EIP Editing Office Hour #7

EIP Editing Office Hours · 29 Nov 2022 · 1:00:12

Meeting 7 of the EIP Editing Office Hour, held on 29 November 2022. EIP editors and proposal authors work through open pull requests and questions about the Ethereum standards process. This meeting covers a review of EIPs in Draft, Review, Last Call and Final status.

Topics

From EIP Editing Office Hours, hosted by ECH Institute.

Transcript

welcome to EAP editing office hours 7. um I have shared the link for the agenda in chat we are joined by a few EAP authors today uh Sam I have list of The Proposal number of request number um if you would like to start share your screen the first PR is 6059 all right let's get this going there it is just got the chat open here

there we are all right I'm saying that black screen am I the only one yeah we can see uh Sam's shared screen okay I'll I'll refresh all right okay so what is a nestable

I think I've seen something similar to this one before um yes let's see there is a very related one which is which is 998 uh but we explain the differences perfect sorry to ask you something could you stop sharing in Russia again I I know it might it looks like the problem but it's hard to be reviewed without no no problem whatsoever I know Zoom is um sketchy sometimes any luck

no certainly not bad that's okay I'll I'll be watching it in another screen for now thanks for trying are you um in the desktop app or are you in the browser browser you could try the desktop application it's a little bit more reliable yeah we'll try next time sorry I haven't actually read this one yet so just give me a few seconds here um much okay so I'm still not sure if mermaid

actually renders properly um on or like with our renderer um okay just because it could also be a smart

contract um Trump talk is a token that is owned by another token the token can create both apparent child at the same time that makes sense child tokens and given tokens can be fully managed by the tokens owner but can be proposed by anyone Okay so okay okay okay okay okay

sorry no worries so um how gas efficient is it when you have like really deep nested nfts like if you have a like three child three children deep or something does that end up like causing problems sorry let me make sure I'm here yeah so uh it's actually not very different uh I mean we we have compared the cost of our operations against regular operations for ERC 721s and at most it's uh twice the the cost uh and but it doesn't affect when you're handling children it

doesn't affect how many are there because that that's why we use indexes no no uh like the depth because so each child so like if you have like a chain of like one parent one child uh who has another child who has another child um but they're all managed by the owner of the the very top nft right they're not they don't have their own owners so yeah so um many operations are only um can only be done by the direct parent which is an nft like transferring so in that case you you don't need to go much you just go one level up but for other operations we do need to get the root owner so it depends yeah if you have more like more nested levels you would

have to call more external contracts to get the actual root owner okay so yeah there is a cost there which increases if there is many a lot of levels but it's really not the unmanageable okay okay

oh wow we broke six thousand I didn't even notice okay something else foreign

foreign yeah so from a quick read I'm gonna have

to go through this again like to get a bit more technical on it but it looks really good I think you you know you didn't hit any of the common problems a lot of people hit in their eips um so I will probably go a little bit more in depth but yeah it looks looks great so far you know that's great news yeah we we just recently sent the multi-asset ones so we learned a lot from the experience foreign of this instead of just setting the owner of an nft to a contract like why would you want to do this instead of that uh well I we put some of the use cases they're like uh bundling or membership

delegation oh right right but like so so I think both can implement the same thing right so you have a smart contract and the um so our contract owns the child out of T and allows the address that holds the parent nft to interact like hello it's some who has gone right yeah that's seven Puja yeah I'm probably uh screen

sometimes Zoom gives up so we should wait for a minute or so maybe he will try to rejoin foreign you are new here do you have any PR number that you would like us to be

reviewed while Sam is joining probably I can collect that and we can have it added sorry if we continue to use your talking can you hear me no yes uh no I do not I just saw that this was open so I figured I'd sit in and listen honor not a problem thank you for joining wow sound like is trying to reconnect

I think what he means is whether the author is my favorite alternative options to use the contract instead of pointing the ownership to another nft and uh whether this uh consideration has been reflected in the rationale all right thank you Victor for jumping in yeah that would be nice like uh Stephen if you have any other questions or maybe have an answer for him then yes I I was lost I lost the screen uh but

yes I think I also think that's why he's referring uh and well the main thing is that well it's not yet in the Russian alley we will like it definitely but the main thing is that with this approach of having a contract just being the owner it's limiting because it would be just one level uh while with this nesting you can have as many levels as you want or as long as gas is reasonable uh so you can have for instance one of the samples we have is like you have a uh King which is an NFD which owns a kingdom which is another nft and this Kingdom may have different lands which are also nfts and this land may have soldiers which are also nfts and so on so or also for

gaming like you you have a an item which owns its uh armor and weapons and it's it's different to just having in a different contract uh because it like this relationship is uh stated on chain directly uh and as a standard it's something like any nft could be nested into any other nft as long as As It implements this interface so it's not just for a custom use I guess I will have to tell that that's almost but thanks

while we are waiting I know Victor is also a very active reviewer and is proposed for any IP editor in upcoming EAP meeting I would love to have your feedback or maybe thoughts if you have any for the next proposal which is here which is 6051 uh Stephen um I would like to get back on proposal 6059 when Sam is back but in the essence of time we can probably move on and get feedback for the next proposal which is in the draft if that's fine sure let me let me pull the the uh the link can you put the link into the chat room yes I can do that

[Music] against here it is I don't see Sam online so I'm assuming something went wrong with his internet or like that so yeah maybe we can continue with it Victor uh would it be possible for you to screen share me okay

oh Victor um okay yeah yeah I can I can share let me use my uh let me jump to my computer to uh connect Ed Steven you did mention that the team has experience with another proposal um maybe know the number again please yeah it's 57.73 it was just merged last week oh that's nice cool

okay did you see my yes I can see your screen yes for some reason I'm hearing myself foreign zoom on as well uh let me quit my he also jumped can you can you hear me yeah

okay you are now muted Victor I can see the screen but can I hear you when I use my screen I cannot I seems like I cannot connect all the only that's weird again I mean this is weird I mean I can share clean if that's all along

okay okay all righty okay finally yeah so this EIP is proposing a private key in encapsulation they're trying to encapsulate your a private key uh what it does is uh encapsulate a pip so we can locate in another application without providing the seat oh let me see what is this proposing uh core algorithms and it has requests uh okay are you proposing an interface or are you proposing uh how application works

together meaning like small Contra work together uh it's more like a interface of for example if you have a metamask on the browser as a browser extension then maybe when you send a requests like this and then if it minimizes suppose this it can be uh yeah the function can be encoded okay so the first thing um I think I will ask about is uh consider um using interface category um that is applying for uh for for example if you see the Json RPC um Are all uh categorized as interfaces

there's four layers the first layer will be the bottom layer being called core which is consensus plus uh the um execution and then the second layer is uh Network which is like how we spread the uh how we spread all the transactions and uh and then um like gossip Network and then third layer is usually about I how um Json rpcs and other other obviously calls are in a schedule and it seems like by just reading very briefly I might be wrong uh it looks like it's it's at least what light look like here

is about proposing some new eth uh domain etas namespaced interface so uh consider that first uh that's what I would suggest and then second uh let me let me see um so are we doing uh is this an algorithm trying to do the private key exchange um the process uh it's a a tree uh yeah there is a key agreement but then the private key is a nice change is simply encrypted so that the other party can decrease okay okay

um let me think about it you're trying to increase a product key and then let the other side of it are decrypted yes uh combines CEI is this a particular uh yeah that's a key exchange okay it's interesting yeah I I see that's the uh abbreviation of that yeah I like I I know that it's very hard for us to uh put a link here uh I would generally hope my personal opinion is

that things like that be at least spell out um because like if people first time see it here they might not know what you're referring to as a as a self and um what you're referring to and so spell out when you use a acronym uh when at the first time in in a text would be a good idea and I yeah I will Advocate linking it externally but our current editor or your policy doesn't allow us to link here so if you have additional con yeah if you have it I I guess you might have tried to link it uh let me see yeah

anyway so um but at least explain them and then put some relevant uh explanation in would be helpful all right Sam just tweeted that there is uh internet down right now yeah oh yeah okay thank you all right no feel free to continue like absolutely fine just watching for a bit okay yeah I'm just uh hey Sam uh you you are an FK for non-linking and then I just have this authors um putting in ecises uh and I'm I was hoping this isn't a text that um having a link would be a good idea to

kind of get more time contest but for now given our policy I'm suggesting the author to adding to to spell out the ecies for the first time and provide uh rather than explanation yeah yeah it's a that's an uh a debate I am having with Sam right now and so this is working on as a key change uh and then let me uh trying to understand what

the key exchange component uh parties are you trying to um enable like uh what this what what the security um model are you trying to kind of uh set up for example who is the um intended sender and intended um uh intended receiver and then who do you assume have access to the communication channel do you assume the adversary will have access to the communication Channel I think it's something that I will be looking for uh in The Next Step um so this is not going with the very standard of of encrypting encapsulating private key but let me see

if you're trying to invent something new here um you can encapsulate authentic yeah it elements uh just a standard mature algorithm or particles like ecdh hkdf or authentic energy inclusion that that's a Asus GCM or something like okay yeah and by the way this is the typo um

yes thank you uh yeah uh yeah because I'm trying to figure out what the Yen encryption is okay now assuming you are able to do the exchange it I wonder if there is any man in the middle attack ability here so yeah there is music nature yeah if you use uh look at number two number two uh or are you can you can you tell my number 36 46 46 okay a formal recipient key are

base coins yeah optionally I could be signed why does signing help ensuring this the this the confidentiality of the key here I'm trying to understand uh confidentiality is achieved by increasing uh where I think uh when we talk about the random attacker we are talking about oh discipline public key is to be tested another way so I see yeah basic means the the receiver has signed off the uh have authenticated uh the response right

okay all right so this is key exchange um now you're defining a key exchange and then now there's uh the network communication process you define this uh request with the method with the version with this assigner private key um public key okay um reasonable must Generate random query private let me see what the response did you uh

specify I think at this at this section uh it is ideal that you also specify the format of the response this is the input or parameter right um yeah you mentioned the return value is R this is um this this is mathematic representation and this section and I think you start entering the process of describing what the interface looked like so I would suggest uh also put in uh such as putting in the interface uh the response format right all right does it does that make sense

yeah uh yeah um and for things like version and the sign and then and public key this is a public key right are you looking for the general standard ecdsa public key which and then oh yeah I think you would need to for this is an editorial question for you um the technical choice you make is that you have um is this an example or is this the the selection

um wait that's a Shard so basically the question I have for you is um you should specify the let me see if you already did the length of the of of of of the of the key the length of the length of the version and of course the length of the of the public key is relevant to the particular EC uh the the field uh the the space uh that you pick yeah this is specify the later in the cervical version yeah we have a yeah the version why is the electric curve and we have

two options and then the authenticated equation we have three options uh okay got it wow I just realized this is a very lengthy uh detailed uh yeah yeah that's great maybe we should move a little bit earlier yeah no worries I'm going to give some general feedback this is a very long one we probably need to also take some more time uh either offline or after but uh yeah this is great I'll specify the length of version and uh and uh uh okay and then

what do you mean Lance version uh if it's just as a string uh yeah so let's say if your version is um when you communicate that there is going to be a version stream you either say that uh okay our string is several bytes right our version is represented by a number which is the provides and then we are here going to use a hack string or any a mathematical representation um yeah basically just communicate the data type um data type and size how about that foreign

ER can understand what you're referring to like if it's a string I'm assuming in our use case is usually because it's a hack string representing some byte's number oh yeah then if so you're using how many they would if they'll differ from buy each one right okay yeah because you'll want to make it flexible to allow different encapsulation yes yeah uh I think it's worthy of mentioning that you either specify here

what is allowable or mentioned it will be synthesized in which following sections like for example you all have a dedicated section for version for all the versions that's considered today and then in that table what each kind of uh um will look like how does that is that um does that make sense yeah I think I will uh point of view upon the readers to the latest session because then there's specified a letter in the stack right right that's great yeah let me just put it here um cool uh information must generate as

a security uh sender R2 send request for sender to encapsulate the private key um request to Sender and usually these requests are uh I'm trying to imagine like who is like in in real use case can you explain to me uh help me understand in real use cases who are your intended sender uh and who are intended receiver in a typical use case United are targeted major targeted use cases yeah uh sender is a maybe like a hardware wallet and then you have a c uh

then you can derive many private keys and addresses and the recipient uh the receiver it could be it could be a Messenger application or some hot wallet so and you can extract one of the your private key from your Hardware wallet to your hot wallet so that it is more convenient uh that's one of the cases I see that's that's helpful um actually yeah that helps a lot I think describing them uh in the motivation could be helpful oh yeah

you did cool yeah that helps a lot on putting in the context uh where is oval B being mentioned I'll be oh this is the hologram data yeah I would see it's a mentioned earlier yeah yeah algorithm part out of bounds out about data uh foreign yeah makes sense I'll probably uh um put more time into reading this the

the I'm kind of revealed well one third of it I'm probably put more time into uh the other thing but uh in in a sense in for the sake of time I guess I'll pause here and then see what uh Sam thinks and what poetry things should we continue reviewing this particular EIP should we give it back to Sam or uh what should we do uh here what what's your preference um if you have other go ahead all right so do we have uh authors for other eip's here or yeah they do have for one more five eight five one okay yeah Sam do you want to like take it

back uh sure I think um this one is quite long I think it'd be best if we switch to a different one just to get some variety and then uh yeah everyone's okay with that yes and there was a pending question uh you were asking so and if you want that answer now or we can add it to the rationale later and you just review it and we can do it offline um okay I'll just ask you again on your discussion thread okay so the number is number five one I have shared link here in the chat

there we go okay yeah [Music] so this one has a panda pip review has a lot of panda paper review all right good fish for signing validating identities using zero knowledge proofs okay let's verified

okay all right case for selling value is the episode versus the interface for kyc validation of entities so um okay we'll see verification it is using decentralization amplifiers DOD with abstract contributions to a sanitary certificate such as

solvent tokens yes okay please friend using the centralized identifiers we can abstract answering conditions okay so I feel like the abstract's a little too uh light on details here I I don't feel like I get a sense for um

what's your knowledge brings to the table for this um I don't think it goes into enough detail about who'd be assigning these these um certificates and who'd be verifying them so a little bit more information about like um so um we had um explained it afterwards with the diagram and workflow but that has we have to also give um brief detail in abstract is that the case yeah yeah exactly yeah exactly like I want to be able to read the abstract and kind of know what's going on um

foreign the service of the challenges not being

addressed by their standards by defining the optimal functional interfaces that defines the identity with something weird with that sentence what's going on okay so that's your results calendar is not being addressed by other standards by defining the optimal functional interfaces that defines the identity issue should probably be that allows the identity issuer to validate the web 2 base yeah he basically um create an attestation so um I wanted to basically summarize here that the way to create an attestation which is um of a web tool based verification on web3 on on-chain verification so

and then uh yeah yeah so yeah I was just trying to figure out like this word I think is just the wrong word choice um and I think it makes sense what's going on like I I think I kind of get the idea of what the the EIP is um yeah scissors two so do you need 5192 style cell bound

tokens for this to work or are they off like is it just you mentioning them here for for interest sake for uh reference purposes yes yeah okay so don't think [Music] 51.92 is probably oh it's okay so never mind okay a new customer standard

plural or the sentimental Bible conditions that Financial Services providers satisfied or access services um so in my three [Music] okay okay

um energy represent yourself okay this is

function to validated the Azure sphere finds the holder of the SVG defined by the token SP okay and then we want to go back to where did that go so then tokens 51.92 okay so this is yeah this is an extension of 721 it's already has owner of

and then we refer it under the SBT ID as a mapping which is uh been um instantiated by the standard they will map to this ID with this uh um spt token so say run that by me again so what is different from is verified and owner of uh so it's verified is just um modify a function that has to be called by any and to verify whether the holder of this SVT so if someone wants to use the services so this function will validate

that um the address which holds this uh um SVT with this token ID so in order to validate is um kyc okay so I'm still not entirely sure so so is the SBT issue to people who aren't verified no it's issued uh to the people who are verified who are um given identity by the administrator and then um the other let's say service who wants to use this identity as verification

they will um do uh they will create a modifier on the functions let's say I want to access to the liquidity pool in uni swap so um add liquidity pool this function will have this modifier function which will check whether the caller of this function uh the address of this function has this token ID or not token or not basically is the actual owner of this nft or nokius so it's it's very so the owner of um it's it's um yeah I mean there are two different thumbs it just gives a Boolean result

okay and so you're saying um do you have the identity provider gives an SBT token to me let's say right and then I want to access your service which is like a unicorn pool is that kind of the thing you're saying and then if you get to choose whether the holder of the token that I have is allowed to access your pool or yes okay um

okay okay where is foreign foreign

requirements are actually like stored on chain uh indeed but they aren't executed on chain uh no they will be just referred um on Chain by the um the integrators of this kyc service so they can uh from their side Define off-chain or yipfs that these These are the data they want to verify and then they will compare it with the requirement structure which is presented on chain but um you did just say ipfs right sorry did you just say like it'd be on ipfs or

yeah it can be on ipfs for optimizing the storage so I will mention that okay because like if you're doing it the same way as like um 721 metadata that might be useful or it's just like a URI to the requirements um and then that URI could be a um like ipfs link or or something like that just because it seems like a lot of information to store on chain for something that's not going to be used on chain I'm not sure yeah yeah sure I will mention that [Music] um

okay so what does this your knowledge stuff actually come into this um sorry where does the um zero knowledge like Proof come into this or is that verified on change is that verified off chain how does that work so um based upon that type of protocol if it we need initial um creation of um the shared roof string we will have to use that so it's

agnostic to um it can be ZK Stark it can be any other category of protocol so um we are not uh special for for example we have used uh Merkel roots to um we will store the Merkel root by creating the hashes of the your personal ident personal information let's say address and other details and then once um you have to prove is you just have in the metadata only the hashes of the um of the certain leaves and then um it will recompute whether this information on chain will give the same

rule Merkel root as initialized by the administrator okay so so how does that interact with the contract on chain so where where do you actually store the information that you need for the ZK proofs and everything um it will be stored on the um requirement structure all the proofs uh beliefs that you want to verify and then um [Music] there will be a mapping uh corresponding to the each address and corresponding to wire threads multiple root is of is all identity data and user data so we just use the let's say same

mechanism that is used for white listing on chain okay I'm probably gonna have to give this like a couple more reads sir I'm not um super familiar with the ZK stuff um and I think we're almost out of time today but I'll add this to my list of things to to pay attention to and I'll get back to you with the rest of my feedback um maybe I can add a comments [Music] uh I mean we we basically like um for for any ID property we just uh slice them into different um attributes so all these ID attributes

are kind of are fragmented and all this value will be on the Boolean value so it's basically provide a certificate to to attest to this person Behold a ID he's like over 18 or 21 he's in this section digital nodes and all these um will be totally uh with all of my uh offline encryption fires and according to the Drupal race plan uh with the metadata structures storage I'm not sure if I I made this community

yeah so um you are just you rephrase that uh the process that basically we follow yeah to generate this um uh um credentials okay um so yes I I think I think my concern here just just to kind of clear this up a little bit I think a lot of this information is probably going to be in your reference implementation um and you know it's probably just that I'm not reading that's in depth enough so like I said I'll give it another read and then I'll get back to you sure so uh for the drafts uh we need to um let's say um brush up all the um feedback that you have given now um

apart from grammatical and other issues and then also kind of go in much more details about um the how we store the requirement structure and also what it how it refers to the zero knowledge groups um store it probably isn't like if you're pointing to a URL I mean that would probably be what I would suggest but if you're going to start on chain like eight let's get better but this is like the EIP should only expose the interface it shouldn't ex like it shouldn't specify the implementation details so um yeah just just be careful not to get

two in the Weeds about how your particular implementation does it um but yeah yeah I think that's that's good so far and like I said I'll get back to you with some more feedback on it sounds good thanks oh thank you so much thank you Sam thank you Victor uh Sam Victor if you guys get time there are three proposals for moving into final status so if that can be looked Offline that would be nice to have and yeah see you all in two weeks thank you everyone for joining us today thanks everyone