Skip to content

Introduction

hm90121 edited this page Aug 4, 2021 · 1 revision

0Chain is a high-performance decentralized storage network that offers privacy, GDPR compliance, tokenization, and security features for mission-critical applications.

To understand 0Chain blockchain protocol. We will first review some key terms.

  • Miners and Sharders: The two major entities involved in the 0chain protocol are the miners and the sharders; the miners are responsible for the production and verification of blocks, whereas the sharders store the blocks.

  • Round: A round is the process of producing a single block, divided into one or more subrounds.

  • Block: In general, a block is produced in a single subround for all of the miners. However, if the process times out for a miner, the process restarts and a new subround begins.

0chain Protocol Overview

Miners that are currently taking part in block production are referred to as being in the active set. Other miners that have been selected to start at the next view change are referred to as the incoming miners or as the DKG miners, referring to the distributed key generation process outlined in View Change and Distributed Key Generation.

Every round, certain miners are selected as the generators responsible for creating the block. There is a priority to the generators, so that the second generator’s block is only used if the first generator fails to produce a block. All miners serve as verifiers, who replay the generators’ blocks to ensure they are valid and then produce signed verification tickets as their guarantee that the block is valid. The miners then tally the votes from all verifiers; once the block has received sufficient votes, the miners send out a notarization including the verification tickets received from other miners.

Miners are expected to store the state of the blockchain and a few recent blocks, but are not expected to store the full blockchain history. The state of the blockchain is stored as a Merkle-Patricia Trie (MPT).In contrast to miners, sharders do not participate in producing or voting for blocks, but are tasked with long-term storage of the blocks. Note that an individual sharder does not need to store all blocks, but only the subset of blocks assigned to them.