原始文献 / 论坛帖 / Re: Cooperative mining

Re: Cooperative mining

Bitcointalk · 2010-11-28 16:03:30 UTC

AuthorSatoshi Nakamoto
TitleRe: Cooperative mining
Date2010-11-28 16:03:30 UTC
ForumBitcointalk · 原文

ribuck 的描述很到位。

矿池运营者可以改自己的 getwork,多收一个参数:份额打到哪个地址。

对矿池运营者来说,简单的做法是等到下一个区块被找到,再按比例分配:
用户的近命中数/所有人的近命中总数

这样起步更简单、更安全。好处是同一个用户的多次命中可以合并成一笔交易。你命中的很多通常来自同一批人。

即时满足的做法是每个近命中立刻按固定金额支付,运营者承担随机性风险——找到区块前近命中可能多也可能少。

不管哪种,提交解出区块那次命中的用户应该额外拿一笔,比如 10 BTC。

新用户甚至根本不需要比特币软件。他们可以下载一个矿机,在 mtgox 或 mybitcoin 上开个账户,把充值地址填进矿机,指向任何人的矿池服务器。矿机说找到东西后,过一会儿账户里就会多出几个币。

矿机作者最好确保永远不误报近命中。用户会靠这个检查矿池运营者有没有作弊。如果矿机错误地说找到了,用户去账户里一看没有,就会迁怒矿池运营者。

英文原文

ribuck's description is spot on.

Pool operators can modify their getwork to take one additional parameter, the address to send your share to.

The easy way for the pool operator would be to wait until the next block is found and divy it up proportionally as:
user's near-hits/total near-hits from everyone

That would be easier and safer to start up.  It also has the advantage that multiple hits from the same user can be combined into one transaction.  A lot of your hits will usually be from the same people.

The instant gratification way would be to pay a fixed amount for each near-hit immediately, and the operator takes the risk from randomness of having more or less near-hits before a block is found.

Either way, the user who submits the hit that solves the block should get an extra amount off the top, like 10 BTC.

New users wouldn't really even need the Bitcoin software.  They could download a miner, create an account on mtgox or mybitcoin, enter their deposit address into the miner and point it at anyone's pool server.  When the miner says it found something, a while later a few coins show up in their account.

Miner writers better make sure they never false-positive near-hits.  Users will depend on that to check if the pool operator is cheating them.  If the miner wrongly says it found something, users will look in their account, not find anything, and get mad at the pool operator.