The way to fully decentralized dApps - Balint Ujvari | SolarPunk Ltd.
ETH Belgrade Community·Tue, Oct 7, 2025, 12:00 AM
The way to fully decentralized dApps - Balint Ujvari | SolarPunk Ltd.
Transcript
Hello everyone. Uh my name is Balin Tuari and I work at solar bank. Uh as a software developer uh we are responsible for business development and creating applications on the swarm network and today I would like to talk about uh deps and how to make them fully decentralized. So first of all let's start with the current state of the applications. Uh unfortunately only a small portion of the internet users uh interact with deps regularly and to be honest I think they have a good reason for it first and foremost is that they have a lot of tr trust issues.
Uh because when whenever any information gets into the media um it's either really good or really really bad. Um I'm sure most of you have heard about lot of scams, frauds and data leaks and people are afraid of this. The other thing is that most of the people don't really know and understand the usual blockchain jargon like tokens um incentivization signature signing transactions and um I don't think they really care about that much. They just want to have the usual experience that they have in web two uh user interfaces. And on the other hand, I understand as a developer that it's really hard for the for the devs to create such applications that are really similar similar and uh seamless just as the web two applications because every other day there is a new um protocol coming out a new version and update and we have to keep up with these solutions to have the u state-of-the-art applications that we want to achieve and for this reason uh I think The issue isn't that the web 3 has wrong ideals.
The problem is that the execution and how we create these applications. Uh in this image you can see that uh use usual user flow is that the user signs into the mobile application opens a browser tab opens the plug-in and then he or she has to connect into a storage solution or maybe um access a server. then set up a RPC and communicate to the blockchain um create a transaction, sign it and then you can um receive uh his or her funds which is really complicated and what I would say is that all of the right side of this image can be abstracted away on the UI side and the user doesn't really have to care about what goes uh in the background. uh he just has to uh uh care about what he sees and understands as a regular everyday user. Um it would be really hard to explain to my mother for example what a token is, why would she need to use another cryptocurrency, which storage solution is better, which blockchain does she need to use, etc.
, etc. That's one thing. And the other thing is that most of the web3 applications unfortunately still use centralized storage sol solutions like S3 or Google cloud or any kind of custom server which is really a pro problem because the blockchain ecosystem we really like to uh focus on privacy and censorship resistance and these companies are not really famous for that. It's not that I don't like them. you just have this kind of problems and data leaks have happened in the past several times and what I would argue is that full decentralization is really achievable now without sacrificing the usability that we have used to we are used to at the web two space I don't think we need to discard every uh aspect of the web two space just have to transform uh them into the web3 world and provide a bridge where we can access our data and own our data ourselves and for that I would like to talk about swarm a little bit and introduce you how to store your data in a decentralized manner so what is swarm swarm is a peer-to-peer network of nodes that collectively provide a sensorship resistant and decentralized storage system with some communication services and what is B that I I'm referring to here in the slide.
B is just an implementation of a swarm client with which you can access the whole swarm network. Swarm currently now has around 8,8,500 last I checked. So we are uh we can say that we are quite decentralized as of now. So we had a talk previously uh we've heard it that uh users don't really like remembering passwords and they keep forgetting it. And I agree with that that it's really hard to uh explain to them why they need to do this all of stuff just to set up a go through this on boarding process.
And in my opinion the worst part is when we are um losing customers clients during the onboarding process because it's too complicated for them and they don't trust the don't trust our applications and for that the first thing I think is the uh that we need to create seamless uh wallet uh creations in the background. The users doesn't really have to know uh that the wallet is created at the background. For example, they can uh just sign a transaction using their fingerprints uh by just creating on the device uh pass key and that's it. They don't have to know anything else about that. And how to apply it uh into the decentralized storage solutions.
You can wrap your B- nodes into mobile applications just basically next to your MetaMask application or any kind of web3 service you want to use and then that way it can directly communicate with the storage solution that you have in this case swarm and uh then you don't have to worry about which server is uh going uh down in the background because then all you always have uh a decentralized service which is always available available. You can also do the same thing uh in the browser using a plug-in next to again with the metamask plugin or whichever service you want to use. And by the way at uh solar punk and swarm we are working on a solution right now when which um compiles the whole B client into which can then be integrated into a plug-in seamlessly. And again the main point here is that all these things can be uh hidden away abstracted away on a high level from the user. They truly they don't really have to know what is going on but they still care about where their data is stored and how private it is who can access it.
So I would like to talk about a little bit about the data that exists on swarm. You can think of any kind of data that can be uploaded to swarm. Let it be video, document, picture, literally anything. And on swarm everything lives lives as a chunk of 4 kilobytes. It has a fixed size and immutable.
What does this mean? Whenever my um mother wants to send a picture of her favorite cat to me, then she uh has a taken a picture of 4 megabytes, then it's going to be split up to, if my math is correct, around 10,000 or around a thousand chunks of 4K. And each chunk is going to be hashed into an address hash and pushed up to this form network providing a root hash that you can access your data from. This means that you can upload any any kind of data but you still need to know who owns that data and for that information swarm introduces sources uh which is short for singular chunks. Singular chunk is a specific type of data living on sparm which can be only uploaded by the single user who owns that node who has the private key to that node and by that we are able to prove who owns the data providing a self sovereign infrastructure and uh later on I can show you how to use it in uh modern uh website applications.
So let's see now we know how to uh upload data how to prove that it's ours then we need updatability. Updatability doesn't mean that the data is mutable. It means that we can add or append new data to the existing structures. Remember content address chunks are immutable. So single chunks combined in a clever way uh are combined in a clever way into data structure which provides you a static address that you can access from the front network.
Under the static address, you can access your mutable or appendable content. And with this solution, whenever you let's say want to create a blog post or a new website, you just upload the whole website to the swarm network uh upload that uh hash that you have created from your website under that feed and then you can access that address that feed under that address. So what do you need for a feed? You just need your public key and the topic that you can identify with your website and then you can access everything under that feed whenever you update it. Now we have a problem.
We are we are bound to swarm and uh whenever we someone wants to access this swarm feed then the user needs to have access to a gateway or or a local node. But we have a solution. If we b bind or point uh swarm address to an ENS address and then you can access this feed from the outside world just like you would use it for Facebook. So in this example let's say you upload the whole website to Facebook uh to swarm bound it to uh bind it to an ENS address and there you have it you can access it from the outside world. But this then we still also have a problem that how do we get notified about the updates of of for example the blog posts of Vitalik or anyone else.
We need a notification system for that which swarm also provides. There are several methods. For example, the first and most obvious one is using feeds. You can just use the web two methods. you can pull the feed and whenever the underlying hash changes then you you know that there has been an update and you fetch the website.
But there is an more elegant way than from that uh which is the G-Soft the gravity singular chunks which is really just an analogy uh on the swarm network to the u gravities on the wall. you just uh spray a new graffiti on on top of the pre-existing one and the outermost uh painting or in in this uh in this context the outermost chunk the latest chunk is going to be the latest update on that uh GSOC address and that's how you provide a subscription a notification service on the swarm network easily. There is another solution that I haven't described here which is called the swarm poster service which is uh the most uh uh secure way of delivering matches messages completely uh encrypted but I haven't uh put it up there. So now we can create websites put it in on the swarm network notify the users but why would the other nodes on the network store my data? Well, Swarm has a protocol, an incentive system just for that.
And we have an analogy again here called postage stamps because these are just the same thing um conceptually to the real world stamping mechanism. When you buy prepaid basically a postage stamp on the network, then you stamp this data with this uh batch you have bought and upload it to the network. And then you are going to have a proof that this data is going to persist on the swarm network provided the uh token that you have paid on the network. Uh but then we have again another problem that most of the web3 applications um are on different blockchains using different tokens, cryptocurrencies, different protocols which is really a problem. And if you want to have a decentralized generic data storage solution, then you're going to have to have it uh support multi- chain.
And swarm swarm has recently released its multi- chain support, which is really good thing. that because if you have different applications, trusted execution environments, decentralized AI, they they all all can use the same um storage solution as swarm and access the same data which is really nice and all the postage stamp and token bridging swapping is uh done under the hood. Again, I really want to emphasize that the user doesn't have to know about bridging swapping because they don't really understand it to be honest. um they just care about buying a they don't even care about buying a post system, you know, they just want to have um let's say a Google drive u with 10 GB of capacity for one year and that's it. That's all all they want to care about and swarm provides a way that way that it's possible but a good user experience can be derived from the web two uh uh world.
Okay. Okay. Now that we have websites, we can update them. We can store them on the swarm network. Uh the nodes are incentivized.
Now we have the problem that we need access control on the network. I don't know if anyone has had this problem before, but it happened to me that um a while ago my mother wanted to send a picture to me on Facebook, but accidentally she didn't DM it to me. She posted on my Facebook feed and it was really inconvenient. And for that reason I think we need a u correct way of uh controlling access by the uh users and the who can grant access to the recipients they want to send the message to and for that swarm natively supports access control. It's really uh again an analogy to the uh solution that exists in Google drive where you type in the recipient's user uh address.
By that I mean the uh email address and on swarm you just replace the email address with the public key of the user. You just uh click on share. the user is granted access and then you can just have you can just share that encrypted hash with the with the recipient and even though uh even if it gets u leaked somehow then only you and the recipient can download that encrypted data which is really nice and again it's a really flexible system because it it allows Unix like access control structures like grouping who can access what folder the admins can assign rights to different organizations. It's really it's really dynamic. So at the end I want to talk about that uh what else do we need uh if you want to have really robust system um because in the web two world this robustness and redundancy is achieved by backup servers.
If there is a network outage then usually big companies like Google have backups and then you can access the data and fetch everything from the backups but in a fully decentralized system uh uh you you really don't have a solution for that but swarm fortunately provides redundancy in that case. So here I would like to talk about a little bit the concept of neighborhoods. So whenever you upload data, it's going to have an address hash and the nodes that store this data also have an address hash. And these nodes and data live in the same address space and each node which is in a predefined proximity of the data uh is responsible for that node for that data to be stored. This way redundancy can be defined as an area of responsibility within the swarm network.
And there is one other thing which is called erasure coding. Eraser coding is an optional feature of swarm. But if you want to make sure that your data lives there even if there is a pretty bad um outage in the whole network. For example, the highest level of erasure coding is called paranoid. And if you upload your data to the network uh with this paranoid configuration, then even if half of the network goes down, it is guaranteed that you that you're still going to uh receive and fetch your data because the erasure coding provides it.
It's really similar to the concept of uh what the DVDs and CDs use when you scratch the surface of them. It's really the same analogy here. And lastly, what are the next steps? I think the first and foremost thing is to we need to narrow the educational gaps because as in the previous talks was mentioned most of the people really forget passwords. They need to they need to know why they need what they need how they uh can use these tools.
They don't really need to understand what the transaction is, what the signature is. they have to have a higher concept and we need to educate our developers also to help the users uh on board our services because without mass adoption we don't really have a way of going forward in this ecosystem and also I think as I mentioned earlier we need to integrate our uh web3 services into our mobile applications into our browser plugins so that the everyday user doesn't have to care about how to connect to an RPC node um how to configure uh data storage solution. Everything has to be abstracted away from the user. And lastly, I think I've heard about great talks uh in the past couple of days about decentralized AI and uh it is really great that there there are domain specific AIS but I really would like to see that these AIs use a decentralized solutions uh for the data storage because uh that would mean full decentraliz decentralization every in every aspect of your services And if I'm right then we can show you a demo if the guys can uh open the link in the background. So my colleague has started the stream at the start of this presentation which is fully hosted on swarm and it should be live.
If the guys guys can show it. Yep, that's me. It's bit lagging because of the bandwidth but it's going live on swarm. Um audio is not displaying now because because we don't want to interrupt the sound here but I just wanted to show you that we have a working real life solution uh with streaming on swarm and I think that's it. Thank you very much for for your attentions and if you have any questions I'm happy to answer.
Thank you Balin. Um do we have any questions? Uh can you talk a little bit about um like what kind of applications like any examples that um you know like either solar punk or or some others created with um you know with using this uh and and actually how they can achieve it. So what can solar punk um can provide for for builders to create such applications?
Yeah. Yeah. For sure. Uh for example, we have created for previous conferences uh we were at uh for example at Bangkok last year. We have created an uh whole website hosted on swarm uh where you can see your the uh agenda of the whole conference.
uh everything is updated, everything was updated live or just you can see that we have a streaming solution or you can have a blog post that we have created websites everything is possible and at solar punk we are responsible for helping the customers uh building these applications.
Anyone else? If not uh please warm round of applause for Balin.
Thank you.
Automatic transcript — names and jargon may be misspelled.