ep 6 – Securing and Evolving NFTs

10 Sept 2023 · 1:08:29

This episode of a16z crypto's web3 podcast brings together security experts to discuss what usable security looks like as NFTs expand into art, identity, and token-gated experiences. The conversation covers dynamic NFTs, best practices for builders, and common myths around artist royalties and immutability in NFT smart contracts.

Speakers

Topics

Transcript

welcome to web3 with a6 and z a show about building the next generation of the internet from the team at asics and z crypto that includes me your host sonal this show is for anyone whether developer artist community leader startup entrepreneur or other builder seeking to understand and go deeper on all things crypto and web3 towards a decentralized community owned and creator-owned internet speaking of this week's episode digs deeper into nfts focusing especially on security and addressing also a few very common myths and misconceptions along the way it builds on a more basic nfts explained episode from 2021 on the a6 and c podcast which i ran previously that

includes me and two close friends of asus z crypto breaking down everything you need or want to know about nfts but it's separate from this one in this episode we go into specifics on what exactly is in the nft or around the nfd what exactly is in the smart contract and the metadata and more before we dig into all the related security topics including some best practices at various levels and discuss the evolution of nfts across applications and mediums including dynamic nfts for art to identity to experiences our expert guests in this casual hallway jam with me are two asics and z crypto team members michael blau an engineering partner at a6 crypto who spends his time between investing and also working on

new protocols simulations and tools for instance he recently released after this episode was recorded a tool for detecting metamorphic smart contracts that can be changed even if seemingly immutable as well as a tool that detects sleep minting to fake provenance and ownership you can find those at asicscrypto.com michael is also known by his nft artist alias as exor his most recent works artistically include a dynamic nft mev army and ascii art that visually represents and incorporates different ethereum technologies within the artworks then we also have nasim edekweck who is the chief information security officer at asics and z crypto and was previously at facebook blockchain where he worked on all the

security infrastructure and custody there along with his co-worker riaz who joined asics and the crypto as cto prior to that nasim worked in r d security key management and more at anchorage and before that docker and at apple and naseem also released a personal nft project after this episode was recorded called rebels by night a pfp collection of dynamic nfts aimed at on-chain customization as a reminder none of the following is investment business tax or legal advice please see asics.com disclosures for more important information including a link to a list of our investments we begin the conversation for the first 10 minutes with some quick context on nfts redefining it more specifically beyond as just a non-fungible token then go

into nft security and then discuss trends and applications of interest now and ahead so can you guys just quickly break down for me like what is actually in the smart contractor on an nft because this is something i think there's a lot of misconceptions about can you guys just quickly give an overview of that sure the analogy that i use is you have this one smart contract which you can think of as a bucket and on one side of the bucket you have like an excel spreadsheet which keeps track of an address or a wallet address and then a token id or an nft token id and if you think about like an excel spreadsheet each row is if it's your address in the same row as the nft token id that means that you own it so that's like one side of the

smart contract the other side of the smart contract is arbitrary functionality or code that defines the rules of how this asset or token is transferred so if i wanted to transfer this nfc to nas what really happens under the hood is it's just shuffling rows on this excel spreadsheet but the code is actually doing that and the code will do things like check to see do i really own the token that i'm trying to transfer can nos is he able to actually receive this token or code that lets me check to see who owns token number one and it's code that looks into the excel spreadsheet and then we'll return back out the owner so it's basically a spreadsheet a record

and then code that facilitates how that record is updated so the other way that i've heard it defined this is from chris dickson founder of a6crypto is that an nft is simply a blockchain based record that uniquely represent pieces of media and that media can be anything digital including art videos music gifs i will not say gifs games text memes and just any code frankly so the interesting part about nxt is that if you think about nfts as there is this token identifier that actually identifies the nst itself but the content of the nft can be anything anything that we think about right now we focus a lot on kind of like the visual aspects but it could be music it

could be code it could be websites entire websites it can be anything like rich media content or other things like property deeds but the nft is actually the envelope plus the data itself think about emails the email is not just the content of what nas sent to michael black right it is also all the metadata that comes with it to ensure who actually sent the email who is actually receiving the email was there any security property encryption who actually validated all these properties what is the format and so many things right and so it's important to keep in mind that nxts are not just the end content that is

delivered to the user but it's also this rich metadata all around it that provides a lot of context that is essential to the nft itself and so this is a very simple system but the guarantees that are provided by the blockchain around permissions and immutability ruby of this code really gives a very strong properties and we could have implemented nfcs in a bunch of other ways without blockchain but the reality is that the blockchain gives us the properties of immutability and basically like trust in the system and the mapping that we need in order to build products at skin without any source of truth that is centralized by

the way by context do you mean stuff like the traits and other details or like what specifically when you think of the context exactly it could be the traits it could be if you think about emails ascending i'm down is not going to mean the same based on like if you're retiring from a certain source address to another recipient the recipient changing will actually impact the meaning of the message right that you're sending and it's the same with nsgs with nfts having different traits obviously can mean different things but you can actually add anything to the metadata right you're free to populate the metadata of the nft with any type of information it could be source and recipient just like emails it

could be an encryption envelope around it that defines who's able to decrypt it it can be read anything ranging from when this thing was created when the statement was modified maybe it has several versions right maybe you're storing the version zero and the last version of some piece of beta and so keep that in mind as an entire space that we have this envelope that we can modify at wheel to provide more and more context around the data and i really hope that we are all gonna try to experiment more and more what we can do with it before we go into what you just mentioned us you know about the experiments and then we'll go into the security let's really quickly chat more

about what is and isn't in the smart contract including that notion that you can encode functionality like secondary royalties for creators so a smart contract allows you to both store one of these limited digital assets tokens or nfts but it also allows you to like you said encode other functionality around it however it is a common misconception in the nfc community that the smart contract itself facilitates secondary royalties to creators actually that is not the case rather secondary royalties are honored by the marketplace that the nft trades on i thought the beauty of an nft is that if something gets sold or resold and currently in the

art market to use an example artists never get the secondary royalties unless there's some way they know but because of the ability to track provenance and i thought and code that information into a smart contract that is how that guarantee is made but you are saying that that guarantee is actually provided by the marketplace correct so technically speaking you could do some over-the-counter trade of an nft like i could trade an nft with nos and say nos i'll send you one nft and you can send me to eth and that transaction zero percent of that 2eth will go to a creator it will go 100 to nos and the reason why that is is there are actually a lot of reasons but like two of them and i'll let not all as well is

what happens in a situation where let's say i own an nft and like my metamask wallet but i want to transfer it to my hardware wallet or my ledger well that transfer of the nft is still to myself i'm not actually selling it but if you put a limit or a percentage fee every time an nft transfers which is how it would have to work then basically i would be paying the artist a fee even when i'm transferring it with myself oh that's great not great but yeah that's great yeah and the second point and there's a caveat to this one is that the nfts are smart contracts and creators in the space don't always actually have ownership over those smart contracts and what that means is that if for

example you did want to create an nft where indeed every time it transferred the smart contract collected a royalty in order for the creator to go and withdraw those royalties from the smart contract because the royalties would accrue within a smart contract that means that the nft creator would have to have ownership over that smart contract and oftentimes when you're creating nfts at scale creators don't actually have on-chain ownership over those smart contracts marketplaces do or there is no owner at all so it's kind of like a low-level specification of the smart contract that would make it challenging michael covered it well obviously smart contracts had code and can make the code do a lot of things

including this but this is just an extremely complex thing to do and so current systems are just for the sake of and user friendliness and scalability and so on are not designed to have that natively but there are some standards that are part of the nfc specifications that enable marketplaces to query the contract to request how many royalties should i apply as a marketplace great before we talk about the security standards and the trade-offs between scale and usability as you just mentioned the role of marketplaces and others in the ecosystem i'd actually love to hear from you guys how would you even break this topic down like conceptually i mean it's a big topic there's lots we could

cover for many episodes but you know as an overview what framework should we even use to talk about this the topic itself so the way that i sort of think about nfts in general and you can kind of tackle each is this framework that i like to call the nft stack and you can go through each component of this stack and dissect the security implications of each i'll give you the high level overview of what it is so the very first level is just simply the art the artist or the creator coming up with some media type so that's an image that's a 3d file that's a website it's a piece of code whatever it might be whatever the media content is okay that's step one step two would be the actual smart contract that's hosting this nft that's hosting any of the metadata for the nft that's

hosting the functionality of how this nft should be traded that's the next layer of the stack then comes the primary issuance of the nft so how does a user purchase or acquire the emt is it free is it paid is there an auction mechanic is it on a centralized platform is it in a smart contract etc the next part comes is the secondary marketplace so where does this nft be traded after the fact if it can be traded out to the back and then the final component which is sort of like beyond is token gating now that you own this token what do you do with it how is it used across platforms and as you move from website to website and web 3 or adapt to dap whether that's discord or instagram or twitter how does this nft

connect to that application and how is it used there so i call that the token getting stage yeah and that's like my high level stack probably the most important one really is the smart contract level which is the first one and the security implications there i think that this has the right level of granularity i tend to segment things as for the user across different types of brand directions like what are the threats that they're exposed to what is their attack surface basically looking like same thing for like a marketplace same thing for the creator or the smart contract itself which is almost like a different party at this point i think what we should do then is let's go down the vertical stack that michael just outlined which is kind of a life cycle of an nft in almost a linear way and then let's take a bit more of a

horizontal attack across all the parties as you mentioned whether user or creator marketplace and then also bring in some of the other key trends that may come in and just like attack it that way that's great so michael you said the most important is a smart contract and it's like the first step but in fact the first step is really like the art or the asset itself so super quick is there anything security related at this level to be aware of whether the art is a image a piece of music or whatever that creative artifact 100 actually and i know not has a lot to say on the topic as well but i'll kind of give you a high level view which is very much so which is that like we said before an nft can point to any media and what happens if that media is a

website or an svg which is like a common format for on-chain artwork yeah especially generative artwork exactly like these media files can and do contain executable code right and all of a sudden you can run into a situation where when you have like a display layer so marketplace or a wallet that's showing your nft collection the application the client side the front end is reading in this dynamic file like an html file or an executable file and it's executing that code in your browser to render an image and that means that you have code coming in from the blockchain that you're not aware of executing on your local machine which of course could have a lot of security

implications yes so these are things that we actually saw in the wild that actually happen and this is not a new problem right the email providers and facebook and other companies have been displaying images for a very long time very complex media types that oftentimes require code execution in order to perform as expected whether that's rendering an image a video executing a code in order to get sound like html pages and so on and as we are trying to develop art that gets more dynamic and produce more information execution of code becomes part of the equation and so svg is for example allowing you to execute javascript and

so on can if not properly contained by whichever layer actually does the display can actually very well escape their sandbox environment and perform malicious action potentially make a request to metamax to sign a transaction or like pop up to request to sign a transaction that could actually your wallet and so on and so it is the responsibility of obviously marketplaces to check that but it is also the responsibility for the creators to actually make safe content available to their users and are there any ways to protect people here because just to really ground this for people when you guys say svgs that's like a scalable

vector graphic it's been around since like the late 90s it's nothing new and i'm really glad you pointed that out nas because this is actually not technically a new problem what's interesting here though is part of the opportunity here is not just like animated gifs and video and rendering html pages but the dynamism of nfts is i think incredibly interesting as well because to me it's really about creating this new world of generative artists like generative art has been around for decades and i'm a huge consumer and fan of it but there's an argument being made right now that now it's almost like it's a blockchain native format that's like really finding its moment so can you say more about this because this has implications for the possibilities of what we can do with

nfts what can creators do what can platforms do what can metamask do to make this a little bit better for people yeah so there is this process called sanitization input sanitization which is basically taking any form of input that is provided by a user and modify it and edit it in a way that makes it non-malicious so you're basically proactively removing certain capabilities for example in the case of svg doing certain html or javascript actions that could allow it to escape the safe environment and it is going to be the responsibility from marketplaces and wallets and so on to do a better job at sanitizing the various types of media

right right and we know that this is a very hard problem because at the end of the day when you look at email providers i think email providers are actually one of the best examples they're transmitting and delivering to you any type of data they do malware analysis they actually do a lot of verification on the data that is shared with you prior to actually allowing you to opening it right because they have your safety in mind and it is going to be the same for every single players that is responsible for delivering you this data marketplaces and experienced providers meta versus and so on i mean for me the email analogy really resonates because i think of the degree of familiarity people have with email a lot of us are very savvy

with email but then i think about my parents they can't tell the difference between like a phishing scam or an email that has malicious code that could execute in it so the providers doing this for them is hugely valuable and i think we have a similar issue with nfts yeah the only like points that add is something that's almost a little bit scarier with nfts than with something like email is that you could definitely have a situation where somebody will airdrop you an nft that has this malicious functionality but that nft is non-transferable so you couldn't even get it out of your wallet if you wanted to right yeah and it's there forever and every website that ever reads your wallet data always needs to be aware of these assets and how to exactly what not said is sanitize them the other point

it's not so much about security but it's about how you mentioned how this idea of generative artists taking off with nfts in a different way and i think the reason for that is because oftentimes nft assets are not actually stored on the blockchain where like your token is stored on the blockchain but the actual media file and metadata is stored on some decentralized hosting service such as like ips or rwev and by the way the reason for that is because if you were to like store a full image on the blockchain that would be very expensive i'd be a lot of a gas cost however when you have something that's generative you're not actually necessarily storing a whole image rather you're storing a piece of code that sort of unwraps and generates itself on demand to show you an image and that's i think

why that's taken off with nft is because you can all of a sudden actually store quote-unquote images on chain but you're really just storing the generative code really cool i'm so glad you said that i'm just a huge passionate consumer fan same is there anything more to add on this first layer or this linear phase of the nft stack you know before we talk about the smart contract itself yeah stuff that we're starting to be very concerned about is leaking any form of art or metadata about the drop even before it actually happens because it actually allows you to make a lot of educated decisions basically insider knowledge about like what is generated

what are the traits and so on and having this information even like regardless of the blockchain ahead of time is extremely valuable and we've seen that in the league of information prior to highly anticipated drops so it's very critical to also be conscious as a creator that the content that you're creating the metadata may actually be extremely valuable even without being on the blockchain anywhere right and sometimes taking the proper steps to even encrypt it if you have like a highly anticipated drops is very important because people will want to try to get this information before the rest of the nft space that makes a lot of sense i mean to be honest it feels like there's a bit of a cash 22 there because

on one hand part of the community building purpose because you know we're talking about these assets as if they're just like living in an isolated ecosystem and clearly they're not like you both have your own personal nft projects several in fact and a big component of that is a community building and some of that excitement of the high demand launches is around that community building and so it's not just a critical rug pool it's really just that's the idea there and i wonder if you guys have thoughts on how just as related to the security issue what people should be thinking about here besides simply encrypting some of the details because part of the point is marketing to be clear so i sort of make sure we address that yeah this is a hard one at least in my own personal experience when it comes to

like hiding the metadata and strategies around that it oftentimes was a combination of web 2 and web 3 technology where a huge component of web3 technology which is actually what makes this problem arise in the first place is exactly what nasa was saying is if someone tried hard enough all the data on the decentralized storage platforms or the blockchain is publicly available yes so if you wanted to hide it you do need some web to component right there needs to be like a centralized server at some point in the process to hide this data and what ends up happening in that situation just speaking from personal experience is the technology at its current state is probably not developed enough yet to be able to beautifully and smoothly link

web 2 and web3 especially when you have situations where let's say it's a super high demand mint and you're hosting your your files on a small server that you just kind of spun up on aws with not a lot of scaling that server can very easily crash when you have hundreds of thousands of people trying to make your nfc at once and it's kind of trying to connect your server and then the blockchain and then the server needs to know when it's been minted to make the nft available and they're communicating back and forth and you kind of get this like weird knot of web 2 and web 3 which could lead to some bad user experiences yeah it just means we're early but that's a very nice analogy of like that tangled knot let's go into the next layer of the stack which is a smart

contract and all the functionality that is encoded within that and so let's talk about security at that level for this one there are just so many things that pertain to the smart contracts themselves right you can think about flood smart contracts you can think about malicious smart contracts you can think of malicious nft distribution that actually goes through the smart contract and sometimes it is required for the smart contract to have features directly inside the code that enforce the randomness of the distribution and other properties and also the contracts themselves need also to be resistant to things like bonding and a few other things yeah i totally agree and the way that i sort of think about

it is like the way we started this whole podcast is talking about how we have this nft that is a token and then functionality to manage how that token is transferred amongst different users and that functionality like just that the storage of a number token identifier and the transferring functionality that is pretty much standard i mean you can go right now and use the standard erc 721 or 1155 contracts from open zeppelin that are highly audited and secure and put that on the blockchain and you will have an nfc that functions and is secure and works however that is very different from this other functionality which might be

for the initial primary sale of an nfc or like an initial drop yeah which has different mechanics and all of a sudden you're collecting money you may have an auction mechanism you want civil resistance like nash was saying you don't want bots coming in and minting out an nfc before other people and you have all this extra functionality that's really only used once right it's only used for this initial launch of the nft and keeping those two things separate so if we take for granted that the token and the ability to transfer it that code is already audited it exists that's there we can be sure that our tokens are going to be secure and then also we can maybe then focus on the side of the actual mint and the launch and where hacks and security

