ep 30 - Chain Choices: Or, How to Decide What Blockchain to Build On

24 Dec 2023 · 1:01:20

a16z crypto CTO Eddy Lazzarin and Guy Wuollet join host Sonal Chokshi to work through how builders should choose which blockchain to build on. They sketch out the overall landscape before digging into a framework for comparing chains across technical specs, security, custody, and programming languages. The conversation also weighs community, marketing, and ecosystem support as factors that matter as much as raw technical tradeoffs.

Speakers

Topics

Transcript

[Music] welcome to web 3 with Asics 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 Donald choxie today's episode is about a popular topic for many builders in web 3 as well as people coming into the space for the first time or for just anyone interested in Tech Innovation and the evolution of infrastructure which is deciding which blockchain to build on it's a nuanced topic so we dive into all the tangly threads here the first third of the conversation focuses on the overall landscape orienting us into the broader implications why it matters useful definitions and a quick sketch of how the space is shaking out so far and then after exploring that terrain we focus the rest of the episode on common

questions specific trade-offs and how to decide between different chain choices including discussing tech specs Community marketing and ecosystem support security custody programming languages much more our expert guests today are Asics and Z cryptos guy roulette and CTO Eddie lazarin the first voice you'll hear after mine is Eddie's followed by guys as always the show notes have links to related episodes and resources mentioned in the episode and as a reminder none of the following should be taken as investment legal business or tax advice please also see asicsnc.com disclosures for more important information including a link to a list of our investments since we are investors in some of the companies mentioned in this episode today we're talking about a topic that's

super top of mind for all kinds of Founders and builders in the crypto space and actually even for people entering the space and one of the questions that comes up is actually in any technology company one of the fundamental questions you think about is what is your Tech stack going to be and in the world of blockchains and crypto that's actually a much more nuanced question so before we actually start talking about the topic of this episode which is chain choices or how to think about choosing your blockchain why does it matter I mean in other fields you might just be like oh I can just switch and you know we're so used to technology that is kind of fungible like oh I'm just going to switch my data service provider I'm going to switch my so and so yeah if you wanted to switch from

Google Cloud to AWS to digitalocean to whatever it's a seemingly straightforward path to do that and it's different for blockchain yeah and so why is it like harder here yeah one obvious one is that if you're deploying A system that you hope to be decentralized and outside of your control definitionally you can pack up everything and just move it you've deployed A system that other people can build on and take its properties for granted that's part of what makes crypto so exciting if that's what's happened then you can't sweep up everybody and move them that makes it a little bit harder now of course everybody could coordinate and do a migration together but it's a lot more work to do that the second is that if you think of a

blockchain computer as a shared State computer a shared State machine and if the applications you've developed are working they're probably intertwined with all kinds of other applications that makes it harder to move because where you're going isn't where all the stuff you're already integrated with exists so those technological properties make it harder why it matters partly because it's hard to move yeah right that's like a big part of it but the choice of chain affects the gas fees it affects the security model it affects the the tools you have available it affects the ecosystem that you're enmeshing yourself with there's a lot of consequences that

come with this type of decision yeah so it naturally comes up a lot as a top question a few points here I think it it matters one because the switching costs are so high for all of the reasons Eddie just articulated and I think there are two good examples of projects that have successfully switched and even in those cases like it demonstrates why it's so challenging the first being helium which initially launched its own blockchain and has recently decided to move over to Solana a process that has taken quite a bit of time and effort not only getting the community to help form consensus around that choice but also just on on the engineering side there's also a game called axi Infinity that originally started on ethereum mainnet and then moved over to loom which was an early scaling solution and finally decided to

deploy its own blockchain called Ronin yep and in both of those cases I think it was easier to switch than for the average crypto application because they were both useful in their own context and didn't compose a lot with other projects and so I think one it's it's hard to align the community two it's a significant technical Challenge and then three to the extent you have significant Integrations and you've composed with other projects on a given chain it's almost impossible to move over after some point right and this goes to what Eddie was saying about the ecosystem you're in meshing with but also just again for the listeners who might still be new to the space when you say compose you mean in the context of composability which is one of the key features yes exactly we care so much about him don't block James the ability to essentially

use these elements like Lego blocks that people can build on top of each other et cetera Etc yeah you can think of this like if you've built a foundation of a house it's hard to move the house without destroying that Foundation especially if people are building things on top of your protocol and those things built on top of your protocol are valuable and highly used then you can't sort of smash that Foundation down without destroying everything built on top great let's actually set a little bit more context about what is a blockchain and then kind of the elements that make that up yeah so when I refer to a blockchain or a chain in this context and choosing okay and I'm thinking about what is the set of infrastructure that enables me as a developer as a Founder to build a decentralized application and almost all

the time we're going to talk about smart contract platforms that have some notion of consensus allow me to deploy an application on what you can imagine is sort of like a world computer there are multiple components of this you might hear things like L1 or L2 and you can decompose it into multiple layers of a technical stack but we're probably going to refer to this as a chain or a blockchain in this context and that's really what we mean and when you're choosing a chain there are a lot of different technical Dimensions that we'll get into but there are also Dimensions around the user experience around the community you're building around the other applications on the same chain that you can interoperate with and compose with that you can put those Lego pieces together assign actually and those are all

