In current common blockchain projects, all transaction information is stored in single-chain blocks, making the entire system less flexible in the face of growing transaction size. In BigBang Core, the data of main chain and applied data are segmented. The system data of BBC is stored in a tree structure block of "security main chain + multiple applied sub-chains".
1. Security main chain
The security main chain is the main chain in a tree structure of BigBang Core. All the branch chains are its "descendants", which are used to support security and consensus of the whole block system. In P2P network, the priority of synchronous broadcast message delivery of the main chain is higher than that of the applied sub-chains. The security main chain not only records the transfer of BBC main chain, but also retains the key data during the negotiation process of EDPoS node.
The security main chain starts from genesis block of the block system and generates blocks through the consensus sequence of EDPoS + CPoW. The security main chain is used to support security and consensus of the whole block system. All applied branch nodes need to synchronize and verify block information of the main chain. After new node is connected to the network, the main chain synchronization completes first, and then corresponding applied branch synchronization starts.
Special transaction of main chain
In the security main chain, there are three types of transactions related to the consensus mechanism that are unique to the security main chain due to their special functions: EDPoS node voting transaction, EDPoS node register transactions and CPoW block reward transaction.
- EDPoS node voting transaction
- EDPoS register transaction
- CPoW block reward transaction
EDPoS node generates a Delegate template address. Users need to send BBC to this address for the first time in order to upload Delegate address on the chain. After that, users use the same parameters as that in EDPoS node to create Delegate address, and stores BBC in the Delegate address to complete BBC voting. EDPoS node can use the vote of Delegate address as the weight to participate in EDPoS negotiation. When users place coins in Delegate address to vote, the ownership of these coins still belongs to them, and they can withdraw the coins at any time. However, once the coins are withdrawed, the number of votes of corresponding node will be reduced accordingly.
EDPoS node needs to raise enough votes for each round of negotiation, in order to create a register transaction to register on the chain in advance and upload its initial negotiation parameters. Only the nodes that have registered before the negotiation (more than 2% of the total votes) are allowed to enter the negotiation process and generate blocks.
CPoW consensus is only used for the main chain consensus blocks by default, and corresponding block reward is provided to the participants through this type of transaction. The role of such transaction is the same as coinbase transaction in Bitcoin.
2. Applied sub-chain
In BigBang Core, users create an applied sub-chain by sending a special type of transaction through the parent chain, which is called branch transaction. The block generation interval of applied sub-chains should be consistent with security main chain. Other main parameters can be configured by the creator during branch initialization. Configurable parameters include BBC total and distribution, block reward and ways of additional issue, etc. The first block of the newly created sub-chains (starting block in the sub-chain) is stored in branch transaction. The BBC distribution of branch chains can be defined by the creator in three ways:
- Create a separate branch. The starting block resets the BBC total and distribution methods.
- Fully inherit BBC distribution in the bifurcation point;
- Inherit BBC distribution at the bifurcation point and issue additional shares on this basis. The distribution of the additional shares is defined in starting block of the branch.
From the bifurcation point, branch chain BBC and the main chain are completely separated.
- Cross-branch transaction can be used to realize synchronous value exchange between BigBang Core branches without trust. In the application, business can often be divided into multiple branches according to business process, equipment type, spatial region and other related factors. Devices with frequent interactions often have the same BBC branch, and they make data transaction in the same branch. But as a whole business, the requirement of interacting with BBC devices holding other branches also exists. In this case, cross-branch transaction can be achieved between the branch chain of BBC exchange. On the one hand, cross-branch transaction can be completed in the case of no trust. On the other hand, cross-branch transaction enters into blocks synchronizedly between two branches, ensuring high efficiency and validity, and providing good underlying technical support for applications including decentralized exchanges and BBC exchange gateways.