DarkWallet/Alpha3

From unSYSTEM
Jump to: navigation, search
Imbox.png   IMPORTANT The wallet is Not Stable, and at this point you should use it with real money only at Your Own Risk.


Agora trolling action.jpg

Remember, remember...

Today is 15 May and it's the day of our 3rd Alpha release.

We would like to remind people, that in 2011 this was the day when spanish people took on the streets to protest on a massive uprising. This followed the Tunisia and Egypt revolutions during the arab spring, and preceded the Occupy movement in what is now history. We know the people hasn't forgot the problems are not solved yet... or even close. In Spain also things are more rotten than ever with a corrupt cleptocracy entrenched in government.

Also, on the same day on 2010, the Catalonian Integral Cooperative was formed. This is a network of people working together on building a better future without the state and banks, where ecology, sustainability, freedom and human condition are at the heart of it. The project was started, among others by Enric Duran who counsels us, and also comprises Calafou a techno-industrial colonization (focused on sustainability and self-governance) where we based our activities before and serve of inspiration for our plans for the future.

Also, that day bitcoin had just recently surpassed 1$ for each btc soon to hit ~30$, but that is a different story and you know it well...

15m.jpg

Happy 15M!!!! ;-)

New features

Identity system deployed

a pair request

We deployed an identity system that will serve as the backbone for the darkwallet Web of Trust.

The idea is to have a simple system that will be compatible but separate with gpg and bitcoin signatures where we can safely share contact information and identity assertions.

This is a custom invention (using proven primitives in a more or less novel way...), and requires peer review to validate our assumptions. We will be looking for literature or more tested approaches, but the current implementation should serve as a statement of what we think is needed here.

More information at DarkWallet/Identity

New lobby features

private chat protected by D&H

Working on top of the identity system, we have added some of the missing features for the lobby:

  • Private messages with peers.
  • Request list for incoming pairing or beacon (uncloak) requests.
  • Pair button next to peer now works with v2 pair message (the real thing).
  • "Send beacons" button appearing next to a channel when we have paired contacts.
  • Peers fade out from the peer list after some time.


Pair requests

To use the identity contact you will need to pair with friends, at the moment this is thought to contact with trusted peers, we're sending public keys tied to your identity and you can't have several "profiles" for now, so don't abuse the feature.

So, two people can pair by sending each other a "Pair" request. When getting such a request, it can be accepted to add the peer to contacts together with their stealth address and identity address.

Accepting a pair request will also set the nick on our contact peer.

It is recommended to check the peer fingerprint (mnemoname should be enough but the tooltip shows the full fingerprint) out of band to ensure we're sending to the right cloak.

Beacons

a beacon

Next time two peers meet in a chatroom they will have new cloaks and initially can't recognize each other.

Alpha3-sendbeacons.png

A user can send beacons to a channel, presenting herself to known contacts that may or may not be in the channel. This is a button that appears next to the channel name on the top right.


Other peers will see the beacon arriving but can't decode it.

The peers receiving beacons will know what contact is paging them, and get the option to answer back (with a directed beacon) uncovering themselves to that contact.

For now beacons will have to be sent over public channels initially, but later we can define secret rendezvouz points for contacts.

SX may release - stealth tools, EC commands, HD keys

SX are command line utilities for sysadmins and techie types to exploit internal Bitcoin features. We've now added commands for working with BIP 32 HD keys and stealth payments.

This will enable a greater pool of people to access and use the Bitcoin technology.

See the tutorials on HD keys and stealth payments.

$ sx stealth-newkey
Stealth address: vJmwY32eS5VDC2C4GaZyXt7i4iCjzSMZ1XSd6KbkA7QbGE492akT2eZZMjCwWDqKRSYhnSA8Bgp78KeAYFVCi8ke5mELdoYMBNep7L
Scan secret: af4afaeb40810e5f8abdbb177c31a2d310913f91cf556f5350bca10cbfe8b9ec
Spend secret: d39758028e201e8edf6d6eec6910ae4038f9b1db3f2d4e2d109ed833be94a026
$ sx mktx txfile.tx --output vJmwY32eS5VDC2C4GaZyXt7i4iCjzSMZ1XSd6KbkA7QbGE492akT2eZZMjCwWDqKRSYhnSA8Bgp78KeAYFVCi8ke5mELdoYMBNep7L:100
Added output sending 100 Satoshis to 1BjqrpQqr4tY5YPQkL8aG7NGkFbTbiuVu.
$ sx fetch-stealth
ephemkey: 0276044981dc13bdc5e118b63c8715f0d1b00e6c0814d778668fa6b594b2a0ffbd address: 1DUhzP41otHNKijH4B6dZN1SRVuYJyYfrp tx_hash: 63e75e43de21b73d7eb0220ce44dcfa5fc7717a8decebb254b31ef13047fa518
ephemkey: 024398667c6a11652ae80fe6370e140cc67d4f82fb8310122cdaddae1524dad9e0 address: 1Nw1EKu8Y6mPGhMGyrKPS9TZWDyTPLvi8a tx_hash: 6a6246ccc7cb9427efee85dd3c7b80164f8a61213a7ce357b8cfd3816f59aab9
...
$ SEED=$(sx hd-seed)
$ echo $SEED
xprv9s21ZrQH143K3YEx9tNjNtm6FJJHWuKRMmnXw42Eq6RiKt7oRpkKViHPJDnVvVZweqnjxEn6UsFLmztqCc5STduaMMGbwxgwMEkR8xM5wbK
$ echo $SEED | sx hd-seed | sx hd-priv 0 | sx hd-priv 0 | sx hd-priv 1 --hard
xprv9zShfTYMrPQdXBs1x4zYcf99DGyvykdvYxfdovarBZTh7RTZZ5vNgrdS4eQDPTxN9YnjSzfjVf6eWvEKuNubwLUoEYNg5cDfKp5RQVmYj2x
$ sx help
...
EC MATH
   ec-add-modp                Calculate the result of INTEGER + INTEGER.
   ec-multiply                Multiply an integer and a point together.
   ec-tweak-add               Calculate the result of POINT + INTEGER * G.

