teonite / casper-node

Reference client for CASPER protocol
https://casper.network
Apache License 2.0
0 stars 0 forks source link

Remote signer #14

Open wojcik91 opened 4 months ago

wojcik91 commented 4 months ago

General overview

We propose introducing a remote signer capability to the node, similar to what's available in Cosmos-based blockchains. We'd leave the current file-based key management system as-is but give node operators a configuration option to offload signing operations to a remote HTTP service. Such a service could be running on the same machine, on a different server or wherever the user decides to deploy it and it could be implementing various key management schemes, HA approaches etc while being transparent to the node.

Motivation

When initially considering adding HSM support we intended to add a shared Signer trait and implement it for each supported key management solution within the node itself. We believe using a remote signer instead would have some significant advantages:

Additionally, existing prior art in CosmosSDK ecosystem leads us to believe that the additional latency would not be an issue as we've feared, since they are using even shorter block times (4s).

Implementation

From the technical perspective implementing remote signer functionality would require following changes: