1MB-block supporters have 2 major arguments: decentralization and block space scarcity. By considering ONLY these 2 factors, however, the BEST solution is to limit a block to only 2 transactions:
Gee. And yet no one is suggesting that. Perhaps this should suggest your understanding of other people's views is flawed, before clinging to it and insulting people with an oversimplification of their views and preventing polite discourse as a result? :-/
Had he chosen 2MB instead of 1MB, I am pretty sure that Bitcoin would have worked in exactly the same way as how it works now.
Maybe, we've suffered major losses of decentralization with even many major commercial players not running their own verifying nodes and the overwhelming majority of miners instead relying on centralized services like Blockchain.info and mining pools. Even some of the mining pools have tried not running their own nodes but instead proxying work from other pools. The cost of running a node is an often cited reason. Some portion if this cost may be an illusion, some may be a constant (e.g. software maintenance), but to the extent that the cost is proportional to the load on the network having higher limits would not be improving things.
What we saw in Bitcoin last year was a rise of ludicrously inefficient services ones that bounced transactions through several addresses for every logical transaction made by users, games that produced a pair of transactions per move, etc. Transaction volume rose precipitously but when fees and delays became substantial many of these services changed strategies and increased their efficiency. Though I can't prove it, I think it's likely that there is no coincidence that the load has equalized near the default target size.
We want to maximize miner profit because that will translate to security.
But this isn't the only objective, we also must have ample decentralization since this is what provides Bitcoin with any uniqueness or value vs the vastly more efficient centralized payment systems.
We need to find a reasonable balance
Agreed.
but 1MB is definitely not a good one.
At the moment it seems fine. Forever? not likely I agree, and on all counts. We can reasonable expect available bandwidth, storage, cpu-power, and software quality to improve. In some span of time 10MB will have similar relative costs to 1MB today, and so all factors that depend on relative costs will be equally happy with some other side.
Assume that we aim at paying $1 million/block ($52 billion/year) to secure the network (I consider this as a small amount if Bitcoin ever grows to a trillion market cap). The current 7tps llimit will require a fee of $238/tx, which is way too expensive even for a global settlement network among banks.
This is ignoring various kinds of merged mining income, which might change the equation somewhat... but this is hard to factor in today.
I think a reasonable choice, with the implications for centralization considered, would be around 100MB/block. That takes 1.5Mb/s of bandwidth in a perfect scenario. That would be a better equilibrium in technical and economical terms.
I think at the moment based on how we're seeing things play out with the current load levels on the network I think 100MB blocks would be pretty much devastating to decentralization, in a few years likely less so, but at the moment it would be even more devastating to the existence of a fee market.
Have Monero and ByteCoin fixed the bloat problem, or did the transaction spammers just get bored and go away?
Yes, sort of fee requirements at major pools, monero apparently planning a hard-fork to change the rules, I'm not sure where thats standing I'll ping some of their developers to comment. Monero's blockchain size is currently about 2.1GBytes on my disk here.
My understanding is that gmaxwell and andytoshi (et. al.?) have come up with "substantial cryptographic improvements" to the BCN system which potentially are a "pretty straight forward to add to Bitcoin" as per gmaxwell, see: https://download.wpsoftware.net/bitcoin/wizardry/brs-arbitrary-output-sizes.txt and previous comment(s) cited in this thread. However, I still have my (unanswered) questions, to wit:
How would this output-encoding scheme work realistically for something of *every possible size?*
Assuming this were applied to bitcoin as an option [much as SharedCoin is in blockchain.info], wouldn't it still come at a cost both in terms of size of the data corresponding to whatever transactions involved the scheme in the cases where users choose to utilize it, as well as corresponding additional fee(s)?
How are the scalability issue(s) addressed?
The improvements Andrew and I came up with do not change the scalablity at all, they change the privacy (and do work for all possible sizes), and since its not scalability related it's really completely off-topic for this thread.