All milestones are just signed transactions with teh address KPWCHICGJZXKE9GSUDXZYUAPLHAKAHYHDXNPHENTERYMMBQOPSQIDENXKLKCEYCPVTZQLEEJVYJZV9BWU
. My understanding is that to sign a transaction, you do so with the private key for that address. How does the coordinator sign so many milestones using the same address and therefore the same key without compromising it?
2 Answers
The answer, it seems, is merkle trees. There is a huge set of pre-generated keys using a merkle tree, and the milestone index is used to traverse the tree.
Original answer found here: https://www.reddit.com/r/Iota/comments/7gsd3t/why_are_coordinator_signatures_still_secure/dqo9b9r/
With updated source link here: https://github.com/iotaledger/iri/blob/dev/src/main/java/com/iota/iri/Milestone.java#L198-L211
You can read about milestones and the Merkle tree on the IOTA documentation portal: https://docs.iota.org/docs/the-tangle/0.1/concepts/the-coordinator