Hi,

I was super glad to see the recent survey on potential softforks for the near-future of Bitcoin! I didn't have time to answer this one but will do so for the future. I wanna to salute the grassroots involvement in bitcoin protocol development, that's cool to see :)

Though softforks are what shine in the media and social networks, one should not ignore they represent the aggregation of thousands of hours of sweat from contributors all across the ecosystem with discussion extending from IRC public or private chans, mailing list, medias, etc.

What makes softfork discussion especially hard is that no one is following all those communications channels to collect the trace of information and as such it can be hard to reason on the Big Picture(tm). That's why soft-forks take time, and we might somehow be prepared for them to take even more time in the future...

That said, where I would like to draw awareness of the community is about the submerged part of bitcoin protocol development iceberg. Softforks are sexy, though you have far more areas of Bitcoin dev who would benefit from a gentle boost by happy hands :p

For e.g, if you take Bitcoin Core, you have few ongoing projects were folks have a hard time moving forward, e.g assumeutxo/mempool refactos/addr-relay/rebroadcasting module/mutation testing/ multiprocess/wallet external signer/GUI maintenance/libbitcoin_kernel[0]

Those projects start to be "softfork"-in-itself-size-of-engineering, and for a lot of them might  require more than pure "coding" skills, such as specification, simulations, extensive code coverage, up-to-date meeting documents. See what is currently done with the Core wiki [1]

All those projects are modifying critical areas of Bitcoin such as the validation engine or the p2p stack and AFAICT, they deserve more care. Hopefully, by drawing the light there, more folks are going to understand them, we'll have more skilled reviewers, reducing the reliance on a few segments of the codebase being only understood by some seen experts and ideally, ingenious, "Many Eyes Make All Bugs Shallow" :)

That said, it's only the technical ground and I believe the human layer of Bitcoin dev might be the one where grassroots-involvement might be the most fruitful.

I would say the Bitcoin dev stage has changed a bit since the last 18 months, especially w.r.t to few factors, the arrival of massive development funding, the sudden mediatisation of protocol developers and the pursued geographical spreading, diversification and education of the poolset of contributors.

When I did arrive on the stage a few years ago, funding was still a hard question, even for well-known, long-term contributors and only a few actors were taking care of Bitcoin. Really differently, from what we have seen on the last months, where we have seen a plethora of new organisations entering the game and benefiting from the generosity of the Bitcoin industry [2]

Things have been so fast that sometimes one can wonder if there isn't a bubble around Bitcoin dev ? Few OGs might suggest we're back to 2017, with ICO-like webpage pinning "developers-as-brands".  In reality, we see new grant announcements every month or week, but still the number of reviewers on Core doesn't seem to increase ? [3]

Hopefully, a lot of those new structures pretending to work for Bitcoin betterness will get out of their childerness phase and slowly mature to something as sound as Chaincode or Square Crypto. Small, friendly, politics-free engineering teams with years-long stability, solving bitcoin problems with a "forever" perspective mindset.

Though, as of today, you do have the opposite with the grant model. Being funded on the rational that yours peers "appreciate" your work is more going to generate implicit compliance at review time where you should instead spot their errors. Bitcoin development process is highly contrarian per nature, and constantly challenging your peers assumptions has been preserving software robustness.

Time will separate the wheat from the chaff though how to make things better in the short term ? I don't know, maybe those structures could be exemplary and outsource their grant allocation decisions framework ? Or ask them to publish grant contract under which contributors are engaging themselves to observe if the usual independence provisions are present [4]

In another direction, I believe the ongoing mediatization increase of the Bitcoin dev stage in the last months or so didn't improve the current state of affairs. We now see technical proposals, of which the soundness have not been thoroughly discussed in the traditional venues, being announced in big pump as some kind of "done-deal", potentially sustaining the false belief it has been already blessed or approved by the rest of the development community.

And honestly, it's quite easy to approach any Bitcoin media today once you're a bit technical, and rely on lingo to create a perception of competency towards your interlocutors. In fact, your talking isn't going to be debunked by your peers as most of the time they have other, on-the-ground, engineering issues to care about. Or say differently, if you're a Bitcoin journalist today, it's quite easy for smart ass like me to hijack your production :p

Don't trust, verify :)

Another bottleneck in Bitcoin development is the ongoing spreading of contributors around many geographical areas and timezones, making intra-communication far harder. Lightning dev or Bitcoin Core technical meetings might happen at the end of your local day but another attendee might just get started, and with time you feel how divergence in level of energies influences the serendipity of engineering discussions.

