In the Hidden Service Protocol specification on torproject.org is written that all .onion addresses are generated from the public key of the hidden service (what we send to the DHT).
If this is true, why software like Shallot deal with the private key of the service, so when the brute-forcing is complete and the proper key is found for the searched prefix, we need to change our private key in order to have new custom .onion address?