This key is the voter's identity-linked private key.
The registration office then sends a list of public keys without any identifying information information to the ballot office, who encrypts a separate anonymous blockchain key with each public key, and publishes the entire list of results paired with the hash of the blockchain key.
The voter then attempts to decrypt each entry with their private key, and then hash the result. When the hash matches, that is the voter's anonymous blockchain key. Each voter has to make, at most, a number of attempts equal to the number of registered voters in their district before finding their own key.
The ballot office can verify that each blockchain key for that election belongs to a registered voter, but cannot say which one. The registration office can verify that each registered voter has a blockchain key available (by counting), but cannot even tell who bothered to decrypt their key and vote with it, much less what anyone in particular voted for.