The latest fiasco with 0.16.3 has got me thinking.
The sha256sum asc keys for the binaries are hosted on bitcoin.org
The binaries are hosted on bitcoin.org.
The torrent for the binaries are hosted on bitcoin.org.
They are hosted on both bitcoin.org and bitcoincore.org. Bitcoincore.org is the Bitcoin Core project's website.
Also, sha256sum.asc is not a key, it is a signed text file.
--->How can I positively confirm I'm getting an untainted binary given all the data is hosted on centralized bitcoin.org?
First of all, the sha256sums.asc file is signed by Wladimir's release signing key. This key is held by Wladimir and him only. Presumably it is held safely. You can check that the binaries you downloaded have the hash that is listed in the sha256sums.asc file, then you can verify the GPG signature on that file. If the file is valid, it will be signed by Wladimir's release signing key. If Bitcoin.org or bitcoincore.org were compromised and the uploaded binaries changed, the sha256sums.asc file would not have a valid signature from Wladimir unless it was Wladimir himself who was the attacker.
Furthermore, Bitcoin Core uses a deterministic build process. This means that anyone can build the same code again using that build process and get exactly the same binaries. Before releases are officially announced and published, multiple people perform these deterministic builds and the hashes of their results are checked to make sure that everyone has built the same binary. These hashes, and GPG signatures over the hashes, are all available here:
https://github.com/bitcoin-core/gitian.sigs. If you don't trust the uploaded binaries, you can check it's hashes against those from the other deterministic builders and the GPG signatures of people who did the deterministic build. Lastly, you can do the build yourself and check that what you built matches what was published.
I've never looked deeply at the bitcoin core code until this fiasco. But yesterday for the first time i went thru the github commit log...Why are there 1000+ commits for a consensus issue?
Where do you see this? You are likely looking at the wrong thing or are confused about some aspect of GitHub's UI. If a pull request has several thousand commits (or even more than a few tens of commits), it probably won't be merged as it is too large.
I see there were tons of changes related to improving code quality. Feels a bit rushed, I would have expected this release to be only a bug fix but it seems a lot more was done.
It was just a bug fix.
If you are looking at the difference between 0.17.0rc4 and 0.16.2, of course there will be lots of changes. 0.17.0 is a major release that introduces new features and other bug fixes. Bitcoin Core is not just bug fixes, there's new stuff constantly being introduced.
Who is deciding what goes into the latest releases?
The maintainers do.
Am I insane for thinking I should my own private fork of bitcoin core so that I can validate what changes are pushed to my client? It's way too much work and beyond my abilities, but this experience has left a sour taste.
You don't need to fork. You can watch the Bitcoin Core repository yourself and review pull requests and the things that are being merged. You can also just not upgrade if you think that things are going too quickly, but be aware that there are many bug fixes with every release that you may not have.