Paper 2017/232

TwinsCoin: A Cryptocurrency via Proof-of-Work and Proof-of-Stake

Alexander Chepurnoy, Tuyet Duong, Lei Fan, and Hong-Sheng Zhou


We design and implement TwinsCoin, the first cryptocurrency based on a provably secure and scalable public blockchain design using both proof-of-work and proof-of-stake mechanisms. Different from the proof-of-work based Bitcoin, our construction uses two types of resources, computing power and coins~(i.e., stake). The blockchain in our system is more robust than that in a pure proof-of-work based system; even if the adversary controls the majority of mining power, we can still have the chance to secure the system by relying on honest stake. In contrast, Bitcoin blockchain will be insecure if the adversary controls more than 50\% of mining power. Our design follows a recent provably secure proof-of-work/proof-of-stake hybrid blockchain by Duong et al.~(ePrint 2016). In order to make our construction practical, we enhance Duong et al.'s design. In particular, we introduce a new strategy for difficulty adjustment in the hybrid blockchain and provide an analysis of it. We also show how to construct a light client for proof-of-stake cryptocurrencies and evaluate the proposal practically. We implement our new design. Our implementation uses a recent modular development framework for blockchains, called Scorex. It allows us to change only certain parts of an application leaving other codebase intact. In addition to the blockchain implementation, a testnet is deployed. Source code is publicly available.

Available format(s)
Cryptographic protocols
Publication info
Preprint. MINOR revision.
Contact author(s)
hongsheng zhou @ gmail com
2017-03-14: revised
2017-03-08: received
See all versions
Short URL
Creative Commons Attribution


      author = {Alexander Chepurnoy and Tuyet Duong and Lei Fan and Hong-Sheng Zhou},
      title = {TwinsCoin: A Cryptocurrency via Proof-of-Work and Proof-of-Stake},
      howpublished = {Cryptology ePrint Archive, Paper 2017/232},
      year = {2017},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.