We know that there is a coordinator, which helps to secure the network in order to prevent attacks in early stages of adoption. What does it do exactly, how does it work?
I think this copy/paste from Reddit explains it perfectly:
What is the Coordinator and what does it do?
Every minute [now 35 seconds] the Coordinator makes a normal transaction with its signature on it, and we call these Milestones. Every transaction (including Milestones) verifies two other transactions. When you want to know if a transaction is verified, you find the newest Milestone and you see if it indirectly verifies your transaction (i.e it verifies your transaction, or if verifies a transaction that verifies your transaction, or if it verifies a transaction that verifies a transaction that verifies your transaction, etc). The reason that the Milestones exist is because if you just picked any random transaction, there's the possibility that the node you're connected to is malicious and is trying to trick you into verifying its transactions. The people who operate nodes can't fake the signatures on Milestones, so you know you can trust the Milestones to be legit. This also works as an incentive for you to run your own node, as if you're running a node you can trust it 100% (because it's your own). This is especially important for businesses, because they can't want to risk the node they're using going down or injecting malicious transactions.
What if the Coordinator started acting maliciously?
Every node looks at the transactions it gets and only tells other nodes about transactions that are valid. The Coordinator is no exception, if the Coordinator starts issuing bad Milestones, nodes will just reject them.
How will we switch off the Coordinator without breaking Iota?
To validate a transaction without the Coordinator, we do the same thing as we would with the Coordinator, but we do it lots of times with random transactions and see what percentage of them verify your transaction. The technical term for this is a "Monte-Carlo walk", and basically makes the chances of you picking enough malicious transactions to skew your results low. This is also why we need to wait for the network to grow; since the network is so small the attacker can relatively easily gain a large presence on the network.