• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

Cold storage spending....

joezippy

Active member
For what it's worth, I like the MN sustainability payout model, I have mined darkcoin (not worth the heat) and have the DASHs to setup MNs, but my DASHs are safe on 1k paper wallets all neat and tidy.... I don't want them on my phone or my linux laptop... In "beta" wallets, on any network... I'm comfortable setting up the linux MN, so that's not a worry... I want to help the community with MNs, but all cash is harder to make than spend or loose....

Still thinking.... Thoughts? I have looked around, but I can't see a way to setup MNs w/ paper wallets... Should be possible, but maybe I'm missing something.....

Keep up the great work!
 
Hello,

Any chance we could get this feature into the Dash Android Wallet in the future... This feature of the Mycelium wallet allows me to use my private key without ever importing it to a device or laptop... Which is really nice for larger one time spends and transfers... The only thing I need to worry about securing after the spend, is the same paper wallet... Any thoughts? Maybe DASH doesn't work the same way with Darksend and "burning the wallet on import".... Enlighten me... :)

Have a look here:


Thanks and keep up the good work!
 
Regarding cold storage spending:
Dash is currently supported by the most recent Encompass release (a modified version of Electrum which supports several alt-coins). Electrum has an option to use an online device in "watch-only" mode, and then when you need to make a spend you create a transaction for your OFFLINE device with private keys to sign. You then take the signed transaction back to the online device and broadcast it. I believe this can be accomplished with cameras and QR codes as well as USB stick file transfer. You can also use Encompass with the Trezor hardware wallet to store your Dash private keys in a pretty secure way.

Regarding offline (cold storage) Masternode collateral:

Encompass (electrum) does not support any of Dash's unique features such as anonymization and instant transactions, and especially not MN functionality. You will need to wait for an upcoming release of Dash Core that includes support for offline masternode management. Once we get that code in there, then it might be possible to adapt it for different ways of masternode starting/stopping/voting, like QR codes, or maybe even hardware wallets to "sign" the MN's vote or start signal...

With the current version of Dash it is just not possible yet. It is on the to-do-list, and rest assured that many others around here are patiently awaiting this feature, too.
 
Regarding cold storage spending:
Dash is currently supported by the most recent Encompass release (a modified version of Electrum which supports several alt-coins). Electrum has an option to use an online device in "watch-only" mode, and then when you need to make a spend you create a transaction for your OFFLINE device with private keys to sign. You then take the signed transaction back to the online device and broadcast it. I believe this can be accomplished with cameras and QR codes as well as USB stick file transfer. You can also use Encompass with the Trezor hardware wallet to store your Dash private keys in a pretty secure way.

Regarding offline (cold storage) Masternode collateral:

Encompass (electrum) does not support any of Dash's unique features such as anonymization and instant transactions, and especially not MN functionality. You will need to wait for an upcoming release of Dash Core that includes support for offline masternode management. Once we get that code in there, then it might be possible to adapt it for different ways of masternode starting/stopping/voting, like QR codes, or maybe even hardware wallets to "sign" the MN's vote or start signal...

With the current version of Dash it is just not possible yet. It is on the to-do-list, and rest assured that many others around here are patiently awaiting this feature, too.

Very nice detailed answer... Thanks! I wasn't aware that Electrum supported Dash... What are your thoughts regading the development effort and credibility of the Electrum effort? Not to bash anyone... It just seems pretty... You know... :rolleyes:

New Dash Core with off-line masternode management... Now we are talking! :cool: You guys rock...

Just thinking out loud.... I like the "paper wallet" broadcast model so much, I wonder if it won't become the future... Like this...

1) Coin in pocket (3D print maybe) with Private Key QR... (no battery, low cost, no network persistence , no device persistence, no cloud storage)
2) App on phone (not wallet) just "transaction interface"
3) Walk into coffee shop, order
4) Start "transaction interface" app
5) Scan coin QR
6) Scan merchant QR
7) Enter amount
8) Hit send

