Update 20th March 6 pm GMT: Updated with commentary from core developer Mike Hearn.
Update 20th March 6:30 pm GMT: Updated with commentary from BitMonet founder and developer Ankur Nandwani.
Update 21st March 6:30 pm GMT: Updated with commentary from bitcoin developer Peter Todd.
Bitcoin’s core developers have released the latest update to the bitcoin reference client, version 0.9.0, which includes transaction malleability-related fixes, as well as updates to how transactions are relayed on the network.
Version 0.9.0 notably includes coin control features and a Windows 64-bit installer, among other updates, bug fixes and minor feature additions.
Bitcoin core developer Gavin Andresen took to Twitter to publicize the news.
Bitcoin Core version 0.9.0 is finished! Download binaries from https://t.co/Brm6CPBw58 — report bugs to https://t.co/hz1q6u2AGC
— Gavin Andresen (@gavinandresen) March 19, 2014
In addition to the technical fixes, however, the update also comes with a branding change. The developers announced they are renaming the bitcoin reference client Bitcoin Core to reduce confusion between the network and the software.
The most noteworthy changes were those aimed at transaction malleability issues. These problems gained notoriety for the key role they played in helping hackers launch large-scale attacks against most major bitcoin exchanges in February, and for being named as a scapegoat for problems experienced by now-bankrupt exchange Mt. Gox.
Transaction malleability updates include tweaks that prevent the relaying and mining of mutated transactions, and fixes to RPC commands meant to report incorrect balances for double-spent or mutated transactions.
Core developer Mike Hearn said that despite the upgrades, however, transaction malleability remains a work in progress.
“It’s not finished by any means. Finishing transaction malleability, or as far as we know how, is going to take more upgrades.”
Version 0.9.0 drops the default fee for relaying transactions across the entire network, though it still does not guarantee transactions will be accepted by miners.
Hearn indicated that the bitcoin network had previously imposed a hard-coded cost in BTC for relaying transactions, but that this figure did not change with the exchange rate. As a result, when the price increased or decreased, the cost of these payments did not adjust accordingly.
Explained Hearn: “Work is being done to make these [fees] float. Gavin [Andresen] wanted to get this done with 0.9.0 but it didn’t quite make it.”
Ankur Nandwani, founder of BitMonet, indicated that this update was perhaps the most noteworthy, though he expressed that there could be drawbacks to the changes.
“I think reduction in transaction fees will bolster the use of bitcoin as a means of facilitating microtransactions. But at the same time, it would be interesting to see if the blockchain gets bloated with microtransactions because of this change.”
Developer Peter Todd seemed most critical of this aspect of the release, suggesting that the change in how fees are handled opens up the bitcoin core to DDoS attack.
“Bitcoin Core, even the new release, never removes a transaction from memory unless it gets mined into a block, so if an attacker just floods the network with really cheap transactions they can use up a lot of RAM and network bandwidth for very little money, causing nodes to crash with out-of-memory errors, as well as screwing up block propagation.”
His comments suggest that the bitcoin core may be evolving in a way that is not suitable for large volumes of microtransactions, to date one of the strongest value propositions for bitcoin, or that at the very least how to do so while maintaining the decentralized nature of bitcoin is unclear.
Core developer Mike Hearn suggested version 0.9.0’s addition of the payment protocol was the biggest takeaway. The technology allows for the creation of files that contain bitcoin addresses, but also more information that will help the bitcoin user experience grow with user expectations.
Explained Hearn:
“The bitcoin address had no way to add features to that like refunds, security, privacy upgrades, recurring billing, all these great features that people have been talking about for a long time.”
Among the other important changes was the update for Windows, which was made after frequent reports that users would run out of memory in 32-bit systems. Furthermore, an update has been made to the behaviour of ‘walletpassphrase’, which previously failed when already unlocked.
Core developer Tamas Blummer, who is also the CEO of bitcoin technology company Bits of Proof, indicated one of his favourite updates were to “OP_RETURN relay”, which standardizes how to commit short data to the block chain, and “reject message”, which gives feedback on transactions created by organisations that use a reference client.
The community reacted on both reddit and Bitcoin Talk forum, with bitcoin users lauding the quality of the development team and the breadth of the changes.
Still, though there are improvements, not everyone in the community believes the update goes far enough. Bitcoin Core remains, after all, a work in progress.
Said Blummer:
“I am disappointed to see no significant refactoring of the client toward a more modular architecture. It is foreseeable that the reference implementation will evolve to the router of the network while wallet functionality will be taken over by specialized software just like it happened with mining.”
Others suggested they would take a wait-and-see approach to the upgrade, waiting to download until bugs had been addressed.
Hearn, however, encourages all members of the bitcoin community not to wait to upgrade, stressing that key changes in this update could be very beneficial for the bitcoin ecosystem.
“It’s important that people upgrade, because if we don’t, we won’t be able to lower the [transaction relay] fees, and obviously the higher the fee is, the less attractive bitcoin is.”
The official release advises those running older versions of the protocol to proceed through the following steps:
Those running versions 0.7.2 or earlier will need to have their blockchain files re-indexed, a process which the development team suggests will take between 30 minutes and several hours.
Image credit: Update arrow via Shutterstock