considerations that you as someone who's building a new project and protocol should take into consideration I'd also say maybe just for the Builder the way to think about what a chain is is it's the place you deploy your application so we're at a really interesting point in the history of the development of blockchains only a few years ago there were very few actual live choices and right now there are tons of choices and they're all scattered across the trade-off space and exactly how those choices will play out is not yet clear many of the most interesting choices that people talk about aren't even fully formed yet are just at the Horizon we're in this weird moment in time this exact moment in time

where I think it is probably the hardest to make the decision and it'll get a lot easier in the coming years but if you're trying to take advantage of some of the new technology right now you need to make a choice right now at least provisionally and underneath the hood there are all kinds of possibilities in terms of where is the data stored what is the exact execution environment I'm running on like where's the consensus being held whatever all those types of things but some of the options in the framework that we're going to talk through are going to just assume it's a place where you deploy your application and abstracting those properties away take ethereum as an example in ethereum the L1 today execution and data availability and

consensus are all happening in the same machine so we typically think of that as like the blockchain bundle but it is possible to separate them out to some extent in some very interesting ways one is if you look at an L2 on ethereum that is a way to move execution to a different set of machines but to keep data availability on ethereum there's even ways to separate components of consensus away from that there's some so-called modular blockchains where they're considering really separating each of these components out but I still think that although it's very interesting to get into those details they're only one part of the story in terms of a chain choice

yeah and even then there's probably only one place that you're really thinking about deploying your application when you write the actual code you're kind of pointing it at one thing and it's possible those other components have been bundled with it or separated from it to make this very concrete you can spend a lot of time trying to pick a different ethereum L2 and then spend a lot of time thinking about like which shared sequencer might I choose and which data availability solution might I use Celestia ethereum something like eigen da I tend to think about the blockchain design space as being highly dimensional and this is something we talk about on our team a lot as each blockchain being a vector in this multi-dimensional design space I think this is a useful way to think about it

especially from an engineering standpoint and there's a good reason so many people have tried to build different blockchains there's a good reason why there are so many choices because there are a lot of valid choices that you as a builder or developer wanting to deploy a smart contract might choose and it's you know further useful to say that there aren't one or to trade-offs that are important but there are a lot of different trade-offs you almost need to be like doing our job or an academic to go through and really look at each of the different choices today and it's not going to be at the way at least in my opinion developers will pick where they deploy their applications like it's not that complicated in the traditional world and it can't be in crypto moving forward and so the way I think about this is

Founders and Builders should essentially stack rank the dimensions that they care about most and then try to find the vector in that highly dimensional design space that is closest aligned to what their ideal would be and to me that's really the process of choosing a blockchain so that's what you mean by multi-dimensional yeah so this is definitely a little bit oversimplified but if we take two of the things which state availability and execution yeah one of the most interesting ways that efforts to scale blockchains have separated is along that line like do we separate out execution and data availability or do we keep them together and try to scale with them together that's one of the key kind of Rifts oh yeah yeah if you think of that that way there are layer ones and that include

new layer ones we can talk about some of their properties and there are this kind of amorphous category of almost application specific or sharded sort of roll-up blockchains where there's one thing at the center like ethereum maybe there's not really a specific thing at the center but kind of a protocol that connects the parts and then there's these many many many different chains that are all interacting together mediated or Not by something in the middle so on the one hand there's new layer ones where all the core pieces are put together of data availability and execution and then on the other hand there are maybe these

application specific chains is one way to talk about it where at the center there may be a network that provides data availability yep or not or a protocol to communicate about what data is available and then at the periphery there are a bunch of different chains that are all performing execution and coordinating like that so very Loosely speaking those are the two categories that we're seeing emerge some examples of new layer ones or of layer ones that are really pushing the envelope for scaling explicitly are like Solana sui Aptos near they are specifically trying to scale the l1s in and of themselves right and then these broader maybe

application specific strategies not necessarily application specific but where they separate execution are like optimism arbitrum uh Cosmos ZK sync like they are thinking a lot about creating a separate execution area and then allowing scaling to Bloom from there with maybe application specific chains or things like that okay I have to just say that is so fascinating to me I grew up in the Bay Area as a kid and so the heart of Silicon Valley in my dad's an electrical engineer he's retired now but he was like a Pioneer in vlsi design and what you just said was so interesting to me because it reminds me exactly of how semiconductor has evolved a with this whole wave of more

general purpose circuitry and then B application specific ways of thinking about those layers of circuitry but it's also really interesting to me because it reminds me that when we think about Computing today it's actually not also like previous waves of tech Innovation because these things are also kind of happening at the same time because in past Computing waves they kind of happen almost linearly and lockstep and here it it's almost like you can kind of go non-linearly like you could have this debate play out at the exact same time that was not possible in previous Computing we often talk about parallels in the history of computing and crypto and where they do and don't apply I mean this is just a side riff because I obviously am a huge student of Technology history and Computing history so for me I find that a very interesting

pattern anyway little sidebar for a second when you say the debate plays out at the same time do you mean like the debate about the architectures kind of yes play out as the space is figuring out what to do with the application exactly yeah increasing areas of computing the constraints Define the problem and while that is absolutely true here you can do so much more in software it's kind of fascinating how the debate's playing out a little differently yeah I think that's right and I think a lot of that has to do with the fact that maybe just a funny little way to summarize it is that yeah the architectural choices were all debating although they are the properties of a kind of computer a blockchain computer it's all happening in software yeah yeah I mean that's kind of weird like architectural considerations of fundamental infrastructure sure and all

