Pages:
Author

Topic: Mycelium Bitcoin Wallet - page 76. (Read 586368 times)

hero member
Activity: 707
Merit: 500
September 25, 2014, 09:14:36 AM
Could you explain this more precisely? What happens when I receive two amounts and later want to send them to another address. How exactly are they joined? Will that be two transactions?

It will be only one transaction.
Now, when you receive two transactions, you have two unspent outputs on one address, and when you send an amount which requires both of them, they get joined in a single transaction. The same thing will happen with HD, only difference is the two unspent outputs will be sitting on different addresses. So whenever you give someone your receiving address, it will be a fresh, unused one, and he can not check your previous transactions (note that he could probably link it to other addresses you use later, once you spend the coins - we will work on improving this through using some coinjoin methods sometime in the future).

When you send money, some outsider seeing the transaction can not easily determine how much was actually sent, cause the change will go to a brand new address as well, and we put outputs in a random order. HD alon will not grant perfect privacy, but is an important base step to get rid of address reuse and be able to build some fancy stuff on top.
hero member
Activity: 695
Merit: 500
September 25, 2014, 09:03:35 AM
In the upcoming version, when using an HD account, mycelium will as well generate a new address for each change. It will also generate a new receiving address every time you receive coins. All of this will take place under the hood, so you dont have to see or manage the keys, you just have an account with a balance where you can spend and receive.

Could you explain this more precisely? What happens when I receive two amounts and later want to send them to another address. How exactly are they joined? Will that be two transactions?

I appreciate all improvements that lead to more privacy.
legendary
Activity: 1039
Merit: 1005
September 25, 2014, 09:02:18 AM
You should probably submit your CV right now anyway, so you're first in line when a new hiring round starts  Smiley
Looks like they're a cool company to work for.

Onkel Paul

I don't know. I've cold submitted a few in the past and in my experience "We will keep your CV on file" never leads anywhere. Which is understandable. Hiring is usually a process.

I see that for big companies, but Mycelium is a pretty small company (yet) so it's unlikely that your CV would be stuffed away without being noticed. Submitting the CV now does not mean that you should then be quiet when they call for resumes in another hiring round, but that you should follow up with updated CV info and state your interest in their job offer.
Good luck whatever route you choose!

Onkel Paul
hero member
Activity: 707
Merit: 500
September 25, 2014, 08:58:49 AM
Yeah, change is kinda funky when you first learn about it. Even more fun is that many wallets actually generate a new change address to send the change to (So you end up with many different private keys in a wallet). I prefer the way Mycelium does it though.

In the upcoming version, when using an HD account, mycelium will as well generate a new address for each change. It will also generate a new receiving address every time you receive coins. All of this will take place under the hood, so you dont have to see or manage the keys, you just have an account with a balance where you can spend and receive.
hero member
Activity: 707
Merit: 500
September 25, 2014, 08:55:35 AM
So the 1 input = 0.2264032  is actually a transaction  or a combination of a few transactions that I have received once before, to the address that I am now sending from?

The input is the output of another transaction, so its probably the full amount sent to you in one single transaction.
(Technically, someone could also create a transaction with multiple outputs to the same address, thus dividing the amount you get into several chunks, but I see no reason someone should do that.)

If you want to learn more:
https://en.bitcoin.it/wiki/Transaction#Input
legendary
Activity: 2576
Merit: 2267
1RichyTrEwPYjZSeAYxeiFBNnKC9UjC5k
September 25, 2014, 08:46:24 AM

AHH Wow thanks for the lesson. Nice 1! I learnt something new.

So the 1 input = 0.2264032  is actually a transaction  or a combination of a few transactions that I have received once before, to the address that I am now sending from?

Yeah, change is kinda funky when you first learn about it. Even more fun is that many wallets actually generate a new change address to send the change to (So you end up with many different private keys in a wallet). I prefer the way Mycelium does it though.
legendary
Activity: 2576
Merit: 2267
1RichyTrEwPYjZSeAYxeiFBNnKC9UjC5k
September 25, 2014, 08:37:25 AM
Hey, if you have another round of hiring, you'll announce it here, right? I almost submitted my CV last time.

You should probably submit your CV right now anyway, so you're first in line when a new hiring round starts  Smiley
Looks like they're a cool company to work for.

Onkel Paul

I don't know. I've cold submitted a few in the past and in my experience "We will keep your CV on file" never leads anywhere. Which is understandable. Hiring is usually a process.
sr. member
Activity: 420
Merit: 250
September 25, 2014, 07:51:25 AM
Hi,

