News for hackers. Stuff that matters.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by akritrime on Sunday September 27, 2020 @10:20AM (#24606817)
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?
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by Taek on Sunday September 27, 2020 @10:49AM (#24607038)
Bitcoin 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.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by dfischer on Sunday September 27, 2020 @11:11AM (#24607204)
That 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.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by darawk on Sunday September 27, 2020 @03:27PM (#24609454)
But that doesn't matter. The point of Bitcoin is not to provide every single user with perfect decentralization, it's to provide the infrastructure for it so that it can be achieved if its important to you.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by dfischer on Monday September 28, 2020 @05:45AM (#24614839)
Unfortunately most don’t really understand that and end up just “trusting the software”
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by iso8859-1 on Sunday September 27, 2020 @03:31PM (#24609474)
Your grandparents talked about "the core technology" and talked about peers. If you're talking about bitcoin in the extended sense that you do, there would be no reason to use these words.

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.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by hudon on Sunday September 27, 2020 @10:56AM (#24607084)
The 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_Exposu...

And some of those vulnerabilities may have been planted intentionally, we’d never know.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by Taek on Sunday September 27, 2020 @11:07AM (#24607171)
A 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.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by akritrime on Sunday September 27, 2020 @01:46PM (#24608530)
What happens to a participant who didn't update? Will they be on their on special fork of the chain?
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by Taek on Sunday September 27, 2020 @03:10PM (#24609320)
They'll be on the same fork as everyone else who didn't update, which may in fact be the dominant fork.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by dfischer on Sunday September 27, 2020 @01:56PM (#24608626)
Maybe yes maybe no. It depends on what the updates are.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by ema on Sunday September 27, 2020 @02:59PM (#24609233)
To expand: an update that puts older versions of bitcoin on a different chain is called a hard fork and it is treated as a big deal. It is supposed to happen as rarely as possible.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by saurik on Sunday September 27, 2020 @10:27AM (#24606877)
Systems 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.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by wslh on Sunday September 27, 2020 @10:40AM (#24606969)
> 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.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by berkes on Sunday September 27, 2020 @04:35PM (#24609947)
Why 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'.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by wslh on Monday September 28, 2020 @08:34AM (#24615933)
> 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.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by saurik on Monday September 28, 2020 @03:36PM (#24620420)
There is just no such thing as software that can't change; I realize this might mean decentralized systems are simply impossible, but "it is what it is"?

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.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by theelous3 on Sunday September 27, 2020 @10:26AM (#24606870)
Pushing 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.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by gruez on Sunday September 27, 2020 @10:43AM (#24606999)
>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

[2] https://en.bitcoin.it/wiki/SegWit2x

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by theelous3 on Monday September 28, 2020 @07:33AM (#24615505)
Yes, 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.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by akritrime on Sunday September 27, 2020 @10:44AM (#24607007)
I 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?
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by dane-pgp on Sunday September 27, 2020 @01:12PM (#24608173)
Part of the answer to that question involves (Ctrl-F) "Reproducible builds" and "Verified reproduction":

https://bitcoincore.org/en/download/

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by akritrime on Sunday September 27, 2020 @01:35PM (#24608420)
So 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?
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by 3np on Sunday September 27, 2020 @01:58PM (#24608650)
It 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

[1]: https://www.investopedia.com/terms/s/soft-fork.asp

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by im3w1l on Sunday September 27, 2020 @12:09PM (#24607689)
Arguable more important than what the miners run is what the exchanges run.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by hudon on Sunday September 27, 2020 @10:34AM (#24606934)
The 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.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by hudon on Sunday September 27, 2020 @10:29AM (#24606897)
You’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.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by skizm on Sunday September 27, 2020 @10:48AM (#24607033)
I 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.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by jungans on Sunday September 27, 2020 @01:04PM (#24608117)
You'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...
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by martinko on Sunday September 27, 2020 @04:17PM (#24609839)
> 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.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by fartcannon on Sunday September 27, 2020 @10:27AM (#24606880)
There 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.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by vmception on Sunday September 27, 2020 @02:45PM (#24609116)
you 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.

Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by akritrime on Monday September 28, 2020 @12:20AM (#24612920)
I would really like to understand the ramifications and benefits of that.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by dannyw on Sunday September 27, 2020 @10:51AM (#24607050)
There are multiple competing full clients.
Re:Hal Finney’s proposal for optimizing Bitcoin to be enable... by dfischer on Sunday September 27, 2020 @11:10AM (#24607189)
It’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_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.