Difficulty is a parameter allowing to ensure a regular average time between 2 blocks according to the calculation power available on the network. On Ethereum, its value is recalculated all the blocks by readjusting itself in relation to the moving average over the last 2048 blocks. This ensures an average time of 15.7 seconds between 2 block validations, whatever the power changes on the network. The higher the difficulty, the smaller the common target for the miners is.