Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: lorenzoasr on March 13, 2014, 01:06:25 AM



Title: bitcoind - how "move" mechanism works
Post by: lorenzoasr on March 13, 2014, 01:06:25 AM
Hello, i'm new in the word of bitcoin.

I'm having some doubts about how "move" works. If i create 2 different account with bitcoind, they will have 2 different address, so the relative transactions will be signed with their 2 private keys in the blockchain. Now,from bitcoin official website:

Use the move method to transfer balances from one account to another. Moves are not broadcast to the network, and never incur transaction fees; they just adjust account balances in the wallet.
 
How can bitcoind move BTC between accounts without modify the blockchain? Maybe there is some tecnhical detail that i'm missing  ???

Thank you,
Lorenzo


Title: Re: bitcoind - how "move" mechanism works
Post by: ivroer on March 13, 2014, 01:45:17 AM
Hi Lorenzo, welcome to the forum.

I understand the possible confusion, until recently I wasn't aware the move command even existed.

In general I think a lot of people assume that "wallets", "accounts", and "addresses" are all the same, and they are not. An account can be associated with several Bitcoin addresses, but the reference client also allows you to do some internal accounting which abstracts accounts from the underlying addresses.

As far as I can tell a move command simply re-assigns some bitcoin amount to the internal wallet database, and to make sure you don't "overspend" an account (i.e. dip into other addresses/accounts in your wallet) then you need to always use "sendfrom" which should respect the account balances.

Basically, accounts is a virtual balance inside a wallet, moving amounts between accounts just updates internal references to which account values are associated to 1 or more "real" addresses. An outside observer wouldn't know the balances of your accounts, but they could see individual balances of each address (if they knew you owned them).


Title: Re: bitcoind - how "move" mechanism works
Post by: wheatstone on March 13, 2014, 04:50:25 PM
wallet > account > address > input

Inputs are what the blockchain works with. For each input, there are rules governing how it can be spent. A typical rule would be that a specific private key has to be used, indicated by an address. Multiple inputs can have the same "address" and thus be claimed with the same private key.

Accounts are a construct that solely exists in the wallet software. It's a way of segregating addresses into separate portions.


Title: Re: bitcoind - how "move" mechanism works
Post by: kjj on March 13, 2014, 07:09:43 PM
Stop.  Accounts do not work the way you think they do.  Odds are good that you are setting up to shoot yourself in the foot  Stop right now and go find out how they really work.

Accounts are credited when transactions come in to an address owned by that account.  They are debited when transactions are created that specify the account.  They can be adjusted in pairs by a move.

Those are the ONLY times that accounts are updated.  Assigning a used address to an account is not in that list.  Most spends are not in that list either.

Keys do not belong to accounts, and the wallet pays absolutely positively no attention to accounts when picking transactions to spend.


Title: Re: bitcoind - how "move" mechanism works
Post by: werrindor on March 14, 2014, 09:08:39 AM
What does the "move method" means and how it transfers balances from one account to another?