I think I understand how nodes are incentivized to get valid blocks from other nodes and propagate their own blocks to the network. But what is the game theory behind always selecting the longest chain when receiving new blocks from others? How is this mechanism implemented so that it is 100% guaranteed that all the nodes will select the chain with the most work in it?
To my understanding, this mechanism is part of the proof of work algorithm in order to have consensus and a stable blockchain. So they are forced by the protocol to choose the longest chain