I just want to figure something out. In the normal classic version, I did a test transaction from a cold storage -- when I send BTC, I have 1 = Input Address & 2 outputs

1 input = 0.2264032 <<< Whats this? Where did this amount come from, it does not match the amount I have in my cold storage

2 Outputs = 0.00049719 & 0.02204313

Now it seems that the 2nd output is the Change, is this correct? Well then now I am confused, How can this be correct when I have more than this change in my wallet I used to send the BTC? Where the HELL did this input amount come from? All I did was send 0.00049719 to an address

Interestingly I did the same test in the new wallet, And the input amount is the amount that's in my wallet, the 2 outputs Equal the amount of the input which then equals the amount in this wallet. It seems like the change wallet is in effect big time in the new wallet, but the current version with non-hd wallet, which I happen to prefer does not make sense at all, I thought the change address was always in act but the old version just automatically sent it back to the same address. Then why cant I see all my change? All I see is this weird random amount of 0.22++


The balance of your wallet consists of all "unspent outputs" you have. Showing a single balance is just a convenient way of displaying information to you, technically the coins exist as "chunks". Whenever someone sends money to you, you get one of those chunks. So, what happened in the first case? You wanted to send money, the wallet selected one of the outputs ("chunks") big enough, and created a transaction, which sends out two new outputs, one to the recipient, one with change to you. So the 0.22... was just a part of your balance, but at some point prior to your transaction, you probably have received exactly that amount from someone.

In the second case, the reason for the input exactly matching your balance is, that you just have one single unspent output on that address.


AHH Wow thanks for the lesson. Nice 1! I learnt something new.

So the 1 input = 0.2264032  is actually a transaction  or a combination of a few transactions that I have received once before, to the address that I am now sending from?
hero member
Activity: 707
Merit: 500
September 25, 2014, 07:45:51 AM
Hi,

I just want to figure something out. In the normal classic version, I did a test transaction from a cold storage -- when I send BTC, I have 1 = Input Address & 2 outputs

1 input = 0.2264032 <<< Whats this? Where did this amount come from, it does not match the amount I have in my cold storage

2 Outputs = 0.00049719 & 0.02204313

Now it seems that the 2nd output is the Change, is this correct? Well then now I am confused, How can this be correct when I have more than this change in my wallet I used to send the BTC? Where the HELL did this input amount come from? All I did was send 0.00049719 to an address

Interestingly I did the same test in the new wallet, And the input amount is the amount that's in my wallet, the 2 outputs Equal the amount of the input which then equals the amount in this wallet. It seems like the change wallet is in effect big time in the new wallet, but the current version with non-hd wallet, which I happen to prefer does not make sense at all, I thought the change address was always in act but the old version just automatically sent it back to the same address. Then why cant I see all my change? All I see is this weird random amount of 0.22++


The balance of your wallet consists of all "unspent outputs" you have. Showing a single balance is just a convenient way of displaying information to you, technically the coins exist as "chunks". Whenever someone sends money to you, you get one of those chunks. So, what happened in the first case? You wanted to send money, the wallet selected one of the outputs ("chunks") big enough, and created a transaction, which sends out two new outputs, one to the recipient, one with change to you. So the 0.22... was just a part of your balance, but at some point prior to your transaction, you probably have received exactly that amount from someone.

In the second case, the reason for the input exactly matching your balance is, that you just have one single unspent output on that address.
sr. member
Activity: 420
Merit: 250
September 25, 2014, 07:32:57 AM
Hi,

I just want to figure something out. In the normal classic version, I did a test transaction from a cold storage -- when I send BTC, I have 1 = Input Address & 2 outputs

1 input = 0.2264032 <<< Whats this? Where did this amount come from, it does not match the amount I have in my cold storage

2 Outputs = 0.00049719 & 0.02204313

Now it seems that the 2nd output is the Change, is this correct? Well then now I am confused, How can this be correct when I have more than this change in my wallet I used to send the BTC? Where the HELL did this input amount come from? All I did was send 0.00049719 to an address

Interestingly I did the same test in the new wallet, And the input amount is the amount that's in my wallet, the 2 outputs Equal the amount of the input which then equals the amount in this wallet. It seems like the change wallet is in effect big time in the new wallet, but the current version with non-hd wallet, which I happen to prefer does not make sense at all, I thought the change address was always in act but the old version just automatically sent it back to the same address. Then why cant I see all my change? All I see is this weird random amount of 0.22++
hero member
Activity: 707
Merit: 500
September 25, 2014, 03:24:24 AM
Looks like they're a cool company to work for.

