dqian3 / DOM-BFT

MIT License
0 stars 0 forks source link

Implement MAC authentication as part of messaging library #11

Open dqian3 opened 4 months ago

dqian3 commented 4 months ago

There are some parts of our protocol design where we don't need a full digital signature (which is relatively expensive), and we instead can use a message authentication code. For example, in our protocol, we could use MACs to authenticate messages coming from the trusted fabric.

The key difference between the two is that digital signatures are transferable, while MACs are not. In other words, if A signs a message, anyone can verify it, and in a BFT context, this is also useful because the signature is evidence of A having performed some operation. A MAC is built using a shared secret key between a set of processes, where only the processes that have the secret key can verify it.

We would need to implement MAC signatures and verification as part of our SignedUDPEndpoint abstraction, in addition to supporting RSA/public key encryption.

dqian3 commented 6 days ago

Some example code here: https://github.com/dqian3/DOM-BFT/blob/main/test/sandbox_mac.cc