Bitcoin Forum
May 25, 2024, 04:03:43 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ... 186 »
81  Bitcoin / Armory / Re: Does Armory take a long time to synch up for you when you start it? on: October 21, 2014, 05:23:32 AM
This is likely to get much better soon with the new version of Core (headers-first) announced recently.  Much of the startup time is not Armory's fault, it's the fact that Bitcoin core has a terrible system for "catching up" with the blockchain.  It's easy to get stuck behind one very slow peer and take 20 minutes to download a few megabytes.  There isn't anything Armory can do about that.

But the new headers-first Core should solve those problems, and allow you to synchronize and catch-up as fast at your full download speed.  The only time you would wait for Armory is when you need to rescan, but that should be rare these days, and will be even better in the next major release.


I hope so!  I was about to give up on bitcoin because of this issue.

I see you are a developer, and not to get too far off topic (I also code, but not as an employee), I see Armory is: " C++ code... Python code", which makes sense, as C++ is very popular with those that like granularity and Python is supposedly good for I/O (I use C# myself for both).  What is the 'typical' Armor programmer resume?  How many years of experience doing peer-to-peer stuff do you need?  What are good books on peer-to-peer (I once built a simple p-to-p using C# using 'delegates')?  I find it's hard to find online tutorials for peer-to-peer, and just now I see I'm not the only one who thinks this way (http://stackoverflow.com/questions/23738/why-is-peer-to-peer-programming-a-hard-topic-to-obtain-good-research-for )

TonyT

Armory uses Bitcoin Core in the background so that we don't have to worry about the P2P stuff.  I mean, we have to understand Bitcoin network/protocol security, but we specifically use Core because Core is developed by a ton of people who've made it their job to harden all that stuff in all dimensions, better than we ever could.  As far as we're concerned, it's our obligation to use Core as our gateway to the network, if we want to be as secure as possible.

Armory uses a mix of Python & C++.  C++ is much more rigorous, low-level, and optimizable.  Just about any heavy-lifting is done by C++ (like scanning the 25 GB blockchain and computing balances).  But for application development, C++ isn't  fluid enough for us.  Python is extremely flexible and makes it easy to create complex interfaces, handle corner cases, threading, exceptions, and has a billion libraries available that save you time instead of reimplementing it yourself.  C++ development can be slow, and the syntax is rigorous and inflexible (for instance, it's very nice to be able to create python functions with a dozen args, set defaults, and then only specify the ones you want on a given call, you can't do that in C++).

We use a tool called SWIG which allows you to compile C++ code into a DLL and creates a wrapper to make it accessible via python.  It's actually quite magical, because python and C++ are kind of polar opposites, with a huge diversity of strengths and weaknesses.  Being able to combine them with SWIG means that you can avoid all the weaknesses and write new code on whichever side of the python/C++ fence has the strengths you need.
82  Bitcoin / Armory / Re: Please help to downgrade Armory on: October 21, 2014, 05:14:15 AM
My offline machine runs armory 0.88.1 on ubuntu 10.04 which now won't sign transactions from my online 0.92.3 on ubuntu 12.04.

For ice-cold reasons, I'd rather downgrade my online than upgrade my offline (is that a song?) but it's tricky. I've downloaded the .deb file for 0.91.2 but it leads to the software centre where it stops because it notices that I already have a more recent version. What can I delete/rename to let it install and revert to .91? I don't want to just clean it all off and lose the blockchain and databases. Thanks.

You can uninstall the existing version of Armory.  It will leave your wallets and blockchain and databases intact.  Nothing to worry about.  Of course, you should have a backup anyway, but an install/uninstall cycle only affects the installation directories, not the directories holding wallets or databases.
83  Bitcoin / Armory / Re: Does Armory take a long time to synch up for you when you start it? on: October 21, 2014, 05:02:58 AM
This is likely to get much better soon with the new version of Core (headers-first) announced recently.  Much of the startup time is not Armory's fault, it's the fact that Bitcoin core has a terrible system for "catching up" with the blockchain.  It's easy to get stuck behind one very slow peer and take 20 minutes to download a few megabytes.  There isn't anything Armory can do about that.

But the new headers-first Core should solve those problems, and allow you to synchronize and catch-up as fast at your full download speed.  The only time you would wait for Armory is when you need to rescan, but that should be rare these days, and will be even better in the next major release.

84  Bitcoin / Armory / Re: Armory & Headers first on: October 14, 2014, 02:12:35 PM
I'm sure it can be handled.  Will armory work as is or do you know it won't?

For reference, when I did the upgrade from RAM-only to LevelDB-backed databases, I designed the DB build&scan operations to accommodate out of order blocks in the blk*.dat files.  Basically because I heard murmurings of this change coming more than a year ago.

However, I never actually tested it and there might be something stupid preventing it from working, but it should be a very short upgrade path to make it work. 

In the future, I'd like to get away from blk*.dat files altogether and just pull things over P2P from your localhost Core instance.  If you do that, you can guarantee you get them in order, though there other nice benefits (like no longer even having to specify a --satoshi-datadir, and being able to use a single trusted Core instance on a network for a bunch of Armory instances).
85  Bitcoin / Armory / Re: Armory - Discussion Thread on: October 14, 2014, 02:08:54 PM
Alan, what do you think of "Hash Hyena" claims?

He basically says that he is generating trillions of addresses non stop and getting a few collissions that will grow over time. His logic is that the entropy of Armory, Bitcoin Core, Multibut, Electrum etc. (and generally any other wallet that uses a RNG based on software) is flawed and results in a highly reduced keyspace, which will result in collissions with enought computing power and space devoted to private keys bruteforcing.

See: https://bitcointalk.org/index.php?action=profile;u=380718;sa=showPosts

What is your position on that? I remember that Dabs (I think) requested a feature in order to input "true entropy" from a physical source (a decks of cards, dices, etc.) - how's the progress on that? It might be a good thing to mitigate software RNG issues, but I assume it might be difficult because an unssavy user might make entropy worse by not using "true entropy" right.

If those apps are using truly poor RNGs, then I suppose it's possible.  But it would have to be pretty bad to be getting collisions within trillions of addresses +/- a few orders of magnitude.  Address strings are 160 bits.  So a collision means that two different public keys produce the same address.  If you want to "collide" with someone else, i.e. get an address string that matches someone else who has coins, it will take you approx 2160/numberOfUsers.  Even if we assume a trillion users&addresses (240), that's still 120 bits left which is within range of universally secure (128 bits).

Now, if he wants to generate gajillions of addresses and find collisions within any two of them, that's remarkably easier, but also remarkably less useful.  The idea being that he wants any two public keys that have the same hash.  i.e. generate addresses until you have two that match.  Not useful, since you're guaranteed to collide with an address that has no money, but it would still be interesting.

In such cases, if the number scales with approx sqrt(N).  i.e. if you are generating 160-bit values, there's 2160 possibilities.  You need to generate approximately sqrt(2160)=280=1,208,925,819,614,629,174,706,176 to have a single collision.  That's a trillion trillion... while that might actually be possible with an extrardinary amount of computing power (in the future), you're still generating collisions that don't benefit you.

Scale all this by the quality of the RNG -- if the RNG is weaker, the state is reduced.  Technically, if the hash160 (ripemd160) is weak, the address space could be smaller too.  But I would have a tough time believing that desktop apps would not be producing enough entropy, as long as they are using a good RNG.

On that note, Armory uses Crypto++ was is considered a cryptographically-secure RNG (X9.17 with OS-provided seeding).  On top of that, Armory pulls in system files, mouse clicks, keypresses, and a desktop screenshot, to add to the Crypto++ RNG entropy pool.  I made sure when selecting these sources that it would guarantee at least 256 bits of entropy to be added to the pool even if Crypto++ was really weak.

You're right about the external entropy:  we don't provide an option for users to add their own entropy for the reason you described (it becomes a channel for creating brainwallets, too).  However, we do it ourselves because it's pretty simple with a deck of cards and a python shell with armoryengine loaded.  I've posted elsewhere how to do this, but I don't say it a lot because I don't want it too easy to find out Smiley  Primarily because I'm 200% comfortable with Cryptopp + external entropy, so I don't feel there's any practical reason to prefer that beside enjoying "seeing" the entropy yourself.
86  Bitcoin / Armory / Re: (!) Armory Brain Wallet on: October 13, 2014, 05:47:50 AM
By the way, it's fairly established that the english language has 0.8 to 1.2 bits per letter.   Rather, grammatically correct, properly spelled english has appoximately one-eighth the amount of entropy as its length.  So for the phrase you picked as an example has 68 letters, so between 54 and 81 bits of entropy.  This is somewhat strong, but on the low-end, still brute-forceable.   

Root keys should never be generated with less than 128 bits of entropy.  That is both a reasonable, forever-secure value, and also the approximate protection level of a 256-bit ECDSA private key (ECDSA private keys have about half the seucirty of their length).

Even if you're holding $100, 54 bits of entropy is really quite terrible considering that an attacker can brute-force all brainwallets in the world with the same brute-force search.   You can improve it with some solid passphrase stretching, but for any significant amounts of money no one should even be taking this risk.
87  Bitcoin / Armory / Re: Funds indication error - 0.000000 BTC on: October 08, 2014, 03:25:45 AM
More specifically, the wallet is watching-only and not marked as belonging to you.  As a security precaution (stupid people importing watch-only wallets from others), it doesn't show you the history by default.

Either select "All wallets" on the filter at the bottom.  Or in the wallet properties, click on "Belongs to:" and change it to say it's yours.

88  Bitcoin / Armory / Re: Armory - Discussion Thread on: October 08, 2014, 03:24:11 AM
I went ahead and installed the newest version of mint.
I then reinstalled bitcoin-core through the ubuntu ppa.
Now when I'm trying to run armory it is asking for an installation directory..
does anyone one know where it gets installed through a PPA install?
or am I gonna have to download and install the linux zipped file?

Use the Secure Downloader within Armory.  It was designed to make this easy.  And it's especially easy on Linux:  two ways to get to it:

(1) Announcements tab at the bottom
(2) Help->Update Software

Select Ubuntu and 32/64 as appropriate.  Click on Bitcoin Core 0.9.3.  When it's done downloading, it will automatically check the digital signatures on it and then adjust your settings to use it.  Just restart Armory.
89  Bitcoin / Armory / Re: Armory and TOR? on: October 07, 2014, 04:24:13 PM
Hello Everyone!

I'm trying to set up Armory to run with the current Bitcoin-QT with the proxy set to run through TOR. If I start Armory while Bitcoin-QT is proxied through TOR, Armory can't connect. What do I need to do so that Armory can connect to either bitcoind or bitcoin-qt with the proxy set to TOR? Any help would be greatly appreciated!



FYI - There's a few threads on this subforum already about this.  I wont' repeat them but they should be easier to find.

But when you do find them, I'll tell you something you can share with them:  the latest release 0.92.3 adds options explicitly for using Armory with Tor.  You can either use "--tor" from the command line (best option), or load Armory once and go into the settings and select the Tor-friendly option there.  There was some issues with previous versions of Armory doing various checks outside the proxy.  Make sure you're using the latest.
90  Bitcoin / Armory / Re: Unable to send. Issue with addresses with many small deposits. Logs included on: October 07, 2014, 02:50:47 PM
That error suggests a malformed transaction.  I'm not sure how that would happen since Armory is creating the Tx for you and thus it shouldn't be malformed.  Perhaps the DB is corrupt and it's blindly dumping a corrupt previous-tx into the one you're trying to sign?   Strange.

But it is true that if you have a lot of dust, you should try sending yourself many small transactions to try to clean it up.  If you have 0.1 BTC with 1,000 inputs, try sending yourself 0.01 at a time.  Your balance will remain the same, but then once it all confirms you'll be able to send all of it at once (then it only combines 10 inputs instead of 1,000)
91  Bitcoin / Armory / Re: How do you import an Armory paper wallet to another wallet? on: October 07, 2014, 02:46:39 PM
As an aside, I'm shocked that Armory creates paper wallets that are completely dependent on a functioning online Armory running which includes having the entire 30GB (and growing!) blockchain, rather than paper wallets that can be restored by any wallet or standard encryption.


You're confusing the paper backup and bitcoin private keys. 

- The paper backup is a seed that allows you to recover every private key ever created and will ever be created by your wallet.  It's called a "deterministic wallet," and Armory was the first wallet to implement that which is why it's not compatible with anything else.
- The individual private keys are what hold the actual money.  Those are derived from the paper backup.  Backing those up only backup the coins they currently hold, but don't help you if you use more addresses.

In your case, you want the private keys.  Start Armory in offline mode (there's usually a shortcut installed with it specifically for offline mode).  Then load the Armory wallet and go to backup options.  "Export Key Lists".  There you can get the first 100 raw private keys that can be imported into another app (you might have to click "Include unused" since Armory will think that all the addresses are currently unused).

 
92  Bitcoin / Armory / Re: Armory - Discussion Thread on: October 07, 2014, 02:50:17 AM
Sorry for the delay guys.  First, my release script was broken, and I wasn't able to sign the 0.92.3 tag before making the full release.  I had planned to do it the next day.  The next day my primary hard-drive died before I could complete the process.  D'oh!

Anyways, I got everything sorted out now and I just pushed the tag v0.92.3.  That should complete the release.  Future releases should have the signed tag pushed at the same time the signed installers are uploaded to S3.
93  Bitcoin / Armory / Re: Armory - Discussion Thread on: October 07, 2014, 12:50:09 AM
Every time I updated Armory (windows 64 bit version) my antivirus software quarantines “guardian.exe”  I wasn’t able to find a satisfactory explanation as to its function.

can anyone shed some light on the following questions:

What does it do? Why does Armory need it?
My Armory seems to functions just fine without it, is there anything I should know or be concerned about? 
Is it safe to ask my antivirus to ignore this file?

Thanks,


If you use auto managed bitcoind, it will be ran monitor the bitcoind instance spawned by Armory. If Armory was to crash, it will kill that bitcoind instance and exit.

More specifically, if Armory runs Bitcoin Core for you in the background, sometimes it will leave Bitcoin Core running in the background if Armory crashes.  guardian.exe is a very short program with the sole purpose of killing Bitcoin Core if Armory fails to close it.  It was especially important on Windows where Armory would mysteriously fail to close Core even on a clean shutdown. 

If you quarantine guardian.exe and don't allow it to run, you'll be fine.  But you might occasionally start Armory and it will tell you Core is already running, even though you never started it.  You'll have to go into the task manager and kill it manually.
94  Bitcoin / Armory / Re: Armory - Discussion Thread on: October 06, 2014, 02:59:02 PM
Not sure if I found a bug or not but it sure seems like something that shouldn't work the way it does. Here's my scenario:

I use an old, offline machine running linux just for the purposes of offline signing for a couple Armory wallets. All was fine and dandy until I forgot the encryption passphrase for one of them. Not to worry though, right? Because I have the paper backup. So with that encrypted wallet for which I couldn't remember the encryption passphrase still in the list, I "recovered" the same wallet using the root key paper backup. It then gave me 3 options: to cancel, merge, or overwrite (with the text for "merge" saying that it would create a new passphrase). I chose the merge option. It then proceeded to "calculate new addresses" which was pretty processor intensive and ran for about 5-7 minutes. I didn't figure this was an issue and that it was a one-time thing so I didn't think much of it. Then I tried to spend from the wallet. I generated the transaction on an online computer, saved the tx file, loaded the tx file for signing on the offline computer, and then it did the same long processing activity (probably about 5 minutes) and it was finally signed. Saved the signed tx file, went to online computer, broadcast, and it went on without a hitch.

I haven't tried again as I don't have any reason to spend / send again but I'm wondering if I will have to deal with the 5-minute processing every time because I have a "merged" wallet with the passphrase changed.

And now that I think about it, what is the difference, on an offline machine, between a "merged" wallet and an "overwritten" wallet with a new encryption? Seems a bit redundant since the addresses, amounts, and transaction history aren't tracked.

In wallets that are encrypted (should be most of them) it sometimes generates all the addresses from the public keys when it doesn't have your password to generate the private keys with it.  In that case, it marks all the private keys to be calculated next time you unlock the wallet, which could be a lot of keys.  But once it is done, or won't need to do it again so each subsequent unlock should be much faster
95  Bitcoin / Armory / Re: (!) Armory Brain Wallet on: October 05, 2014, 05:30:57 AM
Could you please prove the terrible entropy of sha256(sha256('any password'))? I think predetermined computer's random is worse.

The act of hashing a password doesn't increase its entropy.  The number of possible passwords is the total entropy.    You can use sha256100('bob') as your brain wallet, but anyone who looks at your applet will see that it uses sha256100(pwd) and will write a program to start guessing through possible passwords passed through that function.   All users that used "bob" as their password will immediately have their coins stolen, regardless of how many times you hash it.

A while back there was a user here who write a program to do a brute force search of brainwallets that use sha256(sha256()).  I believe they found in excess of 100 BTC.  Because people pick memorizable passwords and wanted to believe that no one would find it.   And in reality, people don't realize just how fast computers are at guessing and how weak their own entropy is.  For your reddit login, the stakes aren't very high.  For $100,000 bitcoin wallet, I would be horrified if someone used a brain wallet.

Admittedly, your little javascript applet is very slick.  But Armory Technologies will not be supporting the functionality since it so easily leads to lost coins.  Our job is to not only create secure software, but to promote best security practices.  Having a solid backup solution is one of those best practices.
96  Bitcoin / Armory / Re: Old unconfirmed Dust tx's won't go away on: October 05, 2014, 01:11:43 AM
Armory has a memory pool file that persists between loads.  However, you can manually clear it using Help->Clear All Unconfirmed

If they show up again, then Bitcoin Core is rebroadcasting them (perhaps to try to get them mined?).

That worked.  if Bircoin-qt is not relaying why did they show up in the first place?

Bitcoin-Qt was relaying them (I had some of that dust, too).  It but it wasn't re-relaying them, so clearing the mempool made them go away. 

It's possible, if you restart Core, that its memory pool will clear allowing them to be re-relayed again if someone rebroadcasts, but I think the newer versions of Core should reject them as non-standard and not relay them.
97  Bitcoin / Armory / Re: Old unconfirmed Dust tx's won't go away on: October 05, 2014, 01:01:32 AM
Armory has a memory pool file that persists between loads.  However, you can manually clear it using Help->Clear All Unconfirmed

If they show up again, then Bitcoin Core is rebroadcasting them (perhaps to try to get them mined?).
98  Bitcoin / Armory / Re: How to get a list of UXTOs? on: October 05, 2014, 01:00:01 AM
First of all, there are some examples you can use in the extras directory in the project.  Also some stuff here:

https://bitcoinarmory.com/developers/python-scripting/

Those might be slightly out of date, but require minimal modification to make them work.  And for such a script, I recommend doing TheBDM.setBlocking(True), which is better for scripts ... it means that the BDM, while still in a separate thread, will behave like it's in the same thread, and every request will block until it's done.  The sample_armory_code.py in the extras directory shows you an example of both.

You can use wlt.getTxOutList('Spendable') to get a list C++ TxOut objects:

https://github.com/etotheipi/BitcoinArmory/blob/master/ui/TxFrames.py#L826

You can then run them right through Armory's coin-selection algorithm:

https://github.com/etotheipi/BitcoinArmory/blob/master/ui/TxFrames.py#L598

That should be enough to hold you over in the short-term Smiley
99  Bitcoin / Armory / Re: (!) Armory Brain Wallet on: October 04, 2014, 11:01:28 PM

Armory Technologies strongly advises against the use of brain wallets under any circumstances.

  • For most humans, a wallet with sufficient entropy to be secure would not be memorizable.  Thus, if it is memorizable, you're at significant risk of someone being able to steal your funds with brute-force searching.
  • Human-generated passwords have terrible entropy.  You must use a cryptographically-secure random number generator to create your wallets.  Armory provides this for you, but not if you use a brain wallet.
  • Humans brains are not well-adapted to remembering such information for long periods of time.  You may remember it now.  You might remember it in 6 months.  What about 3 years?  10 years?  If you've ever forgotten a password, do not use a brain-wallet.
  • Even if you think you can get around the three points above, it still means that you take your Bitcoins to your grave with you.  If I was your parent/spouse/kid, I would hope that if something unfortunate happens to you that I'll have a way to get access to your savings.  Brain-wallets have no such mechanism and the coins will be lost forever.

To anyone who wants to better protect their wallets, we strongly encourage you to use a regular Armory wallet with fragmented backups instead.  They provide a flexible combination of physical security, redundancy, will have sufficient entropy, and be recoverabe by family members if needed.  

We can't stop people who are really determined to make brain wallets, just don't say you weren't warned!
100  Bitcoin / Armory / Re: Armory - Discussion Thread on: October 04, 2014, 07:58:21 PM
---

ok, got it.

but i have to say, this whole section on your website needs to be re-written and clarified if you want to stop getting these questions:

...

Yes, that should still work for the regular non-offline-bundle installers.  And it was supposed to work with the debs inside the bundle, but it seems that I make the bundles before I sign the .debs (so the bundle ends up with the non-signed version).  But the whole tar.gz gets signed anyway, so the dpkg-sig signature is redundant, and the fact that I screwed up the redundant sig is what threw you off.  It's better to use the hash anyway, since it covers all the files in the .tar.gz, not just the Armory installer itself.

I'd like to make this simpler, but there's just so many OSes, so many signature layers, and a complex web of operations performed to make sure everything is consistent (such as making sure that the installers are signed before making the hashes file, which needs to be signed, before creating the announce digest, that needs to be signed, so the secure downloader gets the right file with a valid signature.  I wish we could just use the secure downloader for everything, but the fact is that people have to somehow verify the first version of Armory that they get, which requires the GPG stuff. 
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ... 186 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!