Bitcoin core 0.20.0 was released earlier this month, representing the twentieth iteration of Bitcoin’s original code base. This major release was spearheaded by Wladimir van der Laan, and there were over one hundred different contributors to the project in a six month time frame. For the less technically inclined, it might be a little difficult to see how these changes have an impact on the average crypto user, but they are undoubtedly important. Below is a summary of the main ways Bitcoin Core improves upon its previous iterations.
Improvements in Bitcoin Core 0.20.0
Removal of BIP61 Reject Messages
BIP61 reject messages are a type of notification sent by a node whenever a transaction is rejected. These messages reveal why the transaction is rejected, which could be for a variety of reasons, such as an insufficient amount to cover a transaction fee. These messages are a mixed bag with regards to efficacy, unfortunately. Not all failed transactions return a reject message, which means it can be a toss-up to know if a transaction is successfully completed. On top of being erratically displayed, these messages had the added effect of making peer-to-peer transactions require more bandwidth, due to their increased complexity. Now, the latest Bitcoin Core iteration has completely removed this feature.
Further Hardware Wallet Integrations
Bitcoin core has been compatible with hardcore wallets since Bitcoin Core 0.18.0, but users were unable to make a transaction from Bitcoin’s graphical user interface and were instead forced to use the command-line interface in order to complete a transaction. Fortunately, Bitcoin Core 0.20.0 has made strides to integrate hardware wallet components into the graphical user interface. Now a user can create a signature-less transaction straight from the Bitcoin graphical user interface using the PBST format (partially-signed bitcoin transaction), and from there, access it from the clipboard. Once the user pulls it from the clipboard, the transaction can be transferred to the hardware wallet to be signed. Bitcoin 0.20.0 hasn’t completely removed the use of CLI, as it stands, as broadcasting the transaction still requires the use of this interface.
Bitcoin 0.20.0 Has Removed the BIP70 protocol
Originally, the BIP70 payment protocol was designed to make the payment process streamlined and more convenient for users. This was done by allowing both the user and seller to communicate about any additional details regarding a transaction, such as the name of the merchant and a refund address, increasing trust in the event a transaction goes sour. Despite these benefits, BIP70 has never enjoyed widespread adoption, with the simpler BIP21 scheme generally acting as the default, which simply displays a link or QR code indicating payment amount and address.
BIP70 also had other flaws, as it has been noted to suffer from a variety of privacy and security concerns during its existence. The payment protocol’s overdependence on the OpenSSL software library has been particularly notable as the discovery of insecurities would often necessitate short term emergency patches. Ultimately, this has led some Bitcoin wallets to completely reject the payment protocol as a whole. Now, with the implementation of Bitcoin 0.20.0, and the removal of BIP70, it has been possible to completely remove OpenSSL from the codebase.
Increased Network Reliability
All iterations of Bitcoin Core follow a process of connectivity, in which several Bitcoin nodes are connected to one another on the Bitcoin Network. These nodes are connected on the basis of their IP address, and by connecting to nodes all across the globe, the risk that any individual pieces of data, such as a single transaction, is withheld. Before the implementation of Bitcoin 0.20.0, Bitcoin Core used to map IP addresses through the use of Network Operators’ Groups. The primary problem with this is that many of the components in these groups were part of the same Autonomous System (AS), and therefore the same routes, which meant that they shared the same bottlenecks for data routing. Now, a new configuration, called Asmap has been implementated in Bitcoin 0.20.0. Asmap works by mapping IP addresses based on Autonomous System Numbers. This way, a node can be ensured to connect with other nodes from a variety of different autonomous systems, reducing the risk of two nodes sharing a bottleneck within the same network, and thereby reducing the risk that an individual transaction is withheld.
This is by no means an exhaustive list of what Bitcoin 0.20.0 resolves, but rather the primary problems and the solutions offered by the newest iteration of Bitcoin Core. For further information on what updates are included in the latest core, have a read of the Bitcoin Core 0.20.0 release notes.