Hi! One of the wallet main devs here. Sorry about not having posted much status on reddit, but we've been very busy with the firm goal of releasing soon. (note about perks, I think Cody will be updating soon on those, we're not managing that so please keep this topic for wallet development questions or feedback) Anyways, we have been starting more public communications, starting from the mailing list:
This week we have been delayed due to personal reasons, but hope we can meet the deadline for next week (sorry ppl). Alpha will mean big features are complete (multisig, coinjoin, stealth) and must support testnet. We are very close to "feature complete" on the chrome version, firefox version shouldn't take much once we have the chrome one running where we're basing our testing. The idea is as soon as we can finish off coinjoin (missing just a few things there) we will be looking into testnet release in order to release an alpha where ppl can test with fake coins. There is also some details about multisig spending we need a few days to finish off (at least to make it more automatic like the coinjoin). All in all, most of the hard work is already behind us, we have the following:
Robust bip32 implementation (on top of bitcoinjs-lib that we personally review and will review more), using it extensively for "pocket" support (high level coin control).
Multisig creation and importing (also creating spends without signatures... easier spending will come soon)
Stealth impementation (current version needs testing but we've already successfully tested a previous version)
Secure logical communication channel (using Curve25519) - this means the communications could go on top of different transports without security requirements, this is what coinjoin is built on at the moment. Whe have chosen curve25519 since it will allow more advanced cryptographic protocols than plain bitcoin curves, we did test the same thing before using bitcoin curve encryption only. 25519 supports blind signatures.
Multi identity. This means you can switch identity at any moment, and we could even run several at the same time (for now just run one simultaneusly).
Qr scanning of course
Identicons as visual hashes for checking fingerprints
Showing as different btc units
Show balance or pay using any other fiat (as supported by bitcoinavg at the moment) as denomination.
Not to forget the work done also on the backend that Amir is leading:
Lots of stabilization, testing and improments on libbitcoin and obelisk
Gateway working as frontend for the wallets
Transaction broadcaster with radar for better feedback
Some screenshots of current state (thanks zodman for taking the time to take those): http://i.imgur.com/SmlZ7Bb.pnghttp://i.imgur.com/JZPv9pz.pnghttp://i.imgur.com/CcLLecf.pnghttp://i.imgur.com/DPM4jAd.pnghttp://i.imgur.com/FA7TIA6.png We are aiming for a full featured wallet, and I think we're delivering soon, maybe it can take a bit more of time in development, but we're putting an incredible amount of effort and love into the wallet. Also, this is just the beginning, this is a infrastructure where soon we can layer much more functionality and we will do it. Also, don't think the project is the kind where we want to do a rushed release, rather delay a bit for really good testing and hardening. For people that want more specific dates, we can say we will release "when it's ready" and it's the right thing to do, but as said, I think we can take one week to release an alpha on testnet, then about two more weeks to stabilize and tie up things for a beta. During that period we will also be releasing technical documents on bitcointalk to validate our approaches to cryptographic techniques. We welcome ppl who want to test or check the code: https://github.com/darkwallet/darkwallet/blob/develop/README.md But only recommend it for more technical ppl at the moment (several reasons, check the readme where it says Pre-Alpha!). When we can release the alpha we'll make it better so it's safe to test for anyone. We are already at the point where the wallet is always working, just features are still dropping. If you want to support us, you can send BTC to the following multisig address: 32wRDBezxnazSBxMrMqLWqD1ajwEqnDnMc (https://wiki.unsystem.net/index.php/DarkWallet/Project_multisig_fund for details) Of course, all feedback or questions welcome! Kisses and thanks to all the supporters, we couldn't be doing this without you!!
This article - Why do my BIP32 wallets disagree? is a bit disconcerting. Results below provide evidence by example that Trezor and libbitcoin's bitcoin-explorer (bx) command line interface have seed portability. I thought I would try using the bitcoin-explorer (bx) command to see results generated to contrast to the article for m/44'/60'/0'/0/0. % echo "radar blur cabbage chef fix engine embark joy scheme fiction master release" | bx mnemonic-to-seed | bx hd-new -v 76066276 | bx hd-private -d -i 44 | bx hd-private -d -i 60 | bx hd-private -d -i 0 | bx hd-private -i 0 | bx hd-private -i 0 | bx hd-to-ec b96e9ccb774cc33213cbcb2c69d3cdae17b0fe4888a1ccd343cbd1a17fd98b18 *For an uncompressed public key:* % echo b96e9ccb774cc33213cbcb2c69d3cdae17b0fe4888a1ccd343cbd1a17fd98b18 | bx ec-to-public -u 0405b7d0996e99c4a49e6c3b83288f4740d53662839eab1d97d14660696944b8bbe24fabdd03888410ace3fa4c5a809e398f036f7b99d04f82a012dca95701d103 After dropping the leading 0x04 from the uncompressed public key, a keccak hash function (used by both Ethereum and Monero; is not NIST's SHA3-256) is applied. % ./keccak -256 05b7d0996e99c4a49e6c3b83288f4740d53662839eab1d97d14660696944b8bbe24fabdd03888410ace3fa4c5a809e398f036f7b99d04f82a012dca95701d103 0AB3387A148B3C4B18C333FCAC39B311DCEB2A4B2F5D8461C1CDAF756F4F7AE9 The bolded 20 byte Ethereum address immediately above matches the "Otherwise" result in the article up top. *For a compressed public key:* % echo b96e9ccb774cc33213cbcb2c69d3cdae17b0fe4888a1ccd343cbd1a17fd98b18 | bx ec-to-public 0305b7d0996e99c4a49e6c3b83288f4740d53662839eab1d97d14660696944b8bb After dropping the leading 0x03 from the compressed public key, % ./keccak -256 05b7d0996e99c4a49e6c3b83288f4740d53662839eab1d97d14660696944b8bb 1BE3816C914DCFF6C350BBFB1AEC8694FC4F546191026031FEFFB312D342B93B For grins, I decided to generate a comparable situation for Trezor using its web interface. I used the Trezor (with firmware v1.3.6 and v1.4) recovery instructions for the pertinent 12 word recovery seed, "radar blur cabbage chef fix engine embark joy scheme fiction master release", to see what the results are for an extended M/44'/0'/0'/0 xpub key to contrast to bx calculations. The resulting xpub key resulting from two restores is: xpub6DHi64TFkDPx2AH4q2ku3vX9LJYNpTis5tLrET8Sb9irp174eCkgtAnvBpyzQXgrtmF31Lrq4gTMGFUGcjJicMu9LdueVdqt6FZ2Wzcg8Fj % echo "radar blur cabbage chef fix engine embark joy scheme fiction master release" | bx mnemonic-to-seed | bx hd-new -v 76066276 | bx hd-private -d -i 44 | bx hd-private -d -i 0 | bx hd-public -d -i 0 xpub6DHi64TFkDPx2AH4q2ku3vX9LJYNpTis5tLrET8Sb9irp174eCkgtAnvBpyzQXgrtmF31Lrq4gTMGFUGcjJicMu9LdueVdqt6FZ2Wzcg8Fj Seed word results from Trezor and libbitcoin are consistent!!!
Key formats (raw, BIP32, WIF, compressed/uncompressed, minikey) Encoding functions (base 2/10/16/58/64/85) ... Bitcoin script engine (see libbitcoin-consensus for more information) Asynchronous P2P networking stack built on ASIO (moved to libbitcoin-network in version 3) General Purpose Features. Logging utilities; Patricia Trie template with binary alphabet; UTF8 Everywhere tools and ... libbitcoin-explorer is not just an RPC client that is different from the CLI client found in Bitcoin Core. It actually has a lot of the core library functionality in it. It has wallet commands, transaction commands, and other utilities. They are exposing parts of libbitcoin system library in the explorer tool itself. It also has a few server call methods, chainstate methods, transaction fetch ... This BIP describes the implementation of a mnemonic code or mnemonic sentence -- a group of easy to remember words -- for the generation of deterministic wallets. It consists of two parts: generating the mnemonic and converting it into a binary seed. This seed can be later used to generate ... This page describes a BIP (Bitcoin Improvement Proposal). Please see BIP 2 for more information about BIPs and creating them. Please do not just create a wiki page. Please do not modify this page. This is a mirror of the BIP from the source Git repository here. BIP: 39 Layer: Applications Title: Mnemonic code for generating deterministic keys Author: Marek Palatinus <[email protected]ilabs.com ... Key formats (raw, BIP32, WIF, compressed/uncompressed, minikey) Encoding functions (base 2/10/16/58/64/85) ... Bitcoin script engine (see libbitcoin-consensus for more information) Asynchronous P2P networking stack built on ASIO (moved to libbitcoin-network in version 3) General Purpose Features Logging utilities; Patricia Trie template with binary alphabet; UTF8 Everywhere tools and ...