No matter what you do you still have an “account”, even if it’s not a formal concept. If you have a (group of) miners connected over TCP to the pool, that’s basically an account. You also have to ultimately withdraw the ecash tokens and turn them into bitcoin. You aren’t going to do that one token at a time (fees would dominate, even if you’re withdrawing to another ecash mint over lightning), which again basically creates an “account”. You’re just playing semantics here.
Ecash enables accountless mining pools. I think your mind is stuck in the account based model and this thinking leads you to false conclusions.
As nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg said, pool redemptions decouple submitted work from redeemed value. The pool won't be able to link these two because eHash tokens can be freely traded before redemption. The value represented by a proof of work share can go through any number of splits, joins, and trades before it is redeemed. How do you disentangle that using IP tracking? You could try, but if there is any significant volume...good luck with that.
BOLT12 and on-chain addresses just add the account aspect back in. This is a strict reduction in privacy for the user. They can certainly choose this option if the pool offers it but in terms of privacy it is better to receive ecash mining rewards and spend it directly. This way all your activities occur within the anonymity set of the ecash mint.
The ecash model simplifies accounting because the pool no longer needs to track the work of every user that connects to it. Instead, the pool accounts for all shares within a time window and that's it. Instead of maintaining hundreds or thousands of accounts in perpetuity the pool manages one 'account' per hour with a prearranged start and end date. I prefer to think of them as contracts. When the contract end date approaches all the assets (mining shares) and liabilities (eHash tokens) of the contract can be zeroed out and removed from the books. The pool never needs to carry a balance for users that have not met their withdrawal threshold.
This is a dramatic simplification in accounting because it removes an entire class of liabilities that need to be tracked. The business owner no longer needs to be concerned with unredeemed shares.
Discussion
As for “it simplifies accounting”, I think you’re wayyyyy overthinking the complexity of accounting in a pool. It’s a really trivial Postgres DB and that’s it. Most of the complexity is to provide additional features users want like hashrate monitoring, device monitoring, etc. that obviously doesn’t change since users still want that info!
Matt, you are playing semantics not me.
> it removes an entire class of liabilities that need to be tracked. The business owner no longer needs to be concerned with unredeemed shares.
This is the actual win. It simplifies life for the pool operator and reduces barriers to entry as a new mining pool.
> Most of the complexity is to provide additional features users want like hashrate monitoring, device monitoring, etc. that obviously doesn’t change since users still want that info!
Yes. And this is a dumb model. We can do better.
nostr:note1h29j4dt3kzreamzmpg8u9xkzxmwxnjwv8x4y0hmetg7yuqjmjq9sp29flx
> > it removes an entire class of liabilities that need to be tracked. The business owner no longer needs to be concerned with unredeemed shares.
WHAT?! No pool should ever, ever, ever not track the total liabilities in each ecash epoch. Sure, they can *in theory* stop tracking individual shares, but they still need to track the total shares and the shares redeemed to ensure bugs in the ecash system don’t bankrupt them.
> we can do better
Sadly, users want, like, a UI that tells them their hashrate and monitors their devices and such. That should be run locally, on that I assume we agree, but actually building that is the hard part here, not anything related to ecash. The ecash part doesn’t improve complexity here, you move the tracking locally but you still have to build it (and it’s harder to build cause you have to build it to run on the miners end)!
> No pool should ever, ever, ever not track the total liabilities in each ecash epoch.
You are jumping to conclusions. The pool tracks liabilities with absolute precision. The value add for the pool is that expiring ecash forces users to exit their position and claim their rewards. This allows the pool to zero out their liabilities in a rolling time window fashion.
> actually building that is the hard part here
Free and open source software means I can build it once and give it away to the world for free.
> You are jumping to conclusions. The pool tracks liabilities with absolute precision. The value add for the pool is that expiring ecash forces users to exit their position and claim their rewards. This allows the pool to zero out their liabilities in a rolling time window fashion.
This isn’t a unique feature of ecash. The pool could do this today if they wanted. Similarly they could not do it in an ecash system, if they want.
> FOSS means I can build this once
True, and to be clear I think this is something that should be built and would be great for the mining ecosystem unrelated to ecash! If miners start doing monitoring locally pools can track less things and that’s better for everyone. I’m still very skeptical that the last step of jumping to ecash-based shares is useful.
> they could not do it in an ecash system
Not sure I follow. This is possible and I am building it.
> I think this is something that should be built and would be great for the mining ecosystem unrelated to ecash! If miners start doing monitoring locally pools can track less things and that’s better for everyone.
Yes. It is orthogonal to eHash, (something you helped me realize :) but this is the tech we need to save bitcoin.
Nobody else has built it so I will build it. I'm gonna need help, tho.
I plan to elaborate at nostr:npub1dwah6u025f2yy9dgwlsndntlfy85vf0t2eze5rdg2mxg99k4mucqxz7c52 in May.
> Not sure I follow. This is possible and I am building it.
I was pointing out that liability expiry is unrelated to ecash. Pools can define liability expiry any way they want in their ToS. With or without ecash.
> local mining monitoring
Awesome! Glad it’s being built. Way too many years in the process… Have you chatted with the Sv2 folks about this? They have a protocol (starting to be) designed for auditing what shares you submitted that they want to standardize for proxy or device -> local monitoring agent.
You mean this repo? https://github.com/demand-open-source/share-accounting-ext
We are planning to migrate to a SRI extension using the share accounting extension as a model. I wasn't aware that it could be used on a proxy. That's pretty sick. 🤙