This is not especially about the kadnode software itself, but for the "kadnode ecosystem". Using the public key as an address is a good first step to cryptographically secure DNS, but what happens after DNS? At the end you want to communicate with a server and it should be encrypted and authentificated. On the normal internet you have CAs who issue you a certificate for your domain, but this isn't possible for .p2p domains. A malicious actor could intercept the traffic after a successful DNS verification process and route the traffic to their own server. Of course you can import your own CA so you don't get a warning in your browser or your app, but this isn't a solution for normal users. So why not use the same key for verifying DNS and the TLS server certificate? Unfortunately this has to be implemented in every application you want to use with kadnode.