Bitcoin Forum
April 26, 2024, 01:39:08 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Decentralize the network with Mining Share Transactions  (Read 240 times)
maxwell10206 (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
October 30, 2018, 05:12:49 PM
Last edit: October 30, 2018, 07:57:42 PM by maxwell10206
 #1

Mining Share Transactions

Abstract—One of the challenges Bitcoin continues to face is the tendency of the network becoming more centralized as miners join pools rather than mining solo. As of this writing the four biggest pools control over 51% of the total networking hash power, with the largest of the four controlling almost 20%. This paper will discuss a possible modification to the current Proof of Work protocol that Bitcoin and other cryptocurrencies use that will help incentivize miners to move from larger pools to smaller ones, or even mining solo.

1.   What is Pool Mining?

Under the proof of work protocol miners compete with one another to mine the next block by hashing a block header, then making small changes to the nonce or timestamp to get a different hash value each time the data is hashed. Miners will do this until the resulting hash value is below the current difficulty target. At that point the miner has successfully solved a block, which then is propagated across the network and validated by each node. This proof of work system works as a lottery that a miner can win for every block. In Bitcoin’s case a new block is found on average every 10 minutes. Currently there’s an estimated number of 100,000 miners on the Bitcoin network with a combined hash power of 50 million TH/s. With that many participants with that much hash power, the average time it takes for a miner to solve a block by themselves can take a long time. Most miners demand a more consistent stream of income rather than waiting to win the lottery. They currently achieve this in one of two ways, centralized pool mining and p2pool mining. Centralized pool mining works by a pool operator hosting a full node, generating a block header for the next block and distributing the block header to their pool miners to start hashing. The miners on the pool will occasionally submit what is known as “shares” which is a hash that solves a lower difficulty than what the block needs to be solved, back to the pool operator. The purpose of this is to prove to the pool operator that you are completing work. Every so often a miner on the pool will solve a share that also solves the block which the pool operator will then propagate across the network. The pool operator will then distribute the block reward to all miners based on the number of shares they have contributed.

2.   How Pool Mining centralizes the Blockchain

When a miner joins a pool they mine the block header that is given to them by the pool operator. The pool operator has full control over which transactions will go inside the block. This gives the pool operator the ability to maliciously use the entire hashing power of the pool to attempt a double spend attack on the network, if desired. The largest Bitcoin mining pool has 20% of the total network hashing power. This is not enough power to even attempt a double spend attack, however if multiple large pools conspire they could easily conduct a double spend attack on the network. It doesn’t take more than a few bad pool operators to collude with one another to conduct a harmful double spend attack on the network.

3.   Mining Share Transactions

Mining share transactions help incentivize miners to mine solo instead of joining a pool while still retaining the same benefits of receiving a continuous stream of small rewards rather than having to mine an entire block. Mining shares also significantly change how consensus happens on the blockchain. To mine the next block, miners first create mining share transactions which represent the work of having mined a fraction of the next block. Each block is required to contain exactly X number of mining share transactions for it to be considered valid. This is the reason why all nodes on the network start mining the next block by first mining share transactions. Each mining share transaction contains two crucial pieces of data. The hash of the previous block, and a transaction output. After a node receives or creates X amount of mining share transactions for the next block, the nodes will begin to hash a block header which will contain X amount of mining share transactions in addition to the normal transactions. Keep in mind, the target difficulty for generating a valid block header and a mining share are equal.

4.   Maintaining a Blockchain Consensus

A block header contains the Merkle root which contains the transactions that are in a block. Traditionally the block header is backed by 100% of the mining work by the network, but with mining shares the block header is only backed by a fraction of the total work, precisely 1 / (X + 1). Where X is the total number of mining share transactions each block must contain. It will be common to have multiple competing block headers broadcasted shortly after X amount of mining share transactions have been mined. However, after a node receives a valid block, it will begin mining new share transactions on to that chain. If multiple valid blocks are received by the node, they will have to pick which fork to mine off of. As mining share transactions are broadcasted throughout the network, nodes will mine off the fork that has the best chance at reaching X amount of mining share transactions first so that the next block can be mined. For example, block A, and block B are both valid blocks which creates a fork on the chain. As nodes start generating mining shares for either fork they will be continuously monitoring the competing forks for how many mining shares they currently have. Nodes will switch to the fork with the most work behind it based on the number of mining share transactions already mined. This will allow the blockchain network to reach a consensus fairly quickly as nodes monitor the number of mining share transactions coming in for multiple competing blocks.

5.   How to measure Transaction Confirmations.

Traditionally the confirmation number for transactions are calculated based on the depth that the transaction is in the chain. For example, if the transaction is in the block at height 10, and the current block height is 15, then the number of confirmations for that transaction is 6. With mining share transactions, confirmations are measured differently since the block only represents a fraction of the total work. For example, if X is 99, meaning each block needs 99 mining share transactions to be considered valid, then each block and mining share transaction is equal to 0.01 confirmations. If Transaction A is in block 1, and there are currently 49 mining share transactions mined for block 2 then transaction A has a confirmation number of 0.5. If block 2 is already mined and there are 49 mining shares for block 3, then transaction A would have a confirmation number of 1.5.

6.   Conclusion

One of the unique attributes of Bitcoin is that it is a decentralized digital currency. It is important to keep Bitcoin and other cryptocurrency networks as decentralized as possible to prevent bad actors from performing a double spend attack on the network. With mining share transactions, users are encouraged to mine solo rather than mining on a pool while still retaining a predictable stream of income. With a more decentralized network, it makes it more difficult for bad actors to attack the network. Mining share transactions modifies the proof of work protocol in a way that changes how blockchain consensus happens. Nodes monitor the number of share transactions for competing blocks and contribute to the fork that has the most. This allows for consensus to happen fairly quickly after competing blocks are broadcasted. Confirmations also have to be measured differently so that users receiving transactions can accurately figure out how confident they should be that their transaction is final. Mining share transactions will increase the security and the integrity of the blockchain network by making it more decentralized.
1714095548
Hero Member
*
Offline Offline

Posts: 1714095548

View Profile Personal Message (Offline)

Ignore
1714095548
Reply with quote  #2

1714095548
Report to moderator
Make sure you back up your wallet regularly! Unlike a bank account, nobody can help you if you lose access to your BTC.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714095548
Hero Member
*
Offline Offline

Posts: 1714095548

View Profile Personal Message (Offline)

Ignore
1714095548
Reply with quote  #2

1714095548
Report to moderator
1714095548
Hero Member
*
Offline Offline

Posts: 1714095548

View Profile Personal Message (Offline)

Ignore
1714095548
Reply with quote  #2

1714095548
Report to moderator
aliashraf
Legendary
*
Offline Offline

Activity: 1456
Merit: 1174

Always remember the cause!


View Profile WWW
October 31, 2018, 06:03:53 AM
 #2

I have published Proof of Collaborative work (PoCW) a same proposal with much more details in btctalk, months ago, and it might be useful for you to take a look.
maxwell10206 (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
October 31, 2018, 05:10:23 PM
 #3

I have published Proof of Collaborative work (PoCW) a same proposal with much more details in btctalk, months ago, and it might be useful for you to take a look.

Very interesting read. Did not know someone else was working on a similar improvement!  Grin
danda
Full Member
***
Offline Offline

Activity: 201
Merit: 157


View Profile WWW
November 01, 2018, 04:47:10 PM
 #4

Under section 2 I think you should mention that mining pools give pool operators enormous leverage/power when it comes to signaling for soft/hard forks.

Basically, a whole bunch of miners are pointing hash power at the pool.  On their own, the miners might never upgrade or signal at all (thus preserving status quo) or might go in different directions like cats.  But the pool op can make one little change and suddenly all that hash power is signalling for whatever op wants.  Many/most miners do not care enough to switch to another pool as they are driven by profit incentive and changing to another pool requires work/effort.

It's kind of like if I sign up with an insurance company for insurance, but hidden in the fine print is that the insurance company will vote on my behalf in upcoming government elections, so long as I continue as a customer.

mybitprices.info - wallet auditing   |  hd-wallet-derive - derive keys locally |  hd-wallet-addrs - find used addrs
lightning-nodes - list of LN nodes  |  coinparams - params for 300+ alts  |  jsonrpc-cli - cli jsonrpc client
subaddress-derive-xmr - monero offline wallet tool
maxwell10206 (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
November 02, 2018, 04:57:33 PM
 #5

Under section 2 I think you should mention that mining pools give pool operators enormous leverage/power when it comes to signaling for soft/hard forks.

Basically, a whole bunch of miners are pointing hash power at the pool.  On their own, the miners might never upgrade or signal at all (thus preserving status quo) or might go in different directions like cats.  But the pool op can make one little change and suddenly all that hash power is signalling for whatever op wants.  Many/most miners do not care enough to switch to another pool as they are driven by profit incentive and changing to another pool requires work/effort.

It's kind of like if I sign up with an insurance company for insurance, but hidden in the fine print is that the insurance company will vote on my behalf in upcoming government elections, so long as I continue as a customer.

Exactly! I really like your analogy too. I think it is something we should all be concerned about, and to find technical solutions to fix it. Mine is just one approach, I am sure there are other approaches.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!