0Chain
Published in

0Chain

What is 0Chain? A Simple Explainer on 0Chain’s Storage & Blockchain (Transcript)

A couple weeks ago I released a video summarizing the core protocols that enable 0Chain to function:

A summary of 0Chain’s Storage and Blockchain protocols for beginners

Thanks to the help of Tiago and others, a transcript for the video is now ready for your reading pleasure.

Enjoy!

Opening

Hey guys. Thanks for tuning in. I got a good video here for you. We’re going back to the basics. Covering 0Chain’s blockchain and 0Chain’s storage. In the next video, I’ll cover the economics to tie it all together, but it’s important to grasp this one before going to the economics video.

Cloud storage and decentralization are complex. Combining the two together is what 0Chain does, which is a decentralized storage system, becomes highly complex.

I wanted to make a video to provide a high level description of what 0Chain is, how it works, and what makes it special in comparison to other crypto projects out there. Maybe you don’t know anything about 0Chain. Maybe you know a lot. Either way this should get you up to speed on the foundation of 0Chain.

So let’s begin at the basics. You may be familiar with Ethereum. At least, I hope so. Ethereum is a general purpose blockchain that underpins a lot of decentralized applications, and right now it is mind-blowingly expensive to use. So Ethereum is advocating a transition to layer 2 scaling. The reason why? Some stuff can go on the blockchain and other stuff doesn’t necessarily need to be on the blockchain.

How does 0Chain fit in to this?

Well, we’re kind of similar. 0Chain was built from scratch, and we prioritized stuff that needed to be on the blockchain and other stuff that didn’t need to be on the blockchain to accomplish our goal of AWS grade storage on a decentralized network. Put simply, we have built a blockchain and a side chain network that interact with one another to deliver you that aforementioned goal: A revolutionary product that comes in the form of fast, decentralized storage.

“Now wait? 0Chain isn’t the only storage platform out there in crypto.”

Am I just a shill for 0Chain? Well maybe, I’m pretty biased. But we also can provably offer a fast storage product that the others cannot.

How?

Both the 0Chain blockchain and its side chain network are unique, and that’s what enables 0Chain to offer cloud storage that is decentralized but also as fast as its centralized counterparts such as Azure and AWS. So again, you may be wondering “what makes 0Chain structurally different from other crypto storage platforms such as Filecoin and SIA?.” The short answer to this is that they aren’t fast enough for day to day usage — For instance, Filecoin uses IPFS, which works a lot like a permanent, constantly growing, spider web of information, where you upload a file into this web and it will stay there indefinitely, much like how a blockchain transaction stays in the blockchain indefinitely. This type of file storage can be beneficial for a certain niche known as archival storage. The use case of archival storage is much like the use case of a storage unit. If you don’t know what a storage unit is, its a piece of space that you rent away from your home and it usually contains furniture, keepsakes, and other stuff of yours that you don’t want to get rid of, but you also don’t really need constant access to it in your day to day life. So you throw all of this non-critical stuff in a storage unit and pop in on it every now and then should you need something, such as your great grandma’s turkey baster. This is archival storage, in essence a digital storage unit. It takes some time to query IPFS files, but they are certainly retrievable. An example use case for archival storage might be to store swaths of security camera footage, or land title records, or historical texts. Stuff you want to hang on to that could be useful down the line but you don’t necessarily need on hand.

PART TWO: Why is 0Chain beyond archival storage?

0Chain caters to a different crowd, and takes a different approach to storage in order to deliver a much broader use case, which is enterprise grade data storage. What is enterprise grade storage? When you think enterprise grade, think fast, quick. You use enterprise grade storage, aka AWS, to slide through your favorite social media app, to match to girls on tinder, to stream videos, to listen to music, to message friends — all of this stuff runs off a high performance cloud: mothing in crypto can offer such a solution — until now. We’ve made one that’s decentralized, thanks mainly to our unique blockchain and our unique storage protocol. Which I will explain now:

How is the blockchain unique?

