6 ms·
A bit tangential but I have a question. This is one thing that I don't really understand about bitcoin, how open is it, to be declared free from government infl
by akritrime 6y ago
A bit tangential but I have a question. This is one thing that I don't really understand about bitcoin, how open is it, to be declared free from government influence? The power of the core technology still resides with who ever has the key to push changes, and there lies a lot of vested interest. Like an external agent can still influence the devs who are making the changes and then majority of the nodes to accept that change. Its not really resilient to outside forces, right? Or am I missing something?
- theelous3 6y agoPushing code to a repo doesn't mean it's used in prod. It's vulnerable to takeover by a massive single group (though v unlikely and this would ruin the value), or small co-op of the largest miners, but it's vulnerable to that in every sense. 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.
- hudon 6y agoThe truth now though is that those who can “organize the majority of the computational power” are the same as those who can push to Bitcoin Core. One must only look at recent forks to see how this power grab happened.
- gruez 6y ago>So it doesn't really matter who can push code to what repo. It only matters who can organise the majority of computational power. 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. [1] https://en.bitcoin.it/wiki/Economic_majority https://en.bitcoin.it/wiki/Economic_majority [2] https://en.bitcoin.it/wiki/SegWit2x https://en.bitcoin.it/wiki/SegWit2x
- theelous3 6y agoYes, this is what I meant as backfire. 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.
- akritrime 6y agoI guess the piece of the puzzle that I am missing is how does the change go from repo to prod. Do the miners need to pull the latest code from GitHub?
- im3w1l 6y agoArguable more important than what the miners run is what the exchanges run.
- dane-pgp 6y agoPart of the answer to that question involves (Ctrl-F) "Reproducible builds" and "Verified reproduction": https://bitcoincore.org/en/download/ https://bitcoincore.org/en/download/
- akritrime 6y agoSo essentially, the onus of upgrading is on the person running the node. Which I guess is the more intuitive solution. But then what happens if someone doesn't upgrade, will they be just shut off from the network till they are on the latest version?
- 3np 6y agoIt depends what the change consists of. In blockchain, we tend to talk about "hard forks" vs "soft forks" when it comes to protocol changes. 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. [0]: https://www.investopedia.com/terms/h/hard-fork.asp https://www.investopedia.com/terms/h/hard-fork.asp [1]: https://www.investopedia.com/terms/s/soft-fork.asp https://www.investopedia.com/terms/s/soft-fork.asp
- saurik 6y agoSystems are as decentralized as the people running it; if you convince by force the majority of the people running it to accept your change then I guess you win, right? FWIW; there is still the question of what the people who reject the change choose to do--give up or resist--and if they go with resist then they effectively become a fork of the network and now there are two networks: the one that was forced to accept your corruption and the one that didn't... since all the effort of the larger network you corrupted is busy the latter network could possibly still be secure. Really if you want to do that you don't want to push a band update you want to force people to counter the protocol: get a majority of then hash rate to promise to cause chain reorganizations constantly to screw with the smaller forks.
- wslh 6y ago> Systems are as decentralized as the people running it; 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.
- berkes 6y agoWhy would there be no 'people noticing or caring' about a change? 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'.
- wslh 6y ago> Why would there be no 'people noticing or caring' about a change? 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.
- fartcannon 6y agoThere have been numerous forks. If someone attempt to force in code via intimidation or whatever, the chain can be forked from any block and started up again without that code by anyone.
- hudon 6y agoYou’re right, the only thing preventing what you’re saying is the community keeping the leaders in check. But the leaders have way more influence individually than each community member does, so if one with git access to the Core repo is compromised by the CIA let’s say, they can nefariously push for changes that seem innocuous but actually benefit some entity with deep pockets. And most of the community doesn’t review each line of code that gets changed.
- skizm 6y agoI would think, given how popular bitcoin is, every single change that goes into the code is reviewed by hundreds or thousands of developers. Malicious code will most likely be caught, and then someone can just fork it at that point and everyone who cares about their BTC investment will switch over to the new chain.
- Taek 6y agoBitcoin is set up such that there is no auto-updating feature. Any change to Bitcoin must be accepted manually by all participants. 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.
- hudon 6y agoThe fact that changes to Bitcoin Core get some amount of reviews is not enough for all vulnerabilities to get caught, as seen here: https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposu... And some of those vulnerabilities may have been planted intentionally, we’d never know.
- Taek 6y agoA lot of the CVE's there are pretty minor. There hasn't been a serious but in Bitcoin core that I know of since 2018, and the one before that was in 2016. Not perfect, but overall I think that's a pretty decent track record.
- deleted 6y ago[deleted]
- dfischer 6y agoThat misses the point entirely that most people that actually use bitcoin don’t even use bitcoin core’s wallet. They use other wallets and trust that software and the hardware they are on to be doing the right thing. The average person not only does not understand this distinction, they don’t even know how to validate their own transactions let alone know how to read code.
- dannyw 6y agoThere are multiple competing full clients.
- dfischer 6y agoIt’s not resilient to outside forces. I would argue strongly that it’s a huge risk to the majority of the population under the consideration of computation complexity. 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_and_.html 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.
- jungans 6y agoYou're not missing a thing. Bitcoin is sound in theory. In practice, though, humans are very flawed and they tend to submit to authority more than is healthy. In the case of Bitcoin in particular, the Core implementation has been declared the de facto reference client. Meaning, whatever they say goes. This has proven to be detrimental to Bitcoin as Blockstream, a private corporation is the employer of (or was cofounded by) the most influential Core contributors. Those who disagreed with the direction Blockstream wanted to steer the project to, were removed from their authority position. Now as a result, Bitcoin is unable to scale. Blockstream keeps delaying a simple upgrade that would do just that and at the same time, keeps pushing competing solutions like LN and Liquid. I think Bitcoin as an experiment in human behavior was very interesting. But as a revolutionary technology, not that successful...
- martinko 6y ago> This has proven to be detrimental to Bitcoin as Blockstream, a private corporation is the employer of (or was cofounded by) the most influential Core contributors. 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.
- vmception 6y agoyou can discuss the changes to be pushed, you can submit pull requests yourself and if you are dissatisfied about what gets accepted, you can also run your own version of the codebase with different implementations (lacking updates) as long as they aren't incompatible with the other nodes. (ie a subset of features instead of different features) if you need me to elaborate on the ramifications/benefits of that let me know.
- akritrime 6y agoI would really like to understand the ramifications and benefits of that.