 Okay Hello, everybody. How's it going? My name is Martin. I work at open Zeppelin Until they were going to be talking about that construction and why It's probably the future of crypto UX and probably security too. Let's begin So let's first define what a kind of traction is and to better understand this. It's very to speak about Smart accounts you might be familiar with them already Smart accounts are basically smart contracts that behave as accounts. They verify transactions They hold assets privileges roles like owner They can also call other contacts, which is very important some known examples of this is a very popular knows is safe a multi-seg Arjun wallet that has social recovery and instant up Now a kind of fraction is basically a smart account can also pay for its own transactions. That's pretty much it What can we do with them wall basically we can have custom validation Skins this means you can use a theory and signatures become signatures water signature You want multi-signature or any other criteria or logic you want to implement? For example, this is only valid on Wednesdays You're going to implement key rotation in case picture the scenario in which you lose your you compromise your keys Instead of migrating all of your assets and roles and whatnot. You simply rotate the keys and you're done You are safe We also have wordians social gory, which is a very good feature and session keys. I think of session keys as basically For example a JSON web token or a set of preview of permissions you grant for example a website a web application So you sign once a set of permissions defined by some policy or something and then that website that can can Act on your behalf without you having to sign each transaction every time which basically gives us web 2 experience on web 3 So how does it look today on start net? This is basically the Interface of an account we are going to focus on the last four ones which are execute validate validate declare and validate deploy We can think of this in a two-step execution flow first the validate step the validate step You can define arbitrary logic to determine whether a transaction is valid or not There's There's a few Limits in here. For example, you cannot read all our contracts storage. This is to prevent spam pictures scenario in which There's many transactions that depend on the storage of another contract that contract changes that storage And then invalid lots of transactions that could be a spam. So that's a prohibited So these valid function is used by sequencers to know in advance whether a transaction is valid or not because Instead of a new way in which you can only you simply verify the signature You can only you cannot do that as simply in here because you need to execute some code and this execute step That's what you would expect Finally since Counts are contracts you need to deploy them and you need to pay for deployments. So how do you do this? Well, basically we can do counterfactual deployments, which is you calculate the address of your contract before you send funds to that address that has no contract yet Then there's this validate deploy function that the protocol uses to validate whether the funds on this address can be used To pay for this transaction or not and then basically you deploy your smart account. Well account of traction and Finally in starting it you can use opensable in contracts for Cairo in which we have an account a regular account, which uses this target Signature scheme we have an ith account, which is a term signatures and an account library that you can use to build your own custom accounts and I hope that by now you you got the idea that it means a huge improvement in onboarding user experience and security Martin that was fast. Oh, sorry one last thing. There's a pop for this talk Yeah, you can just ask me right now. Oh, I mean since this was the last talk You have the chance to get some questions from the audience. Of course, we still have time So in the ethereum version of account abstraction, you will have a separate mempo and the boundaries and stuff so I guess in Stock net this role will be replaced by the sequencer itself Good. I didn't get the last part. Oh So like in the so in ethereum led in order to execute account abstraction in the separate mempo and a boundary system So what would be the equivalent for stock net, right? So, I mean you mean EAP 4337. That's right, right, and you're asking about the paymasters No, we're talking about how like is there an alternative mempo that actually relays like better transactions or how does it happen concretely on stock net? The use of account abstraction So basically you send a transaction and the sequencer picks that transaction validates this valid function If it's okay, then it's inserted into the block. I'm not sure I got the question, right? So account abstraction is actually built in right? Sorry. Oh, that was it. Yes. There's native account abstraction on the system There's no we always so they're completely replaced by them How do you ensure that in the validation process the validation result will be the same in the actual execution? Well, what do you mean for example, for example, if one transaction depends on the block timestamp You okay? Sorry. Yeah, so that's part of the limitations. So you cannot read any external Information from the contract that includes like blocks timestamp other contract storage So you're gonna use anything that depends on anything else that the very same contract So that I mean that every wallet address on stock net cannot use those functions No, no, they can but not on the validate step They can on the execution step, but the valuation step has these constraints to prevent spam. Got it. Thanks Thanks for the great talk and one question Could you and you just have a lot of execution code in the validate step and only at the end find out that it's not Valued it not not a valid transaction and thereby spam those Notes infinitely definitely So but there's a smaller chances So you for some other reasons the so you could you're saying that you could invalidate the transaction on the executions Part not the valuation No, I mean in the validate function put a lot of stuff in there complex stuff like it takes a long time to compute only in the end There's a gas limit. Okay. How much is the gas limit for the validate function? I gotta know, okay, but that's okay That's the solution. Yeah All right. Thank you so much. This was the end of day one. Thank you