mrln 19 hours ago

It is not the node that chooses the next one, but the client. A bad node cannot "fake" a good node, because it cannot cryptographically authenticate to be the new node the client selected (the client knows the public key of the newly selected node).

kevincox 14 hours ago

If you run a node that forwards traffic to any node other than the one requested by the client then that node won't be able to decrypt the traffic.

The client encrypts traffic to each node on its selected path in turn. If the traffic doesn't reach every desired node in order the traffic can't be decrypted.