Author

Topic: BTC fees and micropayments (Read 1394 times)

full member
Activity: 126
Merit: 100
September 26, 2014, 02:51:38 PM
#13
Here is one example of how Bitcoin can be made to handle more transactions:

Scaling Bitcoin: Gavin begins work on invertible bloom lookup tables on Github. -- http://www.reddit.com/r/Bitcoin/comments/2hchs0/scaling_bitcoin_gavin_begins_work_on_invertible/

"There is currently an incentive for miners to keep blocks small, because smaller found blocks can be transmitted around the network faster than large blocks, thus increasing the chance a miner can claim the prize for their found block. Gavin's solution would make all found block announcements a fixed-size blob, removing the small-size incentive. This in turn would likely mean miners would want to include more transactions in their blocks to collect more transaction fees."

"It also shrinks the blocks that miners pass around. If you're a miner, you already have most of the transactions, so instead of putting all the transactions in the produced block, a successful miner sends out this little fixed-size data structure. That plus the transactions you already have lets you reconstruct the ones you're missing, most of the time. (For the few times you miss, you just ask somebody for the full block.)

This really helps scalability, because the bigger the blocks, the longer they take to propagate, and the GHOST paper showed that propagation time will limit scaling to a few hundred transactions per second if we want to avoid doublespending attacks. So this fixes things by shrinking the blocks."
full member
Activity: 126
Merit: 100
September 23, 2014, 02:49:41 PM
#12
0-confirmation transactions plus increase in capacity in the Bitcoin protocol to more than 7 transactions per second, plus incentive for miners to include as many transactions as possible, including zero fee micropayments (or tiny fee to prevent spam and DDOS attacks). That would work. And a bloated block chain can be managed since even disk space and communication speed follow exponential progress. Plus only a few full nodes are needed.

"Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. ... It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in." -- https://bitcoin.org/bitcoin.pdf
sr. member
Activity: 384
Merit: 258
September 23, 2014, 10:01:10 AM
#11
Because every transaction must be stored by every archival node forever; it must be validated by every full node; its outputs must be stored by every full node at least until they are spent.
...
Well, no, this is a good point. It would be better to have privacy such that the network could not distinguish between these transactions, but the fact would remain that one is an infrequent permanent transfer of land for a significant amount of funds, while the other is a sale of a consumable which happens millions of times a day and nobody cares if individual transactions go through or not. To be a useful network, Bitcoin needs to be able to handle the first without fear of fraud or reversal. The second is not so important.
100% agree. The crux of the "problem" is the high frequency of specific kinds of transactions.
Bitcoin works thanks to SN's genious idea to use financial incentives to "fuel" the machine and these incentives are a core component of the protocol. They have drawbacks but we shouldn't be ashamed of that. That's just the way it is for now.

I'm not sure about "an intermediate layer for clearing". Probabilistic transactions don't feel like an intermediate layer, for example.
You're right. Solutions implying clearing are not the only ones. Probabilistic transactions are a very fun concept and a huge paradigm shift. I guess it would require a long educative work to convince people and merchants but for sure it would be fun !
full member
Activity: 179
Merit: 151
-
September 23, 2014, 07:15:09 AM
#10
@andytoshi: I truely respect your work and don't want to be a troll with you; but, seriously, what does the concept of "a transaction making sense to everyone around the world" have to do with the protocol ?

Because every transaction must be stored by every archival node forever; it must be validated by every full node; its outputs must be stored by every full node at least until they are spent.

Quote
Does a transaction for buying a house make more sense than a transaction for a latte  ? Why ?

Well, no, this is a good point. It would be better to have privacy such that the network could not distinguish between these transactions, but the fact would remain that one is an infrequent permanent transfer of land for a significant amount of funds, while the other is a sale of a consumable which happens millions of times a day and nobody cares if individual transactions go through or not. To be a useful network, Bitcoin needs to be able to handle the first without fear of fraud or reversal. The second is not so important.

Quote
Let's just admit that, because of scalability & financial incentives, micropayments can't work directly on top of the bitcoin protocol and require an intermediate layer for clearing.

I'm not sure about "an intermediate layer for clearing". Probabilistic transactions don't feel like an intermediate layer, for example.
sr. member
Activity: 384
Merit: 258
September 23, 2014, 05:50:44 AM
#9
What if we assume micropayments are flying around for one coffee per 100ms? How big becomes the blockchain then? The average transaction size is ~80 KB, for 6000 transactions/10min that makes it 4.8 MB per block equals 262 GB per year. IMO, that's still feasible. But I assume the devs could beat the size of the transaction down to 10 KB or even less, if that were the case.
The problem is not really about the storage of the blockchain (hard disk are "cheap", blockchain could be pruned, ...) but is more about the growth of the UTXOs set and the memory pool (which require RAM). Bandwidth and transactions/blocks processing (CPU) are additional factors.

