Author

Topic: Random questions (transaction fees, mining, 1MB limit, etc) (Read 1084 times)

legendary
Activity: 3472
Merit: 4801
Thanks a lot for the detailed answers Danny! That was a great explanation of the 1MB transaction limit

So transaction fees, confirmations, and whether you or the recipient receives a fee all depends on the wallet. Is this a setting you can configure in all or most wallets, or will you need to find specific wallets that are designed a certain way?  I am guessing the latter

Most wallets add the fee on top of the transaction amount (you send 0.1 BTC, the receiver gets 0.1 BTC, your wallet balance is reduced by 0.1001 BTC).  There are some exceptions, but that is the behavior youll see the most often.

Most wallets currently calculate the fee as 0.0001 BTC per kilobyte (but this is changed in wallet version updates as the exchange rate increases, there was a time when the typically fee was 0.0005 BTC per kilobyte and a time when it was 0.001 BTC).  There are some exceptions to the 0.001 BTC per kilobyte fee, but that is the behavior you'll currently see most often.

There are some wallets that let you increase the default fee, or that allow you to leave the fee out entirely.

Confirmations depend on the miner choosing to add your transaction to the block they are working on.  You can provide an incentive to the miner by including a larger fee.

legendary
Activity: 1330
Merit: 1000
dafar consulting
Thanks a lot for the detailed answers Danny! That was a great explanation of the 1MB transaction limit

So transaction fees, confirmations, and whether you or the recipient receives a fee all depends on the wallet. Is this a setting you can configure in all or most wallets, or will you need to find specific wallets that are designed a certain way?  I am guessing the latter
legendary
Activity: 3472
Merit: 4801
Thank you TimS, that helps.

I'm still a bit confused on which transactions would get a transaction fee though.

So let's say I want to send 10 BTC from one address to another address. Will all 10 BTC be transferred to the second address? Will I lose some from a transaction fee? Or will it be random? 

It depends on what wallet you are using.

Most wallets that enforce a fee add the fee on top of the transaction.  So, if you send 10 BTC from your wallet to an address, then your wallet might include a fee of 0.0001 BTC.  So the "balance" in your wallet will drop by 10.0001 BTC, and the address that you send to will receive 10 BTC.

There are some wallets that take the fee out of the amount you send.  In that case if you send 10 BTC from your wallet to an address, and if your wallet includes a fee of 0.0001 BTC, then the "balance" in your wallet will drop by 10 BTC, and the address that you send to will receive 9.9999 BTC.

The cost of the fee depends on the size of the transaction (in bytes), and the byte size of the transaction depends on how you received the bitcoins:

If you receive a single payment of 10 BTC, and then you send 9.5 BTC of that 10 BTC to someone, then your wallet will have a single input of 10 BTC, and 2 outputs (one for 9.5 BTC to the recipient, and one for 0.5 BTC back into your wallet).  Each input is a bit less than 200 bytes, and each output is a bit less than 40 bytes.  Therefore the transaction will be approximately 280 bytes in size.

If you receive 10 payments of 1 BTC each, and then you send 9.5 BTC of that 10 BTC to someone, then your wallet will have 10 inputs of 1 BTC each, and 2 outputs (one for 9.5 BTC to the recipient, and one for 0.5 BTC back into your wallet).  Since each input is a bit less than 200 bytes this transaction is likely to be somewhere around 2080 bytes in size.

Since space in the block is limited, a miner is more likely to confirm the 280 byte transaction than the 2080 byte transaction unless the 2080 byte transaction includes a large enough fee to provide an incentive to the miner to include it.

And is this saying that any transaction greater than 0.01 BTC will not receive a fee?

It depends on the wallet you are using.

Some wallets always include a fee.  Some wallets try to figure out if a fee is necessary and then don't include a fee if the wallet thinks the transaction might confirm without it.  Some wallets let you configure how much of a fee to include and under what circumstances.  There are even some services (such as Coinbase) that will pay the fee for you to encourage you to use their service.
legendary
Activity: 1330
Merit: 1000
dafar consulting
Thank you TimS, that helps.