Most blockchains have some form of miner or validator that mines a new block of transactions and broadcasts this new block in addition to the chain of blocks before it. Since new blocks are mined every second, over time this can create a lot of work required in order to broadcast the entire block history. 0Chain takes a new approach where it splits the work of mining a block and storing the block history into two separate functions. These functions are known as miners and sharders. In other words, 100 miners will mine 0chain’s blocks and 25 sharders will store 0chain’s blocks. Additionally, the order in which a miner mines a block and a sharder stores a block is not predictable — it’s entirely random. This randomness is enabled by a process known as VRF, aka verifiable random function. All you need to know is that random is good, because it makes the blockchain harder to game. Other blockchains utilizing dPOS often have some form of “leader” or round robin style where the order of who gets to mine a block is relatively predictable. Thanks to its randomness, 0Chain does not have this.

Ultimately, these separations of duties for sharders and miners enable a faster blockchain because it lightens the load on miners. I’ll try to explain how this separation of duties lightens the load with an example:

Imagine if you had a family of 5 people. 5 people in a family had to each chop down a tree, each chop it into 10 logs, each person had to carry all of those 10 logs back to your home to build a fire (50 logs total, 10 logs per person). Your family might instead be a lot more productive if 4 people in a family were log choppers, while 1 family member specialized in log delivery. Lets say he had this massive sled to pull the logs and shuttle them back home in batches while everyone else is chopping. Much more efficient to separate duties and specialize.

The miners and sharders also benefit from this. In addition to the separation of duties, the miners and sharders run their services on enterprise grade computers. Kind of like a massive sled and chainsaws instead of an axe and rope. This high performance hardware is necessary because people don’t like to wait around for stuff to load. In order to provide a storage service as fast as AWS, it must have a laser fast connection and high performance hardware.

In summary, the blockchain is composed of 100 miners and 25 sharders who specialize in their respective duties to provide a very fast blockchain.

Now, how does storage fit into this?

Well as I mentioned, 0Chain has built a blockchain and a side chain network that interact with one another. We just explained the blockchain, and now it’s time to explain the side chain network.

The side chain network is composed of blobbers, who are the ones who store your files, videos, photos, etc. It’s important to remember that Blobbers = Storage Providers because Blobbers make the data storage service on 0Chain possible and are referenced quite a lot. Now, you might also be thinking — oh if the file itself is not stored on-chain, then how can it be decentralized? Well, the beauty of data storage is that the storage of a file doesn’t actually need to be on-chain in order to get the benefits of decentralized storage. In fact, doing so would be a lot of redundant work and would make major sacrifices to network performance. This misconception that files should be on-chain is a big reason why decentralized storage hasn’t taken off yet. Organizing it in such a way is way too slow for it to be practical in our day to day lives.

In comes 0Chain, 0Chain has trimmed out the excess fat of what actually needs to be on-chain in order for a decentralized cloud storage network to work properly and quickly. The two primary categories that need to be on-chain are what I will define as: 1) file activity and 2) babysitting. File activity can be understood as the activation of a storage subscription, the access of a file, the deletion of a file, etc — basically specific checkpoints such as when you start your storage journey on 0Chain, you access your files, you change your files, or you end your storage journey. Babysitting is a friendly way of describing the miners checking up on blobbers to make sure the blobbers are doing they’re job and playing by the rules — 0Chain defines this check-up process as a “challenge”.

Now lets dive a bit deeper into these two categories.

First, file activity.

The great thing about file storage is that accessing a file is a lot like making a transaction on your favorite DeFi platform in the sense that, you’re pretty much just sending a transaction and then you receive a result. On DeFi, for instance, you might want to move funds on Uniswap. To do this, you process a command to swap coins and/or to sign a transaction via your crypto wallet. For cloud storage, there are commands known as READS and WRITES, which can be executed on 0Chain in a similar fashion to those commands while using Uniswap.

For instance, you might want to process a command to look at a photo, and this command would be known as a READ. Alternatively, you may want to process a command to make a change to your photo. This change may come in the form of an edit or deletion of a photo or an additional photo to an album — any modification to your stored files would be known as a WRITE command.

At a high level, on 0Chain, we’ve enabled a lightweight way to execute read and write commands on blockchain transactions without actually needing the file itself weighing down the speed of the blockchain. What this means for you is not only that you have decentralized file storage with the same performance as AWS, it also means that you have an auditable history of data activity. Why is an auditable history useful? Well, if you had sent someone ETH to an address they gave you and they claim not to have received said ETH what might you do? I would go to etherscan and send them a proof that you sent them funds. With 0Chain, this auditable history can now be applied to file storage. Maybe this sounds kind of boring but what are some potential use cases of this? Well, let’s say you send a third party company an encrypted link containing your personal information such as a passport. If only you and the company have access to the file, and the file was only supposed to be looked at once, but read or write activity on that file shows it has been read several times, this would mean the stranger you sent the file to is responsible for this unapproved activity and you thankfully have the transaction as proof of a red flag. In a centralized world, you don’t have such a luxury of knowing when any individual or entity is looking at your files. Kind of spooky if you start to think about it.

