New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Decentralization is Hard: Towards the world's most decentralized blockchain | Lane Rettig, Spacemash

ETHTaipeiWed, Oct 9, 2024, 12:00 AM

Speaker

Lane Rettig

Decentralization is Hard: Towards the world's most decentralized blockchain | Lane Rettig, Spacemash | ETHTaipei 2024

Transcript

hey everybody um thank you for the introduction my name is laye very very excited to be here today and excited to talk to you guys about a topic that is very fundamental very foundational to obviously blockchain cryptocurrency web 3 uh decentralization it's a topic that we tend to like we all use the word decentralization quite a bit we don't always um we're not always very thoughtful what we mean by decentralization when we use the topic and so uh part of my talk is about the definition of decentralization how we should think about it how we should measure it why it matters so much and then I'll talk about decentralization in the context of space mesh my project uh very very brief background on myself I've been full-time in this industry for seven years kind of hard to believe time flies um I was motivated to join the blockchain industry and and begin working on ethereum which is the first thing I worked on seven years ago because I've always thought and recognized that blockchain cryptocurrency represents a really important platform a really important tool and a set of ideas that we can use to democratize access uh to these kind of global decentralized permissionless sensorship resistant uh networks of value creation around the world right so basically democratizing access so that people everywhere can participate in these networks create value for themselves their families their communities Etc um in 20 well actually yeah so before I jump to that um fun fact my very first talk ever about ethereum about cryptocurrency was right here in taipe in 2017 seven years ago uh at an event called Beyond block uh incredible how much has happened in the past seven years you know at that time it fit the entire ethereum community in Taiwan into a room this size was about 100 people obviously it's much much much bigger now so I'm very very excited to to be back here um and then in 2019 I changed gears and uh helped launch a novel layer one blockchain called space mesh um still working on Space mesh 5 years later we have a lot of work to do uh in a nutshell space mesh is a novel layer one based on a novel consensus mechanism called proof of space time which is a bit of a hybrid of proof of work and proof of stake um space mesh has two goals the first is to make mining from home very simple very easy so that people can use like people all around the world who may not have access to bank accounts credit cards cryptocurrency exchanges Etc they can use their existing Hardware their existing computer their existing internet connection at basically zero cost to become a minor on the space MH Network um and earn their first earn their first coins rather than buying them um and the second goal is to become the most decentralized blockchain in the world we have a goal of having 1 million full mining nodes on the network uh we're well on our way obviously we still have a lot of work to do um and these two goals being super decentral ized more decentralized than anyone and being friendly to home miners they're the same goal right because the only way that you can have a million nodes in your network is by making it very easy to mine from home uh sorry before I jump ahead we launched space mesh finally after five years of R&D in July last year so the network is eight or nine months old um and I'm just very excited to be able to talk about space mesh now not just in theoretical terms but in Practical terms and I'll show you real data from the network in a moment um so quick outline of the talk as I said we're going to begin by talking about decentralization I will talk about it first in a theoretical sense and then in a practical sense uh in the context of space the network um the main part of the talk is to present some challenges right it's called why decentralization is hard and what we're doing about those challenges um how to improve the network going forward Etc so to reiterate what I said right we turn we throw this term decentralization around a lot in the space everyone claims to be decentralized or be working towards decentralization but we're not always very thoughtful what we mean about it and this is what we want to avoid okay not T-Rex attacking Tye but a dino the dyo is a project or a network that is decentralized in name only okay again it's like if we're not thoughtful about what we mean when we talk about decentralization then uh we're going to end up with things that claim to be decentralized but they're not really the best resource I've ever seen to Define decentralization talk about what it is and why it means is this blog post this article from our friend valal seven years ago it's called the meaning of decentralization if you haven't read I encourage you to to sit down and read it it's not very long and it's presented in a very structured way if you have read it then like I did in preparing the talk I encourage you to like read it again and reflect on it because there's again a lot of really good stuff here um and and most of the ideas I'm presenting in this section come from this article I'll add some kind of commentary and stuff so in the article the article talks about four sorry three types of decentralization the first three logical architectural political I added economic to the list um logical decentralization is kind of like you know on the Spectrum right is the is the thing that you're talking about the network of the system is it a monolith right or on the other hand is it more of like an amorphous swarm and uh and a good example of something that's sort of logically decentralized is a language like the English language or the Chinese language or the bit torrent Network right you can cut them in half you can take a population of English speakers split them in half and it's totally fine they can still communicate and evolve separately blockchain is actually logically centralized because the goal of a system like Bitcoin or ethereum is to create a centralized a single state machine right we want a single Global State a source of truth about a ledger or the state of applications Etc and this is why it's so important to be uh intentional what we mean when we talk about decentralization because at least in this way blockchains are centralized logically centralized architectural decentralization or centralization is what most of us mean when we talk about decentralization in the cont text of blockchains a simple way to put it is like how many nodes are in your network it's more nuanced than that um it has to do with the the versions of the software they're running the the the uh the node implementation they're running the infrastructure they're running on the operating system etc etc talk more about that in a moment um political decentralization I won't be talking a lot about it in this talk but it's kind of like how many people or actors do you need to get in a room together to do something like upgrading a protocol or shutting something down um and I added economic to the list because in an age of proof of stake I think it's very important and meaningful to ask questions like who controls the majority of the stake um you know we have things like the Nakamoto coefficient which is not a perfect measure but it says how many validators uh together control enough stake to Halt a network right which is typically more than onethird of the stake um the article also talks about why decentralization matters so vitalic lays out three reasons fault tolerance attack resistance collusion resistance um these are all important goals of certainly of space as well as obviously of ethereum and other decentralized networks um fault tolerance is a very old idea it's you know comes from way before blockchain you see this in things like electrical grid networks or airplanes right they kind of incorporate elements of decentralization um into their design to make them tolerant against certain types of faults um I alluded to this a moment ago when I talked about architectural decentralization um you know you may have a million nodes on your network right you may have what looks to be something that's very architecturally decentralized but in practice if all of those nodes are running the exact same version of the same application the same node right software uh and there's a bug in that software then the network is not very decentralized it's not very resilient right so we need to look at many dimensions of architectural decentralization as I said before things like the operating system they're running on the Node implementation obviously ethereum is unique in having many node implementations um you know you may have uh again million nodes running a million different versions of the software but if they're all running in AWS data centers and AWS is attacked or decides to you know deplatform ethereum or something or space mesh then you still have a problem um attack resistance is like fault tolerance but the types of faults that you're defending against are intentional rather than unintentional they're very closely related um a good example of this would be like a uh not a bug in your software but a malicious uh someone injecting malicious code into the software supply chain right that's something that happens um and again if you have um better decentralization like for example more implementations of your software then there's more indoors to knock on to to kind of get a malicious code into the system or something and it's it makes it harder to attack uh collusion resistance is very nuanced uh I encourage you to read the discussion in the article um I'm not going to go into this right now but it is also a goal of of these systems um cool so with that kind of background in place I'll change gears and talk a little bit about um how we're doing uh in in building a decentralized network at spacemesh which again is our goal so this is our Network dashboard if you go to dash. spaces. in your web browser you'll see this it updates in real time um you know a lot of pretty graphs here we have just over 1.5 million Smashers miners in the network right now I will talk about what this means in a second um the amount of space in the network storage space right we use hard drive space for mining is uh it's a bit higher than this it's over one exabyte which is pretty awesome for a young Network um so the number I showed a moment ago right so this is something called minor identities uh we're in the latest Epoch something like 1.8 million um this is really exciting right as a builder as an entrepreneur there's nothing more exciting than being able to stand on a stage in front of a room of people and point to a hockey stick graph like this and say look you know this thing is alive it's growing it's very very exciting um a couple things to say here first is that this is like two orders of magnitude more than we expected when we were designing space mesh we kind of designed it for something like 10,000 um miners in the network and the fact that we have so many is really challenging I'll explain why in a moment um so some aspects of decentralization are challenging um the other thing is like these don't map Ono one to real world things like people or organizations or actors um the way the space mesh protocol works today it's very common for a single minor as in like a single person or organization to operate 100 identities 10id identities 100 in extreme cases even a thousand so um we don't know the like number of minors in the network but I'll give you some more hard numbers in a second that that are indicative um I mentioned space mesh uses hard drive space for security rather than uh what you know the resources used in proof of work or proof of stake um this is also growing really rapidly which is really really exciting uh we just passed 1.

