Oddbean new post about | logout
 👇 this but for mining pools

nostr:note1an8gwfppnt2r3capywz4euu6lrxjc2kjc0vetrwg4pner9qmx4yqafp9xh  
 Pablo did a nostr based ecash wallet. I often ponder how we have pools that are completely public and shares posted to nostr somehow. Then pools bid for shares or something. Doesn't work since coinbase payout is tied to the block. But I still ponder it.  
 The eHash is the proof? 
 Yeah but it's not redeemable until the block is found, at which point it is too late to convince other miners to include a UTXO in the template they mine on. You need to prove to the pool or to some miners that you own enough eHash to purchase that UTXO.

I think I just figured it out. You lock some eHash to a pubkey and the pool block template includes a coinbase output paying to that pubkey. As work continues towards the next block and shares get diluted the purchaser of the UTXO can swap eHash tokens to larger denominations.💥 ezpz 
 Will have to think that one through some. Especially when I'm not in a minivan for 6hrs 
 gary, it's time

https://m.primal.net/KYFn.png 
 Fine.  
 OK. Still don't fully grok it but I hadn't considered a 'swap' for consolidating smaller eHash. That's interesting to ponder.  
 Yeah I think that will be necessary to limit the cashu mint bandwidth after a block is found. Otherwise miners will all try to redeem gigabytes of ecash at the same time. I think a sliding scale of fees for denomination neatly solves this problem without locking out smaller miners. Smaller eHash tokens pay slightly higher fees, larger denominations pay less. This fee pays for the pool/mint bandwidth. From the miner perspective, optimal strategy is to swap eHash for the largest denomination before the next block is found. This can be made automatic in the miner/wallet client.

For coinbase UTXOs, I think you just specify a NUT-11 locking pubkey and set a boolean flag indicating you want an on-chain redemption. The eHash can only be redeemed by the pool with a signature from this pubkey, proving ownership. The pool will add a coinbase output paying to this pubkey in the next block template it sends out. There will be some edge cases where a slightly oldish block template gets mined, just make up the difference with eHash. Dealing with these edge cases will be the majority of the development work.

Not sure if we want to enable miners to BYO template. Probably not supported initially. But I think as long as the coinbase matches and the transaction fees are within acceptable bounds it should be doable. That's a v2 problem though.