There is no block size limit--it is a shared dream from which we're now waking up from.
The current block size limit comes from the current consensus rules. Changing it requires creating a blockchain fork, like cloning bitcoin and hoping to kill the original.
Arguably, it is impossible to know with certainty what the current consensus rules are, other than by creating blocks and seeing if those blocks are accepted into the longest chain. We can't know for sure what code the economic majority is running--we could ask them or they could tell us--but they could lie. Proof-of-work is where we "put our money where our mouth is," as it were.
https://github.com/bitcoin/bitcoin/blob/master/src/consensus/consensus.h/** The maximum allowed size for a serialized block, in bytes (network rule) */
static const unsigned int MAX_BLOCK_SIZE = 1000000;
/** The maximum allowed number of signature check operations in a block (network rule) */
static const unsigned int MAX_BLOCK_SIGOPS = MAX_BLOCK_SIZE/50;
/** Coinbase transaction outputs can only be spent after this number of new blocks (network rule) */
static const int COINBASE_MATURITY = 100;
Changing these requires creating a blockchain fork, like cloning bitcoin and hoping to kill the original.
The longest chain is not the same as the longest
valid chain.
What is your definition of 'economic majority'?