parallelchain-io / hotstuff_rs

Rust implementation of the HotStuff consensus algorithm.
34 stars 4 forks source link

Consider using generic `signature` crate instead of ed25519-dalek #34

Open nbaksalyar opened 2 months ago

nbaksalyar commented 2 months ago

Considering that this library already supports a lot of generic interfaces, and considering that ed25519-dalek usage is already quite light, switching to a more generic signature (which ed25519-dalek also supports natively) might be beneficial for the users who prefer other crates that implement ed25519 - or another signature algorithm for that matter. What do you think?

And thanks for your work! :)

lyulka commented 2 months ago

Hi @nbaksalyar!

Indeed we are considering letting users choose their own digital signature scheme. In fact, we are considering going even further and allowing users to opt out of digital signatures entirely and instead use a non-cryptographic way to "vote" for proposals and nudges. This option may be sufficient for settings where there is no risk that an adversary could "impersonate" other replicas, e.g., in enterprise deployments where the network is not open to the public. For these kinds of deployments, a signature-less HotStuff-rs could be an alternative to a non-BFT state machine replication algorithm like Raft.

We'll keep your suggestion in mind!

nbaksalyar commented 2 months ago

Awesome! Please let me know if you need any help with the implementation.