Hi! Recently, I was thinking about an innovative idea. What if we had a way to distribute our programs in a 100% decentralized and distributed way?
For example, usually when you create something like a text editor type program, you have a backend and a frontend part. The frontend part is usually called by some rendering engine to get something to appear on the screen. It is the visual part of any application, what the user sees. The backend part is usually the algorithm, the programming logic, the internal data structure and functions to create, delete or manager a file.
One idea that became clear to me would be to use the backend and frontend parts separately. The reason for this separation would be to provide a decentralized and distributed environment. Today it is very common things like blockchain for bitcoin or any cryptocurrency/crypto asset etc, blockchain for smart contracts, blockchain for email, blockchain for cdn, blockchain for digital wallet, blockchain for decentralized applications etc.
As you can see, there are a multitude of uses of blockchain in various types of services such as email, financial transactions, real estate transactions, among others. One purpose I could see would be to use flatpak within a blockchain context. This will allow to distribute any program in a secure p2p network, which can facilitate the adoption of linux.
A current linux problem I see with flatpak is the size it takes up and also there are no user permissions in fkatpak. When I say that there are no user permissions in flatpak I am referring to the fact that the settings of some program in flatpak are made by the developer and not by the user. This can generate some kind of security flaw, someone can download a flatpak without knowing that the modules of this program were saved in some unknown place on the computer.
This problem that I reported could be solved, if the graphical interface of the software were distributed and decentralized. A decentralized and distributed graphical interface cannot in any way have any malicious function, as it only displays something on the screen - it is not part of the backend, it is a separate part. This solves the problem of the permissions I mentioned, even the user clicking on something, would be guaranteed that nothing would happen.
In addition, this could reduce the size of the files since the same code snippet or component could be used for many other programs. An important process that we must remember to make this problem solved or part of this solution that I report forwarded here… would be to use block protocol. It is a block protocol, the idea is to distribute components in the form of blocks. This allows for the reuse of multiple components for multiple programs - which is in context with the flatpak I talked about earlier.
the great benefit of the block protocol is that it can be used by companies, communities, people, NGOs. That is, there is a great freedom of development in the visual part. In other words, regardless of the linux distro, if the visual interface is separated in a distributed and decentralized network, the problem of one version change to another would not occur, the software versions would occur in real time and in execution. What would make the life of those who develop and like linux easier.
The idea of you distributing a flatpak through a blockchain protocol with a distributed and decentralized interface would be possible using the block protocol - the decentralized and distributed visual part I mentioned earlier.
It is worth mentioning some points of this idea… I spoke initially about versions, versions can change according to programmers, linux community etc. When I talked about versions, I talked about the idea of the visual part that can change according to the type of software. In that sense, if the frontend and backend are somehow separate… this might be more auditable and secure as you would analyze something separate individually.
The block protocol has a network called block-hub that is responsible for registering the visual components, this facilitates this version and visual control part that I talked about earlier.
In theory we have everything to turn linux into a platform(flatpak-blockchain-block-protocol). Some say that linux is not a commercial success in the desktop environment because it is fragmented and because it is not a platform. As a user I’m thinking of ways to help improve this part of linux. There is a new network protocol called radicle, the idea is to use git in a decentralized p2p network. This partly solves the idea of both frontend/backend version control.
- The data of any application is saved locally through remote-storage protocol
- there is a smart contract to do some app actions like create issue, send report etc
- the frontend part is componentized by the block protocol
- flatpak is sent by blockchain with specs in smart contract