Now about trust, isn't it basically still having to trust someone the fact that we download blocks from peers?
you don't trust, you follow the longest chain to reach consensus with everyone else.
you start by connecting to a peer and tell them you only have 1 block (genesis block). they will send you 2000 headers and you continue receiving headers until they stop giving you more.
now you connect to another peer and tell them you have these block headers (send about 20 of your last heights with increasing distance). if you are missing anything or have invalid chain they will send you the valid one.
so far you have only downloaded and verified about 40 MB of data but you know what the longest chain is. but now you can start downloading the blocks of those headers but now you can do it from multiple nodes.
each time you connect to a new node you both check your chains against each other to make sure you have the same thing.
eventually you end up checking with everyone that you connect to to make sure you all are in agreement on which chain is the longest.