Ecash TIDES using Cashu and Stratum v2

Open Questions

  1. What should the Proof of Assets a.k.a. hashrate validation protocol look like?

Can we build something that works for hashpool and traditional mining pools? Can we get some help from existing pools? :pray:

  1. What payout formula should we use? Basic PPLNS, TIDES, or some other tweaked PPLNS algorithm?

If the pool uses authentication I think we could even go back to proportional payouts. PPLNS was invented to prevent pool hopping but it would seem that an eHash free market could also solve this problem. So can we go back to proportional payouts in this scenario? What are the benefits? Is the juice worth the squeeze?

Post 1.0 Questions

  1. How to build a block template selection market?

The solution probably involves mining a share and selling it to the ‘block template purchaser’ (or transaction accelerator customer if you like to think in those terms) along with a merkle proof of the mining share.

  1. How do we minimize MEV or MEVil risk?

You can’t solve a problem that is poorly defined. I think we first need to do some fundamental research into the causes of MEV (or MEVil). I am confident that with the right foundational research we can put some basic restrictions in place to limit this possibility.

<soapbox> I do not believe the solution is to avoid building any software that could possibly enable spooky, undefined behavior. Bitcoin is permissionless, someone will build it (they might even get a free wizard NFT for their efforts). We are better off building it the right way first and setting the example to emulate. </soapbox>

  1. How to build a coinbase output market?

I have concluded that you can’t trustlessly pay for a coinbase output with eHash tokens because the tokens are indelibly tied to past block templates. How does one ensure that future block templates include the right coinbase output? Furthermore, how do you ensure the coinbase output has the right amount if eHash tokens have indeterminate value?

The only remaining option is for the pool to sell coinbase outputs directly for bitcoin. Which leads to my next question:

  1. How do we trustlessly and transparently funnel (most of) the profits from selling coinbase output to the miners?

If the purchaser is paying with an on-chain UTXO they can craft a transaction that pays the right amount directly to mining fees. This way all miners who contribute to the pool get to share in the profits. But how to prevent other pools from mining that transaction and stealing those fees? Easy peasy, put a connector output in the coinbase.

Well…it seems easy peasy but I can imagine a consensus rule that might prevent a graph cycle where a coinbase output pays to a transaction that pays fees into the coinbase. Has anyone ever tried to build something like this? Does such a rule exist?

I haven’t worked out a solution for coinbase output purchasers paying in ecash. Maybe the mint simply creates the transaction that flows entirely to fees? This is a half-baked idea. Let me know if you can think of a way to break it.