Closed Kynea0b closed 1 year ago
I think this proposal is very great. The libsodium vrf was not modified in the very long times. And it has compile and linking issue because it is c++. So it is very good suggestion.
But migration should be considered since the vrf function is not compatible. Let's check it.
Oh neat more people using my library. Ok, I'm glad people think the code is legible.
But migration should be considered since the vrf function is not compatible.
It is the same IETF draft, my implementation just significantly post-dates when algorand did theirs, so it was after the spec changes broke compatibility. My implementation provides v7-v10 and v11+, while your libsodium fork implements v3.
The incompatibility comes from all the changes made to v7 of the draft.
Thank you very much for your comment!!! The code is legible and the comments are polite and helpful. I really appreciate your explanation!!! @Yawning
Merging #633 (903db19) into main (06e3b94) will decrease coverage by
0.17%
. The diff coverage is77.77%
.
Thank you!! I fixed as pointed out. PTAL @ulbqb
Overview
The curve25519-voi ed25519 function is also referenced in cometbft/cometbft main or tendermint/tendermint master and is used for signing. This library also implements VRF. Therefore, it is desirable to use this function for the VRF function. This change removes libsodium, r2ishiguro, and all other unnecessary VRF libraries.
Ref: https://github.com/oasisprotocol/curve25519-voi/blob/master/primitives/ed25519/extra/ecvrf/ecvrf.go
Advantages of using curve25519-voi
Briefly describe the advantages of using curve25519-voi's VRF.
Background applied to master branch of Tendermint
Prior to this PR, for tendermint/tendermint master branch, hdevalence/ed25519consensus library was an implementation of ed25519 whose library was used for the signature scheme. This is also used in Ostracon. Tendermint seems to have applied curve25519-voi because of its improved batch processing algorithm, performance, and so on.
Refs
curve25519-voi is also refrenced here by
cometBFT/cometBFT
https://github.com/cometbft/cometbft/blob/main/p2p/conn/secret_connection.go#L18Closes: #620