We develop a theory of blockchain governance using tools from formal political theory. The software underlying blockchain projects is frequently updated (forked) to implement new policies, and these forks are the subject of our inquiry. We investigate the ways in which the decentralized governance structure and preferences of users influence which policies are implemented, considering network effects as well as user preferences for different policies. We describe several types of forks and identify the strategic conditions necessary for each. We show that network-effects can motivate less moderate policy proposals, and highlight the role of market frictions created by cryptocurrency exchanges in promoting non-contentious forks that are adopted by all users. The model explains counter-intuitive phenomena that have been observed in the governance of blockchain systems.