the important advancements over the last five years have been really in the software there's been very little that has fundamentally changed the space that occurred specifically in the hardware level exactly definitely with like CK proving stuff and Asics is an exception for Bitcoin but like a lot of things we're talking about right now these application specific chains this data availability layers like L1 versus execution shards yeah all of this is all software stuff and it reminds me better just close that thread in the whole evolution of the moment in Computing history when we went from networking that was so defined by the hardware layer to software defined networking which our colleague Martine obviously was a huge Pioneer in so it's always becoming full circle and very exciting

for me because of course I'm a total nerd for all this stuff I love it so we covered the definitions we covered a little bit about why it matters this is a setting context one thing is can you guys quickly tell me like what are the most frequently asked questions you get when Builders come to you at first like what do they ask the questions range from very very qualitative to is such and such option legit that is the most basic but you know we live in a complicated space there's a lot of non-legit options so the basic kind of legit check is almost always the first one right and then they go all the way to more specific things like what are the transaction fee properties what can I expect in cases of congestion what are

the security assumptions of my system do I have to run infrastructure or what developer tooling surrounds this ecosystem is it growing are other good people building on it like you know how long is it really going to last is it very decentralized the range of questions is just massive from extremely Technical and specific to very qualitative gut yeah back I think one question that people almost never explicitly ask but they're almost always implicitly taking for granted or should be asking yeah is how do I Define decentralization a lot of people coming from web2 have some notion of decentralization in their head and it's never formally defined in crypto and I

would argue it's probably impossible to formally Define it and different chains will say they're decentralized meaning different things and so I think it's worse as someone building a project to ask why do I care about decentralization how is it meaningful for my project and then on those dimensions of decentralization does this infrastructure or chain Choice actually give me the characteristics I need a Lee on our team wrote a very good post a couple of years ago called The Four Horsemen of centralization that goes through and sort of breaks down how you might reason about decentralization and how it matters that's great I'll put that post in the show notes for the listeners that are curious I'd also guide them to miles's guide on legal Frameworks for decentralization and how

to think about it as a builder and I'll link to that as well so that'll be great context for the listeners so guys maybe you can start off with some Frameworks which I are very helpful especially if you oriented into the builders because one thing I like to do in my episodes and the listeners knows this is set a bit of a map in the terrain for thinking about the space for sure so I think the most common thing is people want me to give them an answer and I think that's absolutely the wrong approach like you should not find your investor or your very technical friend and be like which blockchain should I choose because they don't actually know what you care about and are going to give you the answer for them they're going to give you advice that they would want to take but they're not you they

don't understand the project you're building in depth they don't have the same set of considerations and priorities that you do and so I would encourage everyone not to ask for an answer but to ask for a process oh interesting so when I think about choosing a blockchain I have a framework a plan words of a PID Loop it doesn't mean the same thing but the p is prioritized I identify do you decide so figure out what you care about which dimensions of the multi-dimensional design space you care about the most and prioritize them very explicitly the Second Step identify the solutions that fit your priorities that fit your requirements start to narrow them down and then D decide go through and actually talk to different people

building in those ecosystems the associated Foundation projects that have users that you're interested in targeting or projects that you're interested in composing with and then make make a decision I would encourage you to think of this as an iterative process as well especially because the pace of infrastructure is changing so rapidly it's not something that you would do once and and will be the correct answer for the next 10 years probably not even for the next 12 months so as you go through and do this several times it should be a quicker and lighter weight process as you become better at it I like it so a guy instead of ooda loop which everyone loves to talk about if they haven't read the biography of Boyd we should uh coin this guy's PID Loop or whatever or choosing a blockchain you mentioned that there's

like multiple Dimensions like technical Dimensions Community Dimensions etc etc can you talk a little bit more about that yeah so I think as a person building a crypto project wanting to deploy an application you should think about a bunch of different components that are technical there are a bunch of different component that relate to the community that's a part of that chain there are a bunch of different components relating to ux they're a bunch of different components relating to things like liquidity and financial markets on that chain there are a bunch of different components relating to interoperability or cross-chin so I'll go through first what are the technical considerations what are the technical dimensions of a blockchain I think the first one would be the programming language so what is the developer

experience for you as someone building an application what language am I building in is this language supported by other chains and when I say programming language that also often comes with a virtual machine so solidity is a programming language that compiles down into evm byte code that can be run on ethereum but can also be run on a bunch of different other blockchains are there ever questions from people coming from web 2 to web 3 where let's say they're just super familiar with one programming language or one way of thinking or one mental model of approaching a problem and do they often ask what's most familiar 2x in order for me to easily transition to Y I have gotten that occasionally but it's usually a pretty short discussion

because the truth is there's nothing that's you know yeah even in Solana where they use rust which of course is a increasingly popular general purpose programming language it has a lot of idiosyncrasies that are specific to Solana so it's just not a clean mapping got it yeah another important technical characteristic is latency so how long does it take when a user submits a transaction to my application for it to be considered final and irreversible another is throughput how many users at one point in time can all be using my application and then another important technical consideration that I think is

a little bit more amorphous but matters quite a lot is decentralization and you can look at things like a Nakamoto coefficient or how easy it is to run a full node and to verify the chain as being some simple heuristics there are there any others along the lines of ux or other dimensions you wanted to say more about I'll go through some of the things that you might care about when you're thinking about the community associated with building on a specific blockchain one of them is simply what are the other projects that have also deployed on this chain because if another project is also deployed on the same chain you get Atomic interoperability Atomic composability with that project you also can think about this from a user standpoint of like where are the users that I want to use my application if they're on one

