3

My understanding is that a wallet isn't a wallet at all*, it doesn't hold my coins, but its a key store; my coins are of course "stored" as records of the events on the blockchain.

Imagine I have bitcoins with Cloud Wallet Company (A), but I then setup Wallet Company (B)'s app. And let's assume they both use the same crypto algos to compute the seed from the 12-word recovery key, as per this answer.

Is the "recovery phrase" generated by a wallet app platform independent?

If I login to (B) and choose to import/recover my wallet and punch in the 12 words I got from (A), would I effectively now have two wallets? i.e. both (A) and (B) are setup with the same wallet.

Where is my balance stored? After entering my 12-words into (B) would their servers have to "run a query" on the blockchain to aggregate all the transactions and arrive at my balance??

And if I send from (A) to a friend's wallet (Z), would my reduced balance also show on (B)? Or would (B) cache my balance to avoid expensive query/compute from the blockchain, and so it would become out of sync?

Thanks!!

*Maybe I'm wrong but I think the wallet analogy only confuses noobs, since it sets up a mental model that's the opposite of the whole point of a blockchain.

  • 1
    Yes, a wallet is actually more of a "key ring". – Murch Oct 2 '20 at 13:55
5

Can I “duplicate” a wallet using a backup phrase (12 words)?

Yes

Where is my balance stored?

Both wallets will scan the relevant parts of the public transaction-journal ("blockchain") to add up the amount of money controlled by the keys derived from your backup phrase - this total is your balance.

Wallets are very likely to store this total locally, as a convenience, so they don't have to re-scan the blockchain and add up the total all over again every time the wallet is opened. Exactly where and how this number is stored is likely to vary depending on the software used. The storage of this total is of no real consequence.

if I send from (A) to a friend's wallet (Z), would my reduced balance also show on (B)?

Yes, both wallets will learn about new confirmed transactions that affect your balance.

Wallet A might show the transaction amount as pending until it receives a confirmation, a confirmation is just a new block appearing in the public transaction journal that either contains the transaction in question or which builds on top of such a block. Wallet B learns about the confirmation in the same way and will similarly notice that the block contains a transaction that affects an amount associated with an address derived from your backup phrase. The mechanism is the same for both wallets, Wallet A has no special privileges.

To elaborate a little:

As Murch noted in a comment, wallet A might have some additional information that doesnt get transmitted to wallet B. This is information which isn't transmitted to the rest of the Bitcoin network and which has no effect on validation of a transaction or on the mining process by which payments are considered to be confirmed. One example is if you choose to add a memo "payment for new trinket" to the transaction, this memo is not transmitted to anyone else and so is not known to Wallet B (or anyone else). It is also lost if you destroy wallet A and re-create it (e.g. by deleting an app and associated data and then reinstalling the app and using the old backup phrase). If your wallet A allows you to organise transactions into accounts, wallet B wouldn't automatically know about those accounts. Similarly, if wallet A is a Lightning-capable wallet, Wallet B wouldn't normally know about the lightning transactions that Wallet A made, only about the final on-chain settlements made e.g. when a lightning channel is closed.

However Wallet B should still normally show that same total as Wallet A for total amount of Bitcoins that the basic Bitcoin network and it's public replicated transaction-journal ("blockchain") consider to be controlled by private keys which are in your wallets A and B.

  • The only special privileges that one of the two wallets would have is that any metadata added to the transaction (e.g. "payment for new trinket") would only be stored in the sending wallet. – Murch Oct 2 '20 at 13:54
  • @Murch: Good point, I've elaborated a little in the answer. Thanks. – RedGrittyBrick Oct 2 '20 at 14:54
  • Excellent answer! – Murch Oct 2 '20 at 15:36
-1

Not long ago by accident I noticed that I have the same wallet address with metamask open on two different browsers (chrome and firefox). I have not experimented anything in this direction but for a moment I had a few questions to which I would like to know the answer. Maybe it will add to your reflections. I only know that when someone from my metamask wallet was making a transfer of tokens to his wallet, in his metamask, nothing was visible in the activity, only after logging into etherscan I saw what was happening but it was too late. If it hadn't been for the etherscan email, I would probably have found out much later about the theft. Also, you probably will not change the synchronization with two wallets open at the same time, but try with two browsers or virtualbox.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.