5 exabytes that's like, 1500 pedabytes it's it's it's a very very large number it's very difficult to kind of conceive of but just to to give a sense of it it's something like 350 400 million songs so it's about three times I think the size of the entire Spotify Library um it's about 15 times the entire Archive of the internet archive Foundation which is around 10 pedabytes something like that so 100 rather sorry yeah about 15 times that big um I think I had oh it's it's approaching the amount of space uh the amount of data stored in filecoin which is pretty exciting right because again filecoin network is much older um last time I checked filecoin has around two exabytes of data on the network so I think this is really exciting for a young network if someone wanted to like 51% attack space mesh they would need more than this amount of storage space which is a lot and it's growing as you can see this is kind of like the most interesting I think statistic because unlike the minor identities the node count corresponds to a real world phenomenon right so this is like the number of unique nodes or peers that our infrastructure our nodes have seen um it's around 20,000 uh this is like a a smooth aggregated data set so don't pay too much attention to like the Peaks and troughs here um this is pretty awesome again for a network that I think is you know for a network that's quite young it's only eight months old this is very similar to the number of Bitcoin nodes um it's around two to three times as many as the visible ethereum nodes in the network um I think this speaks to the fact that we're trying very hard to make spice mesh easy to to run from home um of course this is only the I nodes in the network and and many nodes are like private and so the actual count is much higher than this so back to that dashboard a moment ago that I sorry that I showed a moment ago um you may or may not have noticed there's this I know it's a bit hard to see behind the table here but there's this thing called a decentralization ratio which says 82 right now right so what does that actually mean this is um a very kind of arbitrary subjective number that we came up with or equation rather when we were designing space mesh it's a weighted average of two things the first is uh how close we are to that number I said you know we kind of designed space mesh to support up to 10,000 Miners And as you saw we're at like 1.5 million identities right now so we're like we blew past that that goal um and then the other piece of it is the genie coefficient of the weight of the miner so basically the weight has to do with how much space that they've committed to the network if a minor has 10 times the space uh hard drive space committed they have 10 times the weight in the network basically um and so we want to look at like also how evenly distributed is that the main reason I'm showing this is that like we were really wrong in coming up with this this was like an early attempt to measure decentralization I think it is important to try to come up with measures like this but you know decentralization is very multi-dimensional it's it's it's kind of like you know it when you see it but it's very difficult to to put a single equation on it and I do not believe and I'm not here to say that space mesh is 82% of its way to the decentralization goal like maybe we're 10% maybe 7% I don't know we have lot of work to do but it's it's worth it's worth trying to do and if you have ideas about how to do a better decentralization measure like come talk to me um okay the main thing I want to talk about is some of the challenges we're facing in trying to build a very decentralized Network the title of this talk is decentralization is hard it's really really hard take my word for it so the first one the most kind of unique remarkable thing about space mesh is the fact that we're targeting home miners um I've said this a few times to the best of my knowledge every other major blockchain has sort of node operators and miners who are kind of professional or quasi professional um you know if you look at the people running ethereum nodes infrastructure salana is an even better example they tend to be running those nodes on dedicated you know Linux instances VMS typically running in the cloud or running in data centers with a lot of bandwidth Etc like this is just not the case for space mesh right the majority of the nodes are running on on home computers on home internet connections um and that's challenging for a whole bunch of reasons um one is that like the the ux of mining is just not as easy as we'd like it to be right we have an application a front end you can download it it's both a wallet and also a mining application um and in theory you kind of like run it you initialize your space and you just minimize it and runs in the background and Minds for you in practice it's never that simple right because things tend to go wrong people don't always keep their software up to date there's very frequent updates you need to to make um your computer needs to be online 24/7 right it doesn't really work on a laptop you need a desktop computer with like a strong internet connection Etc um and so you know the mitigation here basically is that like we need to take more of a product approach to space mesh or at least to the the mining software we are not product people right to be honest we're like protocol designers and and systems Engineers we just recently hired an amazing product um person to our team and like that's I think going to make the home mining experience easier but it's not kind of like just suddenly become easy overnight again we have a lot of work to do there uh the next thing is peerto peer so I know way more gory details about like the way peer-to-peer networks work on the internet than I ever wanted to or intended to um because this is such a big part of what we do uh again PTP doesn't work super well when you have a lot of home internet connections um you have private nodes behind natat and this thing called cgnat which is like a really terrible thing that isps do where they like just fundamentally break the internet um by making it hard to to to operate servers and things from home um the modern internet in a nutshell was not designed to support intensive peer-to-peer applications and it's again much easier if their nodes are running in the cloud on dedicated you know VM instances Etc um the good news is we're using Li PTP which is really great obviously ethereum and many other projects filecoin Etc use Li PTP uh we have the support of that community and there's a lot of hanging fruit like we know if we do things like ho punching better the PTP network will get better it will get easier to syn a node um the next thing is resources so the way the space mesh protocol was designed it was a bit naive again we expected you know maybe 10,000 minors and the protocol is designed in such a way that the complexity increases linearly with the number of minors right and that's complexity measured in terms of messages message traffic bandwidth compute Etc each of those minor needs to generate a proof of Eligibility uh which is a fairly complicated proof uh and and broadcast it to the network every Epoch and so it's already become very hard and very resource intensive to download millions and millions of proofs every Epoch and validate them um the fixes here like we know what to do we're working on them one fix is called distributed verification where it will no longer be the case that every node needs to validate every proof another fix is allowing as I said some miners are operating you know let's say 10 or 100 identities allowing them to merge those identities together into a single identity a single proof um so we know how to fix these things but those are B big protocol upgrades and they'll take time but the resources requirements will come down over time pools are a very controversial Topic in space mesh as they are in every crypto ecosystem um while putting this presentation together I learned a fun fact that the first Bitcoin mining pool was launched in 2010 right which is something like you know slightly over a year after the network launched and at the time of course Bitcoin was Tiny and had no value um it just goes to show that pools are part of every successful project every successful protocol you know space mesh like Bitcoin like ethereum is permissionless so we couldn't sort of ban people from running pools even if we wanted to and pools take advantage of economies of scale so they're not going away anytime soon um you know they are kind of a double-edged sword because on the one hand they give us a sophisticated point of contact you know when we need to do things like coordinating Network upgrades pools tend to be technically sophisticated actors and so that actually makes our lives a little easier than trying to convince a million home users to upgrade their nodes but the flip side of course is from a decentralization perspective both logical decentralization political decentralization Etc it's less than ideal um so we kind of have like I mean I'll share our thought process about pools they're they're again they're not going away um we think having many pools is better than having you know one or two dominant pools uh so we want to work on you know having open source pooling software to make it easier to to operate competing pools um very importantly we need to like educate users about the trade-offs of using pools right the the fact that for example they need to give up their private keys to use pools uh they're giving up sovereignty uh and that's you know that's that's risky for a bunch of reasons um and uh we need to remove the non-economic incentives to join pools so so space mesh is pretty unique in the way that even the smallest home miners there's no economic reason to join a pool because you will still earn you're guaranteed to earn at least one reward every Epoch that's kind of our like key idea key value proposition but because running a node is harder than it should be people end up joining pools and we need to make it easier to run nodes finally economics uh this is a snapshot from uh from basically a mining pool that that operates um on multiple ecosystems um including some like uh like Chia that are also using hard drive space for mining um as you can see it's still something like an order of magnitude more profitable to mine space mesh than a similar protocol like Chia per unit space um right now the smallest home miners are earning something like or three do worth of coins every Epoch uh so that's call it I don't know $4 a month something like that um that will probably fall by another order of magnitude and it'll be very interesting to see how the kind of shape of the curve um you know of sort of the long tale of Home miners relative to the the smaller number of like larger scale Miners and pools how that kind of evolves over time as the economics plays out but but this is challenging and there's no simple mitigation we can't change economics um so uh I'm kind of out of time I want to save time for Q&A so just to kind of conclude quickly um I said all these things already right these are basic things we're doing to improve the network more of a product approach making home mining easier making the peer-to-peer Network more robust um some big protocol upgrades that we'll be out pretty soon uh continuing to remove incentive to join pools making it easier to run many pools so that pools are competing um and educating users about the risks of joining pools um I could easily talk to you guys for hours about the VM I am a VM engineer myself that's what I was working on in ethereum uh it's the piece of space mesh I've been the most excited about um I kind of put this together it's just a jumble of things but just to make it clear that like designing a VM from scratch in 2024 is not obvious there are like a ton of Dimensions things to think about right do you want to use an off-the-shelf blockchain custom VM like evm or the space Sorry space m the salana virtual machine move Etc do you want to use a more global standard like web assembly or risk 5 um you know layer one options layer two options different types of rollups we're talking about plasma now again you know where do you store your data for data availability do you care about privacy Etc Etc we like spent years building a space mesh virtual machine and we threw the entire thing away a year or two ago because the goal posts had changed so much um the good news is our research team all met face to face last week just last week a few days ago and we actually have now like a candidate full stack VM design um I should mention we launched space mesh in July as I said but without a VM right so for now it's more just kind of a cryptocurrency um we wanted to kind of take our time and get the VM right so we will be announcing I think Sunday very very soon like this weekend uh what our VM design is going to look like I'm really excited to share more about that and talk about that um yeah that's basically it like I said I want to save some time for questions resources you can find uh I write quite often about space mesh in my substack uh I'm active on Twitter and forecaster spacemesh website our GitHub everything's open source we have a Discord chat. space.io um and finally finally finally I'm really excited to announce that we're also sponsoring uh hacker Bounties in the hack hackathon that starts here tonight it's our first time doing this so for any hackers in the room who are interested in kind of very bleeding edge protocol design core protocols things that are not proof of work or proof of stake um you know it's the protocol itself has kind of stabilized but we still need to build everything okay we need better wallets we need to think about bridges and cross chain stuff um we have an open-ended uh award hackers Choice like whatever part of space mesh sounds interesting um if you're interested in hacking on it please come talk to me we've got some cool prizes as well uh that's it I'll leave you with a quote from jarn laner he's one of my personal Heroes one of the most brilliant thinkers u in our space and this just goes back to what I said in the beginning um I believe very strongly that we need to build a future where we have permissionless value creation networks right networks that are permissionless censorship resistant um credible credibly neutral Etc that people everywhere can join and create value for themselves their families their communities um without those centralized Arbiters like the way big Tech social media networks work today and this is my personal Vision this is the direction we're going with space mesh um so more on that soon thanks for [Applause] listening so now this is our um Q&A time does anybody have questions for Lane and smash smash uh oh yeah don't don't be afraid it's fine um no I have a question that sounds a bit uh yeah silly but I hope you can give me more details about like it will reveal more details about the the way space time proof of space time was um you have in your uh measure of decentralization uh everything is prefixed by one half or 0 0.8 this is It's a weighted average of these two things and we just weighted them both equally that's all that that means oh it's both okay that's why but again these these parameters are super arbitrary and I kind of regret putting that slide in the presentation my point is like we need better ways to measure decentralization so if you have any ideas let me know okay gotcha no okay that was it thanks wow I was expecting a harder question I me let give me a minute I'll think about any more questions thanks for thanks for talk so uh in terms of home computer as a note uh do you tackle the question of of information security like uh when being know the the IP will be public to the to the hackers so how to regular users or some dummies to uh deal with that okay so just to restate the question and make sure I understand you're asking about for home users running space mesh software how do we protect their privacy their IP address things like this yeah that's a great question the short answer is it works the same way it does in ethereum right so on like you are revealing your IP address but only to your peers to your immediate peers um we do not have like a distributed hash table where all the peers in the network are you know in a single table that gets gossiped or anything like that um yeah you're you're you're basically you have like some number of Neighbors in the network and you know you connect to a boot node the same way you do in Bitcoin or ethereum or something and and they give you you know certain peers you can try talking to um I guess you could run space mesh through tour or something if you wanted kind of better privacy there's no reason you couldn't do that U but the other really important point to make is again like a network like ethereum um there's some concern that if you could predict ahead of time who the block producers are going to be you could like Doss attack them and so we also have a uh like a vrf kind of construction where block producers themselves only know shortly before they produce a block that they are they've been kind of elected to produce a block so there's no revealing of any information about like who the block producers will be ahead of time do we have more questions uh no don't worry it's it's not going to be too hard uh the first one is uh basically U yeah adding to to um what the gentleman asked if you do not have a DHD uh how do you do your Discovery and the second one is uh I saw in the list so you say you selected uh you know which VM you want to do but I saw mips in the list and I was wondering why you would even consider that mips is myips is amazing what are you talking about isn't uh isn't isn't isn't optimism's uh what's it called their thing based anyway um so first question the short answer is Li top like we use their Li P top Discovery layer uh I don't think it uses a DHT under the hood if I'm wrong correct me um Li is awesome uh H so the VM I mean I'll go ahead and reveal a little bit because you asked um we're planning to use risk zero we're really excited about it we've done a deep dive on you know kind of all the options um you know because we used to work together that I'm very biased towards things like web assembly or risk 5 right that are kind of global standards and allow people to develop applications using their favorite programming languages um risk 5 for people who are not familiar has the benefit of being a very simple instruction set like the name suggests right reduced reduced complexity instruction set um that's also very it's also open source right unlike I think web assembly is but like myips is not for example right um and we also so we want to balance that against on the other hand and being future compatible with ZK so uh again the details I'll reveal all the details soon but we're kind of coming up with a a a novel rollup construction that's kind of enshrined at layer one um it's going to be probably optimistic rather than ZK today but we want to be able to do ZK stuff in the future and risk zero seems like the best thing on the table right now to to enable that but you also told me about powder I need to look into that as well okay so because of the time limitations so if you have any more questions for Lane please approach him after the talk okay so thank you Lane [Applause]

Automatic transcript — names and jargon may be misspelled.