Cancer forms a robust system and progresses as stages over time typically with increasing aggressiveness and worsening prognosis. Characterizing these stages and identifying the genes driving transitions between them is critical to understand cancer progression and to develop effective anti-cancer therapies. Here, we propose a novel model of the cancer system as a Boolean state space in which a Boolean network, built from protein interaction and gene-expression data from different stages of cancer, transits between Boolean satisfiability states by editing interactions and flipping genes. The application of our model (called BoolSpace) on three case studies - pancreatic and breast tumours in human and post spinal-cord injury in rats - reveals valuable insights into the phenomenon of cancer progression. In particular, we notice that several of the genes flipped are serine/threonine kinases which act as natural cellular switches and that different sets of genes are flipped during the initial and final stages indicating a pattern to tumour progression. We hypothesize that robustness of cancer partly stems from passing of the baton between genes at different stages, and therefore an effective therapy should target a cover set of these genes. A C/C++ implementation of BoolSpace is freely available at: http://www.bioinformatics.org.au/tools-data