Are You Ready To D-PoW?
The Long-Term Attack and Short-Term Network Partition Solution For Blockchain
By Michael Holdmann and David Beberman
Recently, Prasaga filed formal application with USPTO.gov for “DGB Distributed Consensus”. (https://github.com/prasaga/Documents-Patents-Pending/blob/master/d-pow-merged.pdf) A computer-based method for combining individual hashpower of a plethora of shards that use a proof-of-work hash procedure such that each shard benefits from the hashpower from all other shards in the plethora of shards whereby a chosen set of shards having a maximal combined individual hashpower is a consensus.
PoW is only distributed in the sense that all nodes in Bitcoin or Ethereum style chain can independently mine and produce a block. Prasaga’s DataGrid Blockchain (DGB) Distributed PoW (D-PoW) is for distributing the PoW values among multiple independent chains. Thus, the PoW’s for each chain are included in the other chains. This does not produce blocks or change the competitive nature of producing blocks.
The method to combine the hashpower of all the individual shards has the following prerequisites:
• The rate of block production for each shard is a known quantity, and may vary from shard to shard;
• PoW for each shard of a blockchain is produced periodically and independently;
• The value of the PoW difficulty for each shard is known, and may vary from shard to shard.
The hashpower available on each shard or blockchain is derived by:
hashpower = Block production rate / PoW difficulty (1)
where a smaller PoW difficulty value implies a larger expenditure of compute resources to find a PoW solution, and vice-versa;
and where block production rate is defined in common units across all shards (e.g. seconds).
The combined hashpower of all the shards is the sum of the individual hashpowers:
combined hashpower = ∑ (Block production rate / PoW difficulty) (2)
summed over the shards.
What D-PoW does is enable evaluating a group of chains over time for validity, where the determination uses the concept of largest hashpower for any competing groups of chains. Hashpower equates to expenditure of resources, which is identical to what both Bitcoin and Ethereum actually do.
Thus the immediate consensus is a local matter for each blockchain, but the long term probability of immutability takes all of the available hashpower in to account. This protects against a long term attack. The reason why this is particularly attractive is that it allows for signature based consensus (PoS variants), but for long term eliminates the dependency on protection of private keys
The evaluation stage which can take place at anytime, and in particular helps with bringing new nodes up, can deal with adversary attacks that attempt to create multiple chains that appear to be valid forked off of the original chains. The grouping of connected but disjoint sets of chains, enables the evaluation to determine which chains have a maximum cumulative hashpower.
This also allows for dealing with short term network partitioning where one or more chains may be isolated, but rejoin connection with other chains, as what will happen is the maximum hashpower choice will find those chains again.
When trying to support a sharded or parallel chain system, the issue of partitioning can either isolate one or more chains, or break the chains. In the former case, how to rejoin becomes an issue. One can either terminate the chains on rejoining the other chains or try to merge the state. Regardless, a solution of just assuming that such partitioning won’t happen is not viable. What can get even worse is if a sharded system creates synchronous cross-chain dependencies such that if one chain fails or is partitioned, the entire system stops.
There may be another blockchain system out there that is using the concept of shared PoWs in this manner. We haven’t found it. The closest shares the header hashes in a predefined way that evolves over time, but had a synchronous dependency.