They definitely are!
legendary
Activity: 1039
Merit: 1005
September 25, 2014, 02:28:32 AM
Hey, if you have another round of hiring, you'll announce it here, right? I almost submitted my CV last time.

You should probably submit your CV right now anyway, so you're first in line when a new hiring round starts  Smiley
Looks like they're a cool company to work for.

Onkel Paul
legendary
Activity: 2576
Merit: 2267
1RichyTrEwPYjZSeAYxeiFBNnKC9UjC5k
September 24, 2014, 03:11:27 PM
Hi guys, I was having a little trouble working out a nice, safe way to get my private keys out of the data.xml for importation back into Mycelium. I think I could have used bitaddress.org but I decided to write something to do it for me. I'm letting it out to the public in case anyone else might find it useful (it also might be interesting to study for other purposes). It must be run in the same directory as the data.xml and it will spit out a list of the public, private and WIF encoded keys to the terminal and will create a webpage with the public and private keys listed on it as QR codes ready for scanning (I would recommend using a browser on the local filesystem to open it and not having it on a live web server (unless you're totally internet disconnected and probably not even then)).

This may be useful for creating a paper backup even. You may want to increase the level of the QR code in that case. Currently set to "L" for low.

Pretty cool stuff  Wink

With Mycelium 2.0 we migrate away from using data.xml and store stuff in a sqlite database instead, so there will be a bit of coding to get it out going forward.

Yeah, I looked in the dbs first. I'm good with all kinds of SQL so that wouldn't be a problem but really, this is a last-ditch kind-of effort anyway and proper backups is the ideal. And if the keys are ever encrypted, it won't help much (though it might still be possible to provide some interface there).

Ah well, it was more an excuse to play with keys and QR codes anyway Cheesy

Hey, if you have another round of hiring, you'll announce it here, right? I almost submitted my CV last time.

Jan
legendary
Activity: 1043
Merit: 1002
September 24, 2014, 02:09:37 PM
Hi guys, I was having a little trouble working out a nice, safe way to get my private keys out of the data.xml for importation back into Mycelium. I think I could have used bitaddress.org but I decided to write something to do it for me. I'm letting it out to the public in case anyone else might find it useful (it also might be interesting to study for other purposes). It must be run in the same directory as the data.xml and it will spit out a list of the public, private and WIF encoded keys to the terminal and will create a webpage with the public and private keys listed on it as QR codes ready for scanning (I would recommend using a browser on the local filesystem to open it and not having it on a live web server (unless you're totally internet disconnected and probably not even then)).

This may be useful for creating a paper backup even. You may want to increase the level of the QR code in that case. Currently set to "L" for low.

Pretty cool stuff  Wink

With Mycelium 2.0 we migrate away from using data.xml and store stuff in a sqlite database instead, so there will be a bit of coding to get it out going forward.
legendary
Activity: 2576
Merit: 2267
1RichyTrEwPYjZSeAYxeiFBNnKC9UjC5k
September 24, 2014, 12:38:51 PM
Hi guys, I was having a little trouble working out a nice, safe way to get my private keys out of the data.xml for importation back into Mycelium. I think I could have used bitaddress.org but I decided to write something to do it for me. I'm letting it out to the public in case anyone else might find it useful (it also might be interesting to study for other purposes). It must be run in the same directory as the data.xml and it will spit out a list of the public, private and WIF encoded keys to the terminal and will create a webpage with the public and private keys listed on it as QR codes ready for scanning (I would recommend using a browser on the local filesystem to open it and not having it on a live web server (unless you're totally internet disconnected and probably not even then)).

This may be useful for creating a paper backup even. You may want to increase the level of the QR code in that case. Currently set to "L" for low.

Code:
#!/usr/bin/perl
#Copyright 2014 Richard Thomas
#Free for noncommercial use
#Commercial license available on request.
#Tips to: 13qnEgPTxJW6mm88dLpnHXZyryN5EXBciq

use XML::Simple qw(:strict);
use Imager::QRCode;
use Math::GMP;
use Digest::SHA qw{sha256};
use strict;
use warnings;

my $qrcode = Imager::QRCode->new(
        size          => 4,
        margin        => 2,
        version       => 1,
        level         => 'L',
        casesensitive => 1,
        lightcolor    => Imager::Color->new(255, 255, 255),
        darkcolor     => Imager::Color->new(0, 0, 0),
    );

