Bitcoin Forum
April 16, 2024, 11:37:16 AM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: RippleWarpWallet - a deterministic XRP wallet generator using scrypt & pbkdf2  (Read 264 times)
termhn (OP)
Full Member
***
Offline Offline

Activity: 126
Merit: 100


View Profile
July 08, 2017, 02:51:06 AM
 #1

You can find it here: https://termhn.github.io/ripplewarpwallet

RippleWarpWallet is a fork of the original WarpWallet used for making Ripple wallets instead of bitcoin ones. It is a deterministic ripple address generator. You never have to save or store your secret key anywhere. Just pick a really good passphrase - I recommend using Diceware, an online implementation of which you can find here - and never use it for anything else.

This is not an original idea. bitaddress.org's brainwallet is the original inspiration, and the original WarpWallet, of course, inspired this Ripple version. The source code is hosted on github.

WarpWallet adds two improvements over the traditional brainwallet:
(1) WarpWallet uses scrypt to make address generation both memory and time-intensive. And
(2) you can "salt" your passphrase with your email address. Though salting is optional, we recommend it. Any attacker of WarpWallet addresses would have to target you individually, rather than netting you in a wider, generic attack. And your email is trivial to remember, so why not?

These improvements make brute-force attacks impractical. The original WarpWallet has a bounty of 20BTC for anyone who can crack an 8-character alphanumeric password with a given salt that has yet to be claimed since February, 2016. If you use a decently strong mnemonic password, your wallet should be very safe.

If you're a programmer and want to implement WarpWallet yourself, here is the algorithm used. Ripple-specific functions are part of the ripple-keypairs npm package...

Code:
s1          =     scrypt(key=(passphrase||0x1), salt=(salt||0x1), N=218, r=8, p=1, dkLen=32)
s2          =     pbkdf2(key=(passphrase||0x2), salt=(salt||0x2), c=216, dkLen=32, prf=HMAC_SHA256)
secret      =     generateSeed(s1 ⊕ s2)
keypair     =     deriveKeypair(secret)
address     =     deriveAddress(keypair.publicKey)

If you want to donate to the author of this version, here are my addresses:
XRP: r3fMVf7RMkYwEKB12mPm3P8AiYWPYyBgdi
BTC: 15U8wNjnW2cUfwCfv5dm7GBmLTjZ1Sx1YV
ETH: 0x188a25F12c7ed69B4AF8593950748ea7f9Daa6a1
1713267436
Hero Member
*
Offline Offline

Posts: 1713267436

View Profile Personal Message (Offline)

Ignore
1713267436
Reply with quote  #2

1713267436
Report to moderator
The forum was founded in 2009 by Satoshi and Sirius. It replaced a SourceForge forum.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713267436
Hero Member
*
Offline Offline

Posts: 1713267436

View Profile Personal Message (Offline)

Ignore
1713267436
Reply with quote  #2

1713267436
Report to moderator
1713267436
Hero Member
*
Offline Offline

Posts: 1713267436

View Profile Personal Message (Offline)

Ignore
1713267436
Reply with quote  #2

1713267436
Report to moderator
1713267436
Hero Member
*
Offline Offline

Posts: 1713267436

View Profile Personal Message (Offline)

Ignore
1713267436
Reply with quote  #2

1713267436
Report to moderator
termhn (OP)
Full Member
***
Offline Offline

Activity: 126
Merit: 100


View Profile
July 08, 2017, 07:10:04 PM
 #2

Lil' bump
Pages: [1]
  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!