I'm still a bit confused on which transactions would get a transaction fee though.

So let's say I want to send 10 BTC from one address to another address. Will all 10 BTC be transferred to the second address? Will I lose some from a transaction fee? Or will it be random? 

This is from that link that you provided:

A transaction may be safely sent without fees if these conditions are met:

It is smaller than 1,000 bytes.
All outputs are 0.01 BTC or larger.
Its priority is large enough (see the Technical Info section below)


What does it mean by "smaller than 1000 bytes"?

And is this saying that any transaction greater than 0.01 BTC will not receive a fee?
legendary
Activity: 3472
Merit: 4801
1. Do all transactions of bitcoin form one address to another incur a transaction fee (I think it was half a cent or something)? What about just transferring my BTC to another a friend's address?

If you want to be certain that the transaction will confirm quickly, it is a good idea to always include a reasonable transaction fee.  That being said, it is possible (with some bitcoin wallets) to send a transaction without a fee and still have it confirm in a reasonable amount of time if all of the following are true:

  • You are not in a hurry for the transaction to be confirmed
  • The transaction has enough priority (calculated based on how long ago you received the bitcoins and how large in terms of quantity of bitcoins the transactions were when you received them)
  • Your transaction does not create any extremely small (in terms of quantity of bitcoins) outputs

2. Can you choose 0 confirmations for any transactions (whether as a merchant accepting many transactions, or from 1 address to another address)... and does that make all transactions free?

What do you mean by "choose"?

As a recipient of a transaction, you can "choose" to provide the product or service that is being paid for without waiting for any confirmations, but this does expose you to some risk if the transaction never confirms.

As the creator of a transaction, there are some wallets that will allow you to "choose" to spend bitcoins that you have received before the transaction has confirmed, but this can result in the transaction taking a very long time to confirm.  If the recipient requires that the transaction confirm before they provide you with the product or service, this can become a problem for you.

3. Miners are basically solving puzzles to verify transactions.. and once the transactions are verified they are put in the block chain.. which happens in approx every 10 mins... and at the same time 25 bitcoins are released as a reward to the miners. Is this a proper way of thinking of the process?

Close enough for most discussions.  The technical details are a bit more complex than that.  The thing that is most inaccurate in that statement is that ALL nodes on the network "verify" transactions.  If a transaction is not valid, then it won't be relayed throughout the network at all in the first place.  Miners solve a special mathematical problem to create a proof of work.  The requirement to supply this proof of work makes it impossible for an attacker to change the order of transactions unless they can prove that they've done more "work" than the combined mining power of all the rest of the miners in the entire world. This makes it very difficult and expensive for an attacker to try to re-order the transactions in the historical transaction ledger (called the blockchain).

By providing an appropriate solution to the mathematical problem, the miner proves that the system has supplied enough work to make it difficult for an attacker to supply more work.  All peers then allow the miner that found the solution to add a block of transactions to the ledger.  This sets an order for the transactions, proving that the transactions in the block occurred after the transactions in all earlier blocks, and before all transactions that will be included in future blocks.

We use the word "confirmed" (not verified) to describe the fact that a transaction is in a block in the ledger.

Most transactions spend previously received outputs and create new outputs. All peers on the network allow the miner to include exactly one special transaction in their block that does not spend any previously received outputs, but which does create new outputs.  The sum of the outputs in this special transaction must be less than or equal to the sum of the current block subsidy (25 bitcoins at this time) and the transaction fees of all the transactions that the miner includes in the block.

4. What is this 1MB transaction limit about? Can someone explain what it means and why some people are worried about this limit.

The protocol currently limits the size of a block of transactions to 1 MB.  Since each input to a transaction is a bit less than 200 bytes, and each output from a transaction is a bit less than 40 bytes, this limits the quantity of transactions that can fit in a block. Given the current average transaction size (most transactions have a few inputs and a few outputs), a block can hold approximately 4,200 transactions. Since the proof of work limits miners to creating a new block every 10 minutes on average, that works out to about 7 transactions per second.

