Is there any procedure to make the accounts usable only on a single node? For example, I’m running an Ethereum node on device: A. I have two accounts. If I start the geth instance in another device: B and copy the keystore contents of device: A to device: B, I can use those accounts if I know the passwords. Is there any way to make these accounts unique to a device i.e., these accounts should be unusable on other devices. Can I link enode URI to account address so that I can identify the device with the account name?

P.S: I'm running on a private blockchain

1 Answer 1


An account is essentially bound to a private key, meaning that whoever has the private key can make transactions on behalf of that account.

Current implementations of Ethereum do not allow it (you can always connect to the network as a node as long as you have its private key (keystore file and password)).

You will need to do the binding externally; for example by creating a TLS certificate for a host that has an account. The certificate will bind that address to certain, uniquely identifiable attributes of the host (str. address, organization, domain, etc.).

You can then use the external channel to exchange a nonce between two hosts, sign it with the certificate private key and send it as a data/input field in a transaction. The receiving host can then check that only the sending host could have sent the respective value.

Note that everything that is in the block chain is publicly available so it shouldn't be used in exchanging sensitive data.


You can also have a look at permissioned block chains as they may offer a more readily available solution.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.