Is there a problem with the network congestion? IMO, no. After all, the bitcoin protocol is distributed, so the busy nodes are processing some transactions and the free nodes then take care of the others. After a while when the morning coffee spike ends, the network synchronizes in a, say the diameter of the network, steps.
Am I missing something?
The bitcoin protocol requires a consensus among participating nodes. Full nodes need to process transactions and blocks to reach this consensus. Delaying this processing would increase the number of forks in the blockchain (network split). I guess we can say that micropayments channels are another way to implement this idea of a delayed processing (after clearing and aggregation of transactions).

It should be interesting to see how IBM works out this subject with its concept of a blockchain for IoT since IoT seems a good candidate to produce a bunch of micro-transactions.
legendary
Activity: 1260
Merit: 1019
September 23, 2014, 04:51:29 AM
#8
The protocol allows anyone to send 1 satoshi even for free (without fees).
Fortunately, no miner is interested to include such transactions into a block.
hero member
Activity: 658
Merit: 500
September 23, 2014, 04:43:18 AM
#7
The protocol allows anyone to send any amount you like, even 1 satoshi. You have to pay the 0.0001 fee for it. The relatively high fee for micropayment is to stop spamming on the bitcoin network. This has been discussed before.
legendary
Activity: 1260
Merit: 1019
September 23, 2014, 03:51:01 AM
#6
Quote
The average transaction size is ~80 KB
Much less, but it does not matter.

Quote
6000 transactions/10min
Much more (micropayments in world), but it does not matter too.
newbie
Activity: 9
Merit: 0
September 23, 2014, 02:24:06 AM
#5
What if we assume micropayments are flying around for one coffee per 100ms? How big becomes the blockchain then? The average transaction size is ~80 KB, for 6000 transactions/10min that makes it 4.8 MB per block equals 262 GB per year. IMO, that's still feasible. But I assume the devs could beat the size of the transaction down to 10 KB or even less, if that were the case.

Is there a problem with the network congestion? IMO, no. After all, the bitcoin protocol is distributed, so the busy nodes are processing some transactions and the free nodes then take care of the others. After a while when the morning coffee spike ends, the network synchronizes in a, say the diameter of the network, steps.

Am I missing something?
sr. member
Activity: 384
Merit: 258
September 22, 2014, 05:33:32 PM
#4
Since I started typing this, a somebody (actually several somebodies) in Bejing purchased a cup of coffee. It does not make sense that everyone around the world should need to be aware of this, let alone store and validate information about it.
@andytoshi: I truely respect your work and don't want to be a troll with you; but, seriously, what does the concept of "a transaction making sense to everyone around the world" have to do with the protocol ? Does a transaction for buying a house make more sense than a transaction for a latte  ? Why ?
Let's just admit that, because of scalability & financial incentives, micropayments can't work directly on top of the bitcoin protocol and require an intermediate layer for clearing.

donator
Activity: 1736
Merit: 1014
Let's talk governance, lipstick, and pigs.
September 22, 2014, 12:49:51 PM
#3
Essentially the way to handle them is to use a micropayment service. They can then use the "sendmany" function to include your transaction along with many others for one fee. One day even a meal will be considered a micropayment. Personally, I think micropayments will remain in local cryptocurrencies and exchanged. Think of Bitcoin as the large bills and local cryptocurrencies as the  coin change.
full member
Activity: 179
Merit: 151
-
September 22, 2014, 12:37:54 PM
#2
The Bitcoin protocol is perfectly capable of handling micropayments. Most nodes will not relay transactions with tiny outputs because they are not interested in storing and indexing them, they are not compensated for doing so, and if there was somehow compensation, it would overwhelm the amount of the micropayment.

Since I started typing this, a somebody (actually several somebodies) in Bejing purchased a cup of coffee. It does not make sense that everyone around the world should need to be aware of this, let alone store and validate information about it.
newbie
Activity: 9
Merit: 0
September 22, 2014, 09:23:26 AM
#1
Hi guys.

I think the Bitcoin protocol should be capable to handle micropayments, say from ~1 mBTC on without fee. This would allow tipping much easily. However, the current BTC fee in the protocol is set to 1 mBTC for transactions smaller than 0.01 BTC. Can anyone enlighten me, why the fee threshold is set so high? Are the spammers really an issue?

Also, by reading the bitcoin developer guide, do we really need such a complicated concept for micropayments:
https://bitcoin.org/en/developer-guide#micropayment-channel
Jump to: