DeSo : An Overview
DeSo : An Overview
DeSo is a decentralized social media built on a public blockchain. Public blockchain means anyone can download the content, analyzie it and provide a custom interface on top of it. DeSo team provides a reference implementation for a frontend that allows users to interact with the underlying blockchain. You can choose to use the reference as a starting point. If you are brave, you can even decide to start from scratch and write your own frontend. For someone interested in hosting a node and tinkering with it, the reference implementation is a good starting point.
Unlike other public blockchains, only trusted nodes are allowed to mine and validate the blocks at this point. These are the set of nodes that are hardcoded in the DeSo source code. New trusted node can be added in the code with the approval from DeSo core developers.
When we talk about blockchains, we have to first understand what a block is. A block is a container that holds a set of transactions along with a cryptographic proof to make sure that it cannot be tampered with once it has been mined. A block is first created in a process called "mining" which is same as Bitcoin mining. If a node is interested in mining DeSo blocks, it first creates a new block template with all the transactions that currently exist in the mempool. This process is coded in the DeSo core code base. But if a mining node chooses, it can modify the source code in such a way that only certain transactions are mined into the block. There does not seem to be any safeguard against this problem. After a block template has been created, the miner then tries to find a value so that the block hashe satisfies a certain rule. This involvs iterating through a bunch of numbers and calculating the hash. When a miner finds the block, it then broadcasts the block to the all the other nodes. Unlike other blockchains, DeSo has stopped rewarding the miners for solving the puzzle. This means nodes that are truly vested in the success will actively mine the block. This also means the number of DeSo coins in circulation has already been capped and no more coins will be created.
If you are interested in learning more about the low level details of how DeSo works, DeSO website contains a detailed write up on https://docs.deso.org/code/walkthrough. I have to admit though, this write up seems to be a little out of date and can definitely use some love from core DeSo team.
With these technical details out of the way, lets get to the point of what makes DeSo special. I have been playing around with DeSo blockchain for a while now, first in bitclout.com and nowadays in diamondapp.com. Bitclout.com is built using the reference implementation. It has now been migrated to node.deso.org. Diamond app is also built using the reference implementation but with numerous additional customizations on top. Diamodapp feels more usable. I think that is by design. The public nature of DeSo blockchain allows or even encourages developers to come up with their own version of the interface. It is even possible to have a command line based social network. Now that is crazy. Who would want to interact with their friends from command line? But you never know! On the app side, Cloutfeed is one of the most popular apps. Even @nader has endorsed Cloutfeed. All these services host their own node. This allows them to customize the feed behavior and provide additionl analytics and features on top of the blockchain. There is a large untapped opportunities to provide a custom service. Some of the ideas are captured by DeSo documentation. I think it is still too soon tell what kind of service will become the killer service to bring DeSo to the masses.
Apart from performing the normal social media actions, like posting, liking the posts, reposting among other things, DeSo offers users their own coin called Creator Coin. Anyone with an account in DeSo is a creator and they can have their own coin. People can then buy or sell those coin in the DeSo blockchain. If you think someone has a potential to become a great success in the future, you can bet on that creator by buying their coin. Users can also create their own NFT from the posts. If you want to mint an NFT, first you have to post it in DeSo. The post can be any digital artifact, for example it can be an image, painting, music or video, or even just a simple post. Once it is in the DeSo blockchain, you simply 'Create NFT'. This option for creating an NFT may be surfaced by different UIs in different ways. Once an NFT is created, you can now post it for sale or auction it. Wasn't that easy?