As an important method of making democratic decisions, voting has always been a topic of social concern. Compared with the traditional, e-voting is widely used in various decision scenarios because of the convenience, easy to participate and low cost. However, the proposed e-voting protocols are at the risk of excessive authority and tampered information, which makes it impossible to achieve true fairness and transparency in e-voting. By combining the blockchain technology, it enables to solve these problems with the decentralization and tamper-resistant features. Moreover, the misoperations of the voters will also affect this fairness, such as voting for non-candidates, abstention or repeated voting. Therefore, to ensure the efficiency of the voting process and maintain the fairness of the voting environment, it is important to append the function of audit in e-voting protocol. This paper proposes an e-voting protocol based on blockchain, which provides transparency in the process of voting. At the same time, this scheme has the ability to audit voters operating incorrectly and resist quantum attacks by adopting the certificateless and code-based cryptography. After performance analysis, our scheme is suitable for the small-scale election and has some advantages in security and efficiency when the number of voters is small.