Account and Key Security - Operations on Offline Machine

Hi!

I’ve read this nice official blogpost recently about account and key security. As it says “[T]he security measures discussed in this series are more suited to high value accounts and not frequent spending accounts because they achieve higher security, but require more effort.”

The post shows the process for operations like creating account and signing transaction on an offline machine.

The Part II. of the series confirms that single-key account creation should always be done on an offline machine, and the same is true for recovering/importing an account. My question is: how can you get to know the balance of your account, if the creation / recovering only happens offline? I thought that you have to have your account in a wallet in an online machine to sync (and show) your balance.

Informally speaking, the balance of any account is the sum of all +in and -out transactions in the blockchain history for that account (plus fees, min balances, close-to, etc). If an account doesn’t have any transactions yet, you can think of having balance 0.

The above definition implies that an account balance doesn’t depend on any particular node or wallet existence.

(Of course, synced nodes will all converge to the same blockchain state at the same block height, and thus same account balances; but that’s more a side-effect of the blockchain being a coherent distributed data structure.)

More down to earth example: if you go to https://algoexplorer.io/ you can check the balance of any account that has ever transacted.

Another angle: creating an account is an offline event, since creating a new account with a public-private keypair can be thought of an account creation even if that account hasn’t yet signed any transaction (and thus the rest of the world know about this event). For the rest of the world your account will become apparent when a tx becomes part of a block. Maybe your confusion is in this subtle (philosophical?) point.

Ok, that’s quite clean. Thank you for your clarification!

You’re welcome!

I must say that this explanation is correct now, maybe in the future the answer can be different. I don’t know all future plans, but it may seem reasonable that from some moment on every node won’t calculate the balance of every possible address.

If the future has room for verifiable proofs to address scalability concerns, there might be a chance that balance claims can be trusted without doing the calculations yourself. (zk proofs magic) Again, I’m supposing here.