Gm, miners in a pool should earn rewards paid out in ecash instead of a fully traceable entry in a postgres database. The mining pool doesn't need to know which miner produced how much hash rate and how much they withdrew, when, and to which wallet.
thats a good concept. any chance ocean or other pool might be interested?
There's a chance.
Ecash does not remove the postgres database or any pool visibility—the pool will still have (and must have) full visibility over shares submitted because it needs to do accounting and proper payouts according to those shares. Share accounting is also reward accounting, so the only improvement here is we are relying on a trusted mint to be a valid custodian of the Bitcoin, not just the pool (unless the pool is the mint, which kind of defeats the purpose of the ecash because the pool still has full visibility over the share accounting). I cannot see any additional benefit here, just an additional trusted third party…
How do you know your shares aren't being dilluted by the pool?
Equivalently stated, how do you know your reward is diminishing because another pool is block withholding your pool (results in share dilution in the same way as pool “share dilution”)? The answer is the same: you don’t. You just receive less money. However it’s in the pool’s best interest to reward miners the maximum they can or else miners leave to competitor pools with higher payouts. Riot left Braiins after a period of bad variance luck, and that could be because entropy, or potentially a little competitive block withholding. Thats the motivation for competitor pools to block withhold: ruin payouts in one pool so miners get a bad impression and switch pools. Mining pools have a principal-agent trust dynamic that is inherent to the distribution of work. Miners are trusted to perform honest work and pools are trusted to pay them for it. Adding ecash anywhere isn’t gonna change those dynamics because they are baked in. Bleeding edge innovation here is by Demand pool and Braidpool, with Demand being much closer to production ready transparent share accounting.
Look forward to reading up on Demand's protocol for share transparency. Will it be FOSS?
Not sure if FOSS spectically but it sure looks like they’re building everything public. Can check it out here: https://delvingbitcoin.org/t/pplns-with-job-declaration/1099
If there's no traceability, there's no way to ban miners who perform block withholding attacks. nostr:nprofile1qqsvvk9qy7qx2gzed6wazxtureunuxljam66za6yr3p02zc0qhz57jqpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgcwaehxw309ahx7um5wghxvmt59emkj73wvf5h5tcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs0dsl3l has recently written about this problem and potential solutions (e.g. oblivious shares, which alas requires an invasive hard fork).
Without the hard fork, I don't believe you can detect block witholding. auditibility with ecash blinded signatures is a good next step.
What auditability? I thought nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcpz4mhxue69uhkummnw3ezummcw3ezuer9wchsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0907cz8 was talking about eliminating miner identity, which prevents eviction of misbehaving miners. I'm all for anon mining, but pools that allow it now put themselves at risk of block withholding.
I mean the proof of liabilities schema. Publishing all "burned" ecash so clients can validate against it. Account based eCash or eHash is still private. You know how much you've issued to a specific account but have no way of know when that issuance comes back or who is holding it.
That seems like it could be compatible with banning withholders. Thanks!
There's some activity on this concept. It might even work. 😅
Also, how do you detect block witholding?
You detect it with statistical analysis. If Mallory is excessively unlucky, e.g. she's submitted 3x as many shares as necessary to find a block but none of her shares were blocks, you ban her.
Hmm. I'm no statistician but that sounds imprecise. And ban at the user account level?
It's very imprecise. Worse, it's only useful for individuals who contribute large amounts of hashrate, i.e. those who could reasonably solo mine. nostr:nprofile1qqsvvk9qy7qx2gzed6wazxtureunuxljam66za6yr3p02zc0qhz57jqpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgcwaehxw309ahx7um5wghxvmt59emkj73wvf5h5tcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs0dsl3l makes the point that the difficulty of preventing block withholding could be a significant contributor to limiting pool options: https://mailing-list.bitcoindevs.xyz/bitcoindev/Zp%2FGADXa8J146Qqn@erisian.com.au/
Hashers should not be rewarded only per share. Their reward should be connected to an actual block so that they have an incentive to check that the pool operator behaves well. But yeah, the operator does not need to know their identity. Maybe submit a new npub with each share? GN