• Stars
    star
    114
  • Rank 308,031 (Top 7 %)
  • Language
    Go
  • License
    ISC License
  • Created about 7 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Hcash

ISC License GoDoc

Contents

Official Web

https://h.cash

Innovations

To date, existing decentralized cryptocurrencies adopt either PoW consensus scheme or hybrid consensus model of PoW and PoS. However, these systems still encounter the issue of very limited efficiency/throughput. Meanwhile, upcoming quantum computers threaten existing classical cryptography which is the foundation of blockchain security. In particular, the quantum algorithm by Shor for computing discrete logarithms breaks the ECDSA signature scheme used by almost all cryptocurrencies, such as Bitcoin, Ethereum, Decred and Monero. However, if post-quantum cryptographic schemes are equipped in these systems, the throughput of them will become worse and even unbearable.

Hcash project aims to build a secure, efficient, robust and reliable decentralized system. Highlighted features such as newly-proposed hybrid consensus scheme, post-quantum digital signature, linkability among various blockchain-based and DAG-based decentralized cryptocurrencies, smart contract mechanism and post-quantum privacy-preserving scheme will be proposed and implemented in Hcash eventually.

Novel Consensus Scheme

To deal with the performance issue, we implement a novel hybrid consensus scheme with strong robustness, high throughput as well as sufficient flexibility in Hcash. On the one hand, with a newly-proposed two-layer framework of block chain, significant improvement of the efficiency is offered without compromising the security. On the other hand, with a hybrid consensus model, both PoW and PoS miners are incentivized to take part in the consensus process, thereby enhancing the security and flexibility of the consensus scheme, and providing a mechanism that supports basic DAO for future protocol updating and project investments.

For more details, please refer to our specific report.

Post-Quantum Features

To address security issues stemming from quantum computers, we design and implement post-quantum solutions in Hcash. Our proposals achieve the following 4 features:

  • Compatibility: Compatible with existing ECDSA signature solution;
  • Flexibility: Support multiple post-quantum signature solutions that are thoroughly analyzed, assessed and proved by international cryptography research institutions, meanwhile their security and performance must be outstanding;
  • Security: the post-quantum solution must be proved secure in theory, and side-channel attack proof in practice;
  • High performance: Signing and signature verification must be fast. Most importantly, the public key and signature must be short.

Please refer to our design rationale and technical report for more information.

Starting Hcashd

Hcashd is a Hypercash full node implementation written in Go (golang).

This acts as a chain daemon for the Hypercash cryptocurrency. Hcashd maintains the entire past transactional ledger of Hypercash and allows relaying of transactions to other Hypercash nodes across the world. The installation of hcashd requires Go 1.7 or newer.

  • Glide

    Glide is used to manage project dependencies and provide reproducible builds. To install:

     go get -u github.com/Masterminds/glide
    
  • Build and Installation

    For a first time installation, the project and dependency sources can be obtained manually with git and glide (create directories as needed):

     git clone https://github.com/HcashOrg/hcashd $GOPATH/src/github.com/HcashOrg/hcashd
     cd $GOPATH/src/github.com/HcashOrg/hcashd
     glide install
     go install $(glide nv)
    

    To update an existing source tree, pull the latest changes and install the matching dependencies:

    cd $GOPATH/src/github.com/HcashOrg/hcashd
    git pull
    glide install
    go install $(glide nv)
    
  • Start running hcash full node service to synchrnoze blocks

     hcashd
    
  • Start hcash solo mining

     hcashctl setgenerate true x     # where x represents the number of CPU threads
    
  • Stop hcash solo mining

     hcashctl setgenerate false
    

Using HcashWallet GUI Version

HcashWallet GUI version is a graphical wallet for Hcash. You can send and receive Hcash, purchase tickets for PoS voting, get history of all your transactions and more by GUI HcashWallet.

HcashWallet GUI version is at: https://github.com/HcashOrg/hcashwallet/releases. It could be extracted and used directly.

HcashWallet GUI version user guide is at: https://github.com/HcashOrg/hcashd/wiki. If any suggestion, please post your suggestion at https://github.com/HcashOrg/hcashd/issues or send email to [email protected]. Thank you very much!

License

hcashd is licensed under the copyfree ISC License.