Skip to content

Tendermint validator implementation that uses a CodeSafe machine on an nShield.

License

Notifications You must be signed in to change notification settings

thales-e-security/tendermint-hsm-validator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thales Tendermint HSM Validator

Validators are a core component of a blockchain and are responsible for validating new transactions and agreeing an canonical order for the next block. This process is known as consensus.

Tendermint is a popular consensus engine used by many open source projects. In conjunction with Tendermint developers, Thales eSecurity has introduced the ability to protect validator signing keys and consensus logic using a hardware security module (HSM). This project contains the Go parts of the HSM validator implementation, which communicate with the software running inside the Thales nShield HSM.

Thales HSM

Why protect validators with HSMs?

Large, public blockchains, such as Bitcoin or Ethereum, enjoy robust security properties due to their sheer scale. To compromise one of these networks requires control of over 50% of the mining power on the planet. Not a realistic option for attackers.

By contrast, smaller permissioned chains must rely on traditional means of security to prevent bad actors from subverting the ledger contents. When you have only 5 or 10 nodes, subverting the necessary 1/3 of participants becomes a realistic prospect if insufficient protections are employed to protect signing keys and consensus logic.

Thales HSM PrivValidator

At Thales eSecurity we have helped design the Tendermint PrivValidator interface (link), which we implement in this GitHub project. A PrivValidator implementation is reponsible for protecting a private key and deciding whether to sign votes, proposals and heartbeats (see this page for an overview of the consensus protocol).

Our implementation protects the private key within our HSM security model and ensures that votes and proposals cannot be double-signed (by preventing height regressions).

The complete implementation includes the Go code presented in this project, plus an accompanying CodeSafe machine that runs within the nShield HSM. The CodeSafe machine ensures the private keys are only used if the consensus is executed correctly.

To learn more

If you would like to learn more about this project, please contact us via our website: https://www.thalesesecurity.com.

About

Tendermint validator implementation that uses a CodeSafe machine on an nShield.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages