CHIPs: A more detailed process recommendation

I keep asking this question and only getting opinions about what the process should be.

I’m quoting George Donnelly from a recent thread on Reddit, and it prompted me to write a few thoughts about the process and share my perspective

Following the process is no guarantee of success, and not following it doesn’t mean it can’t get implemented, and that it is a recommendation, not a rigid thing. We are not a corporate, we are FOSS grass-roots project which really cares about avoiding dictator capture or “process lawyers” appearing, like: “I followed the process, therefore you MUST do X.” or “He didn’t follow the process, therefore we MUST dismiss it just because.”

If an idea is good, it’s good on its own whether it followed a process or not. IMO, the process is there just to help it get into people’s heads, to better focus discussions about the idea, and assure everyone that there’s not something we’re overlooking about the idea, and to get help in shaping it better! I don’t like this be framed like an idea creator presenting it to some committee. Why shouldn’t members of this committee jump on the other side and help move the idea forward? After all, what we introduce into Bitcoin Cash is supposed to benefit us all, so help each other move good ideas forward! That’s what I see is already happening, so yay for that!

You will notice that different people have different ideas about the process, and that’s fine! Different people have differently wired brains and different things appeal to them. imaginary_username requires things to be more rigid. Thomas Zander would like to see things organically appear. Griffith is somewhere in between. emergent_reasons likes to let things… emerge :smiley: So what to do?

Just pick whatever strategy you think has the biggest chance of success and get started! Be proactive!

That’s what I did and it seems to be moving the ball. Is my way the best way? Probably not, I know I broke some norms annoyed some of you at the start, but then again I am me and someone else is someone else, and he’ll pick another way. There are many ways to get there, and you have to adapt along the way. We should not let this waiting on a process be a blocker. This is permissionless FOSS, you just do it the way you think it should be done, and maybe others will follow. And maybe it’s not enough to follow just 1 process, because different people require different forms when they’re thinking about an idea and you have to give it to them if you want to get in there.

We have to manage people’s attention spans, too. Present the idea in manageable pieces instead of one big document which will be intimidating to read. So I’ve been writing, a lot, casting a wide net of sorts, an then looking at what it caught, and it brought me some good discussions and I discovered what people’s main concerns were so that informed the way I wrote the CHIP. Learning by doing :slight_smile:

I couldn’t have invented group tokens on my own, but I could recognize their potential and value, and at that moment I felt responsibility to do something about it for the Bitcoin I care about, and that’s when I stopped being a bystander in this community. All of these CHIP discussions (I count 3 of them) were a great help in showing me the way.

1 Like

Reading the various opinions concerning the subject gives me the impression that many of the differences are driven by semantic connotations. As I see it, these semantic connotations revolve around the concept of process and the guarantees –or non-guarantees– of success that a particular project, action, or initiative can provide.

I won’t succumb to the temptation of copy-pasting the definition of process here. I’m sure if we stop for a minute to think about what a “process” is, we can all quickly come to a shared understanding or common ground.

We can say that having a process in place does not guarantee a solution of continuity, just as not having it does not guarantee the opposite, as well mentioned by @bitcoincashautist.

Even so, processes are proposed, discussed, and implemented in an exorbitant number of initiatives, whether corporate or FOSS –I don’t see these two as mutually exclusive, but just for the sake of the example– worldwide. The literature takes good care of the benefits of having processes with a certain degree of standardization. Although processes are not the philosopher’s stone by themselves, they can pave the way between the launch of an initiative and the goal to be achieved.

Once the aspect of around process and its benefits are solved, I suppose we fall into the realms of old human nature. In the end, we are all little machines working under the precepts of intentions, incentives, and rewards. Perhaps we should ask ourselves again about our intentions regarding this initiative, our incentives, and what rewards we hope to obtain, either for ourselves or for the Bitcoin Cash community.

I’m very much in line with the idea that the process is here to help spread ideas, to guide analysis and discussions. But for me, this needs to happen in a broad sense, not limited to a single or specific aspect of the network’s development. Of course, this is when the component of intentions appears again, and that is just right because different intentions can work in towards greater diversity.

Different aspects of the network may require more or less standardized processes; some, by their very nature, may require a greater or lesser degree of formality, some may allow a greater degree of flexibility. Different actors may want to focus on one aspect or another. But that doesn’t make the aspect in need for higher formality more important than others. It merely makes it particular and different, with value in itself. As well as other aspects will have their value.

It’s essential to me to maintain the sufficient and necessary structures to offer this possibility, to provide the basis for opening new fronts and not closing them. Luckily, to do so in Bitcoin Cash is relatively easy –at least easier than others :grinning:. Due to our ecosystem’s decentralized nature, actors have the fundamental right of free initiative. Although this free initiative has no means to be prohibited, it can sometimes be relegated or not sufficiently encouraged. And that’s the part that worries me.

On top of that, sometimes it gives me the impression that we are trying to re-invent the wheel. We have a system that works quite well, it’s not perfect, but it served the purposes of Bitcoin for all these years, the system of Bitcoin Improvement Proposals (BIPs).

The system is not original from Bitcoin, but it is based on Python Enhancements Proposal (PEPs). Many of the formatting ideas, as well as the Type and Status classifications, come from Python. Time later, BIP 0123 brought the Layers specification, adding even more value.

In my opinion, these BIPs’ three components: Type, Layers, and Status, work amazingly well. They allow the necessary operability, granularity, and flexibility for the development of Bitcoin Cash and improvement proposals in an inclusive, comprehensive way.

Surprisingly enough, this system considers the presentation of processes, information, and aspects related to Bitcoin Cash development that are not necessarily part of what we understand as Consensus itself. And that, I think, adds an interesting dimension to it. Does that diminish the importance of Consensus aspects? It does not, not at all. In fact, I believe that Consensus as an abstract entity can benefit from the diversity that BIPs’ classification proposes.

If something is working correctly, why change it?
Good question.

Is there room for improvement?
Yes, there surely is, but that doesn’t mean we have to invent a whole new system.

In short, I propose to maintain BIPs format and classification (Type, Layer, and Status, with their corresponding classes) for CHIPs. Let’s identify the ideas and practices around BIPs structure that need to be improved and propose the changes based on that, not changing just for the sake of change.

I like to think that Bitcoin Cash is the closest Bitcoin implementation to Satoshi Nakamoto’s project. The shared history is undeniable. And this brings up some perhaps uncomfortable questions…

Can BIPs be considered as CHIPs??
At least until the moment of Bitcoin Cash inception, I would say yes. Perhaps it’s not the most politically correct answer. But isn’t our protocol in good part governed by what those BIPs express? With that perspective, those BIPs can be considered a subset of CHIPs.

Should we rename pre Bitcoin Cash BIPs as CHIPs on our servers/platforms?
Please do not. I assume the community would like to keep track of history as it is.

Hold on, if you say that every BIP (before Bitcoin Cash) can be considered a CHIP, why bring the CHIP name to happen?
There are undeniable logical reasons for that. At the end of the day, we are Bitcoin Cash. Continuing to use the BIP name for current Bitcoin Cash development would only add confusion, despite the improvements we would like to apply to BIPs concept.

What should we do with the BIPs post Bitcoin Cash inception? Or how should we consider them?
I do not know. Probably we should ask ourselves if there is any value in them that can be applied to Bitcoin Cash. I’m going to let people with the required experience answer that.

And what do we do with all the specific Bitcoin Cash development of these last four years?
To the responsible actors of these developments, I would recommend creating corresponding CHIPs, with the original dates for the proper historical record and the Bitcoin Cash community’s benefit.

Should CHIPs have their own parallel numbering or continue from the last BIP number (until the moment of Bitcoin Cash inception)?
I do not know.

Should we make format and classification (Type, Layer, Status) be mandatory for CHIPs?
Given Bitcoin Cash decentralized and open-source feature, I don’t think there is a way to impose it. And if it exists, I don’t think imposition would be the best option either. But I do think it should be explicitly recommended to improvements’ proponents, at least that’s my opinion.

Let’s write together the CHIP 0001 (if necessary) with all the recommendations the case requires, including formats and associated processes. Or let’s include associated processes in other CHIPs if that makes more sense. In any case, it is clear that people are working on it already. This work will probably require some time and several interactions between different actors but it should not impede the flow of incoming CHIPs reaching Bitcoin Cash. There is always time for formatting and minor adjustments, but that should not prevent the spread and discussion of ideas.

I base my proposal on what I believe will translate into stakeholders’ –users, developers, miners–greater participation in Bitcoin Cash development and continuous improvement. I am convinced these are great times for Bitcoin Cash.

1 Like

Thanks for a very well thought through post. And I agree that we can use CHIPs as essentially the same thing as BIPs were used (and PEPs before that).

The design and topics around CHIPs are not really the process, though. They are a side-product of the process. Actually, they are a tool.
So, while I feel its really useful to talk about CHIPs/BIPs/etc, I feel that it is easy to overthink it. Going further than the items you mention, type, layers, status, etc. is like a project debating class-naming before the coding started. Debating the chapter-names before the book is written.

Do we want some guidelines of what is useful to have in a CHIP? Absolutely.

Does it have to be documented in something that is likely longer than 90% of the future CHIPs? Not so much.

