Public blockchains provide a decentralized method for storing transaction data and have many applications in different sectors. In order for a user to track transactions, a simple method is that every user keeps a local copy of the entire public ledger. Since the size of a ledger keeps growing, this method becomes increasingly less practical, especially for lightweight users such as IoT devices and smartphones. In order to deal with this problem, there have been some proposals. However, existing solutions either achieve a limited storage reduction (e.g., simple payment verification), or rely on some strong security assumption (e.g., the use of trusted server). We propose EPBC, a novel and efficient transaction verification scheme for public ledgers, which only requires lightweight users to store a small amount of data that is independent of the size of the blockchain. We analyze EPBC's performance and security, and discuss its integration with existing public ledger systems. Experimental results confirm that EPBC is practical for lightweight users.