chain then you should perhaps strongly consider building on that chain because your users are already there and it's going to be easier for them to access what you're building there are some I would say pseudo technical considerations around tooling support like block explorers and wallets yeah developer experience around documentation things like RPC providers that make it easier for other people to build and decompose on your application will also make it easier for you to hire people to help you build this application and you know even you yourself experimenting with building these applications and then a lot of these also interface with the experience your users have so some blockchains it's much easier to build a web 2 life experience where someone doesn't need a

wallet can pay with a credit card for example if they need to issue a transaction other blockchains require that your user has a notion of a seed phrase and is pretty technical in some cases yeah and depending on the application You're Building you might actually want to Target a very technical audience who's willing to get into the weeds or a fairly non-technical audience who wants a slick experience and wants it to be abstracted away so those are some of the dimensions under the Community category and you also covered Technical and by the way I agree with you that even though devax is semi-technical it to me falls into Community as well because it really is about the community of developers being there and working together and creating that tooling yeah choosing a chain is not just about like technical infrastructure or content AWS or gcp but

it's also about choosing a cultural and in some senses a religious movement you know people have really strong affiliations to ethereum for example and just like in the traditional the web 2 or even consumer goods worlds there are commodity products that are marketed very differently to different groups of people I think like soft drinks is an excellent example of this you have a drink like Mountain Dew is marketed very differently than a drink like Coke or Pepsi is marketed very differently than a drink like Sprite it's all flavored sugar water but the groups of people that actually buy that product and engage in it are in many cases very different so if there are two questions one of which is for a commodity product which group or religion am I associating

with and then second for differentiated products do those natively sort of enable the cultural or religious group or movement that I want to associate myself with yeah and I think it's almost impossible to totally decompose from the other elements of the chain but in many cases you would choose to build on a gaming chain that is almost identical to a defy chain simply because there are a lot of other games there and because a lot of the users themselves are really interested in this specific type of crypto application for example well the negative framing is that in the absence of more specific trade-offs people often create sort of religio cultural ways to Define who's friendly

and who's not and what's a good choice and what's a bad choice and what's my team and what's your team right and that is a little bit of what's going on a lot of the time people are trying to create distinctions and distinguish themselves through these things that's kind of like the negative frame the positive frame is that in some sense they're just technical properties and machines very obscure or opaque differences to make those most legible to people sometimes you have to abstract them up into cultural religious stuff because that's how people reason very quickly it kind of makes archetypes and you know uh memes make these complex ideas very very easily

legible in a small amount very gerardian so for better for worse some blockchains are thought of as like being right for this type of application or this type of person likes this type of blockchain and those can be positive or negative they can be positive because they attract that type of person they just think well I'm the type of person so I'm pattern matched to this blockchain or this ecosystem it can be negative because it can exclude people can think well that's just not for my type of project even though there's no technical properties that make that the case I think Bitcoin is a good example you can think about Bitcoin as being likely the most decentralized in censorship resistant blockchain and you see that manifested in The Stereotype of the traditional

bitcoiner someone who's interested in Austrian economics and sort of using a stake gun in Bitcoins meme which is very different from um ethereum which is much more focused on programmability and much more focused on you know building a world computer as opposed to building digital cache or digital gold that's fascinating what you guys just said Eddie and guy because it actually just goes to show that brand plays a role whether it's like a a marketer or a community bottom-up design brand at the end of the day these things have personalities and then eat those and a culture and guy's phrase even a religion and Eddie to your point yeah I don't think it's about being positive or negative it doesn't even have to have a moralistic angle to it it's really that

that just happens to be the way cultures evolve yeah I think white papers are like crypto product marketing they 100 are I totally agree with that okay so Eddie would you add anything more to some of those Dimensions that guy outlined I mean do you think he missed anything is there more to say there I don't think I missed anything I'd add a couple interesting nuances like one is composability we talked a little bit about throughput in particular because of how it relates to fees yeah but to take those two as an example there's a tension between them because the more composable the environment is and the more like if you go to theorem L1 everything is synchronously composable with every other thing in there that also means without some clever tricks

you get all applications share the same gas market they all share the same gas market and now Solana has local fee markets so they have ways to separate the gas auction the compute auction by applications and a lot of systems will probably experiment with this type of thing to alleviate some gas contention but across other chains you have to make this type of choice like so what degree can I insulate myself from congestion at the level of my Chain versus to what extent am I fully composable and can take advantage of everything else around that is so interesting to make the abstract point if you think about this as a vector the dimensions are not

independent from one another it's not orthogonal many of them have a strict trade-off and vitalik famously talked about the scalability trilemma of scale decentralization and security and that's a very simple razor about which to think about this but I I think that idea applies across almost all of these domains in that a choice along one dimension is going to limit or constrain the set of choices you'd make along other dimensions which is why I think it's important to stack rank how much you care about each Dimension like a simple way to think about this was to greatly optimize the priority you care about first and then subject to the constraints that introduces go through second third fourth all the way down the list yeah it's basically a complex system and you're giving people an easy

way to reason About It by choosing one thing to focus on as a way to like help drive them through that when they're making exactly practical decisions that makes a ton of sense yeah and like another example guy and I have talked about this one a bunch is the exit cost or portability of what you're doing this touches many of those other dimensions Dimension so for example your choice of language if you're choosing a language that happens to be used visible across many different blockchains then that probably decreases your exit cost and increases your portability because you can probably move that code somewhere else or we deploy it somewhere else also relating to exit costs would be composability because you have to consider what you need what your

