But there's still a question of "how many people actually review the changelog before updating?" It's a very small number, but that might be okay. If a bad actor pushes malicious code through, all you need is one person to raise the alarm.
In general, Bitcoin is very well reviewed. I don't think it would be easy for a bad actor (even a good actor who is being compelled in secret by a state actor) to push through malicious code. But it's hard to be certain exactly how robust Bitcoin is to this type of thing.
The culture of Bitcoin is highly resistant to changes in the core code. Even optimizations are increasingly scrutinized. Attempts to influence the core devs ("psyops") are also likely to fall flat, simply because the core devs have gone to great lengths to ensure that there is a lot of red tape to making changes, and that larger changes take years to get through with hundreds of eyes of review.
And some of those vulnerabilities may have been planted intentionally, we’d never know.
Not perfect, but overall I think that's a pretty decent track record.
It is commonly known that exchanges have to implement KYC/AML and so on, so the question isn't very interesting if we are talking about whether the government has some influence on a web-wallet like Coinbase.
No, this is the worst case scenario, the core developers of a technology like Bitcoin have the power to, arbitrarily, govern the project and change the code or protocol without the people noticing or caring about it. There are obviously limits that are not acceptable to the people (e.g. SegWit2x and Bitcoin Cash). The governance of a protocol is mostly centralized. Perfectly decentralized systems are decentralized systems that never change. If they change it is because there is governance that plays in the power context.
Everything I see, from Canaries to codesigning, to simple git mirrors make it easy to detect such fraud.
Also, there are many unofficial Bitcoin implementations. And with 'core' being the only 'spec', I know from personal experience that a lot of devs of those alternative implementations, make a lot of 'eyeballs'.
Because you cannot assume that node runners and miners are spending time in reviewing commits or entering in discussions except when there are issues that are highlighted and amplified by media such as SegWit2x.
I do feel you just don't understand this still, though: if the miners all upgrade and you don't it isn't like they can force anything down your throats as you didn't upgrade.
I feel like your mental model is somehow "if 51% of everyone does something invalid then the system is now invalid", but what that actually means is that those people are rejected from your consensus.
So, if all the miners decide to run a different software this is effectively just a different distributed system. Your computer, which is checking everything, rejects all of them and keeps playing with the people who are playing the same game.
You aren't trusting anyone or assuming anything: that wouldn't be decentralized at all really. Now, is any of this efficient? No. But that wasn't a goal ;P.
So it doesn't really matter who can push code to what repo. It only matters who can organise the majority of computational power.
I'm not saying it's not vulnerable, but I am saying that investing in taking over btc in order to enrich yourself will by its nature backfire, and that it's not really vulnerable to code change in any way like a centralised system.
No, the economic majority[1] also matters. If the miners decided to hardfork bitcoin and double their mining rewards, and the non-mining users did not support this change, their fork would fail because nobody would accept their coins. This is exactly what happened to the segwit2x fork[2], which was arguably less contentious than doubling mining rewards.
Even if all of the miners made a change, if it doesn't align with the public perception, the value will vanish.
The economic majority is basically tied directly to this. It's not only the holders of btc that decide the value. The more it aligns with what the public wants from a parallel currency, the larger the want, and the larger the economic majority. If the miners disalign with the hodlers, it dies. If the miners and hodlers conspire, it still dies.
In a hard fork[0], blocks produced by the newer version will not be accepted as valid by the older version (e.g. increase of block sizes, changes in rewards or additions of new opcodes). This will result in a split of the blockchain, where old and new nodes operate on two concurrent diverging chains. You can think of it as a git fork. A hard fork essentially requires all nodes to upgrade.
Hard forks are generally activated by first adding the functionality without activating it but signalling for compatibility, only actually enabling the protocol change once a subset of nodes have signalled support.
In a soft fork[1], blocks produced by the older version can be deemed invalid by the newer version - otherwise the two are compatible. This means that users don't strictly need to upgrade to participate, only miners do.
So TL;DR, if BTC Core developers released a hard fork, it would only go into effect once it reached majority support among miners. In practice, users and other stakeholders (most notably exchanges) also have an important practical voice in which chain is deemed the canonical one, in case of a split.
This is a false narrative peddled by BCash supporters. The bottom line is that the market had a chance to decide if they want to go the BCash route or the Bitcoin Core route, it chose the latter, now the supporters of the former are salty.
if you need me to elaborate on the ramifications/benefits of that let me know.
The computation stack end to end has alarming risks. If the average user can’t read code, then anything they use is a form of delegated trust.
The users trust the wallet software that it’s doing the right thing. The average user does not even know what validation means.
Additionally what is known about computation is public knowledge. What secrets exist within state actors or even possible ET tech that could be used to influence truth with advanced computation?
There’s certainly no guarantee of security within Bitcoin or the network. It shifts the trust model at the most.
In another perspective, the amount of individuals who understand cryptography are quite low for the entire human population. Combine cryptography with hardware and software and that’s the small percentage of people who truly “get it” and are also specifically the ones entrusted as the leaders of all. The attack vectors are large.
In order to fix this we need to reduce complexity across the stack end to end. Every individual should know how to build their own computer without having to trust any hardware or software manufacturing.
I’d argue the stack is needlessly complicated end to end. Individuals add complexity by allowing the conceptual model of computation to remain complex within their tooling and then adding their own esoteric layer on top. It’s a house of cards.
Here’s a good post by Bruce Schneier https://www.schneier.com/blog/archives/2019/02/blockchain_an...
Would I keep a significant portion of net worth in bitcoin? No.
Would I use it to make a payment like PayPal? Yes.
I do not trust anything with computation today. It is compromised end to end.
As long as the Internet depends on BGP and ISP’s there’s no true decentralization. We need ad-hoc mesh networking with deterministic address spacing. Doing so behind some type of one-time cryptographic address that maps to an IP would be interesting. A few projects are experimenting in this path. Yggdrasil looks promising as an algorithm. Ouroborus has an interesting novel stack based on recursion.
I mention all these things because it’s exactly the reason why bitcoin is not safe or to be trusted. The cult behind it doesn’t help the fact of the fragility of the situation. Much of the cult are increasing the risk of other individuals by preaching trustless models.