vulnerabilities can happen there it's like an interesting way to think about it cool so let's break it down that way and you can actually leave off a lot of details about auction design for web3 because for the listeners in case you missed it we went deep into incentive and mechanism and market design and more in episode three with tim rufgarden and scott commoners if you want to check out that episode so take it away michael okay so like let's focus on actually users coming to your smart contract to mint an nft and this is also making an assumption that you're not selling this nft on a third-party marketplace that is totally centralized you're actually selling it directly through a smart contract right which is what a majority of nft mints are using today

so you have a few issues here for starters i guess this is a big topic let's talk about like bots right so let's say you have a 10k nfc project and you want the ability for someone to admit like each person can make two and that's about it like each person can make two and they're gonna pay the smart contract money in order to mit two nfts at a time now that sounds pretty simple but we also know that there are a lot of other components of the crypto ecosystem such as flashbots or med where you could have bots and miners coming in and front running other users and minting out nfts before the actual normal user who might be honest just is going to come about and make it through their metamask like

they will completely be beat out right right how do you address this by the way well there are a lot of ways but i'm just kind of talking about one mechanism for this but one is a situation where a user when they mint an nfc to a smart contract not only do they specify how many they want to purchase and of course send the amount of money that they want to spend but also they provide a cryptographic signature and that cryptographic signature that is provided for the smart contract could only be generated by let's say the front end that a user might go to on their browser to make the nft and when you do this you prevent bots who are just sitting in the transaction mempool watching things happen and

trying to snipe nft mids who don't have any idea of what the website is they would never be able to actually front run because they don't even know what that signature is because they didn't even visit the website in the first place so right these are two things that you could do to prevent the bot now on the whitelist side obviously we have a white list and can only allow certain people to mint that of course prevents thoughts from coming just by the simple nature that only a select set of addresses are allowed to come and mint an nft but just like this idea that a bot could come in and capture a lot of the volume of an nfc is really dangerous because now you have the situation where a bot might accumulate like hundreds of nfcs which could be a huge percentage of the

supply immediately turn around on a secondary market and dump them and all of a sudden it just creates this really bad way to start up for building a community we've actually seen body really quite a few drops right so it's kind of like the bodying through smart contracts as mentors that we basically have smart contracts that themselves create a bunch of addresses send funds to them and then have all of them send transactions to mint and they basically have now like a single smart contract that managed to make 300 400 500 nfts plus or you have actual accounts that can mince directly to the contract without going to backer and so this is like an interesting trade-off

because now you're making the mint more expensive to every single security feature that you're adding you're actually also increasing the complexity of the user experience throughout them or it could be even from a financial standpoint the amount of guest fees that people pay and so i think that trying to hit the right trade-off is open a bit hard even including web 2 to secure a drop then you're forcing them to basically either automate or just prove that they're an actual human being so there's going to be captcha bird education and so on and all these things actually do add quite a bit of friction so it is pretty important as a creator to not scare people away either a lot of

people will understand that it's for their own benefit but actually do you hate the idea of having to go through like plenty of hoops yeah totally just a quick note gnaws on your point about the trade-off you know when you're at facebook you actually were really responsible for thinking about these systems at a larger scale for what it takes to bring many many users onto something do you have any philosophical mindset here about what kinds of trade-offs because there are always trade-offs that you kind of have to make when it comes to thinking about designing these systems for scale yeah people will look for always the shortest path the path of least resistance always that's just human nature yep and because nfts are social

networks accessing the social network of nfts is really no different from exactly facebook right and so if you're making the onboarding to facebook complex or you know in the case of the system that i worked on the nob wallet if you're making it too complex people will actually decide to not join this social network and go for like another system another platform right right so exactly it's a game of incentives and also a game of education right you have to basically educate people proactively very clearly explaining all these things to people will bring them with you along in the process explaining to them why is it that you do what you are doing why is it that you're forcing them to take

certain steps and you also have to make it clear that it's a one-time thing and that this is not gonna be happening again but you really have to make that process clear even before they go through the experience that it's for their own benefit for the community around them for the friends that they could have also in the community joining them as part of the social network the only thing that i'll add is like we mentioned the beginning nfts are images their jpegs their videos very static right and i think that as we develop that category of nfts that are more dynamic and have more functionality other than simply a pfp or an image i think that the actual smart contract functionality that is going to be required to enable all those new features

is also going to be another component of security risk and things that need to be audited right so it's not just this initial mint anymore as we increase the complexity of what these assets can do that's only going to increase the issue and you know what maybe that has to do with if you have like an nfc for example that in theory should be non-transferable but yet it is transferable that could really ruin a protocol or you know i think we often talk a lot of times about situations where an nfc could be non-transferable or soul bound or an nfc is owned as you would expect it to only you're allowed to trade it but imagine a situation on the other end of the spectrum where of course we've seen scenarios where you sign a malicious message in metamask and then someone's able to actually swipe

nfts out of your wallet but at a smart contract level without even assigned a message if there is a vulnerability in a smart contract that actually allows you to pull or remove an nft out of someone else's wallet is pretty important and where this gets really interesting is there's this component of minting nfts where we always look at provenance and how important that is of who owns what and who transferred what to whom and we assume that when we go on a marketplace and we look at the history of ownership that it's true and honest and this is actually from the blockchain but in reality under the hood the way that third-party marketplaces are able to pull that data and display it to you as the user is through from a technical side events or event logs that are emitted from the

blockchain and these event logs can be manipulated and you could have situations where a smart contract mint that you might see on on a marketplace will show famous influencers are making this nft and that someone will look at that and be like oh my god this is a really popular nft i have to get in on it i have to buy it i have to rush and all of a sudden it's completely fraudulent and these people are not actually missing this asset and it's all just based on smart contract manipulation and it's just to steal your money and that's a whole other side of this extra functionality that could be in a smart contract above and beyond the token that could be pretty harmful to users and we see it happen quite often i know this is a big topic but just a quick note before

