5

A bitcoin transaction requires paying a fee to the network, and that fee changes depending on network congestion. During busy times the fee rate may increase substantially, so how can a user avoid paying these fees in the first place?

Is there a way to transfer/import bitcoin from one address to another in order to avoid transaction fees?


(I'm posting this question because I was writing a reply to a similar question, and halfway through writing that reply, the question was voted closed)

    6

    Is there a way to transfer/import bitcoin from one address to another in order to avoid transaction fees?

    No. It is not possible to move btc between addresses without publishing a transaction to the blockchain. However, there are some ways to accomplish a similar result (transferring/altering the ability to spend some coins), but I think every one of those ways will employ a different trust model than actually transacting on the blockchain. As a user, you must balance the level of trust you are comfortable with, against the need to save on transaction fees.

    Some examples:

    Off chain transactions using a centralized service:

    This is how an exchange moves btc between accounts without incurring transaction fees. For example, when you buy/sell on a bitcoin exchange, a transaction is not actually published to the blockchain. Rather, the exchange will simply update their internal database, which keeps a ledger of all user account balances. As a user you are trusting that the exchange has a full reserve of all outstanding user $ and btc balances, and that they will not make an error in keeping track of your account balance.

    Off-chain transactions by exchange of private keys

    You can give someone bitcoin by simply giving them a copy of private keys for a funded address. In this situation, the recipient will need to trust that you do not own any other copies of the private keys, or that you will not spend the coins yourself if you do have a copy saved.

    (as an aside, if you are sharing keys with a friend, and the coins are stolen by a third party, it may be impossible to prove to your friend that you did not simply steal the coins- and vice versa).

    Off-chain transactions by exchange of private keys, which are provably not backed up

    This is made possible by specialized hardware, such as that produced by OpenDime. In this case, as long as you trust that the OpenDime hardware functions as advertised, you can give someone a funded OpenDime stick and they do not have to worry that you might have a backup of the keys for those coins.

    A signed transaction that is communicated off-chain

    In this case, you could sign a completely valid bitcoin transaction that sends coins to your recipients address, and then send someone the raw tx data, without publishing it to the blockchain. The recipient would be able to publish the data to the blockchain themselves, but they will have to trust you to not sign and publish a different transaction using those same outputs in the meantime. This method would also only 'delay' the spending of the tx fees.

    (I'm honestly not aware of any actual use-case for a scheme like this. It's probably a dumb idea that requires a lot of trust, but it is possible nonetheless)

    Payment channels

    In this case, two transacting parties can lock some amount of btc into a special multi-sig address, and then trade a limitless number of partially signed transactions back and forth off chain, with no tx fees, and no need to trust the other party will not steal your bitcoin. The parties involved can only exchange value up to a maximum amount (the amount they locked into the channel), but the channel can be bi-directional, so payments can be sent back and forth basically endlessly otherwise. This method still requires a transaction fee to open and close the payment channel, but that fee now account for a vast number of 'off-chain' transactions, instead of just one or two on-chain.

    An implementation of this idea is the lightning network, it is currently live on the bitcoin testnet.


    • "trusting that coinbase ... will >not< make an error in keeping track"? – dave_thompson_085 Dec 31 '17 at 10:52
    • @dave_thompson_085 Yes, Coinbase is reputable, but ultimately with a centralized service you are trusting that their system will not make a mistake, and also that they will not just outright steal your funds. Think of it like a bank: their servers could make a mistake and report your account balance as zero, but if you are a customer of a reputable bank, that issue probably won't arise. – chytrik Dec 31 '17 at 19:52
    • But you didn't say 'not' in your post; you said "trusting that coinbase ... will make an error". – dave_thompson_085 Jan 1 '18 at 7:40
    • @dave_thompson_085 Oh, you're right! Good eye, my mistake. – chytrik Jan 1 '18 at 23:36
    • Coinbase and gdax have made mistakes, but of the stories I've read, their customer service does make it right. @dave – 4276 Jan 7 '18 at 17:14
    0

    If you run a full bitcoin node - for example bitcoin-qt, and it's in sync with the network, you can send bitcoin without a fee. It's not advisable however, since transactions stay in a memory pool waiting to be mined until a miner picks them up and adds them into a transaction block. Miners prioritize transactions with high fees attached - for obvious reasons. So you can end up with a transaction stuck in a transaction memory pool for days, sometimes weeks, after a few weeks it typically gets dropped (and returned to your wallet), although that depends on your wallet node configuration.

    If it gets stuck there, you need to get it dropped from the memory pool. This is a nasty manual process, and your bitcoins will neither be in your wallet, nor spent during this period.

    Generally however, when the blockchain is less busy, it will catch up and clear the memory pool. Eventually, and you will have succeeded in transfering btc for nothing...

      -2

      If you don’t care about your privacy, just use Gdax.com…

      While they don’t allow to send transactions without paying fees, they will pay the fees for you…

      • Worth noting: privacy is not the only concern when using GDAX, they are a custodial wallet so the user will be engaging with a very different trust model (relevant: see Off-chain transactions using a custodial service in my answer above) – chytrik Jul 14 '18 at 4:13

      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.