A Chip is a tool used in the main part of the process: reaching a wider understanding and getting a proposal ready for inclusion. Proposals will change between first idea and when reaching the finish line. People will need to understand it in order to accept it.
That is the real process. And the Chip will have to follow the needs and wants of the wider community in order to actually support the goals of this process. And that drives the content.

Which is why I made the much simpler process here makes more sense as a starting point.

A process towards acceptance of Bitcoin Cash Improvement Proposals

2 Likes

@Tom, happy to see there are some aspects around CHIPs effort that we can agree on.

I agree with you that the classification I refer to in my previous post is not the process. But it was never my intention to present it as if it were. If I left to imply otherwise with my comments, I must admit that I did a poor job delivering the message.

I mentioned and recommended that classification because my analysis led me to think that it would bring more value to Bitcoin Cash. Simple like that.

But I did mention my concerns about the different perspectives rising up all over the place (exaggeration granted :grinning:) about the concept of process. That gives me a bittersweet flavor. On the one hand, it’s fantastic to have space and time (particularly time) to debate what we consider best for Bitcoin Cash. On the other, it’s a bit frustrating that after so many years, we cannot agree on what a process is or should be for Bitcoin Cash, and we end up lost in a slo-mo tornado of byzantine discussions.

Please, have in mind that at this point, I have proposed no single process. I have no intentions otherwise. But if you allow me, talking about this matter with fellows and peers, I get the impression that there is some confusion about the following:

  1. What a CHIP is intended to be. Is it a process by itself?
  2. The process for CHIP creation/drafting.
  3. The process for CHIP status evolution.
  4. The process of how/when a CHIP is accepted (or not) by the community and its final activation (or not). At least for CHIPs falling into Consensus Layer, those are the ones rising more attention.

In relation to what I do not agree so much, I don’t feel like we are writing a new book, just for the sake of your example. The book started to be written 12 years ago. We are just a bunch of continuators. Probably our big mistake was not having CHIPs immediately in place after Bitcoin Cash inception. We ended up paying the price of such a mistake. This is important in the sense to realize that we are not starting from zero.

Same for the relative extension of the document that describes a given process for a given subject. Does it drop value just because it is longer than the subject itself? I don’t think so. Does it necessarily need to be longer? I don’t think so either.

I do think that it just depends on what we need for a process to be. In that regard, I’m with you when you say:

I find your proposal: A process towards acceptance of Bitcoin Cash Improvement Proposals interesting, but I must admit I expected a more detailed process for acceptance of changes by that title. Or I probably missed the point. I come from natural science, so when you say:

you are setting the bar quite high :grinning:. At least for me.

On another note, again my personal opinion, the first goal should not be

but actually propose an improvement for Bitcoin Cash. Right?

Besides that, I find your proposal very appealing, to be honest. And I admire your passion to keep us away from rigid structures resembling centralized systems. But I will defend the right of free initiative of other Bitcoin Cash’ actors to add/propose a more detailed process and hear their motives. More on this line soon…

1 Like

Heya,

I’m so happy to see my idea in the other thread get lots of likes and open discussion.

This is why I wrote that our first goal is to learn from past mistakes :wink:
Past mistakes are humans way of teaching us. Past pain is the best teachning method. Lets make sure we actually take advantage of this natural method, even though talking about past mistakes tends to be a painful process.

Most people don’t learn by reading someone’s instruction manual. Hell, the majority of us find it difficult to follow a non-trivial recipe from a cooking book! It just isn’t how humans work. So the process of a bunch of humans working together can’t work if you write it too detailed. The 25KB document imaginary wrote is very impressive. It is also not going to be fully read by anyone that starts this process. And thus you get to the point where people just ignore the document.

The bottom line here is to formulate your goals first and let it flow from there. One person (even if IM had help) is simply not capable of representing the wide variety of participants in this future process. So letting it flow from there means we must keep the goals closer than the rules and check ourselves while we figure out how to do this.

And this is why a simpler process is actaully more complex. You get a cooking book saying “Some sugar to taste” instead of exactly how much. This is more difficult to use, mistakes will be made.

But the focus now is on people, not process. The focus is on goals and outcomes, not rules. The focus is on leaving no outliers lie, as opposed to telling them they should follow the rules. And the most important part is that the focus is on participants that want the same things we want. We give no handholds to those that seek to abuse a process in order to do what everyone clearly agrees is wrong. I’ve been there, its a devastating thing to see ( MS OOXML).

Longer documents with rules take away power, take away the ability for individuals to decide. This is a human failing. People that work where there are lots of rules give up decision making power and even stop trying to think critically. Does that vibe with a movement that aims to move the power from the state to the individual?

2 Likes