we move on to more is there a solution right now or is it still being worked out to help prevent that exact scenario you just mentioned unfortunately there actually really isn't a good solution outside of different marketplaces taking the necessary steps to detect these sorts of things and they are detectable i did write a vlog about this thing called nft sleep minting which has to do with this topic and it's something that a marketplace can detect or a block explorer like etherscan could detect and display them to the user so yeah is there anything else you'd add at this level you know other nuances involving an evolution besides the transition from static to dynamic that michael was just talking about nas that you would add that you know some other aspect anything we're

missing yeah there is like another thing as we start having these bigger projects that have like several collections to them and the requirements to access a certain drop is basically ownership of assets from the previous collection yeah i want to meet the mutants but like the only way for me to make a mutant aid is if i have a board right and so one thing that we want to also have is allowing people to keep their asset as much as possible in their cold wallets that so one thing that i would love to see is more standardization efforts around being involved mint from a hot wallet into a cold wallet that you own i wish i could applaud i want to applaud right now applaud out loud

insert sound effect decoupling basically the address that means from the recipient is going to be critical in the future we really need to start working on standardization efforts around this decoupling because everything that we're doing right now is gonna define the way people interact with nfts in the future the way people want to access experiences and right now there is no decoupling right you need to have basically to move say your date or anything into the wallet that it's gonna mean put it online do the mint and potentially do a malicious action and then send it back to your cold wallet and so all these things are gonna be

critical to tackle yeah in the months to come right and just to be clear for those who don't know obviously like the difference between a hot wall and a fold wallet at a high level obviously a hot wallet is really the one that's connected to the internet cold wallet being something that's literally just kind of disconnected and separate and the best practice is to obviously try to move anything that's valuable and not in frequent rotation or use for like daily activities into your cold wallet as it's the default but not everybody has that level of sophistication let alone have any of that set up and what you're arguing nas is that platforms standards bodies various participants makers creators can all help these standards come about by simply helping users kind of do this as a best practice

by the features and functionality they built that's correct and having that as part of the smart contract itself is going to be critical to ensure the best safety of everyone in this space and i'm talking about minting but in reality it's any type of access any type of action right you should be able to stake on behalf of another address you should be able to access whichever party and events or like unlock certain content there is going to be more and more actions that you're going to be able to do because you own a specific entity yeah this is kind of like this idea of token gated experiences and so decoupling the two is gonna be really critical but the myth is where it starts this is where we should probably start and we're gonna have the easiest way

decoupling these two the addresses that perform the action from the ones that actually store the asset wait not so like you know how sometimes before the men if you go to the smart contract there are a lot of approvals like set approval for and things like that yeah we'll just like to give contacts for anyone who's unaware part of the erc721 standard is the ability for you as a user to delegate another address to transfer your nft on your behalf right so like i'm just thinking in my head now i can imagine let's say i know i have my cold wallet that i actually want to hold my nft before an nf team it happens i'll make a new wallet that's completely detached from everything else i'd go to the smart

contract pre-approve right my other wallet to transfer any nfc i own from this contract at a later point in time and now i can go and mint as usual from an address that might not necessarily even be on a white list as long as what's approved is on the whitelist to transfer later and then of course as gas dies down and all this stuff i can go reclaim that nft from the correct address and the cold wallet out just later on but like i don't know i'm just thinking about that in my head right now is it potential method yeah the way i was thinking about it is actually making it a one-time thing just like you registering a ens basically having a single central location where your address can actually say this other address can do these things for me including men including staking

including some other actions and doing that as a one-time and for the blockchain to be able to register your preferences and your permission and it wouldn't necessarily need to be for a contract basis so like are you telling me that this weekend we're gonna go make the minting permissions registry that is exactly what we're gonna work on michael i hope you don't have anything else played i love it live and conceived on air this new product that will come out right after this podcast i want to just point out something you mentioned very briefly nas like this is useful when you think about token gated experiences and the idea again here being there is a way for nfts to represent so much more it's community building

it's the ability to unlock experiences in the real world physical world as well as online it could be attending an event it could be connected to identity it could be connected to gaming so what you guys are actually talking about has significance well beyond just this kind of wonky question of how do we secure so and so i just wanted to underscore that because it's actually quite significant that's a very good point i think that gaming is the most important problem every single project is eyeing towards some form of experiences digital experiences you don't want to have your most valuable assets plugged into your computer that is actually running a game right that is constantly exchanging information with untrusted networks right sometimes thousands of players as well yeah

exactly exactly and so you end up in this situation where you need to have this system of permission so that your assets are safe somewhere but there is some form of delegation of permissions to whichever system you're using to actually perform the actions perform the interactions with the systems and still enjoy it as a holder as a stakeholder yeah i agree so okay so really quickly before we move off the smart contract thing is there more to say then on what people should whether it's a person whether the party is a person a creator or a marketplace or anyone else who's kind of creating interactions between these smart contracts what else can be done yeah i think that one thing that every

single person deploying smart contracts should really seek security expedies in order to perform security audits especially as you start using as a creator as you start using a custom logic in your smart contract that is not standard it is essential for you to have these things reviewed by experts in the space who can tell you this is not going to work there is going to be a bug here and so on and we've seen nft drops having big issues one of them was actually trying to perform a dutch auction with a last clearing price and so intending to do the detraction refund everyone like the difference between whichever bid was

made and the last bidding price and actually there was a bug at this level and the entire primary cell ended up being locked within the smart contract and so it is critical to keep in mind that as creators you are responsible for not just the tokens but the money that flows through the stock contract do not hesitate to see security expertise in the space a lot of people will do it for free some of them will expect something in exchange but it is critical for you to really perform security audits especially of the parts that are pretty custom and bespoke yeah even if for whatever reason maybe you can't afford an audit or it's too expensive or the timeline doesn't fit