application depends on what other kinds of systems it depends on that exist in alternative chain choices you can specifically design a system to minimize your exit cost to maximize your portability one portfolio company of ours they decided you know this is not necessarily the best choice for everybody but they decided that the key assets for their game called Power Nation would be on ethereum L1 and there's a bunch of things that went into this that have to do with nft markets and how people value the provenance of nfts and sort of long-term stability of ethereum many many dimensions I'm not I don't want to speak for them but they decided to go with ethereum L1 for that but then ethereum L1 is just not

suitable with regard to gas fees and latency and other things many of those other dimensions we talked about so they decided to go with polygon for some time and you know things have changed and their options have changed and very cleverly they designed the system intentionally so that the cost of moving the game assets that were on polygon to arbitrum was very low so they were able to move all those relatively innocent game assets while keeping all the core assets on L1 and this this specific design just made it really comparatively easy for them to make the move that was something they decided was critical for them up front because they wanted to minimize that exit cost I think they did

a bunch of clever things to do that I think it's a strong example of a success case to me yeah that's because they knew what they were afraid of and they planned for it this sounds very basic but like why again does the exit matter obviously you want the freedom and in case there's a risk of something going down or something not working or other things but actually why does that matter to be able to have that type of portability I I think very succinctly it's almost impossible to predict which of these chains will continue to evolve the fastest and be the best choice in a year or two years especially longer out than that and so what is a good choice today might be a bad choice in a year and you want to have that optionality I think

it's less common to say you know I'm building a consumer social app and my choice of cloud is going to be existential within the next 12 months like yeah that's not something that I imagine consumer social Founders think about but building in crypto you you really do have to have that consideration today I have to say I love this about crypto it's so darwinian and Cambrian oh it's a great question like I love this I love this about our space it's like real-time Evolution I mean we have to just pause and celebrate that for a moment like I totally agree it's Friday and I love that about it literally like I just think the image in my head is literally this like moment of the primordial soup of evolution and you have all these like elements like composing together and then evolving and then something

survives and something doesn't and then it creates the next thing it's just so exciting Eddie you said that you and guy talk about this a lot what more do you guys say when you talk about this topic of exit costs and portability why is the exit cost important why is portability yeah very helpful it ties back to the thing we said at the beginning which is the spaces that it's most uncertain because there are so many choices there were not so many choices three years ago there's a ton of choices right now and there are clearly going to be a ton more in the next year or two like the set is rapidly expanding so generally like what is a good heuristic to do when the world looks like that maximize optionality that's kind of a general heuristic that

you should apply in these cases now there's sometimes on maximizing optionality has two high costs and you actually kind of need to commit yeah I do think there are a bunch of caveats to this if you have specific opinions and if you have strong opinions then you should break the rules but I do think you have to know the rules to know when to break them essentially so if if you think the ZK evm projects are going to be too slow that's not my personal opinion but there are a lot of smart cryptographers who've looked at this and drawn their own opinion you might want to choose to build in a DSL because you think the performance improvements will be significant you might think that the improvements in GK proving are are

essentially ossifying like they won't continue to get better so that might draw you to a specific conclusion you might think that the majority of crypto developers will come from web 2 today and will want to use the simplest programming language that the existing solidity developers today won't be all that important over you know the next few years so that would lead you to like a separate conclusion the simple answer to the question of long-term portability it's the language solidity and evm is the virtual machine that is most likely to be backwards compatible with any new chain or infrastructure in the future with that said there are a lot of compelling projects that are innovating at the programming language level and might give you new capabilities that you otherwise don't get from solidity there

is a a good rationale to be writing smart contracts and move or to be writing smart contracts in a rust-like language I also think there are good arguments that solidity will eventually not be the lingua Franca of crypto anymore with efforts like Risk zero and other people building ZK intermediate representations that you can have any popular high-level language Target today but these are very hard to predict and the thing that would give you the most certainty or the most future proofness to the extent you're not certain about the infrastructure Choice you're making is to just write your contracts in Evo it's higher risk to choose a different programming language but there are certainly payoffs and rewards from it I

guess the point I would make is that there are good reasons to choose a variety of different languages I would just challenge any founder or builder in the space to intentionally articulate them as opposed to making a choice out of Dogma or making a choice by default essentially that's fantastic what you just said guy so it sounds like what you guys are saying if I were to bottom line it kind of Simply you have to think about a lot of this stuff up front no matter what and as you just said guy you have to obviously be intentional and not just decide by default that makes perfect sense regardless of your goals but two it also kind of maybe plays out as a debate between how fast you want to get to Market and it's really about Innovation like do you want to have like

the perfect architecture for your needs and goals versus long-term game and if you want to share a product or or get feedback very quickly sometimes it's not all religion and Dogma like it's about how fast you can get your product to Market too yeah okay so now just to sum up we've set the big picture why this matters both what's unique and different about blockchains as well as the specific Frameworks for thinking about this space as well as some nuances about it you answer my exit cost questions and we've also talked about the dimensions and some of these trade-offs which is super interesting now let's actually take the second half of the episode and really break down the specifics what would you say to people concretely who are trying to build in this space how

should they navigate this like very tactically like what's the first thing you would ask them to do so when I think about actually going through the process of choosing a chain first it is very important for the founder whoever is leading the technical development of the project to sit down with everyone on their team and to concretely hash out the technical characteristics that are requirements and things that they would like to have but are not strictly requirements and then to go through and identify essentially what choices even fulfill my requirements in the first place narrow down the set of possibilities yeah and then from within that more narrow set of possibilities then start introducing things like Community things like ux things like developer experience and people talk a

