This past weekend, bitcoin miners lost up to US$50,000 as the Bitcoin network was affected by the generation of invalid blocks due to the appearance of two separate versions of the blockchain or a “fork.” This fork continued to exist for six blocks and later, three more invalid blocks were generated as the issue repeated the following day.
This article will look at the reason for this problem, possible solutions and blockchain alternatives.
Under the hood
A signature must be generated in order to conduct a Bitcoin transaction. The signature generated with cryptographic algorithm ESCDA includes transaction data, private key and some random data.
Actually, the signature is two integers: r and s. It is generated by OpenSSL library and encoded using strict DER (Distinguished Encoding Rules) encoding. DER encoding is an ASN.1 (Abstract Syntax Notation One) presentation format. Different versions of OpenSSL library might encode the signature in various ways.
Due to this fact, in case network users utilize clients with different versions of the libraries (e.g. when people compile binaries on their own; in such situation version of the OpenSSL depends on OS), network might face issues when nodes reject the chain, as they cannot correctly verify