your project's timeline like even just the steps of open sourcing your contracts beforehand and letting the community look at them there's someone nice out there that can point something out to you if there's a problem that's a wonderful point because to me the entire point of this world and movement of web 3 is this democratization of creation and i like the idea that you don't have to have elite technical knowledge to be able to do certain things and right now a lot of this stuff isn't abstracted away in a way that's plug and play for a lot of creators it sometimes means you have to rely on an existing network you have to either know smart security folks who can do this whereas i don't think every single person has access to that like do you think there's going to be a movement where platforms will help

provide this or there will be a whole ecosystem of these services springed up oh 100 yeah and you already see this happening just like manifold for example you don't have to know how to code at all you can go to their platform they already have audited secure safe smart contracts for creating a variety of types of nfts that is very easy for anyone to use and all you got to do is pay any gas fee on the blockchain to actually do that but with that said what manifold does that's really interesting here is that i know we've been talking about nfts that have this extended functionality well in the base case you can go to manifold and just mint an image but they also are building the ability for people to have these plug and play extensions that you

can tack onto your smart contracts which are themselves are also audited and actually do this extending of functionality and expand the use case of your nfts and this is a sort of user interface that doesn't require any coding knowledge at all so yeah you do see it happening very slowly well honestly it makes me think of the api economy in general and the whole movement you know post twilio post stripe because all these things exist in different apis builders can essentially create the product they want and focus on their key core skill or creativity or craft because they can draw on all the smartness from the absolute best because there's no way for instance a small retailer in the middle of a particular region has access

to necessarily the best coding expertise in the world but they certainly can't access it if they're using like an api from a certain company and so to me it's a very democratizing to create and combine all these lego blocks to essentially make the thing you want i think that it was neval that said it best open source means that each problem only needs to be solved once right oh that's a great line it really applies directly to smart contracts yeah yeah when you're thinking about the type of interactions that you're allowing as a creator between the holder and the smart contract all these things are problems that need to be solved and like a lot of people will experiment and try to come up with a solution yep but the open source r3 means that people can work together on tackling this problem

and increasing the safety of this building block right yeah to build this castle of experiences is going to be critical totally the ability to draw on the very best and the community like further hacking away at something is the ethos of web3 okay so these all kind of blend into each other we talked about the mint and a little bit about the drop and is there anything to add on the reveal or anything else like did we miss any aspect on the security side that we need to talk about when it comes to the primary sale so on the real side there are many things there so first and foremost there are techniques it's not really security per se but it's just preventing making sure that users have the ability to verify that the creators didn't tamper with the ordering

or the attribution mechanisms of the assets themselves right the more rare the most valuable and so on and so there are some techniques around that but on the reveal side we're kind of like stuck with people who basically monitor the mempool or the reveal beta even before this reveal data is available for the users that are just watching marketplaces so the way it works is that within the smart contract you have a way to look up the metadata associated to any token any nft and say that it's done with like two bases so pre-reveal every single token is going to have the

same metadata but it's not going to be the final one and post reveal each token is going to have their own metadata which is going to be final and so there is this like interesting part in between where the creators are actually publishing the new location the lookup for the final metadata so it's basically updating the information on the blockchain to basically say like hey now if you want to go look up the data it's located at this url it's you located at this location on our web on ipfs on web servers and so on and so there is like a interesting race condition that is happening there which is the

creators when they publish it this information is actually available for miners basically and people monitoring the medpo but because it is not on the blockchain it is not published it is not available to anyone except the people who are monitoring the manpower interesting and so there is this critical moment where some actors actually gain information about the revealed data before everyone else and you can potentially scoop things that are for sale still like unrevealed on the marketplace and so we also need to improve the security of this mechanism and do you have like a one-line summary of what the solution there is so actually there is no like really right answer the right answer is often time to actually either reveal the

information separately from the blockchain and try to make it available to everyone not to a blockchain but actually make it available through websites and so on and then transition after the metadata is revealed transition to this blockchain so that like people can know ahead of time what they have without it being available first to the miners right right but to make it available to everyone at the same time which also then takes care of the asymmetry problem of the information as well as the ability for bots and people watching that detail that is not revealed to the marketplaces and trying to arbitrage that that makes so much sense exactly michael is there anything more that you would add on the drop reveal mint side before we move on to the secondary part

yeah right after the reveal right so now you have all these assets that are revealed and everyone's enjoying them and everyone's loving to look at their void apes and whatnot and it's all happy and it's all great we still have to remember that this media file this image this metadata is stored not on the blockchain for the most part it's stored on some other decentralized hopefully decentralized storage solution and this is more of like a philosophical idea than a security thing but it could very well be a security thing where i think this idea that blockchains are immutable has created the illusion that nfts are immutable and images are immutable in reality most of the time if not all the time i don't even know why this idea that nft

images should be immutable has ever even been a thing because for the most part i don't think it's ever been the case is that the creator of a smart contract does have the ability unless they program it otherwise to update where this media is stored up chain or at least like change where the token id points to off chain maybe they want it to point to a centralized server maybe they want to point to a dive tfs or are we and when you think about that the creator does actually have that ability and whether it's a good thing or a bad thing is for another discussion there's certainly a component of risk there from two sides one it's the ability for a creator to completely change everything like you could imagine i do my nft project and

then one day i decide to change the images to all be a smiley face and say goodbye like that's totally something that i can do and nobody would be able to stop me that's the negative side but the positive side of being able to actually change this metadata later on is because listen this space is so new it's developing every day we don't know what's going to be the best decentralized storage mechanism we don't know what new ones what might come out we don't know what servers might crash and go down so let's say for example fordape holders assets were on a centralized server they're not they're on ipfs but just saying as an example if they were and that server goes down well i would imagine that all folders would very much want the creators of the project to change that metadata to be on

