I've gotten feedback from Adam Back that you actually don't need all 32 bits in the header for overt ASICBoost, so I'm modifying my proposal. Of the 32-bit version field, bits 16 to 23 are reserved for miners, the witness commitment stays as defined in BIP-141 except that it's now required. BIP9 then is modified so that bits 16 to 23 are now no longer usable. On Fri, Apr 7, 2017 at 3:06 PM, Jimmy Song wrote: > Hey everyone, This is an idea that I had about Segwit and Gregory's > proposal from yesterday that I wanted to run by everyone on this list. I'm > not at all sure what this would mean for non-upgraded nodes on the network > and would like feedback on that. This is not a formal BIP as it's a > modification to a previously submitted one, but I'm happy to formalize it > if it would help. > ---------------------------------------- > MotivationOne of the interesting aspects of Gregory Maxwell’s proposal is > that it only precludes the covert version of ASICBoost. He specifically > left the overt version alone. > > Overt ASICBoost requires grinding on the version bits of the Block header > instead of the Merkle Root. This is likely more efficient than the Merkle > Root grinding (aka covert ASICBoost) and requires way less resources > (much less RAM, SHA256 calculations, no tx shuffling, etc). > > If we combine Gregory Maxwell’s proposal with BIP-141 (Segwit) and add a > slight modification, this should, in theory, make ASICBoost a lot more > useful to miners and appeal to their financial interests. > The Modification > > Currently, the version bits (currently 4 bytes, or 32 bits) in the header > are used for BIP9 signaling. We change the version bits to a nonce-space so > the miners can use it for overt ASICBoost. The 32-bits are now moved over > to the Coinbase transaction as part of the witness commitment. The witness > commitment goes from 38 bytes to 42 bytes, with the last 4 bytes being used > as the version bits in the block header previously. The witness commitment > becomes required as per Gregory Maxwell’s proposal. > Reasoning > > First, this brings ASICBoost out into the open. Covert ASICBoost becomes > much more costly and overt ASICBoost is now encouraged. > > Second, we can make this change relatively quickly. Most of the Segwit > testing stays valid and this change can be deployed relatively quickly. > > Note on SPV clients > > Currently Segwit stores the witness commitment in the Coinbase tx, so > lightweight clients will need to get the Coinbase tx + Merkle proof to > validate segwit transactions anyway. Putting block version information in > the Coinbase tx will not impose an extra burden on upgraded light clients. >