Wednesday, January 11, 2017

Litecoin Core v0.13.2

Follow the Google+ page or Twitter for the latest dev news.
We are pleased to release Litecoin Core 0.13.2, a major release featuring many protocol level improvements, code optimizations, the ability to roll out several soft forks at once and the greatly anticipated segregated witness (segwit) innovation. Some of the most notable features include:
  • Segregated Witness - to allow for greater transaction output and mitigation of transaction malleability.
  • Hierarchical Deterministic wallets - Litecoin Core will support hierarchical deterministic wallets also known as HD wallets.
  • Faster signature validation using the libsecp256k library developed by Bitcoin Core developers.
  • Wallet pruning to reduce block size storage.
  • Memory usage improvements including better mempool filtering of transactions.
  • Inbuilt Tor control socket API support if Tor is running and also stream isolation for Tor communication.
  • Functionality to reduce upload traffic.
  • ZMQ support - ZeroMQ is a high performance asynchronous messaging library, aimed at use in distributed concurrent connections. Litecoin will support ZMQ for broadcasting block and transaction data.
  • Obfuscated blockchain data - Several antivirus applications detect the Litecoin stored blockchain data as a malware threat. Litecoin 0.13 will obfuscate the blockchain data to rid these false positives.
This update will also see the inclusion of several BIPs which can be seen below;
  • BIP9 - This BIP allows multiple soft fork changes to be deployed in parallel.
  • BIP32 - This BIP allows Litecoin Core to support hierarchical deterministic wallets.
  • BIP68 - This BIP allows relative locktime enforcement through sequence numbers.
  • BIP111 - This BIP extends BIP 37, Connection Bloom filtering, by defining a service bit to allow peers to advertise that they support bloom filters explicitly. It also bumps the protocol version to allow peers to identify old nodes which allow bloom filtering of the connection despite lacking the new service bit.
  • BIP112 - This BIP is a proposal to redefine the semantics used in determining a time-locked transaction's eligibility for inclusion in a block. The median of the last 11 blocks is used instead of the block's timestamp, ensuring that it increases monotonically with each block.
  • BIP113 - This BIP describes a new opcode (CHECKSEQUENCEVERIFY) for the Litecoin scripting system that in combination with BIP68 allows execution pathways of a script to be restricted based on the age of the output being spent.
  • BIP130 - This BIP adds a new message, "sendheaders", which indicates that a node prefers to receive new block announcements via a "headers" message rather than an "inv".
  • BIP133 - This BIP adds a new message “feefilter”, which serves to instruct peers not to send “inv”s to the node for transactions with fees below the specified fee rate.
  • BIP141 - This BIP defines a new structure called a “witness” that is committed to blocks separated from the transaction merkle tree.
  • BIP143 - This BIP contains the logic for signature verification for version 0 witness program.
  • BIP144 - This BIP contains the logic for new messages and serialization formats for propagation of transactions and blocks committing to segregated witness structures.
  • BIP147 - This BIP contains changes to the transaction validity rules to fix a malleability vector.
  • BIP152 - This BIP add compact block relay to reduce the bandwidth required to propagate new blocks.
For details on all the changes made in Litecoin Core 0.13.2, please read the release notes.

Segregated Witness Upgrade Information

The segwit soft fork is fully backwards compatible with all Litecoin wallets, so you will continue to be able to safely send and receive Litecoins whether or not segwit is activated. You can track activation at http://litecoinblockhalf.com/segwit.php.
Segwit timeline:
  • Signal: Miners will be able to signal that they are willing and able to enforce segwit starting at the beginning of the first 8064-block retarget period on or after 28 January 2017 (UTC).
  • Lock-in: If 75% of blocks within any retarget period signal support for segwit, it locks-in. SegWit transactions are now opt-in.
  • Activate: After another 8064-block (roughly two week) retarget period, segwit will activate, allowing miners to produce blocks containing segwit transactions on Litecoin’s mainnet.
When segwit is activated, transaction-producing software will be able to separate (segregate) transaction signatures (witnesses) from the part of the data in a transaction that is covered by the txid. This provides several immediate benefits:
Segwit benefits

1. Elimination of unwanted transaction malleability

Segregating the witness allows both existing and upgraded software to calculate the transaction identifier (txid) of transactions without referencing the witness, which can sometimes be changed by third-parties (such as miners) or by co-signers in a multisig spend. This solves all known cases of unwanted transaction malleability, which is a problem that makes programming Litecoin wallet software more difficult and seriously complicates the design of smart contracts for Litecoin.

