so my question in this scenario is what will the offline and watching only wallets "look" like in terms of their ledgers in the example of a business with a cash register with say 100 newly generated addresses on it after a days work?
lets say the owner only wants to move the btc from 75 of these new addresses that took in money during the day but not do anything with the other 25. after the attendant brings the owner the usb stick who then has his offline computer sign the tx's to move the money to the owner's address, what happens to the ledger in the offline wallet? will it show the 25 unsigned tx's in it? in other words what exactly are we moving with the usb stick, individual tx's or all changes to the wallet?
On the offline computer, Armory will detect no internet and go into "offline mode." From there, it doesn't even bother trying to show balances or ledger entries: there's nothing to show! The sole purpose of the offline computer is to look at unsigned transactions, determine if it has the keys to sign them, then offer to do so (and asking user for decryption passphrase if necessary).
To know exactly what is transferred via USB key, see
BIP 0010. It is basically just a standard way to create a block of text that contains the transaction to be signed, and all transactions it is spending from (so input values can be verified). It was intended for multi-sig signature collection, but it works great for offline wallets (treating them as just a 1-of-1 tx). What is described in BIP 0010 is the only thing that is put on the USB key. No other information.
The reason this is safe, is that the transaction and all the supporting transactions contain 100% of the information you need to verify that "I am signing a transaction to send X BTC to Address Y with fee Z". If someone were to manipulate the transaction on the way to the offline computer, the user would either see that it's been manipulated, or be signing a transaction that is ultimately invalid. This is why the offline system only needs 512MB of RAM: it needs to run the operating system, and basically just do the ECDSA signatures on top of that.
Would it be possible to put a block explorer into Armory?
I already created a block-explorer a few months ago, when I got much of the core libraries implemented. It was my "warm-up" for developing the rest of Armory. See
PyBtcEngine and the
PyBtcEngine block-explorer demo. This was the original project, from which I forked BitcoinArmory. Last I tried it, it worked (run pyqt/blockexplore.pyw), but it's been a
long time. I
do have plans to cannibalize that dialog to include it in the future "Developer Tools" in Armory. It's not a trivial transfer though, so I am considering other things to be a priority right now. I plan to put in an ECDSA calculator with it
