diff --git a/crates/contract/src/dto_mapping.rs b/crates/contract/src/dto_mapping.rs index 50b9b23fe..c5d4362ba 100644 --- a/crates/contract/src/dto_mapping.rs +++ b/crates/contract/src/dto_mapping.rs @@ -520,7 +520,7 @@ impl IntoInterfaceType for Curve { fn into_dto_type(self) -> dtos::SignatureScheme { match self { Curve::Secp256k1 => dtos::SignatureScheme::Secp256k1, - Curve::Ed25519 => dtos::SignatureScheme::Ed25519, + Curve::Edwards25519 => dtos::SignatureScheme::Ed25519, Curve::Bls12381 => dtos::SignatureScheme::Bls12381, Curve::V2Secp256k1 => dtos::SignatureScheme::V2Secp256k1, } diff --git a/crates/contract/src/lib.rs b/crates/contract/src/lib.rs index 3cfc9e28e..583ea1807 100644 --- a/crates/contract/src/lib.rs +++ b/crates/contract/src/lib.rs @@ -284,7 +284,7 @@ impl MpcContract { .into_option() .expect("Ecdsa payload cannot be converted to Scalar"); } - Curve::Ed25519 => { + Curve::Edwards25519 => { request.payload.as_eddsa().expect("Payload is not EdDSA"); } Curve::Bls12381 => { @@ -2365,7 +2365,7 @@ mod tests { let (pk, sk) = new_secp256k1(rng); (pk.into(), SharedSecretKey::Secp256k1(sk)) } - Curve::Ed25519 => { + Curve::Edwards25519 => { let (pk, sk) = new_ed25519(rng); (pk.into(), SharedSecretKey::Ed25519(sk)) } diff --git a/crates/contract/src/primitives/domain.rs b/crates/contract/src/primitives/domain.rs index 8e99899de..2b68164d5 100644 --- a/crates/contract/src/primitives/domain.rs +++ b/crates/contract/src/primitives/domain.rs @@ -52,7 +52,8 @@ impl Display for DomainId { #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum Curve { Secp256k1, - Ed25519, + #[serde(rename = "Ed25519")] + Edwards25519, Bls12381, V2Secp256k1, // Robust ECDSA } @@ -69,7 +70,7 @@ pub fn is_valid_curve_for_purpose(purpose: DomainPurpose, curve: Curve) -> bool (purpose, curve), (DomainPurpose::Sign, Curve::Secp256k1) | (DomainPurpose::Sign, Curve::V2Secp256k1) - | (DomainPurpose::Sign, Curve::Ed25519) + | (DomainPurpose::Sign, Curve::Edwards25519) | (DomainPurpose::ForeignTx, Curve::Secp256k1) | (DomainPurpose::CKD, Curve::Bls12381) ) @@ -304,7 +305,7 @@ pub mod tests { }, DomainConfig { id: DomainId(1), - curve: Curve::Ed25519, + curve: Curve::Edwards25519, purpose: DomainPurpose::Sign, }, ]; @@ -361,7 +362,7 @@ pub mod tests { }, DomainConfig { id: DomainId(2), - curve: Curve::Ed25519, + curve: Curve::Edwards25519, purpose: DomainPurpose::Sign, }, DomainConfig { @@ -400,7 +401,7 @@ pub mod tests { }, DomainConfig { id: DomainId(2), - curve: Curve::Ed25519, + curve: Curve::Edwards25519, purpose: DomainPurpose::Sign, }, DomainConfig { @@ -417,7 +418,7 @@ pub mod tests { Some(DomainId(3)) ); assert_eq!( - registry.most_recent_domain_for_curve(Curve::Ed25519), + registry.most_recent_domain_for_curve(Curve::Edwards25519), Some(DomainId(2)) ); } @@ -467,7 +468,7 @@ pub mod tests { #[rstest] #[case(Curve::Secp256k1, DomainPurpose::Sign)] - #[case(Curve::Ed25519, DomainPurpose::Sign)] + #[case(Curve::Edwards25519, DomainPurpose::Sign)] #[case(Curve::V2Secp256k1, DomainPurpose::Sign)] #[case(Curve::Bls12381, DomainPurpose::CKD)] fn test_infer_purpose_from_curve(#[case] curve: Curve, #[case] expected: DomainPurpose) { @@ -478,12 +479,12 @@ pub mod tests { // Valid combinations #[case(DomainPurpose::Sign, Curve::Secp256k1, true)] #[case(DomainPurpose::Sign, Curve::V2Secp256k1, true)] - #[case(DomainPurpose::Sign, Curve::Ed25519, true)] + #[case(DomainPurpose::Sign, Curve::Edwards25519, true)] #[case(DomainPurpose::ForeignTx, Curve::Secp256k1, true)] #[case(DomainPurpose::CKD, Curve::Bls12381, true)] // Invalid combinations #[case(DomainPurpose::Sign, Curve::Bls12381, false)] - #[case(DomainPurpose::ForeignTx, Curve::Ed25519, false)] + #[case(DomainPurpose::ForeignTx, Curve::Edwards25519, false)] #[case(DomainPurpose::ForeignTx, Curve::Bls12381, false)] #[case(DomainPurpose::ForeignTx, Curve::V2Secp256k1, false)] #[case(DomainPurpose::CKD, Curve::Secp256k1, false)] @@ -599,7 +600,7 @@ pub mod tests { }]; let proposal_b = vec![DomainConfig { id: DomainId(0), - curve: Curve::Ed25519, + curve: Curve::Edwards25519, purpose: DomainPurpose::Sign, }]; let mut votes = AddDomainsVotes::default(); diff --git a/crates/contract/src/primitives/test_utils.rs b/crates/contract/src/primitives/test_utils.rs index 2dda27ba9..95a358b47 100644 --- a/crates/contract/src/primitives/test_utils.rs +++ b/crates/contract/src/primitives/test_utils.rs @@ -14,7 +14,7 @@ use std::collections::BTreeMap; const ALL_CURVES: [Curve; 4] = [ Curve::Secp256k1, - Curve::Ed25519, + Curve::Edwards25519, Curve::Bls12381, Curve::V2Secp256k1, ]; diff --git a/crates/contract/src/snapshots/mpc_contract__tests__mpc_contract_borsh_schema_has_not_changed.snap b/crates/contract/src/snapshots/mpc_contract__tests__mpc_contract_borsh_schema_has_not_changed.snap index 3de94ad45..038b1bdeb 100644 --- a/crates/contract/src/snapshots/mpc_contract__tests__mpc_contract_borsh_schema_has_not_changed.snap +++ b/crates/contract/src/snapshots/mpc_contract__tests__mpc_contract_borsh_schema_has_not_changed.snap @@ -301,8 +301,8 @@ BorshSchemaContainer { ), ( 1, - "Ed25519", - "Curve__Ed25519", + "Edwards25519", + "Curve__Edwards25519", ), ( 2, @@ -319,7 +319,7 @@ BorshSchemaContainer { "Curve__Bls12381": Struct { fields: Empty, }, - "Curve__Ed25519": Struct { + "Curve__Edwards25519": Struct { fields: Empty, }, "Curve__Secp256k1": Struct { diff --git a/crates/contract/src/state/running.rs b/crates/contract/src/state/running.rs index f44d4947a..d0fe78562 100644 --- a/crates/contract/src/state/running.rs +++ b/crates/contract/src/state/running.rs @@ -348,7 +348,7 @@ pub mod running_tests { #[rstest] #[case(Curve::Bls12381, DomainPurpose::Sign)] - #[case(Curve::Ed25519, DomainPurpose::ForeignTx)] + #[case(Curve::Edwards25519, DomainPurpose::ForeignTx)] #[case(Curve::Secp256k1, DomainPurpose::CKD)] fn vote_add_domains__should_reject_invalid_curve_purpose( #[case] curve: Curve, diff --git a/crates/contract/tests/inprocess/attestation_submission.rs b/crates/contract/tests/inprocess/attestation_submission.rs index f979f905b..fc0511cc2 100644 --- a/crates/contract/tests/inprocess/attestation_submission.rs +++ b/crates/contract/tests/inprocess/attestation_submission.rs @@ -150,7 +150,7 @@ impl TestSetupBuilder { .contract .vote_add_domains(vec![DomainConfig { id: DomainId(1), - curve: Curve::Ed25519, + curve: Curve::Edwards25519, purpose: DomainPurpose::Sign, }]) .unwrap(); diff --git a/crates/contract/tests/sandbox/common.rs b/crates/contract/tests/sandbox/common.rs index b05aed6c2..ce27faa4a 100644 --- a/crates/contract/tests/sandbox/common.rs +++ b/crates/contract/tests/sandbox/common.rs @@ -203,7 +203,7 @@ pub async fn init_with_candidates( .map(|(i, pk)| { let domain_id = DomainId((i as u64) * 2); let curve = match pk { - dtos::PublicKey::Ed25519(_) => Curve::Ed25519, + dtos::PublicKey::Ed25519(_) => Curve::Edwards25519, dtos::PublicKey::Secp256k1(_) => Curve::Secp256k1, dtos::PublicKey::Bls12381(_) => Curve::Bls12381, }; @@ -529,7 +529,7 @@ pub async fn execute_key_generation_and_add_random_state( let domains_to_add = [ DomainConfig { id: 0.into(), - curve: Curve::Ed25519, + curve: Curve::Edwards25519, purpose: DomainPurpose::Sign, }, DomainConfig { @@ -539,7 +539,7 @@ pub async fn execute_key_generation_and_add_random_state( }, DomainConfig { id: 2.into(), - curve: Curve::Ed25519, + curve: Curve::Edwards25519, purpose: DomainPurpose::Sign, }, ]; diff --git a/crates/contract/tests/sandbox/upgrade_to_current_contract.rs b/crates/contract/tests/sandbox/upgrade_to_current_contract.rs index 7fd38d8d3..c9ce5ae5e 100644 --- a/crates/contract/tests/sandbox/upgrade_to_current_contract.rs +++ b/crates/contract/tests/sandbox/upgrade_to_current_contract.rs @@ -355,7 +355,7 @@ async fn upgrade_allows_new_request_types( }, DomainConfig { id: (first_available_domain_id + 1).into(), - curve: Curve::Ed25519, + curve: Curve::Edwards25519, purpose: DomainPurpose::Sign, }, ]; diff --git a/crates/contract/tests/sandbox/utils/consts.rs b/crates/contract/tests/sandbox/utils/consts.rs index c304d0def..17f6409f9 100644 --- a/crates/contract/tests/sandbox/utils/consts.rs +++ b/crates/contract/tests/sandbox/utils/consts.rs @@ -7,7 +7,7 @@ use near_sdk::{Gas, NearToken}; pub const PARTICIPANT_LEN: usize = 10; pub const ALL_CURVES: &[Curve; 4] = &[ Curve::Secp256k1, - Curve::Ed25519, + Curve::Edwards25519, Curve::Bls12381, Curve::V2Secp256k1, ]; diff --git a/crates/contract/tests/sandbox/utils/interface.rs b/crates/contract/tests/sandbox/utils/interface.rs index d1ad00161..473f1e445 100644 --- a/crates/contract/tests/sandbox/utils/interface.rs +++ b/crates/contract/tests/sandbox/utils/interface.rs @@ -19,7 +19,7 @@ impl IntoInterfaceType for Curve { fn into_interface_type(self) -> dtos::SignatureScheme { match self { Curve::Secp256k1 => dtos::SignatureScheme::Secp256k1, - Curve::Ed25519 => dtos::SignatureScheme::Ed25519, + Curve::Edwards25519 => dtos::SignatureScheme::Ed25519, Curve::Bls12381 => dtos::SignatureScheme::Bls12381, Curve::V2Secp256k1 => dtos::SignatureScheme::V2Secp256k1, } diff --git a/crates/contract/tests/sandbox/utils/shared_key_utils.rs b/crates/contract/tests/sandbox/utils/shared_key_utils.rs index d0c7a4eb3..c7aef9e15 100644 --- a/crates/contract/tests/sandbox/utils/shared_key_utils.rs +++ b/crates/contract/tests/sandbox/utils/shared_key_utils.rs @@ -63,7 +63,7 @@ pub fn make_key_for_domain(domain_curve: Curve) -> (dtos::PublicKey, SharedSecre let (pk, sk) = new_secp256k1(); (pk, SharedSecretKey::Secp256k1(sk)) } - Curve::Ed25519 => { + Curve::Edwards25519 => { let (pk, sk) = new_ed25519(); (pk, SharedSecretKey::Ed25519(sk)) } diff --git a/crates/contract/tests/sandbox/vote.rs b/crates/contract/tests/sandbox/vote.rs index c0d2a2429..12ac737dc 100644 --- a/crates/contract/tests/sandbox/vote.rs +++ b/crates/contract/tests/sandbox/vote.rs @@ -41,7 +41,7 @@ async fn test_keygen() -> anyhow::Result<()> { }; let epoch_id = init_running.keyset.epoch_id; let domain_id = init_running.domains.next_domain_id; - let curve = Curve::Ed25519; + let curve = Curve::Edwards25519; // vote to add the domain and verify we enter initializing state vote_add_domains( diff --git a/crates/devnet/src/contracts.rs b/crates/devnet/src/contracts.rs index 842e7bf9a..dc7a0beb4 100644 --- a/crates/devnet/src/contracts.rs +++ b/crates/devnet/src/contracts.rs @@ -59,7 +59,7 @@ pub fn make_actions(call: ContractActionCall) -> ActionCall { Curve::Secp256k1 | Curve::V2Secp256k1 => { ecdsa_calls_by_domain.insert(domain.id.0, prot_calls); } - Curve::Ed25519 => { + Curve::Edwards25519 => { eddsa_calls_by_domain.insert(domain.id.0, prot_calls); } Curve::Bls12381 => { @@ -174,7 +174,7 @@ fn make_payload(curve: Curve) -> Payload { Curve::Secp256k1 | Curve::V2Secp256k1 => { Payload::Ecdsa(Bytes::new(rand::random::<[u8; 32]>().to_vec()).unwrap()) } - Curve::Ed25519 => { + Curve::Edwards25519 => { let len = rand::random_range( EDDSA_PAYLOAD_SIZE_LOWER_BOUND_BYTES..=EDDSA_PAYLOAD_SIZE_UPPER_BOUND_BYTES, ); diff --git a/crates/devnet/src/loadtest.rs b/crates/devnet/src/loadtest.rs index 9f45140ae..08c3233f6 100644 --- a/crates/devnet/src/loadtest.rs +++ b/crates/devnet/src/loadtest.rs @@ -288,7 +288,7 @@ impl RunLoadtestCmd { domain_config, }) } - Curve::Ed25519 | Curve::Secp256k1 | Curve::V2Secp256k1 => { + Curve::Edwards25519 | Curve::Secp256k1 | Curve::V2Secp256k1 => { ContractActionCall::Sign(crate::contracts::RequestActionCallArgs { mpc_contract: mpc_account, domain_config, diff --git a/crates/node/src/coordinator.rs b/crates/node/src/coordinator.rs index 0aa3dcac8..2f5323e5d 100644 --- a/crates/node/src/coordinator.rs +++ b/crates/node/src/coordinator.rs @@ -548,7 +548,7 @@ where } KeyshareData::Ed25519(data) => { eddsa_keyshares.insert(keyshare.key_id.domain_id, data); - domain_to_curve.insert(domain_id, Curve::Ed25519); + domain_to_curve.insert(domain_id, Curve::Edwards25519); } KeyshareData::Bls12381(data) => { ckd_keyshares.insert(keyshare.key_id.domain_id, data); diff --git a/crates/node/src/key_events.rs b/crates/node/src/key_events.rs index 2c0a4d80b..e543ce170 100644 --- a/crates/node/src/key_events.rs +++ b/crates/node/src/key_events.rs @@ -75,7 +75,7 @@ pub async fn keygen_computation_inner( )?); (KeyshareData::V2Secp256k1(keyshare), public_key) } - Curve::Ed25519 => { + Curve::Edwards25519 => { let keyshare = EddsaSignatureProvider::run_key_generation_client(threshold, channel).await?; let public_key = dtos::PublicKey::Ed25519(dtos::Ed25519PublicKey::from( @@ -257,7 +257,7 @@ async fn resharing_computation_inner( } ( near_mpc_contract_interface::types::PublicKey::Ed25519(inner_public_key), - Curve::Ed25519, + Curve::Edwards25519, ) => { let public_key = frost_ed25519::VerifyingKey::deserialize(inner_public_key.as_ref())?; let my_share = existing_keyshare diff --git a/crates/node/src/mpc_client.rs b/crates/node/src/mpc_client.rs index fc7b82896..ba922f03d 100644 --- a/crates/node/src/mpc_client.rs +++ b/crates/node/src/mpc_client.rs @@ -405,7 +405,7 @@ where Ok(response) } - Some(Curve::Ed25519) => { + Some(Curve::Edwards25519) => { let (signature, _) = timeout( Duration::from_secs(this.config.signature.timeout_sec), this.eddsa_signature_provider @@ -525,7 +525,7 @@ where } Some(Curve::Secp256k1) | Some(Curve::V2Secp256k1) - | Some(Curve::Ed25519) => Err(anyhow::anyhow!( + | Some(Curve::Edwards25519) => Err(anyhow::anyhow!( "Signature scheme is not allowed for domain: {:?}", ckd_attempt.request.domain_id.clone() )), @@ -617,7 +617,7 @@ where } Some(Curve::Bls12381) | Some(Curve::V2Secp256k1) - | Some(Curve::Ed25519) => Err(anyhow::anyhow!( + | Some(Curve::Edwards25519) => Err(anyhow::anyhow!( "Signature scheme is not allowed for domain: {:?}", verify_foreign_tx_attempt.request.domain_id.clone() )), diff --git a/crates/node/src/tests.rs b/crates/node/src/tests.rs index 193fafb8d..32d1181ef 100644 --- a/crates/node/src/tests.rs +++ b/crates/node/src/tests.rs @@ -280,7 +280,7 @@ pub async fn request_signature_and_await_response( rand::thread_rng().fill_bytes(payload.as_mut()); Payload::Ecdsa(Bytes::new(payload.to_vec()).unwrap()) } - Curve::Ed25519 => { + Curve::Edwards25519 => { let len = rand::thread_rng().gen_range( EDDSA_PAYLOAD_SIZE_LOWER_BOUND_BYTES..EDDSA_PAYLOAD_SIZE_UPPER_BOUND_BYTES, ); diff --git a/crates/node/src/tests/basic_cluster.rs b/crates/node/src/tests/basic_cluster.rs index edfed097e..22555fbdc 100644 --- a/crates/node/src/tests/basic_cluster.rs +++ b/crates/node/src/tests/basic_cluster.rs @@ -38,7 +38,7 @@ async fn test_basic_cluster() { let signature_domain_eddsa = DomainConfig { id: DomainId(1), - curve: Curve::Ed25519, + curve: Curve::Edwards25519, purpose: DomainPurpose::Sign, }; diff --git a/crates/node/src/tests/multidomain.rs b/crates/node/src/tests/multidomain.rs index 51ae83036..10bc12b81 100644 --- a/crates/node/src/tests/multidomain.rs +++ b/crates/node/src/tests/multidomain.rs @@ -40,7 +40,7 @@ async fn test_basic_multidomain() { }, DomainConfig { id: DomainId(1), - curve: Curve::Ed25519, + curve: Curve::Edwards25519, purpose: DomainPurpose::Sign, }, DomainConfig { @@ -74,7 +74,7 @@ async fn test_basic_multidomain() { tracing::info!("requesting signature"); for domain in &domains { match domain.curve { - Curve::Secp256k1 | Curve::Ed25519 | Curve::V2Secp256k1 => { + Curve::Secp256k1 | Curve::Edwards25519 | Curve::V2Secp256k1 => { assert!(request_signature_and_await_response( &mut setup.indexer, &format!("user{}", domain.id.0), @@ -99,7 +99,7 @@ async fn test_basic_multidomain() { let new_domains = vec![ DomainConfig { id: DomainId(3), - curve: Curve::Ed25519, + curve: Curve::Edwards25519, purpose: DomainPurpose::Sign, }, DomainConfig { @@ -139,7 +139,7 @@ async fn test_basic_multidomain() { for domain in &domains { match domain.curve { - Curve::Secp256k1 | Curve::Ed25519 | Curve::V2Secp256k1 => { + Curve::Secp256k1 | Curve::Edwards25519 | Curve::V2Secp256k1 => { assert!(request_signature_and_await_response( &mut setup.indexer, &format!("user{}", domain.id.0), @@ -186,7 +186,7 @@ async fn test_basic_multidomain() { for domain in &domains { match domain.curve { - Curve::Secp256k1 | Curve::Ed25519 | Curve::V2Secp256k1 => { + Curve::Secp256k1 | Curve::Edwards25519 | Curve::V2Secp256k1 => { assert!(request_signature_and_await_response( &mut setup.indexer, &format!("user{}", domain.id.0), diff --git a/crates/node/src/tests/resharing.rs b/crates/node/src/tests/resharing.rs index f4a8e6e12..67af977b8 100644 --- a/crates/node/src/tests/resharing.rs +++ b/crates/node/src/tests/resharing.rs @@ -19,7 +19,7 @@ use super::DEFAULT_BLOCK_TIME; #[test_log::test] #[rstest] #[case(0, Curve::Secp256k1, 3)] -#[case(1, Curve::Ed25519, 3)] +#[case(1, Curve::Edwards25519, 3)] #[case(2, Curve::Bls12381, 3)] // TODO(#1946): re-enable once it is no longer flaky // #[case(3, Curve::V2Secp256k1, 5)] @@ -76,7 +76,7 @@ async fn test_key_resharing_simple( // Sanity check. match domain.curve { - Curve::Secp256k1 | Curve::Ed25519 | Curve::V2Secp256k1 => { + Curve::Secp256k1 | Curve::Edwards25519 | Curve::V2Secp256k1 => { assert!(request_signature_and_await_response( &mut setup.indexer, "user1", @@ -120,7 +120,7 @@ async fn test_key_resharing_simple( .expect("Timeout waiting for resharing to complete"); match domain.curve { - Curve::Secp256k1 | Curve::Ed25519 | Curve::V2Secp256k1 => { + Curve::Secp256k1 | Curve::Edwards25519 | Curve::V2Secp256k1 => { assert!(request_signature_and_await_response( &mut setup.indexer, "user1", diff --git a/crates/threshold-signatures/README.md b/crates/threshold-signatures/README.md index cc9b5d11a..c46be0ffb 100644 --- a/crates/threshold-signatures/README.md +++ b/crates/threshold-signatures/README.md @@ -15,7 +15,7 @@ however is implemented from scratch and follows The EdDSA implementation is mainly a wrapper of the [Frost](https://github.com/ZcashFoundation/frost) signing functions instantiated -with Curve25519. +with Edwards25519. The Confidential Key Derivation (CKD) code implements a threshold protocol to generate deterministic keys in a confidential manner. The scheme is based on @@ -100,7 +100,7 @@ More details can be found in ### Threshold EdDSA Functionalities The threshold EdDSA scheme is implemented over curve -Curve25519. We refer to such scheme as Ed25519. +Edwards25519. We refer to such scheme as Ed25519. The following functionalities are provided: 1) **Distributed Key Generation (DKG)**: Same as in ECDSA. diff --git a/crates/threshold-signatures/docs/dkg.md b/crates/threshold-signatures/docs/dkg.md index 78dd51722..25c1478d4 100644 --- a/crates/threshold-signatures/docs/dkg.md +++ b/crates/threshold-signatures/docs/dkg.md @@ -7,7 +7,7 @@ a stronger notion of security than the one promised by plain PedPop. PedPop+ is a five-and-a-half-rounds protocol and makes use in three of its rounds of a reliable broadcast channel. A reliable broadcast is a three-round protocol, implying that the effective total number of PedPop+ rounds is eleven and a half. The broadcast channel is implemented in `src/protocol/echo_broadcast.rs`. -The implemented DKG serves as a generic one that can be used with multiple different underlying elliptic curves. We thus use it with `Secp256k1` for ECDSA schemes, `Curve25519` for EdDSA scheme, and `BLS12-381` for the confidential key derivation functionality. +The implemented DKG serves as a generic one that can be used with multiple different underlying elliptic curves. We thus use it with `Secp256k1` for ECDSA schemes, `Edwards25519` for EdDSA scheme, and `BLS12-381` for the confidential key derivation functionality. ## Keygen, Reshare and Refresh diff --git a/crates/threshold-signatures/docs/eddsa/signing.md b/crates/threshold-signatures/docs/eddsa/signing.md index 434a49ec5..d8e8d073b 100644 --- a/crates/threshold-signatures/docs/eddsa/signing.md +++ b/crates/threshold-signatures/docs/eddsa/signing.md @@ -3,7 +3,7 @@ This document specifies the distributed EdDSA signing protocol called FROST. The implementation is heavily inspired by the Zcash Foundation [implementation](https://github.com/ZcashFoundation/frost) which builds the -scheme on top of Curve25519. The implementation thus generates signatures +scheme on top of Edwards25519. The implementation thus generates signatures that can be checked by any Ed25519 verifier. We implement the two round FROST protocol without the extra round responsible of detecting which party deviated from the protocol. diff --git a/crates/threshold-signatures/src/crypto/README.md b/crates/threshold-signatures/src/crypto/README.md index 7f92dd7f3..9081022b0 100644 --- a/crates/threshold-signatures/src/crypto/README.md +++ b/crates/threshold-signatures/src/crypto/README.md @@ -11,7 +11,7 @@ Defines the library's [`Ciphersuite`](ciphersuite.rs) trait, which extends `fros | Type | Curve | Byte Order | |------|-------|------------| | `Secp256K1Sha256` | Secp256k1 | Big-endian | -| `Ed25519Sha512` | Curve25519 | Little-endian | +| `Ed25519Sha512` | Edwards25519 | Little-endian | | `JubjubBlake2b512` | JubJub | Little-endian | | `BLS12381SHA256` | BLS12-381 (G2) | Little-endian |