Communication might not flow smoothly through all the development stakeholders and how do we make communications more distributed and fault-tolerance without losing on the quality ? I don't have the answers...Yes, the Earth isn't flat and that's an issue for Bitcoin dev :/

The ongoing increase in developer diversity is also something to salute. Anyone is invited to contribute without regards to technical experience, race, "expertise", OSS experience, age, gender, language or any other social concern. I believe diversity is a force for Bitcoin development and I would like to congrat my fellow female Bitcoin hackers of which the continuous hard work and smartness should inspire more women to follow their tracks in the coming years. Pioneering has always been hard :/

Another remaining issue is developer education. The development of cryptocurrencies demands a high-level of rigor, adversarial thinking, thorough testing and risk-minimization development strategy. Any bug may cost users real money and disrupt folks' lives. We still have a lot to learn from the Old Guard, which sadely are less and less active on the daily ground and I would say the ecosystem infrastructure would be far more sane with more security-oriented folks.

As a young developer, even armed with the best intentions it takes years to adopt a security-first mindset and continuously extend and mature your technical stack. One has to become fluent through a wide variety of areas to be an efficient contributor, distributed systems, internet protocol, applied cryptography, database, game theory, professional english, quality-assurance best practices, the list is never ending and there is always a nice chunk of knowledge to go after :)

Lastly, another uncomfortable issue to talk about is direct pressure exercised on the developers themselves to bend their works, as the ongoing CSW case sadly recalls. Flavors of those concerns  have been mentioned a lot through Bitcoin archives [5].

So far, I've never heard about angry calls passed backstage to Bitcoin contributors, deliberately made to influence the expression of their public technical opinions. Though in the future, if that kind  of thorny situation happens to you as a Bitcoin FOSS contributor, remember that you're always free to discuss discretely about potential conflict of interests you observe with folks of confidence around you. Or if you prefer to keep the anonymity, reach out to some investigative journalists under a cover identity.

Here is, I think that's all the area where I would be glad to see more grassroot-engagement or even any coming from the industry with eager motivation to help on those fronts.

Ask not what Bitcoin can do for you - ask what you can do for Bitcoin :)
 
Cheers,
Antoine

PS: oh, and SIGHAsH_PURPLE for the win :p

[0] That's a joke on mutation testing, it's a trillion-dollar codebase, but we don't do
mutation testing. Sad :/

[1] See https://github.com/bitcoin-core/bitcoin-devwiki/wiki
 
[2] Disclaimer: I'm not open to outbound sponsorship proposals.

[3] As backed by data here : https://adamjonas.com/bitcoin/coredev/retro/coredev-2020-retro/

[4] For e.g, a lot of grant legal frameworks don't have clauses guaranteeing the independence of the
general Bitcoin Core or Lightning development, just a smaller subset around validity of block rules,
inspired from the BitMex open one. Clearly a hole if you ask any competent lawyer...

[5] Flavors of those concerns have been mentioned a lot through Bitcoin archives:

See "Bitcoin in 2021":  https://www.erisian.com.au/wordpress/2021/01/07/bitcoin-in-2021

" After all, if you can replace all the people who would’ve objected to what you want to do, there’s
no need to sneak it in and hope no one notices in review, you can just do it, and even if you don’t
getrid of everyone who would object you at least lower the chances that your patch will get a thorough
review by whoever remains. There are a variety of ways you can do that. One is finding way of making
contributing unpleasant enough that your targets just leave on their own: constant arguments about
hings that don’t really matter, slowing down progress so it feels like you’re just wasting time,
and personal attacks in the media (or on social media), for instance. Another is the cancel-culture
approach of trying to make them a pariah so no one else will have anything to do with them."

Or see "Working on social contracts (was: Paper currency)" : https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2014-May/005851.html

"I promise that if bad people show up with a sufficient pointy gun that
I'll do whatever they tell me to do. I'll make bad proposals, submit
backdoors, and argue with querulous folks on mailing lists, diverting
them from real development and review work, all as commanded. Maybe
I'll try to sneak out a warning of some kind, maybe... but with my
life or my families or friends lives on the line— probably not.

... and I think that anyone who tells you otherwise probably just
hasn't really thought it through.  So what is the point of commitments
like that?  People change, people go crazy, people are coerced. Crap
happens, justifications are made, life goes on— or so we hope."