Blake2b

From BitcoinWiki
This is the approved revision of this page, as well as being the most recent.
Jump to: navigation, search

Blake 2b is an algorithm based on the Blake 2 function alongside Blake 2s. In contrast to Blake 2s it is optimized for the usage with 64-bit platforms, while Blake2s is optimized for 32- bit platforms.

Both Blake 2 and Blake 1 family of algorithms were designed by Jean-Philippe Aumasson, who was the leader of the development team. Other members of the team are also prominent cryptography developers including Christian WinnerleinIt, Zooko Wilcox-O'Hearn and Samuel Neves. Blake 2b, alongside other members of the Blake family is based on the ChaCha stream cipher, developed by Daniel J. Bernstein. The main goal of Blake 2 is to provide hashing functions with the highest level of data protection. Indeed, no attack has been detected on BLAKE2 since its first publication.

Review[edit]

The BLAKE 2b hash function has 3 main features:

  • Iterative organization of data processing in HAIFA mode;
  • Internal structure is the local wide-pipe;
  • An improved version of ChaCha stream cipher, which is perfectly parallelized and has shown high security

A new improved version of the BLAKE protocol is called BLAKE2 and appeared at the end of 2012. It is a cryptographic hash function that is more efficient than MD-5, SHA1, SHA2 and is as secure as the latest SHA3 (Keccak) standard. BLAKE2 has been widely adopted by business projects due to its security and high speed.

In BLAKE2, in alternative to BLAKE, no adding constants to the round function is performed. It also changed shift constants and simplified their addition. Blake 2 algorithm added a block of parameters, which is added to the initializing vectors. In addition, the number of rounds reduced from 16 to 12 in the BLAKE2b function (Blake-512 analogue) and from 14 to 10 in BLAKE2s (BLAKE-256 analogue). As a result, the number of clock cycles per bit decreased from 7.49 for BLAKE-256 and 5.64 for BLAKE-512 to 5.34 and 3.32 for Blake2s and Blake2b, respectively.

The BLAKE 2 algorithm has two variations:

  • BLAKE 2b (or just BLAKE 2) is, as stated earlier, optimized for 64-bit platforms. It is also optimized for NEON-enabled ARM, and can generate digests of any byte size from 1 to 64;
  • BLAKE 2s is optimal for both 8 - and 32-bit platforms and generates digests of sizes from 1 to 32 bytes.

BLAKE 2 includes a 4-band parallel BLAKE2bp and 8-way parallel BLAKE2sp designed to improve performance on multi-core or SIMD processors.

Blake 2b implementations[edit]

  • The Zcash cryptocurrency uses BLAKE 2b in its proof of work - Equihash, and as a key derivation function
  • FreeBSD Ports package management tool uses BLAKE2b

As a pretty popular hashing function, Blake 2b is often provided by cryptography libraries, such as

  • Botan C++ library
  • Crypto++ - open source cryptographic library for C++, developed by Wei Dai.
  • Bouncy Castle - Java and C# based cryptographic library
  • Libgcrypt - a C-based library developed for the GNU Privacy Guard software
  • OpenSSL - software library mainly designed for the implementation of Secure Sockets Layer (SSL) and available for C, assembly and Perl
  • wolfSSL - SSL/TLS (Transport Layer Security) library made for the usage in the embedded systems development and used via C programming language.

Blake 2b coins[edit]

There are not many prominent cryptocurrencies using Blake 2b version of the Blake algorithm are Siacoin (SC) and Nano (NANO). Siacoin was developed by Luke Champine and David Vorick. It is a cryptocurrency that helps to power Sia as a decentralized data storage. Unlike many cryptocurrencies that have an aim to become a mean of exchange, Siacoin aims to use blockchain for the different purpose. It is for the establishment of the secure and robust network for data preservation.

Nano is a cryptocurrency that was designed to become a perfect coin for everyday transactions. It is easy to use, has no transaction fees and has almost unlimited scalability. Mentioned features, combined with low-power hardware - compatible Nano protocol made it one of the most successful coins on the market.

Blake 2b mining[edit]

Mining of the Blake 2b based coins is best performed with GPU. ASIC mining of the Blake 2b cryptocurrencies is shares the problems inherent to the ASIC mining of most of other cryptocurrencies. Many developers discourage ASIC mining and ASICs are vulnerable to forks. However, Siacoin developers are encouraging ASIC mining. Obelisk company - a business that was established by a part of the Siacoin development team is now the developer of ASICs specifically designed to mine Siacoin. The team stated that these ASICs would not be fought against.

See Also on BitcoinWiki[edit]

Sources[edit]