Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update the BIP Process #2

Open
wants to merge 116 commits into
base: master
Choose a base branch
from
Open

Update the BIP Process #2

wants to merge 116 commits into from

Conversation

murchandamus
Copy link
Owner

@murchandamus murchandamus commented May 13, 2024

This BIP proposes a successor to BIP-2 by defining an updated BIP process.

murchandamus pushed a commit that referenced this pull request May 13, 2024
add clarifying note about the current opcode
@murchandamus murchandamus force-pushed the 2024-05-update-process branch 4 times, most recently from 180c832 to f9017d4 Compare June 24, 2024 19:22
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
Copy link

@jonatack jonatack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First (somewhat superfical) pass, didn't yet compare to BIP 2 or go deeper on the changes.

The "Changes from BIP-2" section is an excellent idea (didn't verify it yet).

Edits:

  • I like the statuses simplification
  • I dislike the "champions" usage, prefer "authors"
  • Would be good to use one single format, e.g. BIP2 vs BIP 2 vs BIP-2, in this BIP.

bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
Copy link

@ajtowns ajtowns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
Copy link
Owner Author

@murchandamus murchandamus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @jonatack and @ajtowns. Just some first comments, I’ll continue work on this on Friday.

## Rationale

[^astroturfing]: **What does it mean to be focused on Bitcoin the currency?**
Proposals to astroturf on the Bitcoin network to store data, bootstrap their own consensus mechanism, or facilitate
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I want to get rid of that underspecified requirement. Happy to add one or multiple concrete criteria that can be evaluated more objectively.

bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
Copy link
Owner Author

@murchandamus murchandamus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Took most of the suggestions, except where otherwise stated or the comment is not resolved. I’ll try to get more input on the BSD-license thing and think more about the open comments.

Thanks for your input @jonatack and @ajtowns

bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
@murchandamus
Copy link
Owner Author

murchandamus commented Jul 9, 2024

I should now have addressed all the feedback

@murchandamus murchandamus force-pushed the 2024-05-update-process branch 3 times, most recently from 905571a to 1f3e27b Compare July 12, 2024 00:28
Copy link

@real-or-random real-or-random left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More soon.... :)

bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
@real-or-random
Copy link

Regarding scope, here's a different attempt:

  • "The scope of the BIPs repository is limited to BIPs that are not in conflict with the fundamental principle that Bitcoin constitutes a peer-to-peer electronic cash system."

Or a variant:

  • "The scope of the BIPs repository is limited to BIPs that are not in conflict with the fundamental principle that Bitcoin constitutes a peer-to-peer electronic cash system for the bitcoin currency.

It may be worth discussing this aspect (and other "large" topics) in separate issues.

@jonatack
Copy link

  • that are not in conflict

What constitutes "in conflict" may need clarifying.

Copy link

