Handshake
Handshake is a decentralized naming protocol for allocating ownership rights to Top-Level Domains (TLD), such as a.com or a.org, which one can use for websites, email addresses, or crypto addresses.[1]
Handshake Co-founders Andrew and Joseph on the future of authentication and naming
As of August 24th, 2020, HNS is ranked 158th on CoinMarketCap with a market cap of 54,303,246 USD and max supply of 2,040,000,000 HNS.[2]
History
Handshake was started by Joseph Poon (co-creator of The Bitcoin Lightning Network and Plasma payment channels), Andrew Lee (CEO of Bitcoin payments gateway Purse), Christopher Jeffery (CTO of Purse and creator of Bitcoin node software Bcoin), Boyma Fahnbulleh (Bcoin developer), and Andrew Lee (Founder of VPN provider Private Internet Access) as a secret project at San Francisco, California.[3]
From the beginning, its goal was to build a decentralized alternative to the existing system for allocating and managing Top Level Domains (TLDs). [2]
The Handshake software originates from a fork of the Bitcoin client Bcoin, which was first developed by Christopher Jeffery.[3]
How Handshake Works
Handshake bidding
Handshake users are able to purchase the rights to a Top-Level Domain (TLD) through an auction system, where participants submit bids in the form of HNS tokens through Handshake's Vickrey auctions.[1]
The winning bidder is then able to register the TLD under their cryptographic keys by entering the pair into Handshake's Proof-of-Work (PoW) blockchain, which acts as a distributed alternative to Certificate Authorities (CAs).[1]
The winner's tokens get burned (i.e., permanently removed from circulation) in this process. The participants who were unsuccessful can reclaim their tokens after the auction is over.[2]
The current Domain Name System (DNS) stack relies on a group of Certificate Authorities (CAs) that work to verify the authenticity of website ownership and prevent malicious actors from intercepting search requests.[1]
Handshake is working on removing the reliance on these trusted third-parties by having its public Proof-of-work (PoW) blockchain serve as the source of truth.[2]
So rather than registering a domain name with a CA and storing it on the root zone file, users can just purchase a TLD with Handshake's native token, HNS, and have it registered under their public key on the decentralized Handshake network.[3]
Token Sale
In August 2018, Handshake raised 10.2 million dollars from various financial contributors, including participation from a16z, Founders Fund, Polychain Capital, and Draper Associates. All the investors combined to purchase 7.5% of the initial HNS supply of 1.36 billion tokens, valuing the Handshake network at $136 million.
The remaining HNS supply was reserved at 7.5% each for early contributors (to pay for pre-launch development), Certificate Authorities (CAs) or naming corporations, and domain name holders with authentic proof of ownership. 5% of tokens went to various non-profits and FOSS projects, who received all of Handshake's $10.2 million fundraise as donations.[2]
The project also pledged to give out the majority of the initial supply (65%) to Free and Open-Source Software (FOSS) developers and projects, including non-profit organizations and universities.[1]
Developers that had a valid GitHub account were able to claim these coins via an HNS faucet, a software tool that allows users to generate free tokens.[1]
Handshake also provided a 90-day period before its main net launch (known as a "Sunrise Period") for all the existing rights-holders (name and TLD owners) to claim their "trademarked names" and HNS allocations. All unclaimed tokens were burnt eventually. [2]
Start Date | 08/02/2018 |
---|---|
End Date | 08/02/2018 |
Token Allocated | 102,000,000 HNS |
Price | $0.100 per HNS |
Total Collected | $10,200,000 |
Consensus Details
Handshake makes use of Proof-of-work (PoW) consensus to reach a global agreement when ordering of HNS transactions and also as a user registers a domain name. Its nodes each run the same software rules so every participant is able to reach an agreement on name ownership.[1]
The consensus rules are identical to that of Bitcoin, whereby the valid chain is the longest chain with the most accumulated work (i.e., hash power). Also like Bitcoin, network consensus is probabilistic because a new competing chain, known as a fork, could emerge with more accumulated work and make the current chain invalid.[3]
Handshake went for PoW rather than alternative consensus mechanisms because of its known security parameters and the ability to support compact light client proofs. Its blockchain leverages the latter feature by allowing users to participate in consensus and resolve names via Simplified Payment Verification (SPV) nodes (i.e., light clients) instead of full nodes.[2]
Mining
How to GPU Mine Handshake (HNS) and Review
Handshake miners are able to generate new blocks using the BLAKE2b + SHA3 hash algorithm, and hashes in Handshake are Big-Endian. Due to the fact that Handshake is SegWit-only, there are no output scripts, just addresses (which themselves are witness program version + witness program hash). [3]
A witness program can encode a public key or a script hash, but those keys and scripts will appear in transaction inputs as witness stack items.[2]
In the mining process, the miners all compete to produce a block header less than the target set by Handshake's difficulty level. Handshake alters the difficulty level, or how hard it is to discover a valid block header, every block to keep block times around ten minutes. [1]
The network borrows from Zcash's difficulty retargeting algorithm, which uses a variation of DigiShield. Handshake opted for a reimplementation of DigiShield because it performs well when faced with abrupt changes in network hash rate. [1]
Their next mining halving is in May 2023. HNS serves as the reward for miners on Handshake's Proof-of-Work (PoW) blockchain and also has the function of helping secure the network.[2]
How to Mine Handshake's HNS
Step 1: Generate a Handshake address (to set as your pool payout address)
There are three options for generating a Handshake address based on the preferred security level.
a) Generate the address with a Handshake full node (HSD)
b) Generate the address using Bob Wallet
c) Generate an address on Namebase by creating an account
Step 2: Choose and register for a Handshake mining pool
Currently, there are four mining pools that support Handshake mining. They can be chosen based on any criteria like fee, anonymity, etc. It's preferable to use the pool that has lower fees - which is 6Block and HNSPool. [2]
a) F2pool
b) HNSPool
c) 6Block
d) PoolFlare
Step 3: Choose, download, and install mining software for your OS
There are different GPU specialized mining clients that are presently available like HandyMiner, GMiner, SRBMiner, 6miner, and NB Miner.
HandyMiner is available on Windows, Mac, and Linux (also available in GUI)
6miner is available on Linux and Windows
NBMiner is available on Linux and Windows - NBMiner README
Step 4: Configure Handshake Miner with Handshake pool information
Once the mining software has been set up, the next step is to configure the miner so that it can communicate with the Handshake pool of choice and credit for any work done. It is possible to swap between the pools by simply tweaking the configuration.
Each miner comes with a config file that can be edited to update the Handshake pool being mined. This can be done by either entering the pool information during the initial configuration or by opening the configuration file with an editor.[3]
Step 5: Start mining Handshake
For NBMiner, run start_hns.sh (Linux or Mac) or start_hns.bat (Windows)
For 6Miner, run mine_hns.sh (Linux and Mac) or mine_hns.bat (Windows).
For HandyMiner, open dashboard.sh (Linux), dashboard.mac.command (Mac), or dashboard.windows.bat (Windows).[3]