Privacy issues on pools are almost entirely ā€œwhat IP is connecting, from whereā€ (as this likely lets you find the physical farm, which is by far the biggest concern with pools). Changing the payout scheme to have more privacy might also seem like it would prevent the pool from knowing the exchange a specific miner uses, but in practice each miner gets a fairly specific amount paid out, so the pool can match payouts with miners. Sure, the miner could go to substantial effort to hide their activities (like taking payout to another ecash mint) but (a) that’s likely to be relatively rare so it’ll stick out anyway and (b) they could do that just as well if the pool just does lightning payouts or even on chain payouts.

I’m not really sure where ā€œsimplifies accountingā€ even comes from, tbh. Accounting for a pool isn’t complicated? You just, like, keep track of a share count for each user. Even with a fancy payout scheme you’d have to do that anyway, if only because users want to see it in a fancy dashboard. So fancy payouts are just added complexity.

Of course pools *should* do payouts in ways that increase payout frequency so that small miners have less outstanding balance with a pool at any time, but making shares ecash tokens is substantially overkill.

Reply to this note

Please Login to reply.

Discussion

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.

The eHash tokens (1token = 1share) need to be redeemed first by the miners, before they can be traded.

So, the pool needs to send them *somewhere* - otherwise they remain on the pool's books.

The tokens are probably locked to the miner's npub until he withdraws - which is an "account" (same as some pool use Bitcoin addresses as accounts)

Right?

> The eHash tokens (1token = 1share) need to be redeemed first by the miners, before they can be traded.

No, that is the entire value proposition of eHash. Trade it before it matures.

> The tokens are probably locked to the miner's npub until he withdraws

Again, no. The miner submits a blinded message (random number) with each share. The mint returns a blind signature over the blinded message. The miner unblinds it to get a valid signature from the mint's private key that commits to a secret value that the mint has never seen before. In order to redeem the token, the miner or whoever they have traded with presents the unblinded secret + unblinded signature. The mint has never seen this value before but it knows with cryptographic assurances that it is a valid ecash token.

"trade it before it matures"

1) how can I, the user (=miner), trade something I have no possession of??

The token either resides in the mint (=is not yet redeemed by the miner), or is already redeemed by the miner meaning the miner has been paid already.

2) The pool runs the mint? Or is the mint a separate party?

PPS: how the fuxk is i quote respond in amethyst?

Ecash lets the mint custody some value and issue a bearer asset IOU in exchange for the custodied value. It's digital free banking. https://en.wikipedia.org/wiki/Free_banking

The hard money value is custodied by the mint. The bearer asset ecash token is custodied by the user. I hope that is clear.

In my model the pool runs a mint. They are one and the same.

> PPS: how the fuxk is i quote respond in amethyst?

lol I just manually do it. "> message" is email formatting for a quote. Some nostr clients respect, some don't. 🤷

I know what ecash is, thx šŸ˜‰

When the miner does work (submits shares), the pool/mint credits him with eHash tokens in his book.

They remain in the pool's book (custody), until the miner withdraws them; that can be once a day, once an hour, whatever.

My question was/is, how would the miner be able to trade this eHash token *when it is still in custody with this pool*??

He has nothing in hand, other than a promise (which he can't even prove). Who would trade for this?? They would trade for an IOU (from the miner) of an IOU (from the pool)

You are making assumptions and running away with them. Slow down and think it through, Hoss.

> When the miner does work (submits shares), the pool/mint credits him with eHash tokens in his book.

correct

> They remain in the pool's book (custody), until the miner withdraws them; that can be once a day, once an hour, whatever.

Currently, mints do not expire ecash tokens. This is unsustainable and it doesn't scale. We are going to a place with expiring ecash tokens. Mark my words. In my model, all eHash tokens expire a fixed amount of time after the token fully matures. If the user doesn't redeem it for ecash in time, the value is lost.

> My question was/is, how would the miner be able to trade this eHash token *when it is still in custody with this pool*??

As explained in my previous email, there are two assets being custodied. The user custodies a bearer asset token. An IOU. The pool custodies the proof of work share while it accrues value from each block the pool finds in the maturity window. The user can hold or trade the IOU while the mint keeps track of the proof of work share. I hope this is clear now.

> He has...a promise (which he can't even prove).

All pool and mint operations will be verifiable after the fact.

> Who would trade for this??

Any market maker seeking privacy or willing to take on a little risk for a larger bitcoin payout would be incentivized to buy these tokens. Any miner seeking access to immediate liquidity would be incentivized to sell them.

> All pool and mint operations will be verifiable after the fact.

This is an understatement. Miners can actually prove the value backing their share before it matures or is redeemed. Although, if they trade it away they lose the ability to fully verify it.

They can even prove what block template they were mining on. And I have some ideas on how to leverage this. ;-)

> The user custodies a bearer asset token.

No. The bearer asset token (eHash) is minted by the mint (=pool). And yes, that balance accrues, then more shares the miner submits. But the token

But these tokens remain in custody with the pool - until the miner withdraws them. Then, and only then, he can trade them.

Up until then (when he eventually withdraws the token and therefore takes ownership of them) he can only trade claims to the tokens. Hence my comment "he can trade IOUs of IOUs".

Now the core question: Why would anyone trade for these claims to the token (who are then claims to actual Bitcoin)???

Firstly, the miner would have to prove to the buyer that he is entitled to these token that are currently accruing with the pool. So a) there has to be some record, some ledger (account) at the pool level to keep track of how is owned what. And b) the miner has to proove to/convince the buyer that he is actually the person who is owed this token balance. (How?)

Secondly, even if we assume the miner were to find a buyer for these IOUs of IOUs, they are less worth than actual bitcoin; they'd trade for 90cents on the dollar. Why on earth would any miner sell his bitcoin at a discount?

"Need for immediate liquidity" you say???? Are to you telling me there are miners how have intra-day liquidity requirements, such that they would be forced to sell at a discount??

Because even now, any miner/seller can already get payouts on a daily basis via Lightning (https://academy.braiins.com/en/braiins-pool/faqs/rewards/#are-there-any-limits-for-lightning-payouts)! And keep 100% of his bitcoin, instead of 90% (or whatever the discount would be at which he can sell). Or every ~1.5day if they use BOLT12 payouts at OCEAN.

Bottom line - I still dont see why this construct would make sense

Keep noodling on it, maybe it will make sense one day. I'm not gonna wait for you. I'll be busy building the future.

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.

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. šŸ¤™

I’m not sure if there’s a repo or where it is tbh, you should ask the SRI folks!

I believe DEMAND’s work is related/intends to use the protocol, though.