One of the main reasons for this thread is because I'm interested in getting involved with Bitcoin. Another main reason is because this thread is related to alleged code being used and dev mailing lists.
I started with reading Satoshi Nakamoto's white paper. One of the important things is accuracy of the ledger, if I recall the whitepaper correctly. However, from some technical reads from devs, it would appear there have been multiple Bitcoin ledgers over time. Furthermore, I'm under the impression that all past ledgers should have been scrapped directly after libsecp256k1 was initiated. As such, Bitcoin should have started anew with a fresh ledger and using libsecp256k1 and all past investors would have to write things off as a loss if but a gain in finding a different security protocol to remove an alleged Bitcoin vulnerability. Also, I'm getting contradicting information from the maillist I'm reading, whereby it seems OpenSSL could have still been used but the issue with using OpenSSL was that there would be an architecture dependency; as such, dev wanted to escape the architecture dependency by switching to libsecp256k1.
As a note, I'm not too familiar with BER, DER, and some of the other abbreviations. However, for what I understand the ledger is inaccurate. I got that much out of it. I've been trying to make sense of how that affects the value of Bitcoins mined prior to BIP66 being implemented in contrast to Bitcoins mined after BIP66 and how the multiple ledgers and the BTC value relates, but that might be for a different thread.
Why should I not think that the Bitcoin ledger is inaccurate?
BIP66:
1. The Bitcoin Project had a vulnerability (1)
2. The vulnerability was considered to be OpenSSL (1)
3. "OpenSSL is ... inconsistent with itself across different platforms." (1)
4. Libsecp256k1 was opted for use instead of OpenSSL via majority vote (1)
However, the developer said:
1. The problem is related to the signature encoding rules. (1)
2. This on itself would not be a problem, as full nodes on the network
currently use OpenSSL. (1)
3. 2014-Sep-01: While analysing OpenSSL's source code for BER parsing, I
discovered the architecture dependency listed above and the associated
vulnerability. The best means to fix it at the time was by getting
BIP62 adopted. (1 -- underlining added for emphasis)
It would appear:
1. libsecp256k1 results in a huge increase in signature validation performance (4)
I'm under the impression that the following would have to occur:
1. Bitcoin ledger gets scrapped in favor of the new encoding library and uses a fresh ledger: Thus uses libsecp256k1
2. Or... Bitcoin becomes dependent on architecture for immutability of the ledger while using OpenSSL
However, the Bitcoin team decided to keep the ledger and use libsecp256k1...The issue is that the ledger wasn't scrapped when they started to use a system different from OpenSSL. Not only that but it looks like tons of forks were made, thus the Bitcoin ledger is stupid wrong in record-keeping.
" Worse, it seemed that
there was again a small (1%) number of blocks being created with
non-DER signatures in it, resulting in actual forks."
So, on one hand, supposedly OpenSSL was fine for being used?
- "This on itself would not be a problem, as full nodes on the network currently use OpenSSL." (1)
Somehow that quote and the quote before it seem to contradict. There were 1% number of blocks with non-DER and making forks but then I read that supposedly OpenSSL was not a problem?
Yet dev wanted to move away from OpenSSL for libsecp256k1 while keeping the ledger prior to libsecp256k1 implementation at the expense of keeping the prior ledger, thus forcing inaccuracy on it?
I'm being a stickler about the ledger. It would have been one thing if various transactions from various ledgers could have been brought into one main Bitcoin ledger post-libsecp256k1; but that's not what happened. And because of that, it brings me to the issue I mentioned previously: I've been trying to make sense of how that affects the value of Bitcoins mined prior to BIP66 being implemented in contrast to Bitcoins mined after BIP66 and how the multiple ledgers and the BTC value relates.
I'm under the impression that someday, it might be valuable to just roll-back prior to libsecp25k1 being implemented for when OpenSSL was being used, even if that means it requires an architecture dependency. And that's because the ledger(s) prior to libsecp25k1 are more accurate, if I'm interpreting things correctly. Otherwise, I'm under the impression that inflation has occurred (sure, there is a max coin limit, but how long until enough trading occurs to resolve the issue with there being multiple prior ledgers to the point that they're ridiculously insignificant if but no longer existent and no one has a pre-libsecp256k1 ledger? That's how I can see this bug being fix: Get rid of all Bitcoin ledgers prior to libsecp256k1 implementation. There was definitely a lack of a scientific control on this Bitcoin project forking issue. I've read that Ethereum Classic plans on putting in a max. coin limit in December, so that should act as a decent scientific control against inflation.
sources:
(1)
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-July/009697.html(4)
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-December/011865.html