@jonatack jonatack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WIP (will comment when I've finished reviewing this version).

bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Show resolved Hide resolved
@jonatack
Copy link

Note that the top-level README would need to be updated.

Copy link
Owner Author

@murchandamus murchandamus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I have addressed all review feedback, please let me know if I overlooked something. Still have a few open todos like the scope.

bip-update-process.md Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Show resolved Hide resolved
bip-update-process.md Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
bip-update-process.md Show resolved Hide resolved
bip-update-process.md Outdated Show resolved Hide resolved
@murchandamus
Copy link
Owner Author

Note that the top-level README would need to be updated.

I made updates to the README to match the new process.

@murchandamus murchandamus force-pushed the 2024-05-update-process branch 2 times, most recently from 2573a79 to 914b9a8 Compare September 16, 2024 22:26
@murchandamus
Copy link
Owner Author

Draft is an adjective, though?
[…]
For me, "draft" sounds better than "preliminary" as I associate draft with documents and preliminary with meetings or contests or an introduction.
[…]
* Draft - a draft proposal, still being worked on

Okay, I am convinced that it’s simply the best term for the first status. Let’s go with Draft.

"Active" is fine, but perhaps a little weird for non-consensus things? Does it really make sense to say BIP 387 is "active", if you aren't familiar with this BIP's proposed definition?
[…]
* Deployed - a deployed proposal, one that's not only implemented, but that has implementations actively deployed and used on the network

I don’t feel strongly about this. I would read "Active" as shorthand for "in active use"/"still relevant for the Bitcoin community" in this context. On the other hand, "Deployed" kinda sounds odd for an Informational BIP and maybe even a Process BIP. I’ll stick to Active for now.

* Complete - a complete proposal, maybe it shouldn't be adopted, maybe it should be changed, but it's not missing anything

Also ambivalent on that. "Complete" both sounds too advanced in the sense that something no longer needs changes, and orthogonal in the sense that a Draft could feature all relevant sections and comprehensively address a topic before an author is ready to recommend a proposal for deployment. I have reverted to the term used in BIP 2, and call the status now "Proposed" again.

@murchandamus
Copy link
Owner Author

Regarding the use of "Bitcoin" vs "bitcoin" in this document, perhaps define the difference or settle on one of the two.

I now only capitalize bitcoin in proper nouns.

@murchandamus
Copy link
Owner Author

murchandamus commented Sep 20, 2024

Regarding scope, here's a different attempt:

  • "The scope of the BIPs repository is limited to BIPs that are not in conflict with the fundamental principle that Bitcoin constitutes a peer-to-peer electronic cash system."

Or a variant:

  • "The scope of the BIPs repository is limited to BIPs that are not in conflict with the fundamental principle that Bitcoin constitutes a peer-to-peer electronic cash system for the bitcoin currency.

It may be worth discussing this aspect (and other "large" topics) in separate issues.

This suggestion from me (further above) has been mostly ignored so far. @murchandamus What's your take on this? (edit: And of course, what do others here think?)

@real-or-random: Thanks for resurfacing that comment. I had lost track of it. I like the gist of this suggestion, but I agree with @jonatack, that "in conflict" may need to be specified further. By itself either seems too inconclusive.

What do you think about combining it with the current state of that section like this:

What is the scope of the BIPs repository?

The BIPs repository is focused on information and technologies that aim to support and expand the utility of the bitcoin currency. Related topics that are of interest to the bitcoin community may be acceptable. Proposals that undermine the fundamental principle that Bitcoin constitutes a peer-to-peer electronic cash system for the bitcoin currency are out-of-scope.

@murchandamus
Copy link
Owner Author

I should now be caught up with all the review comments. Please let me know if I have overlooked something.

@murchandamus
Copy link
Owner Author

Please excuse if I may be slow to reply, I have some travel coming up.

@ajtowns
Copy link

ajtowns commented Sep 21, 2024

"Active" is fine, but perhaps a little weird for non-consensus things? Does it really make sense to say BIP 387 is "active", if you aren't familiar with this BIP's proposed definition?
[…]

  • Deployed - a deployed proposal, one that's not only implemented, but that has implementations actively deployed and used on the network

I don’t feel strongly about this. I would read "Active" as shorthand for "in active use"/"still relevant for the Bitcoin community" in this context. On the other hand, "Deployed" kinda sounds odd for an Informational BIP and maybe even a Process BIP. I’ll stick to Active for now.

Hmm, maybe "In use" would be more obvious?

"Complete" would make more sense to me as the final state for a successful Informational BIP than any of "Proposed", "Ready", "Preliminary", "Active", "Deployed" or "In Use", for whatever it's worth.

(I guess I think of BIP50 or BIN24-5 as the sort of thing that would be an Informational BIP in this new regime; the rest of the current BIPs marked Informational seem more like they'd be described as Specifications under this proposal)

  • Complete - a complete proposal, maybe it shouldn't be adopted, maybe it should be changed, but it's not missing anything

Also ambivalent on that. "Complete" both sounds too advanced in the sense that something no longer needs changes,

I included the chatgpt snippet to explain why I don't think that's really the right impression to take from the phrase "complete proposal". Not sure if there's a language barrier there; maybe it would help to think of it akin to a "complete breakfast"; you could still ask for your eggs to be cooked differently, or for an entirely different meal, or decide to add hot sauce to it.

But even without that, the "proposed/ready/whatever" status already says the proposal should no longer "need" changes anyway: "Subsequently, the BIP’s content should only be adjusted in minor details," so that doesn't seem that inconsistent to me? Conversely, if you know that a BIP does need changes, doesn't that already disqualify it from being "Proposed" anyway? (If you did want to say "No longer accepts changes", that would be "Status: Immutable" or "Status: Final" or similar to me, but I'm happy this is moving away from that)

and orthogonal in the sense that a Draft could feature all relevant sections and comprehensively address a topic before an author is ready to recommend a proposal for deployment. I have reverted to the term used in BIP 2, and call the status now "Proposed" again.

If you're expecting review, then a proposal isn't complete until it's had that review, even if there don't end up being any changes as a result of the review.

Could also look at is as "what do the authors (or bip editors) think the status is?" rather than some platonically objective statement: if the proposal has all the sections, but the author isn't ready to recommend it (probably a fair description of BIP118 as it stands), then the author calling it a draft even if someone else things it's complete/ready-to-be-proposed should be enough to keep it as Draft. Probably likewise if the BIP editors are of that opinion, even if the author isn't.

given in such circumstances. Active Process BIPs may be modified indefinitely as long as a proposed modification
has rough consensus per the same criteria.[^living-documents]

##### Revisions
Copy link

@ajtowns ajtowns Sep 21, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be bumped up to "###" and moved to just before the "Adoption of Proposals" heading. Possibly also name it as "Changelog" instead of "Revisions" ? (Or rename the "Changelog" section as "Revisions"?)

Copy link

@harding harding left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One nit; otherwise LGTM.

__Discussion__: The Discussion header is used to point the audience to relevant discussions of the BIP, e.g. the mailing
list thread in which the idea for the BIP was discussed, a thread where a new version of the BIP was presented, or
relevant discussion threads on other platforms. Entries take the format "yyyy-mm-dd: link", e.g.
`2009-09-09: https://www.mail-archive.com/cryptography@metzdowd.com/msg10142.html`.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`2009-09-09: https://www.mail-archive.com/cryptography@metzdowd.com/msg10142.html`.
`2009-01-09: https://www.mail-archive.com/cryptography@metzdowd.com/msg10142.html`.

Copy link

@jonasnick jonasnick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This BIP is strict improvement over the existing process. Nice! Maybe it's the caffeine, but after reading this I feel inspired to write a BIP.


## Motivation

BIP 2 is over eight years old and was written when different concerns were pressing to the bitcoin community. The BIP 2

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I'm sure this has been discussed somewhere, but why change the spelling in BIP 2 from "Bitcoin" to "bitcoin"?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this has indeed been discussed above, perhaps it's worth adding a footnote that explains the convention used in this BIP.

them with the BIP number.
- The set of acceptable licenses was reduced to the ones previously used.

### Updates to existing BIPs should this BIP be activated

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be helpful to add a "Revision" field to the header preamble if a BIP already has a Changelog that complies with the semantic versioning inspired scheme specified in this BIP.


BIPs should be written in mediawiki or markdown[^markdown] format.

Each BIP must have a _Preamble_, an _Abstract_, a _Copyright_, and a _Backward Compatibility_ section. Authors should

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the reason for the "Backward Compatibility" section being mandatory? In many cases, BIPs propose an idea for which it is not clear what backward compatibility is supposed to mean as there's no existing way of doing things it could be meaningfully compared to. This seems to be a relic from BIP 2's focus on consensus changes.

For example, BIP 340 ("Schnorr Signatures") doesn't have a backward compatibility section. Also, it's not clear what backward compatibility means for BIP 327 ("MuSig2"), so the section ended up being quite artificial, just to meet the mandatory section requirement:

This document proposes a standard for the MuSig2 multi-signature scheme that is compatible with BIP340. MuSig2 is not compatible with ECDSA signatures traditionally used in Bitcoin.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this just a mistake? @murchandamus said that he'll only keep Preamble, Abstract and Copyright after I suggested to keep just these: #2 (comment)

__Layer__: The Layer header documents which layer of bitcoin the BIP applies to. See [BIP 123](bip-0123.mediawiki) for
definitions of the various BIP layers.

__Title__: A short descriptive title. Strongly preferred to be less than 50 characters long.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Is there a reason for not just saying "Must be" instead of "Strongly preferred to be"? This would also be more consistent with the "up to 50 characters" wording in the other parts of the BIP.

Comment on lines +20 to +23
The BIPs repository serves as a publication medium and archive for mature proposals. The repository’s visibility
facilitates the distributed consideration of BIPs by providing an established source to retrieve the latest versions of
BIPs. The repository transparently records all changes to each BIP and allows any community member to easily retain a
complete copy of the archive.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You write "BIPs repository" but "BIP process". I suggest "BIP repository" instead.


Just some style suggestions (this sentence felt a bit clumsy), feel free to cherry-pick and ignore. Don't worry, I'll calm down with these in later sections of the draft. :P

Suggested change
The BIPs repository serves as a publication medium and archive for mature proposals. The repository’s visibility
facilitates the distributed consideration of BIPs by providing an established source to retrieve the latest versions of
BIPs. The repository transparently records all changes to each BIP and allows any community member to easily retain a
complete copy of the archive.
The BIPs repository serves as a publication medium and archive for mature proposals. Through its high visibility, it
facilitates community-wide consideration of BIPs and provides a well-established source to retrieve the latest version of
any BIP. The repository records all changes to each BIP transparently and allows any community member to easily retain a
complete copy of the archive.

edit: I tried to be more verbose about style in the abstract than in the rest of the text, and only then I realized that this paragraph should be moved out of the abstract. Let me keep the style suggestions here nonetheless.

Comment on lines +25 to +26
The BIPs repository does not aim to track acceptance[^acceptance], adoption, or community consensus on BIPs except to
provide a quick overview of BIP statuses (see [Workflow](#workflow) below) to visitors.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The BIPs repository does not aim to track acceptance[^acceptance], adoption, or community consensus on BIPs except to
provide a quick overview of BIP statuses (see [Workflow](#workflow) below) to visitors.
The BIPs repository is not a tool to track acceptance[^acceptance], adoption, or community consensus on BIPs, beyond
providing a brief overview of BIP statuses (see [Workflow](#workflow) below).

Comment on lines +16 to +18
This _Bitcoin Improvement Proposal (BIP)_ provides information about the preparation of BIPs and policies relating to
the publication of BIPs. It replaces BIP 2 with a streamlined process, and may be amended to address the
evolving needs of the BIP process.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is the only paragraph that belongs in the Abstract. The other two paragraphs could be moved to a new subsection "What is the purpose of the BIPs repository?" or "What is the function of the BIPs repository?" (directly above or below "What is the scope of the BIPs repository?")

Comment on lines +30 to +31
BIP 2 is over eight years old and was written when different concerns were pressing to the bitcoin community. The BIP 2
process seems to have been fashioned to facilitate the design and activation of protocol changes. In the past years, BIPs

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/The BIP 2 process/The BIP process as defined in BIP 2 thus far

Comment on lines +32 to +33
more often describe interoperable features beyond the base protocol. We have had multiple debates about the role of
BIP Editors, and some aspects of the process specified by BIP 2 that did not seem to achieve the intended goal. This

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
more often describe interoperable features beyond the base protocol. We have had multiple debates about the role of
BIP Editors, and some aspects of the process specified by BIP 2 that did not seem to achieve the intended goal. This
more often describe interoperable features beyond the base protocol. There had been multiple debates about the role of
BIP Editors, and some aspects of the process specified by BIP 2 that did not seem to achieve the intended goal. This

(Who is "we"? Well, I know, my suggestion does not answer it, but I think the answer is not relevant in the end, so passive voice is appropriate here. Could also say "The community" instead if you prefer active voice.)

Comment on lines +298 to +303
BIPs that had attained Proposed status, i.e. that had been recommended for adoption, may be moved to Abandoned per
the author’s announcement to the Bitcoin Development Mailing List after not being opposed within 28 days. To successfully
oppose the move, at least one of the opposers must become the new BIP author for the BIP to remain Proposed. A BIP
can also be moved to Abandoned by the community if it has had Proposed status for at least one year, there is no
evidence of it being in active use, and its authors do not object or fail to respond, unless a new author volunteers
within four weeks.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
BIPs that had attained Proposed status, i.e. that had been recommended for adoption, may be moved to Abandoned per
the author’s announcement to the Bitcoin Development Mailing List after not being opposed within 28 days. To successfully
oppose the move, at least one of the opposers must become the new BIP author for the BIP to remain Proposed. A BIP
can also be moved to Abandoned by the community if it has had Proposed status for at least one year, there is no
evidence of it being in active use, and its authors do not object or fail to respond, unless a new author volunteers
within four weeks.
BIPs that had attained the Proposed status, i.e. that had been recommended for adoption, may be moved to Abandoned per
the author’s announcement to the Bitcoin Development Mailing List after not being opposed within 28 days. To successfully
oppose the move, at least one of the opposers must become the new BIP author for the BIP to remain Proposed. A BIP
can also be moved to Abandoned by the community if it has had Proposed status for at least one year, there is no
evidence of it being in active use, and its authors do not object or fail to respond, unless a new author volunteers
within four weeks.

28 days or 4 weeks? I know it's the same, but maybe pick one for consistency.

Comment on lines +341 to +343
If someone is interested in assuming ownership of a BIP, they should send an email asking to take over, addressed to the
original author and the BIP editors. If the author does not respond to email in a timely manner, the BIP editors will
make a unilateral decision (which may be amended should the original author make a delayed reappearance).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps they should send to the original author and the list? (We use the list for other announcements, so I think it makes sense to use it here too). Perhaps the original author has simply changed their email address, or someone on the list can point out how to reach the original author.

Want to specify a deadline here too?

Comment on lines +383 to +394
#### Recommended licenses

* BSD-2-Clause: [OSI-approved BSD 2-clause license](https://opensource.org/licenses/BSD-2-Clause)
* BSD-3-Clause: [OSI-approved BSD 3-clause license](https://opensource.org/licenses/BSD-3-Clause)
* CC0-1.0: [Creative Commons CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/)
* GNU-All-Permissive: [GNU All-Permissive License](http://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html)

#### Not recommended, but acceptable licenses[^licenses]

* CC-BY-4.0: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/)
* CC-BY-SA-4.0: [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)
* MIT: [Expat/MIT/X11 license](https://opensource.org/licenses/MIT)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there should be either

  • no distinction between recommended and not recommended at all,
  • or a rationale for why some are recommended and some are not. (A possible rationale could be that even CC-BY(-SA) can be annoying in practice, e.g., if people copy sections/tables from BIPs into source files.)

In any case, I think that the MIT is, for most purposes, virtually equivalent to BSD, and I don't see a reason to recommend one over the other, except maybe license proliferation. (But then, it's strange anyway that BIPs are often BSD but code in the ecosystem is often MIT, so you can make a point for either side...)

original author and the BIP editors. If the author does not respond to email in a timely manner, the BIP editors will
make a unilateral decision (which may be amended should the original author make a delayed reappearance).

## BIP Licensing

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we should also mandate a section / statement about other IP rights, if applicable. For example, I've seen this in cryptographic "competitions", e.g., CAESAR, whose goal was to find a standard for authenticated encryption:

Intellectual property: Full disclosure of all known patents, patent applications, planned patent applications, and other intellectual-property constraints relevant to use of the cipher. This section must include the following statement: "If any of this information changes, the submitter/submitters will promptly (and within at most one month) announce these changes on the crypto-competitions mailing list." Note that intellectual-property status will be taken into account in cipher evaluation; patented submissions are permitted, but submitters are advised that patenting a cipher is likely to reduce the level of interest in the cipher.

See https://competitions.cr.yp.to/caesar-call.html

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There could be a recommendation to use the GPLv3 or one of its succedaneous. It’s a bit of burn it with fire approach for patent issues that could grieve the free usage of bitcoin standards…so I don’t know if it’s the soundest piece of advice.

I think it would be worthy to have BIP licensing discussed openly on the mailing list in a thread of its own, rather to have this issue withholding the merge of this update to the BIP process. I guess there would be many stakeholders in the bitcoin ecosystem interested to this discussion and willing to put the ressources if there is a need to improve the current license for the BIP standards, myself included.

Comment on lines +362 to +371
It is also possible to license source code differently from the BIP text. An optional License-Code header is placed
after the License header. Again, each license must be referenced by their respective abbreviation given below.

For example, a preamble specifying the optional License-Code header might look like:

License: CC0-1.0
License-Code: MIT

In this case, the code in the BIP is not available under CC0-1.0, but is only available under the terms of the MIT
License.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest adding the recommendation that any source code files (or source directories) should specify their license, as is common in software (e.g., with a license header or a LICENSE/COPYING file). This makes sense because implementations are often copied without the rest of the BIP.

I also suggest making any "test vectors" / known input tests available under CC0 or GNU All Permissive. Everyone wants to copy test vectors in their implementations, so having them under a license different than your code is very annoying.

I also suggest allowing for "License-Code" to be something like "MIT (except where stated otherwise)" for complex cases, e.g., when files are under different licenses. A good example is the test vector thing. Then at least we don't need to bother with the header.

@real-or-random
Copy link

Regarding scope, here's a different attempt:

  • "The scope of the BIPs repository is limited to BIPs that are not in conflict with the fundamental principle that Bitcoin constitutes a peer-to-peer electronic cash system."

Or a variant:

  • "The scope of the BIPs repository is limited to BIPs that are not in conflict with the fundamental principle that Bitcoin constitutes a peer-to-peer electronic cash system for the bitcoin currency.

It may be worth discussing this aspect (and other "large" topics) in separate issues.

This suggestion from me (further above) has been mostly ignored so far. @murchandamus What's your take on this? (edit: And of course, what do others here think?)

@real-or-random: Thanks for resurfacing that comment. I had lost track of it. I like the gist of this suggestion, but I agree with @jonatack, that "in conflict" may need to be specified further. By itself either seems too inconclusive.

Hm, I think some uncertainty is unavoidable and even desired. The BIP editors have the trust of the community, and need to sometimes take decisions at their discretion.

But here's a variant, just a tiny bit more precise:
"The scope of the BIPs repository is limited to BIPs that do not oppose the fundamental principle that Bitcoin constitutes a peer-to-peer electronic cash system for the bitcoin currency."

I think "do not oppose" raises the bar for rejecting a BIP a bit, at least more than "in conflict". For example, putting a technology on top of Bitcoin (e.g., colored coins) would be an okay topic for a BIP. The same is true for OpenTimestamps. These are prime examples that we should discuss and try to evaluate the rules against. If you ask me, all of these are fine, but others have disagreed in the past (e.g., @sipa -- please correct me if I'm wrong).

* Layer: <Consensus (soft fork) | Consensus (hard fork) | Peer Services | API/RPC | Applications>
Title: <BIP title, up to 50 characters>
Author: <list of authors’ names and email addresses>
Status: <Draft | Proposed | Active | Abandoned>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK. With respect to the discussion about the different statuses and their naming (and at the risk of glossing over the preceding detailed discussions), ISTM that if the main goal is to simplify and reduce them, then the simplest change and easiest one to switch over to would be what you have here: keep the Draft, Proposed, and Active statuses as-is (without renaming them), and drop the five others in BIP2 (Deferred/Rejected/Withdrawn/Final/Replaced/Obsolete) in favor of Abandoned, provided the finer-grained precision of those five has not added sufficient value to keep them.

@ariard
Copy link

ariard commented Oct 1, 2024

I don’t have standing objections on this version of the update to the BIP process and I agree with Murch answer to my comments on the ML, that nominating BIP editors could be a new BIP process, of its own.

I share real-or-random’s opinion that we could think more about what BIP licensing is the most fruitful long-term for the ecosystem. Apart of the infamous CSW issue, historically there has been other licensing issues in the ecosystem, e.g the old ASICBOOST thing. Though I think we can have this discussion latter, and I don’t believe it’s a strong objection in finalizing this current update to the BIP process.

@real-or-random
Copy link

I share real-or-random’s opinion that we could think more about what BIP licensing is the most fruitful long-term for the ecosystem. Apart of the infamous CSW issue, historically there has been other licensing issues in the ecosystem, e.g the old ASICBOOST thing. Though I think we can have this discussion latter, and I don’t believe it’s a strong objection in finalizing this current update to the BIP process.

I agree, it's reasonable to stick to the currently proposed changes to the licensing section (plus any further feedback and improvements, of course), and postpone the larger discussion about legal stuff including patents.

@JeremyRubin
Copy link

from @jonatack's request to comment here:

I would like an editor/champion field as per bitcoin#1482, clarifying the difference between authorship and helping out / point of contact for edits.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.