On that note: I should've mentioned that this client does no blockchain validation. The assumption is made, that if the data made it into the longest blockchain, it is valid. I let miners do the work so I don't have to.
This may fly for blocks buried deep enough in the chain. But for recent blocks you need to check they are actually valid before propagating them further. Otherwise you get into a situation that nobody does any checking because he trusts that everyone else will do the checking and only feed him clean data.
But, of course, no one should really ever be trusting zero-conf transactions...
I disagree, there are certainly situations where 0-confirm transactions are to be trusted (notable example is paying for a latte).
"Deep enough" is the standard 6 blocks. If the rest of the world is building off a blockchain with your transaction 6 blocks deep I'm happy to accept it. If you flood my node with 100% dishonest connections and start sending me poisoned blocks... well there's nothing the Satoshi client with full node-validation can really do with that, either. As long as you have 1 honest node out of 100 connections, you will get the longest chain.
As for 0-conf transactions, you are allowed to trust them as much as you want, but I won't encourage it. All you need is 1
dishonest node out of 100 connections to start sending you invalid transactions. They can even send you transactions that would appear valid, but since my node doesn't check&forward them, I don't know that they weren't sent to any miners and won't actually be included in the blockchain. The only way to avoid this is with full-validation, but that's not something that
any lite-client will be doing.
However, since Armory connects through the Satoshi client, all data is filtered through it's full-validation behaviors. So you can trust the 0-confirmation transactions a bit more than you could on a real, light node, but I still wouldn't trust it too much. I mostly use it for confirmation that an expected payment entered the system, but there's too many things that can go wrong with 0-confs. Even 1-confirmation transactions have holes that could be exploited by determined (there's some posts on 1-conf exploits I participated in a while ago... I can dig them up if you are super-interested).
In terms of risk in accepting transactions, as a function of the number of confirmations, I would apply the following ranking (normalized by zero-confimation risk)
0: 100%
1: 30%
2: 3%
3: 2%
4: 1%
5: 1%
6: 1%
That's not just exponential decay... there's just extraordinarily fewer options for an attacker once the tx is 2 blocks deep. That's also why I change the text color from light gray to not-so-light-gray after 2 confirmations
![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)
(but you can't hold me responsible for things going wrong if you don't wait for 6)
Finway: Check out the Using_Armory.README file for more information about how to compile -- or wait for me to post specific/updated instructions. There might be more hints in the
PBE block-explorer demo thread (but you need to add a few things, like python-twisted, etc).