lot about like what is the best blockchain there's a lot of content about that I think there's less around what are the things that are actually a huge pain as someone building a company or a protocol that you wouldn't think of to start with and so I would just lump this category as like tooling and support for your application does the channel building on have a good block Explorer like can my users understand the transactions they're submitting this is something people take for granted a lot but is not true for every blockchain are there good wallets that will have a good user experience and is the wallet I think that's best for my application available on this chain are there good RPC provider with high uptime that means my application will always be available

and will always be the best experience on that chain there are a whole bunch of developer experience considerations that are generally specific to a chain and so I think there are tangential considerations that are not talked about as much that really do matter and that you should seriously consider one of the things most Founders don't think about is custody so to the extent you want institutions be it Fortune 500 Global 2000 be it investors to be interacting with your asset to the extent you have an asset oftentimes you need institutional custody providers and they're very slow to integrate new projects and it's often a real challenge this is something that I've seen people

run into and you know introduce a lot of headache that you really would not consider there's also the consideration of are you targeting larger traditional web 2 companies and are they going to be comfortable or even able to work within the context of of this shin and some of the questions you might ask there are does this chain have strong support from traditional custodians does this chain have essentially webbed two and a half infrastructure providers who are able to bridge the gap and I think this is one of the reasons that polygon has done quite well on on the gaming front because they are supported by all of the centralized tooling providers that you would want if you were a web 2 company

looking to get into web3 another one to Think Through is whether or not you can get a grant or marketing development and research support from the foundation of the chain that you're building on I think there's an interesting question of assuming it's possible for me to get a grant for X dollars from chain with a set of characteristics a or a grant of like y dollars from chain B with a different set of characteristics how do I as a company weigh the difference in the grant amount and oftentimes especially if you don't have that much runway it's a real real consideration so commercial relationships meaning first grants research engineering marketing support from the foundation or ecosystem

itself and then to the extent you want to work with large web 2 companies is it even possible on a given chain so thinking about the support you can get from the ecosystem you're building in is a consideration that people should think through as well that reminds me of the history and evolution of Open Source and how the Linux Foundation played a really important role in the ecosystem the ecosystem was kind of developing on its own but there were things that they did to help Advance like the corporate Partnerships and to help supporting all these things that sort of helped it come about as the language du jour I think that's a that's a good analogy to think about another way to think about this is you might consider the chain you're building on to be distribution or almost like a publishing arm depending on the

type of of application you're building if you're building a game or a consumer app oftentimes the marketing support from a foundation or from an ecosystem can be really helpful and really meaningful and that would be as important as some of the technical differentiators for many folks yeah that's great so building on what guys sell two exercises that I like to run that address two of the key challenges one is very quick napkin math in terms of what the expected cost of the system is like just play out for a second how much data is being stored how many transactions per day or per month or per minute do you expect from the users that will quickly narrow the set of

possible deployment strategies because if your system is a system that's relatively infrequent large dollar values are being transmitted at a time then maybe the difference in transaction fee is actually not a huge deal but if your system is obviously a type of system that is very sensitive to congestion and to increased gas fees that's just going to make only a few possibilities even available to you right that's a very quick one people can be kind of surprised by doing this napkin math thing like wow I didn't realize like these three things are just not an option for me yeah the napkin maths here I would also encourage people not just to think about the average transaction throughput but the peak

transaction throughput because that's when fees are going to be especially high and that is in many cases when things are going to break yeah and it feels so obvious the napkin mat but it's actually not like people probably don't do that they really don't they really don't and like just a few specifics can really narrow it very fast and it can also reveal opportunities for optimizational maybe certain things don't need to be here so whatever I think that could sound intimidating to a builder like oh my God does it mean I have to know everything but no you're just saying like figure out the goals and then to guys Point you're only as strong as your weakest point so to speak but the third thing is I was even just thinking about this concretely for myself like if my product were like a game where the goal is to trade nfts and

really transact around all these like micro objects on an hourly daily minute-by-minute basis versus another product where I'm doing something much more different behaviorally then maybe I would make a very different Choice based on that napkin math you just outlined like I was just trying to think of a concrete example or way of thinking about it if you have a simple application comparison for that that might be super helpful here before you get the second heuristic totally it's very obvious that if you want to make a fully on chain game one of my favorite categories that I cannot be on L1 because yeah every small game event is going to add up games may be constructed of thousands and thousands of different events and if you're trying to save them all somewhere you probably

need up front to think about where that data is going to be stored what actually needs to be stored that's actually a great segue in my mind to the other exercise which is to walk through step by step what you actually expect the user experience to look like tangibly and that's starting at the boundaries of your application starting at like the boundaries of the user's needs what do you mean by that first step they need to get some eth to an address from a coinbase right like that that's that's not your application but that may be where their Journey needs to begin in fact it may even begin earlier like they may have to have a choice of wallet what wallet have they

installed or have they purchased right all those different steps are totally different depending on an application some applications can say no first step is they show up on our website and then we're going to integrate with the key management system we have an on-ramp we have gas subsidies whatever whatever whatever that means that the user Journey actually starts here if you go through each of those steps you will see the things that you need or are missing I just alluded to a few of them maybe you need a key management system maybe you want people to come with a wallet already you expect them to already have a wallet set up and they're kind of onboarded maybe you'd like to hide the wallet from them and you don't want them to think about the fact that they're using crypto they just have an account maybe they can exit it but you