my $p1 = XMLin('data.xml',KeyAttr => { string => 'name' },ForceArray=>['string']);
my $c=$p1->{'string'}->{'records'}->{'content'};
my @v=split('\\|',$c);
my $p=2;
open (my $fp, ">" ,"index.html") or die ("Must be writeable");
print $fp "My keys\n";
print $fp "\n";
print $fp "\n";
while($pprint $fp "\n";
  $p+=8
}
print $fp "
WalletPublicPrivate
$v[$p]";
print "$p $v[$p] $v[$p+2] " , key2wif($v[$p+2]) . "\n";
  my $img=$qrcode->plot($v[$p]);
  $img->write(file=>"$v[$p].gif");
  if($v[$p+2]){
    $img=$qrcode->plot(key2wif($v[$p+2]));
    $img->write(file=>"$v[$p]_private.gif");
    print $fp "";
  }
  print $fp "
\n";
print $fp "\n";
close $fp;

sub key2wif{
  my $key=shift;
  my $out = hex2bin($key);
  my $out2=$out= "\x80" . $out;
  $out=sha256($out);
  $out=sha256($out);

  $out=$out2.substr($out,0,4);
  $out=gmpdec58(bin2hex($out));
  return $out;
}

sub bin2hex{
        my $b=shift;
        return unpack("H*",$b);
}
sub hex2bin{
        my $h=shift;
        return pack("H*"   ,unpack("A*" ,$h));
}
sub gmpdec58{
  my $h=shift;
  my $base58chars = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
  my $t='';
  my $remain=Math::GMP->new("$h",16);
  my $c=0;
  while($remain!=0 && $c++<2000){
    my $last=$remain%58;
    $remain=$remain/58;
    $t=substr($base58chars,$last,1).$t;
  }
  return $t;
}
legendary
Activity: 1680
Merit: 1035
September 24, 2014, 10:22:55 AM
I was trying to send via QR scan. The keyboard/clipboard functions seem to be missing too. Screenshot: http://i.imgur.com/ugVeQmN.png

For future reference, this is what it looks like if you select a watch only address. You can receive to it, but not send from it, so the send button disappears.
legendary
Activity: 2576
Merit: 2267
1RichyTrEwPYjZSeAYxeiFBNnKC9UjC5k
September 24, 2014, 09:25:22 AM
I had to wipe my phone the other day. I did have a full backup of the data dir first though. I have a QR backup of my main Bitcoin account but since I also had a couple of watch-only addresses and I'm sitting at the computer anyway, I'm wondering if/how I can pull it out of the backup. I'm comfortable using SQLite though data.xml looks like a more likely candidate. Anyone know exactly how to pull these things out?

Answered previously, here.

https://bitcointalksearch.org/topic/help-mycelium-wallet-sealed-up-into-a-locked-cell-phone-309895

Thanks apetersson
newbie
Activity: 3
Merit: 0
September 24, 2014, 06:03:51 AM
When you go to the Keys tab, is there a key icon next to the address you are trying to send from? If not, you have probably scanned the address from your backup instead of the private key.
Does the correct balance show on the main screen?
In which way do you try to send? Do you hit send, use clipboard, just scan with the scan button, use the cold storage functionality?

Ah, no, I don't see the key icon. I thought I had scanned my private key. Yes, the correct balance does show on the main screen. So do I have to load my backup again in a different way? Only scan the private key?

I was trying to send via QR scan. The keyboard/clipboard functions seem to be missing too. Screenshot: http://i.imgur.com/ugVeQmN.png

Edit: Deleted the address. Scanned private key from backup and used decryption code. All working again. Smiley
legendary
Activity: 1680
Merit: 1035
September 24, 2014, 02:32:01 AM
Are the servers down? I have a tx that has 9 confirmations on btc.blockr.io, but only one in the tx view. (Yes, I have hit "Sync").

http://btc.blockr.io/tx/info/9abbc3106f3d8000fa72f5f50ea3681cab23d98e1b43f98e5ab5b037725e337a


Edit: Aaaand it's back! Smiley

We had an issue with Server 1, again. We decided to finally replace it. If something like this happens to your wallet again, exit out of Mycelium and start it again. It will pick another server at random, and will probably pick a different one from the one that locked up.
legendary
Activity: 1358
Merit: 1001
https://gliph.me/hUF
September 24, 2014, 01:34:07 AM
Are the servers down? I have a tx that has 9 confirmations on btc.blockr.io, but only one in the tx view. (Yes, I have hit "Sync").

http://btc.blockr.io/tx/info/9abbc3106f3d8000fa72f5f50ea3681cab23d98e1b43f98e5ab5b037725e337a


Edit: Aaaand it's back! Smiley
Pages:
Jump to: