Assume that 51% of nodes are honest and 49% malicious. Fur sure, longest chain would make the chains consistent/same all over the world as 51% can outweigh the 49%, but my question is slightly different.
If I am an external party(just a normal user) and ask whether the specific tx is in the specific block, how can I be sure that this request didn’t reach the malicious node ? The solution is for me to get merkle root from a block header, then a node must return to me the proof and then I verify, but, but, but…
my confusion is that I also have to ask for merkle root to the node and how can I be sure that the “asking merkle root” request goes to honest node ? what if it ends up going to the malicious node – since 49% is malicious, it’s likely that my request could end up to this malicious node geographically and it could return such a merkle root that the next request of me making for proof also returns appropriate proof to this malicious merkle root. I hope I made sense.