You could load the coin as you needed from other "paper wallets" just in case you have a hole in your pocket.... :wink:
This model is more secure and simplify the wallet code a ton, because it's just a blockchain reader, transaction signer and blockchain broadcaster.... :smile:

Thoughts?
 
Very nice detailed answer... Thanks! I wasn't aware that Electrum supported Dash... What are your thoughts regading the development effort and credibility of the Electrum effort? Not to bash anyone... It just seems pretty... You know... :rolleyes:

New Dash Core with off-line masternode management... Now we are talking! :cool: You guys rock...

Just thinking out loud.... I like the "paper wallet" broadcast model so much, I wonder if it won't become the future... Like this...

1) Coin in pocket (3D print maybe) with Private Key QR... (no battery, low cost, no network persistence , no device persistence, no cloud storage)
2) App on phone (not wallet) just "transaction interface"
3) Walk into coffee shop, order
4) Start "transaction interface" app
5) Scan coin QR
6) Scan merchant QR
7) Enter amount
8) Hit send

You could load the coin as you needed from other "paper wallets" just in case you have a hole in your pocket.... :wink:
This model is more secure and simplify the wallet code a ton, because it's just a blockchain reader, transaction signer and blockchain broadcaster.... :smile:

Thoughts?
Wow, you're not taking too long to throw yourself into the Dash ideas game! Great to have you with us, keep throwing ideas out there! The more minds we have thinking of ways to improve Dash, the better it is for all of the end users and investors.
 
Thanks guys for the kind words... 18+ years as a software engineer (stay @ home dad now) focusing on integration and cryptography seem to help.... :wink:
Sometimes the best solutions come from the physical world, not the virtual.... :rolleyes:

Cheers I'm going camping!
 
Last edited by a moderator:
Joezippy,
I hope you can join us for the next round of simulations in testnet,
github has been hot, not long now ..

Sure... I'm a little rusty... But I'd like to help out, if someone can point me in the right direction... I haven't used any testnet stuff to date...
github has been a while too... I have java and crypto skills from about 3 years ago... I might have some code in me still too.... :wink: Maybe
some code reviews? :grin:

The nice thing about the "transaction interface" model I proposed, is that it should be flexible and relatively easy to port to other currencies with
proper interface design....

I'm going to go out on a limb here and call my "transaction interface" the Anti-Wallet Payment Model (AWPM).... You like? :grin:
 
Ok.... Last thought on the Anti-Wallet Payment Model (AWPM) for today...
So, I actually used AWPM yesterday (not knowing) I did this:

0) Login to relatively secure (updated) linux laptop
1) Start private browsing session in Firefox
2) Get Bitcoin Private Key from paper wallet to secure machine clipboard
3) Go here: https-google/chart?cht=qr&chld=Q|2&chs=200&chl=paste private key here to make QR
4) Open new Firefox tab here: https-shapeshift-io
5) Provide ShapeShift Dash address for deposit
6) Start android app Mycelium
7) Choose ... "Cold Storage"
8) Choose "QR Code"
9) Scan Bitcoin Private Key google generated QR in Firefox
10) Scan ShapeShift Bitcoin deposit QR
11) Enter amount and hit send...
12) Wait for the Dash to roll in... :grin:
13) Restart phone and laptop...

Sorry about the links... It won't let me post them...

Did I miss something? un-secure? Please advise...
 
You're not missing much at all, in fact you creating it as you go along , lol.
You know we didn't have many testers for the android wallet by hashengineering, he managed to get the instantX working more or less ok, it was a little glitchy on my phone, small tao update sync time and only 6 meg on the phone, I was impressed by the bandwidth used, (think he uses a seed node)
There is a paper wallet scan on the latest release,
https://github.com/HashEngineering/darkcoin-wallet/tree/release-4/wallet

https://dashtalk.org/threads/android-wallet-for-dash-beta-testing-closed.4510/

Btw, I like the name Anti-Wallet Payment Model , although a physicist would call this a quasi-wallet payment system :grin:
 