something like ipfs or are we where the asset might be up again or viewable so the person can see the nft artwork in their wallet and enjoy it right so the mutability of the metadata or the token uri of the media file is definitely an area of security risk but also just an area to think about when you're looking at projects and yeah something to look into i'm also hearing you say that it's early days these things will evolve we'll figure some of it out but i'm also hearing the underlying idea here it's also kind of an opportunity because both of you guys have alluded to this idea that nfts are we're in the static phase but as we see more and more dynamic nfts and things change it's almost like that can actually be a feature not a bug because honestly i thought of the example of

banksy when you were talking michael and that famous self-destructed you know shredding painting that ended up actually being worth more later on and i'm not caring about this because of the value but because it was actually a piece of performance art that this thing could be pointing to something different essentially from what the person had bought and that was actually part of the performance of that art i just want to applaud again because i agree yeah it's it's early days and there's this idea of dynamic nfts or updating metadata it's important and you never know when your nft might get a new superpower one day that might be important for something whatever it is i think the ability to add some bit of flexibility is is incredibly important especially as literally every day something changes in the space so yeah yeah exactly and it's also about harnessing what's native

about blockchains versus just simply imitating real life in the blockchain so let's go to the next level on secondary sales we've covered just a recap so far we covered the art we've covered smart contracts we've covered drops mints reveals more post activities you just mentioned we talked about bots we talked about token gating briefly we talked about the primary sale as a category now anything more to be said on the secondary and onward sales and security yeah i just want to bring back a topic that i started talking on before at least when it comes to secondary marketplace security which is this idea of nfg sleep minting where you can see that a marketplace might display a lot of activity around a specific nft and famous people minting it when in reality

they're not and someone is just using clever smart contract tactics to beat you into thinking that this is a popular new mint i did write a blog on that already about nft sleep minting but that's definitely a major security issue when it comes to secondary marketplaces great anything to add nods i would touch from the whole fishing aspect of things great tell me what is different about fishing with like fishing as we know it today and like email and elsewhere and nft fishing that's what i really want to know so the interesting part is that often time for the traditional fishing the attackers are actually going to request information from you instead of action whereas right in the weapons space it tends to be more the action part that is interesting because at the end of the

day the secret information about yourself in the whatever space tends to be your private key right and so instead of asking you for your private key which is obvious people will just ask you to perform an action that seemingly is now malicious but actually and so the thing that is required here is actually a work together of many parties you basically need the users to be educated and to be very careful about their actions especially now that there is no kind of like safety net for them right like if you think about you interacting with your banks or other systems that say keep your assets ach debit transfers were

actually reversible up to three days after they were done that's right that's a huge time window but if you think about the blockchain none of it right and so i think it's very critical for users to take the steps to be very proactive about their own proportional security which i did like a twitch storm about all the stuff that needs to be done but i would summarize it as create chrome pro box i think it's very important to have a dedicated environment for your browsing and communications etc and another one that is dedicated to performing actions on the blockchain and the two should never cross back your metamask should be on a completely different chrome profile and the reason for this is that actually the ide standpoint where the chrome actually has a very

strong isolation from a data and code execution perspective that is native to it and so having very different environments strongly isolated environments is a very important one another one is move things to a cold wallet as much as you can hardware wallets and so on are really important to have and keep as offline as possible and the third one that people don't really think so much about is don't instead to use burner accounts actually most of the wallets these days allow you to just with a single click create a new account and so all you have to do is just funding this account perform whichever action you think is non-malicious

but at least you kind of like isolate the blast radius to this specific new account with just the money that you put in right and it's not gonna put in jeopardy the rest of your asset take up these burners on what that's like the space chamber that is basically being used to isolate a spaceship and you have like this chamber that potentially basically get everything sucked into the void right but at least it's segmented and isolated to this then there is the wallet part think of wallets as the browsers if you think about a browser as like a way to access internet and various networks that are full of interested parties the wallets are the interface between you and the world of web3 and with that

helping you adopt by default the best and most secure behaviors right my phone or chrome and other pieces of software are written here to tell me okay what are the permissions that i'm giving away i'm allowing you to use my microphone my webcam available we get to perform we fetch information from my keychain cryptography sensitive materials and so on right only access location while using the app exactly and so if you think about it the wallets are no different you actually hand over permissions on the blockchain through set approval for all calls giving allowances or protocols and contracts to move funds on your behalf fungible or non-tangible assets and so the wallet

should be able to tell you hey here are all the permissions that you've given hey these permissions you actually didn't set an expiration you should probably add one and it should be able to do more than that it should even be able to simulate the consequences of a transaction even before the networks receives the transaction so that you know even before submitting anything or even signing it that it is a malicious piece of content so wallets are going to really develop into safety and even potentially privacy preserving layers for you in the future that's fantastic earlier you mentioned this trade-off essentially about what it means to build something at scale and a lot of what you just described when it came to the

wallet security that makers and builders can do to help users marketplaces can do wallet makers can do is there anything lost in the abstraction layer that comes with more usability because you know there's a classic false framing i guess between usability and security here but do you have a point of view there about trading off that usability and security yeah that's a great question a lot of it is going to require standardization of interfaces standardization of actions and so we're probably going to lose a little bit of creativity and just we groom in terms of what you can do as a creator or as someone who designs the protocol for nfts but ultimately the positive stuff that you get out of it really far outweighs i would say in the

negative because when you start standardizing more of these interactions you basically allow deeper introspection from third parties if you have more standardization around the type of action that are allowed by a smart contract it's going to remove a lot of complexity for the wallet to basically be able to say like okay i'm going to scan this protocol okay this thing is no this thing is now this thing is not known mark it as an alert this thing is known this thing is known this thing is done it's going to be almost like a reference game in terms of what is known and what is the sensitivity or the criticality of each one of these building blocks that are not part of standards it will allow wallets