Apart from the use cases of 0Chain, let’s take another real world example to give a rough idea of how the general use of 0Chain storage interacts with the blockchain

Randy, a storage user, wants to add a photo of his. Randy opens up his iPhone, goes into 0Box, and uploads the. On the backend, what he’s actually doing is sending a transaction to the blockchain for a WRITE. This WRITE transaction is sent to the blobber, and the blobber fetches the WRITE transaction to execute the file upload and the blobber also gets compensated for doing so (we’ll get into the economics of it all later, but for now just know that blobbers have a monetary incentive to process read and write commands in order to get paid out). Thanks to the speed of the 0Chain blockchain, this interaction can all happen within seconds, providing a pleasant user experience for Randy and others. This is a very general way as to how 0Chain uses incentives and commands for file activity to get around this hurdle of slow decentralized storage.

Babysitting

Okay that’s file activity, but how do we hold blobbers accountable if everything is stored off-chain? This is a major part of our system and provides a nice segue into the second category described earlier as babysitting. I chose the babysitting term because it’s pretty much how I translate the purpose of the process in my mind. The miners babysit the blobbers to make sure that the blobbers are keeping the files stored by issuing the blobbers random “checks” on their data, kind of similar to how different sports leagues issue random drug tests for athletes, in a way. This babysitting process is referred to more technically as the “challenge protocol”.

’ll know explain how the challenge protocol works. This might get a tad confusing because it touches on the economics of 0chain storage and has some complexity to it but it’s important to understand in order to grasp how miners hold blobbers accountable. I’ll try to simplify it.

When a user initiates a storage agreement with a 0chain blobber, the user locks tokens to pay for storage. and a blobber stakes the full value of the storage agreement in ZCN tokens as collateral; this collateral is kind of like a promise that the blobber will be accountable — because if the blobber isn’t storing files, they lose tokens. So, blobbers stake tokens and users lock tokens. We use separate phrasing since their purpose is a bit different, but they’re very similar functions in reality.

The tokens on both sides are batched into the storage agreement. A portion of the tokens will pay out the blobber, and this portion of tokens is separated into two different pools. These pools are known as the Reward Pool and the Challenge Pool. The reward pool is fairly straight forward and was touched on earlier: ZCN is taken from the reward pool and is given to the blobber on each read or write as an incentive to the blobber to expediently provide reads or writes requested by the User. In other words, the reward pool pays the blobber for doing work. The challenge pool has a different purpose. Challenges are designed to make sure the blobber is always storing files, and in order to do so the challenges must be random. So, a miner will randomly send out a challenge to a blobber asking them to validate a chunk of data (referred to as an allocation id) and the only way to validate that chunk of data is if they actually have it. If the blobber passes the challenge, the blobber is paid out a reward from the challenge pool. If it doesn’t pass the challenge, it may lose a portion of rewards or stake. The system has a lot of intricacies and various phases so this is an oversimplification but it captures the general idea.

To summarize, the blobber is paid out in two ways: 1) for fetching data or providing data requested by the user (aka file activity) and 2) for passing random challenges to prove they have the data even if it’s not being requested (aka babysitting).

Conclusion

Hopefully this gives you a good overview of how 0Chain storage works, how the 0Chain blockchain works and how 0Chain weaves in storage to the blockchain to keep it all fast and lightweight so that the user experience is nice. Ultimately, the protocols have a lot of bells and whistles so use this as a foundation to get deeper into the details, not so much as a precise instruction of how everything works because I did skim over some stuff in the interest of keeping it easy to digest.

Since this video ended up surprisingly long for covering just the blockchain and the storage components of 0Chain, in the interest of time, I’m going to release a new video going over the economics. This will actually work well because the economics make more sense if you have a general understanding of what a blobber does, what a miner does, a sharder does etc.

Hope that this video helped out! Let me know in the comments if it did.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store