Fees are not necessary for the processing of the transaction on Bloakchcain but it gives extra priority to incentivize miners for processing transactions faster in the block.
Fees are necessary!
Imagine how the mempool would look right now if we didn't have fees!
More transactions => larger data size => more workload. Imo, when the network is congested and over-loaded, miners have to work extra hard to include each of those transactions in the block and for that we need to pay more fees to help them cover the cost.
There is no such thing, a miner will do the same amount of work for an empty block and a full block, there is this misconception with the transactions numbers or size or fees require something extra from the miners when it's not the case. Also, it's a bit silly, what "extra" work would miners have to do for this and how would they even do it?
1. I just want to know if they are already getting reward in the form of bitcoin they why there is additional fee we have to pay for every transaction?
To prevent spam.
If it weren't for fees you could split one bitcoin into 100 000 outputs with zero fees and then consolidate and split again occupying all the blocks that day without paying a cent, rendering the network useless, with a fee it will always cost the attacker a ton of coins to do so and you could always outbid him if it's something urgent while he must do this continuously.
Later on, it will be of use to incentivize miners to keep mining as fees grow in % vs the reward but we're not there yet in normal low fee times.
So what is best way to calculate fee? whenever I try to send something from my electrum I have to pay in sat/byte. All i know is scroll it to right to quick and fast and scroll it to left for slow settlement time.
Just wanna know what this sat/byte is and how to set it effectively.