Bitcoin Forum
November 17, 2024, 07:24:07 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: What is the status of the stealth addresses?  (Read 2829 times)
genjix
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
May 06, 2014, 10:22:49 AM
 #21

@dabura667
cheers.
so the prefix length cannot be bigger than 32 bits?
and if it was all 32 bits, but I could not find a matching nonce - what then? pick up a different "ephemkey"?


@genjix
yeah, I had gone through these specs.
none of them was even close to be as useful as one post from dabura667 Smiley

btw, building the tools on my old ubuntu 12.04 was a real fight.
first I needed gcc 4.7 (I had 4.6)
then leveldb version was apparently too old
and libbboost - I also had to upgrade this one to 1.49.
the biggest problem was that the errors I saw did not help much to diagnose the problems.
the second biggest: this version of ubuntu would not just upgrade any of these packages in a simple way.

cmon man upgrade your ubuntu. that is super old! ubuntu 14 is a new LTS
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2055
Merit: 1359


aka tonikt


View Profile WWW
May 06, 2014, 03:47:25 PM
Last edit: May 06, 2014, 06:23:30 PM by piotr_n
 #22

cmon man upgrade your ubuntu. that is super old! ubuntu 14 is a new LTS

It's because I usually don't upgrade something that works, especially an entire OS.
The only reason I upgraded WinXP to Win7 was that I needed a support for two graphic cards at the same time.

But I did listen to your advise and have upgraded it to 14.04.
The result is that I lost all my user accounts and all the apps, and now... I cannot build the tools again.
Not that I would not had expected it Smiley

Code:
  CXXLD    obworker
/usr/bin/ld: warning: libicuuc.so.48, needed by /usr/local/lib/libboost_regex.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libicui18n.so.48, needed by /usr/local/lib/libboost_regex.so, not found (try using -rpath or -rpath-link)
/usr/local/lib/libboost_regex.so: undefined reference to `u_charType_48'
/usr/local/lib/libboost_regex.so: undefined reference to `icu_48::Locale::~Locale()'
/usr/local/lib/libboost_regex.so: undefined reference to `icu_48::Collator::createInstance(icu_48::Locale const&, UErrorCode&)'
/usr/local/lib/libboost_regex.so: undefined reference to `u_digit_48'
/usr/local/lib/libboost_regex.so: undefined reference to `icu_48::Locale::Locale(icu_48::Locale const&)'
/usr/local/lib/libboost_regex.so: undefined reference to `u_tolower_48'
/usr/local/lib/libboost_regex.so: undefined reference to `icu_48::Locale::Locale()'
/usr/local/lib/libboost_regex.so: undefined reference to `u_isblank_48'
/usr/local/lib/libboost_regex.so: undefined reference to `u_charFromName_48'
/usr/local/lib/libboost_regex.so: undefined reference to `u_isspace_48'
collect2: error: ld returned 1 exit status

Anyway, its just my Linux test machine - I don't care about it.
But I did have a working sx, before upgrading - no more, though.


From the good news.
I think the stealth addresses are already working in Gocoin.
It's a bit of a hassle to spend money from such. You need to arm the online part with the scankey's secret and then use TextUI to fetch its balance data.
But using the wallet for spending to a stealth address - this is as easy as it can be; just use a stealth address in place of a regular one and voila.
Although... I cannot quite test it because currently whatever I send to any of my DW testnet addresses (stealth, or not) ends up in a limbo.
So I can only test it against my own client - this one can receive coins via a stealth address and spend it further, using own wallet.

Also I learned that a prefix of 32 bits would kill any wallet, unless you'd hook it to some kind of a mining board.
So my wallet does not support prefixes longer than 24 bits. And no multisig yet.

Thanks anyone for your help. That was fun. Now time to clean up the house a bit Smiley

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
dabura667
Sr. Member
****
Offline Offline

Activity: 475
Merit: 252


View Profile
May 06, 2014, 06:57:25 PM
 #23

@dabura667
cheers.
so the prefix length cannot be bigger than 32 bits?
and if it was all 32 bits, but I could not find a matching nonce - what then? pick up a different "ephemkey"?

Yes, this is how the current implementation of Dark Wallet does it.

If you run through all the nonces and no match is made, it breaks one do loop and returns to the ephemkey generation in the outer do loop.

My Tip Address:
1DXcHTJS2DJ3xDoxw22wCt11FeAsgfzdBU
genjix
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
May 06, 2014, 10:06:53 PM
 #24

piotr you will need to eventually upgrade anyway  Grin

we're on freenode irc #darkwallet too if you have any questions https://webchat.freenode.net/ or use XChat

I'm currently improving the stealth commands in SX then will merge to master after.
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2055
Merit: 1359


aka tonikt


View Profile WWW
May 06, 2014, 10:37:16 PM
 #25

Yep, and clean up the house.
But since it's after midnight here already, I decided to just have another beer now and postpone any such work till at least tomorrow. Smiley
I will like to exchange some test coins with another wallets' stealth addresses, so I'll try to catch you later.
Cheers

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2055
Merit: 1359


aka tonikt


View Profile WWW
May 09, 2014, 07:01:48 PM
 #26

If I may, I'd like to say that despite of my initial complaints the idea of the stealth addresses, as it has been implemented in DW, is actually pretty cool and works really nice.

