Handshake: Decentralized DNS, certificate authority and naming