"You're not missing much at all, in fact you creating it as you go along , lol.
Btw, I like the name Anti-Wallet Payment Model , although a physicist would call this a quasi-wallet payment system"


Nice.... I was thinking Anti-Pattern -> Anti-Wallet... :grin:

An anti-pattern (or antipattern) is a common response to a recurring problem that is usually ineffective and risks being highly counterproductive.[1][2] The term, coined in 1995 by Andrew Koenig,[3] was inspired by a book, Design Patterns, in which the authors highlighted a number of design patterns in software development that they considered to be highly reliable and effective.

The term was popularized three years later by the book AntiPatterns, which extended its use beyond the field of software design and into general social interaction and may be used informally to refer to any commonly reinvented but bad solution to a problem. Examples include analysis paralysis, cargo cult programming, death march, groupthink and vendor lock-in.

ref: wiki​

I'm going to look at those docs early next week... When I get back... Then I'll reach out again... Cheers! :smile:
 
"You're not missing much at all, in fact you creating it as you go along , lol.
Btw, I like the name Anti-Wallet Payment Model , although a physicist would call this a quasi-wallet payment system"


Nice.... I was thinking Anti-Pattern -> Anti-Wallet... :grin:

An anti-pattern (or anti pattern) is a common response to a recurring problem that is usually ineffective and risks being highly counterproductive.[1][2] The term, coined in 1995 by Andrew Koenig,[3] was inspired by a book, Design Patterns, in which the authors highlighted a number of design patterns in software development that they considered to be highly reliable and effective.

The term was popularized three years later by the book AntiPatterns, which extended its use beyond the field of software design and into general social interaction and may be used informally to refer to any commonly reinvented but bad solution to a problem. Examples include analysis paralysis, cargo cult programming, death march, groupthink and vendor lock-in.

ref: wiki​

I'm going to look at those docs early next week... When I get back... Then I'll reach out again... Cheers! :smile:

Aint heard that definition, have put it on the book list :cool:
Not same thing, but I read an interesting little book called 'anti-chaos' , basically inside all chaotic systems such as weather systems or even coin markets there is order(a tornado for example). Possibly even life itself is a complex type of order that springs from chaos (I like to divert threads wildly off topic btw, lol)
 
What are your thoughts regading the development effort and credibility of the Electrum effort? Not to bash anyone... It just seems pretty... You know... :rolleyes:
ThomasV is very respected in the Bitcoin community, and his credibility (and by extension, Electrum's) is not in question. I'm sure many thousands of BTC are stored in Electrum wallets. Encompass, however, is new and I personally would not trust it with thousands of DASH yet, but it is a solid proof of concept. And we now have a way to use Dash with a Trezor, which is really cool.

Just thinking out loud.... I like the "paper wallet" broadcast model so much, I wonder if it won't become the future... Like this...

1) Coin in pocket (3D print maybe) with Private Key QR... (no battery, low cost, no network persistence , no device persistence, no cloud storage)
2) App on phone (not wallet) just "transaction interface"
3) Walk into coffee shop, order
4) Start "transaction interface" app
5) Scan coin QR
6) Scan merchant QR
7) Enter amount
8) Hit send

You could load the coin as you needed from other "paper wallets" just in case you have a hole in your pocket.... :wink:
This model is more secure and simplify the wallet code a ton, because it's just a blockchain reader, transaction signer and blockchain broadcaster.... :smile:

Thoughts?
What you are describing is QR code / private key "sweep". HashEngineering's current Android Dash wallet that Sub-Ether mentioned already does QR code sweep in its current implementation downloadable at the Play Store.
 