have like some non-custodial system for them to manage their own Keys that's kind of hidden for them behind like an email address or something like that right yeah that can be a totally different type of thing so I've presumed the existence of that type of key management system or wallet system if you expect them to read and write from the blockchain many many many many times they need a nice RPC endpoint yeah remote procedure called keep going yeah they need a nice RPC endpoint what do those look like maybe you need some analytics system how did the analytics for applications developers look if you're trying to show all kinds of numbers to your users is that going to be something you're going to build or is that something that has already been built I'm just giving a few examples but the point is if you walk through the

full actual expected user experience you will see all the things that you need that likely have already been built or don't exist at all and are going to be your problem and so on those are all part of a bundle that you are inheriting by choosing a blockchain so I'm going to give you a name for those two heuristics Eddie the first one let's call it Betty's napkin rule where you do the napkin math for like here's what the the cost of the system is going to be and the second one we're going to call it Eddie's whiteboard exercise which is you sketch out the user Journey from the very beginning and not just do it all in your head but really think about it from their vantage point so you can identify all those points okay so now I want to Probe on what you guys both mentioned

about programming languages you guys have said a number of things about programming guy earlier when you were talking about I thought that was super interesting what you said about the thinking about the future when more web 2 developers might come to web3 Eddie you talked about like the case of rust and how it's kind of a programming language du jour for a lot of developers and what that means change for the ecosystem and we did a whole episode actually Eddie Noah and I with Sam Blackshear from mistin and programming languages and blockchains in general but specifically here in this context is there anything more to say about choosing your blockchain in the context of programming languages maybe one is that this seems to have been one of the key pressure points that blockchains

have encountered because blockchains that previously relied on or drove people to other languages have since changed their mind because the network effects around high quality solidity code are really high it already exists it's been audited it's been tested people know how it works it makes it easier to use different developer tools relating to that solidity there's just a lot of benefits to digging a language that everyone else has already suffered through Refinery yeah right so that's a huge one and then another thing is that unlike other conventional programming in blockchain world you're picking the programming language and the virtual machine at the same time and that means that systems that rely on the evm are just going to need to support solidity and if

you want to support solidity you're probably going to need to run the evm or something very similar to the evm you don't have to but it would take more work not to and that contributes to both their Network effects that both of those different things have Network effects that are different and now they're combined so it's a very potent bundle that doesn't mean it's going to run away and win in fact like I've said before I think move rust many other candidate languages I have very compelling features and there may be competing VMS even like the move VM is very very interesting it has safety properties that may become indispensable but that's just the way the world looks right now

one other point I think is useful to make when choosing a language in reference to a chain when you choose a blockchain you're not only choosing the language that you're going to write your application in but you're choosing the language that everyone else who wants to interact with your application is also going to write their application in at least today if you think about Atomic composability on a single chain you're not just making the choice for your team but for all other teams who want to talk to your application I think that's that's an important difference to highlight this I think will change as cross chain Bridges become more popular things like layer zero but for the most part today you really are choosing the language for every one else in your ecosystem as well as for your own core team you know I'll say one quick note on

this just another point from Tech History and how it ties in here one is what you just said Eddie about Network effects because when most people in Tech think about Network effects I think they think about it too much abstractly like in terms of objects and and numbers and not actually in The Human Side of network effects which is talent and people the OG Network effects as people because obviously they talk about in the terms of users which is such an abstract way of saying about it but I mean like just the sheer Network effect of people coming together and that goes to what guy said earlier about Community as a dimension and how to think about choosing blockchains the other quick point of History I think is super fascinating on the language note so one of my former colleagues from Xerox Park was Brian Arthur who's some would argue

the father of network effects theory he wrote a very famous paper back in the day on increasing Returns on the new world of business it was like a paper he wrote like back in 96. anyway it's super interesting because I had him on a podcast with me and Mark a few years ago and one of the things he talked to about is how English itself as a language it's almost an accident of history that it won in the network effects of a language that humans use because it could have very easily been another language and it was almost like a little Tipping Point that took what could have been a very small language locally confined to a certain region and it made it a global language politics aside I just think it's a really interesting kind of point there what you just said because it just

really underscores that you cannot only bet on one thing in the future the future can unfold in very unexpected ways when it comes to these things tipping and taking off and I just think that's a super interesting thing to think about the other quick thing I would just Probe on what you said about how it's really unique Eddie that in crypto is unique in this context that the choice of language and machine are tied together could you say a bit more about that before we move on and just that when you write code in a programming language like if you write code in rust or something right you can set to many compilation targets and you can have it run in many many different environments independent operating system independent of container like it can

just run as such whereas solidity is typically always written to run in something that looks very much like the evm yeah that is just a property that it has and that's because you only have a limited set of computers to run it on and that's the blockchains and then like they have one virtual machine and uh you have to kind of take that virtual machine or leave it and then conversely there are actually multiple languages that compile to evm solidity Viper there's some experimental other ones but they are second place by a decent distance I think there's actually some really exciting properties about them and I'm glad people are experimenting with them I I love seeing it but just if you're using the evm you're first and

foremost you're dealing with solidity and that's because of that tight length between them great okay two things we haven't covered you guys talked about security a little bit here and there but you haven't really talked about it yeah on the dimension of security I think people conflate this sometimes with decentralization security is going to be very different for different applications so if you're trying to build uh Reserve currency for the world or a fully decentralized exchange you really want to resist censorship and even State violations from nation-state adversaries if you're building a video game Chinese intelligence services in the NSA probably don't care and so I think that's a real question to ask yourself are you building something that is going to be a threat to governments

