What is the difference between a softfork and a hardfork?
A hardfork makes previously invalid block valid, while for a softfork the inverse is true.
hard forks - an update that makes previously invalid blocks into valid blocks, when the consensus rules change and all the network does not agree with the changes then multiple versions the the truth exist, or the longest chain. regardless of how many nodes update this will cause a chain split, when you have less than 50% of the network hashpower that agrees, expansion of the ruleset
pros - it is a clear update to the network, if you do not update you will be on the previous chain, in some ways a democratic update
cons - split the chain, split the community, the hashpower is split which reduces security
soft fork - an update that makes previously valid blocks invalid, when you have more than 50% of the hashpower you will have no fork, just a switch to the longest chain, contraction of the ruleset
pros - majority rule, no chain split, keeps the community together
cons - non democratic, forcing the nodes to stay on the main chain, general confusion can happen, can introduce a new language that the old nodes think mean something else, the previous nodes may not understand the update and may not be able to validate the new blocks but the will still accept them
What are some of the reasons why you would do a hardfork?
A hard fork would be beneficial if the network if changes to the consensus structure are needed to be clear and democratic.
What are some of the risks with performing a hardfork?
The network will split hashpower which is essentially network security, and you also split the community.