I actually do not understand how changes can be made inside the bitcoin network.
It is open source. Anyone can make any change they want to the source code. If you change effects anything in the consensus rules, then your change will be ignored by the bitcoin system unless you can get an overwhelming majority of the hash power and users to all agree to accept your change.
I thought that the system was decentralized, so therefore no individual entity/organization can control the specs of BTC.
It depends on what you are trying to change. If you change anything in the consensus rules, then you need almost everyone else to agree to your change.
But I heard that the use of sidechains in BTC is a "sneaky way" to increase the bitcoin in circulation, so my question is how would that work?
I haven't read up on side-chains much yet, but my understanding is as follows:
Side chains allow the creation of a new coin that is not Bitcoin, but which has an exchange rate that is programmed to be an exact ratio of bitcoins. In order to exchange the bitcoins for the new coin, the bitcoins are required to be "locked" so they can't be spent. Then later, those new coins can be exchanged back into bitcoins, releasing the lock on the bitcoins.
So, I could create a coin (lets call it DannyCoin) such that 1 BTC is always exactly 1000 Dannycoin. I could then lock up 100 BTC in a transaction that creates the sidechain with 100000 DannyCoin. Since 100 BTC were locked up in the creation, and 100BTC will be released when the 100000 DannyCoin are destroyed, the exchange rate between BTC and Dannycoin is locked at 1000 DannyCoin per BTC. In theory anyone can accept my DannyCoin, knowing that they are just as good as BTC (just worth 1/1000 as much).
This is effectively equivalent to subdividing BTC into 0.001 and giving each 0.001 BTC piece a new name. It doesn't actually create more BTC, but I suppose some people might be confused about how increasing the divisibility of a coin doesn't actually create more of that coin.
Another example would be the block size increase... How is it possible for one single organization to have control this issue?
It isn't. The block size can't be changed by any organization unless an overwhelming majority of users, merchants, and hash power all agree to use the software that has the new block size.
If a single organization has a group of users, miners, and merchants that agree with them, then they can prevent anything from changing. This is because they can all simply agree not to run any software that has the change that someone else is trying to make. It requires almost EVERYONE to agree to a change in the consensus rules in order for that change to take place in the Bitcoin system, which means it only takes a relatively small group of people to say "No", and then you are either left with a split system (one where both systems are trying to call themselves the "real" Bitcoin, and a lot of confusion occurs about which "Bitcoin" you are on) or the change is abandoned since most that otherwise would have been willing to accept it realize that the split it will cause more problems than the change will fix.
Or, is there a decentralized protocol for voting on the issue?
There is. You choose which side of an issue you are on by choosing wallets, and/or merchants that agree with you. If you are a miner, then you choose a mining pool that agrees with you.
It has happened in the past, but it is extremely rare. It requires that more than 50% of all the Bitcoin mining hash power in the entire world all agrees to make the correction.
Heard somewhere as well that miners decide whether a fork will be rolled out or not, how is this possible? Please explain in detail, thanks
If forking software is released, and no miners choose to run it, then there will be no blocks with the new rules. If all the miners choose to run it, then all the blocks will have the new rules.
So, the miners do have to agree with the change, however it takes more than just miners. If most of the miners choose to run the new software, but all the other full nodes on the system refuse to run the new software, then the blocks that the miners create will be ignored. Miners are trying to profit, so if they mine blocks that nobody wants, then they will find that people aren't willing to pay very much for the worthless bitcoins in their fork. Meanwhile other miners will have an opportunity to continue to run the old software, and will get a lot more bitcoins on the fork that people want. That will act as an incentive to cause more and more miners to switch back to the original rules.