At block 1788000, Monero will switch PoW from CryptoNight variant 2 to variant 4
The current naming is a little misleading as we are really on variant 3 right now, with the next being variant 4. This is because variant 2 actually spanned 2 releases in quick succession. Naming aside...
How is that second goal technically achieved in practice ?
The best answer is probably found in the README from the original proposal. Quoting two pieces:
It introduces random integer math into CryptonightV2 main loop.
...
Instruction set is chosen from instructions that are
efficient on CPUs/GPUs compared to ASIC: all of them except XOR are
complex operations at logic circuit level and require O(logN) gate
delay. These operations have been studied extensively for decades and
modern CPUs/GPUs already have the best implementations.
Ultimately, the idea here (and in other similar proposals such as RandomX/RandomJS), is that the hashing function has to execute some random instructions (a program) which essentially means an ASIC/FPGA would need to have the properties of a CPU/GPU - being good at performing general purpose tasks. This defeats the whole purpose of an ASIC (application specific), therefore the idea is an ASIC can't be as good as general purpose hardware like CPUs/GPUs.
It will almost certainly obliterate any current ASICs/FPGAs, but worth noting a comment from hyc:
CryptonightR is still only intended as a stop-gap. The instruction set it uses is small enough that a very simple CPU could be added to an ASIC to process it. There is no expectation for CN-R to have longer than 6 months effectiveness.