Let’s Migrate Bitcoin Using Cardano Technology!
- Collaborative PoW Proposal
All configuration validation nodes within the network have a list of transactions collected during timeslot time (T). Within a shard, transactions are broadcast to full nodes, so each validating node has a full copy of the accumulated transaction.
Next, each local node broadcasts a participation message including the information of [Node ID, Merkle Hash, Staking Permit] as the verification candidate qualification of the validator node. As a result, the local node receiving the participation message confirms all the participating nodes willing to participate in block generation. Here, Merkle Hash is the hash value for a bundle of transactions collected from the Merkle tree.
When the number of nodes willing to participate in block generation reaches 200 (example), local nodes with the same Merkle hash are eligible to become validating nodes to join in PoW mining because they have an identical copy of the transaction bundle. Each validation-participating check node with the same Merkle Hash participates in solving a smooth math puzzle (mining task with a target difficulty of 1/200 of Bitcoin mining difficulty, or 0.5% of Bitcoin’s difficulty). In other words, 200+ mining participating nodes consume almost the same computing power to find a solution to the target difficulty.
Validation nodes (Node1, Node 2, …, Node 200) that can participate in block generation find the Block hash value closest to the target difficulty for T/2 time after applying the hash function while changing the nonce. And all participating nodes broadcast the block hash message [Node ID, Block Hash, Staking Permit, Nonce] to all nodes.
All nodes will know the block hash value broadcast by 200 participating nodes. Each node can refer to these block hash values to determine whether the block hash value it created is the minimum value. The validator node with the smallest block hash value becomes the final block-generating node in the corresponding time slot period. Assume that the block hash value broadcast by participating node k is BlockHash (Node k). If BlockHash (Node 3) is the smallest hash value, each verification node accepts the block created by Node 3 as a new block and expands the blockchain.
We call this Collaborative PoW, and in summary:
Staking Permit nodes can participate in verification nodes. It works like PoS.
Each node confirming the join message affirms that there are 200 or more validating node candidates at the time slot and enters the PoW operation.
Each participating node finds the minimum Block hash value for T/2 time and broadcasts a Block hash message containing this Block hash information to all nodes.
Each node receives the block hash message, and if the locally mined block hash value is the smallest among all participating nodes, it confirms that it has been selected as a block-generating node.
When each node receives the block hash message and finds that the block hash value generated by other participating nodes is the smallest value than the locally mined block hash value, it selects the block that caused the smallest Block hash value. Validate and accept as a new block.