Pages:
Author

Topic: Please do not change MAX_BLOCK_SIZE - page 9. (Read 13023 times)

legendary
Activity: 1120
Merit: 1160
June 04, 2013, 04:20:08 AM
Someone asked me to reply....

So Gavin's idea for mining in an anonymous, free from coercion and central control way goes like this:

Step 1. Run a high-bandwidth, publicly visible Bitcoin node.

Step 2. Send the blocks you mine over Tor.


This came up at the conference at the developer round table - it was kinda funny talking to some Argentinians after about the plan. (at the conference Gavin's idea was Step 1 would involve a "censorship-proof satellite" - I think he's since figured out that space isn't known for decentralized grassroots efforts) Those Argentinians figured the discussion they'd wind up having with their local authorities would go roughly like this:

"Q: So tell us why are you running a full Bitcoin node exactly? You don't happen to be mining by any chance do you?"
"A: Um...."


In any case we need mining to be more decentralized, not just done at a few big pools. Anonymity and censorship aside requiring  high-bandwidth sure won't help the situation we're in right now where almost 50% of the network is controlled entirely by two pools.
legendary
Activity: 924
Merit: 1004
Firstbits: 1pirata
June 04, 2013, 04:06:32 AM
...

That has nothing to do with microtransactions, normal growth in "macrotransactions" will bump up against the limit in a year or three.


So why the rush? Why not let the merchants and users ask for change when the need arises?
legendary
Activity: 1078
Merit: 1006
100 satoshis -> ISO code
June 04, 2013, 03:53:41 AM
I believe the last objection raised was that a higher block size limit would make it impossible to mine anonymously, but I think that has been debunked with the notion of "read the firehose of transactions non-anonymously, then broadcast just new block header + coinbase + listof(truncated transaction hashes) anonymously."

If this 2nd change works then Bitcoin will be massively scalable and can become the success everyone wants.
You are right - if it works, then Tor mining should be easier, though the scaling issues of a home node still remain.

Anyway let's at least hope that they will prove the debunking thesis working, before touching the number.
Though after learning that they don't consider decentralization as particularly important, I am not so certain about it... Smiley

Why don't you want Bitcoin to have this chance to succeed?
Because for me Bitcoin has already succeeded and increasing the block size is playing with lethal forces that we don't even understand.
So it has succeeded, but if you act irrationally, you can easily screw it up.

We might be getting closer to agreement  Smiley. I was thinking just now that the software changes for scalability might be well advanced even before 1MB blocks are common. That would be a nice outcome.

With regard to playing with lethal forces: because for most of Bitcoin's lifespan blocks have been way below the 1MB limit (and only recently approached the soft-limits), then it has operated with no effective block limit. Letting it hit the 1MB actually introduces a lethal force where it didn't really exist before.
legendary
Activity: 2053
Merit: 1356
aka tonikt
June 04, 2013, 03:45:43 AM
I believe the last objection raised was that a higher block size limit would make it impossible to mine anonymously, but I think that has been debunked with the notion of "read the firehose of transactions non-anonymously, then broadcast just new block header + coinbase + listof(truncated transaction hashes) anonymously."

If this 2nd change works then Bitcoin will be massively scalable and can become the success everyone wants.
You are right - if it works, then Tor mining should be easier, though the scaling issues of a home node still remain.

Anyway let's at least hope that they will prove the debunking thesis working, before touching the number.
Though after learning that decentralization is not considered as particularly important, I am not so certain about it... Smiley


Why don't you want Bitcoin to have this chance to succeed?
Because for me Bitcoin has already succeeded and increasing the block size is playing with lethal forces that we don't even understand.
So it has succeeded, but if you act irrationally, you can easily screw it up.
legendary
Activity: 1078
Merit: 1006
100 satoshis -> ISO code
June 04, 2013, 03:34:48 AM
Why you assume that it would need to be Google/Facebook/Baidu Credits?
Why do you think that a bitcoin based payment processor cannot be built upon a P2P inrastructure?
Why do you guys keep repeating that one would be forced to give all his private keys to a bank?
Relying on 3rd-party providers for using BTC makes the above very possible (p2p won't be used by bitcoin-banks as they will want control of their systems).


And what blockchain-pruning has to do with making mining available via Tor?

This is the 2nd software change needed, as well as blockchain pruning:

I believe the last objection raised was that a higher block size limit would make it impossible to mine anonymously, but I think that has been debunked with the notion of "read the firehose of transactions non-anonymously, then broadcast just new block header + coinbase + listof(truncated transaction hashes) anonymously."

If this 2nd change works then Bitcoin will be massively scalable and can become the success everyone wants.

Why don't you want Bitcoin to have this chance to succeed?
legendary
Activity: 2053
Merit: 1356
aka tonikt
June 04, 2013, 03:26:28 AM
Why you assume that it would need to be Google/Facebook/Baidu Credits?
Why do you think that a bitcoin backed payment processor cannot be built as just yet another lightweight P2P network, protected by a cryptography?

Why do you guys keep repeating that one would be forced to give all his private keys to a bank?

And what blockchain-pruning has to do with making mining available via Tor?
legendary
Activity: 1078
Merit: 1006
100 satoshis -> ISO code
June 04, 2013, 03:19:06 AM
Why would ordinary people even run Bitcoin nodes if it becomes just an infrastructure for Google/Facebook/Baidu Credits? It would make as much sense as running a SWIFT or LCH.Clearnet node (if these systems worked as distributed networks).

Excellent post. People won't run nodes if they are priced away from the blockchain, and the worst-case scenario of centralization would occur: Bitcoin with just major companies running server-farm nodes.

Thinking about Tor ....

once the blockchain-pruning solutions are up and running Tor will be usable for a long time, probably indefinitely.
legendary
Activity: 2053
Merit: 1356
aka tonikt
June 04, 2013, 03:08:48 AM
Satoshi did not intend the 1MB block size to be final at all and it was not even in the paper or in the original code. He envisioned a much larger dynamic block size.
So what?
Thinking about Tor and the current 1MB limit, still seems like a reasonable number to stop at.

So just stop, take a breath, look around and see how the market responded... and then try to improve it further, if needed.
By increasing the block size limit now, you are not improving anything - you are only making transactions cheaper for satoshidice, which is especially stupid when you consider the fact that the transactions are essentially free ATM. As kjj has nicely phrased it, currently the transactions are being added to the chain on a charity basis - why would anyone aim to make them even cheaper, at the cost of an exponential growth in the price of infrastructure required to run a node, or a miner?

IMO the 1MB limit is the best moment to stop this madness, let the fee market work, and just think about the best way to go from there.
If the best solution to the scaling problem the developers have is magnifying the scaling problem, then I am honestly disappointed. Smiley
legendary
Activity: 1176
Merit: 1015
June 04, 2013, 03:02:02 AM
Quote
So why not to just keep this point at the 1MB, as Satoshi originally designed?
Bitcoin was never designed with a 1MB limit initially.  You can check it doesn't exist in the early versions of the source code.  That was added later as a safety limit to prevent an early attacker from massively bloating the blockchain and thus killing off the project.  Imagine if in 2010 there was no block limit you had to download a 5TB blockchain just to start using this experimental currency with very little actual value or use.  Most people wouldn't and the "ecosystem" might have died in the crib.  1MB limited the size of the blockchain to no more than 52GB per year.  High and luckily early volume was much lower but it provided an upper bound while Bitcoin was young.  When the average block has 2 to 8 transactions it doesn't make sense for a single bad actor to add GB worth of transactions to hinder future users.  Bitcoin is far more developed now so it likely is time in the near future to take the training wheels off.

I really wish this was better known, the amount of people shouting crap about how Satoshi intended for 1MB block size is sad. So many misinformed people here....

Satoshi did not intend the 1MB block size to be final at all and it was not even in the paper or in the original code. He envisioned a much larger dynamic block size.

sr. member
Activity: 310
Merit: 253
June 04, 2013, 02:52:17 AM
[...]
This is why I will re-iterate, that Bitcoin was NOT designed for large-scale microtransactions.

This is not about microtransactions, at least not in the sense most people understand that word. With the current 1 MB limit per block, the number of transactions is capped at around 7 per second, which roughly translates into 200 million transactions per year. So, if there were 20 million users of Bitcoin in the whole world (a very conservative estimate of what Bitcoin can achieve), the average user would be able to carry out 10 transactions in a year. Say I wanted to get my salary from my employer and then pay my landlord in bitcoins, that would be 24 transactions in a year. With a 20-million user base, such "microtransactions" as paying a salary or a monthly rent would be off-limits to most people. Even if I was willing to pay a hefty fee to get more blockchain space than your average Joe Bloggs, my landlord would have trouble getting his bitcoins out of the chain and would end up saying "But why don't you just pay me in euros?".

The solution proposed by the "do not change MAX_BLOCK_SIZE" advocates, if I understand them correctly, is that I shouldn't use the blockchain for such mundane transactions. Transactions like paying a rent would be handled through off-chain processors that provide me with BTC tokens. But then I'd be using bitcoins as a mere denomination, like the IMF's SDR or the old European ECU. Certainly not what Bitcoin was designed for. And it's far from certain that Bitcoin could even survive in such a scenario. Why would ordinary people even run Bitcoin nodes if it becomes just an infrastructure for Google/Facebook/Baidu Credits? It would make as much sense as running a SWIFT or LCH.Clearnet node (if these systems worked as distributed networks).
hero member
Activity: 772
Merit: 501
June 04, 2013, 12:54:37 AM
Quote from: ecliptic
As opposed to removing the limit, letting malicious miners make massive blocks?  Privatizing profit, and distributing the pain?'

There are intermediate solutions between a 1 MB block limit and letting a node create a block of any size.

Quote
If you can't run it over Tor or similar you've just destroyed a much more important part of the philosophy.

You can either have digital cash, or you can have a Bitcoin that can be run fully through Tor. You can't have both. Given the philosophy of Bitcoin is to be a digital cash, and being able to run through Tor was not a design goal, raising the block limit, as Nakamoto intended and the devs have been planning for years, is the right decision.

I'm not concerned about censorship of nodes, because they can be run in any jurisdiction in the world. As long as there is some free jurisdiction in the world, the Bitcoin network will be up, and people can access the nodes through encrypted channels if need be.

The important point is that people be able to control their own private keys. If transaction fees go up to $30 due to a 1 MB block size limit, then people will have to trust BTC-banks with their private keys, and transactions will have to take place through these intermediaries. Bitcoin would no longer be a p2p cash.
legendary
Activity: 1400
Merit: 1013
June 04, 2013, 12:48:26 AM
The position argued, by some, is that the cost to make a transaction on the Bitcoin network should be CONSTANT. 
The cost to make a transaction should be equilibrium point at the intersection of the supply curve and the demand curve.

I'm not sure who constitutes the mysterious "some" you're talking about. Do you have a link to a specific post?
legendary
Activity: 1222
Merit: 1016
Live and Let Live
June 04, 2013, 12:28:58 AM
My point is that the same argument applies to Open-Transactions, or any other known distributed money system.

While Bitcoin was small, a low-importance transactions were fine, as the entire network size was small.  However as the network increases in size, so must the 'importance' of the transactions.  Otherwise it becomes disappointingly costly to maintain the network -> thus, creating great economic incentives to centralize the network.

If, for example, fees are LINEARLY related to Network-Size, then the cost of maintaining the network will be LINEAR * LOG (number of unspent outputs).  Or just LINERAR, if you have an unlimited amount of random access storage (eg. RAM).  This is a sustainable proposition. (The fees will pay for the cost of running a node).

The position argued, by some, is that the cost to make a transaction on the Bitcoin network should be CONSTANT.  This means that the cost to run a node on the network (while maintaining the same quality of decentralization); will be increasing faster than the amount of fees, per node.  -> Thus creating an economic situation, where either:  Nodes are subsidized, or the ratio or full nodes vs. uses goes down.

I, personalty, value a very decentralized and non subsidized processing network of Bitcoin full-nodes, more than the utility advantage of having low importance transactions.
lch
newbie
Activity: 28
Merit: 0
June 04, 2013, 12:09:19 AM
The very security model of Bitcoin requires there be multitude of full nodes, unless, if there was only one full-node, then non-bitcoin transactions could be possibly slipped in (unaware to SPV nodes).

For the current standard of decentralization to hold, we need a constant ratio of full nodes vs users.  Having only a few full nodes is a very much a higher-trust security model than what the Bitcoin Network currently provides.

People who advocate a high tpc, must necessarily, advocate a more centralized full-node processing network.  (Because of the QUADRATIC cost of maintaining the decentralization).

Than would it be worth it, to take a portion of the transaction fees and distribute them to the owners of the full nodes. After all they are contributing just as much to the security of bitcoin.

This softens the effect of a mining monopoly that is currently highly centralized.
legendary
Activity: 905
Merit: 1012
June 03, 2013, 11:48:05 PM
My point is that the same argument applies to Open-Transactions, or any other known distributed money system, except perhaps zero-knowledge proof systems which are still theoretical. In Open-Transactions you are given the information necessary to audit the server's actions. If you want to make an apples-to-apples comparison, you should be accounting for this computational cost incurred by users who do such validations.
legendary
Activity: 1222
Merit: 1016
Live and Let Live
June 03, 2013, 11:28:55 PM
The cost of checking any one transaction is:
O (number of full nodes) * (cost of checking a transaction).

There is no protocol reason why more than 1 full node needs to be running. If there are N full nodes, it is because N-1 people decided it was a worthwhile investment of their time and resources to do so. Open-Transactions runs with a single validating node, the server. But audit information is (in theory) available so anyone can check that the server isn't lying. And if they were to do so for all transactions processed by the server, then it would incur the same overhead. Now typically in Open-Transactions one only verifies their own receipts, but the same could be said for SPV/SPV+ clients.

This conceptual argument I take issue with:

... There is no protocol reason why more than 1 full node needs to be running...

The very security model of Bitcoin requires there be multitude of full nodes, unless, if there was only one full-node, then non-bitcoin transactions could be possibly slipped in (unaware to SPV nodes).

For the current standard of decentralization to hold, we need a constant ratio of full nodes vs users.  Having only a few full nodes is a very much a higher-trust security model than what the Bitcoin Network currently provides.

People who advocate a high tpc, must necessarily, advocate a more centralized full-node processing network.  (Because of the QUADRATIC cost of maintaining the decentralization).
legendary
Activity: 905
Merit: 1012
June 03, 2013, 10:52:25 PM
It comes down to maths.

No, it's a little disingenuous to make such an argument:

The cost to check the inputs of a transaction is:
O log(total number of unspent outputs).

It could very well be constant, if a hash table were used.

The cost of checking any one transaction is:
O (number of full nodes) * (cost of checking a transaction).

There is no protocol reason why more than 1 full node needs to be running. If there are N full nodes, it is because N-1 people decided it was a worthwhile investment of their time and resources to do so. Open-Transactions runs with a single validating node, the server. But audit information is (in theory) available so anyone can check that the server isn't lying. And if they were to do so for all transactions processed by the server, then it would incur the same overhead. Now typically in Open-Transactions one only verifies their own receipts, but the same could be said for SPV/SPV+ clients.

The cost of growing the network with a constant number of transactions per user is:
O (number of users) * (cost of the network checking the transaction)

Which with your qualifications is essentially saying that the cost of full validation scales linearly with the number of transactions. No surprise there.
sr. member
Activity: 322
Merit: 250
June 03, 2013, 09:12:39 PM
Quote from: ecliptic
Bitcoin is designed to be distributed peer to peer currency first and foremost.  Certainly more than any importance of "microtransactions"

Bitcoin is designed to be a peer to peer digital cash. Read the Bitcoin white paper. Nakamoto wrote that BTC nodes would eventually use large amounts of bandwidth and be run by specialists, so that's what it was designed for.

$30 transaction fees, due to a 1 MB block limit, would make regular transactions impossible. It would convert Bitcoin into a high powered money that only BTC-banks could handle. I don't want a BTC-bank to hold my private keys and be the third party intermediary to my transactions. It's bad enough BTC has to rely on centralized exchanges. Forcing people to store their BTC at banks and process their transactions through them for straight BTC transactions would make the problem of centralization exponentially worse.
As opposed to removing the limit, letting malicious miners make massive blocks?  Privatizing profit, and distributing the pain?'

Quote from: ecliptic
Bitcoin is designed to be distributed peer to peer currency first and foremost.  Certainly more than any importance of "microtransactions"

Bitcoin is designed to be a peer to peer digital cash. Read the Bitcoin white paper.

Not only that, it's specifically designed to help with "small, casual transactions" too small to be handled by centralized payment processors who have to charge too much per transaction because they can't avoid doing dispute mediation. This is right there in the first paragraph of the white paper.
If you can't run it over Tor or similar you've just destroyed a much more important part of the philosophy. 
sr. member
Activity: 352
Merit: 250
https://www.realitykeys.com
June 03, 2013, 07:57:23 PM
Quote from: ecliptic
Bitcoin is designed to be distributed peer to peer currency first and foremost.  Certainly more than any importance of "microtransactions"

Bitcoin is designed to be a peer to peer digital cash. Read the Bitcoin white paper.

Not only that, it's specifically designed to help with "small, casual transactions" too small to be handled by centralized payment processors who have to charge too much per transaction because they can't avoid doing dispute mediation. This is right there in the first paragraph of the white paper.
legendary
Activity: 1222
Merit: 1016
Live and Let Live
June 03, 2013, 07:41:40 PM
These are just variables. Variables can be changed.

But the CORE Bitcoin protocol allows ANY number of transactions per second. The only REAL limitation is the speed of the internet connection and TFLOPS of processing power.

So why the hell people keep shouting "Bitcoin is not designed for microtransactions" ? This is just a big piece of Über-Bullshit.

While there are some elements of Bitcoin that may be used for microtransactions; I do not believe that it is rational to suggest that Bitcoin-itself is designed for microtransactions.
It comes down to maths.

The cost to check the inputs of a transaction is:
O log(total number of unspent outputs).

The cost of checking any one transaction is:
O (number of full nodes) * (cost of checking a transaction).

The cost of growing the network with a constant number of transactions per user is:
O (number of users) * (cost of the network checking the transaction)

For a constant ratio between users and, full nodes (so we can maintain the decentralization of the network). It can be shown that:
The cost of verifying the Bitcoin Network of any given network size (number of users), for a constant number of transactions and full verifying nodes per user is: QUADRATIC.

or

Cost of Verifying the Transactions of the Bitcoin network = O (network size in users)^2 * log(number of unspent outputs)
Where we assume: Constant number of transactions per user, and a constant ratio of users and full verifying nodes.

This is why I will re-iterate, that Bitcoin was NOT designed for large-scale microtransactions.


EDIT: fixed, from CUBIC to QUADRATIC. (thanks amiller).
Pages:
Jump to: