Mining Pools: Bitcoin style

Mining Pools

Mining Pools. Clearly from the previous lectures, it sounds expensive to be a small miner. It costs about $6,000 to purchase a rig. Expected time to find a block is 14 months and that breaks down to $1,000/month when amortized. Because this is all amortized valuation, things could go horribly wrong for you or you could get luck and achieve more. This is where mining pools come in in that it providers some insurance for the miner by banding with others. Mining pools are not just in bitcoin but are in other cryptocurrencies as well but I’ll get to that after I talk about the basics of what is a mining pool and a bit regarding the economies. This was a long lecture that covered many topics broadly and thus I hope to dive into some of the topics individually to truly learn more about them.

Questions answered in this Post:

  • Why did mining pools develop?
  • What is a mining pool?
  • What is a mining share?
  • How does a miner indicate how much work they have done and how that translates to income?
  • Describe what pay-per-share versus proportional method mean in relation to bitcoin mining.
  • Who is Luke-jr
  • what is pool hopping?
  • Why do mining pool protocols exist?
  • General Mining pool history

What is the intuition behind forming mining pools?

As with most lectures in this series, the lecturer starts at the very beginning of the topic to answer the question. He briefly described the risks involved with mining and the large amount of uncertainty that is present. Because of this, if this was the only option to mine, mining would be a very very risky business. To further illustrate the point of mining pools, the lecturer brought up a more traditional business model.

When small business/farms faced high risk, they historically formed mutual insurance companies to lower the risk. This translates to sharing the risk through the group ensuring that if one business had a bad year, they would not be at a complete loss. It does mean that some of the group members may earn a smaller share of profits to help counterbalance the lower performance of others. To me, this only makes sense if the group is diversified. Coming back to a concrete example of farmers, if this is a group of corn farmers from Illinois within 50 square miles of each other, I would guess that if one corn farmer suffered a loss due to poor weather conditions, all the other farmers would also have a poor year. However, if you had a group of corn farmers from all over the world perhaps weather and geopolitics as well as other risks maybe better distributed out. From this question, when people are determining who can join what mining pool, will they ask about location/hardware/costs as a factor?

Mining Pool: What is that?

A mining pool is mutual insurance for Bitcoin miners. It is a group of miners that form a pool and all attempt to mine a block with a designated coinbase recipient who is called the pool manager. Irrespective of who find the block, the pool manager receives all the rewards and then will evenly distribute it to all the participants based on some criteria, ideally ho much work each participant actually performed. The pool manager will also take a cut for managing the pool as well as keep the trust that each party has with them. They are responsible for accurately defining the payout criteria to each member. The book suggests that miners can prove their work by outputting mining shares which I will expand upon below.

Bitcoin mining pools are collections of Bitcoin miners who have the same strategy, group up to get a block solved, and share on the same reward. The reward sharing will depend on miner’s power contribution and the method that they are exercising towards Bitcoin mining. https://www.bitcoinminer.com/pools/

Mining shares: manner of defining miner’s work

Mining shares is a way that miners can probabilistically prove how much work they are doing by outputting shares or near-valid block. Near valid blocks means how close to the target number were you. The targets is usually some number that begins with many zeros (67 zeroes). A mining share may be valid if it is a number that contains 40 – 50 zeroes.

The pool manager will also run Bitcoin nod, collect transactions, and assemble them into a block. The manager will send their address and send the block to all participants of the pool. The pool participants can also work on this block and prove that they’ve been working by sending in shares. Once a valid block is found, the pool manager distributes the reward in proportion to the amount done. Thus, the winner of the block will only receive this average amount based on their work not based on if they were the winner or not.

Pool Manager: What criteria can they use to calculate pay?

The lecture describes two common approaches though I’m sure many more exist: pay-per-share and proportional.

Pay-per-share Method

The first is pay-per-share where the manager pay a flat fee for every share above a certain difficulty for the block that the pool is working on.
Miners send their shares to the pool manager right away and get paid without waiting for the pool to find a block. This works really well for the miner but moves all the risk to the pool manager. Because of this, pool managers will charger higher fees than other models as a reward for taking on so much risk. There is also no incentives for miners to send valid blocks to pool managers in that they can discard valid blocks and still keep getting paid. This means that a mining pool can keep paying out miners but the pool manager will never get a full block reward and likely will be running at a complete loss.

Proportional

The second is the proportional which the amount of payment depends on whether the pool actually found a valid block. Every time a valid block is fund, the rewards from the lock are distributed to the members proportional to how much work the miners actually did. Thus risk is not solely on the pool manager this time. If the pool is large than the variance of how often the pool finds blocks is low. There is lower risk for pool managers since they only pay out when valid blocks are found and thus they don’t risk overpaying people and miners are incentivized to send all blocks to the pool manager. Thus there is more work for the pool manager to verify, calculate, and distribute rewards. From the information they gave, it seems like using the proportional method makes the most sense for certain periods of time if you can get miners to say they will stay with the pool for a certain time interval.

Luke-jr approach

Luke-jr method is different because there is no management fee. Miners only get paid once they hit some minimum threshold usually 1 BTC. Thus you don’t make as much money when you are first starting out because of this minimum threshold. One thing that’s interesting is the Luke-Jr ( luke-jr) is the name of a real person. Luke Dashjr is a Bitcoin core developer and he founded the Eligis mining pool.

Issues like Pool Hopping

Pool hopping means switching between different mining pools at different times. There is some strategy involved though. The book mentioned that a miner may try mining in a proportional pool early in the cycle because the rewards per share are relatively high and then switch to the pay-per-share pool later in the cycle when the expected rewards are lower. As a result of this pool hopping, other more complicated schemes exist ie “pay per last N shares submitted”.

Mining Pool Protocols

Mining pool protocols is the mechanism that pool managers use to communicate with their members. There needs to be communication between the pool and the miners because pools need to provide work to the miners, collect their results, as well as ensure efficiency with the mining. The lecture mentions three mining protocols: getblockshare, getwork, and stratum. The simple getwork mining protocol just issued block headers for miners to solve. Thus, miners knew little about what was in the block and the pool operator was responsible for deciding which transactions were accepted. I think getblockshare is an error and that lecturer meant getblocktemplate. The getblocktemplate creation to the miner though the pools would set up the rules. While this still leaves a loop hole for fraudulent behavior from pools, the security is more decentralized in this fashion. Stratum is more of a open source client-server “overlay” protocol and is used by Electrum. Stratum replaced getwork in 2012. According to slushpool, Stratum resolves some earlier issues with getwork. Because it’s more of a line-based protocol using a TCP client with JSON-RPC, people don’t need to rely on HTTP overhead. The lecturer did not touch too heavily beyond this but I will definitely be looking more into this topic.

People have wanted to make these mining protocols standardized because they are important to the Bitcoin ecosystem. Certain hardware systems support specific protocols which lowers the barrier to entry for miners in terms of knowing how to setup a mining protocol.

Historical Context regarding Mining Pools

Mining pools first started in 2010 during the GPU era of bitcoin mining. Slushpool claims to be the first bitcoin mining pool starting in December 2010. Also by 2014, 90% of mining is pool based. There are monopolies in the Bitcoin mining pool which played a role in the SegWit issue.

Wrap-Up

Overall, the lecturer wraps up with the pros and cons. The positive as from the beginning of this article, pools reduce the risk and make it more predictable allowing for smaller miners to participate. Also, more miners end up using updated validation software since the pool managers are responsible for this. The negatives are that mining pools support centralization as well as discourage miners from running full nodes.

PHP Code Snippets Powered By : XYZScripts.com