2. Capacity increase

Segwit transactions contain new fields that are not part of the data currently used to calculate the size of a block, which allows a block containing segwit transactions to hold more data than allowed by the current maximum block size.
Estimates based on the transactions currently found in blocks indicate that if all wallets switch to using segwit, the network will be able to support about 70% more transactions. The network will also be able to support more advanced-style payments - such as multisig - than currently possible. This is as a result of the different weighting given to different parts of a transaction after segwit activation (see the following section for details).

3. Weighting data based on how it affects node performance

Some components of Litecoin blocks are required to be stored by nodes in order to validate future blocks; other components can be immediately forgotten (pruned) or used for helping other nodes sync their copy of the blockchain.
One large part of the immediately prunable data are transaction signatures (witnesses), and segwit makes it possible to give a different “weight” to segregated witnesses to correspond with the lower demands they place on node resources. Specifically, each byte of a segregated witness is given a weight of 1, each other byte in a block is given a weight of 4, and the maximum allowed weight of a block is 4 million. Weighting the data this way better aligns the most profitable strategy for creating blocks with the long-term costs of block validation.

4. Signature covers value

An improvement in signature generation due to segwit simplifies the design of secure signature generators (such as hardware wallets). This reduces the amount of data the signature generator needs to download, and allows the signature generator to operate more quickly and efficiently. This is made possible by having the generator sign the amount of Litecoins they think they are spending, and by requiring supernodes to reject those signatures unless the amount of Litecoins being spent is exactly the same as was signed.
For non-segwit transactions, wallets instead had to download the complete previous transactions being spent for every payment they made, which could be a slow operation on hardware wallets and in other situations where bandwidth or computation speed was constrained.

5. Linear scaling of sighash operations

In 2015 a block was produced that required about 25 seconds to validate on modern hardware because of the way transaction signature hashes are performed. Other similar blocks, or blocks that could take even longer to validate, can still be produced today. The problem that caused this can’t be fixed in a soft fork without unwanted side-effects, but transactions that opt-in to using segwit will now use a different signature hashing method that doesn’t suffer from this problem and doesn’t have any unwanted side-effects.

6. Increased security for multisig

Litecoin addresses (both P2PKH addresses that start with a ‘L’ and P2SH addresses that start with a ‘3’) use a hash function known as RIPEMD-160. For P2PKH addresses, this provides about 160 bits of security—which is beyond what cryptographers believe can be broken today. But because P2SH is more flexible, only about 80 bits of security is provided per address.
Although 80 bits is very strong security, it is within the realm of possibility that it can be broken by a powerful adversary. Segwit allows advanced transactions to use the SHA256 hash function instead, which provides about 128 bits of security (that is 281 trillion times as much security as 80 bits and is equivalent to the maximum bits of security believed to be provided by Litecoin’s choice of parameters for its Elliptic Curve Digital Security Algorithm.)

7. More efficient almost-full-node security

Satoshi Nakamoto described a method for allowing newly-started supernodes to skip downloading and validating some data from historic blocks that are protected by large amounts of proof of work. Unfortunately, Nakamoto’s method can’t guarantee that a newly-started node using this method will produce an accurate copy of Litecoin’s current ledger (called the UTXO set), making the node vulnerable to falling out of consensus with other nodes.
Although the problems with Nakamoto’s method can’t be fixed in a soft fork, segwit accomplishes something similar to his original proposal: it makes it possible for a node to optionally skip downloading some blockchain data (specifically, the segregated witnesses) while still ensuring that the node can build an accurate copy of the UTXO set for the block chain with the most proof of work. Segwit enables this capability at the consensus layer, but note that Litecoin Core does not provide an option to use this capability as of this 0.13.2 release.

8. Script versioning

Segwit makes it easy for future soft forks to allow Litecoin users to individually opt-in to almost any change in the Litecoin Script language when those users receive new transactions. Features currently being researched by Litecoin Core contributors that may use this capability include support for Schnorr signatures, which can improve the privacy and efficiency of multisig transactions (or transactions with multiple inputs), and Merkelized Abstract Syntax Trees (MAST), which can improve the privacy and efficiency of scripts with two or more conditions. Other Litecoin community members are studying several other improvements that can be made using script versioning.