ThomasV is very respected in the Bitcoin community, and his credibility (and by extension, Electrum's) is not in question. I'm sure many thousands of BTC are stored in Electrum wallets. Encompass, however, is new and I personally would not trust it with thousands of DASH yet, but it is a solid proof of concept. And we now have a way to use Dash with a Trezor, which is really cool.

Good to know... I'll keep following the project... Thanks! :smile:

ThomasVWhat you are describing is QR code / private key "sweep". HashEngineering's current Android Dash wallet that Sub-Ether mentioned already does QR code sweep in its current implementation downloadable at the Play Store.

Cool but... I'm not talking about a paper wallet "sweep"... But paper wallet "spend"... As the Private Key is never imported nor any coins into any "wallet" app, on any device...... I'm talking about spending from paper directly, memory only with block chain interaction.....

Here is a picture of what I'm thinking... :rolleyes:

Anti-Wallet Payment Method (AWPM) (0.0.1).png


More thoughts?

Cheers!
 
Cool but... I'm not talking about a paper wallet "sweep"... But paper wallet "spend"... As the Private Key is never imported nor any coins into any "wallet" app, on any device...... I'm talking about spending from paper directly, memory only with block chain interaction.....

What you are proposing DOES expose the private key to the online device, as that is the only way that system could work. Protected memory and destroying of the app is just not good enough, security wise. Any of the existing hardware wallet implementations currently available will be MUCH more secure than that, as the private key never touches the online device at all.

Here is how your scenario would work with a hardware wallet:

1. Your coffee shop generates a QR code on their POS terminal for your amount of purchase
2. You use your phone's wallet app (watch-only mode - no private keys on device) to scan that QR code.
3. Your phone's wallet app generates a QR code with the transaction info for your hardware wallet with private keys to SIGN.
4. You use the hardware wallet's camera to scan your cell phone's QR code to get the transaction signature request.
5. The amount of transaction and payee are displayed on the hardware wallet's screen
6. You press the "sign/approve" button on the hardware wallet, and it signs the transaction and generates a QR code on its screen.
7. You use your phone's camera to scan the hardware wallet's signature QR code into the phone's wallet app, enabling the transaction.
8. The signed transaction is then broadcast by the phone's wallet app on the internet and shows up as paid, on both your cell phone and the coffee vendor's screen.

The offline signing can be done with a thin credit-card sized hardware device that consists of just a small screen, a button, and a camera. No bluetooth, no wifi, no USB, no connectivity at all. There is literally no exposure of the private key at any time. This is pretty much how all hardware "wallets" work. They don't do the work of a wallet, per se. They just sign transactions for your "online wallet" with your private key in an offline / hardware separated way.

PS, I currently use a Ledger HW.1 along with GreenBits (GreenAddress) wallet on my phone to do exactly what I described above, except instead of QR code communication between online wallet and hardware wallet signing, the transaction request and signing takes place through the hardware-restricted USB interface of the HW.1. It works amazingly fast (thanks to GreenAddress which is SPV with BIP70 support). There is still some amount of trust required for the Ledger wallet, as anything USB could possibly be backdoored somehow. I'm waiting for a device like the one I described above to hit the market. This one is pretty close to what I described, but still more connectivity than is necessary. https://www.indiegogo.com/projects/coolwallet-most-convenient-bitcoin-cold-wallet#/story
 
What you are proposing DOES expose the private key to the online device, as that is the only way that system could work. Protected memory and destroying of the app is just not good enough, security wise. Any of the existing hardware wallet implementations currently available will be MUCH more secure than that, as the private key never touches the online device at all.

Here is how your scenario would work with a hardware wallet:

1. Your coffee shop generates a QR code on their POS terminal for your amount of purchase
2. You use your phone's wallet app (watch-only mode - no private keys on device) to scan that QR code.
3. Your phone's wallet app generates a QR code with the transaction info for your hardware wallet with private keys to SIGN.
4. You use the hardware wallet's camera to scan your cell phone's QR code to get the transaction signature request.
5. The amount of transaction and payee are displayed on the hardware wallet's screen
6. You press the "sign/approve" button on the hardware wallet, and it signs the transaction and generates a QR code on its screen.
7. You use your phone's camera to scan the hardware wallet's signature QR code into the phone's wallet app, enabling the transaction.
8. The signed transaction is then broadcast by the phone's wallet app on the internet and shows up as paid, on both your cell phone and the coffee vendor's screen.

The offline signing can be done with a thin credit-card sized hardware device that consists of just a small screen, a button, and a camera. No bluetooth, no wifi, no USB, no connectivity at all. There is literally no exposure of the private key at any time. This is pretty much how all hardware "wallets" work. They don't do the work of a wallet, per se. They just sign transactions for your "online wallet" with your private key in an offline / hardware separated way.

PS, I currently use a Ledger HW.1 along with GreenBits (GreenAddress) wallet on my phone to do exactly what I described above, except instead of QR code communication between online wallet and hardware wallet signing, the transaction request and signing takes place through the hardware-restricted USB interface of the HW.1. It works amazingly fast (thanks to GreenAddress which is SPV with BIP70 support). There is still some amount of trust required for the Ledger wallet, as anything USB could possibly be backdoored somehow. I'm waiting for a device like the one I described above to hit the market. This one is pretty close to what I described, but still more connectivity than is necessary. https://www.indiegogo.com/projects/coolwallet-most-convenient-bitcoin-cold-wallet#/story

I'm thinking that they only way my proposal based on the Android App Security Model (sorry not familiar w/ ios) could expose the Private Key would be, if it was programmed incorrectly or the device is ROOTED. If the device is ROOTED assume nothing is secure.

"Android has security features built into the operating system that significantly reduce the frequency and impact of application security issues. The system is designed so you can typically build your apps with default system and file permissions and avoid difficult decisions about security.

Some of the core security features that help you build secure apps include:

  • The Android Application Sandbox, which isolates your app data and code execution from other apps.
  • An application framework with robust implementations of common security functionality such as cryptography, permissions, and secure IPC.
  • Technologies like ASLR, NX, ProPolice, safe_iop, OpenBSD dlmalloc, OpenBSD calloc, and Linux mmap_min_addr to mitigate risks associated with common memory management errors.
  • An encrypted filesystem that can be enabled to protect data on lost or stolen devices.
  • User-granted permissions to restrict access to system features and user data.
  • Application-defined permissions to control application data on a per-app basis.
"
ref http://developer.android.com/training/articles/security-tips.html

"public static final int MODE_PRIVATE

File creation mode: the default mode, where the created file can only be accessed by the calling application (or all applications sharing the same user ID).
"
ref = http://developer.android.com/reference/android/content/Context.html#MODE_PRIVATE

The hardware wallet makes things overly complicated (thinking of grandma) and not any more secure in my option... Cool yes, practical no. :wink:

my2cents!
 
For what it's worth, I like the MN sustainability payout model, I have mined darkcoin (not worth the heat) and have the DASHs to setup MNs, but my DASHs are safe on 1k paper wallets all neat and tidy.... I don't want them on my phone or my linux laptop... In "beta" wallets, on any network... I'm comfortable setting up the linux MN, so that's not a worry... I want to help the community with MNs, but all cash is harder to make than spend or loose....

Still thinking.... Thoughts? I have looked around, but I can't see a way to setup MNs w/ paper wallets... Should be possible, but maybe I'm missing something.....
I've been looking through old threads and came across this thread: https://dashtalk.org/threads/masternode-not-on-list.820/

The person tried to set up his MN on a paper wallet without success... Propulsion said,
When you import the private key, you defeat the whole purpose of the encrypted paper wallet. You're no longer running a remote set up, you're running it all off of the amazon cloud server.
So I thought you might like to read it too. This thread was exactly one year ago... :)
 
I've been looking through old threads and came across this thread: https://dashtalk.org/threads/masternode-not-on-list.820/

The person tried to set up his MN on a paper wallet without success... Propulsion said,

So I thought you might like to read it too. This thread was exactly one year ago... :)

Very cool... Thanks for finding that... I still think it can be / should be possible... :smile:

Here is the AWPM app from 50k foot... Just drilling down a bit for my own edification... :wink:

Anti-Wallet Payment Method (AWPM) 50k.png

ref: http://www.javaworld.com/article/20...-for-beginners--part-3--the-bitcoinj-api.html

Cheers and comments welcome! :grin:
 
Back
Top