Checking an output on whether it belongs to a specific stealth address is not so much time consuming, especially considering the fact that a node usually needs to do a several ECDSA_Verify operations on each transaction anyway.
And the idea with the prefix - very good one.
You can just start with prefix length 0, to protect your anonymity when there are just a few stealth addresses out there..
But when the volume of stealth outputs rises, you can increase the length of your prefix, saving the node's computing power though still staying anonymous.

Whoever designed it, great job!
And thanks - finally somebody not only invented/described, but also delivered an actually useful feature to the bitcoin ecosystem.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
genjix
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
May 10, 2014, 07:37:54 AM
 #27

piotr, http://sx.dyne.org/stealth.html
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2055
Merit: 1359


aka tonikt


View Profile WWW
May 10, 2014, 08:45:28 AM
Last edit: May 10, 2014, 09:25:41 AM by piotr_n
 #28

Yep, I saw it already - thx.

But it seems to be already working well in my s/w (sending and receiving).
I can exchanging coins via stealth addresses with DW - don't need sx for it anymore.

Unfortunately sx nor DW support stealth addresses with non-zero length prefixes ATM, so I cannot test that part of mine.
But zero length prefixes seem to work just fine.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
genjix
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
May 10, 2014, 09:56:41 AM
 #29

Yep, I saw it already - thx.

But it seems to be already working well in my s/w (sending and receiving).
I can exchanging coins via stealth addresses with DW - don't need sx for it anymore.

Unfortunately sx nor DW support stealth addresses with non-zero length prefixes ATM, so I cannot test that part of mine.
But zero length prefixes seem to work just fine.

correct. glad to hear that.
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2055
Merit: 1359


aka tonikt


View Profile WWW
May 10, 2014, 10:29:57 AM
 #30

btw, can I have the sx tools for testnet?

the ones I finally managed to build cannot even do
Code:
$ sx stealth-show-addr waPV5rHToBq3NoR7y5J9UdE7aUbuqJybNpE88Dve7WgWhEfvMrcuaSvF6tSQ3Fbe8dErL6ks8byJPcp3QCK2HHviGCSjg42VgMAPJb
sx: Invalid stealth address.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
genjix
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
May 10, 2014, 01:27:41 PM
 #31

btw, can I have the sx tools for testnet?

the ones I finally managed to build cannot even do
Code:
$ sx stealth-show-addr waPV5rHToBq3NoR7y5J9UdE7aUbuqJybNpE88Dve7WgWhEfvMrcuaSvF6tSQ3Fbe8dErL6ks8byJPcp3QCK2HHviGCSjg42VgMAPJb
sx: Invalid stealth address.

In the install-sx.sh script, in the function called install_libbitcoin, change ./configure with --enable-testnet

this line:

https://github.com/spesmilo/sx/blob/master/install-sx.sh#L313

Code:
install_libbitcoin(){
    ...
    ./configure --enable-leveldb --prefix $INSTALL_PREFIX --with-libsecp256k1=$INSTALL_PREFIX --enable-testnet
    ...
}
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2055
Merit: 1359


aka tonikt


View Profile WWW
May 10, 2014, 01:39:24 PM
Last edit: May 10, 2014, 01:53:35 PM by piotr_n
 #32

In the install-sx.sh script, in the function called install_libbitcoin, change ./configure with --enable-testnet
I think I did that.
Also added "--enable-testnet" for libwallet

I'm looking at config.log in libbitcoin-git and libwallet-git - they both show "ENABLE_TESTNET 1"
But the "sx stealth-show-addr" still says "Invalid stealth address" for any testnet stealth.

At the other hand it has no problems to decode a non-testnet stealth addresses.


EDIT:
I think I know where is the problem.
In libwallet-git/src/stealth.cpp, there should be:
Code:
#ifdef ENABLE_TESTNET
constexpr uint8_t stealth_version_byte = 0x2b;
#else
constexpr uint8_t stealth_version_byte = 0x2a;
#endif

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
genjix
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
May 10, 2014, 07:30:06 PM
 #33

In the install-sx.sh script, in the function called install_libbitcoin, change ./configure with --enable-testnet
I think I did that.
Also added "--enable-testnet" for libwallet

I'm looking at config.log in libbitcoin-git and libwallet-git - they both show "ENABLE_TESTNET 1"
But the "sx stealth-show-addr" still says "Invalid stealth address" for any testnet stealth.

At the other hand it has no problems to decode a non-testnet stealth addresses.


EDIT:
I think I know where is the problem.
In libwallet-git/src/stealth.cpp, there should be:
Code:
#ifdef ENABLE_TESTNET
constexpr uint8_t stealth_version_byte = 0x2b;
#else
constexpr uint8_t stealth_version_byte = 0x2a;
#endif

I added that in git.

Also now there is a --develop switch: bash install-sx.sh PREFIX --develop
ViewSonic
Member
**
Offline Offline

Activity: 116
Merit: 10


View Profile
May 11, 2014, 01:39:16 PM
 #34

I will be really interesting to exchange some test coins with another wallets' stealth addresses. If someone will do this - leave a feedback!
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2055
Merit: 1359


aka tonikt


View Profile WWW
May 11, 2014, 06:00:16 PM
 #35

I will be really interesting to exchange some test coins with another wallets' stealth addresses. If someone will do this - leave a feedback!
be my guest Smiley
Code:
waPV5rHToBq3NoR7y5J9UdE7aUbuqJybNpE88Dve7WgWhEfvMrcuaSvF6tSQ3Fbe8dErL6ks8byJPcp3QCK2HHviGCSjg42VgMAPJb

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!