Null dummy soft fork

Also in Litecoin Core 0.13.2 and combined with the segwit soft fork is an additional change that turns a long-existing network relay policy into a consensus rule. The OP_CHECKMULTISIG and OP_CHECKMULTISIGVERIFY opcodes consume an extra stack element (“dummy element”) after signature validation. The dummy element is not inspected in any manner, and could be replaced by any value without invalidating the script.
Because any value can be used for this dummy element, it’s possible for a third-party to insert data into other people’s transactions, changing the transaction’s txid (called transaction malleability) and possibly causing other problems.
Since Litecoin Core 0.10.0, nodes have defaulted to only relaying and mining transactions whose dummy element was a null value (0x00, also called OP_0). The null dummy soft fork turns this relay rule into a consensus rule both for non-segwit transactions and segwit transactions, so that this method of mutating transactions is permanently eliminated from the network.
Signaling for the null dummy soft fork is done by signaling support for segwit, and the null dummy soft fork will activate at the same time as segwit.
For more information, please see BIP147.

Download Binaries

To download, please visit the download page or you can browse the download folder here.


Please use GPG to verify the integrity of the release binaries. This ensures that the binary you have downloaded has not been tampered with. Linux, MacOS and Win32 cygwin command line GPG instructions are available here. Please also note that we GPG sign the binaries as a convenience to you, the ultimate way to verify the integrity of the builds is to build them yourself using Gitian. Instructions on how to perform these builds, can be found here.


For this release, the binaries have been signed with key identifier FE3348877809386C (thrasher's key).


WARNING
Despite this version being heavily tested, this version may still contain bugs.  Always backup your wallet.dat file before upgrading. If you encounter any issues, please let us know by posting to the bug reporting section below.


Source code & Build instructions

The master branch contains the latest commits to the next stable releases of Litecoin Core.


Build instructions for Linux can be found here.
Build instructions for OSX can be found here.


Bug Reporting



Submit any issues you encounter here and one of the Litecoin developers will assist you.


Mailing Lists



Sign up for announcements only or development discussion.

Conclusion

Litecoin Core 0.13.2 is the only soft fork release planned for the 0.13 release series. The next major planned release is Litecoin Core 0.14.0, which has feature freeze scheduled for summer 2017 and release to follow after all testing is completed (this typically takes more than a month in order to give everyone sufficient time to test).

Hashes for verification

These are the SHA-256 hashes of the released files:

f7895a5dcf6a148a8e94dfa8237697182b6520bfad4e0f47d3a8e4b4817d3913 litecoin-0.13.2-aarch64-linux-gnu.tar.gz d527eed106c65ffdfa9a71795361a73e9c132cdf17d8a395213acf93d28f9dba litecoin-0.13.2-arm-linux-gnueabihf.tar.gz b96830643e8df764c6569249fa860bc5ecefcfac312530e1bb79d367e74e88a7 litecoin-0.13.2-i686-pc-linux-gnu.tar.gz ae13cb967ff65dcfbbb00cce3ff7be9593179a313280772e30cc0af0bb361340 litecoin-0.13.2-osx64.tar.gz 958d821d27273fa0d1544c09ee3c0299649f0dce99fe4422cc5420c5144056c7 litecoin-0.13.2-win32-setup.exe a64d7b7ee53f89483eb92ebbb3a752b2f520881ed9d2110b01cc50fe6641600e litecoin-0.13.2-win32.zip d3b1628f12050582480f13d232ffe5b62caae9d4d7ac42c1559b706a50884818 litecoin-0.13.2-win64-setup.exe e1b95bea3f42ca46a3d8dcf6af97ca08589402bc654bdb54e02a1e909bfbfe10 litecoin-0.13.2-win64.zip 63c82a4d0d526b1d058c74e7da12186ae47dd86616ce95b195263e1fda2ee230 litecoin-0.13.2-x86_64-linux-gnu.tar.gz fdd354ddd4dc98c88b4c6c3b341c2b48497c9220926d670658155b5b040a46bd litecoin-0.13.2.tar.gz 5a86edc58c9bbc0ee059e933e5b94470f168caa76557bc8f255b35d3c8530954 litecoin-osx-signed.dmg

No comments:

Post a Comment

For technical support please go to the LitecoinTalk.org forum. Blog comments are a bad place for discussion.