LearnBitcoin

Bitcoin Dev Archive 2015

Decentralized Improvement Proposals

5 messages, 30 Dec 2015 to 3 Jan 2016. Started by Tomas.

Tomas (2), Luke Dashjr (2), Rusty Russell

Permalink Original thread on gnusha.org

Tomas permalink original

In an attempt to reduce developer centralization, and to reduce the risk of forks introduced by implementation other than bitcoin-core, I have drafted a BIP to support changes to the protocol from different implementations.

The BIP can be found at: https://github.com/tomasvdw/bips/blob/master/decentralized-improvement-proposals.mediawiki

I believe this BIP could mitigate the risk of forks, and decentralize the development of the protocol.

If you consider the proposal worthy of discussion, please assign a BIP-number.

Regards, Tomas van der Wansem

Luke Dashjr in reply to Tomas permalink original

On Wednesday, December 30, 2015 4:35:17 PM Tomas via bitcoin-dev wrote:

Quoted text (4 lines)
> In an attempt to reduce developer centralization, and to reduce the risk
> of forks introduced by implementation other than bitcoin-core, I have
> drafted a BIP to support changes to the protocol from different
> implementations.

The premises in Motivation are false. BIPs are required to have a reference implementation, but that implementation need not necessarily be for Bitcoin Core specifically.

The specification itself looks like an inefficient and bloaty reinvention of version bits.

Luke

Tomas in reply to Luke Dashjr permalink original
Quoted text (3 lines)
> The specification itself looks like an inefficient and bloaty reinvention
> of
> version bits.

The actual assignment of version bits isn't clear from the specification. Are you saying that any implementation that wants to propose a change is encouraged to pick a free version bit and use it?

Furthermore, my proposal addresses the danger of forward-incompatible changes; a hard-fork can no longer occur as every implementation will agree on the active the set of rules even if it has not implemented them. This seems to be lacking in the version bits proposal.

Tomas

Luke Dashjr in reply to Tomas permalink original

On Wednesday, December 30, 2015 6:22:59 PM Tomas wrote:

Quoted text (6 lines)
> > The specification itself looks like an inefficient and bloaty reinvention
> > of version bits.
>
> The actual assignment of version bits isn't clear from the
> specification. Are you saying that any implementation that wants to
> propose a change is encouraged to pick a free version bit and use it?

That should probably be clarified in the BIP, I agree. Perhaps it ought to be assigned the same as BIP numbers themselves, by the BIP editor? (Although as a limited resource, maybe that's not the best solution.)

Quoted text (4 lines)
> Furthermore, my proposal addresses the danger of forward-incompatible
> changes; a hard-fork can no longer occur as every implementation will
> agree on the active the set of rules even if it has not implemented
> them. This seems to be lacking in the version bits proposal.

I don't think that's possible. First of all, a hardfork can always occur, since this is something done by the economy and not (even possibly opposed to) miners. Furthermore, consider the change affecting how further rule changes are made, such as a PoW algorithm change.

Luke

Rusty Russell in reply to Luke Dashjr permalink original

Luke Dashjr via bitcoin-dev <bitcoin-dev@lists•linuxfoundation•org> writes:

Quoted text (11 lines)
> On Wednesday, December 30, 2015 6:22:59 PM Tomas wrote:
>> > The specification itself looks like an inefficient and bloaty reinvention
>> > of version bits.
>>
>> The actual assignment of version bits isn't clear from the
>> specification. Are you saying that any implementation that wants to
>> propose a change is encouraged to pick a free version bit and use it?
>
> That should probably be clarified in the BIP, I agree. Perhaps it ought to be
> assigned the same as BIP numbers themselves, by the BIP editor? (Although as a
> limited resource, maybe that's not the best solution.)

I thought about it, but it's subject to change. Frankly, the number of deployed forks is low enough that they can sort it out themselves. If we need something more robust, I'm happy to fill that role.

Cheers, Rusty.