Install globally:

$ wget https://sx.dyne.org/install-sx.sh
$ sudo bash install-sx.sh

Install locally (non-root):

$ wget https://sx.dyne.org/install-sx.sh
$ bash install-sx.sh usr/

Important fixes

A lot of things have been fixed, check DarkWallet/Alpha2/KnownIssues. Here are a few of the most relevant:

Gateway speed

Finally found the problem that was making obelisk and gateway communications go slow.

Obelisk queries should now be blazing fast and hopefully this ends the gateway stabilization period.

Stealth backgrounding (freezes)

Stealth was taking up too many gui resources so we have moved it to a background task. Now processing should not hog the gui and shouldn't be taking too many resources.

Mixer state machine improvements

We fixed some bad cases in the mixer state machine so it should send now more consistently.

Other fixes

  • Stealth receiving now properly
  • Multisig sending fixed

libbitcoin refactoring

The Bitcoin Toronto expo was a fantastic experience and the best tech event I've been to. During the event, libbitcoin devs sat down for a whole night where we discussed and created a development roadmap.

Thanks to fellow contributors William Swanson AirBitz and Eric Voskuil:

Libbitcoin toronto expo meeting.jpg

Since that time, we managed:

  • New elliptic curve types + functions, faster and cleaner interface by William.
  • Mostly migrated away from OpenSSL dependency. Only a few lines remain.
  • Lots of new unit tests.
  • Code cleanup and additional documentation to headers. Moving template implementation details to impl/*.ipp files.
  • Microsoft VC++ port by Eric.
  • Export symbols guarantee faster loading and executing of libbitcoin methods (thanks Eric).

This concludes the first phase of development, and now we will be focusing on the big meat. The biggest changes are yet to come.

Going further, we will see significant reorganisation of libbitcoin + related projects, project standardisation and quality, and new features for scalability and performance.

CZMQ++ wrapper

We are participating in ZeroMQ project and proud to say we use this visionary software for our infrastructure.

Our blockchain server (Obelisk) supports encryption/signing for its RPC interface with clients and implements a whitelist for controlling security policies. As part of that, we maintain a ZeroMQ project providing a minimal C++ wrapper around CZMQ called CZMQ++.

We also have a Python ZeroMQ library in slow development which will allow people to deploy our infrastructure with minimal fuss on their desktops, and even on mobile phones. And also promote the development of a line of various Dark Wallet applications.

Known Issues

The following issues are known at time of release of alpha3. You can see them more detailed here.

Cannot change name when adding from Pair to Contacts

We're checking the signature of the message once you already modified it and it fails, so you have to leave the name unmodified otherwise you cannot add it anyways.

Workaround: Don't modify the name for the contact in Pair messages before adding it to contacts.

Fixed: In 0.3.1, this was released short after 0.3.0 to fix this bug so you may have missed it.

Mixer can fail to finish

The mixer still needs some hardening. Now that we have fixed the gateway issues we can proceed to finish hardening it.

Failing to broadcast not cleaning up

When a transaction doesn't broadcast at all either because something was incorrect or the broadcaster wasn't there, the wallet may not clean up the funds. We're thinking about the best strategy for this situations, since we also don't want to promote double spending by failing to reserve funds when the tx was sent.

This shouldn't be so bad now but the issue needs some usability work to solve it completely.

Github Issue Tracker

You can check our issues on github for more detailed information.

Participate!

We welcome everyone that wants to participate in any of the projects related to darkwallet and its infrastructure, join on any of the following projects:

We have an IRC channel #darkwallet on Freenode. Use https://webchat.freenode.net/ or XChat to join.

Download

For now we're releasing through github using gpg signed git tags.

https://github.com/darkwallet/darkwallet/releases/tag/0.3.1

Support the project!

Your support goes a long way in maintaining us independent and working for the public interest. We use the support to hire more resources, servers and in general provide for the people building in our ecosystem.

Support us!
Walletlogo.png
Your support goes a long way in maintaining us independent and working for the public interest.
We use the support to hire more resources, servers and in general provide for the people building in our ecosystem.
alt 31oSGBBNrpCiENH3XMZpiP6GTC4tad4bMy
Support Darkwallet:
31oSGBBNrpCiENH3XMZpiP6GTC4tad4bMy
(Information about the fund)
    alt 339Bsc4f6jeh4k15difzbr4TTfoeS9uEKP
Support Libbitcoin:
339Bsc4f6jeh4k15difzbr4TTfoeS9uEKP
(Information about the fund)