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

Loading player…

Pocket Network Protocol: Solving a Trilemma in Disguise with Daniel Olshansky

Ethereum DenverMon, Oct 9, 2023, 12:00 AM

Transcript

foreign okay before I start look everybody it's me uh I know my hair was almost literally on fire last year and I said I was going to do something a little more fun this year but I'm hoping that my mustache will be enough for everybody so I'm wolfshansky um the protocol lead at pocket and today I'm going to be telling you about a trilemma we're solving that was actually right in front of in front of our eyes since the very beginning but before I do I'm going to define a term that I'm going to be using a lot throughout this presentation which is RPC and it's pretty basic it's when one machine makes a call to a remote machine that executes a procedure and returns a response so RPC easy as one two three and while I assume that most of the audience knows about pocket Network I'm gonna give a quick rundown of what we do so pocket is a multi-chain decentralized RPC protocol and what does that mean it simply means that if you're a Dap that needs a full node rather than writing your own infrastructure there's a decentralized cluster of nodes that are incentivized to run it on your behalf and serve data to you so that's pocket in a nutshell what am I going to be talking about today so I'm going to be talking about what's new for pocket I'm going to talk about why we need to decentralize rpcs at all I'm going to talk about our decentralization approach and then I'm actually going to go into what we're actually doing about it so what's new for pocket here are some numbers last year we were doing just over 2 billion relays a week today we're doing more than 8 billion relays a week and the number is steadily growing more importantly you can see that most of our relays were focused on Harmony Back Then but now it's distributed across many different chains including ethereum polygon and gnosis and many others next inflation also went way down so poct is what servicers earn in exchange for providing a service and while there's a ton to unpack here and a ton to discuss and our community and our Dao are always involved in these conversations I think lower inflation really really helps and shows that we're a healthier maturing and growing Network and there's obviously a lot more that we can do next I'm going to talk about validator distribution so last year our 1 000 validators had just under 30 million pods staked today that number is almost at 90 million pucked and increasing and you can also see that the distribution of our validators has grown as well now this slide I'm not going to have the I'm not going to have time to jump into but I think it's just really really important to Showcase that a lot of the core protocol changes to the one that's live right now actually came from external contributions it was ideated developed by external contributors and that's actually where most of where a lot of the Innovation right now is coming from in the current version of the protocol okay so that was a summary of what's new for pocket but now I'm going to talk about a big question of why even decentralized rpcs at all so this is the world we were promised where where there's a bunch of dapps and they're talking to the network they're requesting data they're sending transactions they're requesting proofs and they're doing local state validation this is the world we were promised and this is what we have where you have dapps talking to centralized node providers which run chains on your behalf and you communicate with them via RPC moving the trust layer up one level and I know there's a ton of research and a ton of discussion and a ton of work going into like lines right now and I just want to show that this is not an original idea in Section 8 of the Bitcoin white paper Satoshi talked about simple verification like a simple payment verification clients and that's what lifelines are it was a plan since the very beginning but what has changed is we're living a multi-chain world right now and rather than just serving data all these centralized node providers also offer a lot of bells and whistles a lot of different features on top of actually giving you access to the data underneath so that's kind of what we were promised and that's what we got and now I want to answer the question of why decentralize rpcs at all it's not about solving data availability there's a lot of different protocols that do that and it's not about solving data privacy there's a lot of different protocols that do that as well it's about creating an incentive for data redundancy it's about creating an incentive to have geographic distribution of the nodes it's about creating an incentive to have geopolitical distribution of the nodes and it's about enabling like lines because where are you going to get your proofs where are you going to get your block headers who has the incentive to actually serve this data and we don't just need to serve it we need to serve it with a high quality of service and like I said before the world has changed it's not just about the on-chain data it's about all those bells and whistles all those extra features that the full node infrastructure providers offer you on top of the actual chain so what's our approach to decentralization usually when you need to frame a problem or you need to frame something you think of rectangles or squares because that's how you frame things but another great way to frame things are triangles we've got the cap the cap theorem from distributed systems we've got the scalability trilemma that uh Vlad zamfir came up with back in the days we've got the impossible Trinity from economics so distributed systems blockchains economics triangles have always done a great job at framing problems and now we have the RPC trilelama reliability performance and cost reliability is everything we've learned to love from web3 it's trustless it's decentralized it's permissionless it's reliable performance is everything we've learned to love from web 2 you have nine nines uptime you have a high quality of service it scales elastically and cost well it needs to be cheap for both sides and it's kind of things became much cheaper when we went from a physical world to a digital world back in web one so that's how we frame the problem but then what is our philosophy to actually solving this problem so we've all heard of progressive decentralization where you progressively decentralize things bit by bit step by step over time our approach is pragmatic decentralization where depending on your use case or depending on how much trust you need or have it's a spectrum of how decentralized things really need to be you can make a programmatic decision of how decentralized your data and your RPC and your full node provider really is so we frame the problem you kind of know what our approach is to solving yet but what are we actually doing about it so v0 has been live on mainnet for over two years now and V1 is an underactive r d right now and the main goal of V1 is basically taking all of our learnings from v0 and moving them on chain so here's a high level look as to what's happening in V1 we have four protocol actors we've got the validators which take transactions create blocks validate State transitions pretty basic we have applications so they stake parked they pain pocked and they actually get value out of the decentralized network of of RPC providers we have the servicers which are the ones actually running the full nodes and providing that service to the application and then we have the Fisher beings which are the ones that are overlooking the servicers they're the ones that are actually grading the quality of service of the servicer creating a report card and then that report card determines how big the rewards actually are now this is probably going to be the most technical piece of the talk because one of the most basic Primitives of the pocket protocol is the session and you can think of the session as basically a way to fairly distribute work throughout the network it's a way for us to pair applications with servicers that are gonna serve their rpcs and it handles a lot of different things like rate limiting the amount of pot that gets inflated the amount of parked that gets burnt um and basically it's one of the core foundational parts of the protocol and while I assume that most of you haven't had time to look through that diagram one important piece of information is that in order for you to know it as an application who is going to be servicing my rpcs you need access to on-chain data you need to be able to ask the network who is going to be serving my requests and while some while some applications may be able to run a light node others might not so even as an application you still need to make an RPC call to an endpoint to figure out who your servicers are right you need an endpoint or you need an IP address or you need a host and a port right you need a portal you need a gateway to web3 but what do portals actually do so as an application I can delegate trust to a portal or I can delegate trust to multiple portals or I can delegate trust to no portals at all it's up to me portals on the other hand can dispatch sessions on behalf of applications they can sign relays on behalf of applications and they can also offer off-change services so those bells and whistles that I was talking about this new world that we live in where infrastructure providers offer a lot more than just on-chain data it is something that portals can offer but you might ask how can applications delegate trust to a portal you've got to put a ring on it that is the only way you can delegate Trust and take this from a guy whose only ring is the one he got from his undergrad engineering degree so I know what I'm talking about but on a serious note what do ring signatures actually do basically you can think of applications they can send an on-chain transaction to say I have my private key this is a transaction I delegate trust to this portal portals have their own private team and they're independent actors and through the magic of ring signatures which is a cryptographic primitive brought about by Monero several years ago what a servicer can do is validate the signature and it doesn't care who signed it it could be the application it could be the portal it doesn't know and it doesn't care and the most important thing here is that applications can delegate trust and undelegate Trust to the portal add their will it's simply sending a transaction one of the things that I really want to hone in on is the power of rank signatures rather than needing multi-party computation or threshold signing or all of these more difficult kind of interactive processes it's completely non-interactive and everyone owns their key so this brings us back to the original diagram with all of the actors but we have not four but five protocol actors because we're adding the portal and what this lets us do is decentralize pragmatically the application can either use trusted rpcs through the portal by delegating them or they can do it trustlessly by talking directly to the servicers and the most important piece is that these are not mutually exclusive as an application you can do both at the same time okay that was a lot so you might ask but what's in our pocket there's a lot there's a lot in our pockets our pockets are full this is our stack and I'm not going to go through all of it in detail but I did want to kind of just point out and discuss that we are doing a lot of things in-house to optimize for our use case but we're not Reinventing the wheel for example we're leveraging things like lip P2P in our networking layer we're building on top of all of the research that the Libra teams did on consensus and then building it ourselves to optimize for the fastest most performant and scalable RPC Network possible there's a lot more and you can definitely go and check our GitHub if you're interested to learn and the last question that I get very often is why build your own blockchain and the reason is that we're building an up an application specific blockchain for an application specific purpose and we're trying to remain chain agnostic we're trying to be the gateway to a multi-chain world we can be dependent on another chain in order for you to give you access to all those other chains we already have a 20 000 note strong Network and we can leverage that by being able to scale our validators right now using tenement we're limited to one thousand with V1 we all of our servicers will have the option to be a validator it gives us the option to have interoperability with many different protocols and we're already in conversations with polymer labs and others to potentially have IBC integration in V1 and there's also a lot of other optionalities such as restaking algorithms and papers being released nowadays and one of the other things that's really really important is by owning our stack we're able to really build and create a good developer experience we have really good documentation we have really good tooling and I think the fact that we have with every few weeks we have a new external contributor not just being a developer on the network but contributing to the actual protocol and being able to just pick up our documentation our tooling and start developing speaks a lot to that so that's pocket that's what we're building it's what we have and uh I'll end up by asking the real decentralized RPC Network to please stand up [Music]

Automatic transcript — names and jargon may be misspelled.