Abstract:How a high level of cooperation emerges in human societies,especially large-scale societies,in spite of a low level of genetic relatedness among society members? In this paper,based on the N-player Iterated Prisoner’s Dilemma model,we offer a model of evolution of cooperation based on punishment using agentbased modeling approach. We introduce two different types of punishment strategies in our model. One is the strong cooperation strategy which means cooperating and punishing those defecting. The other is called the strong defection strategy where one defects and punishes others who defect. Results of model simulation show that the strong cooperator will hinder cooperation in the macro level though it is good in the micro level,and the strong defection,a non-cooperation strategy indeed,may facilitate social cooperation even in a large-scale society,because when those agents who are strong defectors are conditionally united or form in multiple unions,a cooperation-defection mixed-strategy equilibrium will emerge,which means that there is a sub-optimal level of cooperation in social systems though not an optimal one.