SJW infiltration into Bitcoin Core? Bitcoin Tech Talk Issue #205
Bitcoin Twitter was in an uproar earlier this week when Giacomo Zucco pointed out a pull request from June. The PR didn’t introduce an inflation bug, create a DoS vulnerability or potentially cause a hard fork. The PR didn’t introduce any new functionality and didn’t affect the actual software at all. All the PR did was change a test variable’s name from FILE_CHAR_BLACKLIST to FILE_CHAR_BLOCKLIST.
Why was this one character change such a big deal? Mostly because of the optics of the pull request. This looks to a lot of people like the PC police coming to tell developers what to do. The word blacklist is apparently offensive to some people and that’s why the PR was made and the reasoning behind merging it was given by the maintainer MarcoFalke:
Looking at the 400 open pull requests, we are clearly lacking developers to review the code. Simply the possibility that one developer may directly or indirectly be offended/discriminated by code comments or symbol names is a risk that we can't afford to take.
Bitcoin Core is an international project and if there are two similar English words, we should always pick the word that is most likely understood by the majority of international English speakers. Code should be self-documenting and variable names should be self-explanatory.
This is a refactoring change in the tests to change the name of a variable, so it allows for infinite bike-shedding. There is no way this could break any functionality, so with the existing ACKs, this is ready to go in. Leaving this open any longer will in the long term only attract heated off-topic discussions, wasting our reviewers' time.
There are three reasons given here. First, Bitcoin Core doesn’t want to offend potential contributors. Second, the latter word is easier to understand. Third, this is a waste of time and closing the PR is in the best interests of the project.
I’m skeptical of the first reason, but I understand his reasoning. The second is a little iffy, but I could see it going either way. The third reason is the best reason for me. Marco was put in a pretty sucky position of getting what was essentially a hot potato PR. Accepting or rejecting would offend some people and he had to make a decision. The decision to accept it quickly and move on was understandable and meant to minimize distractions. Unfortunately, this blew up later when Giacomo publicized it.
I get Giacomo’s side, too. This looks very much like a coverup and a way to suppress discussion about a code change made purely for political correctness. The SJW/PC policing can be very bad for an open source community and cause more conservative/libertarian developers to leave. The last thing we want is for Bitcoin Core to come under the control of people who care more about political correctness than sound money.
Marco and Giacomo have been very kind and professional in my interactions with them. I like both of them. I don’t think there’s really any reason for animosity here. The PR was merged for 1 ok reason and 1 good reason. The 1 bad reason was called out, but that doesn’t invalidate the good reason. Marco was put in a tough spot and I think he did the reasonable thing, which was to move on from the PR as quickly as possible.
This incident shows that Bitcoin has an immunity system. Unlike many altcoins, we have a lot of people willing to call out what they perceive as bad behavior. This is a good thing, even if in this particular case, I don’t think it was actual bad behavior.
A new library for programming wallets in Rust is out. The really nice thing about this library is its native support for Miniscript. More wallets that have miniscript support should allow for better overall wallet security going forward. I’d love to see a wallet that can create scripts with conditions that are easy to understand for the end user.
Braden Fuller has disclosed a DoS vulnerability in Bitcoin Core. The vulnerability was discovered in 2018 and patched pretty quickly, but not disclosed until now so more nodes had a chance to upgrade. The vulnerability involved sending lots of invalid inv messages which would eventually result in an out of memory error. The interesting thing about this vulnerability was just how many clients were affected. Knots, Litecoin and dcrd are downstream software that was affected. This shows just how much dependency altcoins have on Bitcoin.
Wasabi has disclosed a CoinJoin DoS vulnerability that was recently patched. The vulnerability was in the coordinator communication which allowed a malicious actor to prevent a coinjoin. CoinJoin cointinues to require a lot of care and this hopefully continues the development of a good anonymization scheme.
An actual discrete log contract was seen on mainnet! The contract is between Nicolas Dorier and Chris Stewart on a bet about the US presidential election. Discrete log contracts are essentially ways for two parties to make a bet on something with the help of an oracle. Rather than a 2-of-3 multisig approach, the oracle is separate from the bet and only tells the outcome. I wish I could have used something like this with Joe Lubin or Roger Ver, but knowing them, they would have weaseled out some other way.
Batcher is a plugin for cyphernode to save on fees. Cyphernode is similar to BTCPay but at a lower level API and suitable for more complex websites. By using this particular plugin, an exchange could save a lot of money on fees. I’m not sure the penetration of this particular product on the market, but the batching library could definitely be used by some exchanges.
Economics, Engineering, Etc.
Preston Pysh has published a really nice one-pager on Bitcoin. A short read like that is very useful for explaining what newbies really want to know. This one is particularly nice as it emphasizes what people already know, which is that the financial system is hopelessly broken.
BitFinex is offering lending. This is not a surprise given the popularity of DeFi. Of course, DeFi isn’t necessarily about getting the best rates, it’s much more about getting new people to participate in Ethereum. Given that BitFinex has been around a lot longer, if DeFi is about lending, BitFinex should eat their lunch. As I’ve said before, any decentralized app can be done more efficiently, scalably and cheaply on a centralized platform.
Marty Bent has an interesting analysis of Bitcoin mining based on flaring. He concludes that there’s a huge amount of energy in flared gas that’s available for Bitcoin mining. By his estimate, it’s 7.35 times the amount of energy being used for Bitcoin mining today. Even with really old miners such as the AntMiner S9’s, this should result in a lot more hash power securing the network. It’s no wonder there are so many startups looking into making this work.
BitMain is taking a risk going to the 5nm fabrication process. Apparently, this is due to their difficulty getting their 7nm chips fabbed. The decline of this company has been very sad to watch, as their hubris led them to expand way too quickly and led to the departure of some talented chip designers. By Bitcoin standards, they’re dinosaurs at 7 years old and continue to act like it. A bet on an unproven chip process seems like a hail mary for this company.
A new alliance headed by Square and Blockstream are pooling their patents. This is purely a defensive patent strategy to head off the inevitable lawsuits that come with any successful sector of the economy. Patents are harmful to innovation and I wish the whole system would get scrapped, but this is the next best thing. That said, there are still patent trolls and financially penalizing them is still a good idea.
SushiSwap is the latest DeFi scam that’s getting a lot of press. If you haven’t heard, this is a project that pretty much copied UniSwap and managed to get a lot of people in China to buy. As I’ve said in the past, these projects being open source means that anyone can copy and paste. The reason any of these things have value is because of the marketing. A bigger marketer can always get the upper hand by copying your stuff and marketing bigger.
The drama at BCH has a little more clarity. November 15th is the big fork date and the side with the 8% tax seems to have little support. The 8% dev tax is a soft fork, but because of the 10-block no-reorg rule, if the non-8% side is ahead after 10 blocks, it will be a permanent fork. There’s no replay protection as far as I can tell, making this as messy as the BSV fork was. I weep for the engineers who have to put up with this crap.
This week’s episode of Bitcoin Fixes This was me answering a bunch of listener questions about everything from quantum computing to the pandemic lockdowns with some Bitcoin questions as well. I was on Tone’s show twice this week, the first on DeFi, SushiSwap and the recent SJW pull request in Bitcoin Core, and the second on central bank adoption and KYC for mining pools. Lastly, my talk from BitBlockBoom is on YouTube where I talk about natural rights and the role of government with respect to Bitcoin.
Lastly, I’m working on a book for Christians to make the case for Bitcoin. If you are interested in reviewing it, please email me: jimmy at programmingblockchain.com.
Fiat delenda est.