If bitcoin becomes popular enough to exceed an average of 7 transactions per second, then space in the next block will become a valuable commodity.  Since the miner gets to choose which transactions they will include in the block that they are going to publish, and since the miner gets to keep the transaction fees, the miner has an incentive to include the transactions that pay the highest fees.

If the block isn't "full", then they can just keep adding more transactions and thereby slightly increase the amount of bitcoins they earn from the block.  If the block is full, then the miner has to choose which transactions to leave out of the block.  Obviously, the miner has a financial incentive to leave out the transactions that pay the smallest fees.  This creates an effect where everyone that is creating a transaction is essentially bidding for space in the block with their transaction fees.  The highest "bidders" win and get to be in the next block.  Someone sending a transaction with 10,000 bitcoins might be okay with paying a 0.5 BTC fee (only 0.005% of the transaction value).  Meanwhile someone sending a transaction with 0.1 bitcoins certainly isn't going to want to pay a 0.5 BTC fee!  As such, bitcoin becomes a system for handling very high value transactions and the price of transactions becomes too expensive for most users.

This is essentially a supply and demand effect.  The supply of space in the blockchain is artificially limited.  If demand exceeds supply, then the price of that space increases to the highest price that the market will bear.  Increasing the maximum size of a block increases the "supply" which reduces the price that the market can bear.
sr. member
Activity: 250
Merit: 253
1. Do all transactions of bitcoin form one address to another incur a transaction fee (I think it was half a cent or something)? What about just transferring my BTC to another a friend's address?
Not all transactions require fees, but the rules are kind of complicated. If you want to keep things simple, and maximize the likelihood that your transaction will be included in a block quickly, include the standard fee of 0.0001 BTC (currently ~6 cents) per KB (most transactions are under 1 KB, so usually just 0.0001 BTC).
2. Can you choose 0 confirmations for any transactions (whether as a merchant accepting many transactions, or from 1 address to another address)... and does that make all transactions free?
These things aren't really connected. Accepting transactions with 0 confirmations should only be done when you trust that the sender won't go back on their word.
3. Miners are basically solving puzzles to verify transactions.. and once the transactions are verified they are put in the block chain.. which happens in approx every 10 mins... and at the same time 25 bitcoins are released as a reward to the miners. Is this a proper way of thinking of the process?
Yes, that's a very good summary of it in my opinion.
4. What is this 1MB transaction limit about? Can someone explain what it means and why some people are worried about this limit.
Each block is currently limited to 1MB. A small size helps the block go across the network quickly, which helps prevent orphaned blocks (and DDOS attacks). If two blocks are found as children of the same block (typically because they were found at about the same time, because the network wasn't able to get the first block to the second miner before he found his block), only one of them can become part of the permanent blockchain. The other is ignored, or "orphaned". Keeping the blocks small reduces this window of time, and thus reduces the number of orphans (which are wasted work, and make mining less profitable).

This limits the transactions that can be included to around 1000-5000 per 10 minutes. If Bitcoin grows to the point that this is not sufficient during peak times, some transactions will take longer to become confirmed, because they won't fit in the block.
legendary
Activity: 1330
Merit: 1000
dafar consulting
1. Do all transactions of bitcoin form one address to another incur a transaction fee (I think it was half a cent or something)? What about just transferring my BTC to another a friend's address?

2. Can you choose 0 confirmations for any transactions (whether as a merchant accepting many transactions, or from 1 address to another address)... and does that make all transactions free?

3. Miners are basically solving puzzles to verify transactions.. and once the transactions are verified they are put in the block chain.. which happens in approx every 10 mins... and at the same time 25 bitcoins are released as a reward to the miners. Is this a proper way of thinking of the process?

4. What is this 1MB transaction limit about? Can someone explain what it means and why some people are worried about this limit.


please respond
Jump to: