Development Update: Shadow v1.3.3.3 Release

Hello everybody,

It’s time for another development update to bring you up to speed with recent changes in the Shadow project.

The last weeks our main focus has been on the successful implementation of the HD Wallet into the ShadowCore platform, fixing GUI issues, bug smashing, testing, testing and more testing. While Tecnovert, St3bas and myself have been working on getting new Shadow components ready for our upcoming releases, a team was set up and is currently updating the documentation and writing new tutorials to help users navigate through the various features that are available for Shadow. We have launched a new, up to date, documentation website (doc.shadowproject.io) and will be adding text and video based tutorials as we move along. Details about the documentation will be revealed on our official development blog (blog.shadowproject.io).

For now, let’s look at some of the updates in more detail.

Hierarchical Deterministic (HD) wallet

We have successfully implemented a BIP32 framework and keys (HD Wallet) on which we will be building many interesting features in the future. For now, we have implemented a hierarchical deterministic wallet; that allows you to recover all the keys in a wallet using only the master key.

The latest version of ShadowCore is released and contains lots of code improvements and bug fixes. The biggest change is the implementation of a complete HD Wallet and a totally new user experience for management of your wallet keys. This was a fairly extensive update from our core developers. You can view the full details of the 156 changed files with 17,818 additions and 2,451 deletions. There’s a summary of the changes in the release notes here.

HD wallets really opened up a field of possibilities for Shadow because they are useful for multiple aspects of the project. For example: the implementation was a big step towards the release of our decentralized marketplace because we will be using BIP32 keys for the market categories. They allow us to have tree level categories in messages, so people can subscribe and publish to certain categories.

This HD Wallet consists of the following implementations:

BIP-0032; hierarchical deterministic wallet
BIP-0039; mnemonic sentence for the generation of deterministic wallets
BIP-0044; multi-account hierarchy for deterministic wallets

Technical Aspects:

BIP32 - https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
BIP39 - https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
BIP44 - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki

Below you will find some of the new features and advantages that these implementations bring to the Shadow platform:

  • You now only need to create a backup on initial creation.
  • Easily backup and restore your wallet without needing any other information (wallet backup and restore consists of simple list of 12 to 24 common words).
  • Conveniently create a single backup of the seed in a human readable format that will last the life of the wallet, without the worry of this backup becoming stale.
  • New receive and change addresses are used for each transaction.
  • Easily and securely accessed your wallet from multiple devices (Desktop, Mobile).
  • Use the same 12-24 mnemonic sentence as your Bitcoin HD wallet to create a Shadow wallet.
  • You no longer need to create a physical backup that can be traced or linked to your identity (just make sure you remember the 12-24 mnemonic series of words).
  • Use a single seed that generates all private keys (never lose any coins because you forgot to do a back up).

All of the above comes together into a very simple and elegant solution which brings you the first native hierarchical deterministic wallet on the Satoshi code base!

Hard Fork for Ring Signature update

We are ready to implement a new ring signature scheme on mainnet that is based on the efficiency improvement work of Adam Back and Andy Toshi. It offers a stunning >42% improvement over our current ring signature scheme. To add these changes we have implemented a hardfork for the 19th of October 00:00 GMT. Please make sure you have updated your client to the latest version before then.

To demonstrate the difference between the old and new ring signature scheme, see below for the before and after size of the data stored in the blockchain for a transaction with 16 ring signatures.

Before hard fork: ≈1.5KB
After hard fork: ≈1.11KB

To run the tests yourself, make sure you have all the dependencies needed to build the deamon, then cd shadow/src && make -f makefile.unix test, then ./testshadow -t ringsigtests -l all > ringsig_tests.txt.

*For more detailed information on the changes in this release please view: https://github.com/ShadowProject/shadow/blob/v1.3.3/release-notes.txt

ShadowCore v1.3.3.3 ***LIVENET***

Before downloading any of the files below, please make sure to backup your wallets first! The Shadow team uses Gitian as its software distribution method. Gitian uses a deterministic build process to allow multiple builders to create identical binaries. This allows multiple parties to sign the resulting binaries, guaranteeing that the binaries and tool chain were not tampered with and that the same source was used. It removes the build and distribution process as a single point of failure. We strongly advice you only download from official websites and if in doubt always double check.

http://shadow.cash/downloads/shadow 1.3.3.3 win32.zip
http://shadow.cash/downloads/shadow 1.3.3.3 win64.zip
http://shadow.cash/downloads/shadow 1.3.3.3 linux32.zip
http://shadow.cash/downloads/shadow 1.3.3.3 linux64.zip

Please note: Windows 10 pre-installed settings are privacy-intrusive by default, we highly recommend changing these settings. Go to: https://github.com/10se1ucgo/DisableWinTracking or http://windows.microsoft.com/en-us/windows/preview-privacy-statement for more information.

ShadowGo

The next release of ShadowGo is currently undergoing final testing. Once we have ironed out the last bugs we will move it to beta and begin public testing! This new version of ShadowGo uses the new SHA256 algorithm creating quite a number of improvements in terms of security, processing power and energy consumption; overall the update has resulted in a huge 60%+ reduction in the memory footprint of the application. To give you an idea the previous application used to consume between 650-750MB whereas the new one is ~100MB.

To give you a heads up, some of the new features will include:

  • Latest HTML5 Interface (new responsive design)
  • Thin mode support (less memory consumption)
  • ShadowChat support (encrypted messaging)
  • ShadowSend 2.0. support (private transactions)

ShadowGo sneak preview/promo video: https://www.youtube.com/watch?v=iM414dJEWBM

ShadowMarket

Now that we have successfully managed to implement a HD wallet into ShadowCore we will be moving on to the next stage of ShadowMarket’s development! Let’s take a look at what our team will be working on next:

  • ShadowCore V1.3.3.3 hardfork (19th October 00:00 GMT)
  • ShadowCore GUI v2 (november 2015)
  • ShadowMarket v1 (alpha) (november 2015)
  • Decentralized Escrow (tba)
  • Voting + Feedback and rating system (tba)
  • ShadowChat v2 (tba)

Now that most of our core developers are focussed on ShadowMarket’s development we’re getting closer to to finishing the first version (Alpha) of Shadow’s decentralized p2p commerce platform. Please note that the ShadowMarket Alpha testing phase will be exclusive and testing will only be available to a select number of people. Starting with community members that have made a donation or contributed to the Shadow project in the past. Stay tuned, because we plan to start sending out private invites around November this year!

As always, we look forward to hearing about your experiences and kindly request you send us your feedback on IRC or SLACK (#shadowtesting channel). That covers our development updates for now. If you have any questions regarding recent or upcoming changes you can contact us via IRC, SLACK or Github or following us on twitter.

The Shadow Project

Rynomster (lead developer)