and to intelligence services or Not Another Dimension that we set context for what we didn't was the application specific Chain versus L1 distinction it actually does tie in a little bit with the security Dimension because like in the polka dot in Cosmos case in different ways they require that you in some sense set up your own security whereas ethereum doesn't you just pay ethereum the fee the gas fee you park your data on it and you get ethereum's security and the same with Solana so it does tie into those things you can basically set up a system where you have to set up your own security or you can set up a system where you don't other ways that this ties in is just to give a specific example if you're going

to be one of 10 OP stack chains you can probably bet that people are going to build a lot of ecosystem software that's going to be compatible with your application specific chain and that's just a really nice place to be in and you also get more or less separate gas characteristics not totally because these all still have to keep paying a one to park the data but but you do get some separation in terms of congestion for what's happening in your chains which is nice but then you have a cost and that cost is less composability because now users might have to bridge or use some kind of interoperability solution to be able to do things between those bridges and that's why optimism and many others are looking for ways to

create unification between these different application specific chains optimism calls it super chain polygon calls it supernets there's many projects thinking about this set of trade-offs there's definitely a difference between application specific blockchain and general purpose blockchain I think this is part of the question of should I build my own chain if you're going to build your own chain generally you're building it as an application specific blockchain although that's not always true sometimes an application then wants to create infrastructure so that people can compose with that application I think Ronin is a good example of that on the point of do I build on a generalized Chain versus an app chain there have been a number of projects that have essentially taken the thesis of I want

to include logic about my application in consensus and they usually do this because they want to provide a subsidy for the service that the chain is providing and they can use the block reward distributed as part of consensus to make it cheaper for the users to access the service that the application specific chain is providing I think this often over complicates development and conflates these two points and people should just at least in my opinion build on an established general purpose stack like the evm or like the cosmos SDK and tender mint and then separately if they want add that subsidy in their their token and token economic model usually this just creates a lot of complexity

that at least in my opinion I don't think is is worthwhile so just to make sure I understood that when it comes to application logic and consensus you're generally not a fan even though you do kind of see the purpose of it in certain cases I think the the general rule is including application logic and consensus over complicates it and is not particularly worth it even in some cases that I think have been pretty well justified by the team as they're going through this process I think they've later on realized that if I had to do this again I would not include application logic and consensus I think it's becoming a worse idea all the time as we move forward in the future and the off-the-shelf solutions we have for

consensus are getting better and so there are some rare exceptions when you would consider it but like if you don't really want to do this I would encourage you not to yeah yeah one point I don't think either of us have made yet is that if you're building on a general purpose chain today for the most part you have no control over the Mev that your application is exposing if you build an application specific chain oftentimes you can change how the Mev your application exposes is captured or internalized I think osmosis is a very good example of this it's an application specific decks on Cosmos that has a threshold encrypted mempool and they have managed to internalize Med and plan to distribute it effectively lowering

the swap fee to users so I think if you're concerned that your application is exposing too much Mev today at least at this point in time it's worthwhile considering building your own application specific chain or building your own chain got it so when it comes to telling Builders should you build your own blockchain what would you first say to them as an answer most of the time if someone says we'd like to build our own blockchain the answer is please don't do that why are you doing that that's too kind of things because that's that's very difficult to do right please don't this is like when you're selecting a difficulty level on a video game and that's the highest difficulty

level that's like realism you will die like don't do this this is Dark Souls and that's building your own blockchain if this is the tenth time you've played the game and you know what you're doing fine but otherwise don't but if you are a power gamer what if you do want to go to that difficulty level when should you build your own blockchain what are the reasons that people might want to do that so A couple years ago the answer would have been to have to start something more or less from scratch there were some tools and there have been some tools where you can get started and some off-the-shelf products like tender mint and substrate people will recall have been around for some time but now you have relatively speaking very very complete packages that you can pull off the shelf like op stack is great product and we're big

fans of it that comes out of optimism and that'll get you much further there the first thing I'd ask is is why and that that's an obvious question but it's because you have to have very specific reasons to do so you probably want to be able to customize the chain you probably want to be able to customize the way people interact with it and build software around it you probably want to be able to take certain things for granted or make specific upgrades that are difficult to do to someone else's or to some other existing chain look at what coinbase has done recently with bass is a great example of a project starting their own chain so it's where you want to go much much deeper and you want to have a level of control

to offer a specific type of experience maybe that has to do with identity management or account abstraction maybe it has to do with encrypted mempools or Mev related stuff but these are very low level considerations that you probably have to have some very good reason why you've gone that far down the thought process and you've encountered the idea maybe I should roll my own network and that you know that became a viable option so it's probably not the place to start we're at a really interesting time in history the choice is difficult right now but that's part of what makes it a great opportunity I'm very excited this is fun enjoy it crypto is a dark forest and uh you know have fun with it awesome thank

you so much thank you so much thanks so much Donald bye guys thank you 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 choxie that's me the episode was technically edited by our audio editor Justin golden credit also to moonshot design for the art and all thanks to support from Asics and Z crypto to follow more of our work and get updates resources from us and from others be sure to subscribe to our web 3 Weekly Newsletter you can find it on our website at asicsnzcrypto.com thank you

for listening and for subscribing let's go [Music]