to provide deeper insight into the sensitivity of actions that are being performed by the users therefore helping them make better educated decisions and so it really feels no different from ios because the operating system has a set of permissions and the set of actions that the applications are allowed to and gated by specific standard permissions that are called ios entitlements and so having more standardization will remove a little bit more on the flexibility side but bring a lot more from a security standpoint yeah that's great so i want to pick up on some really interesting trends and looking ahead that we've talked about which is you guys touched briefly

on dynamic nfts as being a really promising idea we checked on identity we touched on token gated experiences and the role of nfts in this where else are some of the most interesting things either near term or on the horizon that are promising or interesting areas of work especially when security can unlock things there yeah so a few things that i'm super excited about are adoption of nfts by institutions you know custody solutions and custody providers to start supporting more and more of these nfts and use cases that come with these different entities especially as it started allowing you to claim additional assets and access to various experiences i really believe that institutions

should also be parties to that just like they were for the regular crypto movement and then defy after that and so on one other thing that i'm also super excited about is the aspect of nfgs that really change with you because it actually defines the social branches around you and social subgraph that you start joining and so i believe that having nft that can actually change with you as you evolve will be critical actually if you think about social networks such as facebook and instagram and snapchat and so on you tend to associate the entire network to the subgraph that

you actually have on these networks whether that's your family on facebook it can be work relationship on twitter crypto twitter and it's gonna be like nft twitter right and so i think that it's very important as we kind of like start defining these nfts as the social bridges to have them be able to equal with you whether that's visual whether that's in the information that they actually hold the type of experiences that they provide and i believe that we're gonna go beyond just images and we're gonna start going into nfts that are themselves interactive right so you pick up like web one with two with three web one would be static gfps web to start being dynamic pfps

which are starting to come up and then the equivalent of the website would be like a very deep level of interactions with the nft itself whether it's like rich media content whether that's a different format it could be like applications right but just like starting having nfts that are very unique for you as an individual but still it fall with you over time is going to be pretty critical it's like nft is not just a social network as you said earlier but actually nfts as representation of identity but even beyond that nft is evolution exactly when i initially told you about the nfc stack the actual final rung of token gating is the area that is the most underexplored everyone's focused

right now on just minting and trading nfcs but how are you going to use these things in the future and i think there are so many components that are excited about that i'll rapid fire all the ones that i believe in great lightning round go so like for starters you know define nfts talk about like gaming nfts and how does that relate to d5 well you could see a situation where you might actually rent an nfc and renting an nfc presents a lot of interesting problems with ownership like how do you actually transfer an asset to somebody else using a game without them running away with it on a blockchain right and it's actually a very challenging thing to discover and how smart contracts or smart contract wallets interact or staking pools for renting nfc that's like one area another area is layer two nfcs and and how nfts

might be moved across chain right so for example maybe you don't necessarily want to move your board ape to another chain because it's proven arts design ethereum mainnet but if there was ever to be some sort of game that you wanted to like leverage your board ape well do you really need to like transfer the asset across change or could you just represent your ownership of the asset on another chain of course that's great for simpler assets but for more complicated assets that are composable with other elements in the ecosystem those are almost impossible to move across chain so that's another area right what is the significance of cross chain nft is like why should someone even care to do that so like you could basically be able to do a lot of transactions with your token or your asset or your nft on another chain that's a lot

cheaper and a little bit more scalable but again like i said there's a lot of implications there for tracking provenance and how things would move around and then to me i think the future of all of this stuff and this is what we talked about is an nft is right now this composition of metadata off chain and it's actually not very composable a smart contract can determine if you own a board eight but it cannot determine if your board ape has gold fur right it's not very it's not very granular and you can imagine a situation where you have this non-transferable nft in your wallet that sort of represents your decentralized profile and this profile could have things like preferences like nas said earlier dark mode and light mode they could have things like your status your relationship status your

obviously your profile picture could be one of them it could be a series of connected wallets like nas mentioned earlier for being able to delegate minting to other things right and all of a sudden you could have this nft that you can take from application to application each application would ingest all of this data about you and then basically allow you to customize the front end usual experience i mean think about decentralized social media imagine that you had an nft where you specified how the twitter algorithm displayed to you tweets and when you logged into twitter and connected your wallet twitter would then recognize your preference and then display your tweets to you in order in which you specified right like that's a super powerful idea that doesn't exist in the current state

because you don't actually own your own data whereas if you had an nft in your wallet that had all your preferences you do own your own data right and what's interesting about this type of nft and this is where i think a lot of interviews are going to go especially when we think about the world being run on this stuff right a very small component of it is going to be you know speculative jpegs it's going to be entities that can be used and these are nfts that are they're non-transferable they're very very stateful they're very composable and they're also not necessarily limited like in theory everybody should have one of these right there's not only 10k of them yes right and the current example that exists today that is almost like the first iteration of all this is ens right it is sort of like your decentralized profile

so where i see a lot of this going is a lot of the next phase of nfts is going to be this leveraging the identity composability and then this ultra stateful nature that an nft can have at a smart contract level in order to move throughout the ecosystem and compose with other protocols so that's sort of where i see it going forward that's my ramble it's not a ramble i loved it and in fact i'm going to give you the last word michael no yeah i was gonna say thanks so much donald this was an absolute blast i love this topic and time to keep building this stuff and innovating and this is only the start it's really been a year since nfts took off and it's really just scratching the surface so thank you for joining and we'll have many more conversations thank you so much there's just so many amazing

things happening right now and nfc so many more things to build you know in the space this is the first of many conversations thank you so much for joining you guys thanks guys thank you so much thank you for listening to web3 with a6 and z you can find show notes with links to resources books or papers discussed transcripts and more at asicsncrypto.com this episode was produced and edited by sonal troxy that's me the episode was technically edited by our audio editor justin golden with seven morris credit also to moonshot design for the art and all thanks to support from asics and see crypto to follow more of our work and get updates resources from us and resources from others be sure to

subscribe to our web3 weekly newsletter you can find it on our website at asicscrypto.com thank you for listening and for subscribing let's go [Music] you