From 1c1a31cb4694093812196b00c766ddf2f70f1f73 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Fri, 13 Mar 2026 18:27:05 -0300 Subject: [PATCH 01/30] cocktail-dkg: first pass --- Cargo.lock | 95 ++ Cargo.toml | 1 + cocktail-dkg-ed25519-sha512.json | 1015 +++++++++++++++++ cocktail-dkg-ristretto255-sha512.json | 1015 +++++++++++++++++ frost-core/Cargo.toml | 1 + frost-core/src/error.rs | 14 + frost-core/src/keys.rs | 1 + frost-core/src/keys/cocktail_dkg.rs | 818 +++++++++++++ frost-core/src/tests/ciphersuite_generic.rs | 121 ++ frost-ed25519/Cargo.toml | 1 + frost-ed25519/src/keys/cocktail_dkg.rs | 87 ++ frost-ed25519/src/lib.rs | 46 + frost-ed25519/tests/integration_tests.rs | 7 + frost-ristretto255/Cargo.toml | 1 + frost-ristretto255/src/keys/cocktail_dkg.rs | 87 ++ frost-ristretto255/src/lib.rs | 45 + frost-ristretto255/tests/integration_tests.rs | 178 +++ 17 files changed, 3533 insertions(+) create mode 100644 cocktail-dkg-ed25519-sha512.json create mode 100644 cocktail-dkg-ristretto255-sha512.json create mode 100644 frost-core/src/keys/cocktail_dkg.rs create mode 100644 frost-ed25519/src/keys/cocktail_dkg.rs create mode 100644 frost-ristretto255/src/keys/cocktail_dkg.rs diff --git a/Cargo.lock b/Cargo.lock index 2ee992f61..ea3ed059c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,16 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + [[package]] name = "aho-corasick" version = "1.1.4" @@ -136,6 +146,30 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + [[package]] name = "ciborium" version = "0.2.2" @@ -163,6 +197,17 @@ dependencies = [ "half", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + [[package]] name = "clap" version = "4.5.55" @@ -378,6 +423,17 @@ dependencies = [ "syn", ] +[[package]] +name = "derive-new" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "digest" version = "0.10.7" @@ -534,6 +590,7 @@ dependencies = [ "criterion", "debugless-unwrap", "derive-getters", + "derive-new", "document-features", "hex", "itertools 0.14.0", @@ -557,6 +614,7 @@ dependencies = [ name = "frost-ed25519" version = "3.0.0-rc.0" dependencies = [ + "chacha20poly1305", "criterion", "curve25519-dalek", "document-features", @@ -632,6 +690,7 @@ dependencies = [ name = "frost-ristretto255" version = "3.0.0-rc.0" dependencies = [ + "chacha20poly1305", "criterion", "curve25519-dalek", "document-features", @@ -795,6 +854,15 @@ dependencies = [ "arrayvec", ] +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + [[package]] name = "insta" version = "1.46.1" @@ -930,6 +998,12 @@ version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + [[package]] name = "p256" version = "0.13.2" @@ -984,6 +1058,17 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + [[package]] name = "postcard" version = "1.1.3" @@ -1494,6 +1579,16 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + [[package]] name = "version_check" version = "0.9.5" diff --git a/Cargo.toml b/Cargo.toml index 9ed7aacfb..a83183ae6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,6 +31,7 @@ categories = ["cryptography"] [workspace.dependencies] # Currently holding back from updating due to MSRV 1.86 of criterion 0.8 # (we don't want to raise our MSRV just for this) +chacha20poly1305 = { version = "0.10", default-features = false, features = ["alloc"] } criterion = "0.6" document-features = "0.2.7" hex = { version = "0.4.3", default-features = false, features = ["alloc"] } diff --git a/cocktail-dkg-ed25519-sha512.json b/cocktail-dkg-ed25519-sha512.json new file mode 100644 index 000000000..cbe88095f --- /dev/null +++ b/cocktail-dkg-ed25519-sha512.json @@ -0,0 +1,1015 @@ +{ + "ciphersuite": "COCKTAIL(Ed25519, SHA-512)", + "seed": "b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68", + "derivation": { + "method": "H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label) where H is the ciphersuite hash (COCKTAIL(Ed25519, SHA-512))", + "labels": { + "static_secret_key": "static_secret_key_{{i}}", + "ephemeral_secret_key": "round1_participant_{{i}} (RNG stream)", + "polynomial_coefficient": "round1_participant_{{i}} (RNG stream)" + } + }, + "vectors": [ + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "976f8781ac89edb9b14f00b42915f36add6fb01f795ad7048e88a7246ab35304", + "b00aff74021d100b0eb587ca406fd4c1af2ffef9146454a4c35f547f709e8403", + "5d3df9bdd5e6ff1e43f07d2d81791cda76e44e6fdbba980b1231a9ff39e1ee02" + ], + "static_public_keys": [ + "2f35ea108d2b43a27d2dd17f3f0d0e44422514d91d667af850fa206a85cde4f3", + "d34665a229edcb3a8b822179868138c097bbf51316cbea636e6626b152742812", + "e4f58f6834e2315cc79cbb142ffa2ae0700f835ddb581818e10553679c32fafa" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", + "vss_commitment": [ + "2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941", + "590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1" + ], + "pop": "a7abfa107e2ac05ad11a71fd494f3f2baa177253ef9c7594a37da917f2a84333bd7a61ae269c5624b8eb49d10e28a78f07718728f59b2bc626f9d07e653faf09", + "encrypted_shares": [ + "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", + "156d49dae0cb8917f47e70e75d7eaaf3251d160eefc294f9b5eba5f918ac453a05ee5351918384d62a43e888659e880a", + "a90c87b8b6cf42cc308e488f50662f0988d4229d68eb00e70916079bccb8df591ac2732b174e86a57bd292fbf485cb94" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", + "vss_commitment": [ + "3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d", + "5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd" + ], + "pop": "2b8520cf63b7e857d02c47367dd20c54c27dc2d96a6dcff3918bd4b8616bb3d01ed4c7d2e3189955c3fb4f18988f56e3053fb2a62d3d0cac49a860a22da90700", + "encrypted_shares": [ + "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", + "cfc83a3f386eeec4789ba05cfe565a3240b6c1801e80a4aef8771a23c389b526f7b2b601020d576e2f72c39a4b2c26c0", + "fb6cec9a16d2f536457c96afedea704a5228c42365b34377c04f7c9e953a45d09ce4a40f5ea62b63fbfcae9a452b56de" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", + "vss_commitment": [ + "74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8", + "ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d" + ], + "pop": "af79a5ff31a6536b2d0b333452c13ff0089192aafc9b10323e017923ef8e45c9d5a4cea1a5f14c86eccdf8b3c0ea25c9d7b9ba6b071c0cee0a5374f95285d003", + "encrypted_shares": [ + "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d", + "b151386d9e5316c52cc67897c65231c753a0036d974909403220f5168c55aaea336acf361b273cb81d06a5117c144ef8", + "a9fd00d94fd411354947c995c054c9d842aec6ca351450256e28198ea3d7b7fb6a939626e0a99c6f456bae3aa243fcb3" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", + "verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" + }, + { + "participant_id": 2, + "secret_share": "6723b951f1a81f143f11eea4ec31413e76669d049b962b8946a78a35cf97cf0c", + "verification_share": "0c37616b618d49bc5ce2db1cc0ec4177890bbefa2caed8aeb2cc20aa5e872ecb" + }, + { + "participant_id": 3, + "secret_share": "0d2809d5c126e019a3bbadc2cc132013eb6141f7f6d1f062408ef58b89ad180d", + "verification_share": "9b992f1e668431df2531c8a29defe7d7a5897862648c8efc92bfd9464dbed5c9" + } + ], + "round3": { + "transcript_hash": "c271c24bac1aef846815a8c43fc6618bb6d4367edece0c0937be417c3948ed69671629784f0950e43d63b0c2af66a5259ec2fd0b27e70b1d0cf49a127fca1970", + "signatures": [ + { + "signer_id": 1, + "signature": "cd0c7695346ad9b5be3a51652c12dfa4aeab9e52ae15994a4d44b06683fbc390677f619be7eb8abffdc6172f8acf4aca9ef062a80a0e7663c2c19ab5e2848d01" + }, + { + "signer_id": 2, + "signature": "e9caf69275d884494d4730d5dbd20fab0bb242edf0771d2e0b9ea9cbc74a0e1b2a5c389dfc19d69c62cf622a073346e0111664e4e65e4d0b695a3e3968a72503" + }, + { + "signer_id": 3, + "signature": "3a50cb19fc6bf1bf82d58fda0e02ebd535c549f1dae01f579efe010250876a6410dda05c773ec8dd1d414a6a9bb8be0a4693b08c59a32c20d60e51cb59698405" + } + ] + }, + "group_public_key": "ec21f5ee46aa6e11ddc8d3f42af51e6636b86de0243229d848da48c3b604964d", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", + "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", + "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d" + ], + "recovered_secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", + "recovered_verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" + } + }, + { + "n": 5, + "t": 3, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "config": { + "static_secret_keys": [ + "72553463294cecf2b05391d0b4697c7e5dd42e6fd8e3e779ab8dbcd762a1c701", + "784418850a415959dcd16f114e96b7e300865107391bc737f39d2e1c3f70420f", + "82893224a1af1dcf0e1884a15885937af1018ef07b9d70ec6a14dfef21d97203", + "2e102fbfe8593ae24446eca8635a81f91e16a53d8deedb73ec8b1e473f6f8f0b", + "37bb7ef244c9f1d5ccac85fd9a01c881b44b50049652a7f50082e6c59aa80c0f" + ], + "static_public_keys": [ + "e38cc6776d91cce01937aa23469caf8c019298136055e2c8f4002f2e0d4b1d30", + "b89c8543454c361cf07cbb8fb62d29186b2d82b716f642e61e42f45e3fc603d8", + "5f3e9f0f8deb3160261d5534431375ff66d5c305aa734801d6ea3c78a393af31", + "6c4ce9698663429e3327c203937d509f00ebd8cf889f5af090d7a4762bcd31c9", + "1535febfa522cc03fc9c2d67cd731263b93fe0d0795cbb6c599f922e9bf0319c" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "373fc3c1b4fdab7bdc428bbab77a9a7650d72f8a05eebf9ec7a43cd1460fadff", + "vss_commitment": [ + "577de5fe8c5a012f61bd7f1a87fe731088cfb21344c0a7162a369691d8f8c1aa", + "2382e6025db8a26cbe45cd54c1561b949acdd93717949de37434a9bd52459d6a", + "2c6e92a470150a647f29b1b83d619ae68c713dcf5764a8325afb9fe8a383a67e" + ], + "pop": "72c99e9124e2009927d71aef5a080fba3df02f16c4cc47e87ee426d8adc5debb1f7a1d81073ef62d7407c3edde7e9502c08a68e9f55e455fd10d369d0df2220a", + "encrypted_shares": [ + "01aed684aa8999740e7d7254184dedd6b19186813f5f761e70286bd27a26711835b47dcc28190fe97192dd1e0b669f66", + "af0d6aa7b34ed6989ea0dc5b9a1d7a60eed10dc3e098959858f5ebe5090232bd8413dc6a00d803b03dc843f224e9e22f", + "236a44cd2cee60a6cb4c77271e6c0a2fa001c3f5384d9a286b3a504b16d97cdd22cdf77b782ca94560b95d97b185ac48", + "582bdae6519fe23ff88a2b6a6507b8e14a7665096da7a2dfc4f5fffeacd821508f1b382a7e6afe4aa4bdfc5119c0c449", + "8a2f022e2591d20032b6a1415f38e96e5c142ba99a36422dcecccfc74031e1264695a90701aa650c51f13997263b630f" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "84ecfedb2426e10a370d2ed4e4c1ee8b42b1592fe491c9eed76000c241d234a0", + "vss_commitment": [ + "933356e4b8a99c7c543b3b89148f14c5587ab33ede20e7672050d4d89ec1da51", + "537d5757b4f71162233db01a81bf1408adec803b52d1d67aa60db7feba998a74", + "e1fe1de4bd969bceba1566396240485c78343ff765a7c5b5428d24e8b862317d" + ], + "pop": "a387c502db19055b300516fcf7e8a4bd1419bd6c41c8b38f2b787758713752dfb9a1d01cf0e32a0472133285ec4ff2caeb95d9794ae022f9bcd1108eabba0808", + "encrypted_shares": [ + "cbfe45298edc61ca5e76734488d0bfccb000eaa380c829996f9a38f273e34ccf499e356e62216cef197a384012399b12", + "47bbbee166be8a2cde7eb33f256e75acc5d70a10c0bf26157c6b58cce78aa8c69d0d1535c6b36959cee980c5b5fb419f", + "03c3d530eda54867119383100b4e5b6cd885b786c9d9b960e904363d832a03be6ec87ca774117d32972a8f66952e441c", + "133ebeef97d79fd7457659e4aa6d7dbfc3d06a4bbc454058e72b736440ab3c033c1195e8deaa394ca86df2004664df32", + "97c33474da0e562c2d9909263099242fe6bc71845fb225e0dd68068fcd07fd6e280f1f622ce842c43e35491be9322d46" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "c1be307582a17bbd4100286e5c24e1a149a7696893fad49cc839c0bf832a6d55", + "vss_commitment": [ + "74f1fc2c8d94fa6f972fe04643daa4652d465bb75799163a26f7cb51fe7fad5e", + "3c876fcc8317b8b27e80b5f7cd997e5dc217b910d808f507a32657d2a6b8d68c", + "1efdc51b210892679174616fca77eb58fe62713ad641d4e9a85349eec7bbe831" + ], + "pop": "e101f1de26c378b9a4f6fd430b31607d6219fcc86a3468385a6d9e9717345dc99690b4e5cf0c9ce7e2e377a1aecdba1b3f085e02a8e20c8c2d599395a6a96f0a", + "encrypted_shares": [ + "9ea8eb1b0de6a4e7330733ea0414235f9717555e61a6380ca5c300b25d23e79510797c7304c909ac5cecdb2bad6f1bc9", + "70b90c494e0e6ead27d9acaa887ab6bff7fa633c9a43ebcf464c42bce87e9dded089e82007f8a0391c75b5c3af46e2d0", + "5a1b8962ebeb08bf7f9e31a29d9e46bb83c9905e9cd9f0d0bcd63c55901544464c3d318ed3ff09989c642b659446651f", + "10e7f9ca7c5477bc4c3f07e8d4c876b455ee94274d6b76548c317cc0a0da669f5596a3cb3ab4dab4027ab39599b30748", + "84f125daaf112b126acbff68bd540281c4e2d8286945d1198d7cb57cd81bf254e77cc2a0e1f7c840feeb43dd7c46f66b" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "3d45212365322ba65c8801cfcd86d396b07fe481b4ad0fcd98c7c373c0209539", + "vss_commitment": [ + "9f8b65634ac24eefaec60164cb17f690211404bd4fd8fbf834dcbcd14a44aa69", + "667b813e8e6f6fa81c06ac57bb4dabc728d3de0a187dc84b13cc45eb783e293b", + "8fb3fa58292561c8ca16959881c6a21ab5caf27165f00529743d3697a8661f4f" + ], + "pop": "06835ce53daffde198f7483334a00edc813f409225849fdf4551440e9dabe658802040130c523f6b99a98ec7d62fa9b3e4df99abb8b09aee456e17711541ba04", + "encrypted_shares": [ + "d1eb62ffbd5b3f355ddbf3b9c26e0f9548aa71d8603b8f0d4fbbdf554c80062f20b64c44223b762be4ddad5e5788f01e", + "794a12a09418c2b1bcbd0c5c11ff4821a644c7b19c7a18f1ebfe37280f40d4a07da623159d1c134bd3f6e7028eb1114c", + "2a1ff8f57f072fb0257b6afa1bc2204b0206080ee208d683f3bf055dbae11f75096eff3b0eefcdb7d31dec1364e7d27c", + "0660afde6d35b617b66c939c5f986d7b52ddca1b3f267d04e8eca4bad7b601abe813de2b096a05e3f4e0bbf96a14a7fe", + "8e2bdf782b5bc1c526823ee0514081efe17074321657cb49d9bb8fb9a29b34004b6efc56a9773bcf7675c63d2e173565" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "b19fdf15c737fc2ebb55749b6e54f95114b673a933a640104f2b92e375e5bf12", + "vss_commitment": [ + "7253eeb9941c4912709f44934cc6ba3cb3785081567220984d8ba64b6b4cf1ed", + "562f19f3d037fdbfbd247596b1a0a85d40f5c70eb99a55ab0e87d2fc0a88f611", + "fdf684c6c5fd9cc91230a913f99301517a0ce38678851ec6648553562670c98b" + ], + "pop": "081d44620a1f93f778cc5627f4a46a5683dd6989b7bc4f4f13d99ef11a7c239dcaf32a43cf6ff6ae1ae717d18370c42f0a7ee60e4bc5e8f134eefece8d441f03", + "encrypted_shares": [ + "b417ba3c430ff39c282283cfc659fb61017c2a1c0d323a4c90f9cafe860b4665620ff6538ac053b51fff8c186b41675c", + "fe0fa3400de6a1952a4a327884da1d90fe14a22d484edcfdbfe4667a52f24500942c38fb34c6278ffba0829aa48a69f4", + "d0f9ea2acbbc7f8926e351bb97544c2e150a83c296a1c8a2de47c9a5ac031c639edd24954f36c3a685e8f326e8d2b2de", + "f21bff66817dbf12ae2282814c72da218fed21530da481d7b05fbc7f129f224974bd2a51f87a26f76e9b3767551fc2f2", + "6e2fbf6605df0a1b86cde2903b4833ccba42950af21445886588f232dce84fae8b6d0abb3c916af4ba40902f556ee950" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "089205ddc8931a7778eb588b836756bc5f10a650bb9c3c6f23646c6303426f05", + "verification_share": "279636be807557633c8acd8161d452e8a9542f280463a643703184ef0bc88c22" + }, + { + "participant_id": 2, + "secret_share": "e8d9ed60a8df0d5f99459a1fe71ace6bc84c81773b25f84da8e6743816ad040f", + "verification_share": "20381dd73762ae08cce6f825178ad70a08636426c4caa4e797d06eec28f8c821" + }, + { + "participant_id": 3, + "secret_share": "b4d8f5ab9fa5ab1ff885e83885f37ffa59a540a3c09b1be8a6fb011736a77603", + "verification_share": "fa64620863ba443af3ac17968b550e221b7914b11892f831824839c036960925" + }, + { + "participant_id": 4, + "secret_share": "46360978e3ab186941e6321d1be52992141ae4d34a00a73d1fa313ff6230c502", + "verification_share": "42a70b7244644cd6acff8a2ccd9c105767dae4fc5a69f93ac588dabf2cf82e77" + }, + { + "participant_id": 5, + "secret_share": "9ef227c573f2543b756679cca8efcb32f8aa6b09da529a4e11dda9f09c48f00c", + "verification_share": "bb3e7a3a1a08d17197d41cbb3fb247380c5e6b2c85d92208d281896c1cc958e8" + } + ], + "round3": { + "transcript_hash": "f8309b2d74d773466af7263f6341e05993171e7a05a405fed9d4bf890199a881805641a89396da1f868f14b4e73b5952ff854b8a5c5c7c45061c77e5ac77f2cf", + "signatures": [ + { + "signer_id": 1, + "signature": "214f038e882da7449067e2e2b5dfe6f24c110536f58057659a101b2ebde16f913b9718153031420becfcf4ebdfd45f886e8dcaaae237b93a86245ff2955f5f01" + }, + { + "signer_id": 2, + "signature": "e366fcce096b78bf1437a4f7d4442247b509efc2e0a6867b885c9712fa62a0ce31c3edd490e8e50ad22459847dbf1e3560a3f916be7d1cbf923df52cd02a770d" + }, + { + "signer_id": 3, + "signature": "815a76a53c5ac6308e03b1e9f7d3d97c21651ef99dad1e322c1f5d26964677cdad9035f681cbe0f9a949ffbdff4103d285311aa2907cd189e3ab98431adb6a08" + }, + { + "signer_id": 4, + "signature": "2b6214d85588efb7d9298d37fe53321be610918451ebb192004c2756fa988a0c50dcaa5df273d1254a4c3b146484bb5911728b622849806fb1a694b36a84ba01" + }, + { + "signer_id": 5, + "signature": "3df81aad1752f4090e02bf59b7b81510d89f794ebe0db04bfc4004c79a5b53170081434be72a9ac82358044a01974132d54dac9894b02eb1e893b1d203401d01" + } + ] + }, + "group_public_key": "334d3d0229f6c32ae6b77e9bfd13bb72f565a1fead8aab11e06ecc55f0c4d4a4", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "01aed684aa8999740e7d7254184dedd6b19186813f5f761e70286bd27a26711835b47dcc28190fe97192dd1e0b669f66", + "cbfe45298edc61ca5e76734488d0bfccb000eaa380c829996f9a38f273e34ccf499e356e62216cef197a384012399b12", + "9ea8eb1b0de6a4e7330733ea0414235f9717555e61a6380ca5c300b25d23e79510797c7304c909ac5cecdb2bad6f1bc9", + "d1eb62ffbd5b3f355ddbf3b9c26e0f9548aa71d8603b8f0d4fbbdf554c80062f20b64c44223b762be4ddad5e5788f01e", + "b417ba3c430ff39c282283cfc659fb61017c2a1c0d323a4c90f9cafe860b4665620ff6538ac053b51fff8c186b41675c" + ], + "recovered_secret_share": "089205ddc8931a7778eb588b836756bc5f10a650bb9c3c6f23646c6303426f05", + "recovered_verification_share": "279636be807557633c8acd8161d452e8a9542f280463a643703184ef0bc88c22" + } + }, + { + "n": 14, + "t": 7, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "config": { + "static_secret_keys": [ + "b6090806188eb1cd2222c9f180561e3b8bac09fb672f5b0de705170929048b09", + "a1128fa24af9852c08790928825ab0845892a9b2d3133f7058e9d7706d70100d", + "6dafbb3e7cad284a0f8510c6736dc0b0aede00ebad9f265eaad2837dfe4d2c03", + "a4396d6729b6e19331d4e58e43e278907858c7c7f2cd9fcb1bb84495b95d2f04", + "a606911a4a0de0376efa44fd072a6fad150d056dde32ba4115a2804e5077440e", + "56d529262e1d6fa4e6a7db8bb9f61bcea14833cc88040b5fea23a7cd6fba6404", + "f4e3554295a31835c68f81479877c90cf4c1340961ce1f3d3f07ab4ec5737404", + "97559b3d6c9a433e9bcbc29b6c747b170d1e50865a875913f514ea96f77d050e", + "b67bcab764b7900ad51c912ef6e6ffe8799fec6032a045401c15102eda158d06", + "55ed81fa6989d8b8c36edad9ff6c86166ec156c1cbcf9edc739ff9367599ff0e", + "738a92c61738eff1c6657144213655448d4ed176bcdc898a89422189c932580c", + "a48375bdd1e9fada7f72648458dbf46c2c9b4f885c072203c25f52c8f371dd02", + "fdbcc18d4bde352980ae363ee736f014d54dafbf8b63fa95fd0e9df673fe180a", + "d9947c89c8a60154e690f679a17037ae7529e00557061dcbd20d04f9a3615604" + ], + "static_public_keys": [ + "421a26a59527dcc8db396279fea139514903d6632872c6bd25592c94ae5eb191", + "164d1d596b00488600758f2d591d6682ebbc548d6c0ac91cd5ca6810afcb50a6", + "9f5a2c1959d25a72fe2275b8a8d9ddb4232e31bf81f99073241dd739cdbbdb5f", + "95b2ca39493be7974327815009509820f88323250ae5206735d35dec1626c8dc", + "e0a805b8cc81e67002acbc41046b1e069a9143c64f7d4bd77cf5845a6c3fe81d", + "dce5dfc8c734a2edae38c4c2e6fda4e096eb3d544ec8d6619a895f9fd3ca9b61", + "60177138f0d98f7e7083b718339daeab4fc44c370bba05cb946bb2de62ce2f13", + "a18e2c39bed98bfbe05eb5ef8a629b48ecf45eaabda7e55501b7c3c4966fff77", + "24c2f04cf1a9e81e0ea3f5701c3dc76df93ce872fd04aa1b1293c368bbddee6b", + "2656186197fa97728aba52c27e9ed50384e996ed9c8e491906ed2ab64db456a9", + "08ea6307aafb5ef6b20f023eb4edf2a5fb912661855e3b6dde327dc58bad5049", + "f69dbdee18af719ac59dff612e28043a19476b164574d24bb908ba201a8ebe90", + "4fa1de61f77b0a1a796506680fd14a1d25d9890a56a34e164af8fc102e71ee1d", + "d31f8c2e0d22455a40cfe819737605223f1add340a442fde18e4c2071a9b5d4d" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "ec9a1e742c0f07e099216acdaf01777759f32a0d6a8cc091dcd223e36565c03e", + "vss_commitment": [ + "e20adc22c979794477c704e291cc11e49021a64da54a1854be0ff5c15ceef143", + "621fedbd9621488b50191f9724c55c329d37554c78012c0809a8d29129e23a17", + "211343dd4a42fd5c5a6c352cec172bdf2fb192d57edb21d53599463277076fe9", + "f3cf65e57e82de4a8ea1ec40636fc322323f6f091c941a380a57ace257078671", + "d201f2d656f4a6d4d721c9137faa6a24df8d832255bbee8672cfb7bfacd57af6", + "db642261749e71ea50706061eb8725ccba05f69774ccf05af9d7d0182c7cd422", + "8fdd74119499cb19238afddb4aa363ab3c74f08b34db6fd91d63d6ed43f57923" + ], + "pop": "dc1f5f176a123d6cea565e0004d147475c3367606bf7520644ecef2e6d6e777eeb08fd2fbaf714db4221da096101f1bcc0302a76224e64ae624c038d09bda604", + "encrypted_shares": [ + "31aa6638fb9526fe734101a432cfd8a02db6967bfc9eeea5f18281c5f11761e57acab35201c7fb0857bb94e897af538a", + "7356840010a4c43728092fdf5364c33259393c6835ae45a52925be40f36c5f6f7751a39cff0a068ce53aa93531dcc1b5", + "cc41aa2f8efb9238d4a682e5af425dbd7e0bca54fd5a3b5e60799b9b19c366deb90060f6982eb358372dd55d87db187a", + "109c33c243ee8222fe819c43d65d664d8ca22d1d69a884b3fea5518bf43271e892e10f329a21019127730399f52a1cfa", + "52d4351cbe12035eeefc9dfb589328b343359341309f6d98db3a4dd9acf6c396e68af6fc84522ac812f71b4b4c92f36f", + "29fb40fc1bb9b1981ef88b1b0ed702dc37ce63f5c6f5f52c4b54574af4eaa34dffdf38eaf34f25cc407d39e0c8ca4bb1", + "b1b6d7dd6c331454f4a501e67e20331574103d7ad1e04e78adce5543284e773036aa131e9559f852a51c5ef2531532b8", + "2ef7a2120a33974af5810051803dfa2a86fddf6fb4379200c6a45f485a64c779652e4dda542437dd3f1f3acbf5ca24e2", + "03f65c6d4e6552d79fcaa9e9e240e80313f014cdca2a7e666bfb9f570fa00dbec31ee9833a610ca5c0cb8ceda857f3d5", + "7b17e86a0dc86294ce3762865aa8df72b31238bb73ea4fd19a7e512317f20f4d208be0b9ba21aed1d63c707f4d8dbdd0", + "ccaf2c722b03261e7e1616c39f927d466be399e77a3f675a4bb767238484ef5afcac60252a19cc80feb328acbab0bff9", + "35af8225a7ea93a9bb25c16079ec0c2b51e15a39d6ba7560ce5d970cf0ba627afb954c1611bc3bf1dae6c9adaf21f057", + "f3cf55dcd2df1a602dc5222f17d833afb5dfceac631f89250bee4b4f5ca8f2c5f0bb2e93eeb8e331c48ee34e414e5573", + "0041011ea00d529a90db805e798b599cb00c11270f8aee9e0f3ce43a5b382884ad85522b54e16aac19672268d9454ded" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "a6395b51c8510a76c878d0b4a690e9eab335e156e7d473b9cda1ecd4ca2e48bd", + "vss_commitment": [ + "420d43331f1db58c418449278cb62b569313006250a819cadedbce1146d4ada0", + "1dc96af65e28f1d86bc523f567b74363912130a5b62476af4fb805034a3c0c20", + "73b658e2c160414f874df5e649b36a6ccc98520727e8dc763f93e1cb292f685d", + "1b4a4a12e80e2a89289dfa96160e1230b67e95dfdc71b9c4fb122e578a4d577c", + "8151a2571a5e789e1c4ee1e36e506f0401a5d66a32769a69e867e06574867392", + "497de82dfd1630944bd60c4f637bc516c483ebcf9c416a42518d6b98915fa145", + "fed87acccc7656341afa36fbdbe446b18e0f9e4875752c4ddfc0f8f243c0b543" + ], + "pop": "f43acabe4644f6f7839370da7dc1494e3b9ddd3578489d027962d20191ec1b5207a7118326f22675068289d196b7f65d330bbb9b93bda0b89abb7a4c74748d00", + "encrypted_shares": [ + "25bf5df8189cbdb175cab533b438c3a8302ba442dea605771e235684fb5183e03812b08d994020ae7ae7134ffe080d42", + "6ec361aaf8b40466011be9ad47d2e6c1a9b921bbf625c394c57e3232ab2b74ec8e7a88449182cc882ecbb16fdb5c7023", + "1441b39ec7319b11a13d3857286d49b52f6702c6f649581d89941a5ecf31cb2d3d1c035a429cb2e9a11fef6546f2baa7", + "037878da1f50706d8901344b159c3b954212bcc1a11544f16b8c2468c969b4889a40bdcaeb196261ddb35a124d4ffed4", + "1c44211cd36c79835d29623928dd5aafdbcb6c6b2269eec14946bfb7a6cd5f26ad81680406e6fa30ae804847030732bf", + "bb24e9d432d50f30a74dd8381d5d9e413b8a90cf1536f9a8bdc484ab1827510602908d7a06fd80eea04e47168e3f8bc6", + "4d26e20998aa4f2aecf999fec9acab27f1934659c15ea9beba58de2d4f5e1b270c00d94a56e21ec2ffb7973ab728a66e", + "8168cdb30107d41539f754097769e26e75fecabacdee9568dd418ca5cfde4beb25ed4d6189140dafdb153b7facd4bb09", + "9a574a27010c0d3a2438308089924d58addb1ad377ee76b7cb983001ede64a474c184716e75fd75b3c0494986894c2a6", + "4693d7d45809b5fbeaad7ae0c58fe7c71ef10e6ff98537692c30fbf20a09c075de568c55314e71bfe7777d7e49779277", + "631d8fce0972b0c9e2a433d721b9287c436f0fb1c22a9f1f80616a72d7b9d787cc8743cfb7197de206f8bf63db4ee6f6", + "485ecf567df4e2453b8639179baad965f34cdf19bf3ed2d93c857bcdb60fbf33ee933dd3513b9c2087f4959a1fe9a285", + "9977d24502c5a3da327d661f87fd7aad43fdd5e541b35e0242695caac84a6b377312801c6b0d2fecef4e2b43c27160f9", + "bd6003c1d34065d16e4f8a6c87b028bb5fd9599d27b954a10c0bf88850c3144769a0dc8a6248889d912e93e4ba1fc558" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "92633fa0eb676210937de058ff08e7286d5d50e10313d9efb7c66b90f3912940", + "vss_commitment": [ + "c0717eac65ae7a3091646c0a58576dab11faebc83e1957da5d2bc3791e7f644a", + "0eae88f151a123f51d40f268ff3047cac6114df59b73780b1d1116e1e3bbf6e7", + "d902a286c5e28ca7e86791c834170b039563ef992b3f2d0251ea22d90cad479d", + "4a3b85f1bf7dd3e75f3830007d7315e00126f14276fcf0e388a29527b69bb8ce", + "f2d62135516a481569b887e466f7435b27d604814eaa88dd1cbf1c368a5c9214", + "119c3c153964acd48ff60007678be201640bff1cd54ed2e7a267fedc440d4b52", + "144993764ac91e823e43b9a30cadfff865c0a39e8fae1cb42cc4fc1b612f12bc" + ], + "pop": "4cdb3ac17bc52773871d8a814f466b52f2020b1ceecbe16db3ff5d2fd983562b33f432dbd64f9e501a094b8b23ef25d9ff5223416c2373a48859909b96759a0f", + "encrypted_shares": [ + "7ff806ef14fc0fe79badd46918dcdb6acddc2de6080b4ee847586564d58d9723b3c876b3777dc38a41bfe8a000c8b7df", + "738f3496435c3037048269e2b51eb7a7eb95ff5c68c1f0aae9a703efccd68c098e892470dab15718070c2a0b0edb25be", + "0628f96e45e6184ef81233918231fe51cec58de6bc24d38329ee750fbb9741b8b7233a5b176fe12a81b3c49907312207", + "8f990d87f06270019e980616cc52eee4d2fae4b1b3faffe5ad70fb66910b3951d6b7ef7261fff1bffa26ae1abd3f40d6", + "3d4bd800ede6dc24859a5f15a481c34bc90446ea8740aa1d85aab9e9aa2b8b58b6198bbd9e236dccf3e47f00af03259f", + "48fc8c03a1aafb4c6bdccec4ad5e968a2466293d181af907c52361636fac95b2c4cef6d1ef823cddb60eb4c73b95ea4a", + "2c267942feff661dade23ceb230214e3f89df550380040c12de96071910975125e950983edfbb992866c6b3f7c061ee2", + "4bceb341af1830d545133f1b9c5227cdc9aaed47dc4f307355af48ed197e2d678fba0452861b0af5c28935a96cf95e82", + "7f8d6c7c6e9d10ed6fc44a01bdd0b9c12d226e781886f51d72c7728749b3fa89f804ebaf7bc7d30ae75a9583417d31b4", + "198fc4a37d93869fbac1c9e20fe6d16a115dca7a40b99454e0557121790dd032d96a071329e526e08b649f72fa1d6d5c", + "c51840d31d241d25e2f3adf3249ce237f00df3a09c96048f2925538999a2687ceb8d6c2c5f916e9d83cbd2243f2841db", + "1384ffdc437791b0379232e49589364dac8e695500d9d1f7d49948e9554081a348d08eb9b8d745758fefd48d35674ec5", + "7275ec9c2f68e5b5664775c82a5d1693fc6667b9b6a285e321ebb738ea0021aee3f9c81da615f49ee1fc50d9f93b271e", + "a2466d14acb533b7d73152e77037de149b3742db482b789459a7000a14efa1ec8c27a7d29eae82287ac2b7d41e42a060" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "de83e49ee163cda52e518af7932d369bba1cb20010414fe2a22a1f81c4ab91ee", + "vss_commitment": [ + "00c5bd007074940e99b7ba59be5d46461616e1d304c0bebffd67e49ab5db1c38", + "5a2310b15f9457af7f90f109c8fbf9ab29e7f2a1d7850bf59fc971b1011b4cea", + "6702600d0c060f3a6527f1c2030b8096bf97f65eca31dfe4e9a5e35686bac048", + "813c74e5ea76b066908297fefb79df996c1197760b8ecd9f019cb842b0290ada", + "af05944e3650b4e2c7e06ba2b070dbfd12f503f8832113205a37134ebb987a4a", + "b12920cf2afb4122387625474e7d128c945e070bc4a397ff8e53ffd9dffac610", + "0ea39bb6668dc3159094174825a9a54bb02f798f3454fac3db3c414bd7d87aeb" + ], + "pop": "0ef18e582e88cf5cff659d592f7690424e822230d98d075b0773afcbf37cab435cfb9bccccbaa6d01b8f650ad15b950c722c63a402fef012fdf0255fa40b2f0b", + "encrypted_shares": [ + "8ea087b8ad7c163085d16d5efc03bdb4c0ff1892686a8d5dd2a2265259e46b77555457fae4f4da72f3f3b523323018b2", + "f6e06bf4312c5b45b2f75ab5d31633bd78d5254163ea556972f5662856f34956bd8364894d57672ec159b3492c2ae38d", + "967bde47183fd1e84699fcd0e94768c57689c9bd0fd9d8e246ae86ffe51213bd5980267a54a7b924d630e59193d67dde", + "dd33ae9fff8bb4e468e506dfa992d360991c4226605cbf1ac7f5a3e5d7ba19df8f631da1bad367d7545eb70755d0798e", + "42488bf8e99b5082b7124d8f400f4649bafb9e86b505a0a53709ccf6321019c6898567365a1eaaacac713685c561a0e2", + "de3fe149ef628c2c49441f16536107053630c4a7883f76721a84730b83e7d1d0244e621542c7b69dfc6946b47c890d68", + "7a19997ba41a97230fd74acdc79bea27eb41e27b0163d03a6bc4d566e3ceee55f64cba565a6d2a232ec299f090030bd2", + "f96f620707a43177d56eb3cb400f6c86a79b2e3352e7aee0939f6e54ce42f71a35a416637b54de40c701d1d762bc0586", + "f2f0ecf1a6b32998bd5824514789564de0970529dc457b512a02d27d3e68c8962b6375fe7527f363e35ce54c18285698", + "6b6243585bda39544287acd9d45c57a3004c3f21560faafa10a2822bb7db5d490bd3f578cb1611ef6fd2092d7c17457a", + "598252e9f7dc7ce6bc6e74c7b9c266b194585fd927b9639997ae32b7a9a1b0467d4e473a9fa3b0f193e47021d413fc76", + "83a3191f75da4083f94001104daf21e15d4a26fad631b63c0d5beb7dc59af73df922e185826e0cc8e0dc68e742665fe7", + "5791bd36d9e4b7ffbfab2eb6e6a31037a9444d48ab387ec16312a4823b4f6f4847bebab74d1c6b78fda56cc60d98a027", + "91090ab6af987082ede3800bbe280ecd571662f5f6e73c8cb4218c226ea6870627a54ae4914f1b12a6719e49be2678e4" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "9e497409331c8cc930c6881c388c11da647b3a6849d04825e2e94f8e9c6a294d", + "vss_commitment": [ + "41345c19975153d5961b06ff5dabcf4b60d7e93e75efca4b0782c42176d6db75", + "18a18f76755442f4a24d9d03c83d0b40c83024cbdd14a986dafbd2fab1372686", + "4d6f17bad6ab2285be9a6d95889e07efcdbc584bd0e75025a17b48d2e628b01e", + "8486d3bd93cfb628d4505c414d99428c02b673ef22f8c14903470af2c69c7bc1", + "8bad8a53afc6aac05fee4e78226c7dfcf1410a5e098c6907516aca0afc77e91b", + "5babc6627c45b3d97225ab9c6b179972146a48abdf61919a3421f66ba7d542d3", + "007462465d30433039c3d7071d38acb67593221f040fae991ecf4e49de5969d3" + ], + "pop": "39cedb6aade53ba3fd13a19100b096be7f0d8c797936d047cfa1cf1825d6cdde5fdbc8b75520485197c2b649ded5ef59fc3fae12c241e30bcf50ae54399a5b02", + "encrypted_shares": [ + "a57ba6db32bc68c0d3d5672774a106031ebee2e3f64d18c4655d91d4628a10c5203593f62340a8cb3361d36038026696", + "c170445bd700659c71abb4d3be28a568a0abe342dd5daf7ee33cb1a1baf519523e87c311598ae74a83577ffe388a6666", + "dc7851edccfcb7c8ad371c4cdb77f5a07e01a64612bcf5969dffe08e94b1912bed414eb34054d15c4c4ce9a4c1713a60", + "66dc53e46e3efa19b493318d30cdf4f25e1960d8fa97ac73f7ccf107c0fa16d18360881cce525e32c0bdb66e360e7273", + "25b2b8edee1d73b60a024ead57881d3e1e06bf0d0b27c3bb4dd848e7ca16c9d7c11ae19e5f752373d46bc8805b35b65c", + "17c59fdf354c849d3d806cf52bfc899890a394eabfea9de90cd65d8f9b477865cc83710de57cfbc041cf3cf523727519", + "7336a52e1d2a5499a773cb7d205a19ac900f03aaacab11e84591681e9d1b93d55d9707fc425979789db8ae74d660a126", + "094c55cd0f3d06c24240fdd78d3aeb5e94b1347c4a19627fb043dda18ffed8c19fb18599d5740eaeb5af78a87f8c45e4", + "b9e27f4c368d88ec1d082c11f2384d6c5caea3741de561effbaa602b09a382c1da1c13198c2e25037e7a75800a12e27a", + "bcef98ea19f4cef543f46801d7cd87fd8f672f4e2dc5c3ce5e0b41fb3b5dfd6a863593214e017ccdd7d4e7caac900f99", + "d8a7b547efaccc6a64e93b8f4a7f0db0d43690c400b68ceeebdf62bb3523bc9a0284fb06b9fbdb2b54392735420b8626", + "e58beb57936f01f049f30a864c2ea9f5a26555a6747e7da01b1f75f3b3838466d406c142744fb821e8d554c671aad9aa", + "026f951d25afc4148811ebe764ef502437e4cdb59f499494aedfc6590bd84c4619d9c0e1bd8cbcb9f08b46212b498446", + "73dd935a33796b540675569a2d7bc55f2a2197b9f9b8131f8354cc4c71e7a8b4ef1e245a3c0c04d15ea18b16066a0f70" + ] + }, + { + "participant_id": 6, + "ephemeral_public_key": "9927571d81fedb4b56db270d4815f61b4ad379bd78f5ded818d8793cb9791177", + "vss_commitment": [ + "01562a03fef123fc44ec8df875a6d280a35ec131b155d9a0ad267b9e244b972c", + "3e2fc03bc56e6eee6dfaf3c4a32a756e181954256b7aa05a1aa00370f0d254de", + "326483528c23b4965a3a94c52e1927ce3961629310a1993361f767a6900ff350", + "c8c71cd4e5984fc43f65e3a5c9dea94d4a29f86075d8782b639ce28ad2a31ab3", + "b7dc36dc1942e39845156a7c6324720db30ea373a515765d153ea43f5a61cfa1", + "4f4deb4e9509da4815b064ae9ddbf3b7f884c253bd45b063c7561e2cd9a2b441", + "07b75e7787fea8471bf90b240b625b9bf037f0d442c5dfa1b9653bda4daf6132" + ], + "pop": "616ba047d0851d91f9e0500986cce1743011869d08dce06a5d21735813a4c5b3e65966054954bfac5b77215e2133f3005df08bf9460784d05a9784cd79550c02", + "encrypted_shares": [ + "1295490279cdd0c22d4cb078d037de263357b9217be5bc3614f2b06986432938edbc49bb328af74e38eb7f19d419b0e1", + "e77b26621dd0c6b900050efcf24c7cf15938f5f656462d3d68c84cf1087ba2a3539515b69fb0017e285ea4b769b1971e", + "393a42c6bd01ff112b7ba6cd4e6cc96e26266cab650948eb230fa62297260953657000cd0d0e5fb2f2cab7417e4b15a1", + "03dc48fc8572f6b896fafd694e167e104320aafa9b524c97c4a3ae820c7924d0608235b410967cd10230cdcc58c49d68", + "a0325605fb8fc4ff68c1d80d5e82c2f0923a63e7580823678e4127494f7d518bf8a67460c01da0d7f61c99cf8756d565", + "cb75cc67318ee692364d497f68e02e4ea0b8fd809f87a02fc0470e395674218800ec9118fad92dfcff583a5d40c4aa63", + "8a55bc6e54ac3f83b4279f8c6eb42fe0e27e68bfa5c8d4c3e7c42cccbb411300af29210fb82a98bc4a0d46938ca3e4d1", + "0f84281ecb11ae3bfcfc0d01ff933d261ea166ecbaa813fac76a1b6da7bf2f0ac799976f43fc11a03f998c55c30f4b28", + "10905c5369db527b0d11029f2ab3a4285c7d03b3dc999c4a59faa3d302043373fffebf277be86eb9a4358ab1dd7fee20", + "2b3959c27355e9f3d122ea265d69c639188c4a4514b984a29490aadc61cddb5bea9fb0507ecdfd6c1d06c9e43289c263", + "df08ed10e3fadec43bb63b34c98675d900ceca5ae4a26bbf60de8b070196ed9a5ee7d229fd0092c036f3a2130eb55db9", + "502953693190fb90977a4eae0cff05031f6ace6316a3576f492c2b1a2c500700f07912b2280197ade63d76a7185a5079", + "6fd33b932fa7ac041e47b70624ca84025074e862238f4eb66f33babbe7f3180d0645674974fd89244b0bd895960867de", + "fe195562db5882d1fef094d40378da1a5e1e304e4be2c645694d20b613648812023219a7faaa15251c19ec7fc6d031a4" + ] + }, + { + "participant_id": 7, + "ephemeral_public_key": "383ce11f0a72af6f87a8eced6ca2be63f8d8fe1a7e6e3ff60dcef527a981e13d", + "vss_commitment": [ + "1631fdf734bdc56ac76e5ea18d4249372548866eee6bc4b921ce2ec34f63d2dc", + "a501c55a41c46ed2979f1aaad73c709da1b59f1fe9dd9d8ee5ffefecdb400ba5", + "f275d88f82795d54413fece420d2bd716c3ebef508ab576ecd831a73f7c2be0e", + "2dbe0fb91c435a62d13cc2486d8d1cb3bb37b3df8a2b8e7eac3943303b55e81a", + "2cbb2a69bdbcb0f2db5df5e5a30d37350dc14bcbb8246b78ff6089948ab5d26c", + "fe178255b74e32558e0bc0c056848f193d4dd5ea98bf1c4c04502b19865d9212", + "1a937ecc3604b3936f18f716434c8fabd1dcb7520482ed4c6a38fb5a408b07f0" + ], + "pop": "19781296b8ccc0a51281af8b06409e3a08ff58e27e142c19538c375802aa33df1a9376ddfca182a09904acd801e7cc5453d99e9b1bfebbb3bde25d71634f1705", + "encrypted_shares": [ + "b2c363c2a0a2fb73002a34ebef38ed49ecf07babaf04daeab561d3294c0d71cf2d432f75f030b89fc9c5b995ca1020f3", + "ee4d2c6e2aea605043a3a879fcf5d8280587ae5da556023be53151779bdb8d5c054ad35519a89284f37b48f711c2dbfd", + "b1848c831e794a1688d8e7ee4896762ee4d713989acd357b7da98466886fffade030a9eda20bcd955b8554641fdc61b9", + "6378c2fbafec101382b87f6839c551c983a1a5e9bab6fa71eb93ce44c8fe30081e56f5fb9f2ade193c39ce371be72e60", + "cc024216f06b98971a12262bb68a309fd304353bb2cf2a983ab4f4d61431a6556e925f51543be89510ab7b7c6f4f6d21", + "4a1170057461653ff45008ae105f0d5311ea55aa5d4a720eeaaa96a3a3b7b9ab640de138f2adffacff8ec525ea21eb64", + "7c9d22362e02339db8604c3aadc309255c9e43583e6d8f0a1b37e53be387e6b24b070afc759576d56b83949350ed67d8", + "20d2478d317e3047e43dbc08a4eac5c3a3eed9229549dc0021fed28792212f4c648110db5f597497006f364c745ee792", + "e062f6cac8bca877f47c98b5575bfaf5207f2385f3f530b46a34c3778e3c6066943ea9d74d2b1971874d437db933b04c", + "2bb36da2791b80ae1cf3871ab1e1bba75d1d1b3423b272b4fc250fccc9254ccfca50c106e5598a59a0cb4443a0a7b2c7", + "462fe9d1b1a1ad05ae3a80476b16a58edc992ee6f6292ba3d02ff84ed71ee9529c8b3c70b31cfddee7a516b7ab3792c6", + "e922696998f70bf7d9e62fb9c5686b250bc6a39fda33d21321f3a18f04d36b6ca100f2909bf4f3d0d30ab016470dd358", + "20dbdb9ca66b9b025b79e35d921b078c95fa7c62f6905fdf2c6840d7e41323e0f9bcc21727a7f614c535d4b45d9baf0c", + "4eb13643fbc1707d15bcbdc54f8f4df23429a587c878b9dfef22a0a88692e6229728bf9e984898f11a491b7eb1957204" + ] + }, + { + "participant_id": 8, + "ephemeral_public_key": "484705f96389c19faf1061f11903a5fcc5844eb0b8a585010012bb996dcaad5c", + "vss_commitment": [ + "bdae4e963ee31ca9568847258d852b7f3a9c2b60e9ba1822ec5b763b86da5e13", + "a46509672dfec6565badaf935779c94eea7204d3d5f728e32f296ca77673fc88", + "542bc5a5df72e29bc7672d64915922a8a92f8ba217b0b17aac58d1bc9b47bd90", + "81dacd05ed7c4ec034827b239356fdebb83163fe21b08e53b283a1827234eb73", + "3b2cfa57d898141156d0cf9d153f947549fa68edd792880f80ffcdfd0817110e", + "9baa4cb447d021ac8ba59f6588d63a0841e75afef5cb385a92afaf4f07c7f769", + "a28d99e40af6d79a4e8100465cce70f5095d7a0842cb3f50801d37a037baef49" + ], + "pop": "1033258069dffd6ac1524aea28a7a8c02f04ff11f20f5f21e30ef7b48c3b69561ed18bc423122244fb96a3d5aa42b2f2286c637679f8375472121ac60eba930e", + "encrypted_shares": [ + "c63a8cb52cdd625574a2f7c116b922c79a1da9f6acfe4bb2ff0a2e3d08e600e7624b3d54109dec201001643452b570dc", + "a83c0cad53e0c0a802d4dc331977dd56a99b2022143b69bae3faffbdff3dfca9e497ea3bb792364210c8b8b567179212", + "6654be93868d0ab275ede1d98f45920f0717f3348433ef8c97fedd58882b254802f0580f977f033df6b6aab31cef6c9d", + "0ea2351dd4751ecdb33f8fb31eb5521b3ad5cdd10c0122ffe3effdb08a8d3f6641cc45e2ee6b9ffbd47083e40ce97a4d", + "21682154be22781a5e117b93123a023b4746fd24c4404bacb0f5dfb5240ebc45187a3646bfae132bb9c7d6de6c746eab", + "9fc303e955847e1c274f01ac3cb8432c4c2b6a150a7a107fab28892f2a1dcf53b54844f60c5a553dc677fb0813c403f6", + "c5c016762422ac1d5ad5b35b18f42da43f4374cf800507ae5b251b10d17facf83584dafaa64de981964b744932978ec4", + "5e524ae2a1d7709f8cbbc06e6d318d8fbabe514579995b2d3bcc84bf83af78a5468b84738a812e755d72741632d8e47a", + "140fff910fc947b23502bf25fcbc23d82f65fccce07ea77c7e9502336c48bfa82286e05f4794257b4e3facb18f524191", + "552d62b34fcd773bdd659c2b9217fed91829de4f18fde2ae3807ec720b4fe9b2997e6098567c078fe55392d7e2327b02", + "d86e584dfe9843ba9135dad563962312d7526c5472c8928a121c9be2612c8d78e54dc8993fd23ae806252178f67e621d", + "935fc4926e1e5be523e9c82456bc9ce4341a1662fa2cb4a18696691f94e322ae79b59aca2dda611e6ecb4b128beac7a5", + "e852571a2cfa668ba8439b8baaeed493fffd41985ccd13164fed4ed1d599f74b4e6b8740bda6b2be55c202f34be38c33", + "7cf7aa5e43e5d103c5ede92b72a13c4b61cade63050efa2a1e5297832462466e6ad189ad2750adaabe79ee07ef6cb4a9" + ] + }, + { + "participant_id": 9, + "ephemeral_public_key": "6346ab5612264768d79a7ad16fd49a1b2247e0faa51a9884d0bbc2e943f6c25e", + "vss_commitment": [ + "e25bdc4d0553e9df680ff6a68e99fc57bc0996abc6efdc5df27d2a93ddfaa537", + "231b7bcf4b9e85df4be0b459474b3da7e0be54bf6216de54c95ea07ed4265849", + "29ac9239d300994b6708db3e50d231b1a921859ba7e49981caf8afcb34dce45a", + "c62c976a81ff9b637eeeae20a58a62467202343ccaa35472a48135c139278519", + "96f4e362273c2cd302ed9d80a73675b040b6abe79d8146706cd03c3d8244201a", + "bd88388e2b4b13cdd8a5dde0a53a4462f5a5e8503d9e052f50c152ac7601074f", + "5834bc33ce6f5219f5d759fef541286daf1576249ae74dadede45b12b73a541c" + ], + "pop": "c1608e4e28ff3078f3f4d920a6f946be04c3aba0311c4f5991b8e8b2888d55d32ba301f065fcad7a17b04f388788557fef86d4fe033b18825db32940dec6d809", + "encrypted_shares": [ + "61c293eb9ce2ab514dbd8f76402763c73c514a646d3405b577fd633eff6d83b0ef6f7d90d13dd8cfc9c2676225afb104", + "5f344358d69157a40888ddbb3908a2c53b154ca1366c323107d89bae9efab3292d7be83fa2a126c6945f85a662d6b487", + "e128e21dfb6196fe50bdaa24254395edad362f275bd653add426b78a1bbe008a9a02ef044bab06e7e0991ff65562ad21", + "4a04a1dd97dc5f9babab013333ae9e1c18b23eca17501605fedeaf326ecc8f212789e0143e1b68f89b1aa9c88cc3fafd", + "052efb884a3cd42f8cc8faecb35506e850a1a49f75d42379079a58e50388525fe4215952ab6ea19e3f3aef72b83c5cc6", + "2f1e1f3661204fc9f5cb880e66994a4cdb031e1190d9b5dfccbb2df9240ab0568d0749c5eb993c314d3c9c2e4d67af5f", + "14ff85f13b442cab2d301a650a66df2c88273ed10e4066b61a08436263009879b5cef1c39c40d5cee91ea9856a48c91d", + "aa00cb750bb8a0aabe600248a31fdde681e59afad82225522437e8966692127722ae26271d280dc3c7555d5144395ff7", + "cfbbcfdc0f2c1187ddee831993d230c8385f487580ab7a151c4d90e24f340ed421ef50311712e65d546f2d15186ed6ac", + "bd377a37cafb39d64d1554405cfe2c518939b09d4e18d2d4df448c4190f101cb2b0d36e7013ce2c2924217bceea48fd0", + "9c602d07928047d5aa81e3f2221ca9d7ff2d03001c1a2954b32e1668d85c1e05c58dc1bc15a6c21ea0707d764bcbd176", + "2b746d69c5ba3d7d877f92282dd5a93d8a604c26eae87b5fd0733911f0a7617c4428b210e2dd1c6586e79167e9113e47", + "4ced74574c94849c3ae2411f702987ec48522313d6fe970bf7b549dae1550a68b256a1ef3d697734163724e2fd1a29cd", + "2cab6bd2d2927e2095b22d7b04a34c252176f5c0234d3b67575a81df12b94832e05bdb9b8efe74c43e59b7d42e4514a7" + ] + }, + { + "participant_id": 10, + "ephemeral_public_key": "046d776b7355111941425f2e69fd9059139c4168f322ec299a798a30a0b35c66", + "vss_commitment": [ + "50ed6094879b72b1f0fa664c3567f8286256ff66490d5ab7ea1a855cd462ed27", + "c6bd58b6a980274eaad1ac983b508ebfacfeeefaf0711b017f18c4b53ae9bc27", + "aefcda47b58ae756debb4ee5d2d788dc28520e20acd4bccfa8672fd5ea760924", + "adfe712418b7195a85a6bbd73ab6eaae0836bc85d286280ab94f7ebb1449c42c", + "c24ed11efd7af32656f9cfa916268e6353dd2f83420611cf9408fa49de3a67ea", + "b46a06b89f15bf3708926422a655bd351a206c36c50b665f1feb5115dda34c7b", + "4c606cb5a24e7db824366cece763b0e648cef83adcd809f65ff647a3c947d0f8" + ], + "pop": "af65b861d4b00fe55420f43aa4a2f6c395f6578eb9078755e77fd2a703ff9663c3da40b329beb9180f1375e6bba4f1e3c1df96520fa4f9f1b8fd2e9590552806", + "encrypted_shares": [ + "776dd600ffb97f314ed4b740f30dd7d23ba83a29a5ad6729e85e9463264806b0c53ca265f4b457e36b1e99ca00136809", + "f4b5a510a7ba3acddb7e5af6cbc1d80d605c49b17e5c82dd5469301b9252dbdf86d02b6a78f5ccd7051c09d8b6497b62", + "f7955c99c52adab77ccc869c3413c7aef87ae3e32b95199fd651bb3f944724486ce56b73fe8c397bc50f1983f7547ac3", + "75a35476cf54d5e510e379dcba9a79f5021443def9a4a923d41f04c7284b48af60d2c29345556dbd0ab6144c24ca1512", + "dcb496435f9395597f22ff577d72b316a1f59eab3a2ef08c86c2f16c245ef92c1cc87633b00f8e125fa82d28f6a9918d", + "a8c544edbdd7ce9d86baaeaa025274095edfca7046834836780269790a375d86b89c9925839f01493d56203e06ce5e56", + "47b532e0293ae0635c342758ef916572418de506f7bbf5797f3e9120dd051f2da3269613f2a9be77f286ab3e5384a4a8", + "d743e2fb22a2221621301bc700487090f3ff0674dbd3cb34a31f20a6c8526ff6eff1258c257d68ce45f9c98c62b3769c", + "c8d5643c5dec331313e46a1334212c20d166a1eb553a59b2d63ce17912e71aa77b65e8ba2a077cee685b79c9f5ce09e3", + "910027bbc68f54473a4a8810e5cae922a9d3f03b250f23a18bfdcf25c1831d02fc66dd425feff6fb22cce8fe49845784", + "ef0ce7493ac9308bb1dc7b22a94798ab9c757cd22657b3d73ed763c5d65a2ce81e77d2f9bb95520dc2ae6c93cc2936dd", + "f6d80a12324c3a50cbe9717e546f4a5ef579ccc36bd6bb3e41178398c3dfc1903f8e173a9d3bf7a2463c15788a6926cf", + "fc3da8ac491f9e74c8ac84c1f3ecd70514f7166a2015888ad87b0396c857b06544ef74470c50ebaf0295bf90bd1cf697", + "fc06a1e4c88e2272348552691d8c7f79723b90b08be01788b14e04b7ee16a7e94cff03794f1bef7f5e7cfbab2acfb007" + ] + }, + { + "participant_id": 11, + "ephemeral_public_key": "c7c637f3322e21b93a61d7f08df232c276bb4291bdf21601a6701ef7d882f3c3", + "vss_commitment": [ + "b7d488e5abc933f36cba7c5b0fb11cd13d9446a24067716a2848b1ed36c955ec", + "0b6f1ee40385c09e03773e6061ae8bacb14e8e57df661ee6a88546a0f4629749", + "b2a99bec353262f120eed04546182b430c8441646f725ee2fa1d75ab2d4b586f", + "137ae83a1a7ee33abe1635e96d6ee2ff7c52f86e37721017fe9ab4e419998201", + "0b2178e228d5085a59cb436ba86399d28fac25971f380477ced7849f63985879", + "b8150ef51101b630a405737ef38a8e7b4e0d4ff437b389b167562e25022a284a", + "3103fd0db65d60047062f2bda799d1dd3af103babe07cc015d337f908abfea7e" + ], + "pop": "a28d02bb9ea5529eacfd34e1f502d63e5a0d786fde4c840ade0aa9163ab86868ff3c5964cf55a65e799a32a5dd2779eb74242fa155d7ba59bed76259ff6c3f0c", + "encrypted_shares": [ + "0e6e7ffb5df7e9e2b2f58d3d371c5431cfb5953ed180bdde2c9d7d1c130a6e31f9cff1ad84294e2530ec79c3a0a02fe0", + "97801309a0f1000d856ee0214d492eaf949bb42a53f931aa1ea72d005bc7a375c80e21bcaea1a275d6706ad9155d41c0", + "6c0d93f91a12f2b1f79a86cb12cdcc3aad11b40847561c326838693def41bb9bc58bc37a340e0d8cc76b87465f14142f", + "56ccf959a6be369f9bc0a22de3c15388dd05f86a3635e0939717fc1e20e49b81b1b7630d8e47f38011acdd9d9b22c488", + "bb3930ae717d8a37c6215f3b3dbf01b4b780f2fc222e4609e29cf10a9a259a313046d9fbd4fefc18f85670f6f9186a81", + "496261c02769750dbb71d9064c87400099f6cc1db379470f173fdd25434960c602741c81336d1448b62f5df9a2050742", + "7bfadd2e5f35f0ef0eba410323a413fbc4c3fea6748d032d3599820acb5520fda562aa7f7b99bc5a4b1b28fa43e054a0", + "0afb71f3a9f6b71bb5522b92dcd5c86e32ab534aa5a52f59ec8d8efc90c3e83358b1c99f4276f590a3fda5c7da873760", + "11d00688d12231cc1e455253327e58bd9030c1a503d1f3253d42ce327fd5a0f9ba4eec38425f7b56556966aac48f0cb3", + "b441b4fbf8098175b33203f1859f8b1b26314069516a35f4e4f28b13d845568310004389706f5561f86aaf39473929fc", + "6565d40221095e01075db0a2aabaed424178fffd57e1e4a633d26ac6f8d8fe9aac480fe7728f03d1d971a19ab4c4eca5", + "3d9fa91cef6589f0ea4e0aab01635718cd899190cf9955e974ef071d3ee0f2b658415e6768a713fdcd365bd7d7ecae23", + "4aba04bb764f483876cbd6b289b40dc68bbe0ab3abf7871f84c34698196702b1ace6c6ba461b08bdbe07546906c18c03", + "54567a41c0db163c6317d4b23dce5e9259353fcb22e42f9d75b5a05f359d895ff9526555537c1a8d7796a329d596b76f" + ] + }, + { + "participant_id": 12, + "ephemeral_public_key": "28ffa165a337a6fe8fd74d63a094784299ceca4a6c489a04a9d996b64438881a", + "vss_commitment": [ + "170c09025b04e53ec0e866f0c071583adce509f5026ed4e58a8f78f8d143e248", + "b9246fa3339cb000445f04ae3f0a38dd07f3e6238153e87e15f8c90a944823f0", + "22fae575938a481ebf5b84323adc56ab70953d38cdbf49def1ab0b63c609639a", + "9e37660b5de64b7d99039f57b7bef9624060f7331844fe0a5adad760f302cd1d", + "dae217a58c573a562543283c4d067b379b165c26d435e746adea8180624ba6e4", + "d49d8e123cfbc7114722c91b25128c7e0db78207584e7eb1da1136059d1e2d89", + "adf0c75b8edcd09827ba888a1bced3d88bca1b0ca9adf7718943f64ed788155a" + ], + "pop": "5b04ddb6095fb762e1a9e41cc7ad072b3bc29c38a6c80527c01a0c251af021e57ed76b2ab914625ad33e168fe2004714c82080f26b3e4d69610382a1e0fb6a07", + "encrypted_shares": [ + "7d873e3e309f798994887b992563f18510326af0a040d632b343e45dafec1c79d905d040116b2446fd8d428d1bc200d3", + "11aaab8862f75a2362ce7a62c4a3dcba633cd2ec23b4d7753b3f50e2cb059a9ee39feb758c850de8332474cee341c5ec", + "aab7b1faa74c3c40b78dc8c8fed7c20d75cc418bedb6890b0826bfaedbbfaf54cdcf6d62be03184dc47f0c324fe5cfe5", + "39ccaa60fe7b8c717eebbb4f3f4a214bb32b4845a0d5fb42e8f36727d9c98d041a8681f62b6adb8810442e45719450c2", + "d4e9e27596e22b915171cc0320217c3aa814df1cfc796cdf42defdac09e8dcbf6f996f79d2e377ca97637c0b1f91e00a", + "b607c069c1acfcf15fac9963fb9a0844f8c8a5b426c7ccdfc84e9230ee87b89c1ae6e99e436faca77e950d18b79a775d", + "70f4d50e5b9f5ee0d25767b957af58ca2320984e50489ce2c38a150c37814a56df13476c01317c9732131a0a598ce319", + "1509f71256e8dc7641a7d51a90ab242709fbc22fe73ba3e88d22db8d2564ff97957c91fbe0a98be2547aac50b5f6a245", + "bed5ac4982d0798a0165c123d9b778fc913b1aa9c2660c54b92d90143e8dd6b920c484269be987b3f5c2a1d6c051e752", + "7eb93d3977ead48f3d9e2d52039728a1b464c0f5d2090df8dd38f5b54564c442824a351f6701dcacd605e740e0d7e19c", + "05117bbd6c237a1ef31990f1adf7f47cf1410b4d08dc267eba4f8041f1b5f93a4da595371076d8bcdb6948238d7d9fd4", + "5b49f4d6ea1399f5ad4d4572e8d8ecc063025c3618cdf3cab827da50059d963734143857003644558d9e85ac256f0243", + "4d2939154aa8ab77ca9922caae650269c3dc9d5c63b1712be9f5acfbd9323bb29c2a466ebc6ac801c69be150d724c298", + "cfe69b94f54c1a6981a0011c0586a40963c78a3da0e592e70f685b67aee1ba72a420b8fae201e6ce5c51bcad3526382c" + ] + }, + { + "participant_id": 13, + "ephemeral_public_key": "1902b9fa56012a0f1ec6a81fc92cb231bd344e0e026dcb3ef64308c06a113165", + "vss_commitment": [ + "66952760f7acd6b3e91ca4886a80f0743a13fd68e2cf132f6bbd3d66b8e9c78e", + "0a5f2e38fc3c2b29154936f98507571d451efd763ebe4abd79f18a8397ad7703", + "ebb94efcb4f3f7f8d11347c5d0198db175bee6b20088c6d87e9400eede637349", + "ed62766da9eecc81eb91e294a0c3ca6b24617be617e029988859ece191961102", + "e388d21f0b0815e8677533482fb2f1a4aa9dd6c880eb95292ece52f04c2af632", + "56fe89800e07db8007553047d7f8dd3121080e34cda00e546b64ef254ac20cd3", + "396bd279026a38d1798cc2aafb46f86684ec84066cb7048343c6b4ed22e03772" + ], + "pop": "1cdfba449defc45cbc73093c49d18887fc0bb4044ebb22b901c47c7f33634977c208aafe5267857b5fae687cd89add6dc81175d7bb6c74ae8f1253d29706a50b", + "encrypted_shares": [ + "456b2c3aed159f290db5020362c87ff850ac00b8b0fb2a68dabb5c9fe8a16ba236daa3a8595afe9b01b63357d7ef31b7", + "5e32795f9d9295b7a08d1c5b0da55dedc4f7529e65100f3d922da04eadb80e7659f5f07dd132d24b392328c95c220313", + "d5c205bc9bd512128fafb2178c41e4d6f8827d1f53e8eb87f311673578a2cfebe67a95f231026a188b3c970bc1ee3b50", + "1b26be6193e02d2faea7380b77c2dbb8fef5c9d01a340e5ea49119b3bb360f99e3e954031586ab4120c7e49435b6f11c", + "6d50513d775bf531272167601628df79499ae1bb79d4146f4a57c24d50f87b985cb18ce5e1ab553cb01c4a59efeff9a6", + "84fbb5dacd4717505ce92e8656b023197a0859d2abd3dc88967934d6dedc698fd352c9b53724a3f3c410ac4a647f861d", + "1d091fcb8e50cf21413126594b65aa9660c9e2bcebbf05880ad2d137f2026a50e83ab571fc4e4d6675596190f3e7fe9c", + "cf6745f9342f2d1b03d6626b774fd131e0eb1daea9097dd30813e52d491ab338ccc9a7ce910c7697c7b0546810cf8fb5", + "96ed6df53f39764eeaf9b153b3dbd780885b3d557161f7d887ff7abcff8d7e7fc6457543d9877ae0ddb026337ae68d2f", + "6386e0051ce1bd5ee3a68b9d621554933b6621b696154855d924ea11bf0427092987bf1584fcc95cad03c795655b2075", + "75303d657a6a8217e7c115a614707eebf67c39c9b56727473500554664aaab5b76d865a655ae7db5a0b21a42d3c8822a", + "ea3670dc26da123ace13ea0c3940549f03706d55048ef6bcf9b34b21d1044ebc765ef53116447dfe6519969a03a211b4", + "e9dd1c5b8f65ced0fbbbb56d0e6aca19ffe01ef4769b6b5585ad018935d830ccc250bccb1e2ec21fd1dc0f4313a0f38c", + "87aa51b4758fe82e71d13fc3cd711bc7e83a001baae749e32c313cb30f3f43ba07191bbcbceab372b88ddff11cf043eb" + ] + }, + { + "participant_id": 14, + "ephemeral_public_key": "7a96b83ebb29c73c5dd728e2d90ca82a73fe4b6e4eb3551aff4985e83acc5d09", + "vss_commitment": [ + "41e386a282fa8130686b6daca702a454fc49aa6b58d8f25c0fdb35556a4e5076", + "25e4c2c64fdfbe3e95ba3dc721901584316c20bdc7042e5131ee67f97984dc82", + "83c6d42db01e6305afbcc32ee22876a6ef9d3ef72f6e80996460b21be43b076a", + "15bfac3955c11453e9cd7866df965d7cab2f3ffd328d79ef118a606cc159997e", + "507e3aeb3cda6d20dee7f300f56204033f9ca6803ecda929c4e1b1135a5e02ec", + "4a34153f93828c0e11bd12ee5354983c0702443a200509c08b3c5b03f6914a25", + "cf86e9af5d9346cfa85d3f0ed4a2f5caafc3eddb1e4bdfb2aa47ac556b940d0c" + ], + "pop": "a86a7e6789780852dbaf27b4774e992f34324e3bbf720909db73ab60948bc97a2d60000c4f962218a3faff9805e402f83ec9bef9d5cb8457489a2ec5a6f1c30f", + "encrypted_shares": [ + "5c3651ec6ce24ca39e9762f14ef2f0bc3005c9a9249dc9ae2ff766047837f9870e86ce93507f4cfb986dc082a4335561", + "6b7d57767b1e19d0a2fb47168651f134763c148b8759d238e20c2a466cb2d53960c0c3c04f3fd57853a8c2c967c62657", + "6674a2c7077fe97c00c541065052cff81326d17c8665192e4450bcff087405d41cd2ee3409eb2f172900a9ce7a3a49a7", + "bc1c2fc3b8f76eb1825d3581707eddfdfaafd27bf47f9a23c5a19803c77a717c4d1239e0af2a0bb978a19f5e8084eaa7", + "1a3d7edc3849e399ef828b3e0642890d687c9f1c45955c9fd49b772cc652aa2b23a39e38334df487845e5f33ae86be46", + "a74caf41cabf5ab2dabdad91031b75990bd9d650b9affde09a2713dbcc866255fb154aca9211121d14bd622bb5867338", + "5349a1e8a61e3b3ebed7275132fff77f27eb21fcc63235fe01ad3055a6f98ea481c7faf5d2a82835ee6c55cfadc49532", + "f2fcfb3f8bcf55b84e12a15198faf3e089fcbc9af53ad358dc243ec5c17a35f94e4331bf6d442389be71f0ffa0af03f2", + "f2555d4e1aa8bfd94cdeed14b49687e0ef515b414cec830edffd6c32a1db6b2f4e8cc2811a5706f70fae9a8bbda96339", + "9d2b8c9d31800ae633e5e06f119c4b74e0cfa4c11493dccb0f21c77255fa03de2464dd24c3bcd5773c758674f9442298", + "b853fa24dbf3c29000ff4c513069943731409686a1d4967dc1c9c95563313a584c40c6a5ed8fb53f72679176ca246663", + "91f67305d0d4df7cf48a0a85d365163df7ce97bea5eee8dcb03e8b65d8e663334d4c7882731548794280a953e96cb3af", + "1956457f7d8cc80393631ea12ab64073f19314d0b68a7c263428ffade35070a15a5ac2f4ce4a09ac7d16f068487cab96", + "e2caf932169e8486dd990ab71a9e03af4ff2161853b4373919dc633c0bbf6dcf50d59ff81fc8d5f499264e0ea9d48939" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "5ae8e4e94395ba0838c4ba4a8849130645206e71aee6c9bdc12fb56edbfcfe0c", + "verification_share": "fa590716e0023453938b48e08717ba09446c3619431c69c777c20988fcacc619" + }, + { + "participant_id": 2, + "secret_share": "c69d4ac4d26e43318de29812ca720a5140e3bb7469105ef4e4d841ac987e3202", + "verification_share": "3889ff3155acdd6d481605ddd4ee63e1b080956186c055b19534ca97c8d42405" + }, + { + "participant_id": 3, + "secret_share": "52d315dcd6af952d6859db1bd796f90ad21117a4fc0c775d30810d2ef9ef9300", + "verification_share": "722e79c780637a20bfa188c09dab21ac2495c78927b768aa08e57557b3b708f4" + }, + { + "participant_id": 4, + "secret_share": "900b3bb6eef0c1b9a21196153b93431fcf4154a24c7fbafcf766eee40782de00", + "verification_share": "3b41c48d577cd28a2953ea1c1933c63e91f05317f15d21d21b2b19df84142f8f" + }, + { + "participant_id": 5, + "secret_share": "5aedb52a15bf785ba6b7b3c8cea04614162f1b1c2460c7d8e003986628d7de0b", + "verification_share": "205c0151dcd7d9bf04c75938ed0cd1342ab1f3ad35e61e81d62e5740c112a4ed" + }, + { + "participant_id": 6, + "secret_share": "4473e33ddb76fa45376158f2c6d28763a8ee43ffa75bfabd38c5639fef67b902", + "verification_share": "07d279f5bb2427088e56ca772e155c9f81e68e81a4d598756b73ce876f059717" + }, + { + "participant_id": 7, + "secret_share": "db1e9d5f393aea86ac4535ee3596b774c9b958525ec4b14d8632aad83e347c0a", + "verification_share": "28f08574232f539352bb1fbddcc667531b3792621ac32f34e9f5eaf25839a208" + }, + { + "participant_id": 8, + "secret_share": "8c7d13fc645338e2a6379f4642cbc83121513cacc71b115a5182ac13a1c0fb0a", + "verification_share": "b498cd2daff4fd916e84526bc308dbf0e5d248bae30ae72543c880d7e40aa28f" + }, + { + "participant_id": 9, + "secret_share": "1f2d4b898cdb26ffb7077dfd6bcc7d7ce4f7f44b8b30448e239d0eb9ea5ffb00", + "verification_share": "35231bef16e2991f532a42bd50f50e237be8c58ad4f0b25e704a43d26425d058" + }, + { + "participant_id": 10, + "secret_share": "1c79f3879fad1db5e7c8a41839d2bd0d02079cd035d24163c18ee19c1bc9a003", + "verification_share": "939c672f7382b03ce0826d6fecbfc8abe0e540a72b51aecbc5c8d5e1bd93a8d2" + }, + { + "participant_id": 11, + "secret_share": "07658cd43c0860d0ed939f1428ad91d3531872918a1a0e619b653e5783f9320d", + "verification_share": "022583f552659100e1b7bad7cc8aba80227a1b73d3fb646a83004275376fe37f" + }, + { + "participant_id": 12, + "secret_share": "dbc28a309af7360fd3af9055dda4bf74d5c91796674c7cac778071f127632407", + "verification_share": "b9ed1bfb7844a158685780659e2c018884b76a35387289914f849acb8750114b" + }, + { + "participant_id": 13, + "secret_share": "d78184a64a247eff228348f3ac8227e5df18eb2e3c4870e1534ab6e76e676809", + "verification_share": "cf098dad4e88dae95a64c6b3a2cc057134df15251d6ad09783bd68fcfafc419f" + }, + { + "participant_id": 14, + "secret_share": "8146df6da761b69ba2f3e73c11116b106955892d12969f397f64837f081e140d", + "verification_share": "058b5bdeb82562287d086a103007a7524cd778613d1fcf574b9970d45f6cfada" + } + ], + "round3": { + "transcript_hash": "42d65bfd93ad920dfcb048b90ff5a4b45d7e4d48e559c7aa89573d18d50758ad24bf3242bd87f445623aea08aee37edff4b45d2ddf2e6431d170b8a80caeb7c7", + "signatures": [ + { + "signer_id": 1, + "signature": "3b1367290e890f881abc9030b9c655f58c1ec10fbb905e3e1488d122ca41d7c8def539dd230a9b0daac62443d463011621ce2bf74ea5e235a56c1a550ba6f90b" + }, + { + "signer_id": 2, + "signature": "ce6a61cbcf33dbf2235d471c99fd044107c77cf06b2a4fa11e8f1fdd5e429b69a41304271d23ba1a21af6c1e0dc3d1847ebb630aeac19f3bcf074f4289d1ea04" + }, + { + "signer_id": 3, + "signature": "7c86105ad43b7f45b5403e77bde44a4325165127fec30f6e739f05eaf11e077c9b6af73d5bdc103e42beb253bc71e921c054a564391ba9aca98e750d890c750b" + }, + { + "signer_id": 4, + "signature": "4b694069c6302e73f22db4b640a6aa6447003334d9c5adf2d6e20ecd01a581a4069247f9297abe3526ca17efcbb75bf1b074b3a873b98f78686623179f77c50e" + }, + { + "signer_id": 5, + "signature": "0a6b303c24f0728da8bb25c3447e9d13d17496bfcaa91a91c05fca2aaf26236f9338866d83be74e79536162f05e4052fb56436a2181060c3af78189ed21d230f" + }, + { + "signer_id": 6, + "signature": "1b59b2ee70888d59667b8ab5fb2b2951d0905c83cd7bf8284d691f93f1c985e2d450c0e857e3eb606c70aa4753ec7213c573bc4f6b5e7f72adddbdab6d9b8f0c" + }, + { + "signer_id": 7, + "signature": "9cf0900dc7cb64e0e1a778fab17265a54e24495d1baae4023c0eef22dc8ae8e3e0f75a24306ca124e99b7f36f296ae24921f018b49b97f46944a34d4a78f780c" + }, + { + "signer_id": 8, + "signature": "ad80f1cae8f35461f5771a7b01f71ac6c21dccb1c3059839ec1b966cec669dbfa7ae6953167d61bbc93060e4694259d76a492ebc0c09e826bba34e18d4fa1401" + }, + { + "signer_id": 9, + "signature": "700c13cb118fb25edba791dac2c01ff8d45b40989ef5956a8f09953af732a82069b20cab9b4cff1c3fb0aae295c1772ddaff0138018cd0d32598354990855302" + }, + { + "signer_id": 10, + "signature": "5ec0fa59e9e8e7d7d9301d145f21e36c71f949d539481e03f98ecf02aca290c0f768477d4e25653d0f2db0081192f03f174042c902cfd6403600becc9e7dc705" + }, + { + "signer_id": 11, + "signature": "a7b0ae91a47dbabe7197d420da07d00618065b03b97bb6b0b2f9d60027fac152bbd8edbda81895cee6e988ffada5d5784b5a5fa678fdaf63e5b064bb50d7020c" + }, + { + "signer_id": 12, + "signature": "c53ad1c1087bbf76745ba542d1b46108a8175a93483309d0fc4e928a74099d517f7bdfe708641fe8207335aa3336237f14eb93acc0065a55d4e195153d8f7b09" + }, + { + "signer_id": 13, + "signature": "7fabcd96d266e30736e99336b0238ff18f7cf98d2d591edcda75616f7183e6648c7f14701c1adf7965806015f3b740ce4e9b49b83710f46d82d58c7c778af706" + }, + { + "signer_id": 14, + "signature": "52779e41e7bdfa5aa5769d705b56404926bf8808f3db4cd264e56a04aed8f08fab2771723a982f6139861bd66d32446dae20726882d1fed841d1676488669b0f" + } + ] + }, + "group_public_key": "d3bd4888ca21d85a346d97ff7a95f07a22f2060f8566ce4228e61f214de7730d", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "31aa6638fb9526fe734101a432cfd8a02db6967bfc9eeea5f18281c5f11761e57acab35201c7fb0857bb94e897af538a", + "25bf5df8189cbdb175cab533b438c3a8302ba442dea605771e235684fb5183e03812b08d994020ae7ae7134ffe080d42", + "7ff806ef14fc0fe79badd46918dcdb6acddc2de6080b4ee847586564d58d9723b3c876b3777dc38a41bfe8a000c8b7df", + "8ea087b8ad7c163085d16d5efc03bdb4c0ff1892686a8d5dd2a2265259e46b77555457fae4f4da72f3f3b523323018b2", + "a57ba6db32bc68c0d3d5672774a106031ebee2e3f64d18c4655d91d4628a10c5203593f62340a8cb3361d36038026696", + "1295490279cdd0c22d4cb078d037de263357b9217be5bc3614f2b06986432938edbc49bb328af74e38eb7f19d419b0e1", + "b2c363c2a0a2fb73002a34ebef38ed49ecf07babaf04daeab561d3294c0d71cf2d432f75f030b89fc9c5b995ca1020f3", + "c63a8cb52cdd625574a2f7c116b922c79a1da9f6acfe4bb2ff0a2e3d08e600e7624b3d54109dec201001643452b570dc", + "61c293eb9ce2ab514dbd8f76402763c73c514a646d3405b577fd633eff6d83b0ef6f7d90d13dd8cfc9c2676225afb104", + "776dd600ffb97f314ed4b740f30dd7d23ba83a29a5ad6729e85e9463264806b0c53ca265f4b457e36b1e99ca00136809", + "0e6e7ffb5df7e9e2b2f58d3d371c5431cfb5953ed180bdde2c9d7d1c130a6e31f9cff1ad84294e2530ec79c3a0a02fe0", + "7d873e3e309f798994887b992563f18510326af0a040d632b343e45dafec1c79d905d040116b2446fd8d428d1bc200d3", + "456b2c3aed159f290db5020362c87ff850ac00b8b0fb2a68dabb5c9fe8a16ba236daa3a8595afe9b01b63357d7ef31b7", + "5c3651ec6ce24ca39e9762f14ef2f0bc3005c9a9249dc9ae2ff766047837f9870e86ce93507f4cfb986dc082a4335561" + ], + "recovered_secret_share": "5ae8e4e94395ba0838c4ba4a8849130645206e71aee6c9bdc12fb56edbfcfe0c", + "recovered_verification_share": "fa590716e0023453938b48e08717ba09446c3619431c69c777c20988fcacc619" + } + }, + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "976f8781ac89edb9b14f00b42915f36add6fb01f795ad7048e88a7246ab35304", + "b00aff74021d100b0eb587ca406fd4c1af2ffef9146454a4c35f547f709e8403", + "5d3df9bdd5e6ff1e43f07d2d81791cda76e44e6fdbba980b1231a9ff39e1ee02" + ], + "static_public_keys": [ + "2f35ea108d2b43a27d2dd17f3f0d0e44422514d91d667af850fa206a85cde4f3", + "d34665a229edcb3a8b822179868138c097bbf51316cbea636e6626b152742812", + "e4f58f6834e2315cc79cbb142ffa2ae0700f835ddb581818e10553679c32fafa" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", + "vss_commitment": [ + "2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941", + "590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1" + ], + "pop": "a7abfa107e2ac05ad11a71fd494f3f2baa177253ef9c7594a37da917f2a84333bd7a61ae269c5624b8eb49d10e28a78f07718728f59b2bc626f9d07e653faf09", + "encrypted_shares": [ + "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", + "156d49dae0cb8917f47e70e75d7eaaf3251d160eefc294f9b5eba5f918ac453a05ee5351918384d62a43e888659e880a", + "a90c87b8b6cf42cc308e488f50662f0988d4229d68eb00e70916079bccb8df591ac2732b174e86a57bd292fbf485cb94" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", + "vss_commitment": [ + "3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d", + "5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd" + ], + "pop": "2b8520cf63b7e857d02c47367dd20c54c27dc2d96a6dcff3918bd4b8616bb3d01ed4c7d2e3189955c3fb4f18988f56e3053fb2a62d3d0cac49a860a22da90700", + "encrypted_shares": [ + "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", + "cfc83a3f386eeec4789ba05cfe565a3240b6c1801e80a4aef8771a23c389b526f7b2b601020d576e2f72c39a4b2c26c0", + "fb6cec9a16d2f536457c96afedea704a5228c42365b34377c04f7c9e953a45d09ce4a40f5ea62b63fbfcae9a452b56de" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", + "vss_commitment": [ + "74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8", + "ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d" + ], + "pop": "af79a5ff31a6536b2d0b333452c13ff0089192aafc9b10323e017923ef8e45c9d5a4cea1a5f14c86eccdf8b3c0ea25c9d7b9ba6b071c0cee0a5374f95285d003", + "encrypted_shares": [ + "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d", + "b151386d9e5316c52cc67897c65231c753a0036d974909403220f5168c55aaea336acf361b273cb81d06a5117c144ef8", + "a9fd00d94fd411354947c995c054c9d842aec6ca351450256e28198ea3d7b7fb6a939626e0a99c6f456bae3aa243fcb3" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", + "verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" + }, + { + "participant_id": 2, + "secret_share": "6723b951f1a81f143f11eea4ec31413e76669d049b962b8946a78a35cf97cf0c", + "verification_share": "0c37616b618d49bc5ce2db1cc0ec4177890bbefa2caed8aeb2cc20aa5e872ecb" + }, + { + "participant_id": 3, + "secret_share": "0d2809d5c126e019a3bbadc2cc132013eb6141f7f6d1f062408ef58b89ad180d", + "verification_share": "9b992f1e668431df2531c8a29defe7d7a5897862648c8efc92bfd9464dbed5c9" + } + ], + "round3": { + "transcript_hash": "c271c24bac1aef846815a8c43fc6618bb6d4367edece0c0937be417c3948ed69671629784f0950e43d63b0c2af66a5259ec2fd0b27e70b1d0cf49a127fca1970", + "signatures": [ + { + "signer_id": 1, + "signature": "cd0c7695346ad9b5be3a51652c12dfa4aeab9e52ae15994a4d44b06683fbc390677f619be7eb8abffdc6172f8acf4aca9ef062a80a0e7663c2c19ab5e2848d01" + }, + { + "signer_id": 2, + "signature": "e9caf69275d884494d4730d5dbd20fab0bb242edf0771d2e0b9ea9cbc74a0e1b2a5c389dfc19d69c62cf622a073346e0111664e4e65e4d0b695a3e3968a72503" + }, + { + "signer_id": 3, + "signature": "3a50cb19fc6bf1bf82d58fda0e02ebd535c549f1dae01f579efe010250876a6410dda05c773ec8dd1d414a6a9bb8be0a4693b08c59a32c20d60e51cb59698405" + } + ] + }, + "group_public_key": "ec21f5ee46aa6e11ddc8d3f42af51e6636b86de0243229d848da48c3b604964d", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", + "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", + "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d" + ], + "recovered_secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", + "recovered_verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" + } + } + ] +} \ No newline at end of file diff --git a/cocktail-dkg-ristretto255-sha512.json b/cocktail-dkg-ristretto255-sha512.json new file mode 100644 index 000000000..1c91b5e40 --- /dev/null +++ b/cocktail-dkg-ristretto255-sha512.json @@ -0,0 +1,1015 @@ +{ + "ciphersuite": "COCKTAIL(Ristretto255, SHA-512)", + "seed": "b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68", + "derivation": { + "method": "H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label) where H is the ciphersuite hash (COCKTAIL(Ristretto255, SHA-512))", + "labels": { + "static_secret_key": "static_secret_key_{{i}}", + "ephemeral_secret_key": "round1_participant_{{i}} (RNG stream)", + "polynomial_coefficient": "round1_participant_{{i}} (RNG stream)" + } + }, + "vectors": [ + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "8232337dffa583f214e2ead7f19c37b482f77171194ed6984a715353e086d20e", + "f7b358f26668f0733363b309c435bc16f7670ec5850e4860c5d25e049e7d060d", + "fc2df6b164cac912a8c2d294b528f5e3261f1724d510f9fd1c2bae5e76308d0b" + ], + "static_public_keys": [ + "e86e416c45160b32c774ebac802906548d94b3327517178c3c743226dd594d32", + "c003305ceb27d887d9391f85138fc34edae9c963951a4e9c950bed8509ba2b5e", + "e4dad4d96d6e507ac59aa539a42c8185618b51941f4497af246cfaa9d1912b18" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "a6841269b357caa2d0655664961704b06875255a7b6ca1af8004560314384447", + "vss_commitment": [ + "fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33a", + "08fcd4093599c2dd7def1bfe843d8fd6c9041caa33c00a2bad11fd4bc1f16134" + ], + "pop": "6601dd522cbc9be894c4a2d6388b38f4b98f0325f884d3aae21c9a6bd76ca41b794c0a64696b07a90891d0172d10e78f118ca441f33cfcd293986dc491634e07", + "encrypted_shares": [ + "9123460b09df36e1e8b23c5ab8716568874481343bb647109941484c4a0b77243e9057ea3e6e39b394f3e97abd09e407", + "0448d0e38af67f341b5a2062573786edda7254bdf6f24d23c9618897e75b642763f7a2cf4e80a6a6cd9a6d9acacf6190", + "de7bbe0110fdf1b3a4e9590a53ec4a35edbf9495a905639afdacaa1f17232c71f2f0f72f768ff02fc4050772eea4ff2a" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "a0c9a49c4882ec32590160681791b157a39ff7b7401fef9268c8efb5e48be43f", + "vss_commitment": [ + "bc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055", + "f4e3e84108289d680c8e1ad24cd6a70fab1afe233b6b3ad839ee87742baceb39" + ], + "pop": "3ea2a28a09f51decd9420f1eb388da9c512d3fd45a2fbc66873e6dbfbd2dbc51b31a77547c7747798d154196fa7c03ab50bbf2d0bb7aa85f4282aa4723bb2c08", + "encrypted_shares": [ + "5f4432d0349118d57dd893d08094fe9732574887ae1f6ad0c723c5ec95a5a25973b7e974f221667f86547833f62abfe4", + "53d0f9d7d68b5f1f32af8dda8c1fb652f01486586a5924e9d7b5eb42c96faa6fe9454edc4f5d36c67df09a6600d86a49", + "21eb55105356a4a56d38ffc7fc54e33d9b6ba13727c34eb04118d4eb9f3c5413be1932c62270cc55a83148f469120e86" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "2293b1d8ed98f109998a243aa949a55605d0ca0e50897e059b658e0c63dfda25", + "vss_commitment": [ + "a4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839", + "e2244a3f3ea70ecd697189daff4792d5af5e4eff132c1bb6101b04a5adc6c743" + ], + "pop": "26cf2b0b2d5508a555002148ff03ae093f4ea1b8d8a79123c652fa96bdff6a27eb3b248c1338b3599077f16796b61444a4157ca43f64380427877456cb3ebb00", + "encrypted_shares": [ + "7c72d167a3a1ae7a7d1afb3970a16e7433af7a9a9d17e7ba1f1dae334889b989dcb9fae5dd17d70952953d03858f1b98", + "578faa68d9bc3e495ec5e82133d501bdd8464401088700cd557224dfc720cea39813156cec1780c5b03b148cd7e9a378", + "e2e07385816f9f092d9c2e35009dc139f96f560f3b278cdc3eaaab6c2455c2b51e11581e5b927dff762ebf60d9080465" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304", + "verification_share": "5e130c137d31a445d1b8df391b41db0dbf6a9e13649abb40d68d3fa955eca22d" + }, + { + "participant_id": 2, + "secret_share": "7db7ccef4df8fb157766082728cd2f072c0ec3af6d352a3d0af49919daf9950b", + "verification_share": "2c9a0c7d2a8e3c37c7b1ebb5d40bad2e9127151ad160a8b7d0782482fd790007" + }, + { + "participant_id": 3, + "secret_share": "04e3c4216570bdbdf8f4006a6f5b279cdefea07997f862e3eb71320ebaccf802", + "verification_share": "b434b345762decb04e5d9937cc5aee03b828808ea8d5500ea7c06c684712e143" + } + ], + "round3": { + "transcript_hash": "688801fc10825c8c317a69bf7720f5a1e9deda663658dcd8d49c75fae3c8ff24d0e8cbbee95e3b9d85a48c512863a3d2f484c572ff2229c1e9bb70ab9aea6609", + "signatures": [ + { + "signer_id": 1, + "signature": "0a1ffc6b6f07a088f6e4804035cd3e7006272d78eadc5fb41a3eb096592a664848d54e8e8de69785007d07bf5f11de5142ee0039dcd2f5bbc106cce65e8c3705" + }, + { + "signer_id": 2, + "signature": "44bdaed33768e912ccbbdab7a1bbf4addb2321f44adf4244cde6f62939ce9e09577f2d139e53d6f52d14a0d71dea27279f26870a4f7d034739f1a9ed6ef4e703" + }, + { + "signer_id": 3, + "signature": "f626f932b65539603113d28d7a26c35b2d1739945f0cc976abefb40df90ad16fc10f1a0e0e36c125bf4a9cbd4d9dcfa1a699f80836a80a27ec1412a64e66a707" + } + ] + }, + "group_public_key": "0a1592f555f20d3a3b3c7bc032ebe4b46cb2870da141404873e5fc8d4136120f", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "9123460b09df36e1e8b23c5ab8716568874481343bb647109941484c4a0b77243e9057ea3e6e39b394f3e97abd09e407", + "5f4432d0349118d57dd893d08094fe9732574887ae1f6ad0c723c5ec95a5a25973b7e974f221667f86547833f62abfe4", + "7c72d167a3a1ae7a7d1afb3970a16e7433af7a9a9d17e7ba1f1dae334889b989dcb9fae5dd17d70952953d03858f1b98" + ], + "recovered_secret_share": "09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304", + "recovered_verification_share": "5e130c137d31a445d1b8df391b41db0dbf6a9e13649abb40d68d3fa955eca22d" + } + }, + { + "n": 5, + "t": 3, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "config": { + "static_secret_keys": [ + "0532c882c5e72dc374dd3bf221e641b5634ec4316a5c96a7eb168510d2379a08", + "33531cd0046f315ba42e9c451c130bb934773852b5a3227e516f34aaf99d780a", + "2628761a926ec29d7b593ccea04cc799a5066d746b07a025436300b580931a07", + "c2355a62f365346e9577fd32e436b3fffa22a917a188f576919e86ac65236a09", + "82eacb16d6b34573e3836b214481e0fc4e885ea8bbbfb6bf80d6d4e37ad9630d" + ], + "static_public_keys": [ + "fc8ff6d9a852fbc3f4b673be37e52d65beb4afbbf86d217572bc2d55dc82c37a", + "4c40c03b25a8029931c33a11d965df4494a6adc126b04f937e1243dde572877e", + "64490433b5b6d3217311bc99d01b84a158f31232fae5545f1058a77632776a4f", + "ee106ab40ff4e2cae74a1d0a12b8bcae46b8f85a2285cbcf93357519fc060e44", + "a4ebab43a8b6baa1842d7afd5e2354401b7c4caef9a7edab8ad5b4d9ffdb8813" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "a02c0b3b32161c4705dd7f4b6516174e19b8d597ab52141f736e5f7d4c9a5100", + "vss_commitment": [ + "9a55100f998dd0ed358a37954290863893f68905c31c9cb490ecace1b06eac6e", + "8a4776c1463b5fb6380a32f3d074c0de444de000402b6b98531e0bc01fe15b57", + "321cda88edb81cf1a1a8c74864bf8bdd6dee1f7191a0258248b10825a6de3f1f" + ], + "pop": "a8a961fc5a72f0f6031141ababf6657af2f0b3d1aed7e9f68949d692fa05d4734ac6f371b2bb2ffae80d877ea96861e2bbf8f04ad94503e8c5a2b70472a71100", + "encrypted_shares": [ + "0ed913628c31508c325b4f783940439b9fce37b7a0b33ad2aab97b39209df2db88ecb7747ad9ef7ec5db532d855e0cdb", + "e5c15bc0d5e03fc833f98d75a1b467bb4b306b961d738436f7685a085697ab1058a1aba5f1afa26237bb01e27a67ceb7", + "7d8d196d21c35aa4ca66f16203244cd5472337aca5941a98bd70280b3eeb1b26838e4061de9c0a98a37512a0a379bc11", + "eeec37d30d8ac27324657bd71d6de6412b7d4e4bb80f6102bfb206b840d5408e2eceafac822134cb74a8740d845c94f4", + "3b6bf72122448777ea7bbb516eac1e15ee554df8d2c8233df835fc63841417fd060bb580f5d89ec771b522cd8e81697b" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "5cbf9e751c389aaec943fc80397b58cbc1703af7794fc09fb90ad8dbebba6838", + "vss_commitment": [ + "c259b6466b4fae98a6a8bd0505fab7f0a9dd207571ebf2675032a0b4815f015f", + "a4133524dd4c4ba5d54cd77b4708a5ebbbba1a26c1e651e8231b611b92fb8162", + "369879a4257b4307d637b2763dab9715ac263e8570a74fe06148dabb8293256a" + ], + "pop": "ea434f3778c346ce0de6f948f323b5634a736c01a71d28218a62f0988d74ae4a5e6eef7ad7a584d4231d110bf059ca2a1b484b7ec2fa088e1f85441b45398d09", + "encrypted_shares": [ + "1d0d7eceb2e89ae4dc1ef3c55e0aec326fb458446132210bf8918fcaa9424df2ac061b0ba9bd899274a3492f8c9a318b", + "8eb741bbdbed9c0ec6fa6bdbf79cde0241f105c27957d22b1cabf4718e197d6ca117197730bbecdd50f4f18fd99a1a65", + "c9de34d43d56c875df47f91afa464a7af34f23a79397b76e60c501ae1ad1e2aa2e868365c82274da5aabe2ccc98116ca", + "53306b1adf9d0bbda152459f0c37971d76d1651354cb6ce5a6e3030cc2abae8ec8b3ab2631f36d88e80d38d49b956947", + "fa05ddb574fb1c1d3323bd3e2edd9ec47538ebd0deaf79b1a494784a890ecee81e6b67e8bb2aa4941f2e62237074a6f9" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "a067c79b28615b91f8b2712ebc5ef3ac01496c6cb7442102e168a0a8b5bc2d19", + "vss_commitment": [ + "004a6fe76163a12b39f754c9a9c15d29dfca88b7ee4a176940c4ba006fbfbc72", + "74421e8b64bb1062d489c0056b98033450f512df8b6bea8b3db993234c05334c", + "a8e83652823da58d580f75de85f8c85291125cde85357b8fe07f3049a049410e" + ], + "pop": "0a94b0c33b6e826ce49a091d446caaee6cfb1f0713d58e0bef8b375ffd477d307f04efac82383dfa70cd11be576c180e2cc390ff5c17dda247d8eab29947a603", + "encrypted_shares": [ + "f9e0b1c8671f687930e8424d3f2746213ff4454f5a0116446356e1cd79a0b91dd28dc3267fe4eefceb2552254bdfe416", + "3422f539f32cc28c29f589513c7c368ed4ec88b7631983791ac72cb5988bf8accd97e6afac09860acf126b0bf64b754f", + "7f732ebf2612ae0a3893fe7344cabc991312bbf9f098c8e954683ea2b22dfd0575d00b6b4c319aa883b291302930e0c2", + "d5667c3f999cc7a9a5347577c3c5769b442c8398a6efbb3189a461c709b2f69485684c3e1b10677056656b76d98ab12c", + "f24bb9588220d4ad848f0960d20bc38a58f5e911e931ad0dad1b78e09bca0f020324f98401b81539c95d8a21b5b26417" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "b2dd82ff8b6548d0bcd01772efa15016bf7e8f83a6b92643ff29107e1a279538", + "vss_commitment": [ + "3053098dbe48ce6da90fe816dc1a24c35b835d1c2c98a6f5e0d29117f668621c", + "9a6786177d7945e165487a150e5872c8ecc459f540becde065dea50d961dfd18", + "b8a23454601960c736ac67e37df840796a7ecf5cd7e3322be82fe54cf2de5931" + ], + "pop": "9efcf15df1a52a4616f72b46ebaef2ea6a38fc10940dffc400e56fe111137f5520b7024a0a4d68dda47919143abf7fba3e96af190b965cf6ce5399af58edfb03", + "encrypted_shares": [ + "f1d8ed0070ea02e165bd49e503442797c95061bfec5d1e9e53c027417c7396b30cbdfb5355fec1759a92fe5046780c5d", + "51e8b2aa2f5dccaa6c314dc16420fc963544d1f5ebcb66ed22e668d943134fd56b1a8b2e41d73ce7a98801af8adeea50", + "6bdbc6736550e28f3ce27df16ef06d81a8c01fa345798ec460520094287c6aae241c20e22534394697ac5a3e04cbbe8c", + "f010f109d58f6197c50a869dda7c78402930f0e968a7005b6ffeb28ee27ec91dcf87c8b24f5e04823f5f29a705256633", + "906de7bd6e4d9e42853cd9dcd21f92821f1583106bf8a7cb274b2f74355a05550ad6e826a9ff1289f6674efccabef536" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "ece630031feb832b9aedae4a13faecad76969de2b60e0ce31c4a23107314a11c", + "vss_commitment": [ + "c0077971f510f9a59c6e2acb4052996719f24b145afb785886f225d1d995ff36", + "c2470fad041fa046059462d7b4070dc5b9e970fcb676605ac38f618e980b0e0d", + "8231ab4a8036efb232ff44f8244a6040a433d2c476ba32467f62377f7422f778" + ], + "pop": "ae6a630e9f2fed31ed765e403dac00c3081d7f71223fcca32048c08c18e25a07c275f6daf3afbd1548ae8180be57609e62b6dbc610ee6fc348370d4dcb09730f", + "encrypted_shares": [ + "e1e04b351409b459e4ed7bde99c5f29b4b1c56571d4fae3b32e9a53316c24db064b847cc7822afcf74bc4cd8b79ba844", + "d24ee149db99610b0c262ccaa40a3f2ce5cfc205238a894e4b2c922bed354e217ee5768d1637b4106c04d744337a8132", + "66b8cfff5105a409057581cbb1237e447b7d1b2d6a5c041111288f001a895d333046a813b6c6fa9e00bd7a34dab0cfeb", + "7b19e0dc3e0ceef3b7c04410726838cd599cdfcc28c7da7f2a3606833a0db3efe7c8893879fa1c9790a5308fafa76549", + "b090df1d7eb5620d3710614291b6f7a4ed31d21d0a9f626e533ec5b5537b934577bce5708e8f827e255e53193cb87cfb" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "653535bf967662ac857d654764a1b9550abe0809f415b378ab7ada025b4c2802", + "verification_share": "be53f58edb38e3ad67964229124f804350ef7b1665a1b2dd6a20eb2b04829160" + }, + { + "participant_id": 2, + "secret_share": "5d69230ed12c9e7d43e62b58540fff1a951e5a0dfdb119190f86339f3dae6b0c", + "verification_share": "dc3f9543e44f2b1db3ea4506cd5e0bc54162cb9f4e1144e7beaa89f499b3a93e" + }, + { + "participant_id": 3, + "secret_share": "0f3a902905dfa28f9a303b21ca3729b0c3f533850e8ee4e4848cc411018a5d01", + "verification_share": "d27e7ca67ff733af3048c939cc008841a3ec0c761d415ac842fce072f0cd3126" + }, + { + "participant_id": 4, + "secret_share": "554f67cb67539592379682e8820ef63e9643967028aa13dc0c8e8d5aa5dffd00", + "verification_share": "de380d0925d9b53277d69e3307053745a7d972ad62a7d76ef6219475053d7f52" + }, + { + "participant_id": 5, + "secret_share": "2fa9a8f3f88975861a1702ae7e9365c70c0881cf4a06a7fea68a8e792aaf4c0b", + "verification_share": "0e0be364b5ed7e1b454b28ef38be3c8c2de44324df78f764247d4c599584514e" + } + ], + "round3": { + "transcript_hash": "c80f280bf75822900ae0db5fa3a5a6802d6d3378f5bd931f1c320d2de2cbac6214e2ed9450c2b4090eca486c369cfd9490d7a184f756dc85fb3cc433f21bb23d", + "signatures": [ + { + "signer_id": 1, + "signature": "c61c8bffc8bf6f5e36d0e83ca6323872e399cc86c9fde6f6522a0a0373524f472aa935f7dd75810781fafb4128800aded5c8212474233866cf8cc7bf82da960c" + }, + { + "signer_id": 2, + "signature": "1cb463d85a3e01bb3de03dba657c6af16c04f1d205aff7aa15c0f47cbbcd367cc3bf7c1edff1d1ceb84d758f9f9dac7711d1ffab268da4bfcd18bfa2ce117d05" + }, + { + "signer_id": 3, + "signature": "baa1ec558e803de9ba00ef26ed09afbd61b485530b572759083e2e2c8827e736b0999c6dc7b5d6c088cf8ced35cfd53898db46badd67e2338c1d67b7710c2101" + }, + { + "signer_id": 4, + "signature": "bac14c3163a3b78b8258cdd19ead7eaf20909a3ab0a0f938c8a1e0cbeba647483646390bcb1fd370cdbc1c1940ce81f7623328ce1f2ffad33913ea1dac0b190d" + }, + { + "signer_id": 5, + "signature": "200e360c346d98071cab316180badf919b52de10ab16489e020cd62af125613b75b600f14768fef966c805f0be2775417b597ff3286db80ff720f714c69d9601" + } + ] + }, + "group_public_key": "08ee9bb0fc75a34dabe96f9f808d89234a7456d0563bc0887404fc9c0bb7b406", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "0ed913628c31508c325b4f783940439b9fce37b7a0b33ad2aab97b39209df2db88ecb7747ad9ef7ec5db532d855e0cdb", + "1d0d7eceb2e89ae4dc1ef3c55e0aec326fb458446132210bf8918fcaa9424df2ac061b0ba9bd899274a3492f8c9a318b", + "f9e0b1c8671f687930e8424d3f2746213ff4454f5a0116446356e1cd79a0b91dd28dc3267fe4eefceb2552254bdfe416", + "f1d8ed0070ea02e165bd49e503442797c95061bfec5d1e9e53c027417c7396b30cbdfb5355fec1759a92fe5046780c5d", + "e1e04b351409b459e4ed7bde99c5f29b4b1c56571d4fae3b32e9a53316c24db064b847cc7822afcf74bc4cd8b79ba844" + ], + "recovered_secret_share": "653535bf967662ac857d654764a1b9550abe0809f415b378ab7ada025b4c2802", + "recovered_verification_share": "be53f58edb38e3ad67964229124f804350ef7b1665a1b2dd6a20eb2b04829160" + } + }, + { + "n": 14, + "t": 7, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "config": { + "static_secret_keys": [ + "730091092abcd19d49aa1c3277dd36ff2d8bb4e6b91963e467dc9b5429e48401", + "7952975e46574ee2772d67896829e022332d360cf4966c17b895968b332ca505", + "50789dbe3bcb2a8cbe41d5f535abfc56a609e6453f5736f66a33bc031864d80f", + "50fbcd2cdf1f2998a9b0419bdf7197fd962d3e91e879546acd4241bc369e330d", + "af2a5f2917da0feb73154a7f87cf608ae50b35083d2853ff10ba26e133db180b", + "d5a659c9640847799436aa51503f31a70319a006b9eea946cf1fe32e99c8bd0c", + "778db0ae1a01759bc947d48b0ede7fa805c3bbd51fc2845cf4a9f3a309078a08", + "4224093484db587c8e28c372343a1dcfd2b528dc36690211d059b5d67491a908", + "950d4e827b4155528b4d473baf8543f1a932c0c28e6fc901e14a6287fcb94e06", + "233abff49c6f626d63645e0b7e158928a20256e4dbb8c3b00ce0fb1129ead00c", + "15452dce3d48fec02cb2edef3f070719cfcd907767bcc63132d1813830e8000b", + "70faec6c97ba6e919269bc3cbd296053e2678b246cd6608d2b435ba91d766f09", + "841952d79b7c9e7cf26430ca840dd508620e44efd48f42ad31224c51df246e0c", + "d63e9f455f758b7946d888402a9790a66b3fe4fce7db3dd04de5c4dc4b9ac903" + ], + "static_public_keys": [ + "9c75faa367177d035128f26e8953b9ce5cf68bb189edbd6d58f1db2c8dad676b", + "c46adec5d82f467c8ee56872c75ce12f7ac240a65d50c3fff8c85310634fb32b", + "2cae87df6ab209f4c3bfd25cf303aed05944184571de8ac81aa987483d4f8062", + "2eebf6f81abbd598e49297f2210e0d2b6133a61ae5fd2f40f0da0e54b146491d", + "f2b623ce85be496517df79c447d54dc26a45bbfd2622552c73cf108d8c68786b", + "9e5522df34c631caac8e30a4fba13d608420598b02394da9ff7646586e5fb240", + "2a077c782fdcfadcfd569ad965d317cd733c72feaaa3da996ccefac5c4b94b1f", + "e6204385f19b7f1d2f69feabc033cb416299bab36eba32abf9fc13a54bce6a7b", + "dcc3518ecd3b596c99d849c7670b708b1e7a5601539312fb7625af408a5b2729", + "ba0d0c4030c2baba4ca96512bce0317d135b3118fa68b43f55bc30ddcc75b602", + "eaf74ed6300e8fdcf04c32ede1cfbc7cd1caaa9243da90a463f3841114dcca4e", + "34a1222b4d714f514dcb50ff9a145e961a29462c33f2f04c42fe37bcae90b660", + "b4afc08660a033b2036b2a0d480fce0f03278b4a74351af6bb6e41b2a06d2363", + "b25ac7ad672ae828780b229ebe0a9ef97626cf5d9f975693ab3aedb5db54846f" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "fe9ceee36f73db675e10c709beb2395e7bc33535d18bde02cefedb72acf6ed43", + "vss_commitment": [ + "74297551a5fdb2d51f81864d0f1cfd69972e66d473817f081a8b686603ae834e", + "d4b5a70c83720b4f7e59e9a67a4c23a09044029bd6e56f79c2cd845cf7ae712d", + "50dbf8a45feca35a6b59d8fe518e59c71c3e788159722c7fd667befa19eea064", + "40caccd9c094cb76e513b6d3efeb7e5fdcc020c765f0e5b53bc60890a74a752d", + "7cc0f1fdef74d51dde122d2a2833b7e4f2c0e6e7ed37e841fd33cdb9cbfbbb2e", + "58eacf3cd81bbc0613df86cef1cc0050856801cd5bed4ba30b06a7f41e44c36a", + "b04544100db8060422c562d1d04ed13277aa9e90ad6ff426e7cde28692d5a41c" + ], + "pop": "80b1ab87efef720311daf39dab626c63a0e644c3b635a6422d2c225a7ec385494fce6a2db7757780973679f4c4e30bb23fd3f55d12cceb5ce54c4104d172150e", + "encrypted_shares": [ + "ddc8eb535927d58c34042562531a2054c57719eac93a2989223b3fe8eb19e53b4b4d02facef7d07e46f3dbdee9c07c89", + "66cdda32ef3b0a4580b8cade83ff05b7b2d35bb19c41f14506aa7500f49c4c331913e72524271b4fab745d6c4fd0169d", + "fe4a6dd7ebbaa12b4317f03e64e778b108a5b141d702779086de0efb88107f24912cc6ec2f7498629a0765d2024420b0", + "3ec886938343384039def7f1f4eea9f586ebfb99bb78d5944286d372e25094120ce647ec89b206d93029a0284de1f406", + "4aeae2a79e5eec76f23190f8ab27dea54817ab980ada04e535159b09108a1bcc8eaf30e04fb5d446d9554fcd7a477954", + "636069d89870fc53acf8a4248a87db29076d298bcf6c94f02cf60ec157dc97cb60a696a48ecc676adae48a36e148934f", + "3f36fa68cb47c81e251d712043846e1fce105bdc8c64b071460c3be830f31126fa35bed2b6e8cac714d480ea068667cd", + "8f8030a72156a0bd4f8c315d021ded4efd6c38dc2295ccdc4a9f19c1ed647c8c3da8d8047c5311b05be558ec0b04c9c7", + "1e05394351a3e73770bc9c84b6d91e05b4c5beb01bb3186813f3685f7bd4509ea9a5206f4487b404728a6508ad74282b", + "ffbdb39bb3d91c15d412c3b9f23f3fb73252f1e16e504980c126cd1ac04ce2b9e4b37ef61cb17879532fded614033ca6", + "bd3d80ed51a4be2e901cd59eaa0b8a91f58172e5f537f2675ff6fb9464e976434ad7b950000f28d90318568183ae1ac0", + "84894c5b53a7ee4d320e3970569ef2636e9dcaf37323e2f84359c205a8971d2fc1b32a079eba4dafb8abaa8a3c2f77da", + "25e98dc12bbeff5a2881bb718a6f3321dbcf12b2752bf1224104d7e6baa4bb3b3b48463b2f50f0ef6ed42c823b8176fd", + "988184fbe592eec6f22f58796f508e15fd454ee438bd4ae412856f4a284adacbae3cfab2611d916eca0b6a72cd11418a" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "248ab534490f877d3f876e08918b1591357ab8efbb40aa9cf38542c585fd9f52", + "vss_commitment": [ + "323f39439fd84a7a31e3cdd2bbec87cbf1cd20af5429d7ac8c838c05b0dd1e64", + "527bdae81f912bf07d0c587c33d950a788e1335f8118f218f3e571f36f34927e", + "5a33f8cdb8d3cb8d250d270ff04db6d502c5fdebcdb2cd2508cc01135e122532", + "5adb693f8517b1c6d9f0eee956dc46be89515a142163c5563d2695ac25c79a55", + "ce230c84450ad82f178c7ab5b4cd3a03616b85134c26a4cd6ede4264a4b04b20", + "c452fd06059de5f6be0e8a44edd30e78b1fa5e16fa3c4912146c1da2b753ac5d", + "ec8db27dade68f8def4991b106bed8311f8f1f054eddb511a19afd50d5f64d63" + ], + "pop": "601b0c75d11d05e05096ee161aa72afe3830f4e7713fd8d88943a6f225642507885e2ede8e2be379526593cd05873524eb2a8ac14d4874894c1b2dd1e4680c04", + "encrypted_shares": [ + "f704d9599a28a9722120fe0ca6d1fb1c6edb109cbdcbaf0aa6f810b7a5d9faa5a71ca23e0010cdedcdade61b1809b41d", + "c28ae90752fd36d689b223f36bc591b65c9be3a82cb97386ad1a7594e8cc353d68d6ef61ad14e98ebaf992ab68b7300d", + "36c5838539b4d32c5acfbce3fd010b1fa910b8594ca78dcad5ff494a02787dcf8cbe135a6b040a739588a81c06651867", + "8d712f5dd23a9868436e4a10f7ca07b77f178c0e16ed0a0b590d4fcd6f35820609a9a63c6eb46b5397a52dd13e827792", + "b12848c132313b2317479e85dc388dfc23b61ca53205f98e01487a6284496fcb47968f3f0487bd0960ecf111e8394180", + "7eac6df6b52356b3aaf2605afb286e95bdd217a1f27d5211250230aef961caa7adb51e8ba9d32b0344af08c84fdc0b68", + "d57f45df1cd21fac6619ddde48d07c363ca5b6f5d9f92d159ed44574314b9ff80526f6c5aa9397189b9cb0bf03e6809e", + "10bce2baab315bc72b54d35c5ef9167777d36b298b4317fe1e25e688313565f7f91f28233ebd711a1f97de2e504ff2a1", + "f37dee940c48ed6c462794bfda8969b96e368519aad76c92dd866cf7096fdf03ceef9563033815b3ae91c85f2d910dda", + "85a56fb86c99bd7246706885f4179ef928e8afbe98305a25943fed8c7bc74530e43818ff91ce1184f3132e631e2f0b86", + "62ac6df21ec114896a5d654950760d2ea03b452f610833ced760f18b797d9a04c4be6a4ab504e06b1528b17a98f29eec", + "78e90a2bd0b6fd2719ee7bbf47352314b3bd967d3ccdbcd40daee5a04ed4e1539d53b9c5db8d8ea21a3b28b084d737a2", + "b8307f638e979a92128f47156f0d143d6bcb3482fc52f8c23f978a2e09b5831ad0985452c4954303c00a5e029669f8e8", + "82f296df08621b8fb7ff7419ac807ae6393f70b1eb9260862605c198b6554db055a5ed51755046dd7f02cde8cbf9da59" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "58b307a269328546b4d340b6ece3a750d3e276ef9e53832eae659e5b6543b859", + "vss_commitment": [ + "6a7b6a56b1929addf363dc04096e909db0fb8a58f99eafbffd234d1d1ec94804", + "50e812a17c7febc998e7f43ddb7f38371fd546bae6a596175a1532899404c923", + "14a92e14c713f71461bc9bd30714e34817c37cd8c8bcd7a0286e0746dfadb070", + "7093184d8531909a0290b0d26daa17889ce0945115397785379065284c99cc60", + "a6041b9544a402d4b59947047fc52d069980a652437d3cc7d934a75bd1e8a732", + "44f810e47f763476b9f935c06feaaeca315002f2694e565d0834addf0119d018", + "be25cd603f657f13d71f523c7916e0cea1436497f8cbf4e519e5b8e06fef2818" + ], + "pop": "72d38d4db8900d523ba204137df6756dae5b6670cc0e1d8d636520b640a451438bcbd997547cad8a6df4244cb7c6609437acf7306f350c7a1fabebdb82bb600c", + "encrypted_shares": [ + "e24c11877cc963414869c143838245a37705bc347cc6bab8466a4f30abf73bea3f65d7e3bb2d62a3690101b11a2703f4", + "dcd7cf0954e1635373aa5d075db9a2acfee11189122cab0ae4bcf0e856d491b69557395fb6951887c484a975bc364d0b", + "2ec7b66a3ff0d8efeed2ab1ebff1dcba178a54cca7ef7d1b4e4bf4d8023d1f75cc3fc436e7cc8448305b8ad9c5db7a50", + "febf53eda74ba8f37b5c5d42341cabeb9f35070aed9109fa0630a600011557f720bdf3015330f00edeac58db2f731ac5", + "f9045e1e64720e53deb54491d2db7f523b4658e745b83a23a3c4fe6e8b6be85f0de774080634393259fe962b3a8f4764", + "36c1d36c25951b6c50f554aa532cb9a99b8f5995db7881a5d82d67799665488e84bab6c6fb6c8739e3d0f6381c204422", + "a79faf40e000ae45bd16068c28a428d05066a00c1f5d4cc033bec627f58f60c17caef63c20136a2751444747c62f5e57", + "4aaf48e560ce2f86af371ed20ee34f961bcb71782ff1a2eb6c45ce41becb565c901e3143b5a718c5eb395bab61095bbc", + "90ac119715356d656fef84207866dd9fa23d642f1987518568ef566b19e6fbb7f586be31a31d9fcf7626f5c92133bdc5", + "c05b21822e1d6c89bb7d9976504c2eac04b74877dc93e05da7a2a5ad31ecdfe288efea87ddaef2517db1a2f41385d1e1", + "c65b6fb6480cfc750c7c58a99d06ee9856d8f5571cb0cd79bd3faf6e5692963d7ab10ab4d94c329121d1bab5e880218b", + "5da0239210b171030ed0652bb2f517df01cb727665608a83ebb949b1d192bebac57896fa86e8e9f46f441f47c900c203", + "fe16a1b9aa3fa7aa4f5cb1ad96a84bd6dc30f166f85f9560bc5116990a82906878621f5caea036dd5fbcabe9458298df", + "ef7bc1be762120771e1f61b4a7bb3afb184ae6825b1ed38edc5670a7909574b455f8e4846f40cffb0d71e18905d2f25f" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "06fab84c478b353bc1e64fc55ccbf51a5c92e4422c0409015e055e2d1bf14415", + "vss_commitment": [ + "945fae2324d4c5c3109f0ef92b92ef44bc0b0a55fdfec6226997c762025f6b13", + "ce89a76689b72c72b1cd4421986dbed4722cf638517de8705f9a250d1fc0ca01", + "de5db96e8e3cd68d691c72ec3f02240c7e74192a33c9307fa0dab3d028bf7272", + "08e2be581f8dc85a0c8abf48cdd56f2d040729ba301c7f5422ebc635779af22f", + "86b05cc745d34d3b51a77bbcc6f2cb9cd6b71dee406d8aebd788d0c36036cd35", + "608515f2a3a32543e56932449e3b1e1766397f17ae4a18c34000462984486564", + "ccd4c63d5d8af45916104784f89a2e815b814b45e904cce816d61531b81be41f" + ], + "pop": "505c6ae8ccd57b286a9df1eac713859b98f8a3eceefc5527ca83b6c237c83e3e4c3521f4e349890e44ce27c01098c168141460463e438901182d4fcfcc4eee09", + "encrypted_shares": [ + "97db00ce802977499fd132aa6ab74c7c853f6fdb6d414b7d53c296a874e3850418393cde8db4c2db2f45456ad0e31726", + "821fc5c634cdd05b37f95b8c0e6b7213c37095d00c29437b325cc985865b952daf64d57e07b2a29c9e514b80449f5d38", + "1d54b02aa77018fc14b7087aa036224f99a1016e0d10c1ac0514464dc2591ae2db50f0de026ed578a917507af0a4c473", + "62d7c1316e0fe0340f96c1b1f68fcb283e97447afa85cd272f5b6d161bce21fe94bcfdcb59031076104b32076ade3d70", + "6e05ed9371afd76ded4686d73fff10627bd7826d4af3d611289b0c7f5b1ec30e0b1f3b6002e14cec023eef38c04ef0e4", + "9cc3ed81746257f04c51a239f69ceaa1f0531a50b125028657582510f2e233a4cb9d8260110b7349603a60eb6ba3089c", + "b186e87bbf1a2f91925146c3fa6909d368488ef8e44c23c245194b64730f5db2682f2a6b75dc6352895bb5b3243cd27e", + "1be1599bac2c8bb43b1b9f8eb34fc4f42ffd962286b10764c9e8bf45bec71f0e0ccd51b22affe87cc13c54fe683fe8ad", + "3fef97b187f21c38081295ee8934b38ea1a4f56216a4c98268d1acb7dd537f3aec65f2a22daee19fbaf780074e9cf92b", + "bff25125840cc66c8b95854f88221bf9533e9c0aabab902d6dc5e18632e254649fee3a7b77a1b6a354547740e259315f", + "03933be15c0be73f4a5d0ea4026e008dea8bb29281e8d49b423aa51df8356564c87eb3e6e96e4fd87236ff7b9ba03600", + "ee7485aaa266ffd3b69498859b978614d6a6bef493d684e37e86be9482a9c6f30545b2ed8dc852f3c3d8a7fd5a6853fe", + "6e3850b10eb770d468a0f919697390e24b37d58aa8bb49ee9cd345ce4c22388177274d3b7683bd4cabd3e11cf50df72e", + "f5fd1a568086c1124180e05db6bf7ca24b3232714418a22fa46ad018e83d689d0bba3e7778a00d37227bd9d62c427411" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "82fe58ff61eb3c304b4f9e5cc1c1a9a898a386f7be47df7ba08c854029a97939", + "vss_commitment": [ + "0ecdef078af2d19769069c320a1e78de50bef25d500e06a4cfa45e6dec30f230", + "f65c25d9ebda72152889a84b01380f0a3c7f6c17275bfd3e408244ebdca6cf44", + "8c1b440bd89190bd5fc81c3a2a45ef5475763dc4c344f21405d4a9cec6dbd800", + "8a5b5643bd9ce53d00504bf7b4b4746cc8e4c7b192a6abf356626babe52db54c", + "b63463adacecb6814d6202f20d4c0ecd8bb9cc83694a212085dab2b06ab10f0c", + "18d1faba366ab67eb50d273f2ac36da34e5cb0366bd78f9ae98b340c86b4073f", + "26b631d6640f6975b7a749d318f9a6d27b6d7f15466f3c08b96264e0f87f6556" + ], + "pop": "804ddd17f37e6a6119cd583f2d8dc901bbf7d9cff73df96d454e8fa7dcb2761f0515465f022a6727f3cb38d9fed50bb5c15a90fe387de7cc8f1d0e7cd9c02d08", + "encrypted_shares": [ + "11d6a1354f7fecdbb14d3cdacadcd33d42d26bc7511d7b0116c546300f2eef33f91b4db951ce74cbc8d420c775bc043c", + "476c4aa818a06cdd0187ae5665b19bbb7b719d668aec0a481a28cb4916543884f85e21f6e52df8bd68daefb9e0d88802", + "62213dc6cd5127e4080ff5ae165057f58cd629809b490906539821a57f3599c402a39b08bb605e9b67c476b59715b83d", + "05a24ac494b05e05b672708f1782b4c7abc4e4a70903e4b320356917c96a7198e6cfbee2610601847d009149b3eef366", + "33f08a7b2bd84a97786aa2e1ac09519701ba49f64b0d765ecd993ad9aba4b5bb8ab28dae32eecffa38d71c41ac1fdaa4", + "1aa44dbf377fc8317ce6354fcd28d1be3f4787f808418acc8da2e46d769774ac2fdad91de0aa08fddc47dada35decbfd", + "9fe04f62162ae98afad27524070eb11e5bf873bfb031e2c5991fb08501e4f207c57562282c6ecec2ab440998cc58156f", + "0ffc4e9764567919901a56e40e9782c8f649db6bdcdf76e96adcb133f9c8d9b2b27ad98b1335cc1935dd955fb793fce4", + "6f74153e497d47079ef381dc6ce2fed56667f49b3603b7befd9823a87c0a77e1845705352526bf9cb6cfe98c15579bfb", + "1f35b00c5233008c1e4bc5ecbb33b764794b6cad184af8da80796fc00c108e0c6b8a3a08b067d35aa3d67db521d004f2", + "fb54a178271aafb3cf5e3d6526c2647e20cc19340e15984d7d89443828883fb2f968e5a3d00c95309cfb0f3c11757b20", + "e5bbbcd698eab636e71d737fdb60e2c624bf605c33bf3b3f72bde75ac33b62201fd12bc50affebcd6cc39f6b6e993b33", + "d985f66257d308e529e644e8af13135d713c3f3244c81c3654fc379eab4c0d12434807c8ae67e9f317680ce02480423d", + "a94031e9464dd507135335aa6963fc9a612dc7628b7e5894ab3aa53af0face89dc813a95d2a83c955352554d053daecd" + ] + }, + { + "participant_id": 6, + "ephemeral_public_key": "8c0e4242a426870d07006752043d45c30d5bbcd1ab5b57a8537a536c1f8c5415", + "vss_commitment": [ + "62a4edb2031d9324daceadead796a84c83a03fbe06d020f6c22ff98271e0e56e", + "46806cd5bf86e56bf7d8617649853476d2e363beed3793d3e51001b1c1238f1e", + "0042831ca6ff26df865b713392470924c6a112ad9659fce6a26428d6e50ce867", + "62e50c60c1feed8a43b8e787f8e498bb70e77d5d64958debfe7aa8a339a5a501", + "78827aa50109112071940a3e90ad7ec1591179fd297afa79c6a596c0c2f97d2e", + "20530c06139fb016622ff5d25bfcc07ffc44e185db16354f265591bfc8aa3167", + "e64987cc98aad8802526307b87d6aefdf5e5ed61189aba341059de379d72310f" + ], + "pop": "3c11ab56f737a3444f155207b13396940f4512830dabde7bbf7373808eceb23504fd4b2e422fb7cac83fd13b388c7450d7026f66e0f7ca8afe1cdaa55d06840c", + "encrypted_shares": [ + "ee14560b391bb002dc8d97b30b33dc5d2d9526c38de0cb8abdfb09a8fdced4861009a6d83c6ee5e6822d036376d44d5c", + "c1d7f8492d786275e7b6cd3210cbae01805f02d86a2177b2e4ed6dad73ab982a4856655d217a5e8b94495ddac8470d95", + "dea77d11ea4b4ada913f0d63368b4867b1996a4f9df2f1d15a80fc04d95877f844d41bf17871683d8b49aef4c981d96b", + "0901b3aa7889be4d32d6cacc321a12e21b88e58e9804b2dcf7340034ea9d46de9379ca39e1fc7982b6da050a4651d6ce", + "753c49ef68912b296462ac8e158b3f4f192e4fb6535f77398c70f0ac5c4ed6bed066b4aede5057c805604d706e93ed93", + "c91831faeda174918ec46a012eebcc770228b1f47de2b673d12219f6fcdd92989005b2c165f233b20bac5762d0b7a4a7", + "598b0e01598ff33097ba2fa5ecd974feccb8e28bc8d7cf8347fed330a0b11ba4d90b2459905414eedfbcc13f4d92738d", + "1cfb944f73422793218a5b42a76f921b2f64e3f92d1763b4bde16a43d222b3d82cc3811cd14dbafeab9d847217ba5bd1", + "3b4d83c5ffccebce8c9995c6b7f9b9a4a917e1fe9206b76747a561e7015c4ea403eacb0f2166d0aefef2e33fe3671fc4", + "230ec27a464e3a9590a987acf12f1ac04e4c4e4cca52427415b2cecf0baa17f32fd73169c6e65eee4634c01999212429", + "bf9152f8c95aafaba2c945be40d5542f2528f36349d7658daf13b42306ab42d5f5fd0d457672432d31623bffc8d8c5ef", + "448fe0b978e91537e1d3b2d3156786b93c8550d27ba4c3f8501397cbeeb9c9b2712cd006a3fdf11b353e2724f84603a6", + "73663876e95d1f1ad5befbbc8488abef105f6243a2f598fb3a31879dace2fec7d135016b99f6a801a746fd5c38b3fdea", + "fb4b1652774eaa6b6084e68282724bbafdc4f7f27af8cfd7b09ed8684e79f731562524c59d23074af0a7804b5337e31c" + ] + }, + { + "participant_id": 7, + "ephemeral_public_key": "0a5f5dddfceb248d3b43626d95c5a19bf0f6a411016e78c0075b4ad011dd4602", + "vss_commitment": [ + "66b90a0c2b628f1fd5c00a9c563a16a8ba7479f0ced9a6ba384c828ea6dbd64b", + "4803931ededdd25a6e5958323f2729b0f2218cb6bde30fbed4a475ef49beaf78", + "7a3ec43362b3757c261d7cb840159e1808c173f739b4fa5b3ab4df325a82d110", + "7a7c05245b9d35fb91a8c2bfefa750350eb9929045721ccc70719194b0d82e04", + "c4e3195d801f9bbf51777052c8e3fe9574f23834d4d1292c9de823ee4cb4850c", + "1eff05c5646134204b9f295de0d331286f5821e9808845c45c9f59d97441eb7f", + "fc4a66b510b80f5b71389af3fd3ebd30e07880c41408d9a48e58fe1e72c6842c" + ], + "pop": "043194c2c7ebd9d978e713bd3ae80a969fcdb7c107bbf517e822a7d07a910002f6687e2b3de7c4fae7fc88fd53f6914bff1f8ead7408c60ac133b0f6fb2e7b01", + "encrypted_shares": [ + "7d4ab54ab8085a92e577acaabc310f57c2e205379874e8c28f8728e85cc0a1b955ae2d088788319524a8912393c1b857", + "13881f9751de218a5f04a7e0628078f695e812f947410667cba3ea3ce43edad888d4ebe3b727cb4c60815182ffccb59c", + "2977b964afcd66e97d7318764c38095be96d42b3ebde55d1abe8eee2f1e900a64c97644e3d51a5c7a82d9e867ad37666", + "68acf7f8adb6cd05efd2e25aa287924ebc07661e10d650b2e2f97049d113ed5915b1641f4b8ec7ee7d2c17fdfca323f3", + "3a6e2853ac3604cef9ef464ca5e4a7fea93bcd29594472e06e278e6d2c65b5edc719b2bc3a087f7f44ceaee576ed1e00", + "dfb1efdbeb0a7fd45ddce2218b916e07e379950836b3be364e8906fe329b3a00a2872c0b10df67b6ce7c087e24494592", + "1548d28babee7a38e1882372954b82c88abceb865504abf44e64d187cabd762aba3ccf07664516b7c50ec7f100ba412e", + "c757810bfd93a939cff92f3d57afa7889ef36b795a7f29e849af17e67ba13a7e47a2b064dcfae27e0a509e7739263bd2", + "2fa81a17fd7fd0e6399c13b7b947ffab0931a9b846af98de755bbc38478a28d223c8c70abc13f097c1afd6040a7d716f", + "7e64b8a667a2bac4a5925932563c5027840f2c9b167d736b48a752fd11e0426891ca93014496ca256d0a4087f49b8ec0", + "5f7a296e2dea921e87dd1e8763c68bc899bd15cac9b3af2dfd44031c38898c3e5c9bd6305a78977a9e6327cbeceaa800", + "25e4ac366726441c488a8b42a6af4a47d5c9f76ef95af527d22d92145520b2b92a102b582e0416110066a05b37c696de", + "89866279b78c5998bc808eea90fe1e60ec4e12c804e8dac34c15320c88c5c9f7c60844c773af3c051fa4466deeacf844", + "c895a57e4492e2326b9c21201a13030922cac4c098ab9df813f52dd7517ddc4ad8a24535c54958914bd096f54bcbcde9" + ] + }, + { + "participant_id": 8, + "ephemeral_public_key": "5886bcffc515f555b16bad68e3a2707fcc5dcf4d81a9a8a88a9c4308f6bac13b", + "vss_commitment": [ + "9a10b10c8352e33e19776701a31c3bd934519dcf61c135b75875561a838c6f5a", + "8c789ab852e400fbb365cf5d6ffe8e3f952a7c980c7e387b551b11343df2d724", + "de5c9fec0bb2e9b86605ea20a598b6fb71e15ab47eb8cfdc1cfb6a95e49cd863", + "686a30e5613ca84d3c64a71ae6838f22c81d08a060139e25557b7d24750b3750", + "dc4f90364a1de8c7a11933deb407bfeb0f1d98d0a4a3f36e6d58d9193cc8b75e", + "ca20eae1813935b73f18ee6b5520d23a1b511d40e5ff95b8abe405099d88ac59", + "30a8c89d12788a541694ccc8dcb9ba7bea235381e2cfb6924fd262066458927d" + ], + "pop": "ecf8637b15d7494bed00f93bb13207f5cad3c3d78c7d87d1e0a1e3077a363f5e1eaf57bff199b84891f6a07415709fc1918ea94df93fe00ceec81b016ce6b307", + "encrypted_shares": [ + "46a49e24e1e9ac4ebdc6220be14ea1efbfcf02cfca1346ae5f512256c371c112bb775be994ac2a0e6be9bcc5a1bcfe1d", + "78b811bdb8ec6075d102f560f64f1e64db068437989fa89e5d5dd32bc3dc87efa1717b917a3345407ed2166505d9283e", + "b09b00433f6e3bf5a32d677d8f533be9761824b697fefd0cd037c86aa2bca637008066022d4346807a72926dc5f1c7ea", + "4733d82d5d8294a8b48dcf18126ccfd9c5b6f186a09bce1686a09a82254e8ff6bb4e2706ae29feca4c207966eec6d09c", + "94a8e3862452406abca7db4cbd89de0b5d9fefa9db3baab3267231a70329a525523d384fc57d9ca52918e6e94d1a1ceb", + "b53693bfe17ae67b51289d4d54df1c0b0a1cdb8756e13a19134d5db541676cf30fd147d08198b06916d37d9789838026", + "8dc2dad45dd21f03d8d6fffe84e4ae6584d5104256164d427809ba197ea76094620df9ed12fec7ac9a21a75b8f58247a", + "38b97e1f65669b93198fecb28e59da4ebaf7a030846c58d644d9b0f07cd5e143a63edfb5d525a7a539a49a1ca85e3b5d", + "e3c8e3970f7e3a4fb4fe7f0838fdcdbb36ad18c4e5f8a966566cb346c56beb4f912ab15048d781b3567353290447f99b", + "fcb58f4c8724e7b8545604839940261c730062ef09109f11ac11eed4ec22d0eefc275ec81c7d4fbd0e0732d62920c67b", + "d9b3013bb0b7fe4308a1c9c9a9e4f8ee2a23cc1cda23783ad8137e51fc970bc258edff26ea44073dbe8d0f170e2cc906", + "1f5ef745a074d4c08127ddc4498da8eab2eba8d66e500cc31ba59ac3ad12abca54ef63ac2c29ea6089e444372a391212", + "23893ad02207361a80116917935238fabed18fd27eb83dffc3db95aee21b76ab9c992180fecdeaa73569b47c4643803e", + "bbe35fd7de1c9e386bef8c8c646ec4763184e330d41007381f03fe8a7f359e1753f507ad57a0aea1e792553ae62cd7d3" + ] + }, + { + "participant_id": 9, + "ephemeral_public_key": "9ea962570a4f53ddcaab89ba83a116afeae14a0e22c076afe870e8aa036ce51c", + "vss_commitment": [ + "dea93fc27aaed692abde4ee2cfa1e03db707dee3f645449ea539e8a25391127c", + "b6aa5a516eacd05329904fa7030da2e51c4f0d38a7019d5cdef33b919be93655", + "1e3e764625918fa274bf24e4c2de0223bd7f3fd1d5621a747e92853202c88532", + "52981205f0e9ad000e8a9076cb8f33b20a019f2270ad76f4991a0282ff75fc27", + "7a3e8ce1aa7b6a118072377e9374d46756e1e6addfc915d5f6060d6eab077837", + "6224a7a36213050853e5d471096fb8e665a603bc0a7b022fa4941dd2e7d32d50", + "0e1c81ceec8635fda5198938f75de4d1b6ee495481eff731de1a0aa302694f55" + ], + "pop": "d079a6282e31cdc99ef3a7ec8c785124b7eca10b9c75be9bac4b2ff5d529395d20f09e46337487533c3e6dabfb8de9743c05fe7d1d96cb675e3f194b191f3a05", + "encrypted_shares": [ + "2484d66cc4694fb4421b7a7ccf0552f2329e5f3763ea0a0e26bbade96382f77048635128f17a5574f14274a2cf267545", + "0933c5e54588693ec358d142db09a3701cb4c5dbcff856a2a8281aaea307399b040b2fd59e112012f492f429e61e7791", + "f2a6b1a6886893b26772ef7f634ad711b1d9339c8e816dd545d2abae8c572fe931d4fc2aa1151c81d70f122e8bd5bc84", + "5f0cc5131c4c4390ae0cdc58491f45d8dacb9390a7b17903a895581d2e35706f0c86bd17b14d2d7d2428d7bf86d7d43a", + "37b3c70bc80f62da57a68af98b1f84d48ae5cf809c8d3f957a193a7c6f31eb7c6b55127729e31bfb74569e7cce09b5ec", + "fccef58718628a3a72f5c9f540ab1cc10d654471af0aa6e29eb55f5b900da4cd56900c937529e68db8834f5368af695a", + "173d49720830425fc1675a9c6935fe6b5ae2295759c64ca379d1d6aaf149a0590d67284f90a58ab31a81228e1028df02", + "6542c18c83026d5f24e5db18a640281b9892e3b44b9b236dde13a354c2bd5b96d478f0a1a59fdf846cc33068e0a6e8be", + "18d6ebb4bfe0a92f7b57f1ddcfb2998ba93de5491e3d363ed74051c810b0e3a59606bc8313ad5da784d19ce281e52018", + "d06ecc503302ad412947adc9cc2a77836db5ae6e05ea258bc6a191fa588e2e86f2c573821063d05f423ca906238b7448", + "84b0ff8c539cef426b59f069b2890cb0e1e0ffe0ab545e43318441c46c78e4e942658d1d03cb90788ee1c88c0b811e14", + "f0634d6407cd7e921e1b4caa1b5c0847e843fa935d1f79f6b12c67149428ebddbd9038d8377fb3db766a7b4316e77a00", + "d69d7423b2ba5fd102db0e892bc37e1995dfe7da2742b3319ea9261fc14a8e983880bc05275f03be9c6cb515a921e334", + "11133c86bbd43cffb1219c0863bbba348ff08494b997fc104e14dfdd2dd8cf37f18bffd533a88fce96f15f27e7c56cf6" + ] + }, + { + "participant_id": 10, + "ephemeral_public_key": "18fe3f3194d835cb34cf1131166c7ddf58affefe55e37533404219f20f09307d", + "vss_commitment": [ + "e4dafb7dde0c0e2e1d0c678cff33c220b29b8fb6fada8bbe095b030aa2d7e74d", + "d8985d7aa7b022b58d9fe27920fef4fdcf49b16a0ea41b6facefcd00ebfe2a5d", + "ec0c324ee31a405d09256e63a208db02e132ccf42467e026cce1ec721399ba33", + "8c50eb0629dd3fa7fdb599b5a22c14d0af96a01699176266377c244184788a6d", + "ac5066a57ce817795840fe727834d21ea0d73b035659c97b187c9fffd347b231", + "9626df7ee28877472222bcebfe511bd4e8294456625041c35e0c7e71824d1d1e", + "3e9c350a0d9bef4384ad0ef34d643d9814c2e0081292e1f858737e0bc1785d03" + ], + "pop": "66e9e778902e36ca48f6d8b6aee925ac0c062a1350a9aadf68da9569b6ee971b0995705485ebddcaf37383c5219bdd1d173670515a21cbb5f361f7c40ff0bf01", + "encrypted_shares": [ + "b4d6c7af725fea2292e9595ec832c18126a6df504281a06ff4a4bde62c27529ad065c698ec50a0bfa85640e506a8bbc3", + "3f5bef28f4ab4171d0d5a860eb1c6befa882b62ab5532279114a8f59372347739ad1b9e7c7dc1d4ba9de9b1da0c9b6c6", + "ffe2f7054692017d507e022e5a66c182a8f9e87258ab3d1e6cea79157cc2ce35e74bdf68d93669d6be007417953b2d44", + "a3e582fb6d369dec562fdb8b200a01db683db1113fe16edd10a4dcf08faad59310ca8809b65601171b15fb780e90231d", + "83c761f2a294e98e2cfd50a6269bac99ebb76e9ee42432c59766ca7d5369d478bf2b7e32ce233038861f442de02c5b29", + "b9f82ea4f3506ce38f217d8873985b06c9bea5c14510670d115904c4969b571d668ff5777b33f941d5def2982708a321", + "cd23a01cc01b873ae25ecebc670d247dc9dd131edf3715bb91925b6957d2c21f10d17eacd054276296818aa45153261f", + "3f6b4d28e6fc877720001afe9be232443528b8de799e71bafe74b7151188ca55e31ef519ee2cee697a3f494da900bbdd", + "444f6e6e88edc7b7eb11d3317676b95fccb9fdfdc7eb242b2ae08e44989736ebb9c972ea18c9cfce9dbba21c2acbd710", + "3b37eef775e7038c55b9ae357d7d194379d346c43b7b593ce356ace46f1db26767502119c15afc567ce66ab64add00d7", + "ebe9198d8538e7da67fa744de7294ee980367e7904afc9d011b63da72c7562a11ec2cca3d3a0291308c7dededc7d8d05", + "fba8b993309747994a8454d2831b080cbe97f03407094364aa7104234152a407c6b1f95024fe3545b2e78ccaae51c2e6", + "87012ab3e8dee2cc8b91baf97c2afc921b82dff101cfbdd2cef1a49090242ce9d152e9f0048b910d8252dde68668a84f", + "510be230cfffb42409f683d31a4ed30891c791e5f8274edd03cff11be56078e91a5af23ae39eeb09ec9979936236405f" + ] + }, + { + "participant_id": 11, + "ephemeral_public_key": "4aa8771d1da3a55455defae91dd870fda4d18e0dff71863eb40356ff1ecb042c", + "vss_commitment": [ + "3c3a4b77277a95efd83ebe9a8f5b1092ef2dda8457dc846f20fb2306b4e14a73", + "84f976c4da2ba73b2ed3eb4e41466a291dad677e87eeb3b56752e3b11d99595d", + "0690318cdaa9758fc5b13a838c4a8d4c73c4381bc55a49756a660c4ac56b4a32", + "ec1a8b06df1d62dce0bdee3adc91579977a5b00de138db3b9074dee51ec85a4a", + "e820d12a3345f8fba346884064ed5d8da52c10a4f4b62b3b0274902f0b267c0c", + "5a2c0e6fa1163d23f694bee0c2002d80d2a1e9ace4c9cd46016e49d61226741f", + "4e041b24b81c22dd33ec86fd7284da17544dc80bd9b8aae014ec9955ba127a79" + ], + "pop": "b04ef68b39c2c0623eecde73e63b81c5ffbd32f128004cb5e6b304d028442b5b3a3a5b5b2c6dce885756c107433520bf7d554a6d1082dceb7026a95f2c4edb05", + "encrypted_shares": [ + "534748e1eba318799b43965f829df921dc09862bc3287575477a149c1fc3452f249b56027cfec602c7936a616111c196", + "302f862a40d3257b690838e1306161b390f5babb4b6289edbfcf21389de91d6fc0c8c2ada80716541edd64ac24e3d226", + "6c61d95e55bd885e5e3cb88d15ea46507467dd53495ad1bd6a6cdc0790c2d163b2b52fb77ed2aba9fb6cde9b1171c5cd", + "a71af891e5900260a2e4b4bbe7bcb89d1a91b59949e07a50a7cadab86f17582aa0fa97ea01fce1b58d1cfbc3b51f6990", + "337cba6d612be12af0329926b140ec654e278a9f56839424470329c21256b0c9861e761989a1e20a5b1f88f03534698b", + "4a2936319c789ed688f8afa6c0ab7d2bc1e25da44cec166cdd28fc120f8c1f3319b58c4a6e33f2c2d86752635ebd514a", + "a7829d3959ee681882e15454543247b72d295e2e37531741bcd578971a65acd6114eaa5b3112df7235ce9d754274aaa3", + "ba96b1b5496337e08ab92a03835f230377ec155b474d0c4e2a4ae45a19643a5209de9f3f68043fcfeed77695ea5e52db", + "5f1f1dad94e3eb44cec0a13ee264bbd013556c0146d6a5247c91e1d73c11d8fca88b0c9e27b338b4ef2a1cea20dec5f0", + "ab5510e23f7ecdb408d5d7c7ae2c7f4309b700859c96184c0244a60c67384fae72afc12b53c2576c4209ce6a6949e9dd", + "fcdd43a55fa2873852a5940f24debcbe1cd6015cc80476c68e04789c8cd5df5cf4d81ade721f5b44a5cbd22d5b691e38", + "feb6e59c30c5a0ac16ad567f25bd336c41a1e07130187c467fa9a18285b1b334c67d9e4548ee5ad40b2e97377e0a89e6", + "a96f5d059f28f143863388fe8a99f498eca3de676c16534f97aa31d880f03442798af0b54ebffbc1b78dba4d75232a09", + "7216e3036564d3b3ea6097abecfaa8c7720d1dd618c8104e92e851d3d3031617a4a686056c4e39b5fd1c0cf21182eaa3" + ] + }, + { + "participant_id": 12, + "ephemeral_public_key": "7a4a54deefe85e69c2a1a6c80cfe1b2c480d3bf660dcbf62570c2232f8d38962", + "vss_commitment": [ + "2089a5148201b05fff9d63fa3732fc0ee37ef591f439befe2da1ddab46acbe10", + "ca7f4af6b82d77cd78e56eec027ac7623ac9cee7da0bca2c308043519c03737e", + "5cabcfa39cc0a6ebf7127a1f79c064aa8238d84885f5863b78ee5d8aee651e7f", + "6c44bb31c5cc7aa072b46d03c017bb4b360456040fe02c4e9e04037fe1e4b255", + "32d99f1c8326dfb75ef341abe24602f17f7a01285ac7299602614742009f1169", + "c8aec26926a3a82accf19371b19c22149ee8e4dc2627921fb5af94ac4251c24b", + "acbfb7996f507ae5800ced79a5bc163ee45cea2ed485431c1f9c5c67227f9d6e" + ], + "pop": "c4faa8d46b816421fcc59bbe41762ec3894d92fabb806594b636dc74a3305a25d10d73856f9c742012f6553ddf81ab25afc3de19716ee379c394b2609beb6304", + "encrypted_shares": [ + "d2316221a9e05b3bcc3691e04f008812f46fdec19676564c8fe36b93417ebe9f1baff5200e8def8e1a8ab23287a8dfdc", + "1b4f919052a2996f4ad196140756ac7487638f743662b50b109417943c33c944806f9207e35fb5e16d6ecd8153a76456", + "90908853109c03de2ad9221caa696a62a2f7b8ff3ea6a69730444f542bdfe1d75f4c17b4e24377fe407c5f2e3399ebfc", + "bc1eb605f542a705cdd228d3c6bf31ae62e57d72e4cac13a365155ece67f079593c164305b25f389c0a03191a87a2740", + "b05990fb65f0941087f58a2d17c624b2f3bb36b76aa35b040239b902a2d57a7b9998273f2d644451e603ba2b17f8c10a", + "c3828c89bb103e82dc15cd2ca93a87f0001083dc5f45048f959245daa1e9c0b83a1b76bc60f810038ded69b8cf77f246", + "01e8a1c2205c71c10f346419934bd222ac2d7409f79f466102dd431f40da43d0dc24f8b8fa235d77a0753b404d8f4ed1", + "a1c41a8fb70d444b381086ec14c9fcba78795a7431cf29b3c29e5658ebad664da353281bf4842e67fca1d3b9989d40d8", + "a04da8f210e0b965dafecb040c613594749b1a7602513f6bcc580ac6750fad435851b754d2893ac5d56ae7eb7999ede8", + "3d2e01558c3562d80198f2ea032c30a765cdc8d7c64dca281132888e578ce590fd0358cdfae31df353246bbfa923bff2", + "99738a93ee592797aa3839abefed22ac7ebb56d1feb76c101458dcdde1068667ed66ac55ead510799681d9c4bd775518", + "1c3d3cd5e91541017b6666ace9faa68c06ccf4abe4d96824a6b38db346379983181dc28023be73d39a76789d0cd2d186", + "84d82b53ca907116051225551d9541fad6b4e049afe67dbc367959fb5cae620df64ea2cb351c58f3cc9319f58930989e", + "16ade99b66726696d2c329991f889a9cdcbd325a97f4e7fc20f8b99df6556e2eee40883ced8eaf26f19e5f470ad4848f" + ] + }, + { + "participant_id": 13, + "ephemeral_public_key": "8ed8fefdfb97646fe2ddb4ef8995ecfc1a2081e3617fecc6834c5d6c7491cb4c", + "vss_commitment": [ + "0e2169f91417e504a33a6b4c11c5870ca4b17ba224a5c867d89d8b102d173505", + "7a216236f52ada14b934ba38162949a4fd44ea05b0ca2c586c8d36d0a4cbbd61", + "48a6e85c1e16dbd8a2b6b88ae88896be7526ab70f0471ab419fdbe7d1944c001", + "38ec7ac86f3cffab66075d3930beed6f50cbd485d6542c78acbec153f1e9623b", + "e4b827606b6d7992e30febc62689a4333e7960819a07d3cd207b0eed0601ab72", + "549b2fa7b6d3d8b4dd2c15c682df72d23b0d097597fe52d3c853251f2837ee20", + "c4efafa958f60f52caa26b0559614061eac9a50fec0d20db1182c9400ab99e66" + ], + "pop": "a6929782d683728ddc9354483d331aae1f35cd25461814f8d04b3135b98c5a65649e75fb66e25be887dc1d60a2c419feb681d9302f126fc0fae0146c8da97208", + "encrypted_shares": [ + "d752d6c01831e275e72b2036899579a76d887846bc5c7872a8c6ee6c1f51253e21fa427fdc23404432f72f69279c378e", + "c1aed5e742817eb658a31c756896dbfefe8ab3fddd70e1b8017e06bf188f54f324c923a6b90097c1d167aa60b9b8da0c", + "b16d5c6d847903be8e8343e21873abd01217f20d599f805ac31105498cd08ecaa156e1e607e879010b6bde2c47995ffa", + "7606d322d2a4bb6c4d8ccb66d13a280d342dc8a38e071efa4f70864ced3d2535d151d1009d440f8f524fa8486b0e1307", + "e819cfb1bdf0c37951d4dcc41980d50edee22930e7440781b39b27f8aa1764d0120d7ac5978661e790c48bddb7107b51", + "0a6292d186dedb257a97ece6f425b9cb61b54eb2a5aa3e8c218196a2f213dad5bccb89cf77f160cafe73e931b29281fc", + "a624530e6bdb7e7e697014820eacd1c127bf2319d602f8d07ef7d04acb5c707101ea3c46112374fada590f861a17392d", + "447aa97808538df5ee2b764b8d76b27f4c1b3e8718bc4412e8d12655b53581eb3c68532aa8cf92b2873ffeb28a7282dc", + "2bdea0f99b7bb8abdcc76b09c3e105013d3c31ab651ac85064676e9f40b57567427344f6a0a7797ffd7ae0a93abe9aa5", + "f967dde1b87d6a587ec735ffe5323363cf4f3c23dbc9a29593ddc0ba875531197eef09d5bad41a392661cf28d047a166", + "b89be7016787cef2e77a4a1a7868c131dff0e4ee9e9e65eca5041d1724c9095bffc910186345f07e50f2be27a845445e", + "5b5a994f5e3d6bda91766c22fa406cd405d97450cae8124f375f54eb45521089fac9b0a6ce4b4491a4b701b2a026f592", + "0372ce7a30d5f27fa80aae142f80eba7ae5a109d55e41fbfb0a6830e034f48d33d6c39e87d90966cace57ebed0a3201a", + "6dc72c461e789caeb78dc452d0910d60038c5c9f29cdb245c037fc71c862e297a246a5d4d0ab87ffdf9d20c2481e9b36" + ] + }, + { + "participant_id": 14, + "ephemeral_public_key": "206f3ef6e28c2707a3935ae8872c71e13f712ffa6b7d8c0b83c4915240fc872e", + "vss_commitment": [ + "70842599803b790e10cebc82b1f91a003519040450d2aa1927ee91a49382896b", + "e06ddfddb4dfcdf552db11febb5d59d2afbcef2a338248e0f49fa0f2115ef070", + "fcd8d809e89bc45ea42269b0b3a7efbeb2f27994bfb07fca74090b993080bc18", + "bc01f8a130ef1a6a3c8a61621303a74ff8358c27a42e2c91f20b4b0a8a476d4a", + "dc3f5e540e39a7c751c4231621cbdfa2b0f1312aff9bca42cd0d61ef925a317c", + "e411b0f2a2b6d1ed4ec45421ca84af500400883424ea8b8278f8e11e4e86df4b", + "a2c4ccfc1e0e910855e46bc8a1ea8b63523767e8f8a27a7c7ca53f05f4b1e72d" + ], + "pop": "2ad22727bea28ab293d84ea79f4c13ab2555b1f5689ec1d47802b0b54383b94e3f16dcfd69b62566665da8260ef3ab98dca7faf989c8469c3e6b0f87f3c84107", + "encrypted_shares": [ + "976a512822211036ce9b16e708b83f2ac83936395170f552c7dfa18c0da8a52eac25ab43b0e1d8b25541947062d683d9", + "632c8ce89e9f73fbd9a39c51fe73d262b18b4442e2edd533286bfeca24f5a38494196c4b09e891a9fa2cd65bd234c8fc", + "60fe69da9a686d0e2cf7870f7c0d3c5f36b708746f8891275a28add44836d659490fa9e7cc138d273bedccb7c6754ebf", + "48868573e0d5592d1535b936819b17d1ce493d1dc5369e564022a78be88104551770e6cac0c297a9b3e574f7c73340cf", + "432b5baa3580e1cfceac8f03e8aa870e57070a13d83703d17e2caeb738a093f6b587d2e3a49a4557e6f11e9b00518886", + "9db63ce58d0938c35b78d51816d504f38afebb3afeefb6372447dcad66d89665bf69be11925552a28ee9961bc0ffa830", + "66993cfd88bf6ebe32160254a8cd2314c841c5670c260725df40663863b16f75da17b9c79a0514674c92a8f3205762f1", + "3cce266cdc43328b8457359297f45a40ea46e6d64c70583a02b4fa8c514bf3b555b902f476f4a60ae0effc7bedd30cc1", + "f2b7e2468033402f74aef6ce5275d48f57b979a507338b4bff914e13e242c9f388ec81f4797565d0ac98991f94b099f9", + "3b7101c1196c03a3c200471ede819904361b7108b033f739a82e2bcdafa2dc5a1a81f3bca8c2b9e95bdb45c4293b5811", + "2ab209c59b93b79f83e3fdd7fcfa451e53e2f65f789e8df979ae3496203f089c0735c1f00529ec0a701eb489ba593dbd", + "55208a72c9eaf31f874e6d3940fad5bf3adb00e04f32cf37cdaaca4fac2d13f313efe8fa29b609196e01c9f698da43ee", + "42e53eebdd1811b6b80350bd6e0886fcecefd86d8660798de820effb9fb1a1c88fa7aa582dcb04aee86499223c8a35b2", + "a4b86a1bbca0bd8f76b6b5068e45c2ca026433eefead58a7e0e447d6d523cdaad35096f81f2a2e1078bc3e47995226d7" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "7fd318c7a71d543ed87e2b8df70d434f3bd4406a0e754069d4317327a02d430a", + "verification_share": "9a8493d78c60dc0caaa2aa294777d9f4db157e4b002de4f1d5e5fdba7750b24b" + }, + { + "participant_id": 2, + "secret_share": "302e7de8da8bafd705aa75a1dd830603fcf72c0f28e8e6be16cdc7adfc4bf304", + "verification_share": "9aa8f5385334269aca711a4e71f0592483aa2360c3a348cd082b79115739507a" + }, + { + "participant_id": 3, + "secret_share": "3105eeb75e94d6b40a61a734864367a4bae92d3a61442aec086da74d2fd31e0c", + "verification_share": "b893029dcba9b6613f04a2ad54e526b1e229862bd73ae49c741b1a4e5f232b2a" + }, + { + "participant_id": 4, + "secret_share": "53b15dad58d84400a99f358b930494dd6169d9023f38c3289b7f4921b638c40c", + "verification_share": "10491f9a381145194bb1c08cb751d4ff83b6af889ec3614c76c99fd4868d8a6c" + }, + { + "participant_id": 5, + "secret_share": "0e0472f3a660a898a43501fa72fc7f35d9a9a54d489399d0646a98eb9d021e05", + "verification_share": "f0c445435f26fb3ae44196056f8c764cf14f7c4d0a332b0ba2d07c5fdbc8df6e" + }, + { + "participant_id": 6, + "secret_share": "0b7fd92a2a2f819a672e81d62794a3934e60b30ba4b5b478a86d8b0c25b6cb0d", + "verification_share": "3243e6ad68e9e1eba8225d08736319419d758658127c4e3679cf939018836f00" + }, + { + "participant_id": 7, + "secret_share": "3106d473ce3ab2485942391420b74a60167b0c1fa5585ed8f568e98c43980d08", + "verification_share": "12ba2e8f7f2606d88eb9067e00b3856ec4402c24da72848d64e2880cfe491e68" + }, + { + "participant_id": 8, + "secret_share": "f21e42ea136b3c2d23bced61db523fa4238057e343b077866981744118401301", + "verification_share": "f2b087c15d8443e6697d4b5da85ecf8d536c266355dd0aee17a8d3a4ec779173" + }, + { + "participant_id": 9, + "secret_share": "542e065107d5b39025913c0b008264861693ff5a85e5008b8aa97e053bfb5c0a", + "verification_share": "480451e16cad12724b533d3189323a6d496adb3727396625d424fd66ffecb90b" + }, + { + "participant_id": 10, + "secret_share": "1e5566d47d520209ce9358b6d2313acee122d100d0e9d2c4c50ae70cf4033007", + "verification_share": "ded3e9b85023d366ad0ba39562a0bf62fe0443c7c574c646435722bab8a2a745" + }, + { + "participant_id": 11, + "secret_share": "6b3109859b522f902fe0925bc304ff3b083f0b3e2ea38b238750804d58891d0f", + "verification_share": "8cd5e93754f4f7ec37b19e3e8ec0d6a98b4c615a2abf0c20ab9845e2bc56622f" + }, + { + "participant_id": 12, + "secret_share": "454f6d8e605f989170086b75edf846eb6f94e5847e71acb5f0d4dfff4a899c05", + "verification_share": "084cf1aef59d65efe562275be46805314a9d0820d670fbf425f4130949d71423" + }, + { + "participant_id": 13, + "secret_share": "5aced299ea6878dfd3ee4bf62733acdecd118b0f910ceb8a2faf9537647cb606", + "verification_share": "600f2bca29f1032979928a8f51062fed90350cb74ff896db952b1767c5e83923" + }, + { + "participant_id": 14, + "secret_share": "b9b69fecbcc5df9e975fcf76088ef495a733894333bbb46a6ea3cd92bcd3c608", + "verification_share": "6a35d79048f6d9759da160dde1f6597ccdb3f9230a649eca0b07801fa2e33e7e" + } + ], + "round3": { + "transcript_hash": "c14900732438c02af052e6e5d4f25b445f45576ae4dd014a4e43e3ca9218fc04bf3d29d54be73ae00799c46d02cf06736819d96853373b7d04b51eb614e58666", + "signatures": [ + { + "signer_id": 1, + "signature": "20507609bcba75a2edc6f703c039bb86daa46067e01f417790161947c91d9c4169b387cfb5ee3eb9ae3817acc874aa5589bdbbfb519293079549e4c6b65c8901" + }, + { + "signer_id": 2, + "signature": "3e2040f4598801b812caea61fccdd9c25d0e6f70f67b8ebfe8ad406c5b340a58deb18d2fbb8c4daa56b8059c0f3fd73b1a9c1f8bb38f4598365607d5b8a9eb05" + }, + { + "signer_id": 3, + "signature": "f6bbf68e15ec3de8b98164c0cf8246268c71225e56f94cd4d7da38bc643da5300b65176edcd1f8d244eec257e7c82d50e72ca2d5cf0a0db032071c406f4c5307" + }, + { + "signer_id": 4, + "signature": "1420046030e269db6a9d96355a01fd4cad759ac8fd69e865359284cfbadf63622d95d099b6b7d0593d31b75ffd9cfe0669a3b9dfd4db8927da98be9570ee7b04" + }, + { + "signer_id": 5, + "signature": "6e473eeff77b8795c079a4120cf8a3c6e10963ebf691981e39af248acad12b504ddabb4b0799feb8266744fdcc41994de47c6e0d6a8fdcd72e834870bec6f40f" + }, + { + "signer_id": 6, + "signature": "509e935d7bb468f058ccc129c28a3ceec877336e29fc0c0a76bcbe972a3b5932669cc26afcf4534b71a0b98d61c78d3f92baed032deab8738fac9a31f52ebc0f" + }, + { + "signer_id": 7, + "signature": "aae674d78f9c3aab08acb6d3723dbec41f0372fd6f1aa5e90f2b206ebec9286a02cb44913a591487355cd8d8688cf4eb2d2cba2acc4f2803fa7eb91655c5c100" + }, + { + "signer_id": 8, + "signature": "8e4c992536cb160207b70bfff422c3bc0d16cf197904d936f0a591094c9b7c26ac0ce4be44a261e7a8836129c35341f0017126f0298711f2d2ab8de35f7b200b" + }, + { + "signer_id": 9, + "signature": "b8cb214eb8629c69cae877af5ad9da4ddde4f0671049506588c547ad982574110ce9e9d82abedcac6748e40d8235c586095c1b654ee81588c4cb630e8b01ce0a" + }, + { + "signer_id": 10, + "signature": "cccf2b9b962b3484d7f1b8f6e016c379fbd6993d9fbfe21f89a465b9f42bf53831a9a44af4d52694524b0f34823c774dd0f6ed3f4b2835228771d0421480b204" + }, + { + "signer_id": 11, + "signature": "cadcfea4761aec772a7d5f2a2725a8eea951c817d16872fb661d1faf0ee3021540d7dee39212ee2462cf4017e1bfef49e81175cf4f7b28caa7be896969287706" + }, + { + "signer_id": 12, + "signature": "8a19f2bf08a05474568824bc645d23c91ff709e98c33049554f2da8c9d5af410e04eb3b0c69d97f7e9a5d0064bad8b4d9b0e3681fe13891e28fe25a16e5fa208" + }, + { + "signer_id": 13, + "signature": "0edd74733c1833a5bc92db1d568f31ebfe346857a2c30fa033ddc33f49f50102dbe81c5d8a699b84c85c8e1d32f66d3f64fae329790e5f212e2c57f88ce72d03" + }, + { + "signer_id": 14, + "signature": "76607d05dc9a385aff4cb971b4996c873595a0821fc6820c760446bc36f03e62d4c7bb7075e858f1d0edc5a91026744dec36cadb2f9ca3c7fe972667d6649e06" + } + ] + }, + "group_public_key": "5056c3b4570be4c8afa7301347edea1de395810df72afccf576cc076a46d6a07", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "ddc8eb535927d58c34042562531a2054c57719eac93a2989223b3fe8eb19e53b4b4d02facef7d07e46f3dbdee9c07c89", + "f704d9599a28a9722120fe0ca6d1fb1c6edb109cbdcbaf0aa6f810b7a5d9faa5a71ca23e0010cdedcdade61b1809b41d", + "e24c11877cc963414869c143838245a37705bc347cc6bab8466a4f30abf73bea3f65d7e3bb2d62a3690101b11a2703f4", + "97db00ce802977499fd132aa6ab74c7c853f6fdb6d414b7d53c296a874e3850418393cde8db4c2db2f45456ad0e31726", + "11d6a1354f7fecdbb14d3cdacadcd33d42d26bc7511d7b0116c546300f2eef33f91b4db951ce74cbc8d420c775bc043c", + "ee14560b391bb002dc8d97b30b33dc5d2d9526c38de0cb8abdfb09a8fdced4861009a6d83c6ee5e6822d036376d44d5c", + "7d4ab54ab8085a92e577acaabc310f57c2e205379874e8c28f8728e85cc0a1b955ae2d088788319524a8912393c1b857", + "46a49e24e1e9ac4ebdc6220be14ea1efbfcf02cfca1346ae5f512256c371c112bb775be994ac2a0e6be9bcc5a1bcfe1d", + "2484d66cc4694fb4421b7a7ccf0552f2329e5f3763ea0a0e26bbade96382f77048635128f17a5574f14274a2cf267545", + "b4d6c7af725fea2292e9595ec832c18126a6df504281a06ff4a4bde62c27529ad065c698ec50a0bfa85640e506a8bbc3", + "534748e1eba318799b43965f829df921dc09862bc3287575477a149c1fc3452f249b56027cfec602c7936a616111c196", + "d2316221a9e05b3bcc3691e04f008812f46fdec19676564c8fe36b93417ebe9f1baff5200e8def8e1a8ab23287a8dfdc", + "d752d6c01831e275e72b2036899579a76d887846bc5c7872a8c6ee6c1f51253e21fa427fdc23404432f72f69279c378e", + "976a512822211036ce9b16e708b83f2ac83936395170f552c7dfa18c0da8a52eac25ab43b0e1d8b25541947062d683d9" + ], + "recovered_secret_share": "7fd318c7a71d543ed87e2b8df70d434f3bd4406a0e754069d4317327a02d430a", + "recovered_verification_share": "9a8493d78c60dc0caaa2aa294777d9f4db157e4b002de4f1d5e5fdba7750b24b" + } + }, + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "8232337dffa583f214e2ead7f19c37b482f77171194ed6984a715353e086d20e", + "f7b358f26668f0733363b309c435bc16f7670ec5850e4860c5d25e049e7d060d", + "fc2df6b164cac912a8c2d294b528f5e3261f1724d510f9fd1c2bae5e76308d0b" + ], + "static_public_keys": [ + "e86e416c45160b32c774ebac802906548d94b3327517178c3c743226dd594d32", + "c003305ceb27d887d9391f85138fc34edae9c963951a4e9c950bed8509ba2b5e", + "e4dad4d96d6e507ac59aa539a42c8185618b51941f4497af246cfaa9d1912b18" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "a6841269b357caa2d0655664961704b06875255a7b6ca1af8004560314384447", + "vss_commitment": [ + "fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33a", + "08fcd4093599c2dd7def1bfe843d8fd6c9041caa33c00a2bad11fd4bc1f16134" + ], + "pop": "6601dd522cbc9be894c4a2d6388b38f4b98f0325f884d3aae21c9a6bd76ca41b794c0a64696b07a90891d0172d10e78f118ca441f33cfcd293986dc491634e07", + "encrypted_shares": [ + "9123460b09df36e1e8b23c5ab8716568874481343bb647109941484c4a0b77243e9057ea3e6e39b394f3e97abd09e407", + "0448d0e38af67f341b5a2062573786edda7254bdf6f24d23c9618897e75b642763f7a2cf4e80a6a6cd9a6d9acacf6190", + "de7bbe0110fdf1b3a4e9590a53ec4a35edbf9495a905639afdacaa1f17232c71f2f0f72f768ff02fc4050772eea4ff2a" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "a0c9a49c4882ec32590160681791b157a39ff7b7401fef9268c8efb5e48be43f", + "vss_commitment": [ + "bc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055", + "f4e3e84108289d680c8e1ad24cd6a70fab1afe233b6b3ad839ee87742baceb39" + ], + "pop": "3ea2a28a09f51decd9420f1eb388da9c512d3fd45a2fbc66873e6dbfbd2dbc51b31a77547c7747798d154196fa7c03ab50bbf2d0bb7aa85f4282aa4723bb2c08", + "encrypted_shares": [ + "5f4432d0349118d57dd893d08094fe9732574887ae1f6ad0c723c5ec95a5a25973b7e974f221667f86547833f62abfe4", + "53d0f9d7d68b5f1f32af8dda8c1fb652f01486586a5924e9d7b5eb42c96faa6fe9454edc4f5d36c67df09a6600d86a49", + "21eb55105356a4a56d38ffc7fc54e33d9b6ba13727c34eb04118d4eb9f3c5413be1932c62270cc55a83148f469120e86" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "2293b1d8ed98f109998a243aa949a55605d0ca0e50897e059b658e0c63dfda25", + "vss_commitment": [ + "a4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839", + "e2244a3f3ea70ecd697189daff4792d5af5e4eff132c1bb6101b04a5adc6c743" + ], + "pop": "26cf2b0b2d5508a555002148ff03ae093f4ea1b8d8a79123c652fa96bdff6a27eb3b248c1338b3599077f16796b61444a4157ca43f64380427877456cb3ebb00", + "encrypted_shares": [ + "7c72d167a3a1ae7a7d1afb3970a16e7433af7a9a9d17e7ba1f1dae334889b989dcb9fae5dd17d70952953d03858f1b98", + "578faa68d9bc3e495ec5e82133d501bdd8464401088700cd557224dfc720cea39813156cec1780c5b03b148cd7e9a378", + "e2e07385816f9f092d9c2e35009dc139f96f560f3b278cdc3eaaab6c2455c2b51e11581e5b927dff762ebf60d9080465" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304", + "verification_share": "5e130c137d31a445d1b8df391b41db0dbf6a9e13649abb40d68d3fa955eca22d" + }, + { + "participant_id": 2, + "secret_share": "7db7ccef4df8fb157766082728cd2f072c0ec3af6d352a3d0af49919daf9950b", + "verification_share": "2c9a0c7d2a8e3c37c7b1ebb5d40bad2e9127151ad160a8b7d0782482fd790007" + }, + { + "participant_id": 3, + "secret_share": "04e3c4216570bdbdf8f4006a6f5b279cdefea07997f862e3eb71320ebaccf802", + "verification_share": "b434b345762decb04e5d9937cc5aee03b828808ea8d5500ea7c06c684712e143" + } + ], + "round3": { + "transcript_hash": "688801fc10825c8c317a69bf7720f5a1e9deda663658dcd8d49c75fae3c8ff24d0e8cbbee95e3b9d85a48c512863a3d2f484c572ff2229c1e9bb70ab9aea6609", + "signatures": [ + { + "signer_id": 1, + "signature": "0a1ffc6b6f07a088f6e4804035cd3e7006272d78eadc5fb41a3eb096592a664848d54e8e8de69785007d07bf5f11de5142ee0039dcd2f5bbc106cce65e8c3705" + }, + { + "signer_id": 2, + "signature": "44bdaed33768e912ccbbdab7a1bbf4addb2321f44adf4244cde6f62939ce9e09577f2d139e53d6f52d14a0d71dea27279f26870a4f7d034739f1a9ed6ef4e703" + }, + { + "signer_id": 3, + "signature": "f626f932b65539603113d28d7a26c35b2d1739945f0cc976abefb40df90ad16fc10f1a0e0e36c125bf4a9cbd4d9dcfa1a699f80836a80a27ec1412a64e66a707" + } + ] + }, + "group_public_key": "0a1592f555f20d3a3b3c7bc032ebe4b46cb2870da141404873e5fc8d4136120f", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "9123460b09df36e1e8b23c5ab8716568874481343bb647109941484c4a0b77243e9057ea3e6e39b394f3e97abd09e407", + "5f4432d0349118d57dd893d08094fe9732574887ae1f6ad0c723c5ec95a5a25973b7e974f221667f86547833f62abfe4", + "7c72d167a3a1ae7a7d1afb3970a16e7433af7a9a9d17e7ba1f1dae334889b989dcb9fae5dd17d70952953d03858f1b98" + ], + "recovered_secret_share": "09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304", + "recovered_verification_share": "5e130c137d31a445d1b8df391b41db0dbf6a9e13649abb40d68d3fa955eca22d" + } + } + ] +} \ No newline at end of file diff --git a/frost-core/Cargo.toml b/frost-core/Cargo.toml index 27642bf41..399ac2b7a 100644 --- a/frost-core/Cargo.toml +++ b/frost-core/Cargo.toml @@ -21,6 +21,7 @@ const-crc32 = { version = "1.2.0", package = "const-crc32-nostd" } document-features.workspace = true debugless-unwrap = { version = "1.0.0", optional = true } derive-getters = "0.5.0" +derive-new = "0.6" hex.workspace = true postcard = { version = "1.0.0", features = ["alloc"], optional = true } rand_core = { version = "0.6", default-features = false } diff --git a/frost-core/src/error.rs b/frost-core/src/error.rs index e11d9fd54..ae0686e65 100644 --- a/frost-core/src/error.rs +++ b/frost-core/src/error.rs @@ -90,6 +90,18 @@ pub enum Error { /// The identifier of the signer whose share validation failed. culprit: Identifier, }, + /// Decryption of an encrypted share failed. + #[error("Decryption of an encrypted share failed.")] + DecryptionFailed { + /// The identifier of the participant who sent the invalid ciphertext. + culprit: Identifier, + }, + /// A transcript signature is not valid. + #[error("Invalid transcript signature.")] + InvalidTranscriptSignature { + /// The identifier of the participant whose transcript signature was invalid. + culprit: Identifier, + }, /// Error in scalar Field. #[error("Error in scalar Field.")] FieldError(#[from] FieldError), @@ -126,6 +138,8 @@ where Error::InvalidSignatureShare { culprits } => culprits.clone(), Error::InvalidProofOfKnowledge { culprit } => vec![*culprit], Error::InvalidSecretShare { culprit } => culprit.map(|i| vec![i]).unwrap_or_default(), + Error::DecryptionFailed { culprit } => vec![*culprit], + Error::InvalidTranscriptSignature { culprit } => vec![*culprit], Error::InvalidMinSigners | Error::InvalidMaxSigners | Error::InvalidCoefficients diff --git a/frost-core/src/keys.rs b/frost-core/src/keys.rs index 5389f5ebc..32e8d37c7 100644 --- a/frost-core/src/keys.rs +++ b/frost-core/src/keys.rs @@ -30,6 +30,7 @@ use crate::serialization::{Deserialize, Serialize}; use super::compute_lagrange_coefficient; +pub mod cocktail_dkg; pub mod dkg; pub mod refresh; pub mod repairable; diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs new file mode 100644 index 000000000..e593d9677 --- /dev/null +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -0,0 +1,818 @@ +//! COCKTAIL Distributed Key Generation functions and structures. +//! +//! COCKTAIL-DKG is a standalone, three-round distributed key generation protocol for +//! threshold signature schemes like FROST. It is an independent derivative of +//! [ChillDKG](https://github.com/BlockstreamResearch/bip-frost-dkg) designed to work +//! with any FROST ciphersuite. +//! +//! Unlike the basic FROST DKG (see [`super::dkg`]), COCKTAIL-DKG: +//! +//! - Encrypts secret shares using pairwise ECDH (no pre-established secure channels needed) +//! - Uses long-term static key pairs for participant authentication +//! - Includes a certification round (Round 3) to detect split-view attacks +//! - Supports share recovery from a transcript and the static secret key +//! +//! ## Protocol Overview +//! +//! 1. **Round 1 ([`part1`])**: Each participant generates their polynomial, ephemeral key, +//! proof of possession, and encrypts shares for all other participants. +//! +//! 2. **Round 2 ([`part2`])**: The coordinator aggregates Round 1 messages and sends them to +//! all participants. Each participant decrypts and verifies received shares, computes +//! their final key share and signs the public transcript. +//! +//! 3. **Round 3 ([`part3`])**: The coordinator broadcasts all transcript signatures. Each +//! participant verifies them and, if all are valid, outputs their [`KeyPackage`] and +//! [`PublicKeyPackage`]. +//! +//! ## Trait Requirement +//! +//! Ciphersuites must implement [`CocktailCiphersuite`] in addition to [`Ciphersuite`] to use +//! this module. The additional methods provide: +//! - A hash-to-scalar function for the COCKTAIL Schnorr signature scheme +//! - A combined H6 key derivation + AEAD key/nonce derivation function +//! - AEAD encrypt/decrypt operations + +use alloc::{collections::BTreeMap, vec::Vec}; + +use rand_core::{CryptoRng, RngCore}; + +use crate::{ + Ciphersuite, Element, Error, Field, Group, Identifier, Scalar, Signature, SigningKey, + VerifyingKey, +}; + +use super::{ + evaluate_polynomial, generate_coefficients, generate_secret_polynomial, + validate_num_of_signers, KeyPackage, PublicKeyPackage, SecretShare, SigningShare, + VerifiableSecretSharingCommitment, +}; + +/// Extension trait for ciphersuites that support the COCKTAIL-DKG protocol. +/// +/// Implementors must provide: +/// - The H6 hash function for AEAD key/nonce derivation +/// - AEAD encrypt/decrypt operations +/// +/// See the [COCKTAIL-DKG specification](https://c2sp.org/cocktail-dkg) for details. +pub trait CocktailCiphersuite: Ciphersuite { + /// Hash function H6 for AEAD key/nonce derivation. + /// + /// Defined in the COCKTAIL-DKG specification as: + /// `H6(Se, Sd, E, Pi, Pj, context) = Hash(domain || Se || Sd || E || Pi || Pj || len(context) || context)` + /// + /// The output must be at least 56 bytes. The caller extracts: + /// - `key = output[..32]` + /// - `nonce = output[32..56]` + fn H6( + shared_secret_ephem: &[u8], + shared_secret_static: &[u8], + ephemeral_pub: &[u8], + sender_pub: &[u8], + recipient_pub: &[u8], + context: &[u8], + ) -> Vec; + + /// Encrypt a plaintext using an AEAD scheme. + /// + /// The specific AEAD algorithm is ciphersuite-dependent: + /// - XChaCha20-Poly1305 for SHA-512 / BLAKE2b-512 based ciphersuites + /// - XAES-256-GCM for SHA-256 based ciphersuites + fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> Vec; + + /// Decrypt a ciphertext using an AEAD scheme. + /// + /// Returns `Err(())` if decryption fails. + /// The caller maps this to an appropriate [`Error`] with culprit information. + fn aead_decrypt( + key: &[u8; 32], + nonce: &[u8; 24], + ciphertext: &[u8], + ) -> Result, Error>; +} + +/// Serialize a group element to a `Vec`. +fn element_to_bytes(element: &Element) -> Result, Error> { + Ok(::serialize(element)?.as_ref().to_vec()) +} + +/// Build the PoP message: `context || serialize(C_i) || serialize(E_i)`. +fn pop_message( + commitment: &VerifiableSecretSharingCommitment, + ephemeral_pub: &Element, + context: &[u8], +) -> Result, Error> { + let mut msg = Vec::new(); + msg.extend_from_slice(context); + msg.extend_from_slice(&commitment.serialize_whole()?); + msg.extend_from_slice(&element_to_bytes::(ephemeral_pub)?); + Ok(msg) +} + +/// Build the canonical public transcript `T` for Round 3 certification. +/// +/// Structure (exact order from the specification): +/// 1. `len(context)` as little-endian u64 +/// 2. `context` +/// 3. `n` as little-endian u32 +/// 4. `t` as little-endian u32 +/// 5. `P_j` for each participant in identifier-sorted order +/// 6. `C_j` (full VSS commitment) for each participant in identifier-sorted order +/// 7. `PoP_j` for each participant in identifier-sorted order +/// 8. `E_j` for each participant in identifier-sorted order +/// 9. `len(ext)` as little-endian u64 +/// 10. `ext` +#[allow(clippy::too_many_arguments)] +fn build_transcript( + context: &[u8], + n: u16, + t: u16, + participants: &BTreeMap, VerifyingKey>, + commitments: &BTreeMap, VerifiableSecretSharingCommitment>, + pops: &BTreeMap, Signature>, + ephemeral_pubs: &BTreeMap, Element>, + extension: &[u8], +) -> Result, Error> { + let mut t_bytes = Vec::new(); + + t_bytes.extend_from_slice(&(context.len() as u64).to_le_bytes()); + t_bytes.extend_from_slice(context); + t_bytes.extend_from_slice(&(n as u32).to_le_bytes()); + t_bytes.extend_from_slice(&(t as u32).to_le_bytes()); + + for pk in participants.values() { + t_bytes.extend_from_slice(&pk.serialize()?); + } + for id in participants.keys() { + let c = commitments.get(id).ok_or(Error::PackageNotFound)?; + t_bytes.extend_from_slice(&c.serialize_whole()?); + } + for id in participants.keys() { + let pop = pops.get(id).ok_or(Error::PackageNotFound)?; + t_bytes.extend_from_slice(&pop.default_serialize()?); + } + for id in participants.keys() { + let e = ephemeral_pubs.get(id).ok_or(Error::PackageNotFound)?; + t_bytes.extend_from_slice(&element_to_bytes::(e)?); + } + + t_bytes.extend_from_slice(&(extension.len() as u64).to_le_bytes()); + t_bytes.extend_from_slice(extension); + + Ok(t_bytes) +} + +/// DKG Round 1 structures. +pub mod round1 { + use alloc::{collections::BTreeMap, vec::Vec}; + use derive_getters::Getters; + use zeroize::{Zeroize, ZeroizeOnDrop}; + + use crate::{serialization::SerializableScalar, Element, Group, Identifier, Scalar}; + + use crate::keys::cocktail_dkg::CocktailCiphersuite; + use crate::keys::VerifiableSecretSharingCommitment; + use crate::Signature; + + /// The secret package that must be kept in memory by the participant + /// between Round 1 and Round 2 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + #[derive(Clone, PartialEq, Eq, Zeroize, ZeroizeOnDrop, Getters)] + pub struct SecretPackage { + /// The identifier of the participant. + #[zeroize(skip)] + pub(crate) identifier: Identifier, + /// The secret polynomial coefficients $(a_{i,0}, \ldots, a_{i,t-1})$. + #[getter(skip)] + pub(crate) coefficients: Vec>, + /// The public VSS commitment $C_i$. + #[zeroize(skip)] + pub(crate) commitment: VerifiableSecretSharingCommitment, + /// The ephemeral secret key $e_i$. + #[getter(skip)] + pub(crate) ephemeral_secret: SerializableScalar, + /// The ephemeral public key $E_i = e_i \cdot B$. + #[zeroize(skip)] + pub(crate) ephemeral_pub: Element, + /// The proof of possession $PoP_i$ (needed in Round 2 to build the transcript). + #[zeroize(skip)] + pub(crate) proof_of_possession: Signature, + /// The minimum number of signers. + pub(crate) min_signers: u16, + /// The total number of signers. + pub(crate) max_signers: u16, + } + + impl SecretPackage { + /// Create a new [`SecretPackage`]. + pub fn new( + identifier: Identifier, + coefficients: Vec>, + commitment: VerifiableSecretSharingCommitment, + ephemeral_secret: Scalar, + ephemeral_pub: Element, + proof_of_possession: Signature, + min_signers: u16, + max_signers: u16, + ) -> Self { + Self { + identifier, + coefficients: coefficients.into_iter().map(SerializableScalar).collect(), + commitment, + ephemeral_secret: SerializableScalar(ephemeral_secret), + ephemeral_pub, + proof_of_possession, + min_signers, + max_signers, + } + } + + /// Returns the secret polynomial coefficients. + #[cfg_attr(feature = "internals", visibility::make(pub))] + pub(crate) fn coefficients(&self) -> Vec> { + self.coefficients.iter().map(|s| s.0).collect() + } + } + + impl core::fmt::Debug for SecretPackage + where + C: CocktailCiphersuite, + { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + f.debug_struct("SecretPackage") + .field("identifier", &self.identifier) + .field("coefficients", &"") + .field("commitment", &self.commitment) + .field("ephemeral_secret", &"") + .field("min_signers", &self.min_signers) + .field("max_signers", &self.max_signers) + .finish() + } + } + + /// The package that must be broadcast by each participant to all other participants + /// (via the coordinator) between Round 1 and Round 2. + /// + /// Contains the VSS commitment, proof of possession, ephemeral public key, + /// and encrypted shares for all participants. + #[derive(Clone, PartialEq, Eq, Getters)] + pub struct Package { + /// The participant's identifier. + pub(crate) identifier: Identifier, + /// The public VSS commitment $C_i$. + pub(crate) commitment: VerifiableSecretSharingCommitment, + /// The proof of possession $PoP_i$. + pub(crate) proof_of_possession: Signature, + /// The ephemeral public key $E_i$. + pub(crate) ephemeral_pub: Element, + /// Encrypted shares: `encrypted_shares[j]` = $c_{i,j}$ for each participant $j$. + pub(crate) encrypted_shares: BTreeMap, Vec>, + } + + impl Package { + /// Create a new [`Package`]. + pub fn new( + identifier: Identifier, + commitment: VerifiableSecretSharingCommitment, + proof_of_possession: Signature, + ephemeral_pub: Element, + encrypted_shares: BTreeMap, Vec>, + ) -> Self { + Self { + identifier, + commitment, + proof_of_possession, + ephemeral_pub, + encrypted_shares, + } + } + } + + impl core::fmt::Debug for Package + where + C: CocktailCiphersuite, + { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + f.debug_struct("Package") + .field("identifier", &self.identifier) + .field("commitment", &self.commitment) + .field("proof_of_possession", &self.proof_of_possession) + .field( + "ephemeral_pub", + &::serialize(&self.ephemeral_pub) + .map(|s| hex::encode(s.as_ref())) + .unwrap_or_else(|_| "".into()), + ) + .field("encrypted_shares", &self.encrypted_shares) + .finish() + } + } +} + +/// DKG Round 2 structures. +pub mod round2 { + use alloc::{collections::BTreeMap, vec::Vec}; + use derive_getters::Getters; + use zeroize::{Zeroize, ZeroizeOnDrop}; + + use crate::{serialization::SerializableScalar, Identifier, Scalar, VerifyingKey}; + + use crate::keys::cocktail_dkg::CocktailCiphersuite; + use crate::keys::{PublicKeyPackage, VerifiableSecretSharingCommitment}; + use crate::Signature; + + /// The secret package that must be kept in memory by the participant + /// between Round 2 and Round 3 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + #[derive(Clone, PartialEq, Eq, Zeroize, ZeroizeOnDrop, Getters)] + pub struct SecretPackage { + /// The identifier of the participant. + #[zeroize(skip)] + pub(crate) identifier: Identifier, + /// The participant's own VSS commitment $C_i$. + #[zeroize(skip)] + pub(crate) commitment: VerifiableSecretSharingCommitment, + /// The participant's final long-lived secret share $x_i$. + #[getter(skip)] + pub(crate) secret_share: SerializableScalar, + /// The minimum number of signers. + pub(crate) min_signers: u16, + /// The total number of signers. + pub(crate) max_signers: u16, + /// The canonical public transcript $T$, used for certificate verification in Round 3. + #[zeroize(skip)] + pub(crate) transcript: Vec, + /// All participants' static public keys, used to verify transcript signatures. + #[zeroize(skip)] + pub(crate) participants: BTreeMap, VerifyingKey>, + /// The precomputed public key package (computed once all shares are verified). + #[zeroize(skip)] + pub(crate) public_key_package: PublicKeyPackage, + } + + impl SecretPackage { + /// Create a new [`SecretPackage`]. + pub fn new( + identifier: Identifier, + commitment: VerifiableSecretSharingCommitment, + secret_share: Scalar, + min_signers: u16, + max_signers: u16, + transcript: Vec, + participants: BTreeMap, VerifyingKey>, + public_key_package: PublicKeyPackage, + ) -> Self { + Self { + identifier, + commitment, + secret_share: SerializableScalar(secret_share), + min_signers, + max_signers, + transcript, + participants, + public_key_package, + } + } + + /// Returns the secret share scalar. + pub fn secret_share(&self) -> Scalar { + self.secret_share.0 + } + } + + impl core::fmt::Debug for SecretPackage + where + C: CocktailCiphersuite, + { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + f.debug_struct("SecretPackage") + .field("identifier", &self.identifier) + .field("commitment", &self.commitment) + .field("secret_share", &"") + .field("min_signers", &self.min_signers) + .field("max_signers", &self.max_signers) + .finish() + } + } + + /// The package sent by each participant to the coordinator after Round 2. + /// + /// Contains the participant's signature over the public transcript, used in the + /// CertEq certification phase to ensure all participants agree on the DKG outcome. + #[derive(Clone, Debug, PartialEq, Eq, Getters)] + pub struct Package { + /// The participant's signature over the transcript $T$. + pub(crate) transcript_signature: Signature, + } + + impl Package { + /// Create a new [`Package`]. + pub fn new(transcript_signature: Signature) -> Self { + Self { + transcript_signature, + } + } + } +} + +/// Performs Round 1 of the COCKTAIL-DKG protocol for the given participant. +/// +/// The participant generates: +/// - A secret polynomial $f_i(x)$ of degree $t-1$ +/// - A VSS commitment $C_i = (C_{i,0}, \ldots, C_{i,t-1})$ +/// - An ephemeral key pair $(e_i, E_i)$ +/// - A proof of possession $PoP_i$ (sign `context || C_i || E_i` with $a_{i,0}$) +/// - Encrypted secret shares $c_{i,j}$ for every participant $j$ (including self) +/// +/// # Parameters +/// +/// - `identifier`: The calling participant's identifier. Must be a key in `participants`. +/// - `max_signers`: The total number of participants $n$. +/// - `min_signers`: The threshold $t$ (minimum signers required to produce a signature). +/// - `static_signing_key`: The participant's long-term static private key $d_i$. +/// - `participants`: All participants' static public keys $P_j$, keyed by identifier. +/// Must include the calling participant's own key and have exactly `max_signers` entries. +/// - `context`: A session-unique context string. It is **RECOMMENDED** to construct this as +/// `H("COCKTAIL-DKG-CONTEXT" || session_id || P_1 || ... || P_n)`. +/// - `rng`: A cryptographically secure random number generator. +/// +/// # Returns +/// +/// A tuple of: +/// - [`round1::SecretPackage`]: kept secret by the participant until [`part2`]. +/// - [`round1::Package`]: broadcast to all other participants via the coordinator. +pub fn part1( + identifier: Identifier, + max_signers: u16, + min_signers: u16, + static_privkey: &SigningKey, + participants: &BTreeMap, VerifyingKey>, + context: &[u8], + mut rng: R, +) -> Result<(round1::SecretPackage, round1::Package), Error> { + validate_num_of_signers::(min_signers, max_signers)?; + + if participants.len() != max_signers as usize { + return Err(Error::IncorrectNumberOfIdentifiers); + } + if !participants.contains_key(&identifier) { + return Err(Error::UnknownIdentifier); + } + + // Steps 1 & 3: Generate secret polynomial and VSS commitment + let secret: SigningKey = SigningKey::new(&mut rng); + let coefficients = generate_coefficients::(min_signers as usize - 1, &mut rng); + let (coefficients, commitment) = + generate_secret_polynomial(&secret, max_signers, min_signers, coefficients)?; + + // Step 3: Generate ephemeral key pair (e_i, E_i) + let ephemeral_privkey = <::Field>::random(&mut rng); + let ephemeral_pubkey = ::generator() * ephemeral_privkey; + + // Step 4: Compute proof of possession + // Sign `context || C_i || E_i` using a_{i,0} as the signing key + let a_i0 = *coefficients + .first() + .expect("coefficients has at least one element"); + let pop_msg = pop_message::(&commitment, &ephemeral_pubkey, context)?; + let proof_of_possession = SigningKey::from_scalar(a_i0)?.sign(&mut rng, &pop_msg); + + // Step 5: Compute and encrypt shares for each participant (including self) + let static_pubkey = VerifyingKey::from(static_privkey); + let sender_pubkey_bytes = static_pubkey.serialize()?; + let ephemeral_pubkey_bytes = element_to_bytes::(&ephemeral_pubkey)?; + let d_i = static_privkey.to_scalar(); + + let mut encrypted_shares = BTreeMap::new(); + for (recipient_id, recipient_pubkey) in participants.iter() { + // s_{i,j} = f_i(j) + let share = evaluate_polynomial(*recipient_id, &coefficients); + + // S^(e)_{i,j} = e_i * P_j and S^(d)_{i,j} = d_i * P_j + let recipient_element = recipient_pubkey.to_element(); + let s_ephem = recipient_element * ephemeral_privkey; + let s_static = recipient_element * d_i; + + let h6 = C::H6( + &element_to_bytes::(&s_ephem)?, + &element_to_bytes::(&s_static)?, + &ephemeral_pubkey_bytes, + &sender_pubkey_bytes, + &recipient_pubkey.serialize()?, + context, + ); + let mut key = [0u8; 32]; + let mut nonce = [0u8; 24]; + key.copy_from_slice(&h6[..32]); + nonce.copy_from_slice(&h6[32..56]); + + // Plaintext = scalar bytes of the share + let plaintext = <::Field>::serialize(&share); + let ciphertext = C::aead_encrypt(&key, &nonce, plaintext.as_ref()); + encrypted_shares.insert(*recipient_id, ciphertext); + } + + let secret_package = round1::SecretPackage::new( + identifier, + coefficients.clone(), + commitment.clone(), + ephemeral_privkey, + ephemeral_pubkey, + proof_of_possession.clone(), + min_signers, + max_signers, + ); + let package = round1::Package::new( + identifier, + commitment, + proof_of_possession, + ephemeral_pubkey, + encrypted_shares, + ); + + Ok((secret_package, package)) +} + +/// Performs Round 2 of the COCKTAIL-DKG protocol. +/// +/// The coordinator aggregates all [`round1::Package`]s and delivers them to each participant. +/// This function: +/// - Validates that every VSS commitment contains exactly `t` points +/// - Verifies every proof of possession +/// - Decrypts and verifies every received secret share +/// - Computes the final secret share $x_i = \sum_j s_{j,i}$ +/// - Performs a self-consistency check ($x_i \cdot B = Y_i$) +/// - Computes the group public key and all verifying shares +/// - Signs the public transcript for the CertEq phase +/// +/// # Parameters +/// +/// - `secret_package`: The [`round1::SecretPackage`] from [`part1`]. +/// - `round1_packages`: [`round1::Package`]s from all **other** participants (n-1 total). +/// Keyed by sender identifier. +/// - `static_signing_key`: The participant's long-term static private key $d_i$. +/// - `participants`: Same map of static public keys used in [`part1`]. +/// - `context`: Same context string used in [`part1`]. +/// - `extension`: Optional application-specific extension bytes (may be `&[]`). +/// +/// # Returns +/// +/// A tuple of: +/// - [`round2::SecretPackage`]: kept secret by the participant until [`part3`]. +/// - [`round2::Package`]: the transcript signature, sent to the coordinator. +pub fn part2( + secret_package: round1::SecretPackage, + round1_packages: &BTreeMap, round1::Package>, + static_signing_key: &SigningKey, + participants: &BTreeMap, VerifyingKey>, + context: &[u8], + extension: &[u8], + mut rng: R, +) -> Result<(round2::SecretPackage, round2::Package), Error> { + if round1_packages.len() != (secret_package.max_signers - 1) as usize { + return Err(Error::IncorrectNumberOfPackages); + } + + let my_id = secret_package.identifier; + let d_i = static_signing_key.to_scalar(); + let my_static_pub = VerifyingKey::from(static_signing_key); + let my_pub_bytes = my_static_pub.serialize()?; + + // Unpack our own coefficients and ephemeral secret + let my_coefficients: Vec> = secret_package.coefficients(); + + // Steps 1 & 2: Validate commitments and verify all proofs of possession + for (sender_id, package) in round1_packages.iter() { + if package.commitment.min_signers() != secret_package.min_signers { + return Err(Error::IncorrectNumberOfCommitments); + } + let pop_msg = pop_message::(&package.commitment, &package.ephemeral_pub, context)?; + let pop_pubkey = package.commitment.verifying_key()?; + pop_pubkey + .verify(&pop_msg, &package.proof_of_possession) + .map_err(|_| Error::InvalidProofOfKnowledge { + culprit: *sender_id, + })?; + } + + // Build complete maps for transcript construction + let mut all_commitments: BTreeMap, VerifiableSecretSharingCommitment> = + BTreeMap::new(); + let mut all_pops: BTreeMap, Signature> = BTreeMap::new(); + let mut all_ephemeral_pubs: BTreeMap, Element> = BTreeMap::new(); + + for (sender_id, package) in round1_packages.iter() { + all_commitments.insert(*sender_id, package.commitment.clone()); + all_pops.insert(*sender_id, package.proof_of_possession.clone()); + all_ephemeral_pubs.insert(*sender_id, package.ephemeral_pub); + } + // Add our own + all_commitments.insert(my_id, secret_package.commitment.clone()); + all_ephemeral_pubs.insert(my_id, secret_package.ephemeral_pub); + all_pops.insert(my_id, secret_package.proof_of_possession.clone()); + + // Step 3: Decrypt, verify, and accumulate all shares + let mut signing_share_scalar = <::Field>::zero(); + + // Self-share: s_{i,i} = f_i(i) + let self_share_val = evaluate_polynomial(my_id, &my_coefficients); + SecretShare::new( + my_id, + SigningShare::new(self_share_val), + secret_package.commitment.clone(), + ) + .verify() + .map_err(|e| match e { + Error::InvalidSecretShare { .. } => Error::InvalidSecretShare { + culprit: Some(my_id), + }, + other => other, + })?; + signing_share_scalar = signing_share_scalar + self_share_val; + + for (sender_id, package) in round1_packages.iter() { + let sender_pubkey = participants + .get(sender_id) + .ok_or(Error::UnknownIdentifier)?; + + // Recipient derives keys: + // S^(e)_{j,i} = d_i * E_j (our static key with sender's ephemeral) + // S^(d)_{j,i} = d_i * P_j (our static key with sender's static) + let s_ephemeral = package.ephemeral_pub * d_i; + let s_static = sender_pubkey.to_element() * d_i; + + let h6 = C::H6( + &element_to_bytes::(&s_ephemeral)?, + &element_to_bytes::(&s_static)?, + &element_to_bytes::(&package.ephemeral_pub)?, + &sender_pubkey.serialize()?, + &my_pub_bytes, + context, + ); + let mut key = [0u8; 32]; + let mut nonce = [0u8; 24]; + key.copy_from_slice(&h6[..32]); + nonce.copy_from_slice(&h6[32..56]); + + let ciphertext = package + .encrypted_shares + .get(&my_id) + .ok_or(Error::PackageNotFound)?; + + let plaintext = + C::aead_decrypt(&key, &nonce, ciphertext).map_err(|_| Error::DecryptionFailed { + culprit: *sender_id, + })?; + + // Parse: first scalar_len bytes are s_{j,i}; rest is optional payload + let scalar_len = + <::Field>::serialize(&<::Field>::zero()) + .as_ref() + .len(); + + if plaintext.len() < scalar_len { + return Err(Error::DecryptionFailed { + culprit: *sender_id, + }); + } + + let share_bytes = plaintext.get(..scalar_len).ok_or(Error::DecryptionFailed { + culprit: *sender_id, + })?; + let share_ser = <<::Field as Field>::Serialization>::try_from( + share_bytes, + ) + .map_err(|_| Error::DecryptionFailed { + culprit: *sender_id, + })?; + let s_j_i = <::Field>::deserialize(&share_ser).map_err(|_| { + Error::DecryptionFailed { + culprit: *sender_id, + } + })?; + + // Verify share against sender's VSS commitment + SecretShare::new(my_id, SigningShare::new(s_j_i), package.commitment.clone()) + .verify() + .map_err(|e| match e { + Error::InvalidSecretShare { .. } => Error::InvalidSecretShare { + culprit: Some(*sender_id), + }, + other => other, + })?; + + signing_share_scalar = signing_share_scalar + s_j_i; + } + + // Compute the public key package from all commitments + let commitments_refs: BTreeMap, &VerifiableSecretSharingCommitment> = + all_commitments.iter().map(|(id, c)| (*id, c)).collect(); + let public_key_package = PublicKeyPackage::from_dkg_commitments(&commitments_refs)?; + + // Self-consistency check: x_i * B must equal Y_i + // (Guaranteed by VSS verifications above; this is a defence-in-depth measure.) + let my_verifying_share = public_key_package + .verifying_shares() + .get(&my_id) + .ok_or(Error::UnknownIdentifier)?; + if ::generator() * signing_share_scalar != my_verifying_share.to_element() { + return Err(Error::InvalidSecretShare { culprit: None }); + } + + // Build transcript and sign it with d_i + let transcript = build_transcript::( + context, + secret_package.max_signers, + secret_package.min_signers, + participants, + &all_commitments, + &all_pops, + &all_ephemeral_pubs, + extension, + )?; + let transcript_signature = static_signing_key.sign(&mut rng, &transcript); + + let round2_secret = round2::SecretPackage::new( + my_id, + secret_package.commitment.clone(), + signing_share_scalar, + secret_package.min_signers, + secret_package.max_signers, + transcript, + participants.clone(), + public_key_package, + ); + let round2_package = round2::Package::new(transcript_signature); + + Ok((round2_secret, round2_package)) +} + +/// Performs Round 3 (CertEq) of the COCKTAIL-DKG protocol. +/// +/// The coordinator broadcasts all transcript signatures from all participants. +/// This function verifies every signature $sig_j$ on the transcript $T$ against +/// each participant's static public key $P_j$. +/// +/// If all signatures are valid, every honest participant has agreed on the same +/// public DKG state and the protocol is complete. The collection of all $n$ +/// signatures on the transcript forms a "success certificate" that can be stored +/// for auditing or share recovery. +/// +/// # Parameters +/// +/// - `secret_package`: The [`round2::SecretPackage`] from [`part2`]. +/// - `round2_packages`: [`round2::Package`]s from **all** participants (n total, including +/// the caller's own). Keyed by participant identifier. +/// +/// # Returns +/// +/// A tuple of: +/// - [`KeyPackage`]: the participant's long-lived signing key share. +/// - [`PublicKeyPackage`]: the group public key and all participants' verifying shares. +pub fn part3( + secret_package: &round2::SecretPackage, + round2_packages: &BTreeMap, round2::Package>, +) -> Result<(KeyPackage, PublicKeyPackage), Error> { + if round2_packages.len() != secret_package.max_signers as usize { + return Err(Error::IncorrectNumberOfPackages); + } + + // Verify all n transcript signatures + for (signer_id, package) in round2_packages.iter() { + let signer_pubkey = secret_package + .participants + .get(signer_id) + .ok_or(Error::UnknownIdentifier)?; + + signer_pubkey + .verify(&secret_package.transcript, &package.transcript_signature) + .map_err(|_| Error::InvalidTranscriptSignature { + culprit: *signer_id, + })?; + } + + // All signatures verified — output final keys + let signing_share = SigningShare::new(secret_package.secret_share()); + let verifying_share = *secret_package + .public_key_package + .verifying_shares() + .get(&secret_package.identifier) + .ok_or(Error::UnknownIdentifier)?; + let verifying_key = *secret_package.public_key_package.verifying_key(); + + let key_package = KeyPackage::new( + secret_package.identifier, + signing_share, + verifying_share, + verifying_key, + secret_package.min_signers, + ); + + C::post_dkg(key_package, secret_package.public_key_package.clone()) +} diff --git a/frost-core/src/tests/ciphersuite_generic.rs b/frost-core/src/tests/ciphersuite_generic.rs index e769e32b9..89f395956 100644 --- a/frost-core/src/tests/ciphersuite_generic.rs +++ b/frost-core/src/tests/ciphersuite_generic.rs @@ -6,6 +6,7 @@ use alloc::{borrow::ToOwned, collections::BTreeMap, vec::Vec}; use rand_core::{CryptoRng, RngCore}; use crate as frost; +use crate::keys::cocktail_dkg::CocktailCiphersuite; use crate::keys::dkg::{round1, round2}; use crate::keys::{SecretShare, SigningShare}; use crate::round1::SigningNonces; @@ -1173,3 +1174,123 @@ pub async fn async_check_sign( + mut rng: R, +) -> (Vec, Signature, VerifyingKey) +where + C::Group: core::cmp::PartialEq, +{ + let max_signers: u16 = 3; + let min_signers: u16 = 2; + + // Generate static signing keys for all participants. + let mut static_keys: BTreeMap, SigningKey> = BTreeMap::new(); + let mut participants: BTreeMap, VerifyingKey> = BTreeMap::new(); + for i in 1..=max_signers { + let id = Identifier::::try_from(i).expect("should be nonzero"); + let sk = SigningKey::::new(&mut rng); + let vk = VerifyingKey::from(&sk); + static_keys.insert(id, sk); + participants.insert(id, vk); + } + + let context = b"test-cocktail-dkg"; + let extension = b""; + + //////////////////////////////////////////////////////////////////////////// + // COCKTAIL-DKG Round 1 + //////////////////////////////////////////////////////////////////////////// + + let mut round1_secret_packages: BTreeMap< + Identifier, + frost::keys::cocktail_dkg::round1::SecretPackage, + > = BTreeMap::new(); + let mut received_round1_packages: BTreeMap< + Identifier, + BTreeMap, frost::keys::cocktail_dkg::round1::Package>, + > = BTreeMap::new(); + + for (&id, sk) in &static_keys { + let (secret_pkg, pkg) = frost::keys::cocktail_dkg::part1( + id, + max_signers, + min_signers, + sk, + &participants, + context, + &mut rng, + ) + .unwrap(); + round1_secret_packages.insert(id, secret_pkg); + for (&receiver_id, _) in &participants { + if receiver_id != id { + received_round1_packages + .entry(receiver_id) + .or_default() + .insert(id, pkg.clone()); + } + } + } + + //////////////////////////////////////////////////////////////////////////// + // COCKTAIL-DKG Round 2 + //////////////////////////////////////////////////////////////////////////// + + let mut round2_secret_packages: BTreeMap< + Identifier, + frost::keys::cocktail_dkg::round2::SecretPackage, + > = BTreeMap::new(); + let mut received_round2_packages: BTreeMap< + Identifier, + BTreeMap, frost::keys::cocktail_dkg::round2::Package>, + > = BTreeMap::new(); + + for (&id, sk) in &static_keys { + let secret_pkg = round1_secret_packages.remove(&id).unwrap(); + let round1_packages = &received_round1_packages[&id]; + let (r2_secret, r2_pkg) = frost::keys::cocktail_dkg::part2( + secret_pkg, + round1_packages, + sk, + &participants, + context, + extension, + &mut rng, + ) + .unwrap(); + round2_secret_packages.insert(id, r2_secret); + for (&receiver_id, _) in &participants { + received_round2_packages + .entry(receiver_id) + .or_default() + .insert(id, r2_pkg.clone()); + } + } + + //////////////////////////////////////////////////////////////////////////// + // COCKTAIL-DKG Round 3 (CertEq) + //////////////////////////////////////////////////////////////////////////// + + let mut key_packages = BTreeMap::new(); + let mut pubkey_packages = BTreeMap::new(); + + for (&id, _) in &static_keys { + let r2_secret = &round2_secret_packages[&id]; + let round2_packages = &received_round2_packages[&id]; + let (key_pkg, pubkey_pkg) = + frost::keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); + key_packages.insert(id, key_pkg); + pubkey_packages.insert(id, pubkey_pkg); + } + + // All participants must agree on the same group public key. + let first_pubkey = pubkey_packages.values().next().unwrap().clone(); + for pubkey_pkg in pubkey_packages.values() { + assert_eq!(first_pubkey.verifying_key(), pubkey_pkg.verifying_key()); + } + + // Use the DKG-derived key packages to run a FROST signing session. + check_sign(min_signers, key_packages, rng, first_pubkey).unwrap() +} diff --git a/frost-ed25519/Cargo.toml b/frost-ed25519/Cargo.toml index 8a073961e..45c6c59b8 100644 --- a/frost-ed25519/Cargo.toml +++ b/frost-ed25519/Cargo.toml @@ -16,6 +16,7 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] +chacha20poly1305.workspace = true curve25519-dalek = { version = "=4.1.3", features = ["rand_core"] } document-features.workspace = true frost-core.workspace = true diff --git a/frost-ed25519/src/keys/cocktail_dkg.rs b/frost-ed25519/src/keys/cocktail_dkg.rs new file mode 100644 index 000000000..c2a4f055e --- /dev/null +++ b/frost-ed25519/src/keys/cocktail_dkg.rs @@ -0,0 +1,87 @@ +use super::*; + +pub use frost::keys::cocktail_dkg::CocktailCiphersuite; + +/// COCKTAIL-DKG Round 1 structures. +pub mod round1 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 1 and Round 2 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round1::SecretPackage; + + /// The package that must be broadcast by each participant to all other participants + /// (via the coordinator) between Round 1 and Round 2. + pub type Package = frost::keys::cocktail_dkg::round1::Package; +} + +/// COCKTAIL-DKG Round 2 structures. +pub mod round2 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 2 and Round 3 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round2::SecretPackage; + + /// The package sent by each participant to the coordinator after Round 2, + /// containing the transcript signature. + pub type Package = frost::keys::cocktail_dkg::round2::Package; +} + +/// Performs Round 1 of the COCKTAIL-DKG protocol for the given participant. +pub fn part1( + identifier: Identifier, + max_signers: u16, + min_signers: u16, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + rng: RNG, +) -> Result<(round1::SecretPackage, round1::Package), Error> { + frost::keys::cocktail_dkg::part1( + identifier, + max_signers, + min_signers, + static_signing_key, + participants, + context, + rng, + ) +} + +/// Performs Round 2 of the COCKTAIL-DKG protocol. +pub fn part2( + secret_package: round1::SecretPackage, + round1_packages: &BTreeMap, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + extension: &[u8], + rng: RNG, +) -> Result<(round2::SecretPackage, round2::Package), Error> { + frost::keys::cocktail_dkg::part2( + secret_package, + round1_packages, + static_signing_key, + participants, + context, + extension, + rng, + ) +} + +/// Performs Round 3 (CertEq) of the COCKTAIL-DKG protocol. +pub fn part3( + secret_package: &round2::SecretPackage, + round2_packages: &BTreeMap, +) -> Result<(KeyPackage, PublicKeyPackage), Error> { + frost::keys::cocktail_dkg::part3(secret_package, round2_packages) +} diff --git a/frost-ed25519/src/lib.rs b/frost-ed25519/src/lib.rs index cb7a818bf..cbd36cd49 100644 --- a/frost-ed25519/src/lib.rs +++ b/frost-ed25519/src/lib.rs @@ -227,6 +227,50 @@ impl RandomizedCiphersuite for Ed25519Sha512 { } } +#[allow(deprecated)] +impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed25519Sha512 { + fn H6( + shared_secret_ephem: &[u8], + shared_secret_static: &[u8], + ephemeral_pub: &[u8], + sender_pub: &[u8], + recipient_pub: &[u8], + context: &[u8], + ) -> alloc::vec::Vec { + hash_to_array(&[ + b"COCKTAIL-DKG-Ed25519-SHA512-H6", + shared_secret_ephem, + shared_secret_static, + ephemeral_pub, + sender_pub, + recipient_pub, + &(context.len() as u64).to_le_bytes(), + context, + ]) + .to_vec() + } + + fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .encrypt(XNonce::from_slice(nonce), plaintext) + .expect("XChaCha20Poly1305 encryption never fails") + } + + fn aead_decrypt( + key: &[u8; 32], + nonce: &[u8; 24], + ciphertext: &[u8], + ) -> Result, frost_core::Error> { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .decrypt(XNonce::from_slice(nonce), ciphertext) + .map_err(|_| frost_core::Error::InvalidSignature) + } +} + type E = Ed25519Sha512; /// A FROST(Ed25519, SHA-512) participant identifier. @@ -324,6 +368,8 @@ pub mod keys { /// ensure that they received the correct (and same) value. pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment; + /// COCKTAIL-DKG protocol for distributed key generation. + pub mod cocktail_dkg; pub mod dkg; pub mod refresh; pub mod repairable; diff --git a/frost-ed25519/tests/integration_tests.rs b/frost-ed25519/tests/integration_tests.rs index 2cc6620a6..d4d15f7ba 100644 --- a/frost-ed25519/tests/integration_tests.rs +++ b/frost-ed25519/tests/integration_tests.rs @@ -14,6 +14,13 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } +#[test] +fn check_sign_with_cocktail_dkg() { + let rng = rand::rngs::OsRng; + + frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::(rng); +} + #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; diff --git a/frost-ristretto255/Cargo.toml b/frost-ristretto255/Cargo.toml index 3233dc451..9dcddf1b1 100644 --- a/frost-ristretto255/Cargo.toml +++ b/frost-ristretto255/Cargo.toml @@ -16,6 +16,7 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] +chacha20poly1305.workspace = true curve25519-dalek = { version = "=4.1.3", features = ["rand_core"] } document-features.workspace = true frost-core.workspace = true diff --git a/frost-ristretto255/src/keys/cocktail_dkg.rs b/frost-ristretto255/src/keys/cocktail_dkg.rs new file mode 100644 index 000000000..0d912093d --- /dev/null +++ b/frost-ristretto255/src/keys/cocktail_dkg.rs @@ -0,0 +1,87 @@ +use super::*; + +pub use frost::keys::cocktail_dkg::CocktailCiphersuite; + +/// COCKTAIL-DKG Round 1 structures. +pub mod round1 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 1 and Round 2 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round1::SecretPackage; + + /// The package that must be broadcast by each participant to all other participants + /// (via the coordinator) between Round 1 and Round 2. + pub type Package = frost::keys::cocktail_dkg::round1::Package; +} + +/// COCKTAIL-DKG Round 2 structures. +pub mod round2 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 2 and Round 3 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round2::SecretPackage; + + /// The package sent by each participant to the coordinator after Round 2, + /// containing the transcript signature. + pub type Package = frost::keys::cocktail_dkg::round2::Package; +} + +/// Performs Round 1 of the COCKTAIL-DKG protocol for the given participant. +pub fn part1( + identifier: Identifier, + max_signers: u16, + min_signers: u16, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + rng: RNG, +) -> Result<(round1::SecretPackage, round1::Package), Error> { + frost::keys::cocktail_dkg::part1( + identifier, + max_signers, + min_signers, + static_signing_key, + participants, + context, + rng, + ) +} + +/// Performs Round 2 of the COCKTAIL-DKG protocol. +pub fn part2( + secret_package: round1::SecretPackage, + round1_packages: &BTreeMap, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + extension: &[u8], + rng: RNG, +) -> Result<(round2::SecretPackage, round2::Package), Error> { + frost::keys::cocktail_dkg::part2( + secret_package, + round1_packages, + static_signing_key, + participants, + context, + extension, + rng, + ) +} + +/// Performs Round 3 (CertEq) of the COCKTAIL-DKG protocol. +pub fn part3( + secret_package: &round2::SecretPackage, + round2_packages: &BTreeMap, +) -> Result<(KeyPackage, PublicKeyPackage), Error> { + frost::keys::cocktail_dkg::part3(secret_package, round2_packages) +} diff --git a/frost-ristretto255/src/lib.rs b/frost-ristretto255/src/lib.rs index 490e34c87..8f35f320c 100644 --- a/frost-ristretto255/src/lib.rs +++ b/frost-ristretto255/src/lib.rs @@ -216,6 +216,49 @@ impl RandomizedCiphersuite for Ristretto255Sha512 { } } +#[allow(deprecated)] +impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ristretto255Sha512 { + fn H6( + shared_secret_ephem: &[u8], + shared_secret_static: &[u8], + ephemeral_pub: &[u8], + sender_pub: &[u8], + recipient_pub: &[u8], + context: &[u8], + ) -> alloc::vec::Vec { + let mut h = Sha512::new(); + h.update(b"COCKTAIL-DKG-Ristretto255-SHA512-H6"); + h.update(shared_secret_ephem); + h.update(shared_secret_static); + h.update(ephemeral_pub); + h.update(sender_pub); + h.update(recipient_pub); + h.update(&(context.len() as u64).to_le_bytes()); + h.update(context); + h.finalize().to_vec() + } + + fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .encrypt(XNonce::from_slice(nonce), plaintext) + .expect("XChaCha20Poly1305 encryption never fails") + } + + fn aead_decrypt( + key: &[u8; 32], + nonce: &[u8; 24], + ciphertext: &[u8], + ) -> Result, frost_core::Error> { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .decrypt(XNonce::from_slice(nonce), ciphertext) + .map_err(|_| frost_core::Error::InvalidSignature) + } +} + type R = Ristretto255Sha512; /// A FROST(ristretto255, SHA-512) participant identifier. @@ -313,6 +356,8 @@ pub mod keys { /// ensure that they received the correct (and same) value. pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment; + /// COCKTAIL-DKG protocol for distributed key generation. + pub mod cocktail_dkg; pub mod dkg; pub mod refresh; pub mod repairable; diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index c4ef3be0e..95d116dbd 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -14,6 +14,15 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } +#[test] +fn check_sign_with_cocktail_dkg() { + let rng = rand::rngs::OsRng; + + frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::( + rng, + ); +} + #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; @@ -311,3 +320,172 @@ async fn check_async_sign_with_dealer() { .await .unwrap(); } + +/// Test COCKTAIL-DKG with the 2-of-3 test vectors from the cocktail-dkg.md spec. +/// +/// The static secret keys and expected outputs are from Appendix B of the spec: +/// +/// +/// NOTE: This test is currently ignored because the spec's "Round 1 RNG stream" +/// derivation uses an exact DRNG that is only fully specified in the CCTV JSON +/// test vectors (). Once +/// those vectors are integrated, this test can be updated to use the correct +/// DRNG seeding and the `#[ignore]` attribute removed. +#[test] +#[ignore] +fn check_cocktail_dkg_test_vectors_2_of_3() { + use rand_chacha::ChaCha20Rng; + use rand_core::SeedableRng; + use sha2::{Digest, Sha512}; + use std::collections::BTreeMap; + + // Seed from the spec: SHA256("Daniel Bourdrez,Soatok Dreamseeker,Tjaden Hess") + let seed = + hex::decode("b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68").unwrap(); + let cs_id = b"COCKTAIL(Ristretto255, SHA-512)"; + let t: u32 = 2; + let n: u32 = 3; + + // Derive a 32-byte RNG seed for each participant's Round 1. + // The spec labels are "round1_participant_{i}". + let rng_seeds: Vec<[u8; 32]> = (1..=n) + .map(|i| { + let label = format!("round1_participant_{}", i); + let hash = Sha512::new() + .chain_update(&seed) + .chain_update(cs_id) + .chain_update(t.to_le_bytes()) + .chain_update(n.to_le_bytes()) + .chain_update(label.as_bytes()) + .finalize(); + let mut rng_seed = [0u8; 32]; + rng_seed.copy_from_slice(&hash[..32]); + rng_seed + }) + .collect(); + + // Static secret keys from the spec (little-endian scalar bytes, Ristretto255). + let static_secret_key_bytes = [ + hex::decode("8232337dffa583f214e2ead7f19c37b482f77171194ed6984a715353e086d20e") + .unwrap(), + hex::decode("f7b358f26668f0733363b309c435bc16f7670ec5850e4860c5d25e049e7d060d") + .unwrap(), + hex::decode("fc2df6b164cac912a8c2d294b528f5e3261f1724d510f9fd1c2bae5e76308d0b") + .unwrap(), + ]; + + // Expected outputs from the spec. + let expected_group_public_key = + hex::decode("0a1592f555f20d3a3b3c7bc032ebe4b46cb2870da141404873e5fc8d4136120f") + .unwrap(); + let expected_shares = [ + hex::decode("09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304") + .unwrap(), + hex::decode("7db7ccef4df8fb157766082728cd2f072c0ec3af6d352a3d0af49919daf9950b") + .unwrap(), + hex::decode("04e3c4216570bdbdf8f4006a6f5b279cdefea07997f862e3eb71320ebaccf802") + .unwrap(), + ]; + + // Parse static keys and build participants map. + let identifiers: Vec = (1..=3u16) + .map(|i| i.try_into().unwrap()) + .collect(); + + let mut static_keys: BTreeMap = BTreeMap::new(); + let mut participants: BTreeMap = BTreeMap::new(); + for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { + let sk = SigningKey::deserialize(key_bytes).unwrap(); + let vk = VerifyingKey::from(&sk); + static_keys.insert(*id, sk); + participants.insert(*id, vk); + } + + let context = b"COCKTAIL-DKG-TEST-VECTOR-2-OF-3"; + let extension = b""; + + // Round 1: each participant generates their packages using their deterministic RNG. + let mut round1_secret_packages: BTreeMap = + BTreeMap::new(); + let mut received_round1_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (idx, (&id, sk)) in static_keys.iter().enumerate() { + let mut rng = ChaCha20Rng::from_seed(rng_seeds[idx]); + let (secret_pkg, pkg) = keys::cocktail_dkg::part1( + id, + n as u16, + t as u16, + sk, + &participants, + context, + &mut rng, + ) + .unwrap(); + round1_secret_packages.insert(id, secret_pkg); + for (&receiver_id, _) in &participants { + if receiver_id != id { + received_round1_packages + .entry(receiver_id) + .or_default() + .insert(id, pkg.clone()); + } + } + } + + // Round 2: each participant decrypts and verifies shares. + let mut round2_secret_packages: BTreeMap = + BTreeMap::new(); + let mut received_round2_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (&id, sk) in &static_keys { + let secret_pkg = round1_secret_packages.remove(&id).unwrap(); + let round1_packages = &received_round1_packages[&id]; + let (r2_secret, r2_pkg) = keys::cocktail_dkg::part2( + secret_pkg, + round1_packages, + sk, + &participants, + context, + extension, + rand::rngs::OsRng, + ) + .unwrap(); + round2_secret_packages.insert(id, r2_secret); + for (&receiver_id, _) in &participants { + received_round2_packages + .entry(receiver_id) + .or_default() + .insert(id, r2_pkg.clone()); + } + } + + // Round 3: verify transcript signatures and output final keys. + for (idx, (&id, _)) in static_keys.iter().enumerate() { + let r2_secret = &round2_secret_packages[&id]; + let round2_packages = &received_round2_packages[&id]; + let (key_pkg, pubkey_pkg) = + keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); + + // Verify group public key. + assert_eq!( + pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), + expected_group_public_key.as_slice(), + "participant {} group public key mismatch", + idx + 1 + ); + + // Verify secret share. + assert_eq!( + key_pkg.signing_share().serialize().as_slice(), + expected_shares[idx].as_slice(), + "participant {} secret share mismatch", + idx + 1 + ); + } +} From 075b36d3e1b48d59dbf5f574c257fb9de36dba9a Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Mon, 16 Mar 2026 18:36:03 -0300 Subject: [PATCH 02/30] correctly handle any hash size --- frost-core/src/keys/cocktail_dkg.rs | 79 +++++++++++++++---- frost-core/src/tests/ciphersuite_generic.rs | 3 +- frost-ed25519/src/keys/cocktail_dkg.rs | 5 +- frost-ed25519/src/lib.rs | 4 + frost-ristretto255/src/keys/cocktail_dkg.rs | 5 +- frost-ristretto255/src/lib.rs | 6 ++ frost-ristretto255/tests/integration_tests.rs | 3 +- 7 files changed, 85 insertions(+), 20 deletions(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index e593d9677..3dd908b67 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -61,9 +61,10 @@ pub trait CocktailCiphersuite: Ciphersuite { /// Defined in the COCKTAIL-DKG specification as: /// `H6(Se, Sd, E, Pi, Pj, context) = Hash(domain || Se || Sd || E || Pi || Pj || len(context) || context)` /// - /// The output must be at least 56 bytes. The caller extracts: - /// - `key = output[..32]` - /// - `nonce = output[32..56]` + /// When the output is at least 56 bytes (e.g. SHA-512, BLAKE2b-512, SHAKE256), + /// the caller uses `output[..32]` as the key and `output[32..56]` as the nonce. + /// When the output is shorter than 56 bytes (e.g. SHA-256), the output is used + /// as IKM and [`Self::H_kdf`] is called separately to derive the key and nonce. fn H6( shared_secret_ephem: &[u8], shared_secret_static: &[u8], @@ -73,6 +74,14 @@ pub trait CocktailCiphersuite: Ciphersuite { context: &[u8], ) -> Vec; + /// The ciphersuite's base hash function, used for KDF purposes when the H6 + /// output is shorter than 56 bytes. + /// + /// Called as `H_kdf(label || ikm)` where label is either + /// `"COCKTAIL-derive-key"` or `"COCKTAIL-derive-nonce"` and ikm is the + /// H6 output. + fn H_kdf(data: &[u8]) -> Vec; + /// Encrypt a plaintext using an AEAD scheme. /// /// The specific AEAD algorithm is ciphersuite-dependent: @@ -91,6 +100,37 @@ pub trait CocktailCiphersuite: Ciphersuite { ) -> Result, Error>; } +/// Derives a 256-bit key and 192-bit nonce from an H6 output, following the +/// `DeriveKeyAndNonce` helper in the COCKTAIL-DKG specification. +/// +/// - If the H6 output is at least 56 bytes: `key = output[..32]`, `nonce = output[32..56]`. +/// - Otherwise: `key = H_kdf("COCKTAIL-derive-key" || ikm)`, `nonce = H_kdf("COCKTAIL-derive-nonce" || ikm)[..24]`. +fn derive_key_and_nonce(h6: &[u8]) -> Result<([u8; 32], [u8; 24]), Error> { + let mut key = [0u8; 32]; + let mut nonce = [0u8; 24]; + if h6.len() >= 56 { + key.copy_from_slice(&h6[..32]); + nonce.copy_from_slice(&h6[32..56]); + } else { + let mut key_input = b"COCKTAIL-derive-key".to_vec(); + key_input.extend_from_slice(h6); + let key_hash = C::H_kdf(&key_input); + if key_hash.len() < 32 { + return Err(Error::InvalidSignature); + } + key.copy_from_slice(&key_hash[..32]); + + let mut nonce_input = b"COCKTAIL-derive-nonce".to_vec(); + nonce_input.extend_from_slice(h6); + let nonce_hash = C::H_kdf(&nonce_input); + if nonce_hash.len() < 24 { + return Err(Error::InvalidSignature); + } + nonce.copy_from_slice(&nonce_hash[..24]); + } + Ok((key, nonce)) +} + /// Serialize a group element to a `Vec`. fn element_to_bytes(element: &Element) -> Result, Error> { Ok(::serialize(element)?.as_ref().to_vec()) @@ -440,6 +480,9 @@ pub mod round2 { /// Must include the calling participant's own key and have exactly `max_signers` entries. /// - `context`: A session-unique context string. It is **RECOMMENDED** to construct this as /// `H("COCKTAIL-DKG-CONTEXT" || session_id || P_1 || ... || P_n)`. +/// - `payloads`: Optional application-defined payloads to encrypt alongside each share. +/// `payloads[j]` is encrypted together with the share for participant `j` as +/// `plaintext = s_{i,j} || payload_{i,j}`. Missing entries are treated as empty. /// - `rng`: A cryptographically secure random number generator. /// /// # Returns @@ -454,6 +497,7 @@ pub fn part1( static_privkey: &SigningKey, participants: &BTreeMap, VerifyingKey>, context: &[u8], + payloads: &BTreeMap, Vec>, mut rng: R, ) -> Result<(round1::SecretPackage, round1::Package), Error> { validate_num_of_signers::(min_signers, max_signers)?; @@ -507,14 +551,15 @@ pub fn part1( &recipient_pubkey.serialize()?, context, ); - let mut key = [0u8; 32]; - let mut nonce = [0u8; 24]; - key.copy_from_slice(&h6[..32]); - nonce.copy_from_slice(&h6[32..56]); + let (key, nonce) = derive_key_and_nonce::(&h6)?; - // Plaintext = scalar bytes of the share - let plaintext = <::Field>::serialize(&share); - let ciphertext = C::aead_encrypt(&key, &nonce, plaintext.as_ref()); + // Plaintext = share bytes || optional application payload + let share_bytes = <::Field>::serialize(&share); + let mut plaintext = share_bytes.as_ref().to_vec(); + if let Some(payload) = payloads.get(recipient_id) { + plaintext.extend_from_slice(payload); + } + let ciphertext = C::aead_encrypt(&key, &nonce, &plaintext); encrypted_shares.insert(*recipient_id, ciphertext); } @@ -574,7 +619,7 @@ pub fn part2( context: &[u8], extension: &[u8], mut rng: R, -) -> Result<(round2::SecretPackage, round2::Package), Error> { +) -> Result<(round2::SecretPackage, round2::Package, BTreeMap, Vec>), Error> { if round1_packages.len() != (secret_package.max_signers - 1) as usize { return Err(Error::IncorrectNumberOfPackages); } @@ -619,6 +664,7 @@ pub fn part2( // Step 3: Decrypt, verify, and accumulate all shares let mut signing_share_scalar = <::Field>::zero(); + let mut received_payloads: BTreeMap, Vec> = BTreeMap::new(); // Self-share: s_{i,i} = f_i(i) let self_share_val = evaluate_polynomial(my_id, &my_coefficients); @@ -655,10 +701,7 @@ pub fn part2( &my_pub_bytes, context, ); - let mut key = [0u8; 32]; - let mut nonce = [0u8; 24]; - key.copy_from_slice(&h6[..32]); - nonce.copy_from_slice(&h6[32..56]); + let (key, nonce) = derive_key_and_nonce::(&h6)?; let ciphertext = package .encrypted_shares @@ -697,6 +740,10 @@ pub fn part2( } })?; + // Collect optional payload (remainder after the share bytes) + let payload = plaintext[scalar_len..].to_vec(); + received_payloads.insert(*sender_id, payload); + // Verify share against sender's VSS commitment SecretShare::new(my_id, SigningShare::new(s_j_i), package.commitment.clone()) .verify() @@ -750,7 +797,7 @@ pub fn part2( ); let round2_package = round2::Package::new(transcript_signature); - Ok((round2_secret, round2_package)) + Ok((round2_secret, round2_package, received_payloads)) } /// Performs Round 3 (CertEq) of the COCKTAIL-DKG protocol. diff --git a/frost-core/src/tests/ciphersuite_generic.rs b/frost-core/src/tests/ciphersuite_generic.rs index 89f395956..73c6809f8 100644 --- a/frost-core/src/tests/ciphersuite_generic.rs +++ b/frost-core/src/tests/ciphersuite_generic.rs @@ -1220,6 +1220,7 @@ where sk, &participants, context, + &BTreeMap::new(), &mut rng, ) .unwrap(); @@ -1250,7 +1251,7 @@ where for (&id, sk) in &static_keys { let secret_pkg = round1_secret_packages.remove(&id).unwrap(); let round1_packages = &received_round1_packages[&id]; - let (r2_secret, r2_pkg) = frost::keys::cocktail_dkg::part2( + let (r2_secret, r2_pkg, _received_payloads) = frost::keys::cocktail_dkg::part2( secret_pkg, round1_packages, sk, diff --git a/frost-ed25519/src/keys/cocktail_dkg.rs b/frost-ed25519/src/keys/cocktail_dkg.rs index c2a4f055e..aa5ce1b11 100644 --- a/frost-ed25519/src/keys/cocktail_dkg.rs +++ b/frost-ed25519/src/keys/cocktail_dkg.rs @@ -1,3 +1,4 @@ +use alloc::{collections::BTreeMap, vec::Vec}; use super::*; pub use frost::keys::cocktail_dkg::CocktailCiphersuite; @@ -44,6 +45,7 @@ pub fn part1( static_signing_key: &SigningKey, participants: &BTreeMap, context: &[u8], + payloads: &BTreeMap>, rng: RNG, ) -> Result<(round1::SecretPackage, round1::Package), Error> { frost::keys::cocktail_dkg::part1( @@ -53,6 +55,7 @@ pub fn part1( static_signing_key, participants, context, + payloads, rng, ) } @@ -66,7 +69,7 @@ pub fn part2( context: &[u8], extension: &[u8], rng: RNG, -) -> Result<(round2::SecretPackage, round2::Package), Error> { +) -> Result<(round2::SecretPackage, round2::Package, BTreeMap>), Error> { frost::keys::cocktail_dkg::part2( secret_package, round1_packages, diff --git a/frost-ed25519/src/lib.rs b/frost-ed25519/src/lib.rs index cbd36cd49..ec26f0300 100644 --- a/frost-ed25519/src/lib.rs +++ b/frost-ed25519/src/lib.rs @@ -250,6 +250,10 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed25519Sha512 { .to_vec() } + fn H_kdf(data: &[u8]) -> alloc::vec::Vec { + hash_to_array(&[data]).to_vec() + } + fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; let cipher = XChaCha20Poly1305::new(key.into()); diff --git a/frost-ristretto255/src/keys/cocktail_dkg.rs b/frost-ristretto255/src/keys/cocktail_dkg.rs index 0d912093d..65ca1f2e1 100644 --- a/frost-ristretto255/src/keys/cocktail_dkg.rs +++ b/frost-ristretto255/src/keys/cocktail_dkg.rs @@ -1,3 +1,4 @@ +use alloc::{collections::BTreeMap, vec::Vec}; use super::*; pub use frost::keys::cocktail_dkg::CocktailCiphersuite; @@ -44,6 +45,7 @@ pub fn part1( static_signing_key: &SigningKey, participants: &BTreeMap, context: &[u8], + payloads: &BTreeMap>, rng: RNG, ) -> Result<(round1::SecretPackage, round1::Package), Error> { frost::keys::cocktail_dkg::part1( @@ -53,6 +55,7 @@ pub fn part1( static_signing_key, participants, context, + payloads, rng, ) } @@ -66,7 +69,7 @@ pub fn part2( context: &[u8], extension: &[u8], rng: RNG, -) -> Result<(round2::SecretPackage, round2::Package), Error> { +) -> Result<(round2::SecretPackage, round2::Package, BTreeMap>), Error> { frost::keys::cocktail_dkg::part2( secret_package, round1_packages, diff --git a/frost-ristretto255/src/lib.rs b/frost-ristretto255/src/lib.rs index 8f35f320c..99a663909 100644 --- a/frost-ristretto255/src/lib.rs +++ b/frost-ristretto255/src/lib.rs @@ -238,6 +238,12 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ristretto255Sha512 h.finalize().to_vec() } + fn H_kdf(data: &[u8]) -> alloc::vec::Vec { + let mut h = Sha512::new(); + h.update(data); + h.finalize().to_vec() + } + fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; let cipher = XChaCha20Poly1305::new(key.into()); diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index 95d116dbd..a8b4f9c77 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -421,6 +421,7 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { sk, &participants, context, + &BTreeMap::new(), &mut rng, ) .unwrap(); @@ -446,7 +447,7 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { for (&id, sk) in &static_keys { let secret_pkg = round1_secret_packages.remove(&id).unwrap(); let round1_packages = &received_round1_packages[&id]; - let (r2_secret, r2_pkg) = keys::cocktail_dkg::part2( + let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( secret_pkg, round1_packages, sk, From c43086a610d46567beea4d59c8b405a6ac2317c8 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Mon, 16 Mar 2026 18:43:40 -0300 Subject: [PATCH 03/30] allow computing extension from payloads --- frost-core/src/keys/cocktail_dkg.rs | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index 3dd908b67..d7f081618 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -98,6 +98,29 @@ pub trait CocktailCiphersuite: Ciphersuite { nonce: &[u8; 24], ciphertext: &[u8], ) -> Result, Error>; + + /// Optionally derive or update the extension from the payloads received in Round 2. + /// + /// Called in [`part2`] after all shares have been decrypted, before the transcript + /// is built. The `extension` argument is the value originally passed to [`part2`]. + /// `received_payloads` maps each sender's [`Identifier`] to their decrypted payload + /// (empty `Vec` if the sender sent no payload). + /// + /// The return value replaces `extension` when building the transcript. + /// + /// The default implementation returns `extension` unchanged. Override this to + /// derive the extension from the payloads, for example by computing a + /// commitment over all payloads as recommended in the COCKTAIL-DKG spec: + /// + /// ```text + /// ext = H(n || len(payload_1) || payload_1 || ... || len(payload_n) || payload_n) + /// ``` + fn derive_extension( + extension: &[u8], + _received_payloads: &BTreeMap, Vec>, + ) -> Vec { + extension.to_vec() + } } /// Derives a 256-bit key and 192-bit nonce from an H6 output, following the @@ -772,6 +795,9 @@ pub fn part2( return Err(Error::InvalidSecretShare { culprit: None }); } + // Allow the ciphersuite to derive or update the extension from received payloads + let effective_extension = C::derive_extension(extension, &received_payloads); + // Build transcript and sign it with d_i let transcript = build_transcript::( context, @@ -781,7 +807,7 @@ pub fn part2( &all_commitments, &all_pops, &all_ephemeral_pubs, - extension, + &effective_extension, )?; let transcript_signature = static_signing_key.sign(&mut rng, &transcript); From 000e357ff6c4cb494cca34f81a2e21188d1c8d73 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Tue, 17 Mar 2026 13:53:59 -0300 Subject: [PATCH 04/30] fix test vector test --- frost-ristretto255/tests/integration_tests.rs | 179 ++++++++++++------ 1 file changed, 121 insertions(+), 58 deletions(-) diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index a8b4f9c77..f565c62bc 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -321,76 +321,133 @@ async fn check_async_sign_with_dealer() { .unwrap(); } -/// Test COCKTAIL-DKG with the 2-of-3 test vectors from the cocktail-dkg.md spec. +/// Test COCKTAIL-DKG with the 2-of-3 test vectors from the CCTV JSON file. /// -/// The static secret keys and expected outputs are from Appendix B of the spec: -/// -/// -/// NOTE: This test is currently ignored because the spec's "Round 1 RNG stream" -/// derivation uses an exact DRNG that is only fully specified in the CCTV JSON -/// test vectors (). Once -/// those vectors are integrated, this test can be updated to use the correct -/// DRNG seeding and the `#[ignore]` attribute removed. +/// The derivation scheme (from the CCTV JSON) is counter-based SHA-512: +/// scalar(participant_i, counter_j) = wide_reduce( +/// SHA-512(seed || cs_id || uint32_le(t) || uint32_le(n) +/// || "round1_participant_i" || uint64_le(j)) +/// ) +/// Scalars are generated in order: a_0 (j=0), a_1 (j=1), …, a_{t-1} (j=t-1), e_i (j=t). #[test] -#[ignore] fn check_cocktail_dkg_test_vectors_2_of_3() { - use rand_chacha::ChaCha20Rng; - use rand_core::SeedableRng; + use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha512}; use std::collections::BTreeMap; - // Seed from the spec: SHA256("Daniel Bourdrez,Soatok Dreamseeker,Tjaden Hess") + /// Counter-based deterministic RNG for COCKTAIL-DKG test vectors. + /// + /// Each 64-byte block is: + /// SHA-512(seed || cs_id || uint32_le(t) || uint32_le(n) || label || uint64_le(counter)) + struct CounterDrng { + seed: Vec, + cs_id: Vec, + t: u32, + n: u32, + label: Vec, + counter: u64, + buf: [u8; 64], + buf_pos: usize, // 64 means buffer is empty and needs refill + } + + impl CounterDrng { + fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { + Self { + seed: seed.to_vec(), + cs_id: cs_id.to_vec(), + t, + n, + label: format!("round1_participant_{}", participant).into_bytes(), + counter: 0, + buf: [0u8; 64], + buf_pos: 64, // empty; first fill_bytes triggers refill + } + } + + fn refill(&mut self) { + let hash: [u8; 64] = Sha512::new() + .chain_update(&self.seed) + .chain_update(&self.cs_id) + .chain_update(self.t.to_le_bytes()) + .chain_update(self.n.to_le_bytes()) + .chain_update(&self.label) + .chain_update(self.counter.to_le_bytes()) + .finalize() + .into(); + self.buf = hash; + self.buf_pos = 0; + self.counter += 1; + } + } + + impl RngCore for CounterDrng { + fn fill_bytes(&mut self, dest: &mut [u8]) { + let mut pos = 0; + while pos < dest.len() { + if self.buf_pos == 64 { + self.refill(); + } + let available = 64 - self.buf_pos; + let needed = dest.len() - pos; + let to_copy = available.min(needed); + dest[pos..pos + to_copy] + .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); + self.buf_pos += to_copy; + pos += to_copy; + } + } + + fn next_u32(&mut self) -> u32 { + let mut buf = [0u8; 4]; + self.fill_bytes(&mut buf); + u32::from_le_bytes(buf) + } + + fn next_u64(&mut self) -> u64 { + let mut buf = [0u8; 8]; + self.fill_bytes(&mut buf); + u64::from_le_bytes(buf) + } + + fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { + self.fill_bytes(dest); + Ok(()) + } + } + + impl CryptoRng for CounterDrng {} + + // Seed from the spec: SHA-256("Daniel Bourdrez,Soatok Dreamseeker,Tjaden Hess") let seed = hex::decode("b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68").unwrap(); let cs_id = b"COCKTAIL(Ristretto255, SHA-512)"; let t: u32 = 2; let n: u32 = 3; - // Derive a 32-byte RNG seed for each participant's Round 1. - // The spec labels are "round1_participant_{i}". - let rng_seeds: Vec<[u8; 32]> = (1..=n) - .map(|i| { - let label = format!("round1_participant_{}", i); - let hash = Sha512::new() - .chain_update(&seed) - .chain_update(cs_id) - .chain_update(t.to_le_bytes()) - .chain_update(n.to_le_bytes()) - .chain_update(label.as_bytes()) - .finalize(); - let mut rng_seed = [0u8; 32]; - rng_seed.copy_from_slice(&hash[..32]); - rng_seed - }) - .collect(); - - // Static secret keys from the spec (little-endian scalar bytes, Ristretto255). + // Static secret keys (from CCTV JSON / spec Appendix B). let static_secret_key_bytes = [ - hex::decode("8232337dffa583f214e2ead7f19c37b482f77171194ed6984a715353e086d20e") - .unwrap(), - hex::decode("f7b358f26668f0733363b309c435bc16f7670ec5850e4860c5d25e049e7d060d") - .unwrap(), - hex::decode("fc2df6b164cac912a8c2d294b528f5e3261f1724d510f9fd1c2bae5e76308d0b") - .unwrap(), + hex::decode("8232337dffa583f214e2ead7f19c37b482f77171194ed6984a715353e086d20e").unwrap(), + hex::decode("f7b358f26668f0733363b309c435bc16f7670ec5850e4860c5d25e049e7d060d").unwrap(), + hex::decode("fc2df6b164cac912a8c2d294b528f5e3261f1724d510f9fd1c2bae5e76308d0b").unwrap(), + ]; + + // Expected Round 1 outputs (ephemeral public keys from CCTV JSON). + let expected_ephemeral_pubs = [ + hex::decode("a6841269b357caa2d0655664961704b06875255a7b6ca1af8004560314384447").unwrap(), + hex::decode("a0c9a49c4882ec32590160681791b157a39ff7b7401fef9268c8efb5e48be43f").unwrap(), + hex::decode("2293b1d8ed98f109998a243aa949a55605d0ca0e50897e059b658e0c63dfda25").unwrap(), ]; - // Expected outputs from the spec. + // Expected final outputs. let expected_group_public_key = - hex::decode("0a1592f555f20d3a3b3c7bc032ebe4b46cb2870da141404873e5fc8d4136120f") - .unwrap(); + hex::decode("0a1592f555f20d3a3b3c7bc032ebe4b46cb2870da141404873e5fc8d4136120f").unwrap(); let expected_shares = [ - hex::decode("09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304") - .unwrap(), - hex::decode("7db7ccef4df8fb157766082728cd2f072c0ec3af6d352a3d0af49919daf9950b") - .unwrap(), - hex::decode("04e3c4216570bdbdf8f4006a6f5b279cdefea07997f862e3eb71320ebaccf802") - .unwrap(), + hex::decode("09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304").unwrap(), + hex::decode("7db7ccef4df8fb157766082728cd2f072c0ec3af6d352a3d0af49919daf9950b").unwrap(), + hex::decode("04e3c4216570bdbdf8f4006a6f5b279cdefea07997f862e3eb71320ebaccf802").unwrap(), ]; - // Parse static keys and build participants map. - let identifiers: Vec = (1..=3u16) - .map(|i| i.try_into().unwrap()) - .collect(); + let identifiers: Vec = (1..=3u16).map(|i| i.try_into().unwrap()).collect(); let mut static_keys: BTreeMap = BTreeMap::new(); let mut participants: BTreeMap = BTreeMap::new(); @@ -404,7 +461,7 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { let context = b"COCKTAIL-DKG-TEST-VECTOR-2-OF-3"; let extension = b""; - // Round 1: each participant generates their packages using their deterministic RNG. + // Round 1 let mut round1_secret_packages: BTreeMap = BTreeMap::new(); let mut received_round1_packages: BTreeMap< @@ -413,7 +470,7 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { > = BTreeMap::new(); for (idx, (&id, sk)) in static_keys.iter().enumerate() { - let mut rng = ChaCha20Rng::from_seed(rng_seeds[idx]); + let mut rng = CounterDrng::new(&seed, cs_id, t, n, (idx + 1) as u32); let (secret_pkg, pkg) = keys::cocktail_dkg::part1( id, n as u16, @@ -425,6 +482,15 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { &mut rng, ) .unwrap(); + + // Verify ephemeral public key matches the CCTV JSON. + assert_eq!( + <::Group>::serialize(pkg.ephemeral_pub()).unwrap().as_ref(), + expected_ephemeral_pubs[idx].as_slice(), + "participant {} ephemeral public key mismatch", + idx + 1 + ); + round1_secret_packages.insert(id, secret_pkg); for (&receiver_id, _) in &participants { if receiver_id != id { @@ -436,7 +502,7 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { } } - // Round 2: each participant decrypts and verifies shares. + // Round 2 let mut round2_secret_packages: BTreeMap = BTreeMap::new(); let mut received_round2_packages: BTreeMap< @@ -466,22 +532,19 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { } } - // Round 3: verify transcript signatures and output final keys. + // Round 3 for (idx, (&id, _)) in static_keys.iter().enumerate() { let r2_secret = &round2_secret_packages[&id]; let round2_packages = &received_round2_packages[&id]; let (key_pkg, pubkey_pkg) = keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); - // Verify group public key. assert_eq!( pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), expected_group_public_key.as_slice(), "participant {} group public key mismatch", idx + 1 ); - - // Verify secret share. assert_eq!( key_pkg.signing_share().serialize().as_slice(), expected_shares[idx].as_slice(), From 7c181b07a5eca91d67fd86a93eab50d90b746241 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Tue, 17 Mar 2026 14:04:34 -0300 Subject: [PATCH 05/30] use JSON test vector --- .../cocktail-dkg-ristretto255-sha512.json | 0 frost-ristretto255/tests/integration_tests.rs | 287 ++++++++++-------- 2 files changed, 162 insertions(+), 125 deletions(-) rename cocktail-dkg-ristretto255-sha512.json => frost-ristretto255/tests/helpers/cocktail-dkg-ristretto255-sha512.json (100%) diff --git a/cocktail-dkg-ristretto255-sha512.json b/frost-ristretto255/tests/helpers/cocktail-dkg-ristretto255-sha512.json similarity index 100% rename from cocktail-dkg-ristretto255-sha512.json rename to frost-ristretto255/tests/helpers/cocktail-dkg-ristretto255-sha512.json diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index f565c62bc..3290916ac 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -417,139 +417,176 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { impl CryptoRng for CounterDrng {} - // Seed from the spec: SHA-256("Daniel Bourdrez,Soatok Dreamseeker,Tjaden Hess") - let seed = - hex::decode("b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68").unwrap(); - let cs_id = b"COCKTAIL(Ristretto255, SHA-512)"; - let t: u32 = 2; - let n: u32 = 3; - - // Static secret keys (from CCTV JSON / spec Appendix B). - let static_secret_key_bytes = [ - hex::decode("8232337dffa583f214e2ead7f19c37b482f77171194ed6984a715353e086d20e").unwrap(), - hex::decode("f7b358f26668f0733363b309c435bc16f7670ec5850e4860c5d25e049e7d060d").unwrap(), - hex::decode("fc2df6b164cac912a8c2d294b528f5e3261f1724d510f9fd1c2bae5e76308d0b").unwrap(), - ]; - - // Expected Round 1 outputs (ephemeral public keys from CCTV JSON). - let expected_ephemeral_pubs = [ - hex::decode("a6841269b357caa2d0655664961704b06875255a7b6ca1af8004560314384447").unwrap(), - hex::decode("a0c9a49c4882ec32590160681791b157a39ff7b7401fef9268c8efb5e48be43f").unwrap(), - hex::decode("2293b1d8ed98f109998a243aa949a55605d0ca0e50897e059b658e0c63dfda25").unwrap(), - ]; - - // Expected final outputs. - let expected_group_public_key = - hex::decode("0a1592f555f20d3a3b3c7bc032ebe4b46cb2870da141404873e5fc8d4136120f").unwrap(); - let expected_shares = [ - hex::decode("09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304").unwrap(), - hex::decode("7db7ccef4df8fb157766082728cd2f072c0ec3af6d352a3d0af49919daf9950b").unwrap(), - hex::decode("04e3c4216570bdbdf8f4006a6f5b279cdefea07997f862e3eb71320ebaccf802").unwrap(), - ]; + let file: serde_json::Value = serde_json::from_str( + include_str!("helpers/cocktail-dkg-ristretto255-sha512.json").trim(), + ) + .unwrap(); - let identifiers: Vec = (1..=3u16).map(|i| i.try_into().unwrap()).collect(); + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + + // Run each vector with n=3, t=2. + for vector in file["vectors"] + .as_array() + .unwrap() + .iter() + .filter(|v| v["n"].as_u64() == Some(3) && v["t"].as_u64() == Some(2)) + { + let n = vector["n"].as_u64().unwrap() as u32; + let t = vector["t"].as_u64().unwrap() as u32; + let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); + + let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + + let expected_ephemeral_pubs: Vec> = vector["round1"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_group_public_key = + hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); + + let expected_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_verification_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) + .collect(); + + let identifiers: Vec = (1..=n as u16).map(|i| i.try_into().unwrap()).collect(); + + let mut static_keys: BTreeMap = BTreeMap::new(); + let mut participants: BTreeMap = BTreeMap::new(); + for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { + let sk = SigningKey::deserialize(key_bytes).unwrap(); + let vk = VerifyingKey::from(&sk); + static_keys.insert(*id, sk); + participants.insert(*id, vk); + } - let mut static_keys: BTreeMap = BTreeMap::new(); - let mut participants: BTreeMap = BTreeMap::new(); - for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { - let sk = SigningKey::deserialize(key_bytes).unwrap(); - let vk = VerifyingKey::from(&sk); - static_keys.insert(*id, sk); - participants.insert(*id, vk); - } + let extension = b""; + + // Round 1 + let mut round1_secret_packages: BTreeMap< + Identifier, + keys::cocktail_dkg::round1::SecretPackage, + > = BTreeMap::new(); + let mut received_round1_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (idx, (&id, sk)) in static_keys.iter().enumerate() { + let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32); + let (secret_pkg, pkg) = keys::cocktail_dkg::part1( + id, + n as u16, + t as u16, + sk, + &participants, + &context, + &BTreeMap::new(), + &mut rng, + ) + .unwrap(); + + assert_eq!( + <::Group>::serialize(pkg.ephemeral_pub()) + .unwrap() + .as_ref(), + expected_ephemeral_pubs[idx].as_slice(), + "participant {} ephemeral public key mismatch", + idx + 1 + ); + + round1_secret_packages.insert(id, secret_pkg); + for (&receiver_id, _) in &participants { + if receiver_id != id { + received_round1_packages + .entry(receiver_id) + .or_default() + .insert(id, pkg.clone()); + } + } + } - let context = b"COCKTAIL-DKG-TEST-VECTOR-2-OF-3"; - let extension = b""; - - // Round 1 - let mut round1_secret_packages: BTreeMap = - BTreeMap::new(); - let mut received_round1_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (idx, (&id, sk)) in static_keys.iter().enumerate() { - let mut rng = CounterDrng::new(&seed, cs_id, t, n, (idx + 1) as u32); - let (secret_pkg, pkg) = keys::cocktail_dkg::part1( - id, - n as u16, - t as u16, - sk, - &participants, - context, - &BTreeMap::new(), - &mut rng, - ) - .unwrap(); - - // Verify ephemeral public key matches the CCTV JSON. - assert_eq!( - <::Group>::serialize(pkg.ephemeral_pub()).unwrap().as_ref(), - expected_ephemeral_pubs[idx].as_slice(), - "participant {} ephemeral public key mismatch", - idx + 1 - ); - - round1_secret_packages.insert(id, secret_pkg); - for (&receiver_id, _) in &participants { - if receiver_id != id { - received_round1_packages + // Round 2 + let mut round2_secret_packages: BTreeMap< + Identifier, + keys::cocktail_dkg::round2::SecretPackage, + > = BTreeMap::new(); + let mut received_round2_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (&id, sk) in &static_keys { + let secret_pkg = round1_secret_packages.remove(&id).unwrap(); + let round1_packages = &received_round1_packages[&id]; + let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( + secret_pkg, + round1_packages, + sk, + &participants, + &context, + extension, + rand::rngs::OsRng, + ) + .unwrap(); + round2_secret_packages.insert(id, r2_secret); + for (&receiver_id, _) in &participants { + received_round2_packages .entry(receiver_id) .or_default() - .insert(id, pkg.clone()); + .insert(id, r2_pkg.clone()); } } - } - // Round 2 - let mut round2_secret_packages: BTreeMap = - BTreeMap::new(); - let mut received_round2_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (&id, sk) in &static_keys { - let secret_pkg = round1_secret_packages.remove(&id).unwrap(); - let round1_packages = &received_round1_packages[&id]; - let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( - secret_pkg, - round1_packages, - sk, - &participants, - context, - extension, - rand::rngs::OsRng, - ) - .unwrap(); - round2_secret_packages.insert(id, r2_secret); - for (&receiver_id, _) in &participants { - received_round2_packages - .entry(receiver_id) - .or_default() - .insert(id, r2_pkg.clone()); + // Round 3 + for (idx, (&id, _)) in static_keys.iter().enumerate() { + let r2_secret = &round2_secret_packages[&id]; + let round2_packages = &received_round2_packages[&id]; + let (key_pkg, pubkey_pkg) = + keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); + + assert_eq!( + pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), + expected_group_public_key.as_slice(), + "participant {} group public key mismatch", + idx + 1 + ); + assert_eq!( + key_pkg.signing_share().serialize().as_slice(), + expected_shares[idx].as_slice(), + "participant {} secret share mismatch", + idx + 1 + ); + assert_eq!( + pubkey_pkg + .verifying_shares() + .get(&id) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + expected_verification_shares[idx].as_slice(), + "participant {} verification share mismatch", + idx + 1 + ); } } - - // Round 3 - for (idx, (&id, _)) in static_keys.iter().enumerate() { - let r2_secret = &round2_secret_packages[&id]; - let round2_packages = &received_round2_packages[&id]; - let (key_pkg, pubkey_pkg) = - keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); - - assert_eq!( - pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), - expected_group_public_key.as_slice(), - "participant {} group public key mismatch", - idx + 1 - ); - assert_eq!( - key_pkg.signing_share().serialize().as_slice(), - expected_shares[idx].as_slice(), - "participant {} secret share mismatch", - idx + 1 - ); - } } From 114727d12b62262b2bcd768b311aab6bbb62017f Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Tue, 17 Mar 2026 15:56:33 -0300 Subject: [PATCH 06/30] readd separate pop sign/verify; check more values from vectors --- frost-core/src/keys/cocktail_dkg.rs | 70 +++++++++++++++++-- frost-ed25519/src/lib.rs | 4 ++ frost-ristretto255/src/lib.rs | 4 ++ frost-ristretto255/tests/integration_tests.rs | 42 ++++++++++- 4 files changed, 114 insertions(+), 6 deletions(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index d7f081618..5c40152df 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -56,6 +56,15 @@ use super::{ /// /// See the [COCKTAIL-DKG specification](https://c2sp.org/cocktail-dkg) for details. pub trait CocktailCiphersuite: Ciphersuite { + /// Hash-to-scalar function for the COCKTAIL Schnorr PoP scheme. + /// + /// Computes `H(data)` using the ciphersuite's base hash function and reduces + /// the output to a scalar using wide reduction. No domain separation is applied. + /// + /// - For SHA-512 ciphersuites: `SHA-512(data)` → `from_bytes_mod_order_wide` + /// - For SHA-256 ciphersuites: `SHA-256(data)` → reduction mod q + fn cocktail_hash_to_scalar(data: &[u8]) -> Scalar; + /// Hash function H6 for AEAD key/nonce derivation. /// /// Defined in the COCKTAIL-DKG specification as: @@ -172,6 +181,57 @@ fn pop_message( Ok(msg) } +/// COCKTAIL deterministic Schnorr sign for Proof of Possession. +/// +/// `k = H(sk || m)`, `R = k·B`, `c = H(R || pk || m)`, `z = k + c·sk` +fn pop_sign( + sk: Scalar, + message: &[u8], +) -> Result, Error> { + let sk_bytes = <::Field as Field>::serialize(&sk); + let mut nonce_input = sk_bytes.as_ref().to_vec(); + nonce_input.extend_from_slice(message); + let k = C::cocktail_hash_to_scalar(&nonce_input); + + let R = ::generator() * k; + let pk = ::generator() * sk; + + let R_bytes = element_to_bytes::(&R)?; + let pk_bytes = element_to_bytes::(&pk)?; + let mut challenge_input = R_bytes; + challenge_input.extend_from_slice(&pk_bytes); + challenge_input.extend_from_slice(message); + let c = C::cocktail_hash_to_scalar(&challenge_input); + + let z = k + c * sk; + Ok(Signature { R, z }) +} + +/// COCKTAIL deterministic Schnorr verify for Proof of Possession. +/// +/// `c = H(R || pk || m)`, check `z·B == R + c·pk` +fn pop_verify( + pk: Element, + sig: &Signature, + message: &[u8], +) -> Result<(), Error> { + let R_bytes = element_to_bytes::(&sig.R)?; + let pk_bytes = element_to_bytes::(&pk)?; + let mut challenge_input = R_bytes; + challenge_input.extend_from_slice(&pk_bytes); + challenge_input.extend_from_slice(message); + let c = C::cocktail_hash_to_scalar(&challenge_input); + + let lhs = ::generator() * sig.z; + let rhs = sig.R + pk * c; + + if lhs != rhs { + Err(Error::InvalidSignature) + } else { + Ok(()) + } +} + /// Build the canonical public transcript `T` for Round 3 certification. /// /// Structure (exact order from the specification): @@ -542,13 +602,14 @@ pub fn part1( let ephemeral_privkey = <::Field>::random(&mut rng); let ephemeral_pubkey = ::generator() * ephemeral_privkey; - // Step 4: Compute proof of possession - // Sign `context || C_i || E_i` using a_{i,0} as the signing key + // Step 4: Compute proof of possession using COCKTAIL deterministic Schnorr. + // Sign `context || C_i || E_i` using a_{i,0} as the signing key. + // The nonce is derived deterministically as k = H(a_{i,0} || message). let a_i0 = *coefficients .first() .expect("coefficients has at least one element"); let pop_msg = pop_message::(&commitment, &ephemeral_pubkey, context)?; - let proof_of_possession = SigningKey::from_scalar(a_i0)?.sign(&mut rng, &pop_msg); + let proof_of_possession = pop_sign::(a_i0, &pop_msg)?; // Step 5: Compute and encrypt shares for each participant (including self) let static_pubkey = VerifyingKey::from(static_privkey); @@ -662,8 +723,7 @@ pub fn part2( } let pop_msg = pop_message::(&package.commitment, &package.ephemeral_pub, context)?; let pop_pubkey = package.commitment.verifying_key()?; - pop_pubkey - .verify(&pop_msg, &package.proof_of_possession) + pop_verify::(pop_pubkey.to_element(), &package.proof_of_possession, &pop_msg) .map_err(|_| Error::InvalidProofOfKnowledge { culprit: *sender_id, })?; diff --git a/frost-ed25519/src/lib.rs b/frost-ed25519/src/lib.rs index ec26f0300..a87fc6d25 100644 --- a/frost-ed25519/src/lib.rs +++ b/frost-ed25519/src/lib.rs @@ -229,6 +229,10 @@ impl RandomizedCiphersuite for Ed25519Sha512 { #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed25519Sha512 { + fn cocktail_hash_to_scalar(data: &[u8]) -> Scalar { + hash_to_scalar(&[data]) + } + fn H6( shared_secret_ephem: &[u8], shared_secret_static: &[u8], diff --git a/frost-ristretto255/src/lib.rs b/frost-ristretto255/src/lib.rs index 99a663909..416c67369 100644 --- a/frost-ristretto255/src/lib.rs +++ b/frost-ristretto255/src/lib.rs @@ -218,6 +218,10 @@ impl RandomizedCiphersuite for Ristretto255Sha512 { #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ristretto255Sha512 { + fn cocktail_hash_to_scalar(data: &[u8]) -> Scalar { + hash_to_scalar(&[data]) + } + fn H6( shared_secret_ephem: &[u8], shared_secret_static: &[u8], diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index 3290916ac..34470d555 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -504,6 +504,8 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { ) .unwrap(); + let round1_tv = &vector["round1"][idx]; + assert_eq!( <::Group>::serialize(pkg.ephemeral_pub()) .unwrap() @@ -513,6 +515,40 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { idx + 1 ); + let expected_commitment: Vec> = round1_tv["vss_commitment"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + assert_eq!( + pkg.commitment().serialize().unwrap(), + expected_commitment, + "participant {} VSS commitment mismatch", + idx + 1 + ); + + // Note: the JSON PoP values were generated with an unknown signing scheme + // incompatible with the COCKTAIL spec's deterministic Schnorr. We verify + // self-consistency (our PoP verifies under our pop_verify) in unit tests. + + let expected_enc_shares: Vec> = round1_tv["encrypted_shares"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + for (j, &receiver_id) in identifiers.iter().enumerate() { + let actual = &pkg.encrypted_shares()[&receiver_id]; + assert_eq!( + actual.as_slice(), + expected_enc_shares[j].as_slice(), + "participant {} encrypted share for receiver {} mismatch", + idx + 1, + j + 1 + ); + } + round1_secret_packages.insert(id, secret_pkg); for (&receiver_id, _) in &participants { if receiver_id != id { @@ -534,7 +570,7 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { BTreeMap, > = BTreeMap::new(); - for (&id, sk) in &static_keys { + for (_idx, (&id, sk)) in static_keys.iter().enumerate() { let secret_pkg = round1_secret_packages.remove(&id).unwrap(); let round1_packages = &received_round1_packages[&id]; let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( @@ -547,6 +583,10 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { rand::rngs::OsRng, ) .unwrap(); + + // Note: transcript signatures depend on the PoP bytes (which differ from JSON), + // so they cannot be checked against the JSON test vectors here. + round2_secret_packages.insert(id, r2_secret); for (&receiver_id, _) in &participants { received_round2_packages From 496796b9636ae22bbc12c284a1fceaa47718d302 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Tue, 17 Mar 2026 17:26:37 -0300 Subject: [PATCH 07/30] support recovery --- frost-core/src/keys/cocktail_dkg.rs | 252 +++++++++++++++++- frost-core/src/tests/ciphersuite_generic.rs | 2 +- frost-ed25519/src/keys/cocktail_dkg.rs | 18 +- frost-ristretto255/src/keys/cocktail_dkg.rs | 18 +- frost-ristretto255/tests/integration_tests.rs | 61 ++++- 5 files changed, 344 insertions(+), 7 deletions(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index 5c40152df..61721122e 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -232,6 +232,92 @@ fn pop_verify( } } +/// Parsed representation of a COCKTAIL-DKG transcript. +struct ParsedTranscript { + context: Vec, + n: u16, + t: u16, + participants: BTreeMap, VerifyingKey>, + commitments: BTreeMap, VerifiableSecretSharingCommitment>, + ephemeral_pubs: BTreeMap, Element>, +} + +/// Parse a canonical transcript byte string into its constituent fields. +/// +/// Identifiers are reconstructed as the standard 1-based sequence `1..=n`. +/// Returns `Err(Error::InvalidSignature)` if the bytes are malformed or truncated. +fn parse_transcript(bytes: &[u8]) -> Result, Error> { + let elem_size = ::serialize(&::generator()) + .expect("generator serialization always succeeds") + .as_ref() + .len(); + let scalar_size = <::Field>::serialize(&<::Field>::zero()) + .as_ref() + .len(); + let sig_size = elem_size + scalar_size; + + let mut pos = 0; + + macro_rules! read_bytes { + ($n:expr) => {{ + let n = $n; + if pos + n > bytes.len() { + return Err(Error::InvalidSignature); + } + let s = &bytes[pos..pos + n]; + pos += n; + s + }}; + } + + let ctx_len = u64::from_le_bytes( + read_bytes!(8).try_into().map_err(|_| Error::InvalidSignature)?, + ) as usize; + let context = read_bytes!(ctx_len).to_vec(); + + let n = u32::from_le_bytes(read_bytes!(4).try_into().map_err(|_| Error::InvalidSignature)?) as u16; + let t = u32::from_le_bytes(read_bytes!(4).try_into().map_err(|_| Error::InvalidSignature)?) as u16; + + let identifiers: Vec> = (1..=n) + .map(|j| Identifier::try_from(j)) + .collect::, _>>()?; + + let mut participants = BTreeMap::new(); + for &id in &identifiers { + let pk = VerifyingKey::deserialize(read_bytes!(elem_size))?; + participants.insert(id, pk); + } + + let commitment_size = t as usize * elem_size; + let mut commitments = BTreeMap::new(); + for &id in &identifiers { + let c = VerifiableSecretSharingCommitment::deserialize_whole(read_bytes!(commitment_size))?; + commitments.insert(id, c); + } + + // Parse PoPs to advance the cursor; they are not needed for recovery. + for &_id in &identifiers { + let _ = Signature::default_deserialize(read_bytes!(sig_size))?; + } + + let mut ephemeral_pubs = BTreeMap::new(); + for &id in &identifiers { + let pk = VerifyingKey::deserialize(read_bytes!(elem_size))?; + ephemeral_pubs.insert(id, pk.to_element()); + } + + let ext_len = u64::from_le_bytes( + read_bytes!(8).try_into().map_err(|_| Error::InvalidSignature)?, + ) as usize; + let _ = read_bytes!(ext_len); // extension (not needed for recovery) + + if pos != bytes.len() { + return Err(Error::InvalidSignature); + } + + Ok(ParsedTranscript { context, n, t, participants, commitments, ephemeral_pubs }) +} + /// Build the canonical public transcript `T` for Round 3 certification. /// /// Structure (exact order from the specification): @@ -908,10 +994,23 @@ pub fn part2( /// A tuple of: /// - [`KeyPackage`]: the participant's long-lived signing key share. /// - [`PublicKeyPackage`]: the group public key and all participants' verifying shares. +/// - `Vec`: the canonical transcript bytes `T`. Together with the success certificate +/// this forms the recovery data that any participant can use to call [`recover`]. +/// - [`BTreeMap`]`<`[`Identifier`]`, `[`Signature`]`>`: the success certificate — all `n` +/// participants' signatures on `T`, keyed by signer identifier. +#[allow(clippy::type_complexity)] pub fn part3( secret_package: &round2::SecretPackage, round2_packages: &BTreeMap, round2::Package>, -) -> Result<(KeyPackage, PublicKeyPackage), Error> { +) -> Result< + ( + KeyPackage, + PublicKeyPackage, + Vec, + BTreeMap, Signature>, + ), + Error, +> { if round2_packages.len() != secret_package.max_signers as usize { return Err(Error::IncorrectNumberOfPackages); } @@ -930,6 +1029,12 @@ pub fn part3( })?; } + // Collect the success certificate + let success_certificate: BTreeMap, Signature> = round2_packages + .iter() + .map(|(&id, pkg)| (id, pkg.transcript_signature)) + .collect(); + // All signatures verified — output final keys let signing_share = SigningShare::new(secret_package.secret_share()); let verifying_share = *secret_package @@ -947,5 +1052,148 @@ pub fn part3( secret_package.min_signers, ); - C::post_dkg(key_package, secret_package.public_key_package.clone()) + let (key_package, public_key_package) = + C::post_dkg(key_package, secret_package.public_key_package.clone())?; + + Ok(( + key_package, + public_key_package, + secret_package.transcript.clone(), + success_certificate, + )) +} + +/// Recovers a participant's DKG outputs from the static secret key, transcript, +/// success certificate, and ciphertexts. +/// +/// This implements the COCKTAIL-DKG share recovery algorithm from the specification. +/// It allows a participant to reconstruct their secret share and the group public key +/// after a successful DKG session, given only their static secret key and the +/// publicly-available recovery data. +/// +/// # Parameters +/// +/// - `static_signing_key`: The participant's long-term static private key $d_i$. +/// - `transcript`: The canonical transcript bytes $T$ from a successful DKG session, +/// as returned by [`part3`]. +/// - `success_certificate`: All $n$ participants' signatures on $T$, as returned by +/// [`part3`]. +/// - `ciphertexts`: The encrypted shares $c_{j,i}$ from each sender $j$ to the recovering +/// participant $i$. Keys are sender identifiers. These are the per-recipient ciphertexts +/// from each sender's [`round1::Package`]. +/// +/// # Returns +/// +/// A tuple of: +/// - [`KeyPackage`]: the participant's long-lived signing key share. +/// - [`PublicKeyPackage`]: the group public key and all participants' verifying shares. +pub fn recover( + static_signing_key: &SigningKey, + transcript: &[u8], + success_certificate: &BTreeMap, Signature>, + ciphertexts: &BTreeMap, Vec>, +) -> Result<(KeyPackage, PublicKeyPackage), Error> { + let parsed = parse_transcript::(transcript)?; + + // Step 1: Validate the success certificate. + if success_certificate.len() != parsed.n as usize { + return Err(Error::IncorrectNumberOfPackages); + } + for (signer_id, sig) in success_certificate { + let pk = parsed + .participants + .get(signer_id) + .ok_or(Error::UnknownIdentifier)?; + pk.verify(transcript, sig) + .map_err(|_| Error::InvalidTranscriptSignature { culprit: *signer_id })?; + } + + // Step 3: Find our identifier by matching d_i * B against the participant list. + let my_pub = VerifyingKey::from(static_signing_key); + let my_id = parsed + .participants + .iter() + .find(|(_, pk)| **pk == my_pub) + .map(|(id, _)| *id) + .ok_or(Error::UnknownIdentifier)?; + + let my_pub_bytes = my_pub.serialize()?; + let d_i = static_signing_key.to_scalar(); + + let scalar_len = + <::Field>::serialize(&<::Field>::zero()) + .as_ref() + .len(); + + // Steps 4–7: For each sender j, derive decryption key, decrypt, verify, and accumulate. + let mut signing_share_scalar = <::Field>::zero(); + + for (&sender_id, sender_pub) in &parsed.participants { + let ephemeral_pub = parsed + .ephemeral_pubs + .get(&sender_id) + .ok_or(Error::PackageNotFound)?; + let ciphertext = ciphertexts.get(&sender_id).ok_or(Error::PackageNotFound)?; + + // S^(e)_{j,i} = d_i * E_j and S^(d)_{j,i} = d_i * P_j + let s_ephem = *ephemeral_pub * d_i; + let s_static = sender_pub.to_element() * d_i; + + let h6 = C::H6( + &element_to_bytes::(&s_ephem)?, + &element_to_bytes::(&s_static)?, + &element_to_bytes::(ephemeral_pub)?, + &sender_pub.serialize()?, + &my_pub_bytes, + &parsed.context, + ); + let (key, nonce) = derive_key_and_nonce::(&h6)?; + + let plaintext = + C::aead_decrypt(&key, &nonce, ciphertext).map_err(|_| Error::DecryptionFailed { + culprit: sender_id, + })?; + + if plaintext.len() < scalar_len { + return Err(Error::DecryptionFailed { culprit: sender_id }); + } + + let share_ser = + <<::Field as Field>::Serialization>::try_from(&plaintext[..scalar_len]) + .map_err(|_| Error::DecryptionFailed { culprit: sender_id })?; + let s_j_i = <::Field>::deserialize(&share_ser) + .map_err(|_| Error::DecryptionFailed { culprit: sender_id })?; + + // Verify the decrypted share against the sender's VSS commitment. + let commitment = parsed + .commitments + .get(&sender_id) + .ok_or(Error::PackageNotFound)?; + SecretShare::new(my_id, SigningShare::new(s_j_i), commitment.clone()) + .verify() + .map_err(|e| match e { + Error::InvalidSecretShare { .. } => Error::InvalidSecretShare { + culprit: Some(sender_id), + }, + other => other, + })?; + + signing_share_scalar = signing_share_scalar + s_j_i; + } + + // Step 8: Compute public outputs from all VSS commitments. + let commitments_refs: BTreeMap, &VerifiableSecretSharingCommitment> = + parsed.commitments.iter().map(|(id, c)| (*id, c)).collect(); + let public_key_package = PublicKeyPackage::from_dkg_commitments(&commitments_refs)?; + + let signing_share = SigningShare::new(signing_share_scalar); + let verifying_share = *public_key_package + .verifying_shares() + .get(&my_id) + .ok_or(Error::UnknownIdentifier)?; + let verifying_key = *public_key_package.verifying_key(); + + let key_package = KeyPackage::new(my_id, signing_share, verifying_share, verifying_key, parsed.t); + + C::post_dkg(key_package, public_key_package) } diff --git a/frost-core/src/tests/ciphersuite_generic.rs b/frost-core/src/tests/ciphersuite_generic.rs index 73c6809f8..7944e2a12 100644 --- a/frost-core/src/tests/ciphersuite_generic.rs +++ b/frost-core/src/tests/ciphersuite_generic.rs @@ -1280,7 +1280,7 @@ where for (&id, _) in &static_keys { let r2_secret = &round2_secret_packages[&id]; let round2_packages = &received_round2_packages[&id]; - let (key_pkg, pubkey_pkg) = + let (key_pkg, pubkey_pkg, _transcript, _cert) = frost::keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); key_packages.insert(id, key_pkg); pubkey_packages.insert(id, pubkey_pkg); diff --git a/frost-ed25519/src/keys/cocktail_dkg.rs b/frost-ed25519/src/keys/cocktail_dkg.rs index aa5ce1b11..12c01c53a 100644 --- a/frost-ed25519/src/keys/cocktail_dkg.rs +++ b/frost-ed25519/src/keys/cocktail_dkg.rs @@ -85,6 +85,22 @@ pub fn part2( pub fn part3( secret_package: &round2::SecretPackage, round2_packages: &BTreeMap, -) -> Result<(KeyPackage, PublicKeyPackage), Error> { +) -> Result<(KeyPackage, PublicKeyPackage, Vec, BTreeMap), Error> { frost::keys::cocktail_dkg::part3(secret_package, round2_packages) } + +/// Recovers a participant's DKG outputs from the static secret key, transcript, +/// success certificate, and ciphertexts. +pub fn recover( + static_signing_key: &SigningKey, + transcript: &[u8], + success_certificate: &BTreeMap, + ciphertexts: &BTreeMap>, +) -> Result<(KeyPackage, PublicKeyPackage), Error> { + frost::keys::cocktail_dkg::recover( + static_signing_key, + transcript, + success_certificate, + ciphertexts, + ) +} diff --git a/frost-ristretto255/src/keys/cocktail_dkg.rs b/frost-ristretto255/src/keys/cocktail_dkg.rs index 65ca1f2e1..0d277d05e 100644 --- a/frost-ristretto255/src/keys/cocktail_dkg.rs +++ b/frost-ristretto255/src/keys/cocktail_dkg.rs @@ -85,6 +85,22 @@ pub fn part2( pub fn part3( secret_package: &round2::SecretPackage, round2_packages: &BTreeMap, -) -> Result<(KeyPackage, PublicKeyPackage), Error> { +) -> Result<(KeyPackage, PublicKeyPackage, Vec, BTreeMap), Error> { frost::keys::cocktail_dkg::part3(secret_package, round2_packages) } + +/// Recovers a participant's DKG outputs from the static secret key, transcript, +/// success certificate, and ciphertexts. +pub fn recover( + static_signing_key: &SigningKey, + transcript: &[u8], + success_certificate: &BTreeMap, + ciphertexts: &BTreeMap>, +) -> Result<(KeyPackage, PublicKeyPackage), Error> { + frost::keys::cocktail_dkg::recover( + static_signing_key, + transcript, + success_certificate, + ciphertexts, + ) +} diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index 34470d555..1d16614f0 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -596,13 +596,22 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { } } - // Round 3 + // Round 3 — save the transcript and certificate from participant 1 for recovery. + let mut transcript_for_recovery: Vec = Vec::new(); + let mut cert_for_recovery: BTreeMap = BTreeMap::new(); + for (idx, (&id, _)) in static_keys.iter().enumerate() { let r2_secret = &round2_secret_packages[&id]; let round2_packages = &received_round2_packages[&id]; - let (key_pkg, pubkey_pkg) = + let (key_pkg, pubkey_pkg, transcript, cert) = keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); + // All participants must produce the same transcript. + if idx == 0 { + transcript_for_recovery = transcript; + cert_for_recovery = cert; + } + assert_eq!( pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), expected_group_public_key.as_slice(), @@ -628,5 +637,53 @@ fn check_cocktail_dkg_test_vectors_2_of_3() { idx + 1 ); } + + // Recovery: only for vectors that include recovery test data. + if let Some(recovery) = vector.get("recovery") { + let recovery_id = recovery["participant_id"].as_u64().unwrap() as u16; + let recovery_identifier = Identifier::try_from(recovery_id).unwrap(); + let recovery_sk = static_keys.get(&recovery_identifier).unwrap(); + + // Build ciphertexts map: sender_id -> c_{sender, recovery_participant} + let ciphertexts_json = recovery["ciphertexts"].as_array().unwrap(); + let mut recovery_ciphertexts: BTreeMap> = BTreeMap::new(); + for (j_idx, ct) in ciphertexts_json.iter().enumerate() { + let sender_id = Identifier::try_from((j_idx + 1) as u16).unwrap(); + recovery_ciphertexts.insert( + sender_id, + hex::decode(ct.as_str().unwrap()).unwrap(), + ); + } + + let expected_recovered_share = + hex::decode(recovery["recovered_secret_share"].as_str().unwrap()).unwrap(); + let expected_recovered_vshare = + hex::decode(recovery["recovered_verification_share"].as_str().unwrap()).unwrap(); + + let (recovered_key_pkg, recovered_pubkey_pkg) = keys::cocktail_dkg::recover( + recovery_sk, + &transcript_for_recovery, + &cert_for_recovery, + &recovery_ciphertexts, + ) + .unwrap(); + + assert_eq!( + recovered_key_pkg.signing_share().serialize().as_slice(), + expected_recovered_share.as_slice(), + "recovered secret share mismatch" + ); + assert_eq!( + recovered_pubkey_pkg + .verifying_shares() + .get(&recovery_identifier) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + expected_recovered_vshare.as_slice(), + "recovered verification share mismatch" + ); + } } } From 54abee857e2314c0a89f7cac4506835429ff4868 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Tue, 17 Mar 2026 18:39:48 -0300 Subject: [PATCH 08/30] test all vectors; simplify recovery() --- frost-core/src/keys/cocktail_dkg.rs | 48 ++++++++----------- frost-ristretto255/tests/integration_tests.rs | 10 +--- 2 files changed, 22 insertions(+), 36 deletions(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index 61721122e..dc53fae58 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -256,27 +256,21 @@ fn parse_transcript(bytes: &[u8]) -> Result {{ - let n = $n; - if pos + n > bytes.len() { - return Err(Error::InvalidSignature); - } - let s = &bytes[pos..pos + n]; - pos += n; - s - }}; - } + // Returns `bytes[pos..pos+n]` and advances `pos`, or errors if out of bounds. + let mut take = |n: usize| -> Option<&[u8]> { + let end = pos.checked_add(n)?; + let slice = bytes.get(pos..end)?; + pos = end; + Some(slice) + }; - let ctx_len = u64::from_le_bytes( - read_bytes!(8).try_into().map_err(|_| Error::InvalidSignature)?, - ) as usize; - let context = read_bytes!(ctx_len).to_vec(); + let ctx_len = u64::from_le_bytes(take(8).ok_or(Error::InvalidSignature)?.try_into().expect("slice is 8 bytes")) as usize; + let context = take(ctx_len).ok_or(Error::InvalidSignature)?.to_vec(); - let n = u32::from_le_bytes(read_bytes!(4).try_into().map_err(|_| Error::InvalidSignature)?) as u16; - let t = u32::from_le_bytes(read_bytes!(4).try_into().map_err(|_| Error::InvalidSignature)?) as u16; + let n = u32::from_le_bytes(take(4).ok_or(Error::InvalidSignature)?.try_into().expect("slice is 4 bytes")) as u16; + let t = u32::from_le_bytes(take(4).ok_or(Error::InvalidSignature)?.try_into().expect("slice is 4 bytes")) as u16; let identifiers: Vec> = (1..=n) .map(|j| Identifier::try_from(j)) @@ -284,32 +278,30 @@ fn parse_transcript(bytes: &[u8]) -> Result Date: Tue, 17 Mar 2026 19:10:04 -0300 Subject: [PATCH 09/30] manual docs cleanup --- frost-core/src/keys/cocktail_dkg.rs | 196 +++++++++++++++++----------- frost-ed25519/src/lib.rs | 4 +- frost-ristretto255/src/lib.rs | 4 +- 3 files changed, 121 insertions(+), 83 deletions(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index dc53fae58..dff670cf5 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -1,34 +1,38 @@ //! COCKTAIL Distributed Key Generation functions and structures. //! -//! COCKTAIL-DKG is a standalone, three-round distributed key generation protocol for +//! COCKTAIL-DKG is a standalone distributed key generation protocol for //! threshold signature schemes like FROST. It is an independent derivative of -//! [ChillDKG](https://github.com/BlockstreamResearch/bip-frost-dkg) designed to work -//! with any FROST ciphersuite. +//! [ChillDKG](https://github.com/BlockstreamResearch/bip-frost-dkg) designed to +//! work with any FROST ciphersuite. //! -//! Unlike the basic FROST DKG (see [`super::dkg`]), COCKTAIL-DKG: +//! Unlike the basic FROST DKG (see [`super::dkg`]) (also known as "PedPop"), +//! COCKTAIL-DKG: //! -//! - Encrypts secret shares using pairwise ECDH (no pre-established secure channels needed) +//! - Encrypts secret shares using pairwise ECDH (no pre-established secure +//! channels needed) //! - Uses long-term static key pairs for participant authentication //! - Includes a certification round (Round 3) to detect split-view attacks //! - Supports share recovery from a transcript and the static secret key //! //! ## Protocol Overview //! -//! 1. **Round 1 ([`part1`])**: Each participant generates their polynomial, ephemeral key, -//! proof of possession, and encrypts shares for all other participants. +//! 1. **Round 1 ([`part1`])**: Each participant generates their polynomial, +//! ephemeral key, proof of possession, and encrypts shares for all other +//! participants. //! -//! 2. **Round 2 ([`part2`])**: The coordinator aggregates Round 1 messages and sends them to -//! all participants. Each participant decrypts and verifies received shares, computes -//! their final key share and signs the public transcript. +//! 2. **Round 2 ([`part2`])**: The coordinator aggregates Round 1 messages and +//! sends them to all participants. Each participant decrypts and verifies +//! received shares, computes their final key share and signs the public +//! transcript. //! -//! 3. **Round 3 ([`part3`])**: The coordinator broadcasts all transcript signatures. Each -//! participant verifies them and, if all are valid, outputs their [`KeyPackage`] and -//! [`PublicKeyPackage`]. +//! 3. **Round 3 ([`part3`])**: The coordinator broadcasts all transcript +//! signatures. Each participant verifies them and, if all are valid, outputs +//! their [`KeyPackage`] and [`PublicKeyPackage`]. //! //! ## Trait Requirement //! -//! Ciphersuites must implement [`CocktailCiphersuite`] in addition to [`Ciphersuite`] to use -//! this module. The additional methods provide: +//! Ciphersuites must implement [`CocktailCiphersuite`] in addition to +//! [`Ciphersuite`] to use this module. The additional methods provide: //! - A hash-to-scalar function for the COCKTAIL Schnorr signature scheme //! - A combined H6 key derivation + AEAD key/nonce derivation function //! - AEAD encrypt/decrypt operations @@ -57,23 +61,12 @@ use super::{ /// See the [COCKTAIL-DKG specification](https://c2sp.org/cocktail-dkg) for details. pub trait CocktailCiphersuite: Ciphersuite { /// Hash-to-scalar function for the COCKTAIL Schnorr PoP scheme. - /// - /// Computes `H(data)` using the ciphersuite's base hash function and reduces - /// the output to a scalar using wide reduction. No domain separation is applied. - /// - /// - For SHA-512 ciphersuites: `SHA-512(data)` → `from_bytes_mod_order_wide` - /// - For SHA-256 ciphersuites: `SHA-256(data)` → reduction mod q - fn cocktail_hash_to_scalar(data: &[u8]) -> Scalar; + fn HPOP(data: &[u8]) -> Scalar; /// Hash function H6 for AEAD key/nonce derivation. /// /// Defined in the COCKTAIL-DKG specification as: /// `H6(Se, Sd, E, Pi, Pj, context) = Hash(domain || Se || Sd || E || Pi || Pj || len(context) || context)` - /// - /// When the output is at least 56 bytes (e.g. SHA-512, BLAKE2b-512, SHAKE256), - /// the caller uses `output[..32]` as the key and `output[32..56]` as the nonce. - /// When the output is shorter than 56 bytes (e.g. SHA-256), the output is used - /// as IKM and [`Self::H_kdf`] is called separately to derive the key and nonce. fn H6( shared_secret_ephem: &[u8], shared_secret_static: &[u8], @@ -86,22 +79,15 @@ pub trait CocktailCiphersuite: Ciphersuite { /// The ciphersuite's base hash function, used for KDF purposes when the H6 /// output is shorter than 56 bytes. /// - /// Called as `H_kdf(label || ikm)` where label is either + /// Called as `HKDF(label || ikm)` where label is either /// `"COCKTAIL-derive-key"` or `"COCKTAIL-derive-nonce"` and ikm is the /// H6 output. - fn H_kdf(data: &[u8]) -> Vec; + fn HKDF(data: &[u8]) -> Vec; /// Encrypt a plaintext using an AEAD scheme. - /// - /// The specific AEAD algorithm is ciphersuite-dependent: - /// - XChaCha20-Poly1305 for SHA-512 / BLAKE2b-512 based ciphersuites - /// - XAES-256-GCM for SHA-256 based ciphersuites fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> Vec; /// Decrypt a ciphertext using an AEAD scheme. - /// - /// Returns `Err(())` if decryption fails. - /// The caller maps this to an appropriate [`Error`] with culprit information. fn aead_decrypt( key: &[u8; 32], nonce: &[u8; 24], @@ -137,7 +123,9 @@ pub trait CocktailCiphersuite: Ciphersuite { /// /// - If the H6 output is at least 56 bytes: `key = output[..32]`, `nonce = output[32..56]`. /// - Otherwise: `key = H_kdf("COCKTAIL-derive-key" || ikm)`, `nonce = H_kdf("COCKTAIL-derive-nonce" || ikm)[..24]`. -fn derive_key_and_nonce(h6: &[u8]) -> Result<([u8; 32], [u8; 24]), Error> { +fn derive_key_and_nonce( + h6: &[u8], +) -> Result<([u8; 32], [u8; 24]), Error> { let mut key = [0u8; 32]; let mut nonce = [0u8; 24]; if h6.len() >= 56 { @@ -146,7 +134,7 @@ fn derive_key_and_nonce(h6: &[u8]) -> Result<([u8; 32], } else { let mut key_input = b"COCKTAIL-derive-key".to_vec(); key_input.extend_from_slice(h6); - let key_hash = C::H_kdf(&key_input); + let key_hash = C::HKDF(&key_input); if key_hash.len() < 32 { return Err(Error::InvalidSignature); } @@ -154,7 +142,7 @@ fn derive_key_and_nonce(h6: &[u8]) -> Result<([u8; 32], let mut nonce_input = b"COCKTAIL-derive-nonce".to_vec(); nonce_input.extend_from_slice(h6); - let nonce_hash = C::H_kdf(&nonce_input); + let nonce_hash = C::HKDF(&nonce_input); if nonce_hash.len() < 24 { return Err(Error::InvalidSignature); } @@ -191,7 +179,7 @@ fn pop_sign( let sk_bytes = <::Field as Field>::serialize(&sk); let mut nonce_input = sk_bytes.as_ref().to_vec(); nonce_input.extend_from_slice(message); - let k = C::cocktail_hash_to_scalar(&nonce_input); + let k = C::HPOP(&nonce_input); let R = ::generator() * k; let pk = ::generator() * sk; @@ -201,7 +189,7 @@ fn pop_sign( let mut challenge_input = R_bytes; challenge_input.extend_from_slice(&pk_bytes); challenge_input.extend_from_slice(message); - let c = C::cocktail_hash_to_scalar(&challenge_input); + let c = C::HPOP(&challenge_input); let z = k + c * sk; Ok(Signature { R, z }) @@ -220,7 +208,7 @@ fn pop_verify( let mut challenge_input = R_bytes; challenge_input.extend_from_slice(&pk_bytes); challenge_input.extend_from_slice(message); - let c = C::cocktail_hash_to_scalar(&challenge_input); + let c = C::HPOP(&challenge_input); let lhs = ::generator() * sig.z; let rhs = sig.R + pk * c; @@ -251,9 +239,10 @@ fn parse_transcript(bytes: &[u8]) -> Result::Field>::serialize(&<::Field>::zero()) - .as_ref() - .len(); + let scalar_size = + <::Field>::serialize(&<::Field>::zero()) + .as_ref() + .len(); let sig_size = elem_size + scalar_size; let mut pos = 0usize; @@ -266,14 +255,29 @@ fn parse_transcript(bytes: &[u8]) -> Result> = (1..=n) - .map(|j| Identifier::try_from(j)) + .map(Identifier::try_from) .collect::, _>>()?; let mut participants = BTreeMap::new(); @@ -285,7 +289,9 @@ fn parse_transcript(bytes: &[u8]) -> Result(bytes: &[u8]) -> Result, - /// The proof of possession $PoP_i$ (needed in Round 2 to build the transcript). + /// The proof of possession $PoP_i$ (needed in part2 to build the transcript). #[zeroize(skip)] pub(crate) proof_of_possession: Signature, /// The minimum number of signers. @@ -409,6 +427,7 @@ pub mod round1 { impl SecretPackage { /// Create a new [`SecretPackage`]. + #[allow(clippy::too_many_arguments)] pub fn new( identifier: Identifier, coefficients: Vec>, @@ -559,6 +578,7 @@ pub mod round2 { impl SecretPackage { /// Create a new [`SecretPackage`]. + #[allow(clippy::too_many_arguments)] pub fn new( identifier: Identifier, commitment: VerifiableSecretSharingCommitment, @@ -622,7 +642,7 @@ pub mod round2 { } } -/// Performs Round 1 of the COCKTAIL-DKG protocol for the given participant. +/// Performs the first part of the COCKTAIL-DKG protocol for the given participant. /// /// The participant generates: /// - A secret polynomial $f_i(x)$ of degree $t-1$ @@ -651,6 +671,7 @@ pub mod round2 { /// A tuple of: /// - [`round1::SecretPackage`]: kept secret by the participant until [`part2`]. /// - [`round1::Package`]: broadcast to all other participants via the coordinator. +#[allow(clippy::too_many_arguments)] pub fn part1( identifier: Identifier, max_signers: u16, @@ -731,7 +752,7 @@ pub fn part1( commitment.clone(), ephemeral_privkey, ephemeral_pubkey, - proof_of_possession.clone(), + proof_of_possession, min_signers, max_signers, ); @@ -746,7 +767,7 @@ pub fn part1( Ok((secret_package, package)) } -/// Performs Round 2 of the COCKTAIL-DKG protocol. +/// Performs part 2 of the COCKTAIL-DKG protocol. /// /// The coordinator aggregates all [`round1::Package`]s and delivers them to each participant. /// This function: @@ -781,7 +802,14 @@ pub fn part2( context: &[u8], extension: &[u8], mut rng: R, -) -> Result<(round2::SecretPackage, round2::Package, BTreeMap, Vec>), Error> { +) -> Result< + ( + round2::SecretPackage, + round2::Package, + BTreeMap, Vec>, + ), + Error, +> { if round1_packages.len() != (secret_package.max_signers - 1) as usize { return Err(Error::IncorrectNumberOfPackages); } @@ -801,10 +829,14 @@ pub fn part2( } let pop_msg = pop_message::(&package.commitment, &package.ephemeral_pub, context)?; let pop_pubkey = package.commitment.verifying_key()?; - pop_verify::(pop_pubkey.to_element(), &package.proof_of_possession, &pop_msg) - .map_err(|_| Error::InvalidProofOfKnowledge { - culprit: *sender_id, - })?; + pop_verify::( + pop_pubkey.to_element(), + &package.proof_of_possession, + &pop_msg, + ) + .map_err(|_| Error::InvalidProofOfKnowledge { + culprit: *sender_id, + })?; } // Build complete maps for transcript construction @@ -815,13 +847,13 @@ pub fn part2( for (sender_id, package) in round1_packages.iter() { all_commitments.insert(*sender_id, package.commitment.clone()); - all_pops.insert(*sender_id, package.proof_of_possession.clone()); + all_pops.insert(*sender_id, package.proof_of_possession); all_ephemeral_pubs.insert(*sender_id, package.ephemeral_pub); } // Add our own all_commitments.insert(my_id, secret_package.commitment.clone()); all_ephemeral_pubs.insert(my_id, secret_package.ephemeral_pub); - all_pops.insert(my_id, secret_package.proof_of_possession.clone()); + all_pops.insert(my_id, secret_package.proof_of_possession); // Step 3: Decrypt, verify, and accumulate all shares let mut signing_share_scalar = <::Field>::zero(); @@ -964,7 +996,7 @@ pub fn part2( Ok((round2_secret, round2_package, received_payloads)) } -/// Performs Round 3 (CertEq) of the COCKTAIL-DKG protocol. +/// Performs part 3 (CertEq) of the COCKTAIL-DKG protocol. /// /// The coordinator broadcasts all transcript signatures from all participants. /// This function verifies every signature $sig_j$ on the transcript $T$ against @@ -1027,7 +1059,7 @@ pub fn part3( .map(|(&id, pkg)| (id, pkg.transcript_signature)) .collect(); - // All signatures verified — output final keys + // All signatures verified, output final keys let signing_share = SigningShare::new(secret_package.secret_share()); let verifying_share = *secret_package .public_key_package @@ -1097,7 +1129,9 @@ pub fn recover( .get(signer_id) .ok_or(Error::UnknownIdentifier)?; pk.verify(transcript, sig) - .map_err(|_| Error::InvalidTranscriptSignature { culprit: *signer_id })?; + .map_err(|_| Error::InvalidTranscriptSignature { + culprit: *signer_id, + })?; } // Step 3: Find our identifier by matching d_i * B against the participant list. @@ -1112,10 +1146,9 @@ pub fn recover( let my_pub_bytes = my_pub.serialize()?; let d_i = static_signing_key.to_scalar(); - let scalar_len = - <::Field>::serialize(&<::Field>::zero()) - .as_ref() - .len(); + let scalar_len = <::Field>::serialize(&<::Field>::zero()) + .as_ref() + .len(); // Steps 4–7: For each sender j, derive decryption key, decrypt, verify, and accumulate. let mut signing_share_scalar = <::Field>::zero(); @@ -1141,18 +1174,17 @@ pub fn recover( ); let (key, nonce) = derive_key_and_nonce::(&h6)?; - let plaintext = - C::aead_decrypt(&key, &nonce, ciphertext).map_err(|_| Error::DecryptionFailed { - culprit: sender_id, - })?; + let plaintext = C::aead_decrypt(&key, &nonce, ciphertext) + .map_err(|_| Error::DecryptionFailed { culprit: sender_id })?; if plaintext.len() < scalar_len { return Err(Error::DecryptionFailed { culprit: sender_id }); } - let share_ser = - <<::Field as Field>::Serialization>::try_from(&plaintext[..scalar_len]) - .map_err(|_| Error::DecryptionFailed { culprit: sender_id })?; + let share_ser = <<::Field as Field>::Serialization>::try_from( + &plaintext[..scalar_len], + ) + .map_err(|_| Error::DecryptionFailed { culprit: sender_id })?; let s_j_i = <::Field>::deserialize(&share_ser) .map_err(|_| Error::DecryptionFailed { culprit: sender_id })?; @@ -1185,7 +1217,13 @@ pub fn recover( .ok_or(Error::UnknownIdentifier)?; let verifying_key = *public_key_package.verifying_key(); - let key_package = KeyPackage::new(my_id, signing_share, verifying_share, verifying_key, parsed.t); + let key_package = KeyPackage::new( + my_id, + signing_share, + verifying_share, + verifying_key, + parsed.t, + ); C::post_dkg(key_package, public_key_package) } diff --git a/frost-ed25519/src/lib.rs b/frost-ed25519/src/lib.rs index a87fc6d25..861e5d75f 100644 --- a/frost-ed25519/src/lib.rs +++ b/frost-ed25519/src/lib.rs @@ -229,7 +229,7 @@ impl RandomizedCiphersuite for Ed25519Sha512 { #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed25519Sha512 { - fn cocktail_hash_to_scalar(data: &[u8]) -> Scalar { + fn HPOP(data: &[u8]) -> Scalar { hash_to_scalar(&[data]) } @@ -254,7 +254,7 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed25519Sha512 { .to_vec() } - fn H_kdf(data: &[u8]) -> alloc::vec::Vec { + fn HKDF(data: &[u8]) -> alloc::vec::Vec { hash_to_array(&[data]).to_vec() } diff --git a/frost-ristretto255/src/lib.rs b/frost-ristretto255/src/lib.rs index 416c67369..87472f97c 100644 --- a/frost-ristretto255/src/lib.rs +++ b/frost-ristretto255/src/lib.rs @@ -218,7 +218,7 @@ impl RandomizedCiphersuite for Ristretto255Sha512 { #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ristretto255Sha512 { - fn cocktail_hash_to_scalar(data: &[u8]) -> Scalar { + fn HPOP(data: &[u8]) -> Scalar { hash_to_scalar(&[data]) } @@ -242,7 +242,7 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ristretto255Sha512 h.finalize().to_vec() } - fn H_kdf(data: &[u8]) -> alloc::vec::Vec { + fn HKDF(data: &[u8]) -> alloc::vec::Vec { let mut h = Sha512::new(); h.update(data); h.finalize().to_vec() From 2a6f690fd6cf52522960ae5978b77637083b7baf Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Tue, 17 Mar 2026 19:12:57 -0300 Subject: [PATCH 10/30] use get() for slices --- frost-core/src/keys/cocktail_dkg.rs | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index dff670cf5..9d1b48025 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -128,25 +128,19 @@ fn derive_key_and_nonce( ) -> Result<([u8; 32], [u8; 24]), Error> { let mut key = [0u8; 32]; let mut nonce = [0u8; 24]; - if h6.len() >= 56 { - key.copy_from_slice(&h6[..32]); - nonce.copy_from_slice(&h6[32..56]); + if let (Some(k), Some(n)) = (h6.get(..32), h6.get(32..56)) { + key.copy_from_slice(k); + nonce.copy_from_slice(n); } else { let mut key_input = b"COCKTAIL-derive-key".to_vec(); key_input.extend_from_slice(h6); let key_hash = C::HKDF(&key_input); - if key_hash.len() < 32 { - return Err(Error::InvalidSignature); - } - key.copy_from_slice(&key_hash[..32]); + key.copy_from_slice(key_hash.get(..32).ok_or(Error::InvalidSignature)?); let mut nonce_input = b"COCKTAIL-derive-nonce".to_vec(); nonce_input.extend_from_slice(h6); let nonce_hash = C::HKDF(&nonce_input); - if nonce_hash.len() < 24 { - return Err(Error::InvalidSignature); - } - nonce.copy_from_slice(&nonce_hash[..24]); + nonce.copy_from_slice(nonce_hash.get(..24).ok_or(Error::InvalidSignature)?); } Ok((key, nonce)) } @@ -934,7 +928,7 @@ pub fn part2( })?; // Collect optional payload (remainder after the share bytes) - let payload = plaintext[scalar_len..].to_vec(); + let payload = plaintext.get(scalar_len..).ok_or(Error::DecryptionFailed { culprit: *sender_id })?.to_vec(); received_payloads.insert(*sender_id, payload); // Verify share against sender's VSS commitment @@ -1182,7 +1176,7 @@ pub fn recover( } let share_ser = <<::Field as Field>::Serialization>::try_from( - &plaintext[..scalar_len], + plaintext.get(..scalar_len).ok_or(Error::DecryptionFailed { culprit: sender_id })?, ) .map_err(|_| Error::DecryptionFailed { culprit: sender_id })?; let s_j_i = <::Field>::deserialize(&share_ser) From 04a3835a6964416505f66548ee93d04eaadf1a8c Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Tue, 17 Mar 2026 19:15:18 -0300 Subject: [PATCH 11/30] clippy fixes --- frost-core/src/tests/ciphersuite_generic.rs | 6 ++--- frost-ed25519/src/keys/cocktail_dkg.rs | 24 ++++++++++++++++--- frost-ristretto255/src/keys/cocktail_dkg.rs | 24 ++++++++++++++++--- frost-ristretto255/src/lib.rs | 2 +- frost-ristretto255/tests/integration_tests.rs | 18 ++++++-------- 5 files changed, 53 insertions(+), 21 deletions(-) diff --git a/frost-core/src/tests/ciphersuite_generic.rs b/frost-core/src/tests/ciphersuite_generic.rs index 7944e2a12..5c9b8c91e 100644 --- a/frost-core/src/tests/ciphersuite_generic.rs +++ b/frost-core/src/tests/ciphersuite_generic.rs @@ -1225,7 +1225,7 @@ where ) .unwrap(); round1_secret_packages.insert(id, secret_pkg); - for (&receiver_id, _) in &participants { + for &receiver_id in participants.keys() { if receiver_id != id { received_round1_packages .entry(receiver_id) @@ -1262,7 +1262,7 @@ where ) .unwrap(); round2_secret_packages.insert(id, r2_secret); - for (&receiver_id, _) in &participants { + for &receiver_id in participants.keys() { received_round2_packages .entry(receiver_id) .or_default() @@ -1277,7 +1277,7 @@ where let mut key_packages = BTreeMap::new(); let mut pubkey_packages = BTreeMap::new(); - for (&id, _) in &static_keys { + for &id in static_keys.keys() { let r2_secret = &round2_secret_packages[&id]; let round2_packages = &received_round2_packages[&id]; let (key_pkg, pubkey_pkg, _transcript, _cert) = diff --git a/frost-ed25519/src/keys/cocktail_dkg.rs b/frost-ed25519/src/keys/cocktail_dkg.rs index 12c01c53a..c1f412f81 100644 --- a/frost-ed25519/src/keys/cocktail_dkg.rs +++ b/frost-ed25519/src/keys/cocktail_dkg.rs @@ -1,5 +1,5 @@ -use alloc::{collections::BTreeMap, vec::Vec}; use super::*; +use alloc::{collections::BTreeMap, vec::Vec}; pub use frost::keys::cocktail_dkg::CocktailCiphersuite; @@ -38,6 +38,7 @@ pub mod round2 { } /// Performs Round 1 of the COCKTAIL-DKG protocol for the given participant. +#[allow(clippy::too_many_arguments)] pub fn part1( identifier: Identifier, max_signers: u16, @@ -61,6 +62,7 @@ pub fn part1( } /// Performs Round 2 of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] pub fn part2( secret_package: round1::SecretPackage, round1_packages: &BTreeMap, @@ -69,7 +71,14 @@ pub fn part2( context: &[u8], extension: &[u8], rng: RNG, -) -> Result<(round2::SecretPackage, round2::Package, BTreeMap>), Error> { +) -> Result< + ( + round2::SecretPackage, + round2::Package, + BTreeMap>, + ), + Error, +> { frost::keys::cocktail_dkg::part2( secret_package, round1_packages, @@ -82,10 +91,19 @@ pub fn part2( } /// Performs Round 3 (CertEq) of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] pub fn part3( secret_package: &round2::SecretPackage, round2_packages: &BTreeMap, -) -> Result<(KeyPackage, PublicKeyPackage, Vec, BTreeMap), Error> { +) -> Result< + ( + KeyPackage, + PublicKeyPackage, + Vec, + BTreeMap, + ), + Error, +> { frost::keys::cocktail_dkg::part3(secret_package, round2_packages) } diff --git a/frost-ristretto255/src/keys/cocktail_dkg.rs b/frost-ristretto255/src/keys/cocktail_dkg.rs index 0d277d05e..23fac66f4 100644 --- a/frost-ristretto255/src/keys/cocktail_dkg.rs +++ b/frost-ristretto255/src/keys/cocktail_dkg.rs @@ -1,5 +1,5 @@ -use alloc::{collections::BTreeMap, vec::Vec}; use super::*; +use alloc::{collections::BTreeMap, vec::Vec}; pub use frost::keys::cocktail_dkg::CocktailCiphersuite; @@ -38,6 +38,7 @@ pub mod round2 { } /// Performs Round 1 of the COCKTAIL-DKG protocol for the given participant. +#[allow(clippy::too_many_arguments)] pub fn part1( identifier: Identifier, max_signers: u16, @@ -61,6 +62,7 @@ pub fn part1( } /// Performs Round 2 of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] pub fn part2( secret_package: round1::SecretPackage, round1_packages: &BTreeMap, @@ -69,7 +71,14 @@ pub fn part2( context: &[u8], extension: &[u8], rng: RNG, -) -> Result<(round2::SecretPackage, round2::Package, BTreeMap>), Error> { +) -> Result< + ( + round2::SecretPackage, + round2::Package, + BTreeMap>, + ), + Error, +> { frost::keys::cocktail_dkg::part2( secret_package, round1_packages, @@ -82,10 +91,19 @@ pub fn part2( } /// Performs Round 3 (CertEq) of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] pub fn part3( secret_package: &round2::SecretPackage, round2_packages: &BTreeMap, -) -> Result<(KeyPackage, PublicKeyPackage, Vec, BTreeMap), Error> { +) -> Result< + ( + KeyPackage, + PublicKeyPackage, + Vec, + BTreeMap, + ), + Error, +> { frost::keys::cocktail_dkg::part3(secret_package, round2_packages) } diff --git a/frost-ristretto255/src/lib.rs b/frost-ristretto255/src/lib.rs index 87472f97c..9d4c73612 100644 --- a/frost-ristretto255/src/lib.rs +++ b/frost-ristretto255/src/lib.rs @@ -237,7 +237,7 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ristretto255Sha512 h.update(ephemeral_pub); h.update(sender_pub); h.update(recipient_pub); - h.update(&(context.len() as u64).to_le_bytes()); + h.update((context.len() as u64).to_le_bytes()); h.update(context); h.finalize().to_vec() } diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index 087a7f6cf..a1007ba21 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -417,10 +417,9 @@ fn check_cocktail_dkg_test_vectors() { impl CryptoRng for CounterDrng {} - let file: serde_json::Value = serde_json::from_str( - include_str!("helpers/cocktail-dkg-ristretto255-sha512.json").trim(), - ) - .unwrap(); + let file: serde_json::Value = + serde_json::from_str(include_str!("helpers/cocktail-dkg-ristretto255-sha512.json").trim()) + .unwrap(); let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); @@ -544,7 +543,7 @@ fn check_cocktail_dkg_test_vectors() { } round1_secret_packages.insert(id, secret_pkg); - for (&receiver_id, _) in &participants { + for &receiver_id in participants.keys() { if receiver_id != id { received_round1_packages .entry(receiver_id) @@ -564,7 +563,7 @@ fn check_cocktail_dkg_test_vectors() { BTreeMap, > = BTreeMap::new(); - for (_idx, (&id, sk)) in static_keys.iter().enumerate() { + for (&id, sk) in static_keys.iter() { let secret_pkg = round1_secret_packages.remove(&id).unwrap(); let round1_packages = &received_round1_packages[&id]; let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( @@ -582,7 +581,7 @@ fn check_cocktail_dkg_test_vectors() { // so they cannot be checked against the JSON test vectors here. round2_secret_packages.insert(id, r2_secret); - for (&receiver_id, _) in &participants { + for &receiver_id in participants.keys() { received_round2_packages .entry(receiver_id) .or_default() @@ -643,10 +642,7 @@ fn check_cocktail_dkg_test_vectors() { let mut recovery_ciphertexts: BTreeMap> = BTreeMap::new(); for (j_idx, ct) in ciphertexts_json.iter().enumerate() { let sender_id = Identifier::try_from((j_idx + 1) as u16).unwrap(); - recovery_ciphertexts.insert( - sender_id, - hex::decode(ct.as_str().unwrap()).unwrap(), - ); + recovery_ciphertexts.insert(sender_id, hex::decode(ct.as_str().unwrap()).unwrap()); } let expected_recovered_share = From bf46628989169b8c06cf6c2f65d90ed2f46aa928 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Tue, 17 Mar 2026 19:26:00 -0300 Subject: [PATCH 12/30] inline element_to_bytes() --- frost-core/src/keys/cocktail_dkg.rs | 34 +++++++++++++---------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index 9d1b48025..f9ebce641 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -145,10 +145,6 @@ fn derive_key_and_nonce( Ok((key, nonce)) } -/// Serialize a group element to a `Vec`. -fn element_to_bytes(element: &Element) -> Result, Error> { - Ok(::serialize(element)?.as_ref().to_vec()) -} /// Build the PoP message: `context || serialize(C_i) || serialize(E_i)`. fn pop_message( @@ -159,7 +155,7 @@ fn pop_message( let mut msg = Vec::new(); msg.extend_from_slice(context); msg.extend_from_slice(&commitment.serialize_whole()?); - msg.extend_from_slice(&element_to_bytes::(ephemeral_pub)?); + msg.extend_from_slice(&::serialize(ephemeral_pub)?.as_ref().to_vec()); Ok(msg) } @@ -178,8 +174,8 @@ fn pop_sign( let R = ::generator() * k; let pk = ::generator() * sk; - let R_bytes = element_to_bytes::(&R)?; - let pk_bytes = element_to_bytes::(&pk)?; + let R_bytes = ::serialize(&R)?.as_ref().to_vec(); + let pk_bytes = ::serialize(&pk)?.as_ref().to_vec(); let mut challenge_input = R_bytes; challenge_input.extend_from_slice(&pk_bytes); challenge_input.extend_from_slice(message); @@ -197,8 +193,8 @@ fn pop_verify( sig: &Signature, message: &[u8], ) -> Result<(), Error> { - let R_bytes = element_to_bytes::(&sig.R)?; - let pk_bytes = element_to_bytes::(&pk)?; + let R_bytes = ::serialize(&sig.R)?.as_ref().to_vec(); + let pk_bytes = ::serialize(&pk)?.as_ref().to_vec(); let mut challenge_input = R_bytes; challenge_input.extend_from_slice(&pk_bytes); challenge_input.extend_from_slice(message); @@ -366,7 +362,7 @@ fn build_transcript( } for id in participants.keys() { let e = ephemeral_pubs.get(id).ok_or(Error::PackageNotFound)?; - t_bytes.extend_from_slice(&element_to_bytes::(e)?); + t_bytes.extend_from_slice(&::serialize(e)?.as_ref().to_vec()); } t_bytes.extend_from_slice(&(extension.len() as u64).to_le_bytes()); @@ -707,7 +703,7 @@ pub fn part1( // Step 5: Compute and encrypt shares for each participant (including self) let static_pubkey = VerifyingKey::from(static_privkey); let sender_pubkey_bytes = static_pubkey.serialize()?; - let ephemeral_pubkey_bytes = element_to_bytes::(&ephemeral_pubkey)?; + let ephemeral_pubkey_bytes = ::serialize(&ephemeral_pubkey)?.as_ref().to_vec(); let d_i = static_privkey.to_scalar(); let mut encrypted_shares = BTreeMap::new(); @@ -721,8 +717,8 @@ pub fn part1( let s_static = recipient_element * d_i; let h6 = C::H6( - &element_to_bytes::(&s_ephem)?, - &element_to_bytes::(&s_static)?, + &::serialize(&s_ephem)?.as_ref().to_vec(), + &::serialize(&s_static)?.as_ref().to_vec(), &ephemeral_pubkey_bytes, &sender_pubkey_bytes, &recipient_pubkey.serialize()?, @@ -881,9 +877,9 @@ pub fn part2( let s_static = sender_pubkey.to_element() * d_i; let h6 = C::H6( - &element_to_bytes::(&s_ephemeral)?, - &element_to_bytes::(&s_static)?, - &element_to_bytes::(&package.ephemeral_pub)?, + &::serialize(&s_ephemeral)?.as_ref().to_vec(), + &::serialize(&s_static)?.as_ref().to_vec(), + &::serialize(&package.ephemeral_pub)?.as_ref().to_vec(), &sender_pubkey.serialize()?, &my_pub_bytes, context, @@ -1159,9 +1155,9 @@ pub fn recover( let s_static = sender_pub.to_element() * d_i; let h6 = C::H6( - &element_to_bytes::(&s_ephem)?, - &element_to_bytes::(&s_static)?, - &element_to_bytes::(ephemeral_pub)?, + &::serialize(&s_ephem)?.as_ref().to_vec(), + &::serialize(&s_static)?.as_ref().to_vec(), + &::serialize(ephemeral_pub)?.as_ref().to_vec(), &sender_pub.serialize()?, &my_pub_bytes, &parsed.context, From 7c2e0c8755f0ff33c8c7975b4aecdc686c487eaf Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Tue, 17 Mar 2026 19:39:28 -0300 Subject: [PATCH 13/30] rename ParsedTranscript to Transcript, move functions to serialize methods --- frost-core/src/keys/cocktail_dkg.rs | 287 ++++++++++++++-------------- 1 file changed, 141 insertions(+), 146 deletions(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index f9ebce641..4897821c2 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -211,7 +211,7 @@ fn pop_verify( } /// Parsed representation of a COCKTAIL-DKG transcript. -struct ParsedTranscript { +struct Transcript { context: Vec, n: u16, t: u16, @@ -220,155 +220,151 @@ struct ParsedTranscript { ephemeral_pubs: BTreeMap, Element>, } -/// Parse a canonical transcript byte string into its constituent fields. -/// -/// Identifiers are reconstructed as the standard 1-based sequence `1..=n`. -/// Returns `Err(Error::InvalidSignature)` if the bytes are malformed or truncated. -fn parse_transcript(bytes: &[u8]) -> Result, Error> { - let elem_size = ::serialize(&::generator()) - .expect("generator serialization always succeeds") - .as_ref() - .len(); - let scalar_size = - <::Field>::serialize(&<::Field>::zero()) +impl Transcript { + /// Parse a canonical transcript byte string into its constituent fields. + /// + /// Identifiers are reconstructed as the standard 1-based sequence `1..=n`. + /// Returns `Err(Error::InvalidSignature)` if the bytes are malformed or truncated. + fn deserialize(bytes: &[u8]) -> Result> { + let elem_size = ::serialize(&::generator()) + .expect("generator serialization always succeeds") .as_ref() .len(); - let sig_size = elem_size + scalar_size; + let scalar_size = + <::Field>::serialize(&<::Field>::zero()) + .as_ref() + .len(); + let sig_size = elem_size + scalar_size; + + let mut pos = 0usize; + + // Returns `bytes[pos..pos+n]` and advances `pos`, or errors if out of bounds. + let mut take = |n: usize| -> Option<&[u8]> { + let end = pos.checked_add(n)?; + let slice = bytes.get(pos..end)?; + pos = end; + Some(slice) + }; + + let ctx_len = u64::from_le_bytes( + take(8) + .ok_or(Error::InvalidSignature)? + .try_into() + .expect("slice is 8 bytes"), + ) as usize; + let context = take(ctx_len).ok_or(Error::InvalidSignature)?.to_vec(); + + let n = u32::from_le_bytes( + take(4) + .ok_or(Error::InvalidSignature)? + .try_into() + .expect("slice is 4 bytes"), + ) as u16; + let t = u32::from_le_bytes( + take(4) + .ok_or(Error::InvalidSignature)? + .try_into() + .expect("slice is 4 bytes"), + ) as u16; + + let identifiers: Vec> = (1..=n) + .map(Identifier::try_from) + .collect::, _>>()?; + + let mut participants = BTreeMap::new(); + for &id in &identifiers { + let pk = VerifyingKey::deserialize(take(elem_size).ok_or(Error::InvalidSignature)?)?; + participants.insert(id, pk); + } - let mut pos = 0usize; + let commitment_size = t as usize * elem_size; + let mut commitments = BTreeMap::new(); + for &id in &identifiers { + let c = VerifiableSecretSharingCommitment::deserialize_whole( + take(commitment_size).ok_or(Error::InvalidSignature)?, + )?; + commitments.insert(id, c); + } - // Returns `bytes[pos..pos+n]` and advances `pos`, or errors if out of bounds. - let mut take = |n: usize| -> Option<&[u8]> { - let end = pos.checked_add(n)?; - let slice = bytes.get(pos..end)?; - pos = end; - Some(slice) - }; + // Parse PoPs to advance pos; they are not needed for recovery. + for _ in 0..n { + let _ = Signature::default_deserialize(take(sig_size).ok_or(Error::InvalidSignature)?)?; + } - let ctx_len = u64::from_le_bytes( - take(8) - .ok_or(Error::InvalidSignature)? - .try_into() - .expect("slice is 8 bytes"), - ) as usize; - let context = take(ctx_len).ok_or(Error::InvalidSignature)?.to_vec(); - - let n = u32::from_le_bytes( - take(4) - .ok_or(Error::InvalidSignature)? - .try_into() - .expect("slice is 4 bytes"), - ) as u16; - let t = u32::from_le_bytes( - take(4) - .ok_or(Error::InvalidSignature)? - .try_into() - .expect("slice is 4 bytes"), - ) as u16; - - let identifiers: Vec> = (1..=n) - .map(Identifier::try_from) - .collect::, _>>()?; - - let mut participants = BTreeMap::new(); - for &id in &identifiers { - let pk = VerifyingKey::deserialize(take(elem_size).ok_or(Error::InvalidSignature)?)?; - participants.insert(id, pk); - } + let mut ephemeral_pubs = BTreeMap::new(); + for &id in &identifiers { + let pk = VerifyingKey::deserialize(take(elem_size).ok_or(Error::InvalidSignature)?)?; + ephemeral_pubs.insert(id, pk.to_element()); + } - let commitment_size = t as usize * elem_size; - let mut commitments = BTreeMap::new(); - for &id in &identifiers { - let c = VerifiableSecretSharingCommitment::deserialize_whole( - take(commitment_size).ok_or(Error::InvalidSignature)?, - )?; - commitments.insert(id, c); - } + let ext_len = u64::from_le_bytes( + take(8) + .ok_or(Error::InvalidSignature)? + .try_into() + .expect("slice is 8 bytes"), + ) as usize; + take(ext_len).ok_or(Error::InvalidSignature)?; // extension (not needed for recovery) - // Parse PoPs to advance pos; they are not needed for recovery. - for _ in 0..n { - let _ = Signature::default_deserialize(take(sig_size).ok_or(Error::InvalidSignature)?)?; - } + if pos != bytes.len() { + return Err(Error::InvalidSignature); + } - let mut ephemeral_pubs = BTreeMap::new(); - for &id in &identifiers { - let pk = VerifyingKey::deserialize(take(elem_size).ok_or(Error::InvalidSignature)?)?; - ephemeral_pubs.insert(id, pk.to_element()); + Ok(Self { + context, + n, + t, + participants, + commitments, + ephemeral_pubs, + }) } - let ext_len = u64::from_le_bytes( - take(8) - .ok_or(Error::InvalidSignature)? - .try_into() - .expect("slice is 8 bytes"), - ) as usize; - take(ext_len).ok_or(Error::InvalidSignature)?; // extension (not needed for recovery) - - if pos != bytes.len() { - return Err(Error::InvalidSignature); - } + /// Build the canonical public transcript `T` for Round 3 certification. + /// + /// Structure (exact order from the specification): + /// 1. `len(context)` as little-endian u64 + /// 2. `context` + /// 3. `n` as little-endian u32 + /// 4. `t` as little-endian u32 + /// 5. `P_j` for each participant in identifier-sorted order + /// 6. `C_j` (full VSS commitment) for each participant in identifier-sorted order + /// 7. `PoP_j` for each participant in identifier-sorted order + /// 8. `E_j` for each participant in identifier-sorted order + /// 9. `len(ext)` as little-endian u64 + /// 10. `ext` + fn serialize( + &self, + pops: &BTreeMap, Signature>, + extension: &[u8], + ) -> Result, Error> { + let mut t_bytes = Vec::new(); - Ok(ParsedTranscript { - context, - n, - t, - participants, - commitments, - ephemeral_pubs, - }) -} + t_bytes.extend_from_slice(&(self.context.len() as u64).to_le_bytes()); + t_bytes.extend_from_slice(&self.context); + t_bytes.extend_from_slice(&(self.n as u32).to_le_bytes()); + t_bytes.extend_from_slice(&(self.t as u32).to_le_bytes()); -/// Build the canonical public transcript `T` for Round 3 certification. -/// -/// Structure (exact order from the specification): -/// 1. `len(context)` as little-endian u64 -/// 2. `context` -/// 3. `n` as little-endian u32 -/// 4. `t` as little-endian u32 -/// 5. `P_j` for each participant in identifier-sorted order -/// 6. `C_j` (full VSS commitment) for each participant in identifier-sorted order -/// 7. `PoP_j` for each participant in identifier-sorted order -/// 8. `E_j` for each participant in identifier-sorted order -/// 9. `len(ext)` as little-endian u64 -/// 10. `ext` -#[allow(clippy::too_many_arguments)] -fn build_transcript( - context: &[u8], - n: u16, - t: u16, - participants: &BTreeMap, VerifyingKey>, - commitments: &BTreeMap, VerifiableSecretSharingCommitment>, - pops: &BTreeMap, Signature>, - ephemeral_pubs: &BTreeMap, Element>, - extension: &[u8], -) -> Result, Error> { - let mut t_bytes = Vec::new(); + for pk in self.participants.values() { + t_bytes.extend_from_slice(&pk.serialize()?); + } + for id in self.participants.keys() { + let c = self.commitments.get(id).ok_or(Error::PackageNotFound)?; + t_bytes.extend_from_slice(&c.serialize_whole()?); + } + for id in self.participants.keys() { + let pop = pops.get(id).ok_or(Error::PackageNotFound)?; + t_bytes.extend_from_slice(&pop.default_serialize()?); + } + for id in self.participants.keys() { + let e = self.ephemeral_pubs.get(id).ok_or(Error::PackageNotFound)?; + t_bytes.extend_from_slice(&::serialize(e)?.as_ref().to_vec()); + } - t_bytes.extend_from_slice(&(context.len() as u64).to_le_bytes()); - t_bytes.extend_from_slice(context); - t_bytes.extend_from_slice(&(n as u32).to_le_bytes()); - t_bytes.extend_from_slice(&(t as u32).to_le_bytes()); + t_bytes.extend_from_slice(&(extension.len() as u64).to_le_bytes()); + t_bytes.extend_from_slice(extension); - for pk in participants.values() { - t_bytes.extend_from_slice(&pk.serialize()?); - } - for id in participants.keys() { - let c = commitments.get(id).ok_or(Error::PackageNotFound)?; - t_bytes.extend_from_slice(&c.serialize_whole()?); - } - for id in participants.keys() { - let pop = pops.get(id).ok_or(Error::PackageNotFound)?; - t_bytes.extend_from_slice(&pop.default_serialize()?); - } - for id in participants.keys() { - let e = ephemeral_pubs.get(id).ok_or(Error::PackageNotFound)?; - t_bytes.extend_from_slice(&::serialize(e)?.as_ref().to_vec()); + Ok(t_bytes) } - - t_bytes.extend_from_slice(&(extension.len() as u64).to_le_bytes()); - t_bytes.extend_from_slice(extension); - - Ok(t_bytes) } /// DKG Round 1 structures. @@ -959,16 +955,15 @@ pub fn part2( let effective_extension = C::derive_extension(extension, &received_payloads); // Build transcript and sign it with d_i - let transcript = build_transcript::( - context, - secret_package.max_signers, - secret_package.min_signers, - participants, - &all_commitments, - &all_pops, - &all_ephemeral_pubs, - &effective_extension, - )?; + let transcript_data = Transcript { + context: context.to_vec(), + n: secret_package.max_signers, + t: secret_package.min_signers, + participants: participants.clone(), + commitments: all_commitments, + ephemeral_pubs: all_ephemeral_pubs, + }; + let transcript = transcript_data.serialize(&all_pops, &effective_extension)?; let transcript_signature = static_signing_key.sign(&mut rng, &transcript); let round2_secret = round2::SecretPackage::new( @@ -1107,7 +1102,7 @@ pub fn recover( success_certificate: &BTreeMap, Signature>, ciphertexts: &BTreeMap, Vec>, ) -> Result<(KeyPackage, PublicKeyPackage), Error> { - let parsed = parse_transcript::(transcript)?; + let parsed = Transcript::::deserialize(transcript)?; // Step 1: Validate the success certificate. if success_certificate.len() != parsed.n as usize { From 602410d55714393b9260e828e699555be6b1eece Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Wed, 18 Mar 2026 11:53:54 -0300 Subject: [PATCH 14/30] support all ciphersuites --- Cargo.lock | 427 +++++++++++++++++- frost-ed25519/tests/integration_tests.rs | 336 ++++++++++++++ frost-ed448/Cargo.toml | 1 + frost-ed448/src/lib.rs | 54 +++ frost-ed448/tests/integration_tests.rs | 289 ++++++++++++ frost-p256/Cargo.toml | 2 + frost-p256/src/lib.rs | 54 +++ frost-p256/tests/integration_tests.rs | 281 ++++++++++++ frost-secp256k1-tr/Cargo.toml | 1 + frost-secp256k1-tr/src/lib.rs | 54 +++ frost-secp256k1-tr/tests/integration_tests.rs | 9 + frost-secp256k1/Cargo.toml | 2 + frost-secp256k1/src/lib.rs | 54 +++ frost-secp256k1/tests/integration_tests.rs | 283 ++++++++++++ 14 files changed, 1832 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ea3ed059c..d200854c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,10 +8,45 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "generic-array", ] +[[package]] +name = "aead" +version = "0.6.0-rc.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b657e772794c6b04730ea897b66a058ccd866c16d1967da05eeeecec39043fe" +dependencies = [ + "crypto-common 0.2.1", + "inout 0.2.2", +] + +[[package]] +name = "aes" +version = "0.9.0-pre.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "183b3b4639f8f7237857117abb74f3dc8648b77e67ff78d9cb6959fd7e76f387" +dependencies = [ + "cfg-if", + "cipher 0.5.0-pre.6", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm" +version = "0.11.0-pre.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4ca4317859cecdb9849cf94087998a04efc7beedc07855836cb2534fd9aa4db" +dependencies = [ + "aead 0.6.0-rc.10", + "aes", + "cipher 0.5.0-pre.6", + "ctr", + "ghash", + "subtle", +] + [[package]] name = "aho-corasick" version = "1.1.4" @@ -33,6 +68,12 @@ version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + [[package]] name = "arrayvec" version = "0.7.6" @@ -153,8 +194,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", - "cipher", - "cpufeatures", + "cipher 0.4.4", + "cpufeatures 0.2.17", ] [[package]] @@ -163,9 +204,9 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ - "aead", + "aead 0.5.2", "chacha20", - "cipher", + "cipher 0.4.4", "poly1305", "zeroize", ] @@ -203,11 +244,21 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common", - "inout", + "crypto-common 0.1.6", + "inout 0.1.4", "zeroize", ] +[[package]] +name = "cipher" +version = "0.5.0-pre.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71c893d5a1e8257048dbb29954d2e1f85f091a150304f1defe4ca2806da5d3f" +dependencies = [ + "crypto-common 0.2.1", + "inout 0.2.2", +] + [[package]] name = "clap" version = "4.5.55" @@ -233,6 +284,12 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" +[[package]] +name = "cmov" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de0758edba32d61d1fd9f4d69491b47604b91ee2f7e6b33de7e54ca4ebe55dc3" + [[package]] name = "cobs" version = "0.3.0" @@ -266,6 +323,12 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "cpubits" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef0c543070d296ea414df2dd7625d1b24866ce206709d8a4a424f28377f5861" + [[package]] name = "cpufeatures" version = "0.2.17" @@ -275,6 +338,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "criterion" version = "0.6.0" @@ -367,6 +439,35 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710" +dependencies = [ + "getrandom 0.4.2", + "hybrid-array", + "rand_core 0.10.0", +] + +[[package]] +name = "ctr" +version = "0.10.0-pre.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f1637b299862a663dd5af70ee109d53555eff68b99b454fe535ed6599b0e9b3" +dependencies = [ + "cipher 0.5.0-pre.6", +] + +[[package]] +name = "ctutils" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1005a6d4446f5120ef475ad3d2af2b30c49c2c9c6904258e3bb30219bebed5e4" +dependencies = [ + "cmov", +] + [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -374,7 +475,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "curve25519-dalek-derive", "digest", "fiat-crypto 0.2.9", @@ -441,7 +542,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", - "crypto-common", + "crypto-common 0.1.6", ] [[package]] @@ -531,6 +632,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + [[package]] name = "errno" version = "0.3.14" @@ -581,6 +688,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "frost-core" version = "3.0.0-rc.0" @@ -637,6 +750,7 @@ dependencies = [ name = "frost-ed448" version = "3.0.0-rc.0" dependencies = [ + "chacha20poly1305", "criterion", "document-features", "ed448-goldilocks", @@ -658,6 +772,7 @@ dependencies = [ name = "frost-p256" version = "3.0.0-rc.0" dependencies = [ + "chacha20poly1305", "criterion", "document-features", "frost-core", @@ -673,6 +788,7 @@ dependencies = [ "serde_json", "sha2", "tokio", + "xaes-256-gcm", ] [[package]] @@ -713,6 +829,7 @@ dependencies = [ name = "frost-secp256k1" version = "3.0.0-rc.0" dependencies = [ + "chacha20poly1305", "criterion", "document-features", "frost-core", @@ -728,12 +845,14 @@ dependencies = [ "serde_json", "sha2", "tokio", + "xaes-256-gcm", ] [[package]] name = "frost-secp256k1-tr" version = "3.0.0-rc.0" dependencies = [ + "chacha20poly1305", "criterion", "document-features", "frost-core", @@ -790,10 +909,33 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 5.3.0", "wasip2", ] +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "rand_core 0.10.0", + "wasip2", + "wasip3", +] + +[[package]] +name = "ghash" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eecf2d5dc9b66b732b97707a0210906b1d30523eb773193ab777c0c84b3e8d5" +dependencies = [ + "polyval", +] + [[package]] name = "group" version = "0.13.0" @@ -825,6 +967,21 @@ dependencies = [ "byteorder", ] +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + [[package]] name = "heapless" version = "0.7.17" @@ -839,6 +996,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hex" version = "0.4.3" @@ -854,6 +1017,33 @@ dependencies = [ "arrayvec", ] +[[package]] +name = "hybrid-array" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8655f91cd07f2b9d0c24137bd650fe69617773435ee5ec83022377777ce65ef1" +dependencies = [ + "typenum", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + [[package]] name = "inout" version = "0.1.4" @@ -863,6 +1053,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "inout" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7" +dependencies = [ + "hybrid-array", +] + [[package]] name = "insta" version = "1.46.1" @@ -935,7 +1134,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -944,6 +1143,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libc" version = "0.2.180" @@ -971,6 +1176,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + [[package]] name = "memchr" version = "2.7.6" @@ -1064,9 +1275,20 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", - "universal-hash", + "universal-hash 0.5.1", +] + +[[package]] +name = "polyval" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dfc63250416fea14f5749b90725916a6c903f599d51cb635aa7a52bfd03eede" +dependencies = [ + "cpubits", + "cpufeatures 0.3.0", + "universal-hash 0.6.1", ] [[package]] @@ -1091,6 +1313,16 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + [[package]] name = "primeorder" version = "0.13.6" @@ -1149,6 +1381,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "rand" version = "0.8.5" @@ -1208,6 +1446,12 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" + [[package]] name = "rand_xorshift" version = "0.4.0" @@ -1420,7 +1664,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -1579,16 +1823,32 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "universal-hash" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "subtle", ] +[[package]] +name = "universal-hash" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4987bdc12753382e0bec4a65c50738ffaabc998b9cdd1f952fb5f39b0048a96" +dependencies = [ + "crypto-common 0.2.1", + "ctutils", +] + [[package]] name = "version_check" version = "0.9.5" @@ -1640,6 +1900,15 @@ dependencies = [ "wit-bindgen", ] +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen", +] + [[package]] name = "wasm-bindgen" version = "0.2.108" @@ -1685,6 +1954,40 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + [[package]] name = "web-sys" version = "0.3.85" @@ -1797,6 +2100,100 @@ name = "wit-bindgen" version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "xaes-256-gcm" +version = "0.0.1-pre.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db5f75af2f313d25d21ba188d3511fe031c616965f0a8ca31ef3965db1a0f725" +dependencies = [ + "aead 0.6.0-rc.10", + "aes", + "aes-gcm", + "cipher 0.5.0-pre.6", +] [[package]] name = "zerocopy" diff --git a/frost-ed25519/tests/integration_tests.rs b/frost-ed25519/tests/integration_tests.rs index d4d15f7ba..cdeba9edf 100644 --- a/frost-ed25519/tests/integration_tests.rs +++ b/frost-ed25519/tests/integration_tests.rs @@ -313,3 +313,339 @@ async fn check_async_sign_with_dealer() { .await .unwrap(); } + +#[test] +fn check_cocktail_dkg_test_vectors() { + use rand_core::{CryptoRng, RngCore}; + use sha2::{Digest, Sha512}; + use std::collections::BTreeMap; + + struct CounterDrng { + seed: Vec, + cs_id: Vec, + t: u32, + n: u32, + label: Vec, + counter: u64, + buf: [u8; 64], + buf_pos: usize, + } + + impl CounterDrng { + fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { + Self { + seed: seed.to_vec(), + cs_id: cs_id.to_vec(), + t, + n, + label: format!("round1_participant_{}", participant).into_bytes(), + counter: 0, + buf: [0u8; 64], + buf_pos: 64, + } + } + + fn refill(&mut self) { + let hash: [u8; 64] = Sha512::new() + .chain_update(&self.seed) + .chain_update(&self.cs_id) + .chain_update(self.t.to_le_bytes()) + .chain_update(self.n.to_le_bytes()) + .chain_update(&self.label) + .chain_update(self.counter.to_le_bytes()) + .finalize() + .into(); + self.buf = hash; + self.buf_pos = 0; + self.counter += 1; + } + } + + impl RngCore for CounterDrng { + fn fill_bytes(&mut self, dest: &mut [u8]) { + let mut pos = 0; + while pos < dest.len() { + if self.buf_pos == 64 { + self.refill(); + } + let available = 64 - self.buf_pos; + let needed = dest.len() - pos; + let to_copy = available.min(needed); + dest[pos..pos + to_copy] + .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); + self.buf_pos += to_copy; + pos += to_copy; + } + } + + fn next_u32(&mut self) -> u32 { + let mut buf = [0u8; 4]; + self.fill_bytes(&mut buf); + u32::from_le_bytes(buf) + } + + fn next_u64(&mut self) -> u64 { + let mut buf = [0u8; 8]; + self.fill_bytes(&mut buf); + u64::from_le_bytes(buf) + } + + fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { + self.fill_bytes(dest); + Ok(()) + } + } + + impl CryptoRng for CounterDrng {} + + let file: serde_json::Value = + serde_json::from_str(include_str!("helpers/cocktail-dkg-ed25519-sha512.json").trim()) + .unwrap(); + + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + + for vector in file["vectors"].as_array().unwrap().iter() { + let n = vector["n"].as_u64().unwrap() as u32; + let t = vector["t"].as_u64().unwrap() as u32; + let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); + + let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + + let expected_ephemeral_pubs: Vec> = vector["round1"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_group_public_key = + hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); + + let expected_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_verification_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) + .collect(); + + let identifiers: Vec = (1..=n as u16).map(|i| i.try_into().unwrap()).collect(); + + let mut static_keys: BTreeMap = BTreeMap::new(); + let mut participants: BTreeMap = BTreeMap::new(); + for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { + let sk = SigningKey::deserialize(key_bytes).unwrap(); + let vk = VerifyingKey::from(&sk); + static_keys.insert(*id, sk); + participants.insert(*id, vk); + } + + let extension = b""; + + // Round 1 + let mut round1_secret_packages: BTreeMap< + Identifier, + keys::cocktail_dkg::round1::SecretPackage, + > = BTreeMap::new(); + let mut received_round1_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (idx, (&id, sk)) in static_keys.iter().enumerate() { + let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32); + let (secret_pkg, pkg) = keys::cocktail_dkg::part1( + id, + n as u16, + t as u16, + sk, + &participants, + &context, + &BTreeMap::new(), + &mut rng, + ) + .unwrap(); + + let round1_tv = &vector["round1"][idx]; + + assert_eq!( + <::Group>::serialize(pkg.ephemeral_pub()) + .unwrap() + .as_ref(), + expected_ephemeral_pubs[idx].as_slice(), + "participant {} ephemeral public key mismatch", + idx + 1 + ); + + let expected_commitment: Vec> = round1_tv["vss_commitment"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + assert_eq!( + pkg.commitment().serialize().unwrap(), + expected_commitment, + "participant {} VSS commitment mismatch", + idx + 1 + ); + + let expected_enc_shares: Vec> = round1_tv["encrypted_shares"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + for (j, &receiver_id) in identifiers.iter().enumerate() { + let actual = &pkg.encrypted_shares()[&receiver_id]; + assert_eq!( + actual.as_slice(), + expected_enc_shares[j].as_slice(), + "participant {} encrypted share for receiver {} mismatch", + idx + 1, + j + 1 + ); + } + + round1_secret_packages.insert(id, secret_pkg); + for &receiver_id in participants.keys() { + if receiver_id != id { + received_round1_packages + .entry(receiver_id) + .or_default() + .insert(id, pkg.clone()); + } + } + } + + // Round 2 + let mut round2_secret_packages: BTreeMap< + Identifier, + keys::cocktail_dkg::round2::SecretPackage, + > = BTreeMap::new(); + let mut received_round2_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (&id, sk) in static_keys.iter() { + let secret_pkg = round1_secret_packages.remove(&id).unwrap(); + let round1_packages = &received_round1_packages[&id]; + let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( + secret_pkg, + round1_packages, + sk, + &participants, + &context, + extension, + rand::rngs::OsRng, + ) + .unwrap(); + + round2_secret_packages.insert(id, r2_secret); + for &receiver_id in participants.keys() { + received_round2_packages + .entry(receiver_id) + .or_default() + .insert(id, r2_pkg.clone()); + } + } + + // Round 3 + let mut transcript_for_recovery: Vec = Vec::new(); + let mut cert_for_recovery: BTreeMap = BTreeMap::new(); + + for (idx, (&id, _)) in static_keys.iter().enumerate() { + let r2_secret = &round2_secret_packages[&id]; + let round2_packages = &received_round2_packages[&id]; + let (key_pkg, pubkey_pkg, transcript, cert) = + keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); + + if idx == 0 { + transcript_for_recovery = transcript; + cert_for_recovery = cert; + } + + assert_eq!( + pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), + expected_group_public_key.as_slice(), + "participant {} group public key mismatch", + idx + 1 + ); + assert_eq!( + key_pkg.signing_share().serialize().as_slice(), + expected_shares[idx].as_slice(), + "participant {} secret share mismatch", + idx + 1 + ); + assert_eq!( + pubkey_pkg + .verifying_shares() + .get(&id) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + expected_verification_shares[idx].as_slice(), + "participant {} verification share mismatch", + idx + 1 + ); + } + + // Recovery + if let Some(recovery) = vector.get("recovery") { + let recovery_id = recovery["participant_id"].as_u64().unwrap() as u16; + let recovery_identifier = Identifier::try_from(recovery_id).unwrap(); + let recovery_sk = static_keys.get(&recovery_identifier).unwrap(); + + let ciphertexts_json = recovery["ciphertexts"].as_array().unwrap(); + let mut recovery_ciphertexts: BTreeMap> = BTreeMap::new(); + for (j_idx, ct) in ciphertexts_json.iter().enumerate() { + let sender_id = Identifier::try_from((j_idx + 1) as u16).unwrap(); + recovery_ciphertexts.insert(sender_id, hex::decode(ct.as_str().unwrap()).unwrap()); + } + + let expected_recovered_share = + hex::decode(recovery["recovered_secret_share"].as_str().unwrap()).unwrap(); + let expected_recovered_vshare = + hex::decode(recovery["recovered_verification_share"].as_str().unwrap()).unwrap(); + + let (recovered_key_pkg, recovered_pubkey_pkg) = keys::cocktail_dkg::recover( + recovery_sk, + &transcript_for_recovery, + &cert_for_recovery, + &recovery_ciphertexts, + ) + .unwrap(); + + assert_eq!( + recovered_key_pkg.signing_share().serialize().as_slice(), + expected_recovered_share.as_slice(), + "recovered secret share mismatch" + ); + assert_eq!( + recovered_pubkey_pkg + .verifying_shares() + .get(&recovery_identifier) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + expected_recovered_vshare.as_slice(), + "recovered verification share mismatch" + ); + } + } +} diff --git a/frost-ed448/Cargo.toml b/frost-ed448/Cargo.toml index 5c26e30ee..128f702d0 100644 --- a/frost-ed448/Cargo.toml +++ b/frost-ed448/Cargo.toml @@ -16,6 +16,7 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] +chacha20poly1305.workspace = true document-features.workspace = true ed448-goldilocks = { version = "0.9.0" } frost-core.workspace = true diff --git a/frost-ed448/src/lib.rs b/frost-ed448/src/lib.rs index 154f445f6..4d6430a9c 100644 --- a/frost-ed448/src/lib.rs +++ b/frost-ed448/src/lib.rs @@ -221,6 +221,58 @@ impl RandomizedCiphersuite for Ed448Shake256 { } } +#[allow(deprecated)] +impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed448Shake256 { + fn HPOP(data: &[u8]) -> Scalar { + hash_to_scalar(&[data]) + } + + fn H6( + shared_secret_ephem: &[u8], + shared_secret_static: &[u8], + ephemeral_pub: &[u8], + sender_pub: &[u8], + recipient_pub: &[u8], + context: &[u8], + ) -> alloc::vec::Vec { + hash_to_array(&[ + b"COCKTAIL-DKG-Ed448-SHAKE256-H6", + shared_secret_ephem, + shared_secret_static, + ephemeral_pub, + sender_pub, + recipient_pub, + &(context.len() as u64).to_le_bytes(), + context, + ]) + .to_vec() + } + + fn HKDF(data: &[u8]) -> alloc::vec::Vec { + hash_to_array(&[data]).to_vec() + } + + fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .encrypt(XNonce::from_slice(nonce), plaintext) + .expect("XChaCha20Poly1305 encryption never fails") + } + + fn aead_decrypt( + key: &[u8; 32], + nonce: &[u8; 24], + ciphertext: &[u8], + ) -> Result, frost_core::Error> { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .decrypt(XNonce::from_slice(nonce), ciphertext) + .map_err(|_| frost_core::Error::InvalidSignature) + } +} + type E = Ed448Shake256; /// A FROST(Ed448, SHAKE256) participant identifier. @@ -318,6 +370,8 @@ pub mod keys { /// ensure that they received the correct (and same) value. pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment; + /// COCKTAIL-DKG key generation protocol. + pub mod cocktail_dkg; pub mod dkg; pub mod refresh; pub mod repairable; diff --git a/frost-ed448/tests/integration_tests.rs b/frost-ed448/tests/integration_tests.rs index 28bd22ad2..b7658081d 100644 --- a/frost-ed448/tests/integration_tests.rs +++ b/frost-ed448/tests/integration_tests.rs @@ -14,6 +14,13 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } +#[test] +fn check_sign_with_cocktail_dkg() { + let rng = rand::rngs::OsRng; + + frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::(rng); +} + #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; @@ -306,3 +313,285 @@ async fn check_async_sign_with_dealer() { .await .unwrap(); } + +#[test] +fn check_cocktail_dkg_test_vectors() { + use rand_core::{CryptoRng, RngCore}; + use sha3::{ + digest::{ExtendableOutput, Update, XofReader}, + Shake256, + }; + use std::collections::BTreeMap; + + struct CounterDrng { + seed: Vec, + cs_id: Vec, + t: u32, + n: u32, + label: Vec, + counter: u64, + buf: [u8; 64], + buf_pos: usize, + } + + impl CounterDrng { + fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { + Self { + seed: seed.to_vec(), + cs_id: cs_id.to_vec(), + t, + n, + label: format!("round1_participant_{}", participant).into_bytes(), + counter: 0, + buf: [0u8; 64], + buf_pos: 64, + } + } + + fn refill(&mut self) { + let mut hasher = Shake256::default(); + hasher.update(&self.seed); + hasher.update(&self.cs_id); + hasher.update(&self.t.to_le_bytes()); + hasher.update(&self.n.to_le_bytes()); + hasher.update(&self.label); + hasher.update(&self.counter.to_le_bytes()); + let mut reader = hasher.finalize_xof(); + reader.read(&mut self.buf); + self.buf_pos = 0; + self.counter += 1; + } + } + + impl RngCore for CounterDrng { + fn fill_bytes(&mut self, dest: &mut [u8]) { + let mut pos = 0; + while pos < dest.len() { + if self.buf_pos == 64 { + self.refill(); + } + let available = 64 - self.buf_pos; + let needed = dest.len() - pos; + let to_copy = available.min(needed); + dest[pos..pos + to_copy] + .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); + self.buf_pos += to_copy; + pos += to_copy; + } + } + + fn next_u32(&mut self) -> u32 { + let mut buf = [0u8; 4]; + self.fill_bytes(&mut buf); + u32::from_le_bytes(buf) + } + + fn next_u64(&mut self) -> u64 { + let mut buf = [0u8; 8]; + self.fill_bytes(&mut buf); + u64::from_le_bytes(buf) + } + + fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { + self.fill_bytes(dest); + Ok(()) + } + } + + impl CryptoRng for CounterDrng {} + + let file: serde_json::Value = + serde_json::from_str(include_str!("helpers/cocktail-dkg-ed448-shake256.json").trim()) + .unwrap(); + + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + + for vector in file["vectors"].as_array().unwrap().iter() { + let n = vector["n"].as_u64().unwrap() as u32; + let t = vector["t"].as_u64().unwrap() as u32; + let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); + + let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + + let expected_ephemeral_pubs: Vec> = vector["round1"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_group_public_key = + hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); + + let expected_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_verification_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) + .collect(); + + let identifiers: Vec = (1..=n as u16).map(|i| i.try_into().unwrap()).collect(); + + let mut static_keys: BTreeMap = BTreeMap::new(); + let mut participants: BTreeMap = BTreeMap::new(); + for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { + // JSON stores 56-byte raw scalars; ed448 expects 57-byte RFC 8032 format (trailing 0x00). + let mut key_padded = [0u8; 57]; + key_padded[..key_bytes.len()].copy_from_slice(key_bytes); + let sk = SigningKey::deserialize(&key_padded).unwrap(); + let vk = VerifyingKey::from(&sk); + static_keys.insert(*id, sk); + participants.insert(*id, vk); + } + + let extension = b""; + + // Round 1 + let mut round1_secret_packages: BTreeMap< + Identifier, + keys::cocktail_dkg::round1::SecretPackage, + > = BTreeMap::new(); + let mut received_round1_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (idx, (&id, sk)) in static_keys.iter().enumerate() { + let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32); + let (secret_pkg, pkg) = keys::cocktail_dkg::part1( + id, + n as u16, + t as u16, + sk, + &participants, + &context, + &BTreeMap::new(), + &mut rng, + ) + .unwrap(); + + let round1_tv = &vector["round1"][idx]; + + assert_eq!( + <::Group>::serialize(pkg.ephemeral_pub()) + .unwrap() + .as_ref(), + expected_ephemeral_pubs[idx].as_slice(), + "participant {} ephemeral public key mismatch", + idx + 1 + ); + + let expected_commitment: Vec> = round1_tv["vss_commitment"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + assert_eq!( + pkg.commitment().serialize().unwrap(), + expected_commitment, + "participant {} VSS commitment mismatch", + idx + 1 + ); + + // Note: encrypted shares are 73 bytes in our implementation (57-byte RFC 8032 scalar + + // 16-byte AEAD tag) but 72 bytes in the JSON (56-byte raw scalar + 16-byte AEAD tag). + // This format difference means the ciphertexts cannot be compared against the JSON. + + round1_secret_packages.insert(id, secret_pkg); + for &receiver_id in participants.keys() { + if receiver_id != id { + received_round1_packages + .entry(receiver_id) + .or_default() + .insert(id, pkg.clone()); + } + } + } + + // Round 2 + let mut round2_secret_packages: BTreeMap< + Identifier, + keys::cocktail_dkg::round2::SecretPackage, + > = BTreeMap::new(); + let mut received_round2_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (&id, sk) in static_keys.iter() { + let secret_pkg = round1_secret_packages.remove(&id).unwrap(); + let round1_packages = &received_round1_packages[&id]; + let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( + secret_pkg, + round1_packages, + sk, + &participants, + &context, + extension, + rand::rngs::OsRng, + ) + .unwrap(); + + round2_secret_packages.insert(id, r2_secret); + for &receiver_id in participants.keys() { + received_round2_packages + .entry(receiver_id) + .or_default() + .insert(id, r2_pkg.clone()); + } + } + + // Round 3 + for (idx, (&id, _)) in static_keys.iter().enumerate() { + let r2_secret = &round2_secret_packages[&id]; + let round2_packages = &received_round2_packages[&id]; + let (key_pkg, pubkey_pkg, _transcript, _cert) = + keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); + + assert_eq!( + pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), + expected_group_public_key.as_slice(), + "participant {} group public key mismatch", + idx + 1 + ); + // JSON stores 56-byte raw scalars; our implementation uses 57-byte RFC 8032 format + // (little-endian scalar + trailing 0x00). Compare the first 56 bytes. + assert_eq!( + &key_pkg.signing_share().serialize().as_slice()[..56], + expected_shares[idx].as_slice(), + "participant {} secret share mismatch", + idx + 1 + ); + assert_eq!( + pubkey_pkg + .verifying_shares() + .get(&id) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + expected_verification_shares[idx].as_slice(), + "participant {} verification share mismatch", + idx + 1 + ); + } + + // Note: recovery is not tested here because the JSON ciphertexts use 56-byte raw scalar + // encryption while our implementation uses 57-byte RFC 8032 format, making them + // incompatible. + } +} diff --git a/frost-p256/Cargo.toml b/frost-p256/Cargo.toml index 68e63b3cf..fd98b5cec 100644 --- a/frost-p256/Cargo.toml +++ b/frost-p256/Cargo.toml @@ -16,12 +16,14 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] +chacha20poly1305.workspace = true document-features.workspace = true p256 = { version = "0.13.0", features = ["hash2curve"], default-features = false } frost-core.workspace = true frost-rerandomized.workspace = true rand_core.workspace = true sha2 = { version = "0.10.2", default-features = false } +xaes-256-gcm = "0.0.1-pre.0" [dev-dependencies] criterion.workspace = true diff --git a/frost-p256/src/lib.rs b/frost-p256/src/lib.rs index 42aa94f1b..fa5ec0601 100644 --- a/frost-p256/src/lib.rs +++ b/frost-p256/src/lib.rs @@ -237,6 +237,58 @@ impl RandomizedCiphersuite for P256Sha256 { } } +#[allow(deprecated)] +impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for P256Sha256 { + fn HPOP(data: &[u8]) -> Scalar { + hash_to_scalar(&[CONTEXT_STRING.as_bytes(), b"pop"], data) + } + + fn H6( + shared_secret_ephem: &[u8], + shared_secret_static: &[u8], + ephemeral_pub: &[u8], + sender_pub: &[u8], + recipient_pub: &[u8], + context: &[u8], + ) -> alloc::vec::Vec { + hash_to_array(&[ + b"COCKTAIL-DKG-P256-SHA256-H6", + shared_secret_ephem, + shared_secret_static, + ephemeral_pub, + sender_pub, + recipient_pub, + &(context.len() as u64).to_le_bytes(), + context, + ]) + .to_vec() + } + + fn HKDF(data: &[u8]) -> alloc::vec::Vec { + hash_to_array(&[data]).to_vec() + } + + fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .encrypt(XNonce::from_slice(nonce), plaintext) + .expect("XChaCha20Poly1305 encryption never fails") + } + + fn aead_decrypt( + key: &[u8; 32], + nonce: &[u8; 24], + ciphertext: &[u8], + ) -> Result, frost_core::Error> { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .decrypt(XNonce::from_slice(nonce), ciphertext) + .map_err(|_| frost_core::Error::InvalidSignature) + } +} + // Shorthand alias for the ciphersuite type P = P256Sha256; @@ -334,6 +386,8 @@ pub mod keys { /// ensure that they received the correct (and same) value. pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment

; + /// COCKTAIL-DKG key generation protocol. + pub mod cocktail_dkg; pub mod dkg; pub mod refresh; pub mod repairable; diff --git a/frost-p256/tests/integration_tests.rs b/frost-p256/tests/integration_tests.rs index d1d27f440..412138ce1 100644 --- a/frost-p256/tests/integration_tests.rs +++ b/frost-p256/tests/integration_tests.rs @@ -14,6 +14,13 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } +#[test] +fn check_sign_with_cocktail_dkg() { + let rng = rand::rngs::OsRng; + + frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::(rng); +} + #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; @@ -303,3 +310,277 @@ async fn check_async_sign_with_dealer() { .await .unwrap(); } + +#[test] +fn check_cocktail_dkg_test_vectors() { + use rand_core::{CryptoRng, RngCore}; + use sha2::{Digest, Sha256}; + use std::collections::BTreeMap; + + struct CounterDrng { + seed: Vec, + cs_id: Vec, + t: u32, + n: u32, + label: Vec, + counter: u64, + buf: [u8; 32], + buf_pos: usize, + } + + impl CounterDrng { + fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { + Self { + seed: seed.to_vec(), + cs_id: cs_id.to_vec(), + t, + n, + label: format!("round1_participant_{}", participant).into_bytes(), + counter: 0, + buf: [0u8; 32], + buf_pos: 32, + } + } + + fn refill(&mut self) { + let hash: [u8; 32] = Sha256::new() + .chain_update(&self.seed) + .chain_update(&self.cs_id) + .chain_update(self.t.to_le_bytes()) + .chain_update(self.n.to_le_bytes()) + .chain_update(&self.label) + .chain_update(self.counter.to_le_bytes()) + .finalize() + .into(); + self.buf = hash; + self.buf_pos = 0; + self.counter += 1; + } + } + + impl RngCore for CounterDrng { + fn fill_bytes(&mut self, dest: &mut [u8]) { + let mut pos = 0; + while pos < dest.len() { + if self.buf_pos == 32 { + self.refill(); + } + let available = 32 - self.buf_pos; + let needed = dest.len() - pos; + let to_copy = available.min(needed); + dest[pos..pos + to_copy] + .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); + self.buf_pos += to_copy; + pos += to_copy; + } + } + + fn next_u32(&mut self) -> u32 { + let mut buf = [0u8; 4]; + self.fill_bytes(&mut buf); + u32::from_le_bytes(buf) + } + + fn next_u64(&mut self) -> u64 { + let mut buf = [0u8; 8]; + self.fill_bytes(&mut buf); + u64::from_le_bytes(buf) + } + + fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { + self.fill_bytes(dest); + Ok(()) + } + } + + impl CryptoRng for CounterDrng {} + + let file: serde_json::Value = + serde_json::from_str(include_str!("helpers/cocktail-dkg-p256-sha256.json").trim()) + .unwrap(); + + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + + for vector in file["vectors"].as_array().unwrap().iter() { + let n = vector["n"].as_u64().unwrap() as u32; + let t = vector["t"].as_u64().unwrap() as u32; + let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); + + let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + + let expected_ephemeral_pubs: Vec> = vector["round1"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_group_public_key = + hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); + + let expected_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_verification_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) + .collect(); + + let identifiers: Vec = (1..=n as u16).map(|i| i.try_into().unwrap()).collect(); + + let mut static_keys: BTreeMap = BTreeMap::new(); + let mut participants: BTreeMap = BTreeMap::new(); + for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { + let sk = SigningKey::deserialize(key_bytes).unwrap(); + let vk = VerifyingKey::from(&sk); + static_keys.insert(*id, sk); + participants.insert(*id, vk); + } + + let extension = b""; + + // Round 1 + let mut round1_secret_packages: BTreeMap< + Identifier, + keys::cocktail_dkg::round1::SecretPackage, + > = BTreeMap::new(); + let mut received_round1_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (idx, (&id, sk)) in static_keys.iter().enumerate() { + let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32); + let (secret_pkg, pkg) = keys::cocktail_dkg::part1( + id, + n as u16, + t as u16, + sk, + &participants, + &context, + &BTreeMap::new(), + &mut rng, + ) + .unwrap(); + + let round1_tv = &vector["round1"][idx]; + + assert_eq!( + <::Group>::serialize(pkg.ephemeral_pub()) + .unwrap() + .as_ref(), + expected_ephemeral_pubs[idx].as_slice(), + "participant {} ephemeral public key mismatch", + idx + 1 + ); + + let expected_commitment: Vec> = round1_tv["vss_commitment"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + assert_eq!( + pkg.commitment().serialize().unwrap(), + expected_commitment, + "participant {} VSS commitment mismatch", + idx + 1 + ); + + // Note: encrypted shares are not compared because P-256 ciphersuite + // uses XAES-256-GCM (per spec), but our implementation uses XChaCha20Poly1305. + // The final key material is still verified below. + + round1_secret_packages.insert(id, secret_pkg); + for &receiver_id in participants.keys() { + if receiver_id != id { + received_round1_packages + .entry(receiver_id) + .or_default() + .insert(id, pkg.clone()); + } + } + } + + // Round 2 + let mut round2_secret_packages: BTreeMap< + Identifier, + keys::cocktail_dkg::round2::SecretPackage, + > = BTreeMap::new(); + let mut received_round2_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (&id, sk) in static_keys.iter() { + let secret_pkg = round1_secret_packages.remove(&id).unwrap(); + let round1_packages = &received_round1_packages[&id]; + let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( + secret_pkg, + round1_packages, + sk, + &participants, + &context, + extension, + rand::rngs::OsRng, + ) + .unwrap(); + + round2_secret_packages.insert(id, r2_secret); + for &receiver_id in participants.keys() { + received_round2_packages + .entry(receiver_id) + .or_default() + .insert(id, r2_pkg.clone()); + } + } + + // Round 3 + for (idx, (&id, _)) in static_keys.iter().enumerate() { + let r2_secret = &round2_secret_packages[&id]; + let round2_packages = &received_round2_packages[&id]; + let (key_pkg, pubkey_pkg, _transcript, _cert) = + keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); + + assert_eq!( + pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), + expected_group_public_key.as_slice(), + "participant {} group public key mismatch", + idx + 1 + ); + assert_eq!( + key_pkg.signing_share().serialize().as_slice(), + expected_shares[idx].as_slice(), + "participant {} secret share mismatch", + idx + 1 + ); + assert_eq!( + pubkey_pkg + .verifying_shares() + .get(&id) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + expected_verification_shares[idx].as_slice(), + "participant {} verification share mismatch", + idx + 1 + ); + } + + // Recovery: skipped because recovery uses the JSON's encrypted shares (XAES-256-GCM), + // which our implementation cannot decrypt (we use XChaCha20Poly1305). + } +} diff --git a/frost-secp256k1-tr/Cargo.toml b/frost-secp256k1-tr/Cargo.toml index ad45c8fb9..8483447af 100644 --- a/frost-secp256k1-tr/Cargo.toml +++ b/frost-secp256k1-tr/Cargo.toml @@ -16,6 +16,7 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] +chacha20poly1305.workspace = true document-features.workspace = true frost-core.workspace = true frost-rerandomized.workspace = true diff --git a/frost-secp256k1-tr/src/lib.rs b/frost-secp256k1-tr/src/lib.rs index 7800d1479..cd9254fee 100644 --- a/frost-secp256k1-tr/src/lib.rs +++ b/frost-secp256k1-tr/src/lib.rs @@ -500,6 +500,58 @@ impl RandomizedCiphersuite for Secp256K1Sha256TR { } } +#[allow(deprecated)] +impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Secp256K1Sha256TR { + fn HPOP(data: &[u8]) -> Scalar { + hash_to_scalar(&[CONTEXT_STRING.as_bytes(), b"pop"], data) + } + + fn H6( + shared_secret_ephem: &[u8], + shared_secret_static: &[u8], + ephemeral_pub: &[u8], + sender_pub: &[u8], + recipient_pub: &[u8], + context: &[u8], + ) -> alloc::vec::Vec { + hash_to_array(&[ + b"COCKTAIL-DKG-secp256k1-SHA256-TR-H6", + shared_secret_ephem, + shared_secret_static, + ephemeral_pub, + sender_pub, + recipient_pub, + &(context.len() as u64).to_le_bytes(), + context, + ]) + .to_vec() + } + + fn HKDF(data: &[u8]) -> alloc::vec::Vec { + hash_to_array(&[data]).to_vec() + } + + fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .encrypt(XNonce::from_slice(nonce), plaintext) + .expect("XChaCha20Poly1305 encryption never fails") + } + + fn aead_decrypt( + key: &[u8; 32], + nonce: &[u8; 24], + ciphertext: &[u8], + ) -> Result, frost_core::Error> { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .decrypt(XNonce::from_slice(nonce), ciphertext) + .map_err(|_| frost_core::Error::InvalidSignature) + } +} + type S = Secp256K1Sha256TR; /// A FROST(secp256k1, SHA-256) participant identifier. @@ -792,6 +844,8 @@ pub mod keys { } } + /// COCKTAIL-DKG key generation protocol. + pub mod cocktail_dkg; pub mod dkg; pub mod refresh; pub mod repairable; diff --git a/frost-secp256k1-tr/tests/integration_tests.rs b/frost-secp256k1-tr/tests/integration_tests.rs index 682db377d..63ad6b03f 100644 --- a/frost-secp256k1-tr/tests/integration_tests.rs +++ b/frost-secp256k1-tr/tests/integration_tests.rs @@ -14,6 +14,15 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } +#[test] +fn check_sign_with_cocktail_dkg() { + let rng = rand::rngs::OsRng; + + frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::( + rng, + ); +} + #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; diff --git a/frost-secp256k1/Cargo.toml b/frost-secp256k1/Cargo.toml index 8d942718e..c39ab634d 100644 --- a/frost-secp256k1/Cargo.toml +++ b/frost-secp256k1/Cargo.toml @@ -16,12 +16,14 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] +chacha20poly1305.workspace = true document-features.workspace = true frost-core.workspace = true frost-rerandomized.workspace = true k256 = { version = "0.13.0", features = ["arithmetic", "expose-field", "hash2curve"], default-features = false } rand_core.workspace = true sha2 = { version = "0.10.2", default-features = false } +xaes-256-gcm = "0.0.1-pre.0" [dev-dependencies] criterion.workspace = true diff --git a/frost-secp256k1/src/lib.rs b/frost-secp256k1/src/lib.rs index bebcd1f5d..9c551576b 100644 --- a/frost-secp256k1/src/lib.rs +++ b/frost-secp256k1/src/lib.rs @@ -237,6 +237,58 @@ impl RandomizedCiphersuite for Secp256K1Sha256 { } } +#[allow(deprecated)] +impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Secp256K1Sha256 { + fn HPOP(data: &[u8]) -> Scalar { + hash_to_scalar(&[CONTEXT_STRING.as_bytes(), b"pop"], data) + } + + fn H6( + shared_secret_ephem: &[u8], + shared_secret_static: &[u8], + ephemeral_pub: &[u8], + sender_pub: &[u8], + recipient_pub: &[u8], + context: &[u8], + ) -> alloc::vec::Vec { + hash_to_array(&[ + b"COCKTAIL-DKG-secp256k1-SHA256-H6", + shared_secret_ephem, + shared_secret_static, + ephemeral_pub, + sender_pub, + recipient_pub, + &(context.len() as u64).to_le_bytes(), + context, + ]) + .to_vec() + } + + fn HKDF(data: &[u8]) -> alloc::vec::Vec { + hash_to_array(&[data]).to_vec() + } + + fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .encrypt(XNonce::from_slice(nonce), plaintext) + .expect("XChaCha20Poly1305 encryption never fails") + } + + fn aead_decrypt( + key: &[u8; 32], + nonce: &[u8; 24], + ciphertext: &[u8], + ) -> Result, frost_core::Error> { + use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; + let cipher = XChaCha20Poly1305::new(key.into()); + cipher + .decrypt(XNonce::from_slice(nonce), ciphertext) + .map_err(|_| frost_core::Error::InvalidSignature) + } +} + type S = Secp256K1Sha256; /// A FROST(secp256k1, SHA-256) participant identifier. @@ -334,6 +386,8 @@ pub mod keys { /// ensure that they received the correct (and same) value. pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment; + /// COCKTAIL-DKG key generation protocol. + pub mod cocktail_dkg; pub mod dkg; pub mod refresh; pub mod repairable; diff --git a/frost-secp256k1/tests/integration_tests.rs b/frost-secp256k1/tests/integration_tests.rs index 343214e1b..daee4231d 100644 --- a/frost-secp256k1/tests/integration_tests.rs +++ b/frost-secp256k1/tests/integration_tests.rs @@ -14,6 +14,15 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } +#[test] +fn check_sign_with_cocktail_dkg() { + let rng = rand::rngs::OsRng; + + frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::( + rng, + ); +} + #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; @@ -307,3 +316,277 @@ async fn check_async_sign_with_dealer() { .await .unwrap(); } + +#[test] +fn check_cocktail_dkg_test_vectors() { + use rand_core::{CryptoRng, RngCore}; + use sha2::{Digest, Sha256}; + use std::collections::BTreeMap; + + struct CounterDrng { + seed: Vec, + cs_id: Vec, + t: u32, + n: u32, + label: Vec, + counter: u64, + buf: [u8; 32], + buf_pos: usize, + } + + impl CounterDrng { + fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { + Self { + seed: seed.to_vec(), + cs_id: cs_id.to_vec(), + t, + n, + label: format!("round1_participant_{}", participant).into_bytes(), + counter: 0, + buf: [0u8; 32], + buf_pos: 32, + } + } + + fn refill(&mut self) { + let hash: [u8; 32] = Sha256::new() + .chain_update(&self.seed) + .chain_update(&self.cs_id) + .chain_update(self.t.to_le_bytes()) + .chain_update(self.n.to_le_bytes()) + .chain_update(&self.label) + .chain_update(self.counter.to_le_bytes()) + .finalize() + .into(); + self.buf = hash; + self.buf_pos = 0; + self.counter += 1; + } + } + + impl RngCore for CounterDrng { + fn fill_bytes(&mut self, dest: &mut [u8]) { + let mut pos = 0; + while pos < dest.len() { + if self.buf_pos == 32 { + self.refill(); + } + let available = 32 - self.buf_pos; + let needed = dest.len() - pos; + let to_copy = available.min(needed); + dest[pos..pos + to_copy] + .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); + self.buf_pos += to_copy; + pos += to_copy; + } + } + + fn next_u32(&mut self) -> u32 { + let mut buf = [0u8; 4]; + self.fill_bytes(&mut buf); + u32::from_le_bytes(buf) + } + + fn next_u64(&mut self) -> u64 { + let mut buf = [0u8; 8]; + self.fill_bytes(&mut buf); + u64::from_le_bytes(buf) + } + + fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { + self.fill_bytes(dest); + Ok(()) + } + } + + impl CryptoRng for CounterDrng {} + + let file: serde_json::Value = + serde_json::from_str(include_str!("helpers/cocktail-dkg-secp256k1-sha256.json").trim()) + .unwrap(); + + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + + for vector in file["vectors"].as_array().unwrap().iter() { + let n = vector["n"].as_u64().unwrap() as u32; + let t = vector["t"].as_u64().unwrap() as u32; + let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); + + let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + + let expected_ephemeral_pubs: Vec> = vector["round1"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_group_public_key = + hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); + + let expected_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_verification_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) + .collect(); + + let identifiers: Vec = (1..=n as u16).map(|i| i.try_into().unwrap()).collect(); + + let mut static_keys: BTreeMap = BTreeMap::new(); + let mut participants: BTreeMap = BTreeMap::new(); + for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { + let sk = SigningKey::deserialize(key_bytes).unwrap(); + let vk = VerifyingKey::from(&sk); + static_keys.insert(*id, sk); + participants.insert(*id, vk); + } + + let extension = b""; + + // Round 1 + let mut round1_secret_packages: BTreeMap< + Identifier, + keys::cocktail_dkg::round1::SecretPackage, + > = BTreeMap::new(); + let mut received_round1_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (idx, (&id, sk)) in static_keys.iter().enumerate() { + let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32); + let (secret_pkg, pkg) = keys::cocktail_dkg::part1( + id, + n as u16, + t as u16, + sk, + &participants, + &context, + &BTreeMap::new(), + &mut rng, + ) + .unwrap(); + + let round1_tv = &vector["round1"][idx]; + + assert_eq!( + <::Group>::serialize(pkg.ephemeral_pub()) + .unwrap() + .as_ref(), + expected_ephemeral_pubs[idx].as_slice(), + "participant {} ephemeral public key mismatch", + idx + 1 + ); + + let expected_commitment: Vec> = round1_tv["vss_commitment"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + assert_eq!( + pkg.commitment().serialize().unwrap(), + expected_commitment, + "participant {} VSS commitment mismatch", + idx + 1 + ); + + // Note: encrypted shares are not compared because secp256k1 ciphersuite + // uses XAES-256-GCM (per spec), but our implementation uses XChaCha20Poly1305. + // The final key material is still verified below. + + round1_secret_packages.insert(id, secret_pkg); + for &receiver_id in participants.keys() { + if receiver_id != id { + received_round1_packages + .entry(receiver_id) + .or_default() + .insert(id, pkg.clone()); + } + } + } + + // Round 2 + let mut round2_secret_packages: BTreeMap< + Identifier, + keys::cocktail_dkg::round2::SecretPackage, + > = BTreeMap::new(); + let mut received_round2_packages: BTreeMap< + Identifier, + BTreeMap, + > = BTreeMap::new(); + + for (&id, sk) in static_keys.iter() { + let secret_pkg = round1_secret_packages.remove(&id).unwrap(); + let round1_packages = &received_round1_packages[&id]; + let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( + secret_pkg, + round1_packages, + sk, + &participants, + &context, + extension, + rand::rngs::OsRng, + ) + .unwrap(); + + round2_secret_packages.insert(id, r2_secret); + for &receiver_id in participants.keys() { + received_round2_packages + .entry(receiver_id) + .or_default() + .insert(id, r2_pkg.clone()); + } + } + + // Round 3 + for (idx, (&id, _)) in static_keys.iter().enumerate() { + let r2_secret = &round2_secret_packages[&id]; + let round2_packages = &received_round2_packages[&id]; + let (key_pkg, pubkey_pkg, _transcript, _cert) = + keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); + + assert_eq!( + pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), + expected_group_public_key.as_slice(), + "participant {} group public key mismatch", + idx + 1 + ); + assert_eq!( + key_pkg.signing_share().serialize().as_slice(), + expected_shares[idx].as_slice(), + "participant {} secret share mismatch", + idx + 1 + ); + assert_eq!( + pubkey_pkg + .verifying_shares() + .get(&id) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + expected_verification_shares[idx].as_slice(), + "participant {} verification share mismatch", + idx + 1 + ); + } + + // Recovery: skipped because recovery uses the JSON's encrypted shares (XAES-256-GCM), + // which our implementation cannot decrypt (we use XChaCha20Poly1305). + } +} From 6a63c0c2cd1b53f17e119fd704b50ddb6f7116c2 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Wed, 18 Mar 2026 13:47:15 -0300 Subject: [PATCH 15/30] make test vector test generic --- Cargo.lock | 423 +----------------- frost-core/src/tests/ciphersuite_generic.rs | 297 ++++++++++++ frost-ed25519/tests/integration_tests.rs | 261 +---------- frost-ed448/tests/integration_tests.rs | 205 +-------- frost-p256/Cargo.toml | 1 - frost-p256/tests/integration_tests.rs | 199 +------- frost-ristretto255/tests/integration_tests.rs | 270 +---------- frost-secp256k1/Cargo.toml | 1 - frost-secp256k1/tests/integration_tests.rs | 199 +------- 9 files changed, 362 insertions(+), 1494 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d200854c7..f489626aa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,45 +8,10 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "crypto-common 0.1.6", + "crypto-common", "generic-array", ] -[[package]] -name = "aead" -version = "0.6.0-rc.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b657e772794c6b04730ea897b66a058ccd866c16d1967da05eeeecec39043fe" -dependencies = [ - "crypto-common 0.2.1", - "inout 0.2.2", -] - -[[package]] -name = "aes" -version = "0.9.0-pre.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183b3b4639f8f7237857117abb74f3dc8648b77e67ff78d9cb6959fd7e76f387" -dependencies = [ - "cfg-if", - "cipher 0.5.0-pre.6", - "cpufeatures 0.2.17", -] - -[[package]] -name = "aes-gcm" -version = "0.11.0-pre.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4ca4317859cecdb9849cf94087998a04efc7beedc07855836cb2534fd9aa4db" -dependencies = [ - "aead 0.6.0-rc.10", - "aes", - "cipher 0.5.0-pre.6", - "ctr", - "ghash", - "subtle", -] - [[package]] name = "aho-corasick" version = "1.1.4" @@ -68,12 +33,6 @@ version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" -[[package]] -name = "anyhow" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" - [[package]] name = "arrayvec" version = "0.7.6" @@ -194,8 +153,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", - "cipher 0.4.4", - "cpufeatures 0.2.17", + "cipher", + "cpufeatures", ] [[package]] @@ -204,9 +163,9 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ - "aead 0.5.2", + "aead", "chacha20", - "cipher 0.4.4", + "cipher", "poly1305", "zeroize", ] @@ -244,21 +203,11 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common 0.1.6", - "inout 0.1.4", + "crypto-common", + "inout", "zeroize", ] -[[package]] -name = "cipher" -version = "0.5.0-pre.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71c893d5a1e8257048dbb29954d2e1f85f091a150304f1defe4ca2806da5d3f" -dependencies = [ - "crypto-common 0.2.1", - "inout 0.2.2", -] - [[package]] name = "clap" version = "4.5.55" @@ -284,12 +233,6 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" -[[package]] -name = "cmov" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0758edba32d61d1fd9f4d69491b47604b91ee2f7e6b33de7e54ca4ebe55dc3" - [[package]] name = "cobs" version = "0.3.0" @@ -323,12 +266,6 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" -[[package]] -name = "cpubits" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef0c543070d296ea414df2dd7625d1b24866ce206709d8a4a424f28377f5861" - [[package]] name = "cpufeatures" version = "0.2.17" @@ -338,15 +275,6 @@ dependencies = [ "libc", ] -[[package]] -name = "cpufeatures" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" -dependencies = [ - "libc", -] - [[package]] name = "criterion" version = "0.6.0" @@ -439,35 +367,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "crypto-common" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710" -dependencies = [ - "getrandom 0.4.2", - "hybrid-array", - "rand_core 0.10.0", -] - -[[package]] -name = "ctr" -version = "0.10.0-pre.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f1637b299862a663dd5af70ee109d53555eff68b99b454fe535ed6599b0e9b3" -dependencies = [ - "cipher 0.5.0-pre.6", -] - -[[package]] -name = "ctutils" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1005a6d4446f5120ef475ad3d2af2b30c49c2c9c6904258e3bb30219bebed5e4" -dependencies = [ - "cmov", -] - [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -475,7 +374,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", - "cpufeatures 0.2.17", + "cpufeatures", "curve25519-dalek-derive", "digest", "fiat-crypto 0.2.9", @@ -542,7 +441,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", - "crypto-common 0.1.6", + "crypto-common", ] [[package]] @@ -632,12 +531,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - [[package]] name = "errno" version = "0.3.14" @@ -688,12 +581,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - [[package]] name = "frost-core" version = "3.0.0-rc.0" @@ -788,7 +675,6 @@ dependencies = [ "serde_json", "sha2", "tokio", - "xaes-256-gcm", ] [[package]] @@ -845,7 +731,6 @@ dependencies = [ "serde_json", "sha2", "tokio", - "xaes-256-gcm", ] [[package]] @@ -909,31 +794,8 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "r-efi 5.3.0", - "wasip2", -] - -[[package]] -name = "getrandom" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" -dependencies = [ - "cfg-if", - "libc", - "r-efi 6.0.0", - "rand_core 0.10.0", + "r-efi", "wasip2", - "wasip3", -] - -[[package]] -name = "ghash" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eecf2d5dc9b66b732b97707a0210906b1d30523eb773193ab777c0c84b3e8d5" -dependencies = [ - "polyval", ] [[package]] @@ -967,21 +829,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "foldhash", -] - -[[package]] -name = "hashbrown" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" - [[package]] name = "heapless" version = "0.7.17" @@ -996,12 +843,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - [[package]] name = "hex" version = "0.4.3" @@ -1017,33 +858,6 @@ dependencies = [ "arrayvec", ] -[[package]] -name = "hybrid-array" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8655f91cd07f2b9d0c24137bd650fe69617773435ee5ec83022377777ce65ef1" -dependencies = [ - "typenum", -] - -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - -[[package]] -name = "indexmap" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" -dependencies = [ - "equivalent", - "hashbrown 0.16.1", - "serde", - "serde_core", -] - [[package]] name = "inout" version = "0.1.4" @@ -1053,15 +867,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "inout" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7" -dependencies = [ - "hybrid-array", -] - [[package]] name = "insta" version = "1.46.1" @@ -1134,7 +939,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ - "cpufeatures 0.2.17", + "cpufeatures", ] [[package]] @@ -1143,12 +948,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - [[package]] name = "libc" version = "0.2.180" @@ -1176,12 +975,6 @@ dependencies = [ "scopeguard", ] -[[package]] -name = "log" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" - [[package]] name = "memchr" version = "2.7.6" @@ -1275,20 +1068,9 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ - "cpufeatures 0.2.17", + "cpufeatures", "opaque-debug", - "universal-hash 0.5.1", -] - -[[package]] -name = "polyval" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfc63250416fea14f5749b90725916a6c903f599d51cb635aa7a52bfd03eede" -dependencies = [ - "cpubits", - "cpufeatures 0.3.0", - "universal-hash 0.6.1", + "universal-hash", ] [[package]] @@ -1313,16 +1095,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn", -] - [[package]] name = "primeorder" version = "0.13.6" @@ -1381,12 +1153,6 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" -[[package]] -name = "r-efi" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" - [[package]] name = "rand" version = "0.8.5" @@ -1446,12 +1212,6 @@ dependencies = [ "getrandom 0.3.4", ] -[[package]] -name = "rand_core" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" - [[package]] name = "rand_xorshift" version = "0.4.0" @@ -1664,7 +1424,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures 0.2.17", + "cpufeatures", "digest", ] @@ -1823,32 +1583,16 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "universal-hash" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "crypto-common 0.1.6", + "crypto-common", "subtle", ] -[[package]] -name = "universal-hash" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4987bdc12753382e0bec4a65c50738ffaabc998b9cdd1f952fb5f39b0048a96" -dependencies = [ - "crypto-common 0.2.1", - "ctutils", -] - [[package]] name = "version_check" version = "0.9.5" @@ -1900,15 +1644,6 @@ dependencies = [ "wit-bindgen", ] -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen", -] - [[package]] name = "wasm-bindgen" version = "0.2.108" @@ -1954,40 +1689,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags", - "hashbrown 0.15.5", - "indexmap", - "semver", -] - [[package]] name = "web-sys" version = "0.3.85" @@ -2100,100 +1801,6 @@ name = "wit-bindgen" version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] - -[[package]] -name = "xaes-256-gcm" -version = "0.0.1-pre.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db5f75af2f313d25d21ba188d3511fe031c616965f0a8ca31ef3965db1a0f725" -dependencies = [ - "aead 0.6.0-rc.10", - "aes", - "aes-gcm", - "cipher 0.5.0-pre.6", -] [[package]] name = "zerocopy" diff --git a/frost-core/src/tests/ciphersuite_generic.rs b/frost-core/src/tests/ciphersuite_generic.rs index 5c9b8c91e..ef3665894 100644 --- a/frost-core/src/tests/ciphersuite_generic.rs +++ b/frost-core/src/tests/ciphersuite_generic.rs @@ -1295,3 +1295,300 @@ where // Use the DKG-derived key packages to run a FROST signing session. check_sign(min_signers, key_packages, rng, first_pubkey).unwrap() } + +/// Test COCKTAIL-DKG protocol against JSON test vectors. +/// +/// - `json`: JSON test vector content (use `include_str!` in the caller). +/// - `make_rng`: Factory for a per-participant deterministic RNG. +/// Arguments: `(seed, cs_id, t, n, participant_index)`. +/// `participant_index = 0` is a sentinel used for the coordinator's RNG in Round 2. +/// - `compare_encrypted_shares`: Whether to compare encrypted shares against the vectors. +/// Set `false` when the ciphersuite AEAD differs from the reference +/// (e.g. P-256/secp256k1 spec requires XAES-256-GCM, not XChaCha20Poly1305). +/// - `check_recovery`: Whether to test the `recovery` section of the vector. +/// Set `false` when the encrypted share format is incompatible with the reference. +pub fn check_cocktail_dkg_test_vectors( + json: &str, + make_rng: F, + compare_encrypted_shares: bool, + check_recovery: bool, +) where + C: CocktailCiphersuite, + R: RngCore + CryptoRng, + F: Fn(&[u8], &[u8], u32, u32, u32) -> R, +{ + let file: serde_json::Value = serde_json::from_str(json.trim()).unwrap(); + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + + for vector in file["vectors"].as_array().unwrap().iter() { + let n = vector["n"].as_u64().unwrap() as u32; + let t = vector["t"].as_u64().unwrap() as u32; + let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); + + let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + + let expected_ephemeral_pubs: Vec> = vector["round1"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_group_public_key = + hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); + + let expected_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_verification_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) + .collect(); + + let identifiers: Vec> = (1..=n as u16) + .map(|i| i.try_into().unwrap()) + .collect(); + + let mut static_keys: BTreeMap, SigningKey> = BTreeMap::new(); + let mut participants: BTreeMap, VerifyingKey> = BTreeMap::new(); + for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { + // Try direct deserialization first; if it fails (wrong length), append one zero + // byte and retry. This handles ed448 where JSON stores 56-byte raw scalars but + // the ciphersuite uses 57-byte RFC 8032 format (trailing 0x00). + let sk = SigningKey::::deserialize(key_bytes).unwrap_or_else(|_| { + let mut padded = key_bytes.clone(); + padded.push(0); + SigningKey::::deserialize(&padded).unwrap() + }); + let vk = VerifyingKey::from(&sk); + static_keys.insert(*id, sk); + participants.insert(*id, vk); + } + + let extension = b""; + + // Round 1 + let mut round1_secret_packages: BTreeMap< + Identifier, + frost::keys::cocktail_dkg::round1::SecretPackage, + > = BTreeMap::new(); + let mut received_round1_packages: BTreeMap< + Identifier, + BTreeMap, frost::keys::cocktail_dkg::round1::Package>, + > = BTreeMap::new(); + + for (idx, (&id, sk)) in static_keys.iter().enumerate() { + let mut rng = make_rng(&seed, &cs_id, t, n, (idx + 1) as u32); + let (secret_pkg, pkg) = frost::keys::cocktail_dkg::part1( + id, + n as u16, + t as u16, + sk, + &participants, + &context, + &BTreeMap::new(), + &mut rng, + ) + .unwrap(); + + let round1_tv = &vector["round1"][idx]; + + assert_eq!( + <::Group>::serialize(pkg.ephemeral_pub()) + .unwrap() + .as_ref(), + expected_ephemeral_pubs[idx].as_slice(), + "participant {} ephemeral public key mismatch", + idx + 1 + ); + + let expected_commitment: Vec> = round1_tv["vss_commitment"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + assert_eq!( + pkg.commitment().serialize().unwrap(), + expected_commitment, + "participant {} VSS commitment mismatch", + idx + 1 + ); + + if compare_encrypted_shares { + let expected_enc_shares: Vec> = round1_tv["encrypted_shares"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + for (j, &receiver_id) in identifiers.iter().enumerate() { + let actual = &pkg.encrypted_shares()[&receiver_id]; + assert_eq!( + actual.as_slice(), + expected_enc_shares[j].as_slice(), + "participant {} encrypted share for receiver {} mismatch", + idx + 1, + j + 1 + ); + } + } + + round1_secret_packages.insert(id, secret_pkg); + for &receiver_id in participants.keys() { + if receiver_id != id { + received_round1_packages + .entry(receiver_id) + .or_default() + .insert(id, pkg.clone()); + } + } + } + + // Round 2 + let mut round2_secret_packages: BTreeMap< + Identifier, + frost::keys::cocktail_dkg::round2::SecretPackage, + > = BTreeMap::new(); + let mut received_round2_packages: BTreeMap< + Identifier, + BTreeMap, frost::keys::cocktail_dkg::round2::Package>, + > = BTreeMap::new(); + + for (&id, sk) in static_keys.iter() { + let secret_pkg = round1_secret_packages.remove(&id).unwrap(); + let round1_packages = &received_round1_packages[&id]; + // Use participant 0 as a sentinel RNG for part2 (transcript Schnorr signing). + // This randomness is not verified against test vectors. + let mut rng2 = make_rng(&seed, &cs_id, t, n, 0); + let (r2_secret, r2_pkg, _received_payloads) = frost::keys::cocktail_dkg::part2( + secret_pkg, + round1_packages, + sk, + &participants, + &context, + extension, + &mut rng2, + ) + .unwrap(); + + round2_secret_packages.insert(id, r2_secret); + for &receiver_id in participants.keys() { + received_round2_packages + .entry(receiver_id) + .or_default() + .insert(id, r2_pkg.clone()); + } + } + + // Round 3 + let mut transcript_for_recovery: Vec = Vec::new(); + let mut cert_for_recovery: BTreeMap, Signature> = BTreeMap::new(); + + for (idx, (&id, _)) in static_keys.iter().enumerate() { + let r2_secret = &round2_secret_packages[&id]; + let round2_packages = &received_round2_packages[&id]; + let (key_pkg, pubkey_pkg, transcript, cert) = + frost::keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); + + if idx == 0 && check_recovery { + transcript_for_recovery = transcript; + cert_for_recovery = cert; + } + + assert_eq!( + pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), + expected_group_public_key.as_slice(), + "participant {} group public key mismatch", + idx + 1 + ); + + // Compare only the prefix when JSON bytes are fewer than the serialized length. + // Handles ed448 (56-byte JSON raw scalar vs 57-byte RFC 8032 format). + let serialized_share = key_pkg.signing_share().serialize(); + let expected = expected_shares[idx].as_slice(); + let cmp_len = expected.len().min(serialized_share.len()); + assert_eq!( + &serialized_share[..cmp_len], + &expected[..cmp_len], + "participant {} secret share mismatch", + idx + 1 + ); + + assert_eq!( + pubkey_pkg + .verifying_shares() + .get(&id) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + expected_verification_shares[idx].as_slice(), + "participant {} verification share mismatch", + idx + 1 + ); + } + + // Recovery + if check_recovery { + if let Some(recovery) = vector.get("recovery") { + let recovery_id = recovery["participant_id"].as_u64().unwrap() as u16; + let recovery_identifier = Identifier::::try_from(recovery_id).unwrap(); + let recovery_sk = static_keys.get(&recovery_identifier).unwrap(); + + let ciphertexts_json = recovery["ciphertexts"].as_array().unwrap(); + let mut recovery_ciphertexts: BTreeMap, Vec> = BTreeMap::new(); + for (j_idx, ct) in ciphertexts_json.iter().enumerate() { + let sender_id = Identifier::::try_from((j_idx + 1) as u16).unwrap(); + recovery_ciphertexts + .insert(sender_id, hex::decode(ct.as_str().unwrap()).unwrap()); + } + + let expected_recovered_share = + hex::decode(recovery["recovered_secret_share"].as_str().unwrap()).unwrap(); + let expected_recovered_vshare = hex::decode( + recovery["recovered_verification_share"].as_str().unwrap(), + ) + .unwrap(); + + let (recovered_key_pkg, recovered_pubkey_pkg) = + frost::keys::cocktail_dkg::recover( + recovery_sk, + &transcript_for_recovery, + &cert_for_recovery, + &recovery_ciphertexts, + ) + .unwrap(); + + assert_eq!( + recovered_key_pkg.signing_share().serialize().as_slice(), + expected_recovered_share.as_slice(), + "recovered secret share mismatch" + ); + assert_eq!( + recovered_pubkey_pkg + .verifying_shares() + .get(&recovery_identifier) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + expected_recovered_vshare.as_slice(), + "recovered verification share mismatch" + ); + } + } + } +} diff --git a/frost-ed25519/tests/integration_tests.rs b/frost-ed25519/tests/integration_tests.rs index cdeba9edf..e4f0557a2 100644 --- a/frost-ed25519/tests/integration_tests.rs +++ b/frost-ed25519/tests/integration_tests.rs @@ -318,7 +318,6 @@ async fn check_async_sign_with_dealer() { fn check_cocktail_dkg_test_vectors() { use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha512}; - use std::collections::BTreeMap; struct CounterDrng { seed: Vec, @@ -398,254 +397,14 @@ fn check_cocktail_dkg_test_vectors() { impl CryptoRng for CounterDrng {} - let file: serde_json::Value = - serde_json::from_str(include_str!("helpers/cocktail-dkg-ed25519-sha512.json").trim()) - .unwrap(); - - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); - - for vector in file["vectors"].as_array().unwrap().iter() { - let n = vector["n"].as_u64().unwrap() as u32; - let t = vector["t"].as_u64().unwrap() as u32; - let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); - - let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - - let expected_ephemeral_pubs: Vec> = vector["round1"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_group_public_key = - hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); - - let expected_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_verification_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) - .collect(); - - let identifiers: Vec = (1..=n as u16).map(|i| i.try_into().unwrap()).collect(); - - let mut static_keys: BTreeMap = BTreeMap::new(); - let mut participants: BTreeMap = BTreeMap::new(); - for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { - let sk = SigningKey::deserialize(key_bytes).unwrap(); - let vk = VerifyingKey::from(&sk); - static_keys.insert(*id, sk); - participants.insert(*id, vk); - } - - let extension = b""; - - // Round 1 - let mut round1_secret_packages: BTreeMap< - Identifier, - keys::cocktail_dkg::round1::SecretPackage, - > = BTreeMap::new(); - let mut received_round1_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (idx, (&id, sk)) in static_keys.iter().enumerate() { - let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32); - let (secret_pkg, pkg) = keys::cocktail_dkg::part1( - id, - n as u16, - t as u16, - sk, - &participants, - &context, - &BTreeMap::new(), - &mut rng, - ) - .unwrap(); - - let round1_tv = &vector["round1"][idx]; - - assert_eq!( - <::Group>::serialize(pkg.ephemeral_pub()) - .unwrap() - .as_ref(), - expected_ephemeral_pubs[idx].as_slice(), - "participant {} ephemeral public key mismatch", - idx + 1 - ); - - let expected_commitment: Vec> = round1_tv["vss_commitment"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - assert_eq!( - pkg.commitment().serialize().unwrap(), - expected_commitment, - "participant {} VSS commitment mismatch", - idx + 1 - ); - - let expected_enc_shares: Vec> = round1_tv["encrypted_shares"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - for (j, &receiver_id) in identifiers.iter().enumerate() { - let actual = &pkg.encrypted_shares()[&receiver_id]; - assert_eq!( - actual.as_slice(), - expected_enc_shares[j].as_slice(), - "participant {} encrypted share for receiver {} mismatch", - idx + 1, - j + 1 - ); - } - - round1_secret_packages.insert(id, secret_pkg); - for &receiver_id in participants.keys() { - if receiver_id != id { - received_round1_packages - .entry(receiver_id) - .or_default() - .insert(id, pkg.clone()); - } - } - } - - // Round 2 - let mut round2_secret_packages: BTreeMap< - Identifier, - keys::cocktail_dkg::round2::SecretPackage, - > = BTreeMap::new(); - let mut received_round2_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (&id, sk) in static_keys.iter() { - let secret_pkg = round1_secret_packages.remove(&id).unwrap(); - let round1_packages = &received_round1_packages[&id]; - let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( - secret_pkg, - round1_packages, - sk, - &participants, - &context, - extension, - rand::rngs::OsRng, - ) - .unwrap(); - - round2_secret_packages.insert(id, r2_secret); - for &receiver_id in participants.keys() { - received_round2_packages - .entry(receiver_id) - .or_default() - .insert(id, r2_pkg.clone()); - } - } - - // Round 3 - let mut transcript_for_recovery: Vec = Vec::new(); - let mut cert_for_recovery: BTreeMap = BTreeMap::new(); - - for (idx, (&id, _)) in static_keys.iter().enumerate() { - let r2_secret = &round2_secret_packages[&id]; - let round2_packages = &received_round2_packages[&id]; - let (key_pkg, pubkey_pkg, transcript, cert) = - keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); - - if idx == 0 { - transcript_for_recovery = transcript; - cert_for_recovery = cert; - } - - assert_eq!( - pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), - expected_group_public_key.as_slice(), - "participant {} group public key mismatch", - idx + 1 - ); - assert_eq!( - key_pkg.signing_share().serialize().as_slice(), - expected_shares[idx].as_slice(), - "participant {} secret share mismatch", - idx + 1 - ); - assert_eq!( - pubkey_pkg - .verifying_shares() - .get(&id) - .unwrap() - .serialize() - .unwrap() - .as_slice(), - expected_verification_shares[idx].as_slice(), - "participant {} verification share mismatch", - idx + 1 - ); - } - - // Recovery - if let Some(recovery) = vector.get("recovery") { - let recovery_id = recovery["participant_id"].as_u64().unwrap() as u16; - let recovery_identifier = Identifier::try_from(recovery_id).unwrap(); - let recovery_sk = static_keys.get(&recovery_identifier).unwrap(); - - let ciphertexts_json = recovery["ciphertexts"].as_array().unwrap(); - let mut recovery_ciphertexts: BTreeMap> = BTreeMap::new(); - for (j_idx, ct) in ciphertexts_json.iter().enumerate() { - let sender_id = Identifier::try_from((j_idx + 1) as u16).unwrap(); - recovery_ciphertexts.insert(sender_id, hex::decode(ct.as_str().unwrap()).unwrap()); - } - - let expected_recovered_share = - hex::decode(recovery["recovered_secret_share"].as_str().unwrap()).unwrap(); - let expected_recovered_vshare = - hex::decode(recovery["recovered_verification_share"].as_str().unwrap()).unwrap(); - - let (recovered_key_pkg, recovered_pubkey_pkg) = keys::cocktail_dkg::recover( - recovery_sk, - &transcript_for_recovery, - &cert_for_recovery, - &recovery_ciphertexts, - ) - .unwrap(); - - assert_eq!( - recovered_key_pkg.signing_share().serialize().as_slice(), - expected_recovered_share.as_slice(), - "recovered secret share mismatch" - ); - assert_eq!( - recovered_pubkey_pkg - .verifying_shares() - .get(&recovery_identifier) - .unwrap() - .serialize() - .unwrap() - .as_slice(), - expected_recovered_vshare.as_slice(), - "recovered verification share mismatch" - ); - } - } + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< + Ed25519Sha512, + _, + _, + >( + include_str!("helpers/cocktail-dkg-ed25519-sha512.json"), + |seed, cs_id, t, n, p| CounterDrng::new(seed, cs_id, t, n, p), + true, // encrypted shares match (XChaCha20Poly1305) + true, // recovery is tested + ); } diff --git a/frost-ed448/tests/integration_tests.rs b/frost-ed448/tests/integration_tests.rs index b7658081d..638553044 100644 --- a/frost-ed448/tests/integration_tests.rs +++ b/frost-ed448/tests/integration_tests.rs @@ -321,7 +321,6 @@ fn check_cocktail_dkg_test_vectors() { digest::{ExtendableOutput, Update, XofReader}, Shake256, }; - use std::collections::BTreeMap; struct CounterDrng { seed: Vec, @@ -400,198 +399,14 @@ fn check_cocktail_dkg_test_vectors() { impl CryptoRng for CounterDrng {} - let file: serde_json::Value = - serde_json::from_str(include_str!("helpers/cocktail-dkg-ed448-shake256.json").trim()) - .unwrap(); - - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); - - for vector in file["vectors"].as_array().unwrap().iter() { - let n = vector["n"].as_u64().unwrap() as u32; - let t = vector["t"].as_u64().unwrap() as u32; - let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); - - let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - - let expected_ephemeral_pubs: Vec> = vector["round1"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_group_public_key = - hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); - - let expected_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_verification_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) - .collect(); - - let identifiers: Vec = (1..=n as u16).map(|i| i.try_into().unwrap()).collect(); - - let mut static_keys: BTreeMap = BTreeMap::new(); - let mut participants: BTreeMap = BTreeMap::new(); - for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { - // JSON stores 56-byte raw scalars; ed448 expects 57-byte RFC 8032 format (trailing 0x00). - let mut key_padded = [0u8; 57]; - key_padded[..key_bytes.len()].copy_from_slice(key_bytes); - let sk = SigningKey::deserialize(&key_padded).unwrap(); - let vk = VerifyingKey::from(&sk); - static_keys.insert(*id, sk); - participants.insert(*id, vk); - } - - let extension = b""; - - // Round 1 - let mut round1_secret_packages: BTreeMap< - Identifier, - keys::cocktail_dkg::round1::SecretPackage, - > = BTreeMap::new(); - let mut received_round1_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (idx, (&id, sk)) in static_keys.iter().enumerate() { - let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32); - let (secret_pkg, pkg) = keys::cocktail_dkg::part1( - id, - n as u16, - t as u16, - sk, - &participants, - &context, - &BTreeMap::new(), - &mut rng, - ) - .unwrap(); - - let round1_tv = &vector["round1"][idx]; - - assert_eq!( - <::Group>::serialize(pkg.ephemeral_pub()) - .unwrap() - .as_ref(), - expected_ephemeral_pubs[idx].as_slice(), - "participant {} ephemeral public key mismatch", - idx + 1 - ); - - let expected_commitment: Vec> = round1_tv["vss_commitment"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - assert_eq!( - pkg.commitment().serialize().unwrap(), - expected_commitment, - "participant {} VSS commitment mismatch", - idx + 1 - ); - - // Note: encrypted shares are 73 bytes in our implementation (57-byte RFC 8032 scalar + - // 16-byte AEAD tag) but 72 bytes in the JSON (56-byte raw scalar + 16-byte AEAD tag). - // This format difference means the ciphertexts cannot be compared against the JSON. - - round1_secret_packages.insert(id, secret_pkg); - for &receiver_id in participants.keys() { - if receiver_id != id { - received_round1_packages - .entry(receiver_id) - .or_default() - .insert(id, pkg.clone()); - } - } - } - - // Round 2 - let mut round2_secret_packages: BTreeMap< - Identifier, - keys::cocktail_dkg::round2::SecretPackage, - > = BTreeMap::new(); - let mut received_round2_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (&id, sk) in static_keys.iter() { - let secret_pkg = round1_secret_packages.remove(&id).unwrap(); - let round1_packages = &received_round1_packages[&id]; - let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( - secret_pkg, - round1_packages, - sk, - &participants, - &context, - extension, - rand::rngs::OsRng, - ) - .unwrap(); - - round2_secret_packages.insert(id, r2_secret); - for &receiver_id in participants.keys() { - received_round2_packages - .entry(receiver_id) - .or_default() - .insert(id, r2_pkg.clone()); - } - } - - // Round 3 - for (idx, (&id, _)) in static_keys.iter().enumerate() { - let r2_secret = &round2_secret_packages[&id]; - let round2_packages = &received_round2_packages[&id]; - let (key_pkg, pubkey_pkg, _transcript, _cert) = - keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); - - assert_eq!( - pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), - expected_group_public_key.as_slice(), - "participant {} group public key mismatch", - idx + 1 - ); - // JSON stores 56-byte raw scalars; our implementation uses 57-byte RFC 8032 format - // (little-endian scalar + trailing 0x00). Compare the first 56 bytes. - assert_eq!( - &key_pkg.signing_share().serialize().as_slice()[..56], - expected_shares[idx].as_slice(), - "participant {} secret share mismatch", - idx + 1 - ); - assert_eq!( - pubkey_pkg - .verifying_shares() - .get(&id) - .unwrap() - .serialize() - .unwrap() - .as_slice(), - expected_verification_shares[idx].as_slice(), - "participant {} verification share mismatch", - idx + 1 - ); - } - - // Note: recovery is not tested here because the JSON ciphertexts use 56-byte raw scalar - // encryption while our implementation uses 57-byte RFC 8032 format, making them - // incompatible. - } + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< + Ed448Shake256, + _, + _, + >( + include_str!("helpers/cocktail-dkg-ed448-shake256.json"), + |seed, cs_id, t, n, p| CounterDrng::new(seed, cs_id, t, n, p), + false, // encrypted shares: 73 vs 72 byte format mismatch + false, // recovery: ciphertext format incompatible + ); } diff --git a/frost-p256/Cargo.toml b/frost-p256/Cargo.toml index fd98b5cec..0e5e99c32 100644 --- a/frost-p256/Cargo.toml +++ b/frost-p256/Cargo.toml @@ -23,7 +23,6 @@ frost-core.workspace = true frost-rerandomized.workspace = true rand_core.workspace = true sha2 = { version = "0.10.2", default-features = false } -xaes-256-gcm = "0.0.1-pre.0" [dev-dependencies] criterion.workspace = true diff --git a/frost-p256/tests/integration_tests.rs b/frost-p256/tests/integration_tests.rs index 412138ce1..ab97a1c14 100644 --- a/frost-p256/tests/integration_tests.rs +++ b/frost-p256/tests/integration_tests.rs @@ -315,7 +315,6 @@ async fn check_async_sign_with_dealer() { fn check_cocktail_dkg_test_vectors() { use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha256}; - use std::collections::BTreeMap; struct CounterDrng { seed: Vec, @@ -395,192 +394,14 @@ fn check_cocktail_dkg_test_vectors() { impl CryptoRng for CounterDrng {} - let file: serde_json::Value = - serde_json::from_str(include_str!("helpers/cocktail-dkg-p256-sha256.json").trim()) - .unwrap(); - - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); - - for vector in file["vectors"].as_array().unwrap().iter() { - let n = vector["n"].as_u64().unwrap() as u32; - let t = vector["t"].as_u64().unwrap() as u32; - let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); - - let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - - let expected_ephemeral_pubs: Vec> = vector["round1"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_group_public_key = - hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); - - let expected_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_verification_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) - .collect(); - - let identifiers: Vec = (1..=n as u16).map(|i| i.try_into().unwrap()).collect(); - - let mut static_keys: BTreeMap = BTreeMap::new(); - let mut participants: BTreeMap = BTreeMap::new(); - for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { - let sk = SigningKey::deserialize(key_bytes).unwrap(); - let vk = VerifyingKey::from(&sk); - static_keys.insert(*id, sk); - participants.insert(*id, vk); - } - - let extension = b""; - - // Round 1 - let mut round1_secret_packages: BTreeMap< - Identifier, - keys::cocktail_dkg::round1::SecretPackage, - > = BTreeMap::new(); - let mut received_round1_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (idx, (&id, sk)) in static_keys.iter().enumerate() { - let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32); - let (secret_pkg, pkg) = keys::cocktail_dkg::part1( - id, - n as u16, - t as u16, - sk, - &participants, - &context, - &BTreeMap::new(), - &mut rng, - ) - .unwrap(); - - let round1_tv = &vector["round1"][idx]; - - assert_eq!( - <::Group>::serialize(pkg.ephemeral_pub()) - .unwrap() - .as_ref(), - expected_ephemeral_pubs[idx].as_slice(), - "participant {} ephemeral public key mismatch", - idx + 1 - ); - - let expected_commitment: Vec> = round1_tv["vss_commitment"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - assert_eq!( - pkg.commitment().serialize().unwrap(), - expected_commitment, - "participant {} VSS commitment mismatch", - idx + 1 - ); - - // Note: encrypted shares are not compared because P-256 ciphersuite - // uses XAES-256-GCM (per spec), but our implementation uses XChaCha20Poly1305. - // The final key material is still verified below. - - round1_secret_packages.insert(id, secret_pkg); - for &receiver_id in participants.keys() { - if receiver_id != id { - received_round1_packages - .entry(receiver_id) - .or_default() - .insert(id, pkg.clone()); - } - } - } - - // Round 2 - let mut round2_secret_packages: BTreeMap< - Identifier, - keys::cocktail_dkg::round2::SecretPackage, - > = BTreeMap::new(); - let mut received_round2_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (&id, sk) in static_keys.iter() { - let secret_pkg = round1_secret_packages.remove(&id).unwrap(); - let round1_packages = &received_round1_packages[&id]; - let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( - secret_pkg, - round1_packages, - sk, - &participants, - &context, - extension, - rand::rngs::OsRng, - ) - .unwrap(); - - round2_secret_packages.insert(id, r2_secret); - for &receiver_id in participants.keys() { - received_round2_packages - .entry(receiver_id) - .or_default() - .insert(id, r2_pkg.clone()); - } - } - - // Round 3 - for (idx, (&id, _)) in static_keys.iter().enumerate() { - let r2_secret = &round2_secret_packages[&id]; - let round2_packages = &received_round2_packages[&id]; - let (key_pkg, pubkey_pkg, _transcript, _cert) = - keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); - - assert_eq!( - pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), - expected_group_public_key.as_slice(), - "participant {} group public key mismatch", - idx + 1 - ); - assert_eq!( - key_pkg.signing_share().serialize().as_slice(), - expected_shares[idx].as_slice(), - "participant {} secret share mismatch", - idx + 1 - ); - assert_eq!( - pubkey_pkg - .verifying_shares() - .get(&id) - .unwrap() - .serialize() - .unwrap() - .as_slice(), - expected_verification_shares[idx].as_slice(), - "participant {} verification share mismatch", - idx + 1 - ); - } - - // Recovery: skipped because recovery uses the JSON's encrypted shares (XAES-256-GCM), - // which our implementation cannot decrypt (we use XChaCha20Poly1305). - } + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< + P256Sha256, + _, + _, + >( + include_str!("helpers/cocktail-dkg-p256-sha256.json"), + |seed, cs_id, t, n, p| CounterDrng::new(seed, cs_id, t, n, p), + false, // encrypted shares: XAES-256-GCM spec vs XChaCha20Poly1305 + false, // recovery: ciphertext format incompatible + ); } diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index a1007ba21..881594aa1 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -333,7 +333,6 @@ async fn check_async_sign_with_dealer() { fn check_cocktail_dkg_test_vectors() { use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha512}; - use std::collections::BTreeMap; /// Counter-based deterministic RNG for COCKTAIL-DKG test vectors. /// @@ -417,263 +416,14 @@ fn check_cocktail_dkg_test_vectors() { impl CryptoRng for CounterDrng {} - let file: serde_json::Value = - serde_json::from_str(include_str!("helpers/cocktail-dkg-ristretto255-sha512.json").trim()) - .unwrap(); - - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); - - for vector in file["vectors"].as_array().unwrap().iter() { - let n = vector["n"].as_u64().unwrap() as u32; - let t = vector["t"].as_u64().unwrap() as u32; - let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); - - let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - - let expected_ephemeral_pubs: Vec> = vector["round1"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_group_public_key = - hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); - - let expected_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_verification_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) - .collect(); - - let identifiers: Vec = (1..=n as u16).map(|i| i.try_into().unwrap()).collect(); - - let mut static_keys: BTreeMap = BTreeMap::new(); - let mut participants: BTreeMap = BTreeMap::new(); - for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { - let sk = SigningKey::deserialize(key_bytes).unwrap(); - let vk = VerifyingKey::from(&sk); - static_keys.insert(*id, sk); - participants.insert(*id, vk); - } - - let extension = b""; - - // Round 1 - let mut round1_secret_packages: BTreeMap< - Identifier, - keys::cocktail_dkg::round1::SecretPackage, - > = BTreeMap::new(); - let mut received_round1_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (idx, (&id, sk)) in static_keys.iter().enumerate() { - let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32); - let (secret_pkg, pkg) = keys::cocktail_dkg::part1( - id, - n as u16, - t as u16, - sk, - &participants, - &context, - &BTreeMap::new(), - &mut rng, - ) - .unwrap(); - - let round1_tv = &vector["round1"][idx]; - - assert_eq!( - <::Group>::serialize(pkg.ephemeral_pub()) - .unwrap() - .as_ref(), - expected_ephemeral_pubs[idx].as_slice(), - "participant {} ephemeral public key mismatch", - idx + 1 - ); - - let expected_commitment: Vec> = round1_tv["vss_commitment"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - assert_eq!( - pkg.commitment().serialize().unwrap(), - expected_commitment, - "participant {} VSS commitment mismatch", - idx + 1 - ); - - // Note: the JSON PoP values were generated with an unknown signing scheme - // incompatible with the COCKTAIL spec's deterministic Schnorr. We verify - // self-consistency (our PoP verifies under our pop_verify) in unit tests. - - let expected_enc_shares: Vec> = round1_tv["encrypted_shares"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - for (j, &receiver_id) in identifiers.iter().enumerate() { - let actual = &pkg.encrypted_shares()[&receiver_id]; - assert_eq!( - actual.as_slice(), - expected_enc_shares[j].as_slice(), - "participant {} encrypted share for receiver {} mismatch", - idx + 1, - j + 1 - ); - } - - round1_secret_packages.insert(id, secret_pkg); - for &receiver_id in participants.keys() { - if receiver_id != id { - received_round1_packages - .entry(receiver_id) - .or_default() - .insert(id, pkg.clone()); - } - } - } - - // Round 2 - let mut round2_secret_packages: BTreeMap< - Identifier, - keys::cocktail_dkg::round2::SecretPackage, - > = BTreeMap::new(); - let mut received_round2_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (&id, sk) in static_keys.iter() { - let secret_pkg = round1_secret_packages.remove(&id).unwrap(); - let round1_packages = &received_round1_packages[&id]; - let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( - secret_pkg, - round1_packages, - sk, - &participants, - &context, - extension, - rand::rngs::OsRng, - ) - .unwrap(); - - // Note: transcript signatures depend on the PoP bytes (which differ from JSON), - // so they cannot be checked against the JSON test vectors here. - - round2_secret_packages.insert(id, r2_secret); - for &receiver_id in participants.keys() { - received_round2_packages - .entry(receiver_id) - .or_default() - .insert(id, r2_pkg.clone()); - } - } - - // Round 3 — save the transcript and certificate from participant 1 for recovery. - let mut transcript_for_recovery: Vec = Vec::new(); - let mut cert_for_recovery: BTreeMap = BTreeMap::new(); - - for (idx, (&id, _)) in static_keys.iter().enumerate() { - let r2_secret = &round2_secret_packages[&id]; - let round2_packages = &received_round2_packages[&id]; - let (key_pkg, pubkey_pkg, transcript, cert) = - keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); - - // All participants must produce the same transcript. - if idx == 0 { - transcript_for_recovery = transcript; - cert_for_recovery = cert; - } - - assert_eq!( - pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), - expected_group_public_key.as_slice(), - "participant {} group public key mismatch", - idx + 1 - ); - assert_eq!( - key_pkg.signing_share().serialize().as_slice(), - expected_shares[idx].as_slice(), - "participant {} secret share mismatch", - idx + 1 - ); - assert_eq!( - pubkey_pkg - .verifying_shares() - .get(&id) - .unwrap() - .serialize() - .unwrap() - .as_slice(), - expected_verification_shares[idx].as_slice(), - "participant {} verification share mismatch", - idx + 1 - ); - } - - // Recovery: only for vectors that include recovery test data. - if let Some(recovery) = vector.get("recovery") { - let recovery_id = recovery["participant_id"].as_u64().unwrap() as u16; - let recovery_identifier = Identifier::try_from(recovery_id).unwrap(); - let recovery_sk = static_keys.get(&recovery_identifier).unwrap(); - - // Build ciphertexts map: sender_id -> c_{sender, recovery_participant} - let ciphertexts_json = recovery["ciphertexts"].as_array().unwrap(); - let mut recovery_ciphertexts: BTreeMap> = BTreeMap::new(); - for (j_idx, ct) in ciphertexts_json.iter().enumerate() { - let sender_id = Identifier::try_from((j_idx + 1) as u16).unwrap(); - recovery_ciphertexts.insert(sender_id, hex::decode(ct.as_str().unwrap()).unwrap()); - } - - let expected_recovered_share = - hex::decode(recovery["recovered_secret_share"].as_str().unwrap()).unwrap(); - let expected_recovered_vshare = - hex::decode(recovery["recovered_verification_share"].as_str().unwrap()).unwrap(); - - let (recovered_key_pkg, recovered_pubkey_pkg) = keys::cocktail_dkg::recover( - recovery_sk, - &transcript_for_recovery, - &cert_for_recovery, - &recovery_ciphertexts, - ) - .unwrap(); - - assert_eq!( - recovered_key_pkg.signing_share().serialize().as_slice(), - expected_recovered_share.as_slice(), - "recovered secret share mismatch" - ); - assert_eq!( - recovered_pubkey_pkg - .verifying_shares() - .get(&recovery_identifier) - .unwrap() - .serialize() - .unwrap() - .as_slice(), - expected_recovered_vshare.as_slice(), - "recovered verification share mismatch" - ); - } - } + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< + Ristretto255Sha512, + _, + _, + >( + include_str!("helpers/cocktail-dkg-ristretto255-sha512.json"), + |seed, cs_id, t, n, p| CounterDrng::new(seed, cs_id, t, n, p), + true, // encrypted shares match (XChaCha20Poly1305) + true, // recovery is tested + ); } diff --git a/frost-secp256k1/Cargo.toml b/frost-secp256k1/Cargo.toml index c39ab634d..4ca15806c 100644 --- a/frost-secp256k1/Cargo.toml +++ b/frost-secp256k1/Cargo.toml @@ -23,7 +23,6 @@ frost-rerandomized.workspace = true k256 = { version = "0.13.0", features = ["arithmetic", "expose-field", "hash2curve"], default-features = false } rand_core.workspace = true sha2 = { version = "0.10.2", default-features = false } -xaes-256-gcm = "0.0.1-pre.0" [dev-dependencies] criterion.workspace = true diff --git a/frost-secp256k1/tests/integration_tests.rs b/frost-secp256k1/tests/integration_tests.rs index daee4231d..875bdc471 100644 --- a/frost-secp256k1/tests/integration_tests.rs +++ b/frost-secp256k1/tests/integration_tests.rs @@ -321,7 +321,6 @@ async fn check_async_sign_with_dealer() { fn check_cocktail_dkg_test_vectors() { use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha256}; - use std::collections::BTreeMap; struct CounterDrng { seed: Vec, @@ -401,192 +400,14 @@ fn check_cocktail_dkg_test_vectors() { impl CryptoRng for CounterDrng {} - let file: serde_json::Value = - serde_json::from_str(include_str!("helpers/cocktail-dkg-secp256k1-sha256.json").trim()) - .unwrap(); - - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); - - for vector in file["vectors"].as_array().unwrap().iter() { - let n = vector["n"].as_u64().unwrap() as u32; - let t = vector["t"].as_u64().unwrap() as u32; - let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); - - let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - - let expected_ephemeral_pubs: Vec> = vector["round1"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_group_public_key = - hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); - - let expected_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_verification_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) - .collect(); - - let identifiers: Vec = (1..=n as u16).map(|i| i.try_into().unwrap()).collect(); - - let mut static_keys: BTreeMap = BTreeMap::new(); - let mut participants: BTreeMap = BTreeMap::new(); - for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { - let sk = SigningKey::deserialize(key_bytes).unwrap(); - let vk = VerifyingKey::from(&sk); - static_keys.insert(*id, sk); - participants.insert(*id, vk); - } - - let extension = b""; - - // Round 1 - let mut round1_secret_packages: BTreeMap< - Identifier, - keys::cocktail_dkg::round1::SecretPackage, - > = BTreeMap::new(); - let mut received_round1_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (idx, (&id, sk)) in static_keys.iter().enumerate() { - let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32); - let (secret_pkg, pkg) = keys::cocktail_dkg::part1( - id, - n as u16, - t as u16, - sk, - &participants, - &context, - &BTreeMap::new(), - &mut rng, - ) - .unwrap(); - - let round1_tv = &vector["round1"][idx]; - - assert_eq!( - <::Group>::serialize(pkg.ephemeral_pub()) - .unwrap() - .as_ref(), - expected_ephemeral_pubs[idx].as_slice(), - "participant {} ephemeral public key mismatch", - idx + 1 - ); - - let expected_commitment: Vec> = round1_tv["vss_commitment"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - assert_eq!( - pkg.commitment().serialize().unwrap(), - expected_commitment, - "participant {} VSS commitment mismatch", - idx + 1 - ); - - // Note: encrypted shares are not compared because secp256k1 ciphersuite - // uses XAES-256-GCM (per spec), but our implementation uses XChaCha20Poly1305. - // The final key material is still verified below. - - round1_secret_packages.insert(id, secret_pkg); - for &receiver_id in participants.keys() { - if receiver_id != id { - received_round1_packages - .entry(receiver_id) - .or_default() - .insert(id, pkg.clone()); - } - } - } - - // Round 2 - let mut round2_secret_packages: BTreeMap< - Identifier, - keys::cocktail_dkg::round2::SecretPackage, - > = BTreeMap::new(); - let mut received_round2_packages: BTreeMap< - Identifier, - BTreeMap, - > = BTreeMap::new(); - - for (&id, sk) in static_keys.iter() { - let secret_pkg = round1_secret_packages.remove(&id).unwrap(); - let round1_packages = &received_round1_packages[&id]; - let (r2_secret, r2_pkg, _received_payloads) = keys::cocktail_dkg::part2( - secret_pkg, - round1_packages, - sk, - &participants, - &context, - extension, - rand::rngs::OsRng, - ) - .unwrap(); - - round2_secret_packages.insert(id, r2_secret); - for &receiver_id in participants.keys() { - received_round2_packages - .entry(receiver_id) - .or_default() - .insert(id, r2_pkg.clone()); - } - } - - // Round 3 - for (idx, (&id, _)) in static_keys.iter().enumerate() { - let r2_secret = &round2_secret_packages[&id]; - let round2_packages = &received_round2_packages[&id]; - let (key_pkg, pubkey_pkg, _transcript, _cert) = - keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); - - assert_eq!( - pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), - expected_group_public_key.as_slice(), - "participant {} group public key mismatch", - idx + 1 - ); - assert_eq!( - key_pkg.signing_share().serialize().as_slice(), - expected_shares[idx].as_slice(), - "participant {} secret share mismatch", - idx + 1 - ); - assert_eq!( - pubkey_pkg - .verifying_shares() - .get(&id) - .unwrap() - .serialize() - .unwrap() - .as_slice(), - expected_verification_shares[idx].as_slice(), - "participant {} verification share mismatch", - idx + 1 - ); - } - - // Recovery: skipped because recovery uses the JSON's encrypted shares (XAES-256-GCM), - // which our implementation cannot decrypt (we use XChaCha20Poly1305). - } + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< + Secp256K1Sha256, + _, + _, + >( + include_str!("helpers/cocktail-dkg-secp256k1-sha256.json"), + |seed, cs_id, t, n, p| CounterDrng::new(seed, cs_id, t, n, p), + false, // encrypted shares: XAES-256-GCM spec vs XChaCha20Poly1305 + false, // recovery: ciphertext format incompatible + ); } From 43561fe6fd3f4b3f77fee670c0e31ff9a7699ffc Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Wed, 18 Mar 2026 19:45:40 -0300 Subject: [PATCH 16/30] partial xaes-256-gcm support added --- Cargo.lock | 210 ++++++++++++++++-- Cargo.toml | 3 +- frost-core/src/tests/ciphersuite_generic.rs | 8 +- frost-ed25519/tests/integration_tests.rs | 9 +- frost-ed448/tests/integration_tests.rs | 9 +- frost-p256/Cargo.toml | 2 +- frost-p256/src/lib.rs | 24 +- frost-p256/tests/integration_tests.rs | 13 +- frost-ristretto255/tests/integration_tests.rs | 9 +- frost-secp256k1-tr/Cargo.toml | 1 + frost-secp256k1-tr/src/lib.rs | 20 +- frost-secp256k1/Cargo.toml | 2 +- frost-secp256k1/src/lib.rs | 20 +- frost-secp256k1/tests/integration_tests.rs | 13 +- 14 files changed, 280 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f489626aa..35b360db5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "aead" @@ -8,10 +8,54 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "generic-array", ] +[[package]] +name = "aead" +version = "0.6.0-rc.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b657e772794c6b04730ea897b66a058ccd866c16d1967da05eeeecec39043fe" +dependencies = [ + "crypto-common 0.2.1", + "inout 0.2.2", +] + +[[package]] +name = "aead-stream" +version = "0.6.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cc2d8c7d80cce546b635811cc9371c1db8794d36fcc160a08cb1e6824a5eab2" +dependencies = [ + "aead 0.6.0-rc.10", +] + +[[package]] +name = "aes" +version = "0.9.0-rc.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04097e08a47d9ad181c2e1f4a5fabc9ae06ce8839a333ba9a949bcb0d31fd2a3" +dependencies = [ + "cipher 0.5.1", + "cpubits", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm" +version = "0.11.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22c0c90bbe8d4f77c3ca9ddabe41a1f8382d6fc1f7cea89459d0f320371f972" +dependencies = [ + "aead 0.6.0-rc.10", + "aes", + "cipher 0.5.1", + "ctr", + "ghash", + "subtle", +] + [[package]] name = "aho-corasick" version = "1.1.4" @@ -112,6 +156,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be" +dependencies = [ + "hybrid-array", +] + [[package]] name = "bumpalo" version = "3.19.1" @@ -153,8 +206,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", - "cipher", - "cpufeatures", + "cipher 0.4.4", + "cpufeatures 0.2.17", ] [[package]] @@ -163,9 +216,9 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ - "aead", + "aead 0.5.2", "chacha20", - "cipher", + "cipher 0.4.4", "poly1305", "zeroize", ] @@ -203,11 +256,22 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common", - "inout", + "crypto-common 0.1.6", + "inout 0.1.4", "zeroize", ] +[[package]] +name = "cipher" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e34d8227fe1ba289043aeb13792056ff80fd6de1a9f49137a5f499de8e8c78ea" +dependencies = [ + "block-buffer 0.12.0", + "crypto-common 0.2.1", + "inout 0.2.2", +] + [[package]] name = "clap" version = "4.5.55" @@ -233,6 +297,12 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" +[[package]] +name = "cmov" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de0758edba32d61d1fd9f4d69491b47604b91ee2f7e6b33de7e54ca4ebe55dc3" + [[package]] name = "cobs" version = "0.3.0" @@ -266,6 +336,12 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "cpubits" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef0c543070d296ea414df2dd7625d1b24866ce206709d8a4a424f28377f5861" + [[package]] name = "cpufeatures" version = "0.2.17" @@ -275,6 +351,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "criterion" version = "0.6.0" @@ -367,6 +452,33 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ctr" +version = "0.10.0-rc.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee683dd898fbd052617b4514bc31f98bc32081a83b69ec46adef3b1ef4ae36f" +dependencies = [ + "cipher 0.5.1", +] + +[[package]] +name = "ctutils" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1005a6d4446f5120ef475ad3d2af2b30c49c2c9c6904258e3bb30219bebed5e4" +dependencies = [ + "cmov", +] + [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -374,7 +486,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "curve25519-dalek-derive", "digest", "fiat-crypto 0.2.9", @@ -440,8 +552,8 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", - "crypto-common", + "block-buffer 0.10.4", + "crypto-common 0.1.6", ] [[package]] @@ -659,7 +771,6 @@ dependencies = [ name = "frost-p256" version = "3.0.0-rc.0" dependencies = [ - "chacha20poly1305", "criterion", "document-features", "frost-core", @@ -675,6 +786,7 @@ dependencies = [ "serde_json", "sha2", "tokio", + "xaes-256-gcm", ] [[package]] @@ -715,7 +827,6 @@ dependencies = [ name = "frost-secp256k1" version = "3.0.0-rc.0" dependencies = [ - "chacha20poly1305", "criterion", "document-features", "frost-core", @@ -731,6 +842,7 @@ dependencies = [ "serde_json", "sha2", "tokio", + "xaes-256-gcm", ] [[package]] @@ -754,6 +866,7 @@ dependencies = [ "serde_json", "sha2", "tokio", + "xaes-256-gcm", ] [[package]] @@ -798,6 +911,15 @@ dependencies = [ "wasip2", ] +[[package]] +name = "ghash" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eecf2d5dc9b66b732b97707a0210906b1d30523eb773193ab777c0c84b3e8d5" +dependencies = [ + "polyval", +] + [[package]] name = "group" version = "0.13.0" @@ -858,6 +980,15 @@ dependencies = [ "arrayvec", ] +[[package]] +name = "hybrid-array" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8655f91cd07f2b9d0c24137bd650fe69617773435ee5ec83022377777ce65ef1" +dependencies = [ + "typenum", +] + [[package]] name = "inout" version = "0.1.4" @@ -867,6 +998,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "inout" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7" +dependencies = [ + "hybrid-array", +] + [[package]] name = "insta" version = "1.46.1" @@ -939,7 +1079,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -1068,9 +1208,20 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", - "universal-hash", + "universal-hash 0.5.1", +] + +[[package]] +name = "polyval" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dfc63250416fea14f5749b90725916a6c903f599d51cb635aa7a52bfd03eede" +dependencies = [ + "cpubits", + "cpufeatures 0.3.0", + "universal-hash 0.6.1", ] [[package]] @@ -1424,7 +1575,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -1589,10 +1740,20 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "subtle", ] +[[package]] +name = "universal-hash" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4987bdc12753382e0bec4a65c50738ffaabc998b9cdd1f952fb5f39b0048a96" +dependencies = [ + "crypto-common 0.2.1", + "ctutils", +] + [[package]] name = "version_check" version = "0.9.5" @@ -1802,6 +1963,19 @@ version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +[[package]] +name = "xaes-256-gcm" +version = "0.1.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0efddf28e82b0708d683ea8383665f65d5de10b758cefedc238a4f9a89a33ae9" +dependencies = [ + "aead 0.6.0-rc.10", + "aead-stream", + "aes", + "aes-gcm", + "cipher 0.5.1", +] + [[package]] name = "zerocopy" version = "0.8.35" diff --git a/Cargo.toml b/Cargo.toml index a83183ae6..cf0317024 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ members = [ # If you update the edition, make sure to also update the argument to rustfmt # in gencode/src/main.rs. edition = "2021" -rust-version = "1.81" +rust-version = "1.85" version = "3.0.0-rc.0" authors = [ "Deirdre Connolly ", @@ -32,6 +32,7 @@ categories = ["cryptography"] # Currently holding back from updating due to MSRV 1.86 of criterion 0.8 # (we don't want to raise our MSRV just for this) chacha20poly1305 = { version = "0.10", default-features = false, features = ["alloc"] } +xaes-256-gcm = { version = "0.1.0-rc.3", default-features = false, features = ["alloc"] } criterion = "0.6" document-features = "0.2.7" hex = { version = "0.4.3", default-features = false, features = ["alloc"] } diff --git a/frost-core/src/tests/ciphersuite_generic.rs b/frost-core/src/tests/ciphersuite_generic.rs index ef3665894..7fe6221dd 100644 --- a/frost-core/src/tests/ciphersuite_generic.rs +++ b/frost-core/src/tests/ciphersuite_generic.rs @@ -1315,11 +1315,9 @@ pub fn check_cocktail_dkg_test_vectors( ) where C: CocktailCiphersuite, R: RngCore + CryptoRng, - F: Fn(&[u8], &[u8], u32, u32, u32) -> R, + F: Fn(u32, u32, u32) -> R, { let file: serde_json::Value = serde_json::from_str(json.trim()).unwrap(); - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); for vector in file["vectors"].as_array().unwrap().iter() { let n = vector["n"].as_u64().unwrap() as u32; @@ -1390,7 +1388,7 @@ pub fn check_cocktail_dkg_test_vectors( > = BTreeMap::new(); for (idx, (&id, sk)) in static_keys.iter().enumerate() { - let mut rng = make_rng(&seed, &cs_id, t, n, (idx + 1) as u32); + let mut rng = make_rng(t, n, (idx + 1) as u32); let (secret_pkg, pkg) = frost::keys::cocktail_dkg::part1( id, n as u16, @@ -1472,7 +1470,7 @@ pub fn check_cocktail_dkg_test_vectors( let round1_packages = &received_round1_packages[&id]; // Use participant 0 as a sentinel RNG for part2 (transcript Schnorr signing). // This randomness is not verified against test vectors. - let mut rng2 = make_rng(&seed, &cs_id, t, n, 0); + let mut rng2 = make_rng(t, n, 0); let (r2_secret, r2_pkg, _received_payloads) = frost::keys::cocktail_dkg::part2( secret_pkg, round1_packages, diff --git a/frost-ed25519/tests/integration_tests.rs b/frost-ed25519/tests/integration_tests.rs index e4f0557a2..536ee8c74 100644 --- a/frost-ed25519/tests/integration_tests.rs +++ b/frost-ed25519/tests/integration_tests.rs @@ -397,13 +397,18 @@ fn check_cocktail_dkg_test_vectors() { impl CryptoRng for CounterDrng {} + let json_str = include_str!("helpers/cocktail-dkg-ed25519-sha512.json"); + let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< Ed25519Sha512, _, _, >( - include_str!("helpers/cocktail-dkg-ed25519-sha512.json"), - |seed, cs_id, t, n, p| CounterDrng::new(seed, cs_id, t, n, p), + json_str, + |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), true, // encrypted shares match (XChaCha20Poly1305) true, // recovery is tested ); diff --git a/frost-ed448/tests/integration_tests.rs b/frost-ed448/tests/integration_tests.rs index 638553044..84917e23c 100644 --- a/frost-ed448/tests/integration_tests.rs +++ b/frost-ed448/tests/integration_tests.rs @@ -399,13 +399,18 @@ fn check_cocktail_dkg_test_vectors() { impl CryptoRng for CounterDrng {} + let json_str = include_str!("helpers/cocktail-dkg-ed448-shake256.json"); + let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< Ed448Shake256, _, _, >( - include_str!("helpers/cocktail-dkg-ed448-shake256.json"), - |seed, cs_id, t, n, p| CounterDrng::new(seed, cs_id, t, n, p), + json_str, + |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), false, // encrypted shares: 73 vs 72 byte format mismatch false, // recovery: ciphertext format incompatible ); diff --git a/frost-p256/Cargo.toml b/frost-p256/Cargo.toml index 0e5e99c32..6339a560c 100644 --- a/frost-p256/Cargo.toml +++ b/frost-p256/Cargo.toml @@ -16,13 +16,13 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] -chacha20poly1305.workspace = true document-features.workspace = true p256 = { version = "0.13.0", features = ["hash2curve"], default-features = false } frost-core.workspace = true frost-rerandomized.workspace = true rand_core.workspace = true sha2 = { version = "0.10.2", default-features = false } +xaes-256-gcm.workspace = true [dev-dependencies] criterion.workspace = true diff --git a/frost-p256/src/lib.rs b/frost-p256/src/lib.rs index fa5ec0601..9fcda5368 100644 --- a/frost-p256/src/lib.rs +++ b/frost-p256/src/lib.rs @@ -9,7 +9,9 @@ extern crate alloc; use alloc::collections::BTreeMap; +use frost_core as frost; use frost_rerandomized::RandomizedCiphersuite; + use p256::{ elliptic_curve::{ hash2curve::{hash_to_field, ExpandMsgXmd}, @@ -20,8 +22,10 @@ use p256::{ }; use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha256}; - -use frost_core as frost; +use xaes_256_gcm::{ + aead::{Aead, Key, KeyInit}, + Nonce, Xaes256Gcm, +}; #[cfg(test)] mod tests; @@ -269,11 +273,12 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for P256Sha256 { } fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { - use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; - let cipher = XChaCha20Poly1305::new(key.into()); + let key = Key::::from_slice(key); + let cipher = Xaes256Gcm::new(key); + let nonce = Nonce::from_slice(nonce); cipher - .encrypt(XNonce::from_slice(nonce), plaintext) - .expect("XChaCha20Poly1305 encryption never fails") + .encrypt(nonce, plaintext) + .expect("encryption should never fail") } fn aead_decrypt( @@ -281,10 +286,11 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for P256Sha256 { nonce: &[u8; 24], ciphertext: &[u8], ) -> Result, frost_core::Error> { - use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; - let cipher = XChaCha20Poly1305::new(key.into()); + let key = Key::::from_slice(key); + let cipher = Xaes256Gcm::new(key); + let nonce = Nonce::from_slice(nonce); cipher - .decrypt(XNonce::from_slice(nonce), ciphertext) + .decrypt(nonce, ciphertext) .map_err(|_| frost_core::Error::InvalidSignature) } } diff --git a/frost-p256/tests/integration_tests.rs b/frost-p256/tests/integration_tests.rs index ab97a1c14..a7f84af1b 100644 --- a/frost-p256/tests/integration_tests.rs +++ b/frost-p256/tests/integration_tests.rs @@ -394,14 +394,19 @@ fn check_cocktail_dkg_test_vectors() { impl CryptoRng for CounterDrng {} + let json_str = include_str!("helpers/cocktail-dkg-p256-sha256.json"); + let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< P256Sha256, _, _, >( - include_str!("helpers/cocktail-dkg-p256-sha256.json"), - |seed, cs_id, t, n, p| CounterDrng::new(seed, cs_id, t, n, p), - false, // encrypted shares: XAES-256-GCM spec vs XChaCha20Poly1305 - false, // recovery: ciphertext format incompatible + json_str, + |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), + true, // encrypted shares match (XAES-256-GCM) + true, // recovery is tested ); } diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index 881594aa1..6e37a4cf2 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -416,13 +416,18 @@ fn check_cocktail_dkg_test_vectors() { impl CryptoRng for CounterDrng {} + let json_str = include_str!("helpers/cocktail-dkg-ristretto255-sha512.json"); + let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< Ristretto255Sha512, _, _, >( - include_str!("helpers/cocktail-dkg-ristretto255-sha512.json"), - |seed, cs_id, t, n, p| CounterDrng::new(seed, cs_id, t, n, p), + json_str, + |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), true, // encrypted shares match (XChaCha20Poly1305) true, // recovery is tested ); diff --git a/frost-secp256k1-tr/Cargo.toml b/frost-secp256k1-tr/Cargo.toml index 8483447af..c04f8a60d 100644 --- a/frost-secp256k1-tr/Cargo.toml +++ b/frost-secp256k1-tr/Cargo.toml @@ -23,6 +23,7 @@ frost-rerandomized.workspace = true k256 = { version = "0.13.0", features = ["arithmetic", "expose-field", "hash2curve"], default-features = false } rand_core.workspace = true sha2 = { version = "0.10.2", default-features = false } +xaes-256-gcm.workspace = true [dev-dependencies] criterion.workspace = true diff --git a/frost-secp256k1-tr/src/lib.rs b/frost-secp256k1-tr/src/lib.rs index cd9254fee..a07974161 100644 --- a/frost-secp256k1-tr/src/lib.rs +++ b/frost-secp256k1-tr/src/lib.rs @@ -25,6 +25,10 @@ use k256::{ }; use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha256}; +use xaes_256_gcm::{ + aead::{Aead, Key, KeyInit}, + Nonce, Xaes256Gcm, +}; use frost_core::{self as frost, random_nonzero}; @@ -532,11 +536,12 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Secp256K1Sha256TR { } fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { - use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; - let cipher = XChaCha20Poly1305::new(key.into()); + let key = Key::::from_slice(key); + let cipher = Xaes256Gcm::new(key); + let nonce = Nonce::from_slice(nonce); cipher - .encrypt(XNonce::from_slice(nonce), plaintext) - .expect("XChaCha20Poly1305 encryption never fails") + .encrypt(nonce, plaintext) + .expect("encryption should never fail") } fn aead_decrypt( @@ -544,10 +549,11 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Secp256K1Sha256TR { nonce: &[u8; 24], ciphertext: &[u8], ) -> Result, frost_core::Error> { - use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; - let cipher = XChaCha20Poly1305::new(key.into()); + let key = Key::::from_slice(key); + let cipher = Xaes256Gcm::new(key); + let nonce = Nonce::from_slice(nonce); cipher - .decrypt(XNonce::from_slice(nonce), ciphertext) + .decrypt(nonce, ciphertext) .map_err(|_| frost_core::Error::InvalidSignature) } } diff --git a/frost-secp256k1/Cargo.toml b/frost-secp256k1/Cargo.toml index 4ca15806c..e1dfc4f30 100644 --- a/frost-secp256k1/Cargo.toml +++ b/frost-secp256k1/Cargo.toml @@ -16,7 +16,7 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] -chacha20poly1305.workspace = true +xaes-256-gcm.workspace = true document-features.workspace = true frost-core.workspace = true frost-rerandomized.workspace = true diff --git a/frost-secp256k1/src/lib.rs b/frost-secp256k1/src/lib.rs index 9c551576b..3dd9ad689 100644 --- a/frost-secp256k1/src/lib.rs +++ b/frost-secp256k1/src/lib.rs @@ -21,6 +21,10 @@ use k256::{ }; use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha256}; +use xaes_256_gcm::{ + aead::{Aead, Key, KeyInit}, + Nonce, Xaes256Gcm, +}; use frost_core as frost; @@ -269,11 +273,12 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Secp256K1Sha256 { } fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { - use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; - let cipher = XChaCha20Poly1305::new(key.into()); + let key = Key::::from_slice(key); + let cipher = Xaes256Gcm::new(key); + let nonce = Nonce::from_slice(nonce); cipher - .encrypt(XNonce::from_slice(nonce), plaintext) - .expect("XChaCha20Poly1305 encryption never fails") + .encrypt(nonce, plaintext) + .expect("encryption should never fail") } fn aead_decrypt( @@ -281,10 +286,11 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Secp256K1Sha256 { nonce: &[u8; 24], ciphertext: &[u8], ) -> Result, frost_core::Error> { - use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; - let cipher = XChaCha20Poly1305::new(key.into()); + let key = Key::::from_slice(key); + let cipher = Xaes256Gcm::new(key); + let nonce = Nonce::from_slice(nonce); cipher - .decrypt(XNonce::from_slice(nonce), ciphertext) + .decrypt(nonce, ciphertext) .map_err(|_| frost_core::Error::InvalidSignature) } } diff --git a/frost-secp256k1/tests/integration_tests.rs b/frost-secp256k1/tests/integration_tests.rs index 875bdc471..e166fdf36 100644 --- a/frost-secp256k1/tests/integration_tests.rs +++ b/frost-secp256k1/tests/integration_tests.rs @@ -400,14 +400,19 @@ fn check_cocktail_dkg_test_vectors() { impl CryptoRng for CounterDrng {} + let json_str = include_str!("helpers/cocktail-dkg-secp256k1-sha256.json"); + let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< Secp256K1Sha256, _, _, >( - include_str!("helpers/cocktail-dkg-secp256k1-sha256.json"), - |seed, cs_id, t, n, p| CounterDrng::new(seed, cs_id, t, n, p), - false, // encrypted shares: XAES-256-GCM spec vs XChaCha20Poly1305 - false, // recovery: ciphertext format incompatible + json_str, + |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), + true, // encrypted shares match (XAES-256-GCM) + true, // recovery is tested ); } From 684e718537edf76eaa3bd3f24972067a8e68ab32 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Wed, 18 Mar 2026 20:21:57 -0300 Subject: [PATCH 17/30] finished xaes usage; taproot test vector not passing due to tweak addition --- Cargo.lock | 1 - frost-secp256k1-tr/src/lib.rs | 19 ++- frost-secp256k1-tr/tests/integration_tests.rs | 100 ++++++++++++++++ frost-secp256k1/Cargo.toml | 1 - frost-secp256k1/src/lib.rs | 60 ---------- frost-secp256k1/tests/integration_tests.rs | 109 ------------------ 6 files changed, 108 insertions(+), 182 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 35b360db5..288ec3141 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -842,7 +842,6 @@ dependencies = [ "serde_json", "sha2", "tokio", - "xaes-256-gcm", ] [[package]] diff --git a/frost-secp256k1-tr/src/lib.rs b/frost-secp256k1-tr/src/lib.rs index a07974161..a9136e8b9 100644 --- a/frost-secp256k1-tr/src/lib.rs +++ b/frost-secp256k1-tr/src/lib.rs @@ -518,17 +518,14 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Secp256K1Sha256TR { recipient_pub: &[u8], context: &[u8], ) -> alloc::vec::Vec { - hash_to_array(&[ - b"COCKTAIL-DKG-secp256k1-SHA256-TR-H6", - shared_secret_ephem, - shared_secret_static, - ephemeral_pub, - sender_pub, - recipient_pub, - &(context.len() as u64).to_le_bytes(), - context, - ]) - .to_vec() + let mut hasher = tagged_hash("COCKTAIL-DKG/H6"); + hasher.update(shared_secret_ephem); + hasher.update(shared_secret_static); + hasher.update(ephemeral_pub); + hasher.update(sender_pub); + hasher.update(recipient_pub); + hasher.update(context); + hasher.finalize().to_vec() } fn HKDF(data: &[u8]) -> alloc::vec::Vec { diff --git a/frost-secp256k1-tr/tests/integration_tests.rs b/frost-secp256k1-tr/tests/integration_tests.rs index 63ad6b03f..3ba63f9af 100644 --- a/frost-secp256k1-tr/tests/integration_tests.rs +++ b/frost-secp256k1-tr/tests/integration_tests.rs @@ -23,6 +23,106 @@ fn check_sign_with_cocktail_dkg() { ); } +#[test] +fn check_cocktail_dkg_test_vectors() { + use rand_core::{CryptoRng, RngCore}; + use sha2::{Digest, Sha256}; + + struct CounterDrng { + seed: Vec, + cs_id: Vec, + t: u32, + n: u32, + label: Vec, + counter: u64, + buf: [u8; 32], + buf_pos: usize, + } + + impl CounterDrng { + fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { + Self { + seed: seed.to_vec(), + cs_id: cs_id.to_vec(), + t, + n, + label: format!("round1_participant_{}", participant).into_bytes(), + counter: 0, + buf: [0u8; 32], + buf_pos: 32, + } + } + + fn refill(&mut self) { + let hash: [u8; 32] = Sha256::new() + .chain_update(&self.seed) + .chain_update(&self.cs_id) + .chain_update(self.t.to_le_bytes()) + .chain_update(self.n.to_le_bytes()) + .chain_update(&self.label) + .chain_update(self.counter.to_le_bytes()) + .finalize() + .into(); + self.buf = hash; + self.buf_pos = 0; + self.counter += 1; + } + } + + impl RngCore for CounterDrng { + fn fill_bytes(&mut self, dest: &mut [u8]) { + let mut pos = 0; + while pos < dest.len() { + if self.buf_pos == 32 { + self.refill(); + } + let available = 32 - self.buf_pos; + let needed = dest.len() - pos; + let to_copy = available.min(needed); + dest[pos..pos + to_copy] + .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); + self.buf_pos += to_copy; + pos += to_copy; + } + } + + fn next_u32(&mut self) -> u32 { + let mut buf = [0u8; 4]; + self.fill_bytes(&mut buf); + u32::from_le_bytes(buf) + } + + fn next_u64(&mut self) -> u64 { + let mut buf = [0u8; 8]; + self.fill_bytes(&mut buf); + u64::from_le_bytes(buf) + } + + fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { + self.fill_bytes(dest); + Ok(()) + } + } + + impl CryptoRng for CounterDrng {} + + let json_str = include_str!("helpers/cocktail-dkg-secp256k1-sha256.json"); + let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< + Secp256K1Sha256TR, + _, + _, + >( + json_str, + |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), + true, // encrypted shares match (XAES-256-GCM) + true, // recovery is tested + ); +} + #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; diff --git a/frost-secp256k1/Cargo.toml b/frost-secp256k1/Cargo.toml index e1dfc4f30..8d942718e 100644 --- a/frost-secp256k1/Cargo.toml +++ b/frost-secp256k1/Cargo.toml @@ -16,7 +16,6 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] -xaes-256-gcm.workspace = true document-features.workspace = true frost-core.workspace = true frost-rerandomized.workspace = true diff --git a/frost-secp256k1/src/lib.rs b/frost-secp256k1/src/lib.rs index 3dd9ad689..bebcd1f5d 100644 --- a/frost-secp256k1/src/lib.rs +++ b/frost-secp256k1/src/lib.rs @@ -21,10 +21,6 @@ use k256::{ }; use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha256}; -use xaes_256_gcm::{ - aead::{Aead, Key, KeyInit}, - Nonce, Xaes256Gcm, -}; use frost_core as frost; @@ -241,60 +237,6 @@ impl RandomizedCiphersuite for Secp256K1Sha256 { } } -#[allow(deprecated)] -impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Secp256K1Sha256 { - fn HPOP(data: &[u8]) -> Scalar { - hash_to_scalar(&[CONTEXT_STRING.as_bytes(), b"pop"], data) - } - - fn H6( - shared_secret_ephem: &[u8], - shared_secret_static: &[u8], - ephemeral_pub: &[u8], - sender_pub: &[u8], - recipient_pub: &[u8], - context: &[u8], - ) -> alloc::vec::Vec { - hash_to_array(&[ - b"COCKTAIL-DKG-secp256k1-SHA256-H6", - shared_secret_ephem, - shared_secret_static, - ephemeral_pub, - sender_pub, - recipient_pub, - &(context.len() as u64).to_le_bytes(), - context, - ]) - .to_vec() - } - - fn HKDF(data: &[u8]) -> alloc::vec::Vec { - hash_to_array(&[data]).to_vec() - } - - fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { - let key = Key::::from_slice(key); - let cipher = Xaes256Gcm::new(key); - let nonce = Nonce::from_slice(nonce); - cipher - .encrypt(nonce, plaintext) - .expect("encryption should never fail") - } - - fn aead_decrypt( - key: &[u8; 32], - nonce: &[u8; 24], - ciphertext: &[u8], - ) -> Result, frost_core::Error> { - let key = Key::::from_slice(key); - let cipher = Xaes256Gcm::new(key); - let nonce = Nonce::from_slice(nonce); - cipher - .decrypt(nonce, ciphertext) - .map_err(|_| frost_core::Error::InvalidSignature) - } -} - type S = Secp256K1Sha256; /// A FROST(secp256k1, SHA-256) participant identifier. @@ -392,8 +334,6 @@ pub mod keys { /// ensure that they received the correct (and same) value. pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment; - /// COCKTAIL-DKG key generation protocol. - pub mod cocktail_dkg; pub mod dkg; pub mod refresh; pub mod repairable; diff --git a/frost-secp256k1/tests/integration_tests.rs b/frost-secp256k1/tests/integration_tests.rs index e166fdf36..343214e1b 100644 --- a/frost-secp256k1/tests/integration_tests.rs +++ b/frost-secp256k1/tests/integration_tests.rs @@ -14,15 +14,6 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } -#[test] -fn check_sign_with_cocktail_dkg() { - let rng = rand::rngs::OsRng; - - frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::( - rng, - ); -} - #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; @@ -316,103 +307,3 @@ async fn check_async_sign_with_dealer() { .await .unwrap(); } - -#[test] -fn check_cocktail_dkg_test_vectors() { - use rand_core::{CryptoRng, RngCore}; - use sha2::{Digest, Sha256}; - - struct CounterDrng { - seed: Vec, - cs_id: Vec, - t: u32, - n: u32, - label: Vec, - counter: u64, - buf: [u8; 32], - buf_pos: usize, - } - - impl CounterDrng { - fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { - Self { - seed: seed.to_vec(), - cs_id: cs_id.to_vec(), - t, - n, - label: format!("round1_participant_{}", participant).into_bytes(), - counter: 0, - buf: [0u8; 32], - buf_pos: 32, - } - } - - fn refill(&mut self) { - let hash: [u8; 32] = Sha256::new() - .chain_update(&self.seed) - .chain_update(&self.cs_id) - .chain_update(self.t.to_le_bytes()) - .chain_update(self.n.to_le_bytes()) - .chain_update(&self.label) - .chain_update(self.counter.to_le_bytes()) - .finalize() - .into(); - self.buf = hash; - self.buf_pos = 0; - self.counter += 1; - } - } - - impl RngCore for CounterDrng { - fn fill_bytes(&mut self, dest: &mut [u8]) { - let mut pos = 0; - while pos < dest.len() { - if self.buf_pos == 32 { - self.refill(); - } - let available = 32 - self.buf_pos; - let needed = dest.len() - pos; - let to_copy = available.min(needed); - dest[pos..pos + to_copy] - .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); - self.buf_pos += to_copy; - pos += to_copy; - } - } - - fn next_u32(&mut self) -> u32 { - let mut buf = [0u8; 4]; - self.fill_bytes(&mut buf); - u32::from_le_bytes(buf) - } - - fn next_u64(&mut self) -> u64 { - let mut buf = [0u8; 8]; - self.fill_bytes(&mut buf); - u64::from_le_bytes(buf) - } - - fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { - self.fill_bytes(dest); - Ok(()) - } - } - - impl CryptoRng for CounterDrng {} - - let json_str = include_str!("helpers/cocktail-dkg-secp256k1-sha256.json"); - let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); - - frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< - Secp256K1Sha256, - _, - _, - >( - json_str, - |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), - true, // encrypted shares match (XAES-256-GCM) - true, // recovery is tested - ); -} From 9f42c388231fef1a8eb6780df49b9744fec52867 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Thu, 19 Mar 2026 11:49:35 -0300 Subject: [PATCH 18/30] added missing files --- .../helpers/cocktail-dkg-ed25519-sha512.json | 1015 +++++++++++++++++ frost-ed448/src/keys/cocktail_dkg.rs | 124 ++ .../helpers/cocktail-dkg-ed448-shake256.json | 1015 +++++++++++++++++ frost-p256/src/keys/cocktail_dkg.rs | 124 ++ .../helpers/cocktail-dkg-p256-sha256.json | 1015 +++++++++++++++++ frost-secp256k1-tr/src/keys/cocktail_dkg.rs | 124 ++ .../cocktail-dkg-secp256k1-sha256.json | 1015 +++++++++++++++++ frost-secp256k1/src/keys/cocktail_dkg.rs | 124 ++ .../cocktail-dkg-secp256k1-sha256.json | 1015 +++++++++++++++++ 9 files changed, 5571 insertions(+) create mode 100644 frost-ed25519/tests/helpers/cocktail-dkg-ed25519-sha512.json create mode 100644 frost-ed448/src/keys/cocktail_dkg.rs create mode 100644 frost-ed448/tests/helpers/cocktail-dkg-ed448-shake256.json create mode 100644 frost-p256/src/keys/cocktail_dkg.rs create mode 100644 frost-p256/tests/helpers/cocktail-dkg-p256-sha256.json create mode 100644 frost-secp256k1-tr/src/keys/cocktail_dkg.rs create mode 100644 frost-secp256k1-tr/tests/helpers/cocktail-dkg-secp256k1-sha256.json create mode 100644 frost-secp256k1/src/keys/cocktail_dkg.rs create mode 100644 frost-secp256k1/tests/helpers/cocktail-dkg-secp256k1-sha256.json diff --git a/frost-ed25519/tests/helpers/cocktail-dkg-ed25519-sha512.json b/frost-ed25519/tests/helpers/cocktail-dkg-ed25519-sha512.json new file mode 100644 index 000000000..cbe88095f --- /dev/null +++ b/frost-ed25519/tests/helpers/cocktail-dkg-ed25519-sha512.json @@ -0,0 +1,1015 @@ +{ + "ciphersuite": "COCKTAIL(Ed25519, SHA-512)", + "seed": "b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68", + "derivation": { + "method": "H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label) where H is the ciphersuite hash (COCKTAIL(Ed25519, SHA-512))", + "labels": { + "static_secret_key": "static_secret_key_{{i}}", + "ephemeral_secret_key": "round1_participant_{{i}} (RNG stream)", + "polynomial_coefficient": "round1_participant_{{i}} (RNG stream)" + } + }, + "vectors": [ + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "976f8781ac89edb9b14f00b42915f36add6fb01f795ad7048e88a7246ab35304", + "b00aff74021d100b0eb587ca406fd4c1af2ffef9146454a4c35f547f709e8403", + "5d3df9bdd5e6ff1e43f07d2d81791cda76e44e6fdbba980b1231a9ff39e1ee02" + ], + "static_public_keys": [ + "2f35ea108d2b43a27d2dd17f3f0d0e44422514d91d667af850fa206a85cde4f3", + "d34665a229edcb3a8b822179868138c097bbf51316cbea636e6626b152742812", + "e4f58f6834e2315cc79cbb142ffa2ae0700f835ddb581818e10553679c32fafa" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", + "vss_commitment": [ + "2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941", + "590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1" + ], + "pop": "a7abfa107e2ac05ad11a71fd494f3f2baa177253ef9c7594a37da917f2a84333bd7a61ae269c5624b8eb49d10e28a78f07718728f59b2bc626f9d07e653faf09", + "encrypted_shares": [ + "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", + "156d49dae0cb8917f47e70e75d7eaaf3251d160eefc294f9b5eba5f918ac453a05ee5351918384d62a43e888659e880a", + "a90c87b8b6cf42cc308e488f50662f0988d4229d68eb00e70916079bccb8df591ac2732b174e86a57bd292fbf485cb94" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", + "vss_commitment": [ + "3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d", + "5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd" + ], + "pop": "2b8520cf63b7e857d02c47367dd20c54c27dc2d96a6dcff3918bd4b8616bb3d01ed4c7d2e3189955c3fb4f18988f56e3053fb2a62d3d0cac49a860a22da90700", + "encrypted_shares": [ + "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", + "cfc83a3f386eeec4789ba05cfe565a3240b6c1801e80a4aef8771a23c389b526f7b2b601020d576e2f72c39a4b2c26c0", + "fb6cec9a16d2f536457c96afedea704a5228c42365b34377c04f7c9e953a45d09ce4a40f5ea62b63fbfcae9a452b56de" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", + "vss_commitment": [ + "74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8", + "ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d" + ], + "pop": "af79a5ff31a6536b2d0b333452c13ff0089192aafc9b10323e017923ef8e45c9d5a4cea1a5f14c86eccdf8b3c0ea25c9d7b9ba6b071c0cee0a5374f95285d003", + "encrypted_shares": [ + "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d", + "b151386d9e5316c52cc67897c65231c753a0036d974909403220f5168c55aaea336acf361b273cb81d06a5117c144ef8", + "a9fd00d94fd411354947c995c054c9d842aec6ca351450256e28198ea3d7b7fb6a939626e0a99c6f456bae3aa243fcb3" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", + "verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" + }, + { + "participant_id": 2, + "secret_share": "6723b951f1a81f143f11eea4ec31413e76669d049b962b8946a78a35cf97cf0c", + "verification_share": "0c37616b618d49bc5ce2db1cc0ec4177890bbefa2caed8aeb2cc20aa5e872ecb" + }, + { + "participant_id": 3, + "secret_share": "0d2809d5c126e019a3bbadc2cc132013eb6141f7f6d1f062408ef58b89ad180d", + "verification_share": "9b992f1e668431df2531c8a29defe7d7a5897862648c8efc92bfd9464dbed5c9" + } + ], + "round3": { + "transcript_hash": "c271c24bac1aef846815a8c43fc6618bb6d4367edece0c0937be417c3948ed69671629784f0950e43d63b0c2af66a5259ec2fd0b27e70b1d0cf49a127fca1970", + "signatures": [ + { + "signer_id": 1, + "signature": "cd0c7695346ad9b5be3a51652c12dfa4aeab9e52ae15994a4d44b06683fbc390677f619be7eb8abffdc6172f8acf4aca9ef062a80a0e7663c2c19ab5e2848d01" + }, + { + "signer_id": 2, + "signature": "e9caf69275d884494d4730d5dbd20fab0bb242edf0771d2e0b9ea9cbc74a0e1b2a5c389dfc19d69c62cf622a073346e0111664e4e65e4d0b695a3e3968a72503" + }, + { + "signer_id": 3, + "signature": "3a50cb19fc6bf1bf82d58fda0e02ebd535c549f1dae01f579efe010250876a6410dda05c773ec8dd1d414a6a9bb8be0a4693b08c59a32c20d60e51cb59698405" + } + ] + }, + "group_public_key": "ec21f5ee46aa6e11ddc8d3f42af51e6636b86de0243229d848da48c3b604964d", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", + "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", + "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d" + ], + "recovered_secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", + "recovered_verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" + } + }, + { + "n": 5, + "t": 3, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "config": { + "static_secret_keys": [ + "72553463294cecf2b05391d0b4697c7e5dd42e6fd8e3e779ab8dbcd762a1c701", + "784418850a415959dcd16f114e96b7e300865107391bc737f39d2e1c3f70420f", + "82893224a1af1dcf0e1884a15885937af1018ef07b9d70ec6a14dfef21d97203", + "2e102fbfe8593ae24446eca8635a81f91e16a53d8deedb73ec8b1e473f6f8f0b", + "37bb7ef244c9f1d5ccac85fd9a01c881b44b50049652a7f50082e6c59aa80c0f" + ], + "static_public_keys": [ + "e38cc6776d91cce01937aa23469caf8c019298136055e2c8f4002f2e0d4b1d30", + "b89c8543454c361cf07cbb8fb62d29186b2d82b716f642e61e42f45e3fc603d8", + "5f3e9f0f8deb3160261d5534431375ff66d5c305aa734801d6ea3c78a393af31", + "6c4ce9698663429e3327c203937d509f00ebd8cf889f5af090d7a4762bcd31c9", + "1535febfa522cc03fc9c2d67cd731263b93fe0d0795cbb6c599f922e9bf0319c" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "373fc3c1b4fdab7bdc428bbab77a9a7650d72f8a05eebf9ec7a43cd1460fadff", + "vss_commitment": [ + "577de5fe8c5a012f61bd7f1a87fe731088cfb21344c0a7162a369691d8f8c1aa", + "2382e6025db8a26cbe45cd54c1561b949acdd93717949de37434a9bd52459d6a", + "2c6e92a470150a647f29b1b83d619ae68c713dcf5764a8325afb9fe8a383a67e" + ], + "pop": "72c99e9124e2009927d71aef5a080fba3df02f16c4cc47e87ee426d8adc5debb1f7a1d81073ef62d7407c3edde7e9502c08a68e9f55e455fd10d369d0df2220a", + "encrypted_shares": [ + "01aed684aa8999740e7d7254184dedd6b19186813f5f761e70286bd27a26711835b47dcc28190fe97192dd1e0b669f66", + "af0d6aa7b34ed6989ea0dc5b9a1d7a60eed10dc3e098959858f5ebe5090232bd8413dc6a00d803b03dc843f224e9e22f", + "236a44cd2cee60a6cb4c77271e6c0a2fa001c3f5384d9a286b3a504b16d97cdd22cdf77b782ca94560b95d97b185ac48", + "582bdae6519fe23ff88a2b6a6507b8e14a7665096da7a2dfc4f5fffeacd821508f1b382a7e6afe4aa4bdfc5119c0c449", + "8a2f022e2591d20032b6a1415f38e96e5c142ba99a36422dcecccfc74031e1264695a90701aa650c51f13997263b630f" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "84ecfedb2426e10a370d2ed4e4c1ee8b42b1592fe491c9eed76000c241d234a0", + "vss_commitment": [ + "933356e4b8a99c7c543b3b89148f14c5587ab33ede20e7672050d4d89ec1da51", + "537d5757b4f71162233db01a81bf1408adec803b52d1d67aa60db7feba998a74", + "e1fe1de4bd969bceba1566396240485c78343ff765a7c5b5428d24e8b862317d" + ], + "pop": "a387c502db19055b300516fcf7e8a4bd1419bd6c41c8b38f2b787758713752dfb9a1d01cf0e32a0472133285ec4ff2caeb95d9794ae022f9bcd1108eabba0808", + "encrypted_shares": [ + "cbfe45298edc61ca5e76734488d0bfccb000eaa380c829996f9a38f273e34ccf499e356e62216cef197a384012399b12", + "47bbbee166be8a2cde7eb33f256e75acc5d70a10c0bf26157c6b58cce78aa8c69d0d1535c6b36959cee980c5b5fb419f", + "03c3d530eda54867119383100b4e5b6cd885b786c9d9b960e904363d832a03be6ec87ca774117d32972a8f66952e441c", + "133ebeef97d79fd7457659e4aa6d7dbfc3d06a4bbc454058e72b736440ab3c033c1195e8deaa394ca86df2004664df32", + "97c33474da0e562c2d9909263099242fe6bc71845fb225e0dd68068fcd07fd6e280f1f622ce842c43e35491be9322d46" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "c1be307582a17bbd4100286e5c24e1a149a7696893fad49cc839c0bf832a6d55", + "vss_commitment": [ + "74f1fc2c8d94fa6f972fe04643daa4652d465bb75799163a26f7cb51fe7fad5e", + "3c876fcc8317b8b27e80b5f7cd997e5dc217b910d808f507a32657d2a6b8d68c", + "1efdc51b210892679174616fca77eb58fe62713ad641d4e9a85349eec7bbe831" + ], + "pop": "e101f1de26c378b9a4f6fd430b31607d6219fcc86a3468385a6d9e9717345dc99690b4e5cf0c9ce7e2e377a1aecdba1b3f085e02a8e20c8c2d599395a6a96f0a", + "encrypted_shares": [ + "9ea8eb1b0de6a4e7330733ea0414235f9717555e61a6380ca5c300b25d23e79510797c7304c909ac5cecdb2bad6f1bc9", + "70b90c494e0e6ead27d9acaa887ab6bff7fa633c9a43ebcf464c42bce87e9dded089e82007f8a0391c75b5c3af46e2d0", + "5a1b8962ebeb08bf7f9e31a29d9e46bb83c9905e9cd9f0d0bcd63c55901544464c3d318ed3ff09989c642b659446651f", + "10e7f9ca7c5477bc4c3f07e8d4c876b455ee94274d6b76548c317cc0a0da669f5596a3cb3ab4dab4027ab39599b30748", + "84f125daaf112b126acbff68bd540281c4e2d8286945d1198d7cb57cd81bf254e77cc2a0e1f7c840feeb43dd7c46f66b" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "3d45212365322ba65c8801cfcd86d396b07fe481b4ad0fcd98c7c373c0209539", + "vss_commitment": [ + "9f8b65634ac24eefaec60164cb17f690211404bd4fd8fbf834dcbcd14a44aa69", + "667b813e8e6f6fa81c06ac57bb4dabc728d3de0a187dc84b13cc45eb783e293b", + "8fb3fa58292561c8ca16959881c6a21ab5caf27165f00529743d3697a8661f4f" + ], + "pop": "06835ce53daffde198f7483334a00edc813f409225849fdf4551440e9dabe658802040130c523f6b99a98ec7d62fa9b3e4df99abb8b09aee456e17711541ba04", + "encrypted_shares": [ + "d1eb62ffbd5b3f355ddbf3b9c26e0f9548aa71d8603b8f0d4fbbdf554c80062f20b64c44223b762be4ddad5e5788f01e", + "794a12a09418c2b1bcbd0c5c11ff4821a644c7b19c7a18f1ebfe37280f40d4a07da623159d1c134bd3f6e7028eb1114c", + "2a1ff8f57f072fb0257b6afa1bc2204b0206080ee208d683f3bf055dbae11f75096eff3b0eefcdb7d31dec1364e7d27c", + "0660afde6d35b617b66c939c5f986d7b52ddca1b3f267d04e8eca4bad7b601abe813de2b096a05e3f4e0bbf96a14a7fe", + "8e2bdf782b5bc1c526823ee0514081efe17074321657cb49d9bb8fb9a29b34004b6efc56a9773bcf7675c63d2e173565" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "b19fdf15c737fc2ebb55749b6e54f95114b673a933a640104f2b92e375e5bf12", + "vss_commitment": [ + "7253eeb9941c4912709f44934cc6ba3cb3785081567220984d8ba64b6b4cf1ed", + "562f19f3d037fdbfbd247596b1a0a85d40f5c70eb99a55ab0e87d2fc0a88f611", + "fdf684c6c5fd9cc91230a913f99301517a0ce38678851ec6648553562670c98b" + ], + "pop": "081d44620a1f93f778cc5627f4a46a5683dd6989b7bc4f4f13d99ef11a7c239dcaf32a43cf6ff6ae1ae717d18370c42f0a7ee60e4bc5e8f134eefece8d441f03", + "encrypted_shares": [ + "b417ba3c430ff39c282283cfc659fb61017c2a1c0d323a4c90f9cafe860b4665620ff6538ac053b51fff8c186b41675c", + "fe0fa3400de6a1952a4a327884da1d90fe14a22d484edcfdbfe4667a52f24500942c38fb34c6278ffba0829aa48a69f4", + "d0f9ea2acbbc7f8926e351bb97544c2e150a83c296a1c8a2de47c9a5ac031c639edd24954f36c3a685e8f326e8d2b2de", + "f21bff66817dbf12ae2282814c72da218fed21530da481d7b05fbc7f129f224974bd2a51f87a26f76e9b3767551fc2f2", + "6e2fbf6605df0a1b86cde2903b4833ccba42950af21445886588f232dce84fae8b6d0abb3c916af4ba40902f556ee950" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "089205ddc8931a7778eb588b836756bc5f10a650bb9c3c6f23646c6303426f05", + "verification_share": "279636be807557633c8acd8161d452e8a9542f280463a643703184ef0bc88c22" + }, + { + "participant_id": 2, + "secret_share": "e8d9ed60a8df0d5f99459a1fe71ace6bc84c81773b25f84da8e6743816ad040f", + "verification_share": "20381dd73762ae08cce6f825178ad70a08636426c4caa4e797d06eec28f8c821" + }, + { + "participant_id": 3, + "secret_share": "b4d8f5ab9fa5ab1ff885e83885f37ffa59a540a3c09b1be8a6fb011736a77603", + "verification_share": "fa64620863ba443af3ac17968b550e221b7914b11892f831824839c036960925" + }, + { + "participant_id": 4, + "secret_share": "46360978e3ab186941e6321d1be52992141ae4d34a00a73d1fa313ff6230c502", + "verification_share": "42a70b7244644cd6acff8a2ccd9c105767dae4fc5a69f93ac588dabf2cf82e77" + }, + { + "participant_id": 5, + "secret_share": "9ef227c573f2543b756679cca8efcb32f8aa6b09da529a4e11dda9f09c48f00c", + "verification_share": "bb3e7a3a1a08d17197d41cbb3fb247380c5e6b2c85d92208d281896c1cc958e8" + } + ], + "round3": { + "transcript_hash": "f8309b2d74d773466af7263f6341e05993171e7a05a405fed9d4bf890199a881805641a89396da1f868f14b4e73b5952ff854b8a5c5c7c45061c77e5ac77f2cf", + "signatures": [ + { + "signer_id": 1, + "signature": "214f038e882da7449067e2e2b5dfe6f24c110536f58057659a101b2ebde16f913b9718153031420becfcf4ebdfd45f886e8dcaaae237b93a86245ff2955f5f01" + }, + { + "signer_id": 2, + "signature": "e366fcce096b78bf1437a4f7d4442247b509efc2e0a6867b885c9712fa62a0ce31c3edd490e8e50ad22459847dbf1e3560a3f916be7d1cbf923df52cd02a770d" + }, + { + "signer_id": 3, + "signature": "815a76a53c5ac6308e03b1e9f7d3d97c21651ef99dad1e322c1f5d26964677cdad9035f681cbe0f9a949ffbdff4103d285311aa2907cd189e3ab98431adb6a08" + }, + { + "signer_id": 4, + "signature": "2b6214d85588efb7d9298d37fe53321be610918451ebb192004c2756fa988a0c50dcaa5df273d1254a4c3b146484bb5911728b622849806fb1a694b36a84ba01" + }, + { + "signer_id": 5, + "signature": "3df81aad1752f4090e02bf59b7b81510d89f794ebe0db04bfc4004c79a5b53170081434be72a9ac82358044a01974132d54dac9894b02eb1e893b1d203401d01" + } + ] + }, + "group_public_key": "334d3d0229f6c32ae6b77e9bfd13bb72f565a1fead8aab11e06ecc55f0c4d4a4", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "01aed684aa8999740e7d7254184dedd6b19186813f5f761e70286bd27a26711835b47dcc28190fe97192dd1e0b669f66", + "cbfe45298edc61ca5e76734488d0bfccb000eaa380c829996f9a38f273e34ccf499e356e62216cef197a384012399b12", + "9ea8eb1b0de6a4e7330733ea0414235f9717555e61a6380ca5c300b25d23e79510797c7304c909ac5cecdb2bad6f1bc9", + "d1eb62ffbd5b3f355ddbf3b9c26e0f9548aa71d8603b8f0d4fbbdf554c80062f20b64c44223b762be4ddad5e5788f01e", + "b417ba3c430ff39c282283cfc659fb61017c2a1c0d323a4c90f9cafe860b4665620ff6538ac053b51fff8c186b41675c" + ], + "recovered_secret_share": "089205ddc8931a7778eb588b836756bc5f10a650bb9c3c6f23646c6303426f05", + "recovered_verification_share": "279636be807557633c8acd8161d452e8a9542f280463a643703184ef0bc88c22" + } + }, + { + "n": 14, + "t": 7, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "config": { + "static_secret_keys": [ + "b6090806188eb1cd2222c9f180561e3b8bac09fb672f5b0de705170929048b09", + "a1128fa24af9852c08790928825ab0845892a9b2d3133f7058e9d7706d70100d", + "6dafbb3e7cad284a0f8510c6736dc0b0aede00ebad9f265eaad2837dfe4d2c03", + "a4396d6729b6e19331d4e58e43e278907858c7c7f2cd9fcb1bb84495b95d2f04", + "a606911a4a0de0376efa44fd072a6fad150d056dde32ba4115a2804e5077440e", + "56d529262e1d6fa4e6a7db8bb9f61bcea14833cc88040b5fea23a7cd6fba6404", + "f4e3554295a31835c68f81479877c90cf4c1340961ce1f3d3f07ab4ec5737404", + "97559b3d6c9a433e9bcbc29b6c747b170d1e50865a875913f514ea96f77d050e", + "b67bcab764b7900ad51c912ef6e6ffe8799fec6032a045401c15102eda158d06", + "55ed81fa6989d8b8c36edad9ff6c86166ec156c1cbcf9edc739ff9367599ff0e", + "738a92c61738eff1c6657144213655448d4ed176bcdc898a89422189c932580c", + "a48375bdd1e9fada7f72648458dbf46c2c9b4f885c072203c25f52c8f371dd02", + "fdbcc18d4bde352980ae363ee736f014d54dafbf8b63fa95fd0e9df673fe180a", + "d9947c89c8a60154e690f679a17037ae7529e00557061dcbd20d04f9a3615604" + ], + "static_public_keys": [ + "421a26a59527dcc8db396279fea139514903d6632872c6bd25592c94ae5eb191", + "164d1d596b00488600758f2d591d6682ebbc548d6c0ac91cd5ca6810afcb50a6", + "9f5a2c1959d25a72fe2275b8a8d9ddb4232e31bf81f99073241dd739cdbbdb5f", + "95b2ca39493be7974327815009509820f88323250ae5206735d35dec1626c8dc", + "e0a805b8cc81e67002acbc41046b1e069a9143c64f7d4bd77cf5845a6c3fe81d", + "dce5dfc8c734a2edae38c4c2e6fda4e096eb3d544ec8d6619a895f9fd3ca9b61", + "60177138f0d98f7e7083b718339daeab4fc44c370bba05cb946bb2de62ce2f13", + "a18e2c39bed98bfbe05eb5ef8a629b48ecf45eaabda7e55501b7c3c4966fff77", + "24c2f04cf1a9e81e0ea3f5701c3dc76df93ce872fd04aa1b1293c368bbddee6b", + "2656186197fa97728aba52c27e9ed50384e996ed9c8e491906ed2ab64db456a9", + "08ea6307aafb5ef6b20f023eb4edf2a5fb912661855e3b6dde327dc58bad5049", + "f69dbdee18af719ac59dff612e28043a19476b164574d24bb908ba201a8ebe90", + "4fa1de61f77b0a1a796506680fd14a1d25d9890a56a34e164af8fc102e71ee1d", + "d31f8c2e0d22455a40cfe819737605223f1add340a442fde18e4c2071a9b5d4d" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "ec9a1e742c0f07e099216acdaf01777759f32a0d6a8cc091dcd223e36565c03e", + "vss_commitment": [ + "e20adc22c979794477c704e291cc11e49021a64da54a1854be0ff5c15ceef143", + "621fedbd9621488b50191f9724c55c329d37554c78012c0809a8d29129e23a17", + "211343dd4a42fd5c5a6c352cec172bdf2fb192d57edb21d53599463277076fe9", + "f3cf65e57e82de4a8ea1ec40636fc322323f6f091c941a380a57ace257078671", + "d201f2d656f4a6d4d721c9137faa6a24df8d832255bbee8672cfb7bfacd57af6", + "db642261749e71ea50706061eb8725ccba05f69774ccf05af9d7d0182c7cd422", + "8fdd74119499cb19238afddb4aa363ab3c74f08b34db6fd91d63d6ed43f57923" + ], + "pop": "dc1f5f176a123d6cea565e0004d147475c3367606bf7520644ecef2e6d6e777eeb08fd2fbaf714db4221da096101f1bcc0302a76224e64ae624c038d09bda604", + "encrypted_shares": [ + "31aa6638fb9526fe734101a432cfd8a02db6967bfc9eeea5f18281c5f11761e57acab35201c7fb0857bb94e897af538a", + "7356840010a4c43728092fdf5364c33259393c6835ae45a52925be40f36c5f6f7751a39cff0a068ce53aa93531dcc1b5", + "cc41aa2f8efb9238d4a682e5af425dbd7e0bca54fd5a3b5e60799b9b19c366deb90060f6982eb358372dd55d87db187a", + "109c33c243ee8222fe819c43d65d664d8ca22d1d69a884b3fea5518bf43271e892e10f329a21019127730399f52a1cfa", + "52d4351cbe12035eeefc9dfb589328b343359341309f6d98db3a4dd9acf6c396e68af6fc84522ac812f71b4b4c92f36f", + "29fb40fc1bb9b1981ef88b1b0ed702dc37ce63f5c6f5f52c4b54574af4eaa34dffdf38eaf34f25cc407d39e0c8ca4bb1", + "b1b6d7dd6c331454f4a501e67e20331574103d7ad1e04e78adce5543284e773036aa131e9559f852a51c5ef2531532b8", + "2ef7a2120a33974af5810051803dfa2a86fddf6fb4379200c6a45f485a64c779652e4dda542437dd3f1f3acbf5ca24e2", + "03f65c6d4e6552d79fcaa9e9e240e80313f014cdca2a7e666bfb9f570fa00dbec31ee9833a610ca5c0cb8ceda857f3d5", + "7b17e86a0dc86294ce3762865aa8df72b31238bb73ea4fd19a7e512317f20f4d208be0b9ba21aed1d63c707f4d8dbdd0", + "ccaf2c722b03261e7e1616c39f927d466be399e77a3f675a4bb767238484ef5afcac60252a19cc80feb328acbab0bff9", + "35af8225a7ea93a9bb25c16079ec0c2b51e15a39d6ba7560ce5d970cf0ba627afb954c1611bc3bf1dae6c9adaf21f057", + "f3cf55dcd2df1a602dc5222f17d833afb5dfceac631f89250bee4b4f5ca8f2c5f0bb2e93eeb8e331c48ee34e414e5573", + "0041011ea00d529a90db805e798b599cb00c11270f8aee9e0f3ce43a5b382884ad85522b54e16aac19672268d9454ded" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "a6395b51c8510a76c878d0b4a690e9eab335e156e7d473b9cda1ecd4ca2e48bd", + "vss_commitment": [ + "420d43331f1db58c418449278cb62b569313006250a819cadedbce1146d4ada0", + "1dc96af65e28f1d86bc523f567b74363912130a5b62476af4fb805034a3c0c20", + "73b658e2c160414f874df5e649b36a6ccc98520727e8dc763f93e1cb292f685d", + "1b4a4a12e80e2a89289dfa96160e1230b67e95dfdc71b9c4fb122e578a4d577c", + "8151a2571a5e789e1c4ee1e36e506f0401a5d66a32769a69e867e06574867392", + "497de82dfd1630944bd60c4f637bc516c483ebcf9c416a42518d6b98915fa145", + "fed87acccc7656341afa36fbdbe446b18e0f9e4875752c4ddfc0f8f243c0b543" + ], + "pop": "f43acabe4644f6f7839370da7dc1494e3b9ddd3578489d027962d20191ec1b5207a7118326f22675068289d196b7f65d330bbb9b93bda0b89abb7a4c74748d00", + "encrypted_shares": [ + "25bf5df8189cbdb175cab533b438c3a8302ba442dea605771e235684fb5183e03812b08d994020ae7ae7134ffe080d42", + "6ec361aaf8b40466011be9ad47d2e6c1a9b921bbf625c394c57e3232ab2b74ec8e7a88449182cc882ecbb16fdb5c7023", + "1441b39ec7319b11a13d3857286d49b52f6702c6f649581d89941a5ecf31cb2d3d1c035a429cb2e9a11fef6546f2baa7", + "037878da1f50706d8901344b159c3b954212bcc1a11544f16b8c2468c969b4889a40bdcaeb196261ddb35a124d4ffed4", + "1c44211cd36c79835d29623928dd5aafdbcb6c6b2269eec14946bfb7a6cd5f26ad81680406e6fa30ae804847030732bf", + "bb24e9d432d50f30a74dd8381d5d9e413b8a90cf1536f9a8bdc484ab1827510602908d7a06fd80eea04e47168e3f8bc6", + "4d26e20998aa4f2aecf999fec9acab27f1934659c15ea9beba58de2d4f5e1b270c00d94a56e21ec2ffb7973ab728a66e", + "8168cdb30107d41539f754097769e26e75fecabacdee9568dd418ca5cfde4beb25ed4d6189140dafdb153b7facd4bb09", + "9a574a27010c0d3a2438308089924d58addb1ad377ee76b7cb983001ede64a474c184716e75fd75b3c0494986894c2a6", + "4693d7d45809b5fbeaad7ae0c58fe7c71ef10e6ff98537692c30fbf20a09c075de568c55314e71bfe7777d7e49779277", + "631d8fce0972b0c9e2a433d721b9287c436f0fb1c22a9f1f80616a72d7b9d787cc8743cfb7197de206f8bf63db4ee6f6", + "485ecf567df4e2453b8639179baad965f34cdf19bf3ed2d93c857bcdb60fbf33ee933dd3513b9c2087f4959a1fe9a285", + "9977d24502c5a3da327d661f87fd7aad43fdd5e541b35e0242695caac84a6b377312801c6b0d2fecef4e2b43c27160f9", + "bd6003c1d34065d16e4f8a6c87b028bb5fd9599d27b954a10c0bf88850c3144769a0dc8a6248889d912e93e4ba1fc558" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "92633fa0eb676210937de058ff08e7286d5d50e10313d9efb7c66b90f3912940", + "vss_commitment": [ + "c0717eac65ae7a3091646c0a58576dab11faebc83e1957da5d2bc3791e7f644a", + "0eae88f151a123f51d40f268ff3047cac6114df59b73780b1d1116e1e3bbf6e7", + "d902a286c5e28ca7e86791c834170b039563ef992b3f2d0251ea22d90cad479d", + "4a3b85f1bf7dd3e75f3830007d7315e00126f14276fcf0e388a29527b69bb8ce", + "f2d62135516a481569b887e466f7435b27d604814eaa88dd1cbf1c368a5c9214", + "119c3c153964acd48ff60007678be201640bff1cd54ed2e7a267fedc440d4b52", + "144993764ac91e823e43b9a30cadfff865c0a39e8fae1cb42cc4fc1b612f12bc" + ], + "pop": "4cdb3ac17bc52773871d8a814f466b52f2020b1ceecbe16db3ff5d2fd983562b33f432dbd64f9e501a094b8b23ef25d9ff5223416c2373a48859909b96759a0f", + "encrypted_shares": [ + "7ff806ef14fc0fe79badd46918dcdb6acddc2de6080b4ee847586564d58d9723b3c876b3777dc38a41bfe8a000c8b7df", + "738f3496435c3037048269e2b51eb7a7eb95ff5c68c1f0aae9a703efccd68c098e892470dab15718070c2a0b0edb25be", + "0628f96e45e6184ef81233918231fe51cec58de6bc24d38329ee750fbb9741b8b7233a5b176fe12a81b3c49907312207", + "8f990d87f06270019e980616cc52eee4d2fae4b1b3faffe5ad70fb66910b3951d6b7ef7261fff1bffa26ae1abd3f40d6", + "3d4bd800ede6dc24859a5f15a481c34bc90446ea8740aa1d85aab9e9aa2b8b58b6198bbd9e236dccf3e47f00af03259f", + "48fc8c03a1aafb4c6bdccec4ad5e968a2466293d181af907c52361636fac95b2c4cef6d1ef823cddb60eb4c73b95ea4a", + "2c267942feff661dade23ceb230214e3f89df550380040c12de96071910975125e950983edfbb992866c6b3f7c061ee2", + "4bceb341af1830d545133f1b9c5227cdc9aaed47dc4f307355af48ed197e2d678fba0452861b0af5c28935a96cf95e82", + "7f8d6c7c6e9d10ed6fc44a01bdd0b9c12d226e781886f51d72c7728749b3fa89f804ebaf7bc7d30ae75a9583417d31b4", + "198fc4a37d93869fbac1c9e20fe6d16a115dca7a40b99454e0557121790dd032d96a071329e526e08b649f72fa1d6d5c", + "c51840d31d241d25e2f3adf3249ce237f00df3a09c96048f2925538999a2687ceb8d6c2c5f916e9d83cbd2243f2841db", + "1384ffdc437791b0379232e49589364dac8e695500d9d1f7d49948e9554081a348d08eb9b8d745758fefd48d35674ec5", + "7275ec9c2f68e5b5664775c82a5d1693fc6667b9b6a285e321ebb738ea0021aee3f9c81da615f49ee1fc50d9f93b271e", + "a2466d14acb533b7d73152e77037de149b3742db482b789459a7000a14efa1ec8c27a7d29eae82287ac2b7d41e42a060" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "de83e49ee163cda52e518af7932d369bba1cb20010414fe2a22a1f81c4ab91ee", + "vss_commitment": [ + "00c5bd007074940e99b7ba59be5d46461616e1d304c0bebffd67e49ab5db1c38", + "5a2310b15f9457af7f90f109c8fbf9ab29e7f2a1d7850bf59fc971b1011b4cea", + "6702600d0c060f3a6527f1c2030b8096bf97f65eca31dfe4e9a5e35686bac048", + "813c74e5ea76b066908297fefb79df996c1197760b8ecd9f019cb842b0290ada", + "af05944e3650b4e2c7e06ba2b070dbfd12f503f8832113205a37134ebb987a4a", + "b12920cf2afb4122387625474e7d128c945e070bc4a397ff8e53ffd9dffac610", + "0ea39bb6668dc3159094174825a9a54bb02f798f3454fac3db3c414bd7d87aeb" + ], + "pop": "0ef18e582e88cf5cff659d592f7690424e822230d98d075b0773afcbf37cab435cfb9bccccbaa6d01b8f650ad15b950c722c63a402fef012fdf0255fa40b2f0b", + "encrypted_shares": [ + "8ea087b8ad7c163085d16d5efc03bdb4c0ff1892686a8d5dd2a2265259e46b77555457fae4f4da72f3f3b523323018b2", + "f6e06bf4312c5b45b2f75ab5d31633bd78d5254163ea556972f5662856f34956bd8364894d57672ec159b3492c2ae38d", + "967bde47183fd1e84699fcd0e94768c57689c9bd0fd9d8e246ae86ffe51213bd5980267a54a7b924d630e59193d67dde", + "dd33ae9fff8bb4e468e506dfa992d360991c4226605cbf1ac7f5a3e5d7ba19df8f631da1bad367d7545eb70755d0798e", + "42488bf8e99b5082b7124d8f400f4649bafb9e86b505a0a53709ccf6321019c6898567365a1eaaacac713685c561a0e2", + "de3fe149ef628c2c49441f16536107053630c4a7883f76721a84730b83e7d1d0244e621542c7b69dfc6946b47c890d68", + "7a19997ba41a97230fd74acdc79bea27eb41e27b0163d03a6bc4d566e3ceee55f64cba565a6d2a232ec299f090030bd2", + "f96f620707a43177d56eb3cb400f6c86a79b2e3352e7aee0939f6e54ce42f71a35a416637b54de40c701d1d762bc0586", + "f2f0ecf1a6b32998bd5824514789564de0970529dc457b512a02d27d3e68c8962b6375fe7527f363e35ce54c18285698", + "6b6243585bda39544287acd9d45c57a3004c3f21560faafa10a2822bb7db5d490bd3f578cb1611ef6fd2092d7c17457a", + "598252e9f7dc7ce6bc6e74c7b9c266b194585fd927b9639997ae32b7a9a1b0467d4e473a9fa3b0f193e47021d413fc76", + "83a3191f75da4083f94001104daf21e15d4a26fad631b63c0d5beb7dc59af73df922e185826e0cc8e0dc68e742665fe7", + "5791bd36d9e4b7ffbfab2eb6e6a31037a9444d48ab387ec16312a4823b4f6f4847bebab74d1c6b78fda56cc60d98a027", + "91090ab6af987082ede3800bbe280ecd571662f5f6e73c8cb4218c226ea6870627a54ae4914f1b12a6719e49be2678e4" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "9e497409331c8cc930c6881c388c11da647b3a6849d04825e2e94f8e9c6a294d", + "vss_commitment": [ + "41345c19975153d5961b06ff5dabcf4b60d7e93e75efca4b0782c42176d6db75", + "18a18f76755442f4a24d9d03c83d0b40c83024cbdd14a986dafbd2fab1372686", + "4d6f17bad6ab2285be9a6d95889e07efcdbc584bd0e75025a17b48d2e628b01e", + "8486d3bd93cfb628d4505c414d99428c02b673ef22f8c14903470af2c69c7bc1", + "8bad8a53afc6aac05fee4e78226c7dfcf1410a5e098c6907516aca0afc77e91b", + "5babc6627c45b3d97225ab9c6b179972146a48abdf61919a3421f66ba7d542d3", + "007462465d30433039c3d7071d38acb67593221f040fae991ecf4e49de5969d3" + ], + "pop": "39cedb6aade53ba3fd13a19100b096be7f0d8c797936d047cfa1cf1825d6cdde5fdbc8b75520485197c2b649ded5ef59fc3fae12c241e30bcf50ae54399a5b02", + "encrypted_shares": [ + "a57ba6db32bc68c0d3d5672774a106031ebee2e3f64d18c4655d91d4628a10c5203593f62340a8cb3361d36038026696", + "c170445bd700659c71abb4d3be28a568a0abe342dd5daf7ee33cb1a1baf519523e87c311598ae74a83577ffe388a6666", + "dc7851edccfcb7c8ad371c4cdb77f5a07e01a64612bcf5969dffe08e94b1912bed414eb34054d15c4c4ce9a4c1713a60", + "66dc53e46e3efa19b493318d30cdf4f25e1960d8fa97ac73f7ccf107c0fa16d18360881cce525e32c0bdb66e360e7273", + "25b2b8edee1d73b60a024ead57881d3e1e06bf0d0b27c3bb4dd848e7ca16c9d7c11ae19e5f752373d46bc8805b35b65c", + "17c59fdf354c849d3d806cf52bfc899890a394eabfea9de90cd65d8f9b477865cc83710de57cfbc041cf3cf523727519", + "7336a52e1d2a5499a773cb7d205a19ac900f03aaacab11e84591681e9d1b93d55d9707fc425979789db8ae74d660a126", + "094c55cd0f3d06c24240fdd78d3aeb5e94b1347c4a19627fb043dda18ffed8c19fb18599d5740eaeb5af78a87f8c45e4", + "b9e27f4c368d88ec1d082c11f2384d6c5caea3741de561effbaa602b09a382c1da1c13198c2e25037e7a75800a12e27a", + "bcef98ea19f4cef543f46801d7cd87fd8f672f4e2dc5c3ce5e0b41fb3b5dfd6a863593214e017ccdd7d4e7caac900f99", + "d8a7b547efaccc6a64e93b8f4a7f0db0d43690c400b68ceeebdf62bb3523bc9a0284fb06b9fbdb2b54392735420b8626", + "e58beb57936f01f049f30a864c2ea9f5a26555a6747e7da01b1f75f3b3838466d406c142744fb821e8d554c671aad9aa", + "026f951d25afc4148811ebe764ef502437e4cdb59f499494aedfc6590bd84c4619d9c0e1bd8cbcb9f08b46212b498446", + "73dd935a33796b540675569a2d7bc55f2a2197b9f9b8131f8354cc4c71e7a8b4ef1e245a3c0c04d15ea18b16066a0f70" + ] + }, + { + "participant_id": 6, + "ephemeral_public_key": "9927571d81fedb4b56db270d4815f61b4ad379bd78f5ded818d8793cb9791177", + "vss_commitment": [ + "01562a03fef123fc44ec8df875a6d280a35ec131b155d9a0ad267b9e244b972c", + "3e2fc03bc56e6eee6dfaf3c4a32a756e181954256b7aa05a1aa00370f0d254de", + "326483528c23b4965a3a94c52e1927ce3961629310a1993361f767a6900ff350", + "c8c71cd4e5984fc43f65e3a5c9dea94d4a29f86075d8782b639ce28ad2a31ab3", + "b7dc36dc1942e39845156a7c6324720db30ea373a515765d153ea43f5a61cfa1", + "4f4deb4e9509da4815b064ae9ddbf3b7f884c253bd45b063c7561e2cd9a2b441", + "07b75e7787fea8471bf90b240b625b9bf037f0d442c5dfa1b9653bda4daf6132" + ], + "pop": "616ba047d0851d91f9e0500986cce1743011869d08dce06a5d21735813a4c5b3e65966054954bfac5b77215e2133f3005df08bf9460784d05a9784cd79550c02", + "encrypted_shares": [ + "1295490279cdd0c22d4cb078d037de263357b9217be5bc3614f2b06986432938edbc49bb328af74e38eb7f19d419b0e1", + "e77b26621dd0c6b900050efcf24c7cf15938f5f656462d3d68c84cf1087ba2a3539515b69fb0017e285ea4b769b1971e", + "393a42c6bd01ff112b7ba6cd4e6cc96e26266cab650948eb230fa62297260953657000cd0d0e5fb2f2cab7417e4b15a1", + "03dc48fc8572f6b896fafd694e167e104320aafa9b524c97c4a3ae820c7924d0608235b410967cd10230cdcc58c49d68", + "a0325605fb8fc4ff68c1d80d5e82c2f0923a63e7580823678e4127494f7d518bf8a67460c01da0d7f61c99cf8756d565", + "cb75cc67318ee692364d497f68e02e4ea0b8fd809f87a02fc0470e395674218800ec9118fad92dfcff583a5d40c4aa63", + "8a55bc6e54ac3f83b4279f8c6eb42fe0e27e68bfa5c8d4c3e7c42cccbb411300af29210fb82a98bc4a0d46938ca3e4d1", + "0f84281ecb11ae3bfcfc0d01ff933d261ea166ecbaa813fac76a1b6da7bf2f0ac799976f43fc11a03f998c55c30f4b28", + "10905c5369db527b0d11029f2ab3a4285c7d03b3dc999c4a59faa3d302043373fffebf277be86eb9a4358ab1dd7fee20", + "2b3959c27355e9f3d122ea265d69c639188c4a4514b984a29490aadc61cddb5bea9fb0507ecdfd6c1d06c9e43289c263", + "df08ed10e3fadec43bb63b34c98675d900ceca5ae4a26bbf60de8b070196ed9a5ee7d229fd0092c036f3a2130eb55db9", + "502953693190fb90977a4eae0cff05031f6ace6316a3576f492c2b1a2c500700f07912b2280197ade63d76a7185a5079", + "6fd33b932fa7ac041e47b70624ca84025074e862238f4eb66f33babbe7f3180d0645674974fd89244b0bd895960867de", + "fe195562db5882d1fef094d40378da1a5e1e304e4be2c645694d20b613648812023219a7faaa15251c19ec7fc6d031a4" + ] + }, + { + "participant_id": 7, + "ephemeral_public_key": "383ce11f0a72af6f87a8eced6ca2be63f8d8fe1a7e6e3ff60dcef527a981e13d", + "vss_commitment": [ + "1631fdf734bdc56ac76e5ea18d4249372548866eee6bc4b921ce2ec34f63d2dc", + "a501c55a41c46ed2979f1aaad73c709da1b59f1fe9dd9d8ee5ffefecdb400ba5", + "f275d88f82795d54413fece420d2bd716c3ebef508ab576ecd831a73f7c2be0e", + "2dbe0fb91c435a62d13cc2486d8d1cb3bb37b3df8a2b8e7eac3943303b55e81a", + "2cbb2a69bdbcb0f2db5df5e5a30d37350dc14bcbb8246b78ff6089948ab5d26c", + "fe178255b74e32558e0bc0c056848f193d4dd5ea98bf1c4c04502b19865d9212", + "1a937ecc3604b3936f18f716434c8fabd1dcb7520482ed4c6a38fb5a408b07f0" + ], + "pop": "19781296b8ccc0a51281af8b06409e3a08ff58e27e142c19538c375802aa33df1a9376ddfca182a09904acd801e7cc5453d99e9b1bfebbb3bde25d71634f1705", + "encrypted_shares": [ + "b2c363c2a0a2fb73002a34ebef38ed49ecf07babaf04daeab561d3294c0d71cf2d432f75f030b89fc9c5b995ca1020f3", + "ee4d2c6e2aea605043a3a879fcf5d8280587ae5da556023be53151779bdb8d5c054ad35519a89284f37b48f711c2dbfd", + "b1848c831e794a1688d8e7ee4896762ee4d713989acd357b7da98466886fffade030a9eda20bcd955b8554641fdc61b9", + "6378c2fbafec101382b87f6839c551c983a1a5e9bab6fa71eb93ce44c8fe30081e56f5fb9f2ade193c39ce371be72e60", + "cc024216f06b98971a12262bb68a309fd304353bb2cf2a983ab4f4d61431a6556e925f51543be89510ab7b7c6f4f6d21", + "4a1170057461653ff45008ae105f0d5311ea55aa5d4a720eeaaa96a3a3b7b9ab640de138f2adffacff8ec525ea21eb64", + "7c9d22362e02339db8604c3aadc309255c9e43583e6d8f0a1b37e53be387e6b24b070afc759576d56b83949350ed67d8", + "20d2478d317e3047e43dbc08a4eac5c3a3eed9229549dc0021fed28792212f4c648110db5f597497006f364c745ee792", + "e062f6cac8bca877f47c98b5575bfaf5207f2385f3f530b46a34c3778e3c6066943ea9d74d2b1971874d437db933b04c", + "2bb36da2791b80ae1cf3871ab1e1bba75d1d1b3423b272b4fc250fccc9254ccfca50c106e5598a59a0cb4443a0a7b2c7", + "462fe9d1b1a1ad05ae3a80476b16a58edc992ee6f6292ba3d02ff84ed71ee9529c8b3c70b31cfddee7a516b7ab3792c6", + "e922696998f70bf7d9e62fb9c5686b250bc6a39fda33d21321f3a18f04d36b6ca100f2909bf4f3d0d30ab016470dd358", + "20dbdb9ca66b9b025b79e35d921b078c95fa7c62f6905fdf2c6840d7e41323e0f9bcc21727a7f614c535d4b45d9baf0c", + "4eb13643fbc1707d15bcbdc54f8f4df23429a587c878b9dfef22a0a88692e6229728bf9e984898f11a491b7eb1957204" + ] + }, + { + "participant_id": 8, + "ephemeral_public_key": "484705f96389c19faf1061f11903a5fcc5844eb0b8a585010012bb996dcaad5c", + "vss_commitment": [ + "bdae4e963ee31ca9568847258d852b7f3a9c2b60e9ba1822ec5b763b86da5e13", + "a46509672dfec6565badaf935779c94eea7204d3d5f728e32f296ca77673fc88", + "542bc5a5df72e29bc7672d64915922a8a92f8ba217b0b17aac58d1bc9b47bd90", + "81dacd05ed7c4ec034827b239356fdebb83163fe21b08e53b283a1827234eb73", + "3b2cfa57d898141156d0cf9d153f947549fa68edd792880f80ffcdfd0817110e", + "9baa4cb447d021ac8ba59f6588d63a0841e75afef5cb385a92afaf4f07c7f769", + "a28d99e40af6d79a4e8100465cce70f5095d7a0842cb3f50801d37a037baef49" + ], + "pop": "1033258069dffd6ac1524aea28a7a8c02f04ff11f20f5f21e30ef7b48c3b69561ed18bc423122244fb96a3d5aa42b2f2286c637679f8375472121ac60eba930e", + "encrypted_shares": [ + "c63a8cb52cdd625574a2f7c116b922c79a1da9f6acfe4bb2ff0a2e3d08e600e7624b3d54109dec201001643452b570dc", + "a83c0cad53e0c0a802d4dc331977dd56a99b2022143b69bae3faffbdff3dfca9e497ea3bb792364210c8b8b567179212", + "6654be93868d0ab275ede1d98f45920f0717f3348433ef8c97fedd58882b254802f0580f977f033df6b6aab31cef6c9d", + "0ea2351dd4751ecdb33f8fb31eb5521b3ad5cdd10c0122ffe3effdb08a8d3f6641cc45e2ee6b9ffbd47083e40ce97a4d", + "21682154be22781a5e117b93123a023b4746fd24c4404bacb0f5dfb5240ebc45187a3646bfae132bb9c7d6de6c746eab", + "9fc303e955847e1c274f01ac3cb8432c4c2b6a150a7a107fab28892f2a1dcf53b54844f60c5a553dc677fb0813c403f6", + "c5c016762422ac1d5ad5b35b18f42da43f4374cf800507ae5b251b10d17facf83584dafaa64de981964b744932978ec4", + "5e524ae2a1d7709f8cbbc06e6d318d8fbabe514579995b2d3bcc84bf83af78a5468b84738a812e755d72741632d8e47a", + "140fff910fc947b23502bf25fcbc23d82f65fccce07ea77c7e9502336c48bfa82286e05f4794257b4e3facb18f524191", + "552d62b34fcd773bdd659c2b9217fed91829de4f18fde2ae3807ec720b4fe9b2997e6098567c078fe55392d7e2327b02", + "d86e584dfe9843ba9135dad563962312d7526c5472c8928a121c9be2612c8d78e54dc8993fd23ae806252178f67e621d", + "935fc4926e1e5be523e9c82456bc9ce4341a1662fa2cb4a18696691f94e322ae79b59aca2dda611e6ecb4b128beac7a5", + "e852571a2cfa668ba8439b8baaeed493fffd41985ccd13164fed4ed1d599f74b4e6b8740bda6b2be55c202f34be38c33", + "7cf7aa5e43e5d103c5ede92b72a13c4b61cade63050efa2a1e5297832462466e6ad189ad2750adaabe79ee07ef6cb4a9" + ] + }, + { + "participant_id": 9, + "ephemeral_public_key": "6346ab5612264768d79a7ad16fd49a1b2247e0faa51a9884d0bbc2e943f6c25e", + "vss_commitment": [ + "e25bdc4d0553e9df680ff6a68e99fc57bc0996abc6efdc5df27d2a93ddfaa537", + "231b7bcf4b9e85df4be0b459474b3da7e0be54bf6216de54c95ea07ed4265849", + "29ac9239d300994b6708db3e50d231b1a921859ba7e49981caf8afcb34dce45a", + "c62c976a81ff9b637eeeae20a58a62467202343ccaa35472a48135c139278519", + "96f4e362273c2cd302ed9d80a73675b040b6abe79d8146706cd03c3d8244201a", + "bd88388e2b4b13cdd8a5dde0a53a4462f5a5e8503d9e052f50c152ac7601074f", + "5834bc33ce6f5219f5d759fef541286daf1576249ae74dadede45b12b73a541c" + ], + "pop": "c1608e4e28ff3078f3f4d920a6f946be04c3aba0311c4f5991b8e8b2888d55d32ba301f065fcad7a17b04f388788557fef86d4fe033b18825db32940dec6d809", + "encrypted_shares": [ + "61c293eb9ce2ab514dbd8f76402763c73c514a646d3405b577fd633eff6d83b0ef6f7d90d13dd8cfc9c2676225afb104", + "5f344358d69157a40888ddbb3908a2c53b154ca1366c323107d89bae9efab3292d7be83fa2a126c6945f85a662d6b487", + "e128e21dfb6196fe50bdaa24254395edad362f275bd653add426b78a1bbe008a9a02ef044bab06e7e0991ff65562ad21", + "4a04a1dd97dc5f9babab013333ae9e1c18b23eca17501605fedeaf326ecc8f212789e0143e1b68f89b1aa9c88cc3fafd", + "052efb884a3cd42f8cc8faecb35506e850a1a49f75d42379079a58e50388525fe4215952ab6ea19e3f3aef72b83c5cc6", + "2f1e1f3661204fc9f5cb880e66994a4cdb031e1190d9b5dfccbb2df9240ab0568d0749c5eb993c314d3c9c2e4d67af5f", + "14ff85f13b442cab2d301a650a66df2c88273ed10e4066b61a08436263009879b5cef1c39c40d5cee91ea9856a48c91d", + "aa00cb750bb8a0aabe600248a31fdde681e59afad82225522437e8966692127722ae26271d280dc3c7555d5144395ff7", + "cfbbcfdc0f2c1187ddee831993d230c8385f487580ab7a151c4d90e24f340ed421ef50311712e65d546f2d15186ed6ac", + "bd377a37cafb39d64d1554405cfe2c518939b09d4e18d2d4df448c4190f101cb2b0d36e7013ce2c2924217bceea48fd0", + "9c602d07928047d5aa81e3f2221ca9d7ff2d03001c1a2954b32e1668d85c1e05c58dc1bc15a6c21ea0707d764bcbd176", + "2b746d69c5ba3d7d877f92282dd5a93d8a604c26eae87b5fd0733911f0a7617c4428b210e2dd1c6586e79167e9113e47", + "4ced74574c94849c3ae2411f702987ec48522313d6fe970bf7b549dae1550a68b256a1ef3d697734163724e2fd1a29cd", + "2cab6bd2d2927e2095b22d7b04a34c252176f5c0234d3b67575a81df12b94832e05bdb9b8efe74c43e59b7d42e4514a7" + ] + }, + { + "participant_id": 10, + "ephemeral_public_key": "046d776b7355111941425f2e69fd9059139c4168f322ec299a798a30a0b35c66", + "vss_commitment": [ + "50ed6094879b72b1f0fa664c3567f8286256ff66490d5ab7ea1a855cd462ed27", + "c6bd58b6a980274eaad1ac983b508ebfacfeeefaf0711b017f18c4b53ae9bc27", + "aefcda47b58ae756debb4ee5d2d788dc28520e20acd4bccfa8672fd5ea760924", + "adfe712418b7195a85a6bbd73ab6eaae0836bc85d286280ab94f7ebb1449c42c", + "c24ed11efd7af32656f9cfa916268e6353dd2f83420611cf9408fa49de3a67ea", + "b46a06b89f15bf3708926422a655bd351a206c36c50b665f1feb5115dda34c7b", + "4c606cb5a24e7db824366cece763b0e648cef83adcd809f65ff647a3c947d0f8" + ], + "pop": "af65b861d4b00fe55420f43aa4a2f6c395f6578eb9078755e77fd2a703ff9663c3da40b329beb9180f1375e6bba4f1e3c1df96520fa4f9f1b8fd2e9590552806", + "encrypted_shares": [ + "776dd600ffb97f314ed4b740f30dd7d23ba83a29a5ad6729e85e9463264806b0c53ca265f4b457e36b1e99ca00136809", + "f4b5a510a7ba3acddb7e5af6cbc1d80d605c49b17e5c82dd5469301b9252dbdf86d02b6a78f5ccd7051c09d8b6497b62", + "f7955c99c52adab77ccc869c3413c7aef87ae3e32b95199fd651bb3f944724486ce56b73fe8c397bc50f1983f7547ac3", + "75a35476cf54d5e510e379dcba9a79f5021443def9a4a923d41f04c7284b48af60d2c29345556dbd0ab6144c24ca1512", + "dcb496435f9395597f22ff577d72b316a1f59eab3a2ef08c86c2f16c245ef92c1cc87633b00f8e125fa82d28f6a9918d", + "a8c544edbdd7ce9d86baaeaa025274095edfca7046834836780269790a375d86b89c9925839f01493d56203e06ce5e56", + "47b532e0293ae0635c342758ef916572418de506f7bbf5797f3e9120dd051f2da3269613f2a9be77f286ab3e5384a4a8", + "d743e2fb22a2221621301bc700487090f3ff0674dbd3cb34a31f20a6c8526ff6eff1258c257d68ce45f9c98c62b3769c", + "c8d5643c5dec331313e46a1334212c20d166a1eb553a59b2d63ce17912e71aa77b65e8ba2a077cee685b79c9f5ce09e3", + "910027bbc68f54473a4a8810e5cae922a9d3f03b250f23a18bfdcf25c1831d02fc66dd425feff6fb22cce8fe49845784", + "ef0ce7493ac9308bb1dc7b22a94798ab9c757cd22657b3d73ed763c5d65a2ce81e77d2f9bb95520dc2ae6c93cc2936dd", + "f6d80a12324c3a50cbe9717e546f4a5ef579ccc36bd6bb3e41178398c3dfc1903f8e173a9d3bf7a2463c15788a6926cf", + "fc3da8ac491f9e74c8ac84c1f3ecd70514f7166a2015888ad87b0396c857b06544ef74470c50ebaf0295bf90bd1cf697", + "fc06a1e4c88e2272348552691d8c7f79723b90b08be01788b14e04b7ee16a7e94cff03794f1bef7f5e7cfbab2acfb007" + ] + }, + { + "participant_id": 11, + "ephemeral_public_key": "c7c637f3322e21b93a61d7f08df232c276bb4291bdf21601a6701ef7d882f3c3", + "vss_commitment": [ + "b7d488e5abc933f36cba7c5b0fb11cd13d9446a24067716a2848b1ed36c955ec", + "0b6f1ee40385c09e03773e6061ae8bacb14e8e57df661ee6a88546a0f4629749", + "b2a99bec353262f120eed04546182b430c8441646f725ee2fa1d75ab2d4b586f", + "137ae83a1a7ee33abe1635e96d6ee2ff7c52f86e37721017fe9ab4e419998201", + "0b2178e228d5085a59cb436ba86399d28fac25971f380477ced7849f63985879", + "b8150ef51101b630a405737ef38a8e7b4e0d4ff437b389b167562e25022a284a", + "3103fd0db65d60047062f2bda799d1dd3af103babe07cc015d337f908abfea7e" + ], + "pop": "a28d02bb9ea5529eacfd34e1f502d63e5a0d786fde4c840ade0aa9163ab86868ff3c5964cf55a65e799a32a5dd2779eb74242fa155d7ba59bed76259ff6c3f0c", + "encrypted_shares": [ + "0e6e7ffb5df7e9e2b2f58d3d371c5431cfb5953ed180bdde2c9d7d1c130a6e31f9cff1ad84294e2530ec79c3a0a02fe0", + "97801309a0f1000d856ee0214d492eaf949bb42a53f931aa1ea72d005bc7a375c80e21bcaea1a275d6706ad9155d41c0", + "6c0d93f91a12f2b1f79a86cb12cdcc3aad11b40847561c326838693def41bb9bc58bc37a340e0d8cc76b87465f14142f", + "56ccf959a6be369f9bc0a22de3c15388dd05f86a3635e0939717fc1e20e49b81b1b7630d8e47f38011acdd9d9b22c488", + "bb3930ae717d8a37c6215f3b3dbf01b4b780f2fc222e4609e29cf10a9a259a313046d9fbd4fefc18f85670f6f9186a81", + "496261c02769750dbb71d9064c87400099f6cc1db379470f173fdd25434960c602741c81336d1448b62f5df9a2050742", + "7bfadd2e5f35f0ef0eba410323a413fbc4c3fea6748d032d3599820acb5520fda562aa7f7b99bc5a4b1b28fa43e054a0", + "0afb71f3a9f6b71bb5522b92dcd5c86e32ab534aa5a52f59ec8d8efc90c3e83358b1c99f4276f590a3fda5c7da873760", + "11d00688d12231cc1e455253327e58bd9030c1a503d1f3253d42ce327fd5a0f9ba4eec38425f7b56556966aac48f0cb3", + "b441b4fbf8098175b33203f1859f8b1b26314069516a35f4e4f28b13d845568310004389706f5561f86aaf39473929fc", + "6565d40221095e01075db0a2aabaed424178fffd57e1e4a633d26ac6f8d8fe9aac480fe7728f03d1d971a19ab4c4eca5", + "3d9fa91cef6589f0ea4e0aab01635718cd899190cf9955e974ef071d3ee0f2b658415e6768a713fdcd365bd7d7ecae23", + "4aba04bb764f483876cbd6b289b40dc68bbe0ab3abf7871f84c34698196702b1ace6c6ba461b08bdbe07546906c18c03", + "54567a41c0db163c6317d4b23dce5e9259353fcb22e42f9d75b5a05f359d895ff9526555537c1a8d7796a329d596b76f" + ] + }, + { + "participant_id": 12, + "ephemeral_public_key": "28ffa165a337a6fe8fd74d63a094784299ceca4a6c489a04a9d996b64438881a", + "vss_commitment": [ + "170c09025b04e53ec0e866f0c071583adce509f5026ed4e58a8f78f8d143e248", + "b9246fa3339cb000445f04ae3f0a38dd07f3e6238153e87e15f8c90a944823f0", + "22fae575938a481ebf5b84323adc56ab70953d38cdbf49def1ab0b63c609639a", + "9e37660b5de64b7d99039f57b7bef9624060f7331844fe0a5adad760f302cd1d", + "dae217a58c573a562543283c4d067b379b165c26d435e746adea8180624ba6e4", + "d49d8e123cfbc7114722c91b25128c7e0db78207584e7eb1da1136059d1e2d89", + "adf0c75b8edcd09827ba888a1bced3d88bca1b0ca9adf7718943f64ed788155a" + ], + "pop": "5b04ddb6095fb762e1a9e41cc7ad072b3bc29c38a6c80527c01a0c251af021e57ed76b2ab914625ad33e168fe2004714c82080f26b3e4d69610382a1e0fb6a07", + "encrypted_shares": [ + "7d873e3e309f798994887b992563f18510326af0a040d632b343e45dafec1c79d905d040116b2446fd8d428d1bc200d3", + "11aaab8862f75a2362ce7a62c4a3dcba633cd2ec23b4d7753b3f50e2cb059a9ee39feb758c850de8332474cee341c5ec", + "aab7b1faa74c3c40b78dc8c8fed7c20d75cc418bedb6890b0826bfaedbbfaf54cdcf6d62be03184dc47f0c324fe5cfe5", + "39ccaa60fe7b8c717eebbb4f3f4a214bb32b4845a0d5fb42e8f36727d9c98d041a8681f62b6adb8810442e45719450c2", + "d4e9e27596e22b915171cc0320217c3aa814df1cfc796cdf42defdac09e8dcbf6f996f79d2e377ca97637c0b1f91e00a", + "b607c069c1acfcf15fac9963fb9a0844f8c8a5b426c7ccdfc84e9230ee87b89c1ae6e99e436faca77e950d18b79a775d", + "70f4d50e5b9f5ee0d25767b957af58ca2320984e50489ce2c38a150c37814a56df13476c01317c9732131a0a598ce319", + "1509f71256e8dc7641a7d51a90ab242709fbc22fe73ba3e88d22db8d2564ff97957c91fbe0a98be2547aac50b5f6a245", + "bed5ac4982d0798a0165c123d9b778fc913b1aa9c2660c54b92d90143e8dd6b920c484269be987b3f5c2a1d6c051e752", + "7eb93d3977ead48f3d9e2d52039728a1b464c0f5d2090df8dd38f5b54564c442824a351f6701dcacd605e740e0d7e19c", + "05117bbd6c237a1ef31990f1adf7f47cf1410b4d08dc267eba4f8041f1b5f93a4da595371076d8bcdb6948238d7d9fd4", + "5b49f4d6ea1399f5ad4d4572e8d8ecc063025c3618cdf3cab827da50059d963734143857003644558d9e85ac256f0243", + "4d2939154aa8ab77ca9922caae650269c3dc9d5c63b1712be9f5acfbd9323bb29c2a466ebc6ac801c69be150d724c298", + "cfe69b94f54c1a6981a0011c0586a40963c78a3da0e592e70f685b67aee1ba72a420b8fae201e6ce5c51bcad3526382c" + ] + }, + { + "participant_id": 13, + "ephemeral_public_key": "1902b9fa56012a0f1ec6a81fc92cb231bd344e0e026dcb3ef64308c06a113165", + "vss_commitment": [ + "66952760f7acd6b3e91ca4886a80f0743a13fd68e2cf132f6bbd3d66b8e9c78e", + "0a5f2e38fc3c2b29154936f98507571d451efd763ebe4abd79f18a8397ad7703", + "ebb94efcb4f3f7f8d11347c5d0198db175bee6b20088c6d87e9400eede637349", + "ed62766da9eecc81eb91e294a0c3ca6b24617be617e029988859ece191961102", + "e388d21f0b0815e8677533482fb2f1a4aa9dd6c880eb95292ece52f04c2af632", + "56fe89800e07db8007553047d7f8dd3121080e34cda00e546b64ef254ac20cd3", + "396bd279026a38d1798cc2aafb46f86684ec84066cb7048343c6b4ed22e03772" + ], + "pop": "1cdfba449defc45cbc73093c49d18887fc0bb4044ebb22b901c47c7f33634977c208aafe5267857b5fae687cd89add6dc81175d7bb6c74ae8f1253d29706a50b", + "encrypted_shares": [ + "456b2c3aed159f290db5020362c87ff850ac00b8b0fb2a68dabb5c9fe8a16ba236daa3a8595afe9b01b63357d7ef31b7", + "5e32795f9d9295b7a08d1c5b0da55dedc4f7529e65100f3d922da04eadb80e7659f5f07dd132d24b392328c95c220313", + "d5c205bc9bd512128fafb2178c41e4d6f8827d1f53e8eb87f311673578a2cfebe67a95f231026a188b3c970bc1ee3b50", + "1b26be6193e02d2faea7380b77c2dbb8fef5c9d01a340e5ea49119b3bb360f99e3e954031586ab4120c7e49435b6f11c", + "6d50513d775bf531272167601628df79499ae1bb79d4146f4a57c24d50f87b985cb18ce5e1ab553cb01c4a59efeff9a6", + "84fbb5dacd4717505ce92e8656b023197a0859d2abd3dc88967934d6dedc698fd352c9b53724a3f3c410ac4a647f861d", + "1d091fcb8e50cf21413126594b65aa9660c9e2bcebbf05880ad2d137f2026a50e83ab571fc4e4d6675596190f3e7fe9c", + "cf6745f9342f2d1b03d6626b774fd131e0eb1daea9097dd30813e52d491ab338ccc9a7ce910c7697c7b0546810cf8fb5", + "96ed6df53f39764eeaf9b153b3dbd780885b3d557161f7d887ff7abcff8d7e7fc6457543d9877ae0ddb026337ae68d2f", + "6386e0051ce1bd5ee3a68b9d621554933b6621b696154855d924ea11bf0427092987bf1584fcc95cad03c795655b2075", + "75303d657a6a8217e7c115a614707eebf67c39c9b56727473500554664aaab5b76d865a655ae7db5a0b21a42d3c8822a", + "ea3670dc26da123ace13ea0c3940549f03706d55048ef6bcf9b34b21d1044ebc765ef53116447dfe6519969a03a211b4", + "e9dd1c5b8f65ced0fbbbb56d0e6aca19ffe01ef4769b6b5585ad018935d830ccc250bccb1e2ec21fd1dc0f4313a0f38c", + "87aa51b4758fe82e71d13fc3cd711bc7e83a001baae749e32c313cb30f3f43ba07191bbcbceab372b88ddff11cf043eb" + ] + }, + { + "participant_id": 14, + "ephemeral_public_key": "7a96b83ebb29c73c5dd728e2d90ca82a73fe4b6e4eb3551aff4985e83acc5d09", + "vss_commitment": [ + "41e386a282fa8130686b6daca702a454fc49aa6b58d8f25c0fdb35556a4e5076", + "25e4c2c64fdfbe3e95ba3dc721901584316c20bdc7042e5131ee67f97984dc82", + "83c6d42db01e6305afbcc32ee22876a6ef9d3ef72f6e80996460b21be43b076a", + "15bfac3955c11453e9cd7866df965d7cab2f3ffd328d79ef118a606cc159997e", + "507e3aeb3cda6d20dee7f300f56204033f9ca6803ecda929c4e1b1135a5e02ec", + "4a34153f93828c0e11bd12ee5354983c0702443a200509c08b3c5b03f6914a25", + "cf86e9af5d9346cfa85d3f0ed4a2f5caafc3eddb1e4bdfb2aa47ac556b940d0c" + ], + "pop": "a86a7e6789780852dbaf27b4774e992f34324e3bbf720909db73ab60948bc97a2d60000c4f962218a3faff9805e402f83ec9bef9d5cb8457489a2ec5a6f1c30f", + "encrypted_shares": [ + "5c3651ec6ce24ca39e9762f14ef2f0bc3005c9a9249dc9ae2ff766047837f9870e86ce93507f4cfb986dc082a4335561", + "6b7d57767b1e19d0a2fb47168651f134763c148b8759d238e20c2a466cb2d53960c0c3c04f3fd57853a8c2c967c62657", + "6674a2c7077fe97c00c541065052cff81326d17c8665192e4450bcff087405d41cd2ee3409eb2f172900a9ce7a3a49a7", + "bc1c2fc3b8f76eb1825d3581707eddfdfaafd27bf47f9a23c5a19803c77a717c4d1239e0af2a0bb978a19f5e8084eaa7", + "1a3d7edc3849e399ef828b3e0642890d687c9f1c45955c9fd49b772cc652aa2b23a39e38334df487845e5f33ae86be46", + "a74caf41cabf5ab2dabdad91031b75990bd9d650b9affde09a2713dbcc866255fb154aca9211121d14bd622bb5867338", + "5349a1e8a61e3b3ebed7275132fff77f27eb21fcc63235fe01ad3055a6f98ea481c7faf5d2a82835ee6c55cfadc49532", + "f2fcfb3f8bcf55b84e12a15198faf3e089fcbc9af53ad358dc243ec5c17a35f94e4331bf6d442389be71f0ffa0af03f2", + "f2555d4e1aa8bfd94cdeed14b49687e0ef515b414cec830edffd6c32a1db6b2f4e8cc2811a5706f70fae9a8bbda96339", + "9d2b8c9d31800ae633e5e06f119c4b74e0cfa4c11493dccb0f21c77255fa03de2464dd24c3bcd5773c758674f9442298", + "b853fa24dbf3c29000ff4c513069943731409686a1d4967dc1c9c95563313a584c40c6a5ed8fb53f72679176ca246663", + "91f67305d0d4df7cf48a0a85d365163df7ce97bea5eee8dcb03e8b65d8e663334d4c7882731548794280a953e96cb3af", + "1956457f7d8cc80393631ea12ab64073f19314d0b68a7c263428ffade35070a15a5ac2f4ce4a09ac7d16f068487cab96", + "e2caf932169e8486dd990ab71a9e03af4ff2161853b4373919dc633c0bbf6dcf50d59ff81fc8d5f499264e0ea9d48939" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "5ae8e4e94395ba0838c4ba4a8849130645206e71aee6c9bdc12fb56edbfcfe0c", + "verification_share": "fa590716e0023453938b48e08717ba09446c3619431c69c777c20988fcacc619" + }, + { + "participant_id": 2, + "secret_share": "c69d4ac4d26e43318de29812ca720a5140e3bb7469105ef4e4d841ac987e3202", + "verification_share": "3889ff3155acdd6d481605ddd4ee63e1b080956186c055b19534ca97c8d42405" + }, + { + "participant_id": 3, + "secret_share": "52d315dcd6af952d6859db1bd796f90ad21117a4fc0c775d30810d2ef9ef9300", + "verification_share": "722e79c780637a20bfa188c09dab21ac2495c78927b768aa08e57557b3b708f4" + }, + { + "participant_id": 4, + "secret_share": "900b3bb6eef0c1b9a21196153b93431fcf4154a24c7fbafcf766eee40782de00", + "verification_share": "3b41c48d577cd28a2953ea1c1933c63e91f05317f15d21d21b2b19df84142f8f" + }, + { + "participant_id": 5, + "secret_share": "5aedb52a15bf785ba6b7b3c8cea04614162f1b1c2460c7d8e003986628d7de0b", + "verification_share": "205c0151dcd7d9bf04c75938ed0cd1342ab1f3ad35e61e81d62e5740c112a4ed" + }, + { + "participant_id": 6, + "secret_share": "4473e33ddb76fa45376158f2c6d28763a8ee43ffa75bfabd38c5639fef67b902", + "verification_share": "07d279f5bb2427088e56ca772e155c9f81e68e81a4d598756b73ce876f059717" + }, + { + "participant_id": 7, + "secret_share": "db1e9d5f393aea86ac4535ee3596b774c9b958525ec4b14d8632aad83e347c0a", + "verification_share": "28f08574232f539352bb1fbddcc667531b3792621ac32f34e9f5eaf25839a208" + }, + { + "participant_id": 8, + "secret_share": "8c7d13fc645338e2a6379f4642cbc83121513cacc71b115a5182ac13a1c0fb0a", + "verification_share": "b498cd2daff4fd916e84526bc308dbf0e5d248bae30ae72543c880d7e40aa28f" + }, + { + "participant_id": 9, + "secret_share": "1f2d4b898cdb26ffb7077dfd6bcc7d7ce4f7f44b8b30448e239d0eb9ea5ffb00", + "verification_share": "35231bef16e2991f532a42bd50f50e237be8c58ad4f0b25e704a43d26425d058" + }, + { + "participant_id": 10, + "secret_share": "1c79f3879fad1db5e7c8a41839d2bd0d02079cd035d24163c18ee19c1bc9a003", + "verification_share": "939c672f7382b03ce0826d6fecbfc8abe0e540a72b51aecbc5c8d5e1bd93a8d2" + }, + { + "participant_id": 11, + "secret_share": "07658cd43c0860d0ed939f1428ad91d3531872918a1a0e619b653e5783f9320d", + "verification_share": "022583f552659100e1b7bad7cc8aba80227a1b73d3fb646a83004275376fe37f" + }, + { + "participant_id": 12, + "secret_share": "dbc28a309af7360fd3af9055dda4bf74d5c91796674c7cac778071f127632407", + "verification_share": "b9ed1bfb7844a158685780659e2c018884b76a35387289914f849acb8750114b" + }, + { + "participant_id": 13, + "secret_share": "d78184a64a247eff228348f3ac8227e5df18eb2e3c4870e1534ab6e76e676809", + "verification_share": "cf098dad4e88dae95a64c6b3a2cc057134df15251d6ad09783bd68fcfafc419f" + }, + { + "participant_id": 14, + "secret_share": "8146df6da761b69ba2f3e73c11116b106955892d12969f397f64837f081e140d", + "verification_share": "058b5bdeb82562287d086a103007a7524cd778613d1fcf574b9970d45f6cfada" + } + ], + "round3": { + "transcript_hash": "42d65bfd93ad920dfcb048b90ff5a4b45d7e4d48e559c7aa89573d18d50758ad24bf3242bd87f445623aea08aee37edff4b45d2ddf2e6431d170b8a80caeb7c7", + "signatures": [ + { + "signer_id": 1, + "signature": "3b1367290e890f881abc9030b9c655f58c1ec10fbb905e3e1488d122ca41d7c8def539dd230a9b0daac62443d463011621ce2bf74ea5e235a56c1a550ba6f90b" + }, + { + "signer_id": 2, + "signature": "ce6a61cbcf33dbf2235d471c99fd044107c77cf06b2a4fa11e8f1fdd5e429b69a41304271d23ba1a21af6c1e0dc3d1847ebb630aeac19f3bcf074f4289d1ea04" + }, + { + "signer_id": 3, + "signature": "7c86105ad43b7f45b5403e77bde44a4325165127fec30f6e739f05eaf11e077c9b6af73d5bdc103e42beb253bc71e921c054a564391ba9aca98e750d890c750b" + }, + { + "signer_id": 4, + "signature": "4b694069c6302e73f22db4b640a6aa6447003334d9c5adf2d6e20ecd01a581a4069247f9297abe3526ca17efcbb75bf1b074b3a873b98f78686623179f77c50e" + }, + { + "signer_id": 5, + "signature": "0a6b303c24f0728da8bb25c3447e9d13d17496bfcaa91a91c05fca2aaf26236f9338866d83be74e79536162f05e4052fb56436a2181060c3af78189ed21d230f" + }, + { + "signer_id": 6, + "signature": "1b59b2ee70888d59667b8ab5fb2b2951d0905c83cd7bf8284d691f93f1c985e2d450c0e857e3eb606c70aa4753ec7213c573bc4f6b5e7f72adddbdab6d9b8f0c" + }, + { + "signer_id": 7, + "signature": "9cf0900dc7cb64e0e1a778fab17265a54e24495d1baae4023c0eef22dc8ae8e3e0f75a24306ca124e99b7f36f296ae24921f018b49b97f46944a34d4a78f780c" + }, + { + "signer_id": 8, + "signature": "ad80f1cae8f35461f5771a7b01f71ac6c21dccb1c3059839ec1b966cec669dbfa7ae6953167d61bbc93060e4694259d76a492ebc0c09e826bba34e18d4fa1401" + }, + { + "signer_id": 9, + "signature": "700c13cb118fb25edba791dac2c01ff8d45b40989ef5956a8f09953af732a82069b20cab9b4cff1c3fb0aae295c1772ddaff0138018cd0d32598354990855302" + }, + { + "signer_id": 10, + "signature": "5ec0fa59e9e8e7d7d9301d145f21e36c71f949d539481e03f98ecf02aca290c0f768477d4e25653d0f2db0081192f03f174042c902cfd6403600becc9e7dc705" + }, + { + "signer_id": 11, + "signature": "a7b0ae91a47dbabe7197d420da07d00618065b03b97bb6b0b2f9d60027fac152bbd8edbda81895cee6e988ffada5d5784b5a5fa678fdaf63e5b064bb50d7020c" + }, + { + "signer_id": 12, + "signature": "c53ad1c1087bbf76745ba542d1b46108a8175a93483309d0fc4e928a74099d517f7bdfe708641fe8207335aa3336237f14eb93acc0065a55d4e195153d8f7b09" + }, + { + "signer_id": 13, + "signature": "7fabcd96d266e30736e99336b0238ff18f7cf98d2d591edcda75616f7183e6648c7f14701c1adf7965806015f3b740ce4e9b49b83710f46d82d58c7c778af706" + }, + { + "signer_id": 14, + "signature": "52779e41e7bdfa5aa5769d705b56404926bf8808f3db4cd264e56a04aed8f08fab2771723a982f6139861bd66d32446dae20726882d1fed841d1676488669b0f" + } + ] + }, + "group_public_key": "d3bd4888ca21d85a346d97ff7a95f07a22f2060f8566ce4228e61f214de7730d", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "31aa6638fb9526fe734101a432cfd8a02db6967bfc9eeea5f18281c5f11761e57acab35201c7fb0857bb94e897af538a", + "25bf5df8189cbdb175cab533b438c3a8302ba442dea605771e235684fb5183e03812b08d994020ae7ae7134ffe080d42", + "7ff806ef14fc0fe79badd46918dcdb6acddc2de6080b4ee847586564d58d9723b3c876b3777dc38a41bfe8a000c8b7df", + "8ea087b8ad7c163085d16d5efc03bdb4c0ff1892686a8d5dd2a2265259e46b77555457fae4f4da72f3f3b523323018b2", + "a57ba6db32bc68c0d3d5672774a106031ebee2e3f64d18c4655d91d4628a10c5203593f62340a8cb3361d36038026696", + "1295490279cdd0c22d4cb078d037de263357b9217be5bc3614f2b06986432938edbc49bb328af74e38eb7f19d419b0e1", + "b2c363c2a0a2fb73002a34ebef38ed49ecf07babaf04daeab561d3294c0d71cf2d432f75f030b89fc9c5b995ca1020f3", + "c63a8cb52cdd625574a2f7c116b922c79a1da9f6acfe4bb2ff0a2e3d08e600e7624b3d54109dec201001643452b570dc", + "61c293eb9ce2ab514dbd8f76402763c73c514a646d3405b577fd633eff6d83b0ef6f7d90d13dd8cfc9c2676225afb104", + "776dd600ffb97f314ed4b740f30dd7d23ba83a29a5ad6729e85e9463264806b0c53ca265f4b457e36b1e99ca00136809", + "0e6e7ffb5df7e9e2b2f58d3d371c5431cfb5953ed180bdde2c9d7d1c130a6e31f9cff1ad84294e2530ec79c3a0a02fe0", + "7d873e3e309f798994887b992563f18510326af0a040d632b343e45dafec1c79d905d040116b2446fd8d428d1bc200d3", + "456b2c3aed159f290db5020362c87ff850ac00b8b0fb2a68dabb5c9fe8a16ba236daa3a8595afe9b01b63357d7ef31b7", + "5c3651ec6ce24ca39e9762f14ef2f0bc3005c9a9249dc9ae2ff766047837f9870e86ce93507f4cfb986dc082a4335561" + ], + "recovered_secret_share": "5ae8e4e94395ba0838c4ba4a8849130645206e71aee6c9bdc12fb56edbfcfe0c", + "recovered_verification_share": "fa590716e0023453938b48e08717ba09446c3619431c69c777c20988fcacc619" + } + }, + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "976f8781ac89edb9b14f00b42915f36add6fb01f795ad7048e88a7246ab35304", + "b00aff74021d100b0eb587ca406fd4c1af2ffef9146454a4c35f547f709e8403", + "5d3df9bdd5e6ff1e43f07d2d81791cda76e44e6fdbba980b1231a9ff39e1ee02" + ], + "static_public_keys": [ + "2f35ea108d2b43a27d2dd17f3f0d0e44422514d91d667af850fa206a85cde4f3", + "d34665a229edcb3a8b822179868138c097bbf51316cbea636e6626b152742812", + "e4f58f6834e2315cc79cbb142ffa2ae0700f835ddb581818e10553679c32fafa" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", + "vss_commitment": [ + "2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941", + "590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1" + ], + "pop": "a7abfa107e2ac05ad11a71fd494f3f2baa177253ef9c7594a37da917f2a84333bd7a61ae269c5624b8eb49d10e28a78f07718728f59b2bc626f9d07e653faf09", + "encrypted_shares": [ + "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", + "156d49dae0cb8917f47e70e75d7eaaf3251d160eefc294f9b5eba5f918ac453a05ee5351918384d62a43e888659e880a", + "a90c87b8b6cf42cc308e488f50662f0988d4229d68eb00e70916079bccb8df591ac2732b174e86a57bd292fbf485cb94" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", + "vss_commitment": [ + "3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d", + "5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd" + ], + "pop": "2b8520cf63b7e857d02c47367dd20c54c27dc2d96a6dcff3918bd4b8616bb3d01ed4c7d2e3189955c3fb4f18988f56e3053fb2a62d3d0cac49a860a22da90700", + "encrypted_shares": [ + "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", + "cfc83a3f386eeec4789ba05cfe565a3240b6c1801e80a4aef8771a23c389b526f7b2b601020d576e2f72c39a4b2c26c0", + "fb6cec9a16d2f536457c96afedea704a5228c42365b34377c04f7c9e953a45d09ce4a40f5ea62b63fbfcae9a452b56de" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", + "vss_commitment": [ + "74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8", + "ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d" + ], + "pop": "af79a5ff31a6536b2d0b333452c13ff0089192aafc9b10323e017923ef8e45c9d5a4cea1a5f14c86eccdf8b3c0ea25c9d7b9ba6b071c0cee0a5374f95285d003", + "encrypted_shares": [ + "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d", + "b151386d9e5316c52cc67897c65231c753a0036d974909403220f5168c55aaea336acf361b273cb81d06a5117c144ef8", + "a9fd00d94fd411354947c995c054c9d842aec6ca351450256e28198ea3d7b7fb6a939626e0a99c6f456bae3aa243fcb3" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", + "verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" + }, + { + "participant_id": 2, + "secret_share": "6723b951f1a81f143f11eea4ec31413e76669d049b962b8946a78a35cf97cf0c", + "verification_share": "0c37616b618d49bc5ce2db1cc0ec4177890bbefa2caed8aeb2cc20aa5e872ecb" + }, + { + "participant_id": 3, + "secret_share": "0d2809d5c126e019a3bbadc2cc132013eb6141f7f6d1f062408ef58b89ad180d", + "verification_share": "9b992f1e668431df2531c8a29defe7d7a5897862648c8efc92bfd9464dbed5c9" + } + ], + "round3": { + "transcript_hash": "c271c24bac1aef846815a8c43fc6618bb6d4367edece0c0937be417c3948ed69671629784f0950e43d63b0c2af66a5259ec2fd0b27e70b1d0cf49a127fca1970", + "signatures": [ + { + "signer_id": 1, + "signature": "cd0c7695346ad9b5be3a51652c12dfa4aeab9e52ae15994a4d44b06683fbc390677f619be7eb8abffdc6172f8acf4aca9ef062a80a0e7663c2c19ab5e2848d01" + }, + { + "signer_id": 2, + "signature": "e9caf69275d884494d4730d5dbd20fab0bb242edf0771d2e0b9ea9cbc74a0e1b2a5c389dfc19d69c62cf622a073346e0111664e4e65e4d0b695a3e3968a72503" + }, + { + "signer_id": 3, + "signature": "3a50cb19fc6bf1bf82d58fda0e02ebd535c549f1dae01f579efe010250876a6410dda05c773ec8dd1d414a6a9bb8be0a4693b08c59a32c20d60e51cb59698405" + } + ] + }, + "group_public_key": "ec21f5ee46aa6e11ddc8d3f42af51e6636b86de0243229d848da48c3b604964d", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", + "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", + "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d" + ], + "recovered_secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", + "recovered_verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" + } + } + ] +} \ No newline at end of file diff --git a/frost-ed448/src/keys/cocktail_dkg.rs b/frost-ed448/src/keys/cocktail_dkg.rs new file mode 100644 index 000000000..c1f412f81 --- /dev/null +++ b/frost-ed448/src/keys/cocktail_dkg.rs @@ -0,0 +1,124 @@ +use super::*; +use alloc::{collections::BTreeMap, vec::Vec}; + +pub use frost::keys::cocktail_dkg::CocktailCiphersuite; + +/// COCKTAIL-DKG Round 1 structures. +pub mod round1 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 1 and Round 2 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round1::SecretPackage; + + /// The package that must be broadcast by each participant to all other participants + /// (via the coordinator) between Round 1 and Round 2. + pub type Package = frost::keys::cocktail_dkg::round1::Package; +} + +/// COCKTAIL-DKG Round 2 structures. +pub mod round2 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 2 and Round 3 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round2::SecretPackage; + + /// The package sent by each participant to the coordinator after Round 2, + /// containing the transcript signature. + pub type Package = frost::keys::cocktail_dkg::round2::Package; +} + +/// Performs Round 1 of the COCKTAIL-DKG protocol for the given participant. +#[allow(clippy::too_many_arguments)] +pub fn part1( + identifier: Identifier, + max_signers: u16, + min_signers: u16, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + payloads: &BTreeMap>, + rng: RNG, +) -> Result<(round1::SecretPackage, round1::Package), Error> { + frost::keys::cocktail_dkg::part1( + identifier, + max_signers, + min_signers, + static_signing_key, + participants, + context, + payloads, + rng, + ) +} + +/// Performs Round 2 of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] +pub fn part2( + secret_package: round1::SecretPackage, + round1_packages: &BTreeMap, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + extension: &[u8], + rng: RNG, +) -> Result< + ( + round2::SecretPackage, + round2::Package, + BTreeMap>, + ), + Error, +> { + frost::keys::cocktail_dkg::part2( + secret_package, + round1_packages, + static_signing_key, + participants, + context, + extension, + rng, + ) +} + +/// Performs Round 3 (CertEq) of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] +pub fn part3( + secret_package: &round2::SecretPackage, + round2_packages: &BTreeMap, +) -> Result< + ( + KeyPackage, + PublicKeyPackage, + Vec, + BTreeMap, + ), + Error, +> { + frost::keys::cocktail_dkg::part3(secret_package, round2_packages) +} + +/// Recovers a participant's DKG outputs from the static secret key, transcript, +/// success certificate, and ciphertexts. +pub fn recover( + static_signing_key: &SigningKey, + transcript: &[u8], + success_certificate: &BTreeMap, + ciphertexts: &BTreeMap>, +) -> Result<(KeyPackage, PublicKeyPackage), Error> { + frost::keys::cocktail_dkg::recover( + static_signing_key, + transcript, + success_certificate, + ciphertexts, + ) +} diff --git a/frost-ed448/tests/helpers/cocktail-dkg-ed448-shake256.json b/frost-ed448/tests/helpers/cocktail-dkg-ed448-shake256.json new file mode 100644 index 000000000..b39118b59 --- /dev/null +++ b/frost-ed448/tests/helpers/cocktail-dkg-ed448-shake256.json @@ -0,0 +1,1015 @@ +{ + "ciphersuite": "COCKTAIL(Ed448, SHAKE256)", + "seed": "b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68", + "derivation": { + "method": "H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label) where H is the ciphersuite hash (COCKTAIL(Ed448, SHAKE256))", + "labels": { + "static_secret_key": "static_secret_key_{{i}}", + "ephemeral_secret_key": "round1_participant_{{i}} (RNG stream)", + "polynomial_coefficient": "round1_participant_{{i}} (RNG stream)" + } + }, + "vectors": [ + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "8f9a9270561d0dbaafbc08828f30d41c342a8d4fcc5c364d7768ba75b168e4460e0a353d8fd189a3c4a6b22ece601173026a888cd4c46c28", + "e0354d9c7ae7016aa2de07c9eb0b6075205ce553ecdb01d3c1d89e7ec38642dfa2fa60159d76cfba79b3027f56b21a72dd082a37fa7a3a0d", + "b6ff6734be4d67532c34aaad94cae9b6451cb45130a5240c66d5261ac322de02e41397eeb05011793e5a97a43eee6ba767b453725fa90a16" + ], + "static_public_keys": [ + "9950bc0b58b1933452f595b8eb6de04a7d4dd7fc2301bbdb05c0ff440d38928153df7d7c400e19378b11571b4e1bf96c769e35d3866ac32c00", + "cf1a179b82836ecd0d4d5c539128cc2cf5db9b3bd2a519a5524a522cee47ff454881ba5db9d4047857b0de096e83dc22b8132833a4edf5da00", + "a8f4d91d754e65a13cb2ac8fb824647d04c4b8fb644455d1aef16fe81ebb7d1f0a3d85ae60ddb1dcdb04c37feb2fddcc400803eed7ee4fa780" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "5cb00e361b4fb9899e697c9119954ee6653db626d871477d5709a32cb090c168ddb84f04fbeff4da8af843db873155d0a00aeef285ebd8cf00", + "vss_commitment": [ + "15e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a980", + "4c13a6f8080c3f08c36664400a3b960159d37193b3ee17e720411060670230e2c9c5e65f73cc2b7df3963c2e94903bb0694d2b088889f81b80" + ], + "pop": "87183bfa98556a7c5cc69c82267a7679f17e800bdd13bba015cfe732319e4f30ba6cdc128779d6d642ac4a718dcb0786747da65e1c56e10080f3b3fb3a37fc2e8e5c4da38a8562572c9359bc4e9c3c456a6b73da6d3bad322029061f3834fc10acc65115c4444e1ba42424112716ef5f36", + "encrypted_shares": [ + "4fd7af4723dba2d8764084938c8c84415816e20a51c1132446aa6e6edfe2e4702167513b1d328a7090b6c6dfbe247151b2a583cf14e701ce1ff495cab56fb1c39b6782fd13faade0", + "7080e0795eb4bbaf1042248c665d6117d1d39d1fd86d1376c3663a3813443815e0ab5b43202b1e9b3dbf00209388697200afc38126ef818395232326240ae096211f2c7f98f6c455", + "36c30714468f58256584af5281532783802f4efc286abf5548d97e0689df89b4f95e8e4ddd1bb2db9a53e7daf9d34285f976e4d2078c9f93a223fe39ebdb805e9a9c046e8dbda1c8" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "eda1980924ec258c7bf874af55dcd61267229bf0ebdeadf7b933a278b8c555896dca83c73aa00900393f53dd6a445212e2ea967a6e3deca400", + "vss_commitment": [ + "2d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a80", + "90c87d53ef1ced055c12de84efbac946ca2db0c34cf84189f9ff659ffa7c728dbbe94f7a53ddb3ae778fc3daffdd63919d7cb636787950a880" + ], + "pop": "bb042f76395f458209ac2ba947ec861fbb012a55657a94cac2effd743932964aa6a8ac27a368edf67b6c7c85457161805fac3ae74fee104200e71aba46fc3ab8f0cdff2da308ad912405895f2cd2080758a6f0a2bbeddd17c3263edc8d86b61bdda0fd3a413348b5930b7baba2c9c7df06", + "encrypted_shares": [ + "4ba50472a8d1a23146504939e7536275b56407a3366ee20742d34eedd301ce76503a32b4b4c6986e4ff2f068951c78085bf9da7f944c06e866d551a735031c4da80a5e7b72749960", + "1f57fc10f6b00c12cf7617ca48d48f4741837208cd733e14f2b9a1195db5eb694134d70448414d0b00ca894cabde49b448f665612c07955a8a2f3e3b1df2634185df46d32a83b128", + "1a951747fbc3b3568d393a5ae6ca0c5224713b7233f3079bba562a45386582c6ac9087c2b6c80d5e4b1fd8f72f6eb9de1bf0b1fed762b76fa1901cc8953247c46c298b43df323f56" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "c834a23189953612c35719f8241c93724cf636022bca8cc24087bc384fc8d00a37cf0e11bd6e9ba55808cdfe00df98987d7b10993b1430ed00", + "vss_commitment": [ + "aa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800", + "f61d56f5ad99f6da91d9839d22ac1db8fbf1174dad541eeaf0683f7e0e2e2d01af6eca2dc274d5e5d36393b16495ea7a2498978440548e0480" + ], + "pop": "c56929d3c647547a0743fddf840c5d8363b3b91772a40a19c33a2341a1c2ad6158d6ae7537ffb5e76dc35c93abd276c7526bcaf90c413d77003c98f93f4df09d8cc22523fd1e7524cc134ba9bc25114368ff803e2e108a98d76f1bf2bcf5974442325ca5939c09fb8226e9de86d703fd38", + "encrypted_shares": [ + "f17f9ccc4b6f1b1100abbf1ebdd79eae0eb19640ecb02961858cc1b75a6426536885806044891a6fd98e88ba7cacaea8bb39ee4b91b86cf0e5424c4498405a73735447f4d5d7e7c3", + "09078ebb9856a0b83b6f73cb6faca06b3bd0c399871b95c666414e56ef091f83d6bf5e6761ba7972973d782c4d92e8f4f67f233003a29750411c6516cc5744a081e477b90c1a7e8f", + "6739b2f76690198325f2b98d7c9f8be991ccd270fc439b0818506c29c0c55757a95dd20f2e88df993f3a4804d2d1fd652b2f2015e18c1085814ed255d968835728a0da8820dc979c" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "692d92730a66096b0a971bfe712cde3dfacb726f94894c68841f8daec6cbb3c91df1be4a811aabd0a314d2b152156485b12fba9657637a14", + "verification_share": "7dcdc0aac7e24ad54a206a03f93d086f3aaaa0a999207ca5ed1798b522f7600c8136021ccf2844eb69459390b579bb13f2c285648bc0afe780" + }, + { + "participant_id": 2, + "secret_share": "05103b16d59fde2d062f2c2995b847c813728d981bb125181fb8240456efddcdc19187d1b62c54906f5365c64fb2f6c96d7fa7d4aaceba32", + "verification_share": "89fa9c64c4f86d958be5a05c3e26d2aa0dbd44f8ac087a72c88d228e085dbec18682e891b15f6c640c25701d85a80f97fc6ab2a5365effa080" + }, + { + "participant_id": 3, + "secret_share": "aead8b0d0d173bcdac3777c6458244319de1d11259fdaf03d02cf2dce51208d265325058ec3efd4f3b92f8da4c4f890e2acf9412fe39fb10", + "verification_share": "e4850a66863a281ed2529a1287c8634907629f1de66eec4c87257acf383a4b407628d3eeca24cbd2c8bb9f4d4252c4ff8157832f8412603680" + } + ], + "round3": { + "transcript_hash": "a1310fa41f9763c1470173e93c1b6bfadbe5ff5aba7eeb2954f103850c41dc6d62b782b48fa24605e2ecdbb7b879d1f8e962a70197f7b545dcc5ccd4cce86331", + "signatures": [ + { + "signer_id": 1, + "signature": "0db443d6e798485d5fd200ee44af9823326082b624f80f3ef9e26f966a559244a17775a9323938684ef394b82659d30f5e4cb5fab2094a7980dc6707614faffe173bec7f1bdaefe69559cbc11bd0361bdd03c2166a22d4ac50637d04b18b1b4ff5f81a459a98e541f29dd387ffad56922e" + }, + { + "signer_id": 2, + "signature": "b6255b5a79cb16740802b742e04b0a287d86186bb511c37db7a55f5adea5d0d2f3eaf69d0461bfc854a9c528b5ed678948026fadcdbba20780bb08e2d44f4efa6e063eb18af34e29bc0f7370d1f637b735ad3499da32138286e13f744d7b527610ca99345ddd8a463649e768c1001be831" + }, + { + "signer_id": 3, + "signature": "ecb2359670cb1f6194929a84d462ed3569b5471914137f7f5d372a9dd60be8768e16a9dd64b8fede5c92ffde1ba2bca605e3ea9b1c1eefdf009797dbc8beb812daa52b6c0d5d43fdacd5f812de0e2b2dd74fb9fb48f53cd772a11ffd5cfe794badbef5d78a5a5155d8e3d531de02c10005" + } + ] + }, + "group_public_key": "c9aa58f7c8007343ba47079ab1f8ccc67b7bedcf17114a27421a9891450007fbedb5faeb4a1586e105cca5cd4cf99f6aa1966c829fd762e080", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "4fd7af4723dba2d8764084938c8c84415816e20a51c1132446aa6e6edfe2e4702167513b1d328a7090b6c6dfbe247151b2a583cf14e701ce1ff495cab56fb1c39b6782fd13faade0", + "4ba50472a8d1a23146504939e7536275b56407a3366ee20742d34eedd301ce76503a32b4b4c6986e4ff2f068951c78085bf9da7f944c06e866d551a735031c4da80a5e7b72749960", + "f17f9ccc4b6f1b1100abbf1ebdd79eae0eb19640ecb02961858cc1b75a6426536885806044891a6fd98e88ba7cacaea8bb39ee4b91b86cf0e5424c4498405a73735447f4d5d7e7c3" + ], + "recovered_secret_share": "692d92730a66096b0a971bfe712cde3dfacb726f94894c68841f8daec6cbb3c91df1be4a811aabd0a314d2b152156485b12fba9657637a14", + "recovered_verification_share": "7dcdc0aac7e24ad54a206a03f93d086f3aaaa0a999207ca5ed1798b522f7600c8136021ccf2844eb69459390b579bb13f2c285648bc0afe780" + } + }, + { + "n": 5, + "t": 3, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "config": { + "static_secret_keys": [ + "28ad10f793c78f91c4ff81fcc14baab7e4acbbfb5831601377a83a80e138f1babc022025e6f478dc120c72fff31318f101654d31ca760439", + "0cb2dd92e19c593fe23bce1be0dc904ae2b54d222ccb30f9843852e1400f8fec0ccdc948d0a25869d6f9f3354635b40d8f5268e828827d1f", + "edce3a511e913bfc7e3f6cab89774a22f7e7cdadf9a1e8e0b2e01edc775a61d292fe4be136c558e829419c9829eac395ad86e4137cb5dc1e", + "3c7ed560932a84f03f785094b772fff9bcfc2cf7d1f579ec3b8e78c69cd2393320d3a7ca4778b31018dfc0b2dbc53fb1592e3b25ca9a481c", + "6b366edc00b1655eacb298ee3d6920710b7f71ae60b1f381403a526fd3a1684cf5c76cf391c1bbc0389faa68533176e53727fc999b6ecf36" + ], + "static_public_keys": [ + "7bc21ed1ddc9084bb76737df4341e9662024e44732f92e699a766b5aebcc7887253cbcab01521ea45e2569ff70e472a4363b122259f1238380", + "3a6b5c18161e72aa161462288373dcf69d8375b62780f4317ae0feab9ce68efcc853e8f5678587de630694446297bcc296593dda6ab0eb9780", + "31c900c00f9b41acdfb045b8a09341bbc100e448c410d0c5a44928040fb1ee062e0f61cd43028ac4970d7c784f20e81c62356b9f3b4cbc7a00", + "3b7de8170e210c6b87bd6a6974009d0e3f5a859bf98df073dec5aae7b001965d5063c5606885e62b13b9c0a2bb717cbd5d3a7ba490c1ea8800", + "9c3f3a2b5fe19c2a4d9bd25ed99f7011c8edc56a0aafaefb6c7e524d280daf372bbef938507983d60bd154d8667458a9fa4ba803c6dfdc5800" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "fbafaa2b09378b02f37b119c84bbbf475c59497334737588f8cbcbf8155be2b5480c98d569349f1746d19dd7ba9df7cfbccea9fe5638a22a80", + "vss_commitment": [ + "eb1f3e1b32f66690bdf6530e4c225e90a7ec477d09144bced797aaced4260eb466d23477bf3bc9970cc76e63401aca3b65cfc0b0e26f4b2200", + "b2513806b0061a22cb322e82abe8c79e82bb6f9bde0767a2043cecfe5a433664337af6ca666757292054ef92fec9ba6846807056d0059bdc80", + "13eddd437abb265de34e04abf6e7712aead9c735fa9a85c1aeacd36cc6cdd1a987886d23502dbc78c863aab1a790796de8aea46d8427d60100" + ], + "pop": "1194065365449a629790b181734a2a18f889712a2c0f4ed20591af5748cc4c679ece3fea4e0da59f8e05c3bc2de651bfe7192648370de82580b915143a1a026d5f55accde0fddb8c20917e0d1534d5a67c966797634018997c1e6ae7541f85e50fba2529cff21c5ef47108e564a914ac1c", + "encrypted_shares": [ + "55adbf574daff15b6a40a67f7280fd1306e6d7a717d5b3c9777b3673740cdda12779e2931ff16c72eb021a824754d50ab6cf19b911cc87f6d08a7e77bdbc5d73e7b72f380415dd50", + "531d07d4dbdf8a5b24c73cf10a88c1b3dac85b91766be98927ef078049e625fd32d4b53c5b7682853647241fe1872ae96a4db9da3c238384eb616e873f48b8364e5d467e451b01a0", + "6d6b3edd2ad165b8f8f121cf2c16a48e7266b4baecc76056ec9a21bfe0717c600e8870c5fe9432d8fce1a9a4362167f7838dba9b9fd13e939b558b6bed5b22cd70b79678794f9468", + "9e7d3fedb9d89509a987b9576aab1191c2a45e6ddbbff0cef7c615a9f0e53be2fb0035bb7e46c0422f56ba527d1c54a63a341d76dc15b3678954c5377d4a4abb8409e1c23c2a9ca2", + "e58294a8314562fc29c9754d90c1e7c3034395eaccfafe7a8434de0a4dff36287d0311ba4c32bd4138c533e2f4ca749fbd4afeeb51e4ddeb839f3987170c2adb006e9a0a12d6f698" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "4f8d74350f97d027b4a2fc84ebb390dfd3e3be91b4df771c463268c498c343b4b42ddb998cd13a14918d2e8e2db78bac448e04b9af2dc7fd80", + "vss_commitment": [ + "6540f705cebd0b81724808794a82a98fe52f64813b29feb1977d1e9c34169a517698d720936ff075ca92be42ba58ad4805b9ee6fc483856300", + "d295f197a9194a7464fceb542260f72a8a90b3b8d64a5143c1db1b3c5fc2de01a98fc24f30d5a75a264b2c867cce8143cb5bbbde29a6992c80", + "563272b31b0724fd50452762345efed88aa1190aba5cac3cfacff29b53918eedfdb9329a842df4b3b0cdb05e7129aea28a5d9c44c9832ba800" + ], + "pop": "f40386a7c543d5cb5d9f9d7a2858acc3019836f6c20eebfbb5c4a9e17c740351cf7897fe7e77908eb3758db904cd9b605b5428fc347f1e1580ad5410da448949f318116e9f28a540ca2691515982c4293833687ca21edeee55c874cf64dfbd4ba2818399bda461a0105991dc33db84be30", + "encrypted_shares": [ + "055b0aef9022b9d4e2cd898b0ad42d6b6c69f5df0c885517ddfd8d563c12d96b7abeb535409124cf9e6ff0b021146adca41b05034c521f0a942393adbee79336f8fb5c7efc51b2cf", + "1c2503ce634bd40aef1385885a5065469272acd208ed6f09aa9641d31693e3bcad99e6d62bcf2872b3bf08da9b1426799c9dfc082508dc111c3414fe386affd8f4a1ad08edec6366", + "f23c78816efd9b751a08202c1e33920da68c585a2436de4d4f61fc5342a22ee7d340c8602e637db87bf98449978d54aa02657f816b7575efa20085e9be72c1f268824bc655905ff6", + "8be2c050a4d3dd92904660ad08fa618db546c0d41f1a8f2202654197d40a1a7be4e43ee26403e71b843db8c2063dc646695876c38b43c239657b9ab6b83b2c4b6aecf18c4d7fb445", + "5c3b6d2bd9f3ca1aa447fe7cd39da53a65cbce4f29ee8dc3be2a756078c895cf8ec2132b6e5ea929e1d0d140f0d74719255e593c37c0d28902f5f4a435cdd6441ecc5de82a65cc56" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "52e4e866a8636d77802f8a1c5ac771fb0e9cead927a94833ff0db02df7b2d18dcd40f233e7d1f9298dd45c4e9d3d861d7ded9795ba64f71680", + "vss_commitment": [ + "84ba7bd4c564ebb091b0b33313721100d5ed8db91f9bc67e76ad9c48a3208f4d254aea06e542fc0f6649d4c5b8926539438acba386a2c14680", + "24f8df25ff4c3314bf6b36303dae3096e1869d92475456ceed3262639fe42964725c3369d905f3b72acd736f43a1e0ccb3d7e4f09b556b1980", + "a70cdedb2d641dd4c08283bbc79169202eeffbabb68e35e9acf3218265ab8f0b2e75c59ffe389762e3f075aec8947ae05d48a2ae90a2c4dd00" + ], + "pop": "f08238eba4372b6740703544148fff7fe444fa1e06259ad02444b853ee7980d5ab1a336f9c645d65049a26b7a426006e8f79cdf6381f625b00662347952e1c983d2c4ef2287de77acf38d90fae845706679539b2f87e68e9f117813dfe86a6928a72649d38c6b12f6c91e3ea7233cb5f21", + "encrypted_shares": [ + "38253d7b2e48f641373e0546cc3fcd8ba52b3545252f4d1f3714bcef71c877fe6e2ef77eed3fc313ec4c834a9e85dc259e23c71eb84fe651e7e09ec496dc487e3742a2b70e2d2d52", + "d35e33ac6bf839211c05d68dd658c40f9017a0d0bd65018581eb0d9aae264897f1ccaf4e3deeb2081225a5a58b51435dace9fd5c3f2c203d1eed8eabd130c3dee0e00e7d1091d307", + "19fe09486fbd52712f96344346433e0fd53f165dc3f3f5df5549cf86e6c8de7e37df5bcfae838919b83f97f5a0843a72fd4ed00a1a564d2662249580e4be51232b626f7ca554fc07", + "6dd8a919dc295832fd79bce266d77a827864d4d174b86e2f02ed8f2255f2001785ed7f4af83a7c90eef2d44741a313d3a3ea4048deb0c1ad021dc995ad4f9031ce038fc6989c93c0", + "a0a8856e52365d6e03c137aa9635a94a84f9651d9deccc6a0f3a44f37086c3b8983d1cb3304595b1f1f54e6bd5608481160a062985ee29ea0656acda3aac57cdfe1713893f7be45c" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "f53445c3addb7cf9dba60d17faddbf89aaff8e4d3be4433f64ef1382fea24cc1db9ed1635e70ebeb8f8d034e8453de8a1db3ac79998c751800", + "vss_commitment": [ + "591c7cd12892296ba7e9c53b1b16cf39346161a0277267d59c02d4670936c9d08147ae49f823fd08673bf52b1852bd256adae7d3d14db03f00", + "fb5be0a1fd21152d614ad3de9d88c28e304ed7b122c47622181fda52572c5bd9b449943a3f24940e973bc30113c8ca69706f0971a8f41b0880", + "62868df72a3eddbd6f57ec4eaffa6fbdd09943ce27099b7588fbc554a3e822aaafd2c9bdb1ea80d3217ffed7dd4390f7179513227efcc79a80" + ], + "pop": "325986fe26ad9e4228c0bc1028171a5c4eaeca17aebfaf4ed8436a2b54936f713f1547ab1a58a755b0f1a3de017e8c9a070d01418503a2670029a4033cd8d95c2543daae98de405a59d0dd96108cdac4e61e7c265f03729a1b058b369d7da27dfeea0e988c6fc77adbadb160cc16359829", + "encrypted_shares": [ + "bfb881e3639c94575bbeaecc94dfe8dfa1496c59c6f84d57a76a02b3d04940ae79046fca90f810b3adfa500ff86f76f4a60f4db38172f265a5c4b799b0565a98f77e78ed167fa1a9", + "c123d9aa75f9eb160bc79fb928be7bdb1fde40b7e9cfffde95c4a6c79084624015276a7474880b8000051b733beae62c1c4a9084f6236094fd0fad31a639383fc41f03715f60739f", + "7d699d3de984b0350abaa177e51762920213f111eaddb59a6736414e0cca8669fb38fdc5c114d22fda881f71a8b65b9c24e2e71535b51094acf523ec53d52d126a2cf8f2954fc140", + "de799bc3e45f75465aa1afc6da6625282e5cf6a595b3b69a67996dd600b757e9be239fac9e472dd4a5602c09b327426bed9fe75b0023c978661db9f126a39b590769903b8e0dd0a2", + "97c88cc5c2c5d7dc75d1b6689c3d8108337e0bd16b681c68db854cbde1ad8d16238f299b2d24969398212fe2207144b08033b67dbe2ee4d38721adb1c4c6acb67e1d92a3443a9f33" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "66fa3da62a6cdb3e921e1e6e826d4b56d9d4886c93215e164616820cc93ffa39a4bc87ddde2ed66bc53da875ed88bb6456c318139d6ba28e00", + "vss_commitment": [ + "a31b1ad452725bf4d620caa01291183b0daa36f47ba18aebc66a4103d10261ad03baa379ea76709a462f58fe89af472f4db57aa0d903182580", + "a7c96e3b902bf906d110b9a3a3f9f21a337289ebc905cad38012b22decfc82b3a0227aa159e14dee1475e24ee1a2dde85e881b5fd0eb731500", + "6cc699592b5b580e9d02e10d9954c004222ed19e21da723fa785930497abf73b7da7049031613af5bd547c84bf185180e7b7d3f70f03385400" + ], + "pop": "7a35c17f4afcfaf15cd5903b676059874629975f9299679711a3f806e931d58dd83f9e70262108c354be31470d0ba66b40115172bbbf92f2007c5274671b47da4d2f47106480759556c8cc6e6fa6dbda39513c94ab592875af2c463fd682bb07c8ee939af526507b85a1c6f1a5ee7d5019", + "encrypted_shares": [ + "be444707f4a3563f948dc243b1610ba6c23da64690e9505f9498862619efcbb45222b3740f2eb520d31fc7576ce920d6a1e0cb4311f1a470b04284c1727da08ebab77703e1d1a836", + "f21b85b7a5f2930c5ebcce7dbbcd6a6f3d9900bc0a3cf27d81323445be1f32aad8fe2359c9473e72f46da180111306ce829aad5690504685092bb863aebfcc983b39ce6894c3115a", + "c3a4ca84bf6078628361baada553d866f187efeaf291d6b49b5795533f617eefd6572f66f3480189ac2d9236a155279ed00733a968f4befdabdbdf2951dc99b4c5e37e7ae3a66c51", + "0b95ea9e128520b3ab60b28410dd4964ef6521786c67817b5f43820378669b5589071ae1bdd40a2640d09525bd36006429e58337f39f1b5d23e15671975bef0df05c20325764e50f", + "e987031b35ee3d3c7732d14bfc3171bbb4c3c78cc6f8ce9d173eb5cf29a85caf0b74062aaf23b928837d3e934b0315a80f6cd43231fdc233b7454ce7e8b89e344f53af53cc950d04" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "74e66247b81e130ca8077e234e721ca80c69f5edcad0cebf3e75f0ca4c9ad3b532778ca0911ea317ba616a825c0f842d66a65c216e98841f", + "verification_share": "2ac240fd19889d93dde270a8faed2daf7fdfbbea5cc09c9b982e532183efe803d8ac0480707b3e6c1b211dc63c26dee2e06699a80d8dba9c00" + }, + { + "participant_id": 2, + "secret_share": "ab0ed263fd9325ea453b65eacae73dd4f52275f60a58b543a71a5a4dfe72332544dbc18f36e5b83afdd6b426b54fc61eaf27151bfd2c9c04", + "verification_share": "e5dccb90f1c336a9a32dcc5780e575234def28862b104eee0599cabac19f584f93774cc91a1c27798f87a75488e13ebf261fa6eaea6ca54f80" + }, + { + "participant_id": 3, + "secret_share": "7afbb7fae999a02ea72629747d16e356832297c0ff32e92bac93397b244ce1da3e49dd9be7e0dd7f69e7a13b8980267dd0aa2ae1aac9d83c", + "verification_share": "0bd2835fb8dd8f379f1cdc7e7815307578fd099019d886f057f02e1c552b78dd4e0c44b3bd231ec95b3c415f0de0ebfe7a51c35575c0a4ca00" + }, + { + "participant_id": 4, + "secret_share": "08de0b0ac6e8196fcc1b79170eb7c5cb04c4d83fcccf7d2b907430dec025ddd622c1dec4a41112e7fe9231c1d8a1a448ca2f9d73776e3a08", + "verification_share": "599010b500ec99576e1cfd0a2e0200f4890dc36c7ce9911c69459a353847fd4efa5c39846f05b0a4e75ed3bfa0545cea1ba1e304109a8a8680" + }, + { + "participant_id": 5, + "secret_share": "2e85d69349c8fb15b5c8a57dd4102c972aabbc804dc05f8f10299decd1ff2619f042c60a6e775570bdd963b7a3b340819cb66cd2621bc126", + "verification_share": "178cbde51f0dd2db75337f1603b9c81e36965d161ecc2e116b793fef04b43c2a38972c8800fa9ddd057eb992fb9144bd58c4d8a21924f80c00" + } + ], + "round3": { + "transcript_hash": "329e5fb3820eb9bb01b5cf947df31df2f11f4a354beabeeced40eef52c80303f5e08958d7fb7df119bca33f329c499fbe4c9ee0425e59bb368ad034a4b2df8c3", + "signatures": [ + { + "signer_id": 1, + "signature": "143c520b2da1e4a6de3642ddc53384a73890cc4fb8cb2e8b0950d0c700e071e65c1b9ef40f88e4a256167e900c24a60ab10f61e85cd071d10049aa8f3f15e06f49d0385ad0268e0eefdb8dabfe69ef1077fe03932e817726ac92daba8d46764059ff1410ff00fe0cd67f55d1fe7ca6b30b" + }, + { + "signer_id": 2, + "signature": "d2b1df1096f4ef3a6e38da31afac6b1d9572062a5194a0b00deb9470a6b685e11f7a206c56541bdb69c9d58dad5981d623aca9dc3d46f38b0074084603d7ad91dbcfbf7157c7bf471ec606607027eb514b23c658fd018f9962ba8aa4439aa793a8908cecdfe5340528a45dab93a27d893b" + }, + { + "signer_id": 3, + "signature": "3b8b5309d58a1a1e5fc85753df6ce16bbd426c61217115f5941a501ab31c171d4754f99fdd9bed2acf36e07f782dc5f4bf8fa27e565de158009e118ff46e1fff41883d3a3521f82a76c6910426cf2d85688effc0af89a9db4d09ce36c548b986cfd190bab21ae9471b47b9b52b3cae7b0a" + }, + { + "signer_id": 4, + "signature": "b4ba26707eaee38bf58363ca0603db28f045d05e159775b4914d12960e697d60a57eea33d3977d7237390db69ffe076b4e7f3c8d24e61f0e009d452b1b051b79c665a7dd3e702f1f6d4f1be98d867d5a745e56b8e6e85be67c92644ec58c543892969bcd9b7121465ea35326d7ee31393b" + }, + { + "signer_id": 5, + "signature": "607f09eed9bf74099acbd09e34b47997a257673dceb8fc0623b9abe403768f9ceef83a316e3de95bccaf848bcd3ef51ee5a876ec11559d55005c935e4c46f430440461ceb8782f2842f0e41d500b6ad1f8e0be7bd8f7c0b8da2634b6734206a61379e239e5784fed01a23689fb4535c818" + } + ] + }, + "group_public_key": "c7f0192c26da753dd3875fea28957843195e95e2624ed9064c3e96bc45d54002338eb48018180193b11f94dac4ef1ffc6623a6b8e762a18180", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "55adbf574daff15b6a40a67f7280fd1306e6d7a717d5b3c9777b3673740cdda12779e2931ff16c72eb021a824754d50ab6cf19b911cc87f6d08a7e77bdbc5d73e7b72f380415dd50", + "055b0aef9022b9d4e2cd898b0ad42d6b6c69f5df0c885517ddfd8d563c12d96b7abeb535409124cf9e6ff0b021146adca41b05034c521f0a942393adbee79336f8fb5c7efc51b2cf", + "38253d7b2e48f641373e0546cc3fcd8ba52b3545252f4d1f3714bcef71c877fe6e2ef77eed3fc313ec4c834a9e85dc259e23c71eb84fe651e7e09ec496dc487e3742a2b70e2d2d52", + "bfb881e3639c94575bbeaecc94dfe8dfa1496c59c6f84d57a76a02b3d04940ae79046fca90f810b3adfa500ff86f76f4a60f4db38172f265a5c4b799b0565a98f77e78ed167fa1a9", + "be444707f4a3563f948dc243b1610ba6c23da64690e9505f9498862619efcbb45222b3740f2eb520d31fc7576ce920d6a1e0cb4311f1a470b04284c1727da08ebab77703e1d1a836" + ], + "recovered_secret_share": "74e66247b81e130ca8077e234e721ca80c69f5edcad0cebf3e75f0ca4c9ad3b532778ca0911ea317ba616a825c0f842d66a65c216e98841f", + "recovered_verification_share": "2ac240fd19889d93dde270a8faed2daf7fdfbbea5cc09c9b982e532183efe803d8ac0480707b3e6c1b211dc63c26dee2e06699a80d8dba9c00" + } + }, + { + "n": 14, + "t": 7, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "config": { + "static_secret_keys": [ + "2e49741700240512141761f0c9bb8a72a06ee832d3ca21086b0284769a127e05bb0e6e316705c52a38aa23c2fa5c7f5c200804e4d8fe6937", + "20bfda80a16b8a1465170831b9429f17d39c844920f6ab0549b1bf4f3bec095b68e10df0fb790f7a6bc42f224e700b77f411cc7144d6f704", + "6b13ab64bf5a32ce2ea651582203d232a353dabb8e10a58fad2e71c4a34d7c36d91ac34cdf8f1fe0b84691b60a0664e75dfdf5751b78f50b", + "4baeef01465f0b88f0f971aadcc16b62a21284eef58c61234f20e0c72004184034dab5e60494838560b475a638d3c6ac36c9fda843a63634", + "e28ee2b0f7cec248dd167d249b3a55f4fdc95d0018ca1dba3df4484077e1a364dc13e8e77a54619234e95fe405b15dc6a7bdf07ca777d232", + "b7bfa4c9d1380b63e53f04ae7064244cdd8a50aeee932fc76b0b8ff12b055ddfb31a5c2b1c4b6d2e210e088627bdc739ec5124d9c9b9f312", + "dda33e41bc8043a7126c71f92caeb483a4dccef7a75b55ce2828bcdf5459de1d16cceb2cbc478acbd5ef8062c6b832fcdd7700d9c442ec3c", + "6cb1996ae72d300760297aa4868864c13e6f67915cd9d3424453a189735269bb77b757be2805d099e74d26e6154f5f3af98e9af31aebd22e", + "5ed04adc9d0914cc9bfacc187dab34446e28d049713d81d76948a09fa67be7751c9bdb21796b2b2962330cda92be004784ebecaa526d450d", + "c8c33fe001de1648b036c78a0d4c7e7d4c61772f0c3bbcbb60d4499ab8a439d53094a75e04e8f84775fd736b457076a5652d40bcc599a517", + "cbc062d53c85f4a6b46f23aea28af71f18268286d9111e9d80fbe5b23e1efa6cf25c90e7d3a5d60de389c006151ace5ff6215012234ec532", + "8b95eabd2ce4125d4f5d832690e0e5612db9769865cca605c54c24d73a74ace968a8941070a146613e65019c506b87bed0d9ff0b92915f25", + "96b2536f046f0ee057d40f0541a08b3c3239278a2aed7c870b309f64795451fdb44a53aef5817c878dd323bf42121695aa415764ff70ad11", + "a6adbdf328f290f06c04a2607a4d92419b17ad3f600faf8b7e1f7b4c0fda5e742ad237600293d5e7d569b8936945dd83cd9bf95e211c5112" + ], + "static_public_keys": [ + "26beedd270a1804e1c1c3afaeda6dff964f1f736bf896ef06317e50c3ba60dd944861f41976f4c6ff5d50cfd5985dd1e40ded261aac41c6180", + "85fe44016c3ebae0343f933d875103b545ec191b3b81d8e40ba542a56615b668f7ea609e3602e673e31cdd41ccd5a88fd1a776aa2ee2ac1d00", + "ffac62d10f742369ce24c40caa0f7230ede54ce9a8dbfb9335a229976578a734de73208db2204cc5078f8dba60e92cb8c250743ac75af5bc00", + "ca975dc0ab94079efbc007446526fc543cad9fbda6c114a6ebd6a40e270ec46a32ef4332f4129837f013e923e8ba27ac6a1559b35468977e00", + "7dbdd88ff13f88fcd938b2fdb2c60e22d75b0dfe746aa7addc418ec507199031ee883b734e6940164bc9edbf213f2799bdbadc5960d3a64b80", + "7c81e8e44857f1b67102408758a036e5d7c2040d2337847f77c2f49f5de7c10ff54a8125db2f5f5ffb659011f7e1aefaf9f8aeb3ff4cbdc880", + "4e569326ddfe7b9ebb691f92bc37d942a48458bbc7e94d77754ec559f754f9cb7565217d46300f80bbbf680ae2de160a0b18b89c75a2ba9a80", + "6c26cdde7354c7bc38f5f6743ec5d87f4af87ba27656d4f55076362f5b9f3db1e168048a6604ea27f6b1b7c9c131d4d69d04117e71833f0e80", + "270f1a229acf30f51fe44085b16d083cc1e4babcedec5516f40343f6aedb5b714d1940929264f6dc292a93341927173ba0def1f9ab1b173100", + "f4752efa4e2bdcff22aeb8af3a3108de74d288fdabbd464bf0a80a7669ce74d23dfe40b6de911779178dae65b6ee1941d80759bd1662a95800", + "83e6c870c990bd7e109836a946731255a21a0b811e4361cc30b173bf7d7fd2857a9728d024499a329a954caceb04531f58a734a57ffa7aed00", + "0e1027091c5ce5df6185a4e36334948130924b90c3063f24ec7d51ff02d6af24b1f53cbe09f80b7bda98331c11fb7bdbbcb56424d477ef9380", + "9a42ea4137eb4952bcd77550cf69377ce5f8f23ae6e411397563deb254d43666581e42f35eb1f5c30ab5a31bc8ceaea0bc99fb69c98e95b980", + "d9f60738374cc85b4e089ec6876ccb322f18a49b4b4df74e1a53cf741112762bcf99f49f323fe686e5ad07a4387ad8d08ebd8a479f4e7b8e80" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "25d76e3a7431b312fd3162ff618b6146f1e256297b10d1741583ae463d1ec9261651d65a44de9fffcdb42e520ad24b5b30caf3f457f32a8900", + "vss_commitment": [ + "f14db92c0dbddc53e3640509622f019c792774e4685fe4e4e3072fff20d91ae7757160db09ce73433d7d5b666083adeebf7b0dea75a32ae600", + "70f709be3d26746bf21e0cb68af4bbc52258d697b00aa28f1a3858cf9cb6ee894ba44abf98fb97f0206aa707314512a5a10185c646b45d5a00", + "8b2d9a3617a2fa10cae2c116ed8d63ef3ee6fc90bf919e0bdf6671e0117db50c70adb96689e27680e2cf2cdf38159d4580a346850929de7e00", + "c69a0bfa5297a1b32934c1115846746b9d7fbc93565867ef009b3e0904bb66aa393669601598f3c83540491f71f1ff9461a1e145e3612b0800", + "6beef2c788598002ea818af46a47d90f3b07b25f17713dc6fdcea9d809da89320350faa57b97d66c20db436da47405f10532f42aea23a1c300", + "b4faa84d6c93c802ce124f013c3b41a4e45ef961f6287b2c933c1716e5e70525436c0adbd29e604605ca17a39e5df6964da708d9588eb32800", + "eea617c98ccc468403b83733090b24579eae49bd65ece528c7d0f37f4a219079eabf01fcfadee938f9c58b93fd78c75aee29ee6f8925e6b580" + ], + "pop": "220c6e24b5a9c81612f2a418e8c01c7912d860636828c91536d49a707a6f0d4ce670b58e4fa74f70a818b24819662447b1ece821a83c81e2009501bb5ec26cbf8bebe4f3dde524d7ae3c3905b1ae8c8faa66c3169812e28de64407a6ecf552bcaa1965a453df1b00f06029420680820d2d", + "encrypted_shares": [ + "7d5c24211e850a054f0a2b9aabf5ce1f80aa95e2d2a797d0a184b56be0532b98adcaf3774f3f9614c3d1ce4ec8b96b94ba1d629cd8358cf42701947736c0aff1c4aa85a9226ede32", + "74c0051590f3634ec14b36ddb8914cd5555a9a2a016355b2dceb933a33d9217771f776e887105d2ba9feec5ee8923cb395604f158cb45dc65b002b74682e41e5cfd91f30d94e9290", + "ccd23c388ffb0dd617c5523df17f25c26a0c34a24811e7cbffe4c2faaf9681e9dbdece0cf256965e0c1e6aa237a0469dd7d4a2a8fb51f5f3ed6ed74a76712c2b043948d99adbd3f0", + "287b9106b0dafca69f3f80507c5d169700a226b740f7450dfa9bc6222a6ed0a0d65322f7bef1cbe20cf2cafacd8dc9ea6e043dad57bfc3fd3978b4ab0517e21a373fd7abc8db3385", + "8f71d11d0b74f45f874a935ff1708b7d2e16f70821b7c6eea1225f68965a9e0b81690117ca37fc98f532c8798c9c64dd29047400e7b01dd70bd2de917b120e5cb13bb67a02a0e199", + "80217a8856ddf5666b70c18ee440205320bfa36c1b362604b8d866ddc648bc655c8461fa3ac19f9c4864c27534c401d7c39df8ce88b0076988d2715a6fda3e927fdb4bfb78fb3e57", + "7bb37a4b41971057c530b62474faae23b4a49adcf55b996aaac4abe3544592bb2703d8749a77d44d92ed2e16128dcec5f481c11da51e2ec53de36a2f1f24157090f6a07868b7427a", + "77a6494d037c040cb14ce4727b0629bd810605114c3098c27d77bc36dd9b869cac4a5e1e27b1ed1b6d47f7d3074a4f31e1d7d13be4e0232f38c585a789a46d5884e4da86411dce46", + "6a0693589742f5bf7a7160293b3f0165b71e717e58735228a0efb4c71f66e453454a8723cadb5062deea091e3dd4bb9fc6570fae97b996361aef0b0dcad05b43b885e79675455448", + "ed55be3f36aaf38f814d1d8597b7f17e1d35e17b696cdcb530179bd87582cd7cf7d5391b5d2ed431280ed9a60504da30894c1f5ae0380d40a98ab5a08b7c923c53531585266fbb84", + "de3af5021b84e81d723e31c6c340b8744e2c617bdfc803356cf573438297511673b671eb211b46e6e80ce08eda1bf2db4b2982e2f0ad37b7d87f2d8f262258f11c34f370bd994d00", + "76503e34a93a7adab06b71b3388df909bbdce792ef82cb9c2308b90133fac65584d25113fd9721e0dc32e37c8c50884fd4a570485a46325ce2cd853f2670e685e3c9e321336f590d", + "926884ad85790fe233f58a45adf50331ec3da6992ace6c6d2583430059d67c6b722b82aec57b36aecdfe12e41eed821319285aa7214ef9d38a4501f2362fab09a435db8464dc1fc1", + "ff814d262eeb62e2f8b535dec46918d1eedc5838b7fc93feac74dc864cadc2dcacd36b9943d842738544bd751ec1ab95df889c25b9f66485f359f1a208e184cd0deb5b372ce3ad77" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "66085284b6576ebdbf98042417cbb5d2d5151746af0544d73033fa53def243664065e784d7b5d606c9de4d064cc71210f7f1976a83b045e880", + "vss_commitment": [ + "51144a91caa5b1d06824568ed58c746727ee04a17316813e2356c58c1e82fcd6ba295d80dec8fc3b76d54ced11e87b90b3db82b67e8dc72a00", + "068a4753733eee44ebc45bb60c35b542290d40a5b9f63a754487096579f8daf45e153524dbd29025b7c0e4ccd50fc07789372d57ab5aca1480", + "8b402710c16d52cc0c9a1164d2d1da149fd850332278485e155a3cbdfe61fcd72cb03b205b5f751f02627ccd1d7510a6bc25843d9b82343e00", + "b2186a8b4f7348fdd10e416608f1692efcdc6295573099b121873809c09a506643a410b6b3b9eed4de119b0ee8aa780ddc5a153130783b0b80", + "db4d43d9c49e93bed902c73e41926727becb048bb9c1821963359a60c6ef3190cdd74953afdba5fd25f64d1dfc4ec64e33fb37541c2f707200", + "31c27ef4f9248e502cba02d1036ee6f5059642e07b64e938537c5868a6dcc9c7381745731823c34f8118768629899ba0eb3b64758e6c29d800", + "bf4d3001f854a1ba0924278e583a9a3a265c87f1b3587252ddfedc56d7dbaf75d9bcf0875336bc2455e7360d4ba7ba4404ebb8c0956f951500" + ], + "pop": "8bdce5641c082f01d9c7eed192c922501dd590f393a5b80e42ef1360a66648d6aad932593db5f6e3ee6c2071fcb102db94be94b78ccc9843006520664b7ad2fdbb334dc7ab4e98d4909bb00d37441b78a8192bbc9b30fd9a024e286c27429aaf8f69af2d3ef730e53c76a6cfa0fa43e83e", + "encrypted_shares": [ + "8f591a73233805516437315798255ecb0ccfd59ec127ae2557b8a88261fbaad60a22ff201aa7d0d6e41f585346f16eba07c804c2b021cb2a9d1f08bb23fbc8a87260e60927720851", + "6a0363cdc15dacca9d1a2719979118916163acc9f6a3229c662dbaa43b95e46d9d635bea7546ca8e21412f13a19ad2006e2fdf71ed1d9d50c91fdd620c73aa08a861c98493daae52", + "a9884393a3fe33ae4c149d3176a88086a9e768e6469859cefbef8da09ee71a138e9687820ec54c0cedc0432387e4b71c6df48096ef3dc672282560f01d8ae0d3cbac5ec3957b22e4", + "5ed6489f9523f242da4c98faf1efabc6998934420e36482bffa70c234ad3cfc38327a68e5f780d98cde9f24d1619a36a3371791dffa7125a29c44882eb0e2e7acd3b10b3c72c97d5", + "337d982a22cebf2cc0c6b2c30936ca136743bebd45e5d8c62337a0138981bfadd999e3f1a162b3763a4cf5eaa71c415f092c29a5bb4f35fb0e01d9e06c4160a426cdb5116d0f3481", + "08c5baf9611c76f94327ff6d578a9727a589ad9dd494b44134b62bf4064b287b11fa47d6706c1f045ce76674be214937b607248d73b1326c23ab846f5c111cf2154d4d00be035576", + "5a43e36d7f98547ec6dcd9b5c6329c05ba0cafc082bda8f73c8a3f0c8570152c90e6e4105dc0bc26ea706459ddcb0eaf5d0c8928895b270ddfb869e391c045fcf373aaa195f4170a", + "20b03ac6e7e33d4bb0c62bb98d58a12fc51206dcaa7f9cc1d20f612ec705a9315eb6c531fbdd7842dadac7108b8113a1036f423ea44235a733705469e882c741e41ccec320141e34", + "42187bb71960bef53d55d47eaec5bfe5426144da70eb929eae77b0aa1d7410b6193943d4a2bd33739d45f6d6e971bc3e9691a1901097b490c69b28cc4fc93d59706931d896d59396", + "c2e76210f531336fc43186fe8b32747d635a1fad9aefec843d7d47e54bcc35e3f737cd4ba55b12ee5fd8d61e928e8e700b64a7a143806f789867c87333e806c711eee59092c1ff4c", + "4680b31860aba09a3cd66a6bdfa1782a2b725e43b317ca7292a6b818c386768ae6a9d18d62d802d3714aff7811caaec37437f37166706ab4df189f69a1009b5a1a2c78cb5a8e8e68", + "7afc9884d30921202f6406daa0430676daa107433341f031c3c1bc9c074959cb77e202a7f0009b1f62fbedce1a92e504fd186102e25762e4c2d5a9d2dd5bb2faa292aa361f4291d7", + "c13101ec9919e19ab7f6cbabe668ed97ccdea686855ee7067f277a1950316be4896fa4ed7bd44de5ca458697beac75cb895ab8dd8515c24dad9e5144d34b13a59aed10b07612a79b", + "8f0d746b146e157362649420679ea3a3914fc58b9174e66ec73f9de00a47977b1ce2e5a10f8b8140999dcade5ff7cf659ac5ef4b99b84255a30ec4d03d84f5a65309789bdc2bb72f" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "c5374090401ab8f2ed27de8765dee1e9be78efc31e38aa52d28c9e243ea1873e891fbd477b5ea5321192e3f678a046ab5fac07816681169980", + "vss_commitment": [ + "22e9e57fc5c2476bcda6c21fb8ab179387baaa9b243eb3b568369ef85af1212e5fda2f26715c835f85f898cf304ff5dbe110fd79cec0bf1c00", + "5b98535fb57e34b5a659e39a1db3e2bdb9e46ce656f8a51ddd87a69cf4776a68e19a2bc26088172497c16f185d6fa2d1ea039096dc4084e700", + "be453695b3c81ceb06564fba4d4b21fb846167ec0e1b395a0818fa9d361c7838d85cfa229ef4793909acebebdad02cdcfa4fc089d2b4ed4200", + "61df9b9d272f13b9b78c37c2767c79e64850581e763dade287de62619d3e60312bf85cbf90fff35a166e05294e46f606082acba86754a99c00", + "f2697dc54ad356e7321d2ce74e44823dbcc25ae6e8121dcdf17c0e01edc032d271a9655c4c0ef64cf9b4d4c4b9611265019ba4142fbff1eb00", + "a9c9fd9138fdf608a56f2a39c2b4f92f4d7e805878134942f0c06ebb52dbc10297b468ae233f7f8a7685912fa6e3d45a5c667eab8e0dbc1c80", + "0a16610a3bfa640adced364b7d8efcf4d0d46edf19273d559b463607e8722a719f8757420fcce70417928590f6809a41c19c3287eab2d65400" + ], + "pop": "0c589f572913f362fdd8c9a66cc4b8224b8b36e298e08fb17f63d18a29bf0cc8f2988ca6c83bb5d07bfd4712eed264a95f4b8cd2515635c900a80a6843c9782732313e2a69dbf19537a992b1ac1605de75924f0c2338f0dadae467af02cb6f4054c0ba1e1dc51f54131f5e5e4b429cfc17", + "encrypted_shares": [ + "47e2461dc99b8c26b4e50c182a30198687661fafac6e3a6fecef11d98adc424c8af217a640f9982ab6ebd4ec5725e7a54ca866fd25b9458a232bf65901ce8df4ef7d3f9368da1fa1", + "0a0f5ae09a86f22c17451ded6ed4e71455674847909c1a0cb71738a06450eab8c558996c433a61b92c6455f07cbc7331aded5faaa46626c2aa99b39c7e1936298160c1eb75018aec", + "bc005d9f7473c47a4995cf91101ad0167eb2983d70519f85deb0b93f589f6b10bf9006e0ed28165016e47996616f512b25eeba5c37950ecb8572bf16e948a0de6b39574d6fdc978c", + "4c82d7e33d50422f387a904d12bea8592d95d11b4324aa9f82d8600de26fa23502929bdfbb2e9df5e1fab9d25c4f55958e798040b3f6a7b5cda2a17008bcc2d7f48c7736579a2366", + "396d39f5f2cc41e23e1eefd1fd153afabbeea40b69c1e5925afd2dc86794518b9efb08228461b928c3739060eb35bdf3127612d028f0df7db93d4c9fbdd6faa1133dc30ded94b617", + "445fbbf734625aa69233282c8cdc8895d607eb8eada3637f9e05e4d524725635cd69d5bb1f6f8706939842eb7df0fed3e4378eb32b88278958866411e5276691829e20a5a9b8e991", + "e1686829a4794c473c50a352424b6163098dc8020d350cbfde3948b26eda60c8e1b1fbb3d5ff8aa072e060d81d629488ada6072e614767cd8042457fa7fe293b1117644b88faa04c", + "0511630ef377c9f97b7664b88e92b04db65c59e15cfdbf13217f3b82777c7e0542283f9ca36678ee5f40db2d11230cfd1f97594e1b0220d8bfb2a36c0525819fba9d69d34039b94d", + "0e88a37feea018706731709ff9dbde8bbdc8eb7af027e24f8cfcea1f2125f6e41bbca9adc1ac6b2dcdfada1136cb4f088e8d71baeb6e7009976e3d2585c5b7e7aed76b7d34648061", + "32eef8a2b7e8fc4a11826f58e679832c01dda3e22af13d0feaf54ec9dea39992d1a0955cc46f5cbee0854fa39d5c348878fe28f3431653e13da4eed3fb11526221a32a639d34dadc", + "b6ed55136f596abf7763c07ca1e918d58db30808edb392ab4ce02bb72be291d2407fc0f5ce617ddfc668d65011b13599d79a4b2abd325320d11daead34147c7092c60576ae20b960", + "ef3997dd8baa57c93d2c1fbcb6a423cd094f02ea8fbb7acb6641530329d751be0fa53d59a2a7c63d90208ad86497382170b242288d8780414380d81b23b3afdc6203ec576bfda555", + "025f179d6e0b6bc9d46f9d31cfcbe02c8237a88fb959a09c2ebb6fa4f83c53b44bd01635d3e2a8c87ab592bb946dabd393b2a81a8fa61ca34583b1262691e4de60c201b450db282c", + "ae5d6d6fe61d05a5ca59237a492d2186d5322fb0d5030cdc333b2bbcbfa394ad82b3517f1e86aae026459d804a945a2982e4fc6f3b389908a3e07dcb7731181826a04873cf8ebade" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "bc94db67debef458d8c8c3bec95558af0167f0a7caa8c8ac2d004beb29b0cf5e18e2d0a1aff565734200f25e15a9877811a6890c5326f31200", + "vss_commitment": [ + "5110971cf4007e425404bcd7589c3b4343e9a1b63501eae8b04dc5dfe928fad4f13553798aabbe809368420cd22f986c85e3f3f682ea892600", + "641a514316f39810c93dbc656065e90bdc1d7ccf23d074a821ee094c5ebbe5d7b9233b0816e41f9ea319a691d40c0be1d2141fafda668c7780", + "3c91ce5047ec9c5d9cd1bc7f6bef617ce308d994e4858566e72301c37f1e00d0b2bd0aaf78aba75eed84fc8a48e76fc4e86dc1e6bc4f322680", + "f248c849f1e4477fc8d4248f710a9c406213f9c68d8b6ebe3f6a0a561cc2295a1d3c7109f11e277da8a8a8b58f3bd9550b9df335331558d680", + "a12764135e47df831c61f18f2d924f9efa82b2ba5cc90ba10128c646672ca828ecd3f6aae74c49e1cea0a3e7e627e8b3ba34368c90a6b7fb80", + "75d2a22f0cd331c5c64b1996d2a946eff82369e3b1b0cf6adef843961338de8746a264a25bf4fa3a7f7bce6a50febc702cf065cf2134f53480", + "fdfdc78115e06fd1d9a9ec5770f75b2d28b090e2b14d951488a65cf13964380b8aaeda323b30fc9df0b59706b703454fbdd6294b2eeaa29b80" + ], + "pop": "a9aee03f0f79f938859c5156e9aca6d2d40782d06a9d60c6c710b9612ab74e131506c37c7c5771110f235d94bca32b3a1f86d01f2f2d91b98085938dcb56e9ea3747d4bd89ff53f6839d86a0607c5d4302f0b05162621d004a5e5fb4475486fa558c9e2b8c3c3ee68de4ad5aea0e7eff28", + "encrypted_shares": [ + "4d5faec8f6548aaacb1e383ef74f654654ce7269ae411c2f5c700fa50a2902771ec56ba664cee0a43eccf8ba0e59850a22bea70c64373a91f9617db9e1653174c7cf47f0aae25665", + "dd8ec38193bf7949e84a418a29b31887e8a0abf4d47117550ed8a58751ebd1f3f43eacd196e1b89a215db2ce08bde01f6229837aaacb19d6aae0325cc0a2ccaed06d2062afed5d86", + "baaefb662375fd1558b01d6b802324e76fc873c1f39e63d64534b1cbd4334523dcd9c02cbe5dc8a156a5e9a4d9f11f856e34da68e987f8a0c0a7b716408d4de8a2b7130e8a67cea3", + "2b60fa60cbdb55c4d703cb190e5671d285b7fd5af85fab1873624bf56606f6b616379c8fbc0d909626a0f013bd87af1d49afafefcddd26c32ede8b3cf66365b40da7b11f84c7972f", + "fadad9c59e0a636ecc5c3558bc901da19523df9be44f645e99c531df20b2b72e8a148a9f12df99f5e72af39bd1b84213e91d62d7215af79f7c8872ce01b14b63bed7a16b6bd15615", + "e64cd3528eb3006c5f0d266137d3f3064f45afcd84eae7150746308781884e553f2013f6bf17a5b6c91a659f303fdd1e82c1f6cebfe556deb2276d822c2e00d8f34237cb4cd1948b", + "ffb0249a8333983254c50d392f41542e86fba61ea1bf713e3111c7fa54daea5aafa488a08f239118294f371c987dd23c84fd652bb422c131954adeade8af3286da45e9993ea7ce89", + "1de9eb4446ea64cc627dc0dca3acc116bb7e731d9439b09c46b5abd369c19387f3c78624e9706d9f5176dfb1f90f5d3d7d82768f3f7379b584cd5910b7df278d0a492b7004fc12f1", + "43b914522299c043b6715b324cb208a3fd373e1651c381d0b6ab075f75d3ec189f930b1e86b200c051b24b7d046c9ea8b240331193ca71513b0bab6b2ed1358d1dc2ff10849751bc", + "ad475dfef5b2f5e63f76a46c349db46a2e0b11298ae2d97b8c59b1b37e2ed9db6b3eb20fa5f2ec01e4a7a725180b60e93bee075c9433e19d30a6115b720efe868b78df310518f05d", + "bb969d9ae329e470b3c6b21ed8958f111fb8f70e873b8afb746fee58fb5467b5df6cbd18345d954ece00df3f785d4e1ac78bb28d7c558077abc9f33f07d5419532b6fd93e2b9860d", + "bb3186f16b86add338bf3255bd3992e742cb0dec3b941f571c96801923b426a14f5d09dc09f50edc63b8da03603f91a8513808585aebc9c866fb159f31785fa45673e2829155ea62", + "a7092ee3d535ea1142ec81c274eb95bffab9dee7b3b03656af9543aefd3c5ee4e3e4d30029443ba8e67ccf973c7909691976cfd5e20152959773400fb4db913dc22dc7751ff7ca56", + "00f98b58c1ff13593289ed1fa5939646dc383393f82b09f9500bd7a430466f9380312e5502a8a5c0b423b8d3e9ac4ce70583752b897686c6aacb680a7f535408433b20c2ce05d595" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "e3b29157a3b07222ca00a708be0d011b4bb3a088bff9b706b87bfa4276e72613dba81212ffbd694d1a6ed7e7230a40ddafaf961b5de29fd480", + "vss_commitment": [ + "3311e79e7327a9d331ef6f1b0adb45af80494f53e8669c367dbc5227d22c35cc2fc744932d29aae569a8ab8e5d9d71dc3dd4624ee308640f00", + "0b3f0047f51a46e02ad94a3cb6c0ee129dda676ff09b02c37ddfa20438efd0bb0476a00b345c82aa83bc277b167533efb21b88a03a04060d80", + "b3701c95a3024ef34c80c49f902e596d31c89329a903735355637acf2051d4d92f87c13f74e23e88edb375fa575498aab38f93a31705962b00", + "fa8d157237abcf63fdf517e0ad9dfc0a965c1be8d6def89c2ff64b32483728d2629c8bfe8dc3c42eebe43a4f473c3adb7c3be5260e8e959c80", + "128ada717b902e007efb9c51fb30ce1ee4730bc83092c5a0989347a5fb7f3325094286e2237589410c9c4fd80517caf6f41effd3369830f580", + "801c8d48c056e165bde918f3e9f67ebe90cd67c01413e3d6e2232f92dfa9b9caf270e0eeb3e070d211bb5006a20cdab38766538e0718420700", + "9b9a5ce76cacbb09a51a46ba61e68b83ee54261e30ec4f8016932232e8373f976d5f25dccb67cea987a8145caf348230c9ea5b6c4ee0ccb180" + ], + "pop": "08c0f55ef17da79ab7daeb0b00c3d0d38d852823783eb781e868c0b22722d385d7ea3a387b25144d01992787ca94f69bd02320e0fe8e67c600d65e539a919d443343236cdf0bf750f94cf62bef7c749c0461f4c1d27be194da2583568f8e95cf69131bf201bad444f0c052c658f6e25a0f", + "encrypted_shares": [ + "38da0c8a47a718b1907bf926859d833598c8827e54c62fc48c8a7490fb85cff68bdebbf36175a899215f06064119e79b41b63c053d6a7a8ca0bd52a5530e6b037f2438aefcf937f3", + "4b8544331adb466a78b8fa66ad9747c1067fc0afb304a069e9f683e69601eafa489b1a6904a460549bdf22e7f6717846ca40424ad2ee594402cf8acbd8b9be7461002fcc6c855084", + "a9fc40b6829138395e51070f52617e667a35b04458720a44c5f6ca0a62450be66c40405e955e2ee0903c3ca9401569ca87d9796e534a42bd2a9cd9cfc32e072b25cf33e1db1fdd28", + "d7d95ec55717ab58b5abf68eb51a06362b009bcb630403c7943a243f80660894885eeb3ea707c64133016c7ea59318cadac436e0e5b4b4ac8b59367f27f414dfb6779603e452a5ba", + "08595bee5a3e659e79177383578fb8bdc504e9e712588776c0aaf3a9a2c778364fa166e944053b3cf515b90181e071a58f019b2bd1d9d7d6835d7d63b87e808f090b053341fb2a0c", + "dd05d2d3c0365d1d5ac70d5577917ddb325eea19db5f865402463ecf969fa4d38aa4dac031122363b745b07ff1196b6e6523134c08b8e87a640901ce4952ec086b5e8a4a63518dea", + "20bfdbd8e870273b7f64c9dc992b94313a5f44eac6912a43f69668ca2445b7426300db93c17aadc381a85092c649da5306c28e7ccfe3fad2293cd29cd642cec3c0fc2b94560b68a4", + "eb2e77e5c84807563e64aec240bfca8675e348b6e2fcf814c256d7088c418196d6a20388e66e161b048ff78b1ef3cbd2d7b5ac1a5e31916e7f4c8a792b194aeaf0342a7662d9724c", + "44bc89b06694f35c90a82ea8299ef040cde0dfb053e1be193c39da44363b1420e4988a88ead29a7acf5463a834daf935d76182386229c8face9cdb983435ec0110cd88d8ba38ee81", + "6035354e400ad9a79f801e5fd68e422a4d5923aacf62638f7575cba0d78b1b134c724ecd0bd783cd15b028e90f8c64de1267bb5deffc00ad5dcd41dd4cbe05c5773ae6928e0a46bd", + "dea8bb39997cd1ff36b98a0afff4258777ce5b4740c27140911ad982a5575f2a3afe8d6260564297803e695f908026c8869a5b588ccc898643c36d66fc92e71bb09c7d102cec533a", + "5b18e45725870fe4b4c2cf97c50c136e092bff6c5f4dca5c8d58e99c720cdc21d7b33e9330fc797ea6c781449a61bdd9167496e9548b2610bb0c023c96133e6e044c8fcf444f37c7", + "1e8c5f8c7c25b103aceb272d61523921697816dba8ec9917a1d2ac00d494f985615114ee7cdba4eff04808fd8234a78912cf0e8e6e1a9d13abd5efd370d20533cda372425fce331e", + "6b927d0aa143f281aa77c54956350689610bd08b2d6c90dafc4fbd280298d82e3c8af0a17f684898cc1d3306e0179e6883403e6364fd6fe49d63c174049cc32ce43e6a50d2dd06c0" + ] + }, + { + "participant_id": 6, + "ephemeral_public_key": "87441adbaa321f68f47985fec2fc799a03a5bac64eee93fb1f8f1a186f1d86914f20fef244d0fef115aa60778eb1a154e3ebc9e0c483cf4000", + "vss_commitment": [ + "ff7ef446139cfe3ef9099946e1ff77dee42a95988c47a8c08bd6564f25750c3e863e9b09c5ec76bde1a91a6371cc961300e633d9d7c9b2ca80", + "248796d72660142ff031c60593f300c92e243c7cad07254e6b81873bacb6414fa3f167e9c2c8922986e12d32a6846b2c06c9191d6d6880d180", + "9716f52b6b4466f29db902224b94364ec2d94ecfe2517e2ab7a8a06c34c4c5037c893b0001491c96c06ae2136018325f888083bb04a1279880", + "b1a0a1ed1bd8e1bff29a5602dd8fb5f51aaa51771a3228b2bdc1c08cc71c0cc3944fbdc6c4e596ef5389afe1f3de27fca0993c92434b055c00", + "921ca3fa4cbd740b40dcf0f2cd54f10b17fbf6fec2e146df8d89405135324000afdc55f1fcae618a46e2233f173c40406ba1682c889551eb80", + "aefceea4ca0f1774614b064de7a15ae56041c73bd4da171da911b46468a9c53b3409478f1767b72240a10bf6fa0af50450ce745d1c4808a700", + "07128849b063a41eea3ebfdc3091efa2d1631d139b7c5466e670fe38afa0b8575084a94d8f8f35fe230e031c1041b8ab881a1e0ad1f315c800" + ], + "pop": "3871cd989aeacc3062db99c2d9a8d683048fbd1ae7fb2b0a9c5c435f3058a5312730ec9c361cad506bc707a763fad99380ecbc7cf4558cdd00e8f86a8f6f0493474faa771382e7ceb5fcbabc7410c8f3e9d50ebc74dfb76824de6ee06ef322843e7af51f47b69f7fdd3f7d5277fadeed2b", + "encrypted_shares": [ + "22c57be1326e9319b37140a1ae0dc40e827f1e3e8615a6dad1d4baac03892a840168116ff163593dc5424bba561b2b65377c32135419660bb1854293553dcd8ffe10a23b402a891a", + "6a73e34404e42392c6b83cb54fc1798578cc81950265a13c18ab329fa0dbea227e3b5e0eb756df7224f1fa750d9c0d1ce1eb2588bd16f949eb6961def31ae382ec7f6528f9f5aa4b", + "43416d0fda689030bf02f059dc5f8c83f8239e0abce3e62cb0ca42862ea2c80999a8c404b596d9e8cce8d734aa69aee55737566ed5f98be23de84aa067248da5d92c1d07b900551b", + "b64e71332abae2e94afc94b10d03d86ac5ab87277aa3565b9ac8476d0df0b7a88f45db273b0661abe7c12baa8b3b24512965557ec5842bf8166195afb31f7bf08b4be67d0d95a496", + "2fe663eb10e2f4a5d3568f3f6834b7758bfae07e54b7670db4a6bc4cd87bc084a88d76b5efa3b7c163ade5b9da2d99c005d69f924b34ce958bf893672ae571643c1e21acbf699fb7", + "ceca6f00a227371d1851f041ae96099ae87190b435a4bcea8ff3cf5b1bc69fc78992c2ff24706c71da6ed724bca5cfbda827ef40b4901fece6938540d3d7e41b27b1ad4a63d69d6e", + "e9bb6ef98d11088817ce11cf92974bbbdec98c6312aeb7f539655157fb74f9b1e41567d54e34b765adf7b7b928666cfc6119c4fc0055b9f271ca6714190bbf0c5fe720ec226fd88c", + "b5d0553be7ec6d6afd02deb6e651a5be581234de05b06aef84ac082e4b1077d367cad2741fd74d0b3dc8edc9612195705ead1267d101f1fafb3d1bfb91fb318e3935fb29ef0f977d", + "ad4f3790ea828391d38683c6e9c30be797acab6a4259bb97499b72717477919ae43094b20d566a022bd89014ed30063fa0c0bd67da257e57a73b80a6b54f61e9442a77bf641c384e", + "d02aadd33314f5d3ff21eeaefed191a42b3bb4f7d4f0ebd357dea1dfcc1c089c26d93528d7bd410d542ee9572bb63ea0293f8cb399abce2d9f7c08915f736331613d319ee7123834", + "16aeac21961a4c6a6cdd25182c4e3f4ea82257ab86d1f78e570fa7fb5fcb74e48e136e3c6b8f03ef4b32b2d101bdc626b0702f1408d79d56f2d585966f5af70bfc68453b3f8993a4", + "424f06cabc6c3e82338f686060cc3a59ae92342a1485b7a23cd4f86e3aef183b4cb0c1dc54b2b9a06ff712715300bd21ed69d48b907a70b8d8d4c885a746a1f25bcb18d25208ff1b", + "11b329e857afcec6ecd4b651adc443e36dd1df0914fc7436722ff8007960af6a44eef2e193bcd8b09615cbb31a1d7ad1da2757ff801a48fb462af78c275cf53ad78292cdf08a3048", + "8cc4852472b22d1dcd5ef875f10249aa4f26f8d11c7b28907501bb231f465c9ebae779702a0c94570d223999fe17ce9a003c11417e8e551fdf808ea1e7ac6573afc185a01286899d" + ] + }, + { + "participant_id": 7, + "ephemeral_public_key": "93e0515339a3a9a955aa9d2c6c9e318781af2fd08f85cfe86033ad75be40253fa192535d30b0aa27dd86ec3afa92d2f0ffd77035752a281500", + "vss_commitment": [ + "3b61aa6f212a1c0d9b56b1eb0ebcd6316ed441fbb65b5b5b3c1969b0d13a4da2c7057a8ff4ce790a7d98aa2ecdadc36574ba01df0446e03400", + "7cad7f88f94e45113367a2f106a0d03b02db689499127abd13b9619d31f868ddea24b4567f3364e5420fcedffb2cb97b1a4924dcd87f071400", + "0f796a65659450039ed2bdffb2ab1c629d2f49a709bf715dd3b7a95a6126a5df06d2467c049226c971edf09c99232cb555ed58e9a3d2757300", + "cc2878a8c0a61704e68a2fcfd334690c467fd40185889279b74dde7aadd977682fdd65f354815c43097618d408a8bf54581675b584b9fb7080", + "1d16936fbdfb64caf74a338d51ca12b8e265db583f7cf809131ad0feedbb81ccab4319aa62990a9c4b77111d1d39bb0a9e9bc0f2c28aeb2f00", + "80baa2a9b0ccc7cab9ef6ed9c33f7cfa04262129bee1d52dfa511587874689498f2850824c0aa9dd48ab0514ea0704ab9062a7823e614b4580", + "dd32e55c82d043a788249530152ae82394a0f77fd24b00d161e614e98ef97a45ba6529cbca19598b1d6423fd3a0a5c44849a583b4b34f01a80" + ], + "pop": "bab87c1c6d1801d3e11fc2e3f0fd72c937dedf1afc0fd28a89a774c1878f8be66b1c431edf1229351d33f182abdd3c59cf5ea8968631dcb500821c3d4df04d6f33d8e9edbefd88fc246ffbb0acd758c1b6d937c861e30af3a66b2d20e2917a2aeb6782d9f1114ed1898c472a2bb98f1717", + "encrypted_shares": [ + "23825b68a85df15d5da4e2c406a830dddc0e4fb1fadd6e623fc61b8dd06a396da6566a078499811bc33fbcecf59ae09f508b9dfcbc02001f70f9ec5d5893893373a9235ec3e0d3c0", + "8eea41dd2f1c82db00f17a42c1c04e9766c21312bd87ac24fe5ef299e2544f7ca6f78e2d68c7a73bbd686b26409de5fd9ea479eca11dedd8da6bc4ad0ca46da422b3b13a7de86623", + "67d826d5bea04cf6d169f7541f7b69ea6ee94567cd38d110222777260de8c0a02290d07a9de88305b601155ea588e3ef378e0d38248f624008eeb17e16d76cca0fc2c5399f9b5764", + "81e9c095c423a32549efba0ab0b2b2b09b05738a8a8f7d19bfbb04790049159d2af847ae391ecf547c406ebef89f104c1e916e5a0a97abbb46943caf64f1d153a3d830d283f3b40a", + "09db439454ef383b1072456950d6bfe5c87f3953b17b18ef1d4a5cf5ed39887746ef2bcc3903bede63bf3a65fe1272489afdc167a2787414cffd417480a2981dda90fe20ab59a73b", + "1579e7513434326a854edc56fe3185e87f06f8521ba30a41e383f1d3484e0ce9c4098743c2d6daba24496ea81dd57d4c857e6ba2ee0126257ff955738ca39bf90b095aceaa748e83", + "bb47d05b080adad667641be2676d8c0c844c0b330aa9112a65d51c10a47a93f82904cb5841648f0a3446b629634ef816fc4f23e60c998d9c184c37aca63e0fde7d84b84f6144b52e", + "8f18b4ca9f79901b466d3170878f765f39f3067b3a1822f65411654ba6010a5636c81fef3739539eabf6d7dba968ff142fca3a71d0dcdf6811fd6994c6e47366bd98e720a91fe50f", + "390261a9d1b3824b55758af62b246135209da238de3843985aa75e7701ec833bdba85fe0441851077656f41f6c9b78ad13fb5ab722088ace8ba59830b08f00b28ec2ed5b1e2278fd", + "91739132ecef10d6d45ec576ffe7e4cfdbafc76dde3cae2dcf578e899309ad693878058ccbceaae81f71a61ba42bcafa33abc513bd643eae0b1efa79064340bec1c3bd363eaf4b5e", + "783472ed974299aa9c92b9a32c56646f6891736c3deb6ed3b56a44d84ab8dac26708862427c1602bc0f32b7568b40031bf25f92e44e9b568d97ab4e9bdb75eb6b821aab32491ce51", + "79d97bd4fe9165e64d23a7d17f23c3a29feb3cc8f6eee47bf09e8d3138aba0441babcd588b3dd765de37f47c78de9f0610b427c88c8d6a4b9ae84e4795d85090eeec77df572b5f40", + "d07ece89bfcddfac1ed5b56dfe1e20547ae9985c94d6b5094c04a7793918ad3ffe56d785172ccb514bd5e0c4e24bab1f79cdbe3ecdae50a6d47e93fe316c448dc7dc0049da25fade", + "9e1ba87b4c4f39525e817499f43df5dd61c9e7945e4356d5a76744669f68f376f8930889e6d83c10eda9f31e15cd062f53dc502bed14c64d21c0dfbd2c17854308fb0ffe3c582b99" + ] + }, + { + "participant_id": 8, + "ephemeral_public_key": "a002a1ba7e8f962d82c7f607167e918e0d4c81229fc1b0fafa726814262da558729796b4fc3b5cddd00d02bc40d9ef1ac542e6fcb93d961500", + "vss_commitment": [ + "b6f1326ad4edd4970078b3937d0ad79012ed8509bb3e74fe7e1bd26e34f1d3c917ecb0209c63c2895f4fa511e25b18185543efbd2e565da600", + "8ac847a8642d3a2d442c3bc9bee13e95c7de85fc4e4813c577609b5cd6b8c147923d253180c55792e39306ca30cc33176da45bbb9715c12280", + "70bd81bb5e224e9f560fd54bb6c1a39adc5be0f2512d29776e659eb89842852004dfaff49d855085644bd30c4142a86e9357dbd73553dc9000", + "2b9ec228e86799443d9c6923ef8a923c4a88d40dfe83196a960dcf61401b5f515c013cd44755b46d0d023ed2e38eae5746db474f5442a34f80", + "4acb5b921453f3eb52137f7d0ef5c5c8f7ecb646c786108a28ea33cfd7889b64775866e3e714aca2b41f8e73396ac7efe280c106ea311ab100", + "c2fb4a1d0033e6e8214d30fad99cda4427591474e9b0bf827e47c23572e9cd14eac1373449aca68c68b71b4699a067c508b626f845d4e1d780", + "a63e75ac32c79918163315f4d5069be38662212035615ab889eae5a0bb747e121df57470659af132893d1943b9d9f0224fbed150a8121b1880" + ], + "pop": "7d3ba19304864aaf8f1043c1333c7d0b81ae109dc485664079b0a4e08bbd9dd92cdf3ba21a44d531f27d44b84cbd3e588be311e1ee565b360011c89d6fb3d74b5ebf905776e849c3d421edcda692ce15746641d8d85623a3c7f663dda14bdfa57ffbffd9f4d3438ff4ba1c466a4773a421", + "encrypted_shares": [ + "eafb9cc1809a1dfcbdbe2c5e8094fdd179724b86dba2bdc2c85c376543805354a98a54d20f887d3f6ed203c025a2f807bfe932c210756f32ecf13235b00323b7dcbb27169946a2fb", + "d389dcfcc2f3384e366b1743d45c55feb98ec5e6f78ec0adf69dba8227a8bf1949b0c394eeac14054d1586913af188ddefff089e877fbbb071f7978eaaf69ec1f3faf1dfc516ec2e", + "d5d566fe2d15aac3b1526e16c990eb1e83c86e054f8f9a62dc33e5a50852d27501bb1a154ef83b240c01651730e906d275ac4157b03e40101bfd1504ee845195275ae108e79c10f7", + "34a9c6702d30f6e2357a80a27ab93ee7c4bca7d996df300a5262052f28233b51fdf211d6bafa4a77f607a4be15fac56afb5f5a3aff8df5338020303339b0a059183640d4213545ad", + "49f28ac62e3856470752401ebba57836e48185d3bca103302ada4ab51dcc1f814c39b3ac546cddb5db81ee222af99d38eee88e7ecfd2b888d3e8d0a5f2628602ee9ea0d4a87cdb57", + "dbe32adf47cefba95a7f56ca1e34df28914e543287f8d7c3b09ecc71c325d19cd248e8f7cf2432704865d63cc07f8590e117c5ba1b4aa004c49f156798f9c562b19f4003e3469b91", + "07c38b6ac58255b057abd539d99624e0d84b4e820493282fda929930af5a33b5488f7242426af4d21d087062101eae7438cf8410b2f5a33a02cb2d6f5987716c7ca6926ee911ad28", + "dcafd04b5f7611af0a50e564284d32cb305ead69aed21ffbfe2bd82217276b41cc25456a1653085a9bbe37fa0eb48bbbaf744d74d6018e5e548405b5f28dbca02a8b52d533637fbf", + "403844e116c2d421008f3983a82a12a98f13d665257ada27f9ee2c15f2c224c762702a0110a84dfb761d06df30eb04d2e42c6aff3abd67c92240ed6b5b5b2a673b101bc9f21ce9f2", + "95796b6e482fa848ccbbcf2e2631246a197be986367413390b3f16e67643a5e055173780a9d330781be24e523da1d09ef3737a0aaa50263b7932639c79c929452de8bc867fab30bf", + "cdef3442d4bb3909ff144c72cbf970621f03294be8adaac647cc1ec9653690cde6c72f0b9b84d1b3b481f205ddec9bc2f897a6a657dcbf466a706941a13d954a2218c071075184d6", + "b47d7cb94d05cc26c327790b6f02a383c599ca22aa05fb4c70ae05ff1e17d19821e71a0c72a6ddef87309bceb674af6067101ae9ec8108e63d0d9dcba45b708d5f6473fb06428172", + "c3aeb6994e20fa81e130884da4287485d54ca16fc1b4512ab139b6e8b04d0a13d7fd3076fba311cc91c93e0f9103c58900f95e6f3a8f62800da341478ce0cf02e7ac3edf5eb44332", + "6fd1c584c615802d333588780ecc1bbb08e5b7142eb90d61e86cfd66138cc94c7d5f4c2e6804e0912417bb32dc71c489433c62283db2998c3d947363eb19756d5cd5d7a5f3f16e2a" + ] + }, + { + "participant_id": 9, + "ephemeral_public_key": "1c1d956844d1a912648ae11263aeb2120ebf96a1bff288aa11b3e9258dd2dbce91d4b2ea984a4425e1c951c78453580fe5e92f78c098d57c80", + "vss_commitment": [ + "e313837666ee1e8b7cba5b0347905ba131c776b6bdd9cef45a7ad2a382b72792807591144d746caec768bcc3fe9e08f5f24f33fc354ff67b00", + "17c37752d80a2461d9c5a7b90bd0a69b9df6b3092a9eab91e1d440a63a20b5eab73c56ac45027e8df58eed99e123c8222c602e76397abaa000", + "cf2c72ca026db5df6207884ad1f82f8913744927edee02d2a94e4b9110914c666d7f94cbdcbe0c1f939fe6ebba8b7d1753941f54a92b878200", + "5d22b4dba6ecf0286db31601273887d7bc5a50d492a65b72a283f6b322eaadbc13c19a0fd33f75f645d9b4b6327eb36f6f3bd5a368e136b380", + "ebdd5d7b7adea93f64f4706d3fa4542b13cf193755b5ccfb0bbf86b2424236eccf76898e4694100ce515c88681bc4b46c3a8cec8e85041a600", + "9b7e759dc514d73e6feef063e7f81a11f7f34f537dbbc2b2c8bc6b54dccb4902fad5f0ea82842279af8351267558732111b31807ad6b8bd900", + "72e72ac04fcb910175391b4cb38bf3dc3e4fde86855d8dc02b8be3dc00d44438b9d5d460be0594033bb6a54c1fa91fd98a2f3f056f52c2f900" + ], + "pop": "42d34426e28958ad25e219202df69dacff042a1f2b8f8a517221d9816866501482eaaf4a2299f8e9e8f4051060f18c46e0bff108846f2ac180d13172f250bb14c43ad3fab525d9f71b738c1715b778857c006a3efcde1894107a4e4f1b9b4d181f323abb2a89053506eb69b4b428bc7e2c", + "encrypted_shares": [ + "2824b58765e92ece5a6f5cd42dfe23d66d621268b7c550e81a9b497ab2b7308474876c044d45c8950f085978ac506785b078bfe03cd68410b84ce0c46f3a85fcdfd9d86e72ffa920", + "1c93bbe8c8416991974fe609aa19090cc174012787f2a78012fecb7f06000a692efead601b7a6fae28c89f408e317e9af6752c08a762c30f234f3e28a8a70f0e5acf57bc2f70124d", + "3d48297839a52ddf7fccf43988ef44c4eb2f81012e810bf688143ecff3c66419b6f44d73069ed58ab3a3787833a32e4b7581dd9992d1f3d95fe0b5844be59b9fe35c2e63076cc99d", + "4b89a964392f67952d04726f33af6fb9ffb9a868d00ef747743ab9e2ca48629c94327948ca17058ce644acc1db1ba0c973be7d85b10b20244928be732ab60b0ac245150be6ca0dc6", + "5ee5201057b256fbc23e72b299b0a77c0f14f7c2e0769991455f2614d1a95329b4a46558de49d7ee6b918730e7a430590f5828d8d74ccb11a61075cbaa9a5e8d99a1da34f39c4392", + "9c64799211178b23e3e19fa87ff16ca4e1e9098d4e2cb8710e98f1fe02b325892702b28eeef88e087e1de72755954cae2c1adbc92c4d2151a2e5d589ceeba311e9a9b2a969f240f5", + "9fd62d8ad725a848e254d90e23b7e0f2fe51b7d1a8c5d18dc6bdfc2960fa0a5280ff9c1de35d2bcd66b4242e6c5a75c10c92cf39a89842a2b16d88fe3cb1b46225a871cf29cb6848", + "da4f286a38b475c5a3042e009b64be1ed76a974472c6cd60a4cbd4f76651019d8320e1196e6fbd30b03eeedf81660e7813530d0eecf41f2fd3ef6539bc247c1dbeebd34a02747007", + "bbb3fbf181e0bbc92d12b0517de050f3a9f714e5d5e8fde8ede8091337f14e4d226b5daabac6dddfd93e1563664fa3a15c243046a72f284535581104e642a60eab39d25ca364e078", + "329b3e23c0ed546b0262b2a8d8a1b5dc1ebcd612e6a57be4c518353b98e69ca21d6ca210bd1211fb7e9e5c6643613ae87a9ebf9188aa00384aa4bd6f53f24fee795b1fd98bdcbe40", + "96af0cf4d5d2b82effb803a8418a2b100761727110bcfecc4c4c4296bbc63f715c153a5b96eb2fe289348c386f6fd7b443a821e6a73d51ad6514fb9eb208cda216a862e9023edb13", + "94065de0cc1a4694c4f69230ee21d37d57966a161ecf1896be461dbd0f4605d085a4f945c4ad1bcf291b70d0addecd91f3727fb57d243ed552f85e411b7ab5402dda2356a5d575bc", + "2a36124e931030e772c75b78df34129c285ac2f445789d9e6aab7f1027fa86c05cf7773e446083e7258667c126ed56f9f590512bc013c13b5cdaf82604013aa43ee2266db8a754a0", + "9da134608e3ae74fc0a8615be4d23d619188a7ca2b37249bc5c75f9b7fa87458e22e5fbfeabe3382bf4cc36731c647dbbd7aec078787dceb0211a428fd5244e9076837561ae67a9f" + ] + }, + { + "participant_id": 10, + "ephemeral_public_key": "4bb7a5b7ccf9ecb3998688e7886e5d8e617dc430f44c38861ae87c85f0f892a3ead1364b5d12004b46d79b9216d80c24a92420584bc674c780", + "vss_commitment": [ + "9172c9c590f4b0c43c46ee971eb6f88be36c09ac1edd04d982cff294cd02e06a0035aaa49719ec7e85f17b6f5d57a00956c50045e4ce4b3880", + "d8c963d8071c04793a554f0c32e8697d8672dbee31c38dcc6003cd90589df6c52982ac30ad796dacbbdf0c6226583a60fdacf23c84573d5b80", + "c14942a82648a8821c4f12719d69f0f5439d4bd3fc00c6d35561c51602002d8be0ebd55677cfd536a7e8e8104b84ea4895786edd2b164b6500", + "522faa7536d3a9c072da4ac744d70236c0f407d513b5a8ac7493df6b31281f29ca7496690e7817ba64a89a1f051db4c438d09c60c752dd2780", + "cad589226250522a20dedeef4cb1e730f553b2cc79acac82bfcbd23aab186fe0a3581cc1e584cb86f86092b721cb0b91540b5c0e6cd41c3800", + "f53fc2bc63fb357922db7c66850ed2ac9573844e2c3a08d9f78402bb69d4c5fd8d4c3175674e594735f966e7aa1754caf3d5d617081a953680", + "45e4105c759d7848ca374fea4a9734f45140f0703f66f217811a372afa63a55ff89147d1b6f6a1d705da955c0d7351a7fdda6c82e0cebaaf80" + ], + "pop": "f15c388fc30800c9d5ed5450cc5e8013059473f7ed505b576d1a502e39a38d4bccc069af306157dbb7d51f82ea5289a0493008f1c40633e70074a87f7c8e16cdbd0ea0a944cfc810a6e2b4598cd6ec4e045d005130e97df3d34558f54e30c3f4687a774600710bacec53cc999dcdfe0a3b", + "encrypted_shares": [ + "ed04b46e4709ff00756db20f9b6f617e3ebd0ad3809add58542ae7b667f8a08a82ef5f13602096c19619f3211d99cc7acf3f3e2c2cd400d06253a324b8ca5f4f13e7547da5b27045", + "cff8c2932c3f3056f6ebcc6021194eed823d4550a502bfaa61d5ce25d57f698cc0fa84419efc88bf9a6adf1ad9be7ab144880e7e9fdac67dd99f098f3bf0a9ae23356dc2d297b574", + "6d3b5ca511ddc5b964d97f0b7c90beda08b4684dcf3c2675f642b6a4754e470d896e23e9636ed05241446eab64683b2af9f1ff45c91edcdad043a76ba5530bcd1dd1b8492d9adfbc", + "075495e0b66b4b01fa011ed4cf647e8f6b44a02adfce67c3cd01b8e37412d44b37705aecc4570dcd2956c7621c370c81b37067e7abffc4ccfd01bc58a0435df79b23aff6fe3a0a03", + "bae86fbb94e788363a5f3213043042bf1d30c254d36e47cc11c94fdec52aab220ab325dd02ce62ee203242aaf547c9fc9c7ac2c1a2251187b39ac398c763298980f179cc230c2319", + "aa7dc3c018848e42a685cd2bb16bf5d9e0349305b02be4b16febf544bacfa9f3db9ea586528057b51022b357626f38b9141ba9703aedd068317f907e82daa613cc85e041990d9edb", + "d240738e50d86ba71a1fcc4ff11d264114906b360d70473a6f73dcb5ea3b24271aa18301479fffef834dabb89d68e8ec35d188a974b0311a70e41bf449f3a44c0d6534511eb931f3", + "6de8353f1aa45cea43c0fa7382061a5461d30e5effca2b096d2930c0784d841b45c40f3534ec0118a8f43531b741065aaed44b4a294a0412ca2bd81b7ace3a63a13e8ff59f50d188", + "39ae893013ed1668019e2372cdc58f2c74aedff2f2725dcde5558b8875115f82226e50b2dc1e71fca56d63dd2e5e73a18e8e901dd72a8c8376e8a32896879b772a83c1f6816507d7", + "0a6a18598bc2136dc5bd36ead0ee1b4cc38d869b7f3f44382052d17ae001eed25af74f3e66fc8bf77173d8aee32fc433baac612ec086abd7ab73fdcf0d77009d802270edcbd52bbf", + "ca68d89b0833ee653d80054fb8ce049f0b272a1e99c4344052d1513f1a027d400a3d9010a7dc6e3f8f31184d04fb4bc82d99d6d14c25a25bcd3b884ae274c6906fe69ac5727e132e", + "66d1b370620e62e14d1ce78134d59f62314f727db52bd5ced33dd4709c205df22b1811245ccdf69c7312d45b9a4f3611b58bd2f9743d73fbe442bd7e4dc9fd0cbada1e990fb0b4de", + "0cbdfd2ad4b60f9bb6d81ca4cc6b3869addb1e18b17044ab02429031ee8da74d916d4777467bdddd6fe7fe1ff61974dae6b9d6ffe47192ced8aad557d2e7b96a50c6f8a3e1af54cd", + "0023cc8bffa366903c3e76b56db695f6f8680e3eccc754a7b5349060e8f9d6ed520334a88d95c338fed99299cba231897b4a68232a764bc624807afbe66e5d6dcc30ab74d0f3af0e" + ] + }, + { + "participant_id": 11, + "ephemeral_public_key": "e20d1073ec245fd177cfce95ac80eccd2f0825562c93143be0e95268908878f14df46ed8e831fa540228282ce09fdab2ff06f38c0af12d0800", + "vss_commitment": [ + "9ea17e7901371527759e57d52ae4a04638d33b73b26875617a2c7652e0509a20ac118ef75bc0de7071549741edced5a203975acccb837e5700", + "c0ee374ca5d454f24aeddbbeeb8b0866cb13d384e07dafaf46c78b0768b6decc815e0b7c632943c599abd57069265edbcc527e56aa17236180", + "1ef4ec8490ad81e13ce46c75f3660cb8b90bfde89898d4f26c60ccb32cbcba376b8254038103df78d48dec309df068b96f8299bcfa957f8f80", + "2cae47a1d9f2b8cf1ef44a2124ebd4a07d07897b64d0d19cb32388049faf80dcfdaa9e8bb05ed98f5b31cd60915c860a37bc3279b870e9c200", + "3d8a374e68c43a590eec98221ac1a469c25bd0b8d415fa76c8940a9c0e050746b856fb2ce9ef62de5dcdd94917795aa8556764848bf9fb3f80", + "6aedc50079dc8a113ff1a78f41df39109aded13afff83fef4b25493bb5c177610a8a26328c05b6f0ee7a12580695785e3b193d3f634fe7d100", + "cca07f6be340061619ef4f1738c2a7eff3a6f2990e55b224fe905894ebc5fae2f04390dcadd5b5d96d537e9d95e577172e7cbee0a4d0920580" + ], + "pop": "d65f0f5d577306c443db5d2413dca328673b6fd34b574114d92d56fcf700b12e592f2c4f4292f1367cd8df175e148df0a38b24b879c749d6806d06c9dc72461a156e5b3b95d49da7f1ef7e3b0cf449efe1c2e224e623e72cfc6221d4a69f169ed15b474be185238aeeb2b0d9752d9b8009", + "encrypted_shares": [ + "b5e0fdb14237dd80b1707d6465bc579e2bdc76be5849ea4059e9b5b750783dd1fe1af69cd0e9e4cbcd7d875f143d42df6705c3e8667d0287e3dfa72d769844767aa53559bea310f9", + "7781aaf6d05e875683373ee4195e959ab098325b06598f41ab27466606b6b1d58a00371127460ac81800b372b40e5600ec2352ad203d7eb57415723413e81e4bbc8e23004cfb3ebb", + "c6f7cc946733e5091a73dfa16d4548c82c5e86310da1c7cad34b8e6b4da3f46859daefe316147650abff622f23671fa23c499b4f27149408a9d2759a21d5e8fe18c33a270d50b4b9", + "b93db87508462106c0b8fe081f1d59dc8a3b0e0498949e6c731f9fe074268a9b41ec96a6459ebfcc9c688e4d89c169d5435fcf50d96e8b92a3323dc212d8b24569d078f2f1114586", + "a74858d6de0d3c8942e5d13201506245c58a597159305cac7b2a5cc49b4b8fcf79c616ad5cf258c247b1ce6e4163177acb1e3118834a99bad514d63d9c4b0e8ddbbd3580a5f6a713", + "912e022a7473855de0ae141ec2ec5d8a9f6a6540a21eeb79d9f193c486658093da469a5beeba91856da2ccf55978704dd8f47f85025158c31e270f39550d8fb015aeca2151a7fd26", + "31ec35b5764f47ffca1807c66a8004f32bebb99ec1682769565f14901a92d25f75ba5eb050a06ffa6be13623db3359900189186014fa06628a297549018d1916f73d78953a7357c1", + "53ff40ee0db6cbd930cc2241627c410d3de3fa0bd0b409c5d24722a16415f61aa08d06399ded2bd83bdeaff3ed98397935f7a06cb0a7ff49961a83110511404b29f3e2f37ee95b90", + "1b56a3b73421988b82e46ba0e47a6c0116610cf67773afd5e991d850a1e79e1af33142e1874a6a8588cf39e99496c0065133493841942720331e23307ff0a4ee6a6b5be4f5c3b10b", + "657f29b1906c5057d2a59cd3856a6b7b52fe197a451e864604f0af377491e4fcdca6d9523a72d4a5f20f736c1ea3a508f61860202868b2cedafdcb1f468bfaffb9bcc12243a0538b", + "20116e9500c7f8bdb634ce1b5b792e681b22f21665016736107ec3fcef9d55478b17fd354bcee060b28a6caa9ba0dc55cc6a473978c7f9f883f961434f0acd37b541f2339753b500", + "aba0f79469db98fe470ef2cf88ef5df49c06d8cbd82dfafde4a3c9fcdf9ee87f9f42c552dfe16cef25364ff30419355963fbe424e3aa1b5f0221fbee63cfc443bdf6abb5982dfb55", + "d25105a1f73fe71e36a09f016a8901c3e6c7ba5e2064ec22be38f6bf2685a4126f027b8886a23133c087c7e96d2a8c6dbdedd636682077483019f1b644d119afdbddcf3a780cc148", + "06042991e60172e24c9ee479b11e24d4664b0cb6292fa7982a5a9716125ffbd6d7a424f5ce5668ac8116bd1249d06acbb800510ed48a03d641a0600b100cebcbb603910abca36a3f" + ] + }, + { + "participant_id": 12, + "ephemeral_public_key": "e7ed512a84de47d600ebcf5d6ab4b65300b8af99c0bde8593ceb8edcb2a5e65683b480398cb09ab98f8700643b2724815ed7ba3171a4fbfc00", + "vss_commitment": [ + "f57a96451cf2a4e3720ad624e8398c17a08fe36fa5fae928ebc5de2ff0398f9ecfca8aba829a7a8787a4e8e6cee8cc01a41a770d99b25a4a00", + "4ac05936da38171c3e1b7eef9d93bb2ca3569b25df11c48d7bf02c73075ee6385412fd14ea4b61c760eef16cf1a1327833bb1d1b5698110480", + "cff3d0f07b44847eb5b1942bbba2f7f11b4911f6053005a8bdd3000dfa28e1569a710723956df1f359eb271435eb862321b6cd929cf1e8d900", + "e9e0802651e9b36dac99687f4056e90a9b9f5d001f7cd7d1af138d3c066c00bd83c8a21d23596331945d859ee2bd483030571463c68eba4980", + "ce8f62fea597ce355ce5fd315c295a138bbb9b1e50f3b66acb483d596d4a56dc54158d2a0e0eb38ea3f1cd584512cdf8a2fb979f6e696e6500", + "78b83cd46b21b498c5a05db7da6076478ba462f3c9c18a20ff81a34c71b31625f7488d637075cac9190042bcbc24e5f5b41a3a4fd0609b8a00", + "02a992b934299e26bbce14852f2454196014259ce365d662c1ccc98ef97e0c173e5aa457f6ad8290e9e17753c125648012c56838422bb8d380" + ], + "pop": "5fd4c35431c9f969a12ea17df0e082aeef02061727d3f133ed07af97626edd704878486b4d497b7e0b1dcc8d39d3f236c3749523290e511180501f0db75d9b2694aea4021a2b74c9839fe0b793dfe785857d4680a7aa00c5c3cf43033da57a7f56f373d597b5871cdc81f6be464dda4f37", + "encrypted_shares": [ + "19c5f7c7f3bada1d8b198950f4c206a139551aa3f6f69311c01b270d30665f757867e18e861f1c5da11be30be086822b3810106083f9b16230a6dd65cf744aadf7278ae6ca01323c", + "ddedd2d68c04683949b2bf32d7836beb2a4755fbd637686bdaca9eef0a4a880cac3b4b4e413c3c50b23b110c2a77330034e81c06a49e1ac718cd3fa32faeff63b02e0bc3741840a6", + "0181ea2a920216a69bdf1850fbe92e587ed882d3e5ff65bd899fea9465f458c81244d52aecbd6a930839fecbf070b989190714861f8149b3fbe3ab0598c848051cdb5c526db121e7", + "27cdc8a13c700c1d84935a85b3a0c6c78ff5a67ebf954ff84f789238fc255df242c16da0ffc53d0dbbd94f2346491a971db145e08cb6c1505d980922979113897daa1ff2575726be", + "7fa3f85cea4841b8a3423d4a2236ab22ecbb7c93d4cc31c6d8af1737385f48eecc8eca82189e4108e82def3fa9df0e25ba6c6f32305cc1a4452b4c03fbfbb015677d9683c91c2bbc", + "8a8fb226f8681f757f2883af551ceb3b20bbcf4edd99657e08d40d3b1a3dd81ad1878547e39e1c390cd4f89d1a9665f517d7d8a547eb35b029665f6e90941b9b68e8218132373a11", + "44f64171989d853f5add7723e919a20b1312deca335232ce0e6dc924130490096159adcdf5e2e6d232029b0e9fe46f2fb0096462057496e25c25165ed23adf8aafeb00f70f195d13", + "f4920c8f95b99db2961be815a5c93e61461e0db263f1ba7d27181b8937c271752aa784b322c60bd32a5f06d09f0f8f588186153aa80e318f340faa71f28cb2a501f398c37428e1de", + "24d32a80e38447f2a5031ccc320181e2548ac846c9f22be716d298270ecd98cd22c733ec760cfa3281a06bb440b77ad07f7c56b42e0f52aa07308c7a71a1b7e1a0b8137daefe09cf", + "ed105cf11429a3a886380477166dfe94208137c63e688181d440ca3832c5490ef61274af8ea9d7f32b4c980365bedd880074c422efa518a1eea5055c2a232103cb0c68d1cf1e82a2", + "c673ecb32797dad90726414f0d6505494d1c94d3dd1c66f8dad83ad648faa2a1026a8e342754387bbcb518de4080c074a5d3891725254c2826714763985c7622fe85b2e5c277a0a6", + "88dd8c16975041ab3a227d5d1e3460841c1111f00a36e322210044aa5b7bab639af61ac393248f56aa6fee6bb4605248ee4f817dd5173c9aa5777860a4f70a0bbc5ecb2f4966bf14", + "db7a1e58788979fc482a3ec1484036b3a8cdebdde56fd43e39f93a6bce6ea3f80c2ba69feb8d27ff5a308d43cf2f32dbc433bcaa0dce325ac580511ad0d9ae1bd1b3c4576db122e1", + "4397dd3d60fd1dd8044a5a6828417e3b9d1453c40c905a6ffdf628e0d8719e53ee056e1e1717044200f743ccc0ce599b854f318641bb2fe0248cac7ff675b9affea0bd51a0e4d9cb" + ] + }, + { + "participant_id": 13, + "ephemeral_public_key": "46d46541fa0e8d6b7716c761c676368bd10f2a00a227178d5c629525b9f68519414cbbc63f5c3b96402af02ca76c12bf485faa622b833f2e00", + "vss_commitment": [ + "9edd33e1bf7a50babc09bfa0bcca27e282cb2dad7fc5c6a17fea85c499249a8f04c4da8116f41b9ab4cd1e3b70b0811e8717ce22f6d3e17200", + "300d691bf48b2d7d2ceea2fcdd18d47db21a4882d7f028c18f6686c850b95eb5d5ce8ab291650e3fef4c2134cdae1419a4e72857fdbfbacb80", + "f436031ff2c50043384b18a96e96d61afdc55a35c38ca6d9423fd07cd1a3fb6c2a69642c60ae36f22aaafd22a3d37eb1bd64ed0215aea80680", + "723ae44c479cb986a3557d6f74ec802dad3e694fb8b5df36e900a76ecfa555ba7ec70f0999ac0cc63524b07c7ae0cdb090714e81f42bd0fc80", + "c370262f1788fb5609fc90f1d9166f174e640b79fe7cfffbf1fa90115b171cea956e384117947d3d1f4db9df9576cb42b6886f894cbf8a4b00", + "394de8e569d7baefb0e975add0ee7e25312b6f5d6d26574b4f45c43e62010aa49e20639c4cd5e2d79b21ef29a2f181ee6e5281414135f99c80", + "6b75f2118ffc5221679066a713d3c6b3bbb9100b5067442f4179f2dc3981d34c49c4ba2865d82e719350cb36fc2ae98ae01db8cf7f95494a00" + ], + "pop": "f16a13cbbbd01b222cdd7c5fcbf77c4a99de03bf486835b8f7a47ee5cbc891d625cd8a66c56a0d669b0356c216a9005a8828ca09f121d2848032cd0332af80e631775f8c41b6e2c3d9b158079b0096738f27b5f539d0ba8cd62a8795ac2414fc4501d8d6f467f01f404612b7a3d8e17638", + "encrypted_shares": [ + "06442b2c4dc98007bce0b2ee125e0427d559d275e1c15cb0e2af5246de7c48cade61b6defdfdadb6b1773c3f0be38a0788147a190b21dcc176ae312379b3f46725a613568c8091b5", + "d37736270069f41035337f78e2fd0b246a5464028f2d0de7ca5d409d37ff4dcc56543bbca2a0d66793a2b73f5dbbc8b051477b67b3f0bc2e6aad3615a26ba98440ea77e09de6cc29", + "dede861e69cf981e426edcd4dbff7ec29fcbc52617d3c4f94839f3bc03566ce5f651167f9788d2987386fdbc080717a5d3a9a6c13823ed69697a9cae94ab117c946f79f1085cc0f9", + "4a0fd29d3f334e7d1f113dac709517899e91ef218aee754c49426590872e6051a824a08163e899f8c5c4602049ac6a8d194f53a870e327485688e9e799562dd636b3d9a88e6305e8", + "833c23cfcb3bbe49c334fff5d4d7c00253aacca53b91cc544e50f2204d8c5a67c13ec2a349fb6d14f1a24832a3a4b587c64b15aff554588da6bad997270517f1720ac455fef5def9", + "02d8fe547c8f996d455db8a00ab701fb675f0e5e4de662aa6c6b6871570c915d9705666701a6f462255606130fa9965f9fb236cb6bf72331335c353264f8e162202e9827601f72e2", + "8760fa606467e5409e1de37eb210140bc2a39c6d4d671c6f944f8aeff7a9b9d56b9308ad964b6aceea8464d41b12bc26e05f07a59e16219d1e7ec94a15c57a54f5d7bfae0578a827", + "716b958985d36e91cff427878b7261328ead04b47c8fc5021b5d92ee8c8109169b798123899bf6c781c2bfedf364006f05228a945fe20e5036162203ea7c794ad51148f72a6420ca", + "4dc8ec991c83130918940651aab43b2bab86b0457065008da5fa1b6d9766d801a91fc856ab46a89c456da2f7f1bffdf5e9721bba62cf1dc95b9b15ae979eb859730fd21ef4ee30bf", + "db03991f770ec5845cefe54ed713fc34940ee6bfe84f78a48f9e0d67513046a2f8d31d43857b831427781978de69d844e211d4d2404f491ea1be94e39206da230d5e6251bf307421", + "82ca891308a21197811fa7d5e8ebb0bf3c279bd63a2eac3488b7f0def4c8c39151ba434ef0082b9f273bfc7f9fba2ba65a6204b4f03861a6e370a6407698e9abe98b3f4e72270b4c", + "4d738f4683cffb5096946eacf28a6f15ab49c8536790d1e30f5e22204a0e6efd324f832062542bc62d99520516e38dfa7c2b5a29c78d3daed5a0305c4c7e15274df264f39241880a", + "72c1322c91a1260d8bb0b3c0d94757dd99f4ff3bf3af0fbac107df99c8ecf014ac9c57b7c9832969634fb8f706871e454a689cb184e1e81cd80a454653fd98f1b46f8f268fcad968", + "48d07d3f69d7a14215f3ac178ebb24bea8cfb831e96d6f23bbf0befa1b8b2cde5947aa892be6069db0cc11c50d364c499c26c6f751cb51eec474de95e85c40ea69521928b96cdc13" + ] + }, + { + "participant_id": 14, + "ephemeral_public_key": "cc7f164a9c0d0ccf8f1953d7b4e8f2f16f4dbf93e9bbb95b1d03c7b04a19b88915900fc2f32242fa03af3c8e6733b9671e4ddfc58eac56ec80", + "vss_commitment": [ + "7aafc3a58036b9d6da677333c3cffc9abf886db654ab94eccd78d684949a91fa46dc3b06842aee9036797d48a08e375be2a1925ea20a11f880", + "94661e62c8e0b74d069035bbdff8aa3d6fde7cffad6d6619b2e02d15acba6d61c36f2cebe6ed81b3341498e3777906249f350f717a4e268280", + "a4d489015bd4fa2751d4d5e837ffd706dd736c8c4d6da56056ea1bf12ebc1ad4941acd91e65c521c046fde6ba4e195b466350779badca32580", + "c80ed16cd2bbdf842034a68d2af71e779f1d47b725028339ac35a20f04b2620c7f4280032df26a78abc45b5660bcb667d7a3c05c16f0a86e00", + "f043f706aa0557156ff515fe89390838d7a0df97d1b345c8130188a2d4d66c3be29139a06afadbdcf75f136909ab16157d700e79918c343600", + "ead3803c664f7475fdbe8d418a90c3e731d04ffc69aec0553a3ac381059c284dddd6b65e50195d2f78d2b01ce898027d75a966439950a94500", + "3bdf88308e6d78bad22e5a2fe3cb6920e986c89e7d20d6ea3d1a8b29db8a8a4db6e2812b5e807ba4e2c71b7b198da382cb2fb995645a96a780" + ], + "pop": "e95f55a24027de14953852843833decce0748f05822215703233180dac396632f9c24ede51488064c1a7175cb06e03e763feb5f6fdf6621280dfcc620ce13d2205d3a6fe2e99baceb94931245dd8f714da1d53dc87c8a90881c661bd631cdd54007b48b2a0c12ac403872e9fb1d4a0cf0b", + "encrypted_shares": [ + "597d27dc7bfc99455c755061f9bc04c048277e73d7a46b799460c20b40d7e67706a53d71ca7165cc2a66cf5743eb7428c60a72c426687a30e6a1c8931d09e9c965f88416919950de", + "0908fd8eece2df4d73526232ff9d2c4600fe6858d13f64d5819a3a698ed8eaadf72b2eb2cf0a4408ac9af0fe5b8d5162aeacfd78caa26d4683d39cba6bf2df701b6c15c81f1779ee", + "315be96ea5ad987951362ac548dc15312803a1d358570a28979d3ff3d2f13f9a09f54ac20f0c5e7de03826013f84dd528badb9111886ed1b5a2cf5c3d0fbfdb159c175fa34c58dd0", + "c131e8892fd5d7cc054ddeecd49062fcfc4b26ecc3e32221253d3aa9fb196718db93c620c7a7d889179b3dff787b3afab727c3b9e07bf47baa630ec7168ff0de77ada00580d6c33e", + "021bf643c0dad6a2bd8b8a360e907c17b64d6cdd8024469118a464fa92d6509cffdfb92dcd60c994a36d4c265d4f635241251a48bfa1aba1dfb21fedd5031cf5262545ce5e1ae259", + "8081e10fec90ed827ff6ef9beff37585481e0b6c211a7caf2274fbd5ee548ed801a7aa11924679552dc75a4003a151a551e8464485b0e56a58e340a46e022de66c637e45fbe8a557", + "dc0a3b3dfd93a7f52d888ac4f918cc772c619efd58e733b66ea2849cc3de29c6a6151015f8633bba5150ba3d61063e27b2e7b4daa45e1be2378dea040a3c9a3ef1e6fbf9f6f5e9c6", + "405d04c10241b70652b02dd2603502984c8de90ec7187f036edc416c1182fd5573de70dc98461ea4b55b2cc2b513b86fba908fb1c5465b0c87b3d6378ed62c8df45da3ad36a83e16", + "e0ce1d394da22738c8446a091ead6fc45353f68a154cdb53ffdf0ac1fbdb14bb2cbe5523cdd44e8d5bdd90d4dd1daaa8bc747b439b8eef21199338c6bdec6f879bc7f95a86bba324", + "1909723b9f07f8ccdcbbc62a8ffcdac03eeaacc392dc9cc051aa95a70a0014613f5df2cfa137e88eac3f894d249db409e39607ea768c13bbb122e9fa22939ccadca4910e6e3e502f", + "958a0eca27c6936c5a821b0aec86ed4c47eeb94d41646887e73c00aba9a85ab82344f83e81ab146d6e421633fd053c121d4139a1ba12b31f7ea8111d011a125a04d77616277c1688", + "994d0e1929bb7e2e1b559d18286c2dad0f1fea6b2aa9b66021cb957cb13dcbb140ad5e5a5f43681884de9836276f566e14e0cba8b46f109910d58b1174d5fede689a52c7a0517171", + "326badbea302e11b5373573d09ec21f9d991a31b0ea029f5da55c0946e77bb42e98b4c0d9c630c10dd644d00b035bc927fab7e1b214f25324931c5dc707338d940056919bc267216", + "778c6bec605e25a8b30d7e348bd76e642a5bb5061c24fab05f20c02242d6c06aee257a8f4701304fee82b1b9ce79a4b27a32bbb922c72078f6fdb922b052d143c2bfe5eb22ab33d8" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "59e3b1728224e5f9ae7e1ce2cd84fc9ee17bfcaaf41a27e076a49ae9a514ed3a2cdd78492d61004b86ee0e380d3e990d8f740a9da3ea0325", + "verification_share": "99c1ee621559234627fa395eb2706284bce1422fef9fd72486b0dcb046f9fb813cc5362b1174476f81e7c9e2a2fb6108cf7a6a3d6f97333700" + }, + { + "participant_id": 2, + "secret_share": "ea42417e465f64293c8237bbd680f35240033443961e39f6addb94cb4c9e6c4e59c07db267f0b13b4db63fc708deeee1292d05d674ce5707", + "verification_share": "b3d16d8c5815adc525363175960aaeef7daa17baf2be1239c740e4b3f2c1f060aab2006f6302cdf35b8619340908101ad54e6c2e9e30b12880" + }, + { + "participant_id": 3, + "secret_share": "9c4e5c7cdca3218334f86497bbe44f3daceb3a530b1e4fc9d7741fb24162f9b7e6bc92b1f76a4b54aa39656047c14e4f39cbde2cfb9a5f1c", + "verification_share": "39624b24ac85b0dd2b67aa7e731f7e51717d8398549fac6a902dc19e9c3b7bb7f19dc1fbba1c1fc509a65de63aac049bc39dde8a02f504b800" + }, + { + "participant_id": 4, + "secret_share": "5743105fa015ebb8c3f0cdfb5e1f6c66a04c2ae2c954fa8a12c781b374f0b3abf9cd71ce8175c1ed86e1dee4f5b7fb151e5062945f58b11b", + "verification_share": "61167639b5657f968c0ceb5e988634b2fc2f7ef6acee7cd5485d5d228f4b5f5e3adf7ff70024be1812aaebda829d12b3ab4ddfaefeb7ccd080" + }, + { + "participant_id": 5, + "secret_share": "2e86cdb94b8da9259ae2e44fd587c3a57bb329032ac908855dea60ef91386eb74a035bf89315caf363cb978f2d09b01cef9ff639cbce8603", + "verification_share": "5c0f8abf2cea2f9ee779f9bcba0049a8c12615cd9d7d578f28fb26bc0151a1a7f2670e19ddc4bdffaf51df68e1f87ffeb3ac0c0a1778efaa80" + }, + { + "participant_id": 6, + "secret_share": "d8b45f019f23baf444354863f99dce063ceec008708c0faaea8b110ce835eccdfed6ff29e9dc7f08d88449287008d3c95236c00f2ac0c21f", + "verification_share": "462009b88fa935678f3a29376a8efc7f6bb2d0057adbacb404b086101a556659221efae9770d6d7c6da8382bb3b0308ec167514232d2496b00" + }, + { + "participant_id": 7, + "secret_share": "d1cf5dfd5d55759b91c93e2980a6cf94d73343ecfa1f1f145c04a330859661d8d03ab1f126381606b7ea46a379ef0c130f571a626025a02b", + "verification_share": "5f6db290c2015aaf50e996c641110c6dad10068c0b570aee77681708f33395a4f8c12d3dc9edae4ed6d0f8e3c01e0b001a73e962bc95e2ac00" + }, + { + "participant_id": 8, + "secret_share": "a12f851c5a5a9b0750198633053bcfdbd3cbb1bd7790b61c0f17895b855d2cce8b5cd0dd14e19edee22bcf2d67fc384350ba6778f36e0b0e", + "verification_share": "77f4b53239b514384290549c6138b6241f2f02fc39d3b6f1c23947efbcd7195e5d46286cfcf5cee09ee1647d48528616661db47a1a3f4fb480" + }, + { + "participant_id": 9, + "secret_share": "b11d3d51f59adf66ca73457e7bba62139b8064a5cc6c7eeb263b932f9680cc52d52182cd4d74e0d9c5efe8a633d4b576a6b43a4125c9a530", + "verification_share": "bfd8165db47487561c9276938bf8ad03834315eff64512fb563674d94cc9fbf4809d9da5aa1a2c2adff3f15cfa191e404e08076d2fb72a0580" + }, + { + "participant_id": 10, + "secret_share": "efb7891d407737d6488a4ac8c5cd1c4cbecb480d4b5041a6c5ba3ec7b28018da485ba5256b2a3e3176a0c584892914ceb9dad40983637231", + "verification_share": "ba271a20d2126bae422020f0f16753a0acd722d9017d5342beb669a3bee93d63f468b7d11e6a8c8d45642910a27c70efaf41bd5149546d4980" + }, + { + "participant_id": 11, + "secret_share": "64b34a2f704bf15348d1ade111eae0d7b65bf18d0d905e4bfa0ad0d70efeae52e3ae0beaa9b4b00983d8ac26eaa72357b520fe40e7bb2d2f", + "verification_share": "ffa4aa5f48587895c23a984cebf9909fcfafbdd2af4bc2a48ab551c6d76e48e4431b898fd5a251863be5ffb0d6b49aa93aa3f9a342ec2c9c80" + }, + { + "participant_id": 12, + "secret_share": "a62491805f03167668a2faf8e8247493041d665453a02b69f3d5fc5d3a47a556bf39f5ba093dd0cb6af46f932a235eac68753345eeec4e30", + "verification_share": "7c5adfb3d18d9067756808696208d102527d0cfa5d48e14525b781760973f04f7456a5e9cb3e74ee3db45206e3d58a8e0e992c7579e9f44780" + }, + { + "participant_id": 13, + "secret_share": "a4ff7eadced6cc4763b892706ef28a5f4ae812d5b9c2585d981e0cb478e372e221e9ceb6e589efd9bac765a4450bb14a20d92c3edeffb224", + "verification_share": "f1b96e31dd8b632371c9984037f2d673bac2aa7e8e09afae28b65c786414e15c4e91b8e2c9ef138ad50e552ee9ac941a119202d4fd06230f00" + }, + { + "participant_id": 14, + "secret_share": "e6c4ff2845a9cf0665e6c120e8487a864868286ec146bb93b535d8174c181a92d78a3340074548a4d875ee9c8324a59d34f0ba010242f201", + "verification_share": "2da67651edd8eb18da5cd76084a93a90c26aaa1b8e515d81a3bdfa77e5b2d9057b58ada93ebf6066a19878046782c0dc445272daf181443680" + } + ], + "round3": { + "transcript_hash": "6d23b915f67d0da68c5606996b2f2cc267adfe4f43e5a3feb0c1518c397bbf0a58613a729d1d06dd0e6fcf114045190e33bfb5c38cfc75e9a669a4eeb84d12bd", + "signatures": [ + { + "signer_id": 1, + "signature": "fdad44a1645d968a5ab34509c611fd585a540206b570bbf6f00bed444671e60c349d3c86abe984334b5045b365a22a10781c8b4b41ed5cf500b349028f512d1aa28c14b27dc1065b4a144e6173ceb14c286feac9fa2f00eeff8a86780ffd78969042bbac64f712006584db7a573390de0a" + }, + { + "signer_id": 2, + "signature": "b75c5acddbd0c8a06d3c58647348823e77aa5dad73363906888d460f048d84dc8aa23203ca2aeda13cb3e450ca201cea8102bdfc84f8cb158019c817ab0b13a157db0ba2f9adeb786e54e4a30f346c7cad42b30695af73d9f8670df2c892580b9ec384fbd8dfcd9e395393f000150a9334" + }, + { + "signer_id": 3, + "signature": "fe4aac438800d341aa2f53aa1f4667797ed09b187365d391cbe98dab0271bbddb8b5c2a34eb4ae1505d7efd2c541fade43a43223487e3ce480aeed584b26794640895d40795c8aa7c9da194cb57126ade8a4474070fdd7726c955879084b4e41e1ea3544649021af287a6af6286c402a11" + }, + { + "signer_id": 4, + "signature": "185334282338fca3e10780eac187e4026be03315818b46ff4150c3112a5e7488435aeb6d4eeb115999e165d63c197113cbc19ba7fdb5d99180eb732b237f1a4e4787763dd9e80b01c642c20fe5cce813684380b5a3eacbf3da4269dc46c3524d8e6a3cbc7b811df981c4c9dd24138e653b" + }, + { + "signer_id": 5, + "signature": "6338cfefab60fdca4f6108c97a3277ef1b1f743fcf57bb39e31f45e18663819a6f13fd7e71de0e127d0816b7ff8088b08a2a36f6066ad7cd00b530fe6c9be860966458ebf8e3830caeffc64178c1719fbec10c6ccee1547394fcee35210102faf6b78e264044853ced1be9b98fb3e49d3d" + }, + { + "signer_id": 6, + "signature": "b149971a8a91a54db593b2e5a2a894cf579c3d9aa9ab2854f00789d1619db5bedf5916fb96ec46ff4db688a2e2a70b2c7909e600dd4b485a00d555aa0a324bec6c35cd5ecc6a41da7b25e7989eef39c4d72693c929913d277e74789d34fca07d8080d92b9fba75be1254025ca729c0d926" + }, + { + "signer_id": 7, + "signature": "030c8ad6180f546c7173c5a17c451299935260cff1901dff614a985d3b28111c7e87ee1eea44daed90dd2356dc8c5b0cc5535ad7e024ad3e00223dcf88916c83228c5eb7ff1b9ccb12ba30a1954119924d9cdae00d2af142b9d47237b963bd27656fe0392c199257edfe16df5ab00a2c18" + }, + { + "signer_id": 8, + "signature": "409c6264e89b40cbd3be5115a18ecc488a24538d71d3678389b4a1261b281b902595c5a549dca786c26ed08e7ee8c899fad81cf000e82e60004e6a9e9f8c0943d803da3d5ca6950578047af76264e5a73eac79fdff8907e1e1b683b7c88cd7bb3075a7ec7be4ddb41958abe0be2464be3a" + }, + { + "signer_id": 9, + "signature": "98d3af71b2dd5d1539ac932be7f5c0fa15192af35d49f9f4286612058d78a3ea30079913137d5458f6b15e8a8a38fb62356d9186620bd55f007a12ccaad999bbbf807f880f8e04df36b7ace6bc329d6c2e2ac8c99377f77db51575f0572a56f3f9b5f09ad4cc47bf7940423c8d3c766b1d" + }, + { + "signer_id": 10, + "signature": "0e40333970ac589ebdf27fded596525f94d4ecf4a7d3f85a12a2a8c2b3a30359627c7fa58a5bb274dc2873563ea2227e7d9ad6e5b9b231dd008a9aebda2227b2fb15e3dad115814f64d938b18a34a89ec1ccd775e86de9ed73017d92925e73ceee1206d40ea24e56e6c3007162559db720" + }, + { + "signer_id": 11, + "signature": "e1ceae95a1d7e781325890f307f5b1009cfa748e3c714167f355e6c7be58cd2e33fd9f91c6fff0f9a78d1f2063910360adc8b566310218aa800347f4788232daf586b5e5db5319f26b687b523f109e45c35480a060cf64cc60ea9a758977b18fe2680bf8be3cf0a71181fd43a5f5736437" + }, + { + "signer_id": 12, + "signature": "befa1d7f2fd4a8961a7175018e8badd4d088256c976ecc93a0ec238592a2f213e7fbb362c9357465ab51272cbb713bd69f51d78da65f9b3e80017935ff4e0cd1794735d5575bc711e3620c16195f87bea3e20c43317fa97cb8dd66b6dd1dcbd8bd10f73c66d9958dc1c068f02e9989213c" + }, + { + "signer_id": 13, + "signature": "c8f76eb302d484fb94e0e8b5d6824702d4b90d08a87890e77336882902b9bb823ec91a2f99c8bb46ead0d601d3b3f1082014b4a50e869e6c80e829131b00233f0efe4b4203f0c3d70d344f78d851cb32d8a02a768b30ea68b89aadb920a2f267e7d1a7448946ada8b75375a385e3816a24" + }, + { + "signer_id": 14, + "signature": "cf07f523959f0eb867bb361fe2cdb5c7dcdd27ba1b3ea935d3471bed9c823d7062b915fda4723b8b35296cea9fc308e2065c660d5424c208007483366697eaef6bcc1c526e251e809e5a47d27c9054dd187b85fa48f8b406fbdf03346e93da7be9c12e82004a1a36c30e2f7f9412c9be27" + } + ] + }, + "group_public_key": "5d2925ebae890f415b3d7e4de139a278c03b42155240a5279cdecbd79683caa95c75efb94beeaeb1ee1ac17b56762aab98a07cbbe8b1ea2880", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "7d5c24211e850a054f0a2b9aabf5ce1f80aa95e2d2a797d0a184b56be0532b98adcaf3774f3f9614c3d1ce4ec8b96b94ba1d629cd8358cf42701947736c0aff1c4aa85a9226ede32", + "8f591a73233805516437315798255ecb0ccfd59ec127ae2557b8a88261fbaad60a22ff201aa7d0d6e41f585346f16eba07c804c2b021cb2a9d1f08bb23fbc8a87260e60927720851", + "47e2461dc99b8c26b4e50c182a30198687661fafac6e3a6fecef11d98adc424c8af217a640f9982ab6ebd4ec5725e7a54ca866fd25b9458a232bf65901ce8df4ef7d3f9368da1fa1", + "4d5faec8f6548aaacb1e383ef74f654654ce7269ae411c2f5c700fa50a2902771ec56ba664cee0a43eccf8ba0e59850a22bea70c64373a91f9617db9e1653174c7cf47f0aae25665", + "38da0c8a47a718b1907bf926859d833598c8827e54c62fc48c8a7490fb85cff68bdebbf36175a899215f06064119e79b41b63c053d6a7a8ca0bd52a5530e6b037f2438aefcf937f3", + "22c57be1326e9319b37140a1ae0dc40e827f1e3e8615a6dad1d4baac03892a840168116ff163593dc5424bba561b2b65377c32135419660bb1854293553dcd8ffe10a23b402a891a", + "23825b68a85df15d5da4e2c406a830dddc0e4fb1fadd6e623fc61b8dd06a396da6566a078499811bc33fbcecf59ae09f508b9dfcbc02001f70f9ec5d5893893373a9235ec3e0d3c0", + "eafb9cc1809a1dfcbdbe2c5e8094fdd179724b86dba2bdc2c85c376543805354a98a54d20f887d3f6ed203c025a2f807bfe932c210756f32ecf13235b00323b7dcbb27169946a2fb", + "2824b58765e92ece5a6f5cd42dfe23d66d621268b7c550e81a9b497ab2b7308474876c044d45c8950f085978ac506785b078bfe03cd68410b84ce0c46f3a85fcdfd9d86e72ffa920", + "ed04b46e4709ff00756db20f9b6f617e3ebd0ad3809add58542ae7b667f8a08a82ef5f13602096c19619f3211d99cc7acf3f3e2c2cd400d06253a324b8ca5f4f13e7547da5b27045", + "b5e0fdb14237dd80b1707d6465bc579e2bdc76be5849ea4059e9b5b750783dd1fe1af69cd0e9e4cbcd7d875f143d42df6705c3e8667d0287e3dfa72d769844767aa53559bea310f9", + "19c5f7c7f3bada1d8b198950f4c206a139551aa3f6f69311c01b270d30665f757867e18e861f1c5da11be30be086822b3810106083f9b16230a6dd65cf744aadf7278ae6ca01323c", + "06442b2c4dc98007bce0b2ee125e0427d559d275e1c15cb0e2af5246de7c48cade61b6defdfdadb6b1773c3f0be38a0788147a190b21dcc176ae312379b3f46725a613568c8091b5", + "597d27dc7bfc99455c755061f9bc04c048277e73d7a46b799460c20b40d7e67706a53d71ca7165cc2a66cf5743eb7428c60a72c426687a30e6a1c8931d09e9c965f88416919950de" + ], + "recovered_secret_share": "59e3b1728224e5f9ae7e1ce2cd84fc9ee17bfcaaf41a27e076a49ae9a514ed3a2cdd78492d61004b86ee0e380d3e990d8f740a9da3ea0325", + "recovered_verification_share": "99c1ee621559234627fa395eb2706284bce1422fef9fd72486b0dcb046f9fb813cc5362b1174476f81e7c9e2a2fb6108cf7a6a3d6f97333700" + } + }, + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "8f9a9270561d0dbaafbc08828f30d41c342a8d4fcc5c364d7768ba75b168e4460e0a353d8fd189a3c4a6b22ece601173026a888cd4c46c28", + "e0354d9c7ae7016aa2de07c9eb0b6075205ce553ecdb01d3c1d89e7ec38642dfa2fa60159d76cfba79b3027f56b21a72dd082a37fa7a3a0d", + "b6ff6734be4d67532c34aaad94cae9b6451cb45130a5240c66d5261ac322de02e41397eeb05011793e5a97a43eee6ba767b453725fa90a16" + ], + "static_public_keys": [ + "9950bc0b58b1933452f595b8eb6de04a7d4dd7fc2301bbdb05c0ff440d38928153df7d7c400e19378b11571b4e1bf96c769e35d3866ac32c00", + "cf1a179b82836ecd0d4d5c539128cc2cf5db9b3bd2a519a5524a522cee47ff454881ba5db9d4047857b0de096e83dc22b8132833a4edf5da00", + "a8f4d91d754e65a13cb2ac8fb824647d04c4b8fb644455d1aef16fe81ebb7d1f0a3d85ae60ddb1dcdb04c37feb2fddcc400803eed7ee4fa780" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "5cb00e361b4fb9899e697c9119954ee6653db626d871477d5709a32cb090c168ddb84f04fbeff4da8af843db873155d0a00aeef285ebd8cf00", + "vss_commitment": [ + "15e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a980", + "4c13a6f8080c3f08c36664400a3b960159d37193b3ee17e720411060670230e2c9c5e65f73cc2b7df3963c2e94903bb0694d2b088889f81b80" + ], + "pop": "87183bfa98556a7c5cc69c82267a7679f17e800bdd13bba015cfe732319e4f30ba6cdc128779d6d642ac4a718dcb0786747da65e1c56e10080f3b3fb3a37fc2e8e5c4da38a8562572c9359bc4e9c3c456a6b73da6d3bad322029061f3834fc10acc65115c4444e1ba42424112716ef5f36", + "encrypted_shares": [ + "4fd7af4723dba2d8764084938c8c84415816e20a51c1132446aa6e6edfe2e4702167513b1d328a7090b6c6dfbe247151b2a583cf14e701ce1ff495cab56fb1c39b6782fd13faade0", + "7080e0795eb4bbaf1042248c665d6117d1d39d1fd86d1376c3663a3813443815e0ab5b43202b1e9b3dbf00209388697200afc38126ef818395232326240ae096211f2c7f98f6c455", + "36c30714468f58256584af5281532783802f4efc286abf5548d97e0689df89b4f95e8e4ddd1bb2db9a53e7daf9d34285f976e4d2078c9f93a223fe39ebdb805e9a9c046e8dbda1c8" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "eda1980924ec258c7bf874af55dcd61267229bf0ebdeadf7b933a278b8c555896dca83c73aa00900393f53dd6a445212e2ea967a6e3deca400", + "vss_commitment": [ + "2d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a80", + "90c87d53ef1ced055c12de84efbac946ca2db0c34cf84189f9ff659ffa7c728dbbe94f7a53ddb3ae778fc3daffdd63919d7cb636787950a880" + ], + "pop": "bb042f76395f458209ac2ba947ec861fbb012a55657a94cac2effd743932964aa6a8ac27a368edf67b6c7c85457161805fac3ae74fee104200e71aba46fc3ab8f0cdff2da308ad912405895f2cd2080758a6f0a2bbeddd17c3263edc8d86b61bdda0fd3a413348b5930b7baba2c9c7df06", + "encrypted_shares": [ + "4ba50472a8d1a23146504939e7536275b56407a3366ee20742d34eedd301ce76503a32b4b4c6986e4ff2f068951c78085bf9da7f944c06e866d551a735031c4da80a5e7b72749960", + "1f57fc10f6b00c12cf7617ca48d48f4741837208cd733e14f2b9a1195db5eb694134d70448414d0b00ca894cabde49b448f665612c07955a8a2f3e3b1df2634185df46d32a83b128", + "1a951747fbc3b3568d393a5ae6ca0c5224713b7233f3079bba562a45386582c6ac9087c2b6c80d5e4b1fd8f72f6eb9de1bf0b1fed762b76fa1901cc8953247c46c298b43df323f56" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "c834a23189953612c35719f8241c93724cf636022bca8cc24087bc384fc8d00a37cf0e11bd6e9ba55808cdfe00df98987d7b10993b1430ed00", + "vss_commitment": [ + "aa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800", + "f61d56f5ad99f6da91d9839d22ac1db8fbf1174dad541eeaf0683f7e0e2e2d01af6eca2dc274d5e5d36393b16495ea7a2498978440548e0480" + ], + "pop": "c56929d3c647547a0743fddf840c5d8363b3b91772a40a19c33a2341a1c2ad6158d6ae7537ffb5e76dc35c93abd276c7526bcaf90c413d77003c98f93f4df09d8cc22523fd1e7524cc134ba9bc25114368ff803e2e108a98d76f1bf2bcf5974442325ca5939c09fb8226e9de86d703fd38", + "encrypted_shares": [ + "f17f9ccc4b6f1b1100abbf1ebdd79eae0eb19640ecb02961858cc1b75a6426536885806044891a6fd98e88ba7cacaea8bb39ee4b91b86cf0e5424c4498405a73735447f4d5d7e7c3", + "09078ebb9856a0b83b6f73cb6faca06b3bd0c399871b95c666414e56ef091f83d6bf5e6761ba7972973d782c4d92e8f4f67f233003a29750411c6516cc5744a081e477b90c1a7e8f", + "6739b2f76690198325f2b98d7c9f8be991ccd270fc439b0818506c29c0c55757a95dd20f2e88df993f3a4804d2d1fd652b2f2015e18c1085814ed255d968835728a0da8820dc979c" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "692d92730a66096b0a971bfe712cde3dfacb726f94894c68841f8daec6cbb3c91df1be4a811aabd0a314d2b152156485b12fba9657637a14", + "verification_share": "7dcdc0aac7e24ad54a206a03f93d086f3aaaa0a999207ca5ed1798b522f7600c8136021ccf2844eb69459390b579bb13f2c285648bc0afe780" + }, + { + "participant_id": 2, + "secret_share": "05103b16d59fde2d062f2c2995b847c813728d981bb125181fb8240456efddcdc19187d1b62c54906f5365c64fb2f6c96d7fa7d4aaceba32", + "verification_share": "89fa9c64c4f86d958be5a05c3e26d2aa0dbd44f8ac087a72c88d228e085dbec18682e891b15f6c640c25701d85a80f97fc6ab2a5365effa080" + }, + { + "participant_id": 3, + "secret_share": "aead8b0d0d173bcdac3777c6458244319de1d11259fdaf03d02cf2dce51208d265325058ec3efd4f3b92f8da4c4f890e2acf9412fe39fb10", + "verification_share": "e4850a66863a281ed2529a1287c8634907629f1de66eec4c87257acf383a4b407628d3eeca24cbd2c8bb9f4d4252c4ff8157832f8412603680" + } + ], + "round3": { + "transcript_hash": "a1310fa41f9763c1470173e93c1b6bfadbe5ff5aba7eeb2954f103850c41dc6d62b782b48fa24605e2ecdbb7b879d1f8e962a70197f7b545dcc5ccd4cce86331", + "signatures": [ + { + "signer_id": 1, + "signature": "0db443d6e798485d5fd200ee44af9823326082b624f80f3ef9e26f966a559244a17775a9323938684ef394b82659d30f5e4cb5fab2094a7980dc6707614faffe173bec7f1bdaefe69559cbc11bd0361bdd03c2166a22d4ac50637d04b18b1b4ff5f81a459a98e541f29dd387ffad56922e" + }, + { + "signer_id": 2, + "signature": "b6255b5a79cb16740802b742e04b0a287d86186bb511c37db7a55f5adea5d0d2f3eaf69d0461bfc854a9c528b5ed678948026fadcdbba20780bb08e2d44f4efa6e063eb18af34e29bc0f7370d1f637b735ad3499da32138286e13f744d7b527610ca99345ddd8a463649e768c1001be831" + }, + { + "signer_id": 3, + "signature": "ecb2359670cb1f6194929a84d462ed3569b5471914137f7f5d372a9dd60be8768e16a9dd64b8fede5c92ffde1ba2bca605e3ea9b1c1eefdf009797dbc8beb812daa52b6c0d5d43fdacd5f812de0e2b2dd74fb9fb48f53cd772a11ffd5cfe794badbef5d78a5a5155d8e3d531de02c10005" + } + ] + }, + "group_public_key": "c9aa58f7c8007343ba47079ab1f8ccc67b7bedcf17114a27421a9891450007fbedb5faeb4a1586e105cca5cd4cf99f6aa1966c829fd762e080", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "4fd7af4723dba2d8764084938c8c84415816e20a51c1132446aa6e6edfe2e4702167513b1d328a7090b6c6dfbe247151b2a583cf14e701ce1ff495cab56fb1c39b6782fd13faade0", + "4ba50472a8d1a23146504939e7536275b56407a3366ee20742d34eedd301ce76503a32b4b4c6986e4ff2f068951c78085bf9da7f944c06e866d551a735031c4da80a5e7b72749960", + "f17f9ccc4b6f1b1100abbf1ebdd79eae0eb19640ecb02961858cc1b75a6426536885806044891a6fd98e88ba7cacaea8bb39ee4b91b86cf0e5424c4498405a73735447f4d5d7e7c3" + ], + "recovered_secret_share": "692d92730a66096b0a971bfe712cde3dfacb726f94894c68841f8daec6cbb3c91df1be4a811aabd0a314d2b152156485b12fba9657637a14", + "recovered_verification_share": "7dcdc0aac7e24ad54a206a03f93d086f3aaaa0a999207ca5ed1798b522f7600c8136021ccf2844eb69459390b579bb13f2c285648bc0afe780" + } + } + ] +} \ No newline at end of file diff --git a/frost-p256/src/keys/cocktail_dkg.rs b/frost-p256/src/keys/cocktail_dkg.rs new file mode 100644 index 000000000..b3b41d3ab --- /dev/null +++ b/frost-p256/src/keys/cocktail_dkg.rs @@ -0,0 +1,124 @@ +use super::*; +use alloc::{collections::BTreeMap, vec::Vec}; + +pub use frost::keys::cocktail_dkg::CocktailCiphersuite; + +/// COCKTAIL-DKG Round 1 structures. +pub mod round1 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 1 and Round 2 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round1::SecretPackage

; + + /// The package that must be broadcast by each participant to all other participants + /// (via the coordinator) between Round 1 and Round 2. + pub type Package = frost::keys::cocktail_dkg::round1::Package

; +} + +/// COCKTAIL-DKG Round 2 structures. +pub mod round2 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 2 and Round 3 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round2::SecretPackage

; + + /// The package sent by each participant to the coordinator after Round 2, + /// containing the transcript signature. + pub type Package = frost::keys::cocktail_dkg::round2::Package

; +} + +/// Performs Round 1 of the COCKTAIL-DKG protocol for the given participant. +#[allow(clippy::too_many_arguments)] +pub fn part1( + identifier: Identifier, + max_signers: u16, + min_signers: u16, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + payloads: &BTreeMap>, + rng: RNG, +) -> Result<(round1::SecretPackage, round1::Package), Error> { + frost::keys::cocktail_dkg::part1( + identifier, + max_signers, + min_signers, + static_signing_key, + participants, + context, + payloads, + rng, + ) +} + +/// Performs Round 2 of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] +pub fn part2( + secret_package: round1::SecretPackage, + round1_packages: &BTreeMap, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + extension: &[u8], + rng: RNG, +) -> Result< + ( + round2::SecretPackage, + round2::Package, + BTreeMap>, + ), + Error, +> { + frost::keys::cocktail_dkg::part2( + secret_package, + round1_packages, + static_signing_key, + participants, + context, + extension, + rng, + ) +} + +/// Performs Round 3 (CertEq) of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] +pub fn part3( + secret_package: &round2::SecretPackage, + round2_packages: &BTreeMap, +) -> Result< + ( + KeyPackage, + PublicKeyPackage, + Vec, + BTreeMap, + ), + Error, +> { + frost::keys::cocktail_dkg::part3(secret_package, round2_packages) +} + +/// Recovers a participant's DKG outputs from the static secret key, transcript, +/// success certificate, and ciphertexts. +pub fn recover( + static_signing_key: &SigningKey, + transcript: &[u8], + success_certificate: &BTreeMap, + ciphertexts: &BTreeMap>, +) -> Result<(KeyPackage, PublicKeyPackage), Error> { + frost::keys::cocktail_dkg::recover( + static_signing_key, + transcript, + success_certificate, + ciphertexts, + ) +} diff --git a/frost-p256/tests/helpers/cocktail-dkg-p256-sha256.json b/frost-p256/tests/helpers/cocktail-dkg-p256-sha256.json new file mode 100644 index 000000000..0247f2b62 --- /dev/null +++ b/frost-p256/tests/helpers/cocktail-dkg-p256-sha256.json @@ -0,0 +1,1015 @@ +{ + "ciphersuite": "COCKTAIL(P-256, SHA-256)", + "seed": "b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68", + "derivation": { + "method": "H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label) where H is the ciphersuite hash (COCKTAIL(P-256, SHA-256))", + "labels": { + "static_secret_key": "static_secret_key_{{i}}", + "ephemeral_secret_key": "round1_participant_{{i}} (RNG stream)", + "polynomial_coefficient": "round1_participant_{{i}} (RNG stream)" + } + }, + "vectors": [ + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "fd69cd069d3ececc5e003e20ce25dd968c7da87e017bdf6afeffbae9a3b3f943", + "6d29dd621960b35d24d0091634fae965c424acd714907dbbcb26d7f4515bd3bf", + "56fbd9a1e45d2a3563a97f3618b1d8f71d5bf4974a44a49da41f13080c006ee0" + ], + "static_public_keys": [ + "0312a3ddd4c2f5d497e0ef6865495e6ee0076a1afc367b6a8f66ce889d8ecbfb8d", + "0311dea5e8bff958621b81640579565e19cf457ae4d4dfcc4f22d1273f7f482de6", + "0312236aa188f8c9f51f58cf70c2add13d9fce8f8bddcc8f330eadcb3ec48e7373" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "033a67ab40136398a659df9d5814c4c4cdf837289d8e5b86d4bdad62b151c8d8a8", + "vss_commitment": [ + "0230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc04", + "02a5fa9a71b1b96c9a3d9e004d54292c942913ad1981f3a9cc445d25f5fb5f6d93" + ], + "pop": "026f3b896e98d8c2f650e3b1ae4fd043d8925557d80db410f57afc0c50d6a6c8b35ec9392d9c42d8fa6f0a6c4895c84cb4e59cf011ec4408362ca98fc5fd2be0f6", + "encrypted_shares": [ + "7e8cb8ef817b78873a7eeb00fba8bbced71124951500ccdb2a287ac8c27e9619cb3e3e5957811dda27dcd6d463d5b54b", + "456ddc006f4cdfadac38d5677eba1be629684ba5472299e5f1190fb869b4b979325b843a37e898778f9f8d60e48d3362", + "33c21cd7ced15c32590f3e6aa39c02e3646dd03c0dd432ef943ef07c1204a936c9ee7c2e056af1eaa83e35fb04aab75d" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "027455f1bd669585e088f19b22e106c5ac3ddb92e711784e4b6da1b7ec3a63735d", + "vss_commitment": [ + "03c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72b", + "024e6022ac007812f6f218005e8d1cf8f4978462f5138fa5e984de338d2cb18340" + ], + "pop": "02b05dcfffa6310cf24d9ab80d337ec92b6e12b55c120ca5fd233db432633820121e92c7b058d4e27f4964f58406e23289d1b0e1cf54ee695a434e285527e74633", + "encrypted_shares": [ + "5d7d7fa5304ca522ce93970dcedb630a9034afc1b06ac864dee3f0ab0661d824b13fe694cc8a6e462bb8472a2236f833", + "9306c022f0e15f73bfb1d686119abd5dd1a931b200df90e8c4b912e38b5c47320204f7c3889235dd10979c9318ee19ca", + "b7f270da0f5979649ede4091824441784ab4fe343024d7a091385fc2dce7630159513c3c52e97ee6e8cf599a08bfb833" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "02a483ede7cff185665b1764c9337d2983892a63385c33b90886ba00bd13a64cbd", + "vss_commitment": [ + "0207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f8", + "02374f3e6f1b3deda886c1e22d2e63e7644cf1bd4b234a0837b7d42c70b7960446" + ], + "pop": "02fc546055185a2a01a813b6571e2ce2e85321408ce560e72febfb30a3ed4800df7c9b4be3ec4b0c24a5b02c9576639977d1c20059bc78a60dc59e62c8b4dd2d9e", + "encrypted_shares": [ + "0793cbe598727514b55731e9410bde1a302cdcf675b69bf44e720b9cef8e2be5274cdd7ce33d227f1752d9a1c8a00809", + "2443816f8743ddbf215a27723f15fd2728de74c852eb143e87d57ad331f656fbbd358af9f9e306b8d06a83130af4a043", + "a774783c341fc076d2f541ea7eda47265fdf7eea2b8af39ed2df411594bab02489aba99f5f1cc812205f1b23bf274796" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "112ffc75c88657968c290f46bea1573996cd4825c79d1422b2a430dcde0863af", + "verification_share": "0314bd10010bd552adee76a83db3042a17021244f0871cb2abdd1648686f55f662" + }, + { + "participant_id": 2, + "secret_share": "2a3da9df516e7993acf0e14b2174e4eb88a6b7c7f0e2ee700905462d7f3b6629", + "verification_share": "02ccce2880c58feebbbb42ab5a665402854792a59c5e38989c14277c621dd40d52" + }, + { + "participant_id": 3, + "secret_share": "434b5748da569b90cdb8b34f8448729d7a80276a1a28c8bd5f665b7e206e68a3", + "verification_share": "03b58d6f976b6481b808674b1ff6e424d38d74f6e37d8654a7c8847b0406fce7c8" + } + ], + "round3": { + "transcript_hash": "9f20db533b5adefda4da156725577441ed2b5f51f8ebce23b5558e79012cde69", + "signatures": [ + { + "signer_id": 1, + "signature": "02e92a2b18287720fed0b858128ccf5a719c63f83854992d3c0d6ab47b36580e41d6c20a593b59599588cfec1ee9493ba002641d431329407d1ad7119f52155d69" + }, + { + "signer_id": 2, + "signature": "02595981c0288661098257e74b470db9bb7d7d2463087c03b8fc9a8cc849d6a8756431f0185d01f894ae6133cf9cc5aaec21c470a5e5ab3486cbbdc256ef71ff06" + }, + { + "signer_id": 3, + "signature": "03f4099cf86c3e2d1955dfdb634ce4057de3def9712603fbfc2ac0fb600aa6968e74ea6e609c4d3c2267e010c82c7d212aa6a07fc953c9e4353825d5bc61c2933d" + } + ] + }, + "group_public_key": "02a8b67f71bffd8c6c2e529027aad586c1f544ad42f7ea7048b0eaebf233c4352a", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "7e8cb8ef817b78873a7eeb00fba8bbced71124951500ccdb2a287ac8c27e9619cb3e3e5957811dda27dcd6d463d5b54b", + "5d7d7fa5304ca522ce93970dcedb630a9034afc1b06ac864dee3f0ab0661d824b13fe694cc8a6e462bb8472a2236f833", + "0793cbe598727514b55731e9410bde1a302cdcf675b69bf44e720b9cef8e2be5274cdd7ce33d227f1752d9a1c8a00809" + ], + "recovered_secret_share": "112ffc75c88657968c290f46bea1573996cd4825c79d1422b2a430dcde0863af", + "recovered_verification_share": "0314bd10010bd552adee76a83db3042a17021244f0871cb2abdd1648686f55f662" + } + }, + { + "n": 5, + "t": 3, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "config": { + "static_secret_keys": [ + "ff3a16d8079a4c5d7b7c268dbf918587b90aaa0074fbec26d042edde12c3ef67", + "ff174ec7b2df3e78c93bbcb3ec926d7e5b4d824b08c2d2278dfff476218f0d1a", + "78eae1231856e7fd3e869ac2b1a9dc69f265c6b65d7a5399ee4cfd27a8e15d0f", + "a2f97ccb15ebf279044192add4089b036fdd33e518c65a2f7878faa2bf7a5090", + "c76e9f4fd52c3e7861efd3c265128c0cc4c46549c1dcfe8cdd9c29397e15a998" + ], + "static_public_keys": [ + "0244cca0af554f634808afeda2fdd375edda81d81d4b3e43c016da72516fed41bb", + "02a831ce1345699bc92f0e3bb250dfdee4657099bf523da3174ca2477665a34b3e", + "03b4d14158d498a0f33d6b7802ff22c9d2a14aa9333cca62f0b40bba6af8a3ca55", + "035b542715e257ff2aacee6690a48dcf9906ed3d2db09cc6f928da3bd326a430fc", + "035bea0735d839da9f31b7b7649d1acac8d48de90761c2066339aa1d28ad23111e" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "0352bc7412666115fee4f6fdf3c7cb9eee4f68665a5ae045fec9f679302f6253c0", + "vss_commitment": [ + "0230c9653d27c310e24a3f268abadbcf7617dac032a3b309ccb2aaf65b3a061051", + "038b5133384704909d4554416b84925c0685947e13fb2197b11f845730d33dc25c", + "032dccdca17741ffbe1d94914c6e89ee42894d6376a55e2955e0d81380db4cda52" + ], + "pop": "034bdb233664e38df664b9b2ab32df0032d6024c2c427b85cfb3ff3c70d899854cbd3c5dd5d2877d349c0aeb40292e6294beb008295f2e5c1ee91e5a38adbb224a", + "encrypted_shares": [ + "05f90d198733e63b42afff31eeefbf3d58f1f7e1333dd024adb4d860d7815c2e2c92d0ed328cd6f23a2402afafc4f013", + "4fb0bce9e3a11a97bbd1f99259e2bfe3b3deb5c4085588e73c6f6988484d14f7acb8e3f9f2b33ccb6fecbad5742ecf8f", + "1443c0e57699815afaf0718a02625cda0123c2032c5654b24a5e21ffd6f1417f1aa89d2e4882f5d3e2f7157ff7ccf80d", + "007c867aa7a809c58a3be10394212b9b4c8b479564f3e086f78b93e90092e3cb359d8a233c4373c5a4e03440d148ded8", + "8c7f4e05295910f40fd1c070d8b09f2ab0b77651c8c8c49dd82c71ab64e2979a0d0e59cd9ad317a08407ae413ba5cbef" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "02434518ac140f841025f3b1c36f98616eae066dcce1140918e8c6584c4d6f0962", + "vss_commitment": [ + "0229fa1fb5ebf8ebf4c813dfb1fc41f0448a9eaf0f7e5a49c13b355e86fcad62c0", + "028fc116e6d0f75770bb43bbcfda8f1ac22d0ef1681db84c9aefbb0c0fabe64f07", + "034983506abf0596744572b7266103c63461de247866d68f5c247a146a72057255" + ], + "pop": "02d6f0a2c6f37080862c271d3638e805b998e8c8415d18b71d432c5b2ab6c42070919ef83e8caa2c67aa7e361f1226c8a34bebb875a47d0471fa131b8359e9ef7c", + "encrypted_shares": [ + "cd7f6ac1eaf19ccc62dfcaab15e8de73f265a76b144b9107f9b9d606c498e57b0ba093c1181f454aba31ed8a8d6f406c", + "8f63750cc8caacac319629d7f2ce1e1d7396d3eae80d4edcdd63c229de9bb9d2e3e68816c855e704bea251634fa95714", + "2a85b2d694e8af20bf2aabd59b686b6c2b1b8237e13951ea82638bad2310b1336658765c80aa5839dd51e775c1de4bf6", + "148cb1ccb14f968ec3a5ec3aed257c03589d69328783610339727ff344924740624760f5c16786a49a335ff6e47e2a91", + "8fd8a4b3ef2833c85a6a866d4b3b4841e6da267b40544e2795f24843d333ff1cb36bf8494f1342e80a7ca51c930bae22" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "0325bd73f96e9c50d2b872138d5c068ea06daadc68d7ac489b3b16d7a943e05664", + "vss_commitment": [ + "02ae284b33de12a34adc167f3d0cdf40c37a6b3784a9b6d87b2653ebb59a602c55", + "0348e5df5e635c767ef6c0bc905b70a0c5ec8759c2e05e0668518d8bcdad8f4aac", + "033a26d237532cb32e72d9618ec5a61a58eac36f73f11c672c251dd3a6186320fc" + ], + "pop": "02fb002527e90f9ea76f9acdcf4bb350e333d039ebc08a8dfd2dbe45f16c81c2011d844bd011cd1903e67d8e4241b320404df6d7bb73459d4b271e40774637875c", + "encrypted_shares": [ + "8a8d014d7e897a6dd47687e8adbcc294d9ddc90175ecef7a978dbbe77823c0faf2b9398d8838df475edd8ba9edc8f256", + "2123261cef5f53a439f135b6a02d744c2eea60882661337b02139cc2e1b33e1228217e752f79dc0752910a13b72cf586", + "f5c6de227fab593f4856e82763dcee3e620b465ab7f160800561bff557cefbceb22d63a925037e27dbb8b9e50643eb5c", + "77725da85e9d9563827ecbf13acac7d5105834dfd246317d32068669996e53b08ebbff401884e519c7360ebeb184254f", + "a9eeae1e744e0a36819bb6dc1bf2512c80f351f2066d56d822113cec00cc57816f79447bd1101ae38bfb79271f768a20" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "022d39517b0a937f7a9a29c9abfcb64ee1ad86d231151d670496a9bc148f300db5", + "vss_commitment": [ + "0315956aa09456d5a540d8a40c712e9890e3d0ce8f70a1a6842e108c929b0ccb41", + "02f7cba24a1a8ef8e1d1b91dc4f1c4258a09aa09b87d607fe6d9f982c3bd7ce04c", + "022bff4c54d6ca6865b199666841769b116082e018886f490e5e79061884001fcd" + ], + "pop": "0289c90ba06204f72bc8ab5720662fcddf8be51ee5e5b721b9f0500275ce19b5c5d7b82489a514d4e6a63efccc24fa0bdb26c81db96f7a4d4ecb29d1ea33efb00b", + "encrypted_shares": [ + "2bc6a87063848da50c1e4e41df99b4f684687770f34322e6bea1e06b193326220e7cd371e321275821d8180b434ff893", + "9ff7eed68cf97dffb934e5061c2c9912832ceafbb06d04fdd5f94cbcfea1782e97b4f44c98674979d7df3584f9aa6a44", + "f55c2f5f2c6c62bb2f59ca675adbc119a705b9d82cadb41b6252b4ffc3191841fa0c68909249cddb42c77c6f0c8c31e0", + "54568a47e2189f621b069c13239755cd6fc895274b45dda3722992145b823fce2d5fc8464974434ce36a405ce413edf1", + "dd65e80cf688e6ce1c36447c9445062729968615a6be6aee8f7e487e01b21c5c87a833bea8d02e0958df5da24801ab43" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "02937d5bd5449ec7cadff08a3597ad2e40b9523a6a38562c4ab05e988be112e337", + "vss_commitment": [ + "022df10bef95c6669007480217fb78602c29e31773ee3c87a56bc53ddd890593ab", + "03810e658cfc18ba6539f10fb1ef99d416f33dfb08a100797df01e92825927ec80", + "0381799570a325f933ad8239b5292d069f8f8f68ec9def3608d1945ac96005249f" + ], + "pop": "0255bbe4cf8a1a140054ac4177785da585a8f6a9c74306630b0b4045d2047290f8b1065407686a8732be8ed49a97669fa8d9ff2e59fc747d71a5c55bc37c5a25b9", + "encrypted_shares": [ + "1043252ce5761c07aa0361b8224a708ed40c8845a926faaa63db928c7cfca45c07ffebb2a2ef23538e692fd5cf0ed11c", + "19678eda1adaf485afc10e9a6d386bcc9c32787c3d80ed3a34eeb50745983bea43128d5e6f12edeaf32003518c7e8e9b", + "0acb2d5a4a62b26bdc83d4e2a6136b8b0a2f3920173f9b0bbf70dae8ff105ceeb966008763637d5d4d5f8359b279371f", + "754e7bad1a6abd2b688df21254cc80e7cedcf0740c4896e4f024edd9897ce267bbfaac1e14a9e69f4fa96d77bd05feb8", + "b7db87f00f38459818090c2e2621a14fecae3ee039dbddf5cdc55a29000dc2ca4e211acda2c1364b39e387295279ee3a" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "4c6edebc35fd4aa03539772a17da1ad68f5d06b8bbba01f83e07b64c9c95e459", + "verification_share": "02406a1e0295b29540fdf7b396644cbcc8a7657d71bc4d7f3be5f397c932f250fd" + }, + { + "participant_id": 2, + "secret_share": "0f638f2789fa3b213fc791be45149594c088c85224bc44480fdcb14b760bfc3a", + "verification_share": "03a22d5a5e78f9bdadeaa752efd1ae6d7202e61df71a17759fc3fe2ff46c2d8784" + }, + { + "participant_id": 3, + "secret_share": "72772b3e270cf1b8a6b9289fe63f045f47ddd563181dc659b29491c479d09243", + "verification_share": "03352939ce70ee57b46a3ecf84a0e202ddaf3b1f71ea028b00b5afcf3f386d8ed2" + }, + { + "participant_id": 4, + "secret_share": "75a9b3010d356e656a0e3bcefb5967366875333deec6e9a832758cf4ab808123", + "verification_share": "02aaebd062bc2459c8d0528decc284afb7cf39e3ae3e62f6dd41a1c5e17f79def5" + }, + { + "participant_id": 5, + "secret_share": "18fb26703c73b12789c6cb4b8463be1a224ee1e2a8b7ae338f7fa2dc0b1bc8da", + "verification_share": "028915eb785b5c2029df6b8e3e12ae41f608ecb47c92fdcdf3e5ced34cbe72d0c3" + } + ], + "round3": { + "transcript_hash": "e07bc2dd3667865e862ebe9534174f6f33af5dee113e1dd835185cdae66aaa70", + "signatures": [ + { + "signer_id": 1, + "signature": "0211a59c5ee949bf7a09a48fd19e5d0d3968b67b6ff023857b48a210fb22009349bab8d78fc7961ebb2e2ad5c96b9838acb7a63634cee5bf173ea272523f5bb19b" + }, + { + "signer_id": 2, + "signature": "03ff00023b375529c730901d61808d4cb1831b0afbd55ad533102059123c12777e847c0d602b03bdd88cd7cfb785151baa395a6fd0cd5aa1218b8247444969b810" + }, + { + "signer_id": 3, + "signature": "03ad529da33194dba3e585607a4621eb7337d9620b9e80e9b5b11350a6f0325e006c24c78c2acd9e94c7187bc9802a8e217b3a946f7cff97a5d24bc9a299c28625" + }, + { + "signer_id": 4, + "signature": "0263aa5714818ca2d96f9510565a011ab7406b3aa1f2c2c391592a640609f7241e1cbb9127e79c422743ce6d3f69c0e613e02410ef9e5bb9e76d4da59ea21d4e7c" + }, + { + "signer_id": 5, + "signature": "03562e05cccc1da8cdded0dec6770843f3dc7e810dcb53ccd02fc40e1f57a96535ad9d460fd29599147c1b0f3a07ba01938896e6b994f18e9f30cc8f9c9ea70dd0" + } + ] + }, + "group_public_key": "0323686a5185b926ffcdb4e90f51687749950aa6f8af76af4141a7a479e0ae9aa7", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "05f90d198733e63b42afff31eeefbf3d58f1f7e1333dd024adb4d860d7815c2e2c92d0ed328cd6f23a2402afafc4f013", + "cd7f6ac1eaf19ccc62dfcaab15e8de73f265a76b144b9107f9b9d606c498e57b0ba093c1181f454aba31ed8a8d6f406c", + "8a8d014d7e897a6dd47687e8adbcc294d9ddc90175ecef7a978dbbe77823c0faf2b9398d8838df475edd8ba9edc8f256", + "2bc6a87063848da50c1e4e41df99b4f684687770f34322e6bea1e06b193326220e7cd371e321275821d8180b434ff893", + "1043252ce5761c07aa0361b8224a708ed40c8845a926faaa63db928c7cfca45c07ffebb2a2ef23538e692fd5cf0ed11c" + ], + "recovered_secret_share": "4c6edebc35fd4aa03539772a17da1ad68f5d06b8bbba01f83e07b64c9c95e459", + "recovered_verification_share": "02406a1e0295b29540fdf7b396644cbcc8a7657d71bc4d7f3be5f397c932f250fd" + } + }, + { + "n": 14, + "t": 7, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "config": { + "static_secret_keys": [ + "df48ddb52302967fcf09be676f4bbf2bcaada6e4fc1a841bb63314257a04aebb", + "b2988923fe64d4a74bc5c7cb730027209d3d7e6ee373a770515ff6ebc3ca3d8d", + "b2e73e2da7393c0d96617d9e8bc5d89218370cfd401f7847e01d842aa28214f1", + "67f60bedac58c66f05af7446dea7a4caf07e6c6c6a30155977fd8782c795717b", + "8fa2d058c720b7384d63ac9e6b98092e557f3112ed96b765c05b68dd784b99eb", + "67c5dd6768f647cfe3424011d6f5e7ac606de3cb5090100c2e3b7cd07ed6e496", + "1fb31a964290539a99761e9f8c3e2e08286b5d256276165927b472bb908cb0cc", + "f8685bd161b207d2c530a7617142d6bbcca46678cbcb377e5cdc99b09a0ad5a0", + "35cc8256fdabf74599f4f561a71f28b66f06b090584fb290935f39ca3646c66a", + "fe3ab4deb2b950d5160dc8aa7d2eb3b017278c6cb7ec860875a602c4b5edd22a", + "e186e254cb5050d4feeaa3dadcde6ec1f4f2c6fe55a86db21fb78d4e44619b29", + "7700ce7190c7e11a503c61a12b9e5a654a80bfc06e1833f6189b494dc374fccb", + "3ccfbd93113b6ede8ac364365b9a473536ca8044b09c7ea48ec0e8316dc09d2f", + "1d0a65973e579e1f9b6a2c480a7d1051ed17565762cd64f64d8c5782621bd38f" + ], + "static_public_keys": [ + "03aa807eb96d36c62ca0a8a0cf97e6ae58902c2a6fce7710881437b8640c6e7907", + "0390edb86b74ccc4ac605f823b30402bfb56ec10f27e5d48f6b9a731bc2da31750", + "0291e3c19583945b7ffa6b73c625ce09d735a59b28381cba5bdf00fa70108406a4", + "0267c9ee0cafb6bf7a9f8c12d6e82c0aef07ce1521ea171e3c4dd5e907be62a849", + "034d15886c597fdddb828705d46d759312f6fcf9eed94fa48c356c5f8032e00243", + "033c1b886d18143fd8d7192c3e195c31d467ee452fd4b9a02356a7d79d37e53a8a", + "03bd658ec0a51bf89a2a3784d0a0311d27671cbc4c351570c41ac9a0e8c1f2aa5f", + "02b716027e710c060569e51e03a26cc763aca86a3aaf984fd5a6e6178e98da9622", + "021cb3fcfe812ba265863244de1edcb7a617ac09ed6efee5c281d5b9833b9823d6", + "022b2cb52b89d45bb2a51d2171114f460a9aa7f17689f6ff99a44511935abd0156", + "021b4e3652f13cea01fc1d62ca2b107f1426ca34cdb888facc8c98a40e1dc788a9", + "022e2c1907f6d02414dacd44dab319784f885ba81708c90dd2e5b6b590f8c9cc13", + "033e91c0980404de321e8f808122306f963379f3d2ed521ebf4d4ccbca2bc16625", + "02ff683668d034da255ff562cbb28b513ccf54f6df4f28c0ab412979ce95467cf4" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "0294804744142030e0427d780654810f5f67b96a92445f9941eabd04cc87a2037e", + "vss_commitment": [ + "02be0e193a3f0fce075ab2f8549d81d6750a49403b29903f59d5efbc1994df975a", + "025cc0658c38f969d7a9627a341829546014831612ef01d9d8c3774922b838d3e3", + "02461306654fee2dc4fdb984cb56ca6d83eca1aeed14fc5b44053f57f100d41aaa", + "02618b4f85ef685d1223231e9f90cf5965b5d9bea62888e34c418c40e19718f8b8", + "03855dfcb14064bdb095a615b6113d217c8df13e586a5f835c25f49655344685f5", + "022b1fbb6b33d5ddbcdffb22e8e46beec7dafa1b4c46e9c5042320bf1408040af7", + "02bd8e45dabd3695139f0a6bd45df5c58817e1beaa4a6fe6ee1c9d173959c22ca4" + ], + "pop": "02269690717af2098b980316bfaca2116f117f3ae6ff70a4cd5693f5640f0aeec58d382e0da4b1e642b8be050f6a844894756c5677dff620cfaa68de3ec65b398c", + "encrypted_shares": [ + "05fbe15833e6639d8f6eb25b336af8d1fe0cab753a4040a829b7f957dddd1b73a4db1cf08f846d81da0990d4054ff984", + "7d58d63b8bca11581689a50a23aa54f56b7bf71896d4c3a58a9af606253d4631f8093fe1e8d1e963b5a2eee1eee5574a", + "009994ce5f54bbcbaa231e86ae8c989793c5ea0ea4df33f7874ff921a076760b583b9be445a1ba1b108117943e1fbcb6", + "7eb9ec4b4a006c8a09e763cb80be4f8f8c10e92ac00e1c73e3341c1a948b5058b58e18d3b02ff1301ea1f74b695d6699", + "0b68e41047c516e934adbc540c169d7fad876ae05b1270fd6437ef92ab7310a7dd0cc1649ecf8c7f7a4cfe4439906e0f", + "4d5e3a69b7a14c210344de2e46b58d17406a6d33edb1dea8007c85ae81a371e31ad106a117bc491e54d8248ea5caa9ad", + "5a6fc660daded9ec5510d8d26a1e153572932fe473da2b146e96bbf11641d0ca802e82202085bcc7615ae22390a74c86", + "5c362b3c0b16c6cc6886226b6efa6fd209d6845756ce820d384c5811419b586ece0031d12e31d2a8e6fd1917e18c3c0c", + "68d681cd6a791e812991ba3e94e83c4ac8210707a99a4715c7732348c409aff80cd846c9dbf122574d435ffb2c30628c", + "24e3025d7ac3b7f47537126aeb789fa6c47984f7451391e85f976c103a2bca494fb7e56390a27d0c0de5f0509fdffad9", + "bbb69e65d555459fe4857af7e3f54558690e61d9cbe756e58101e4da5f118c6ddb4a45dd0b20f7c753fbcb7a8b41ec53", + "bd7fe948f5a40d21b3afc376e22abeb3224c6ef483cbb3a4e39954916f54831a9998469036c991f572a2e509c97e5fdd", + "5f46fd6248e72c774981b1a8d77f1e924a220d4f3cd4549ac68ef285f9235ff6ab367672194e2f3c3f58b65a12a522d1", + "3dba3ef3a5b9f5890fa8ce9c59c569618204fd807a913c12fd7a90c7584b850acca3543dc7c70dc9ef234aa60ac62f75" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "033586bb59ac0a3b4650b421d47a99d54d05ef0e10d640bf11618e1f0c9150bee1", + "vss_commitment": [ + "03d7c30665bebe878c37325defd66b3f6c01c5c5ae86d089c85f87eea9c3907376", + "03dd6e45a053829c797609fc2f58ac2d83bcd2a16bc15c08f12ca555906398aa74", + "038c1cfccd7daa25adee6120c818def2365f80a17f42ca1ec6c091cbca47aa9207", + "02928109f9acffffd9965342361b15a8edef3f3052bab79988a9dd12dab71b724d", + "028aef7f09c648a0dbb501f3cd6d90507ad642215dc767796bf75783d035cb756e", + "029c4c2e8de64f5652a8a62685e06e88fa7256647140c7479f3f4f64d21a9fec73", + "02d753d239124c300680fad07f73ba67d6f208c3668b7acd28f2a60e66938cbc5e" + ], + "pop": "02caa74f78b2a471121fca689dd1e3dd74e77acc10de859a1ba53161fe33cc1a86d905d0b0d57ed02f76439ae95690481e8558b2cb5d9ac33a9b2d67e6cff1dac6", + "encrypted_shares": [ + "6beff6e079a4964ecec533c73eabecd7dff63f0cfe50788133f01465296b6ed497c1aba5197b9c76564894f0044f9ad6", + "870d04a13f75bc500bcc93e7d3d32432ca3b7597c026c71b1c7e9ffea39f73052fd8dfe3b2ed523a7489be710810613f", + "582c1761eb1d76926e966881ea9ee7c2ee40261fad1a82950c66113e18e9de8716db2f0c0f047ea62a8b2aa40c8795af", + "9c17babda28ba4d0676a25a759d7bef897ce62ea2ee75f91bd93cac146d39579b6edee5b4f8b60624a4317b2cf2132f8", + "eab6ebb6bec2c3d39bd727773bcce69696bd2e2c243be50a7972b5266e1b88b7e56128d2890848eb6ed094e329b386b5", + "1166412a1d21f5eab445357eaa3939e173abd0672b25589251469e60ec576eeb89a1762d8d029fc25102abd762b71455", + "1c76b953c924920b9530e639d66672b2f1a96270228442aa1fb6272eae71ce58d9b17d31d15104e57fa6797e1bd34eb3", + "9cf025d9b9b3b3e1f629e5dc9bd4025423e8ddaba2328483e68cb8acbb5de444a875658610c8996c7fc242767c0714fb", + "71d322eba624b7d377ae79339b4668ac8f81e93af7ced1e32bb58e02a78968ac215a8669b374d3b37bbc35e2a9220c95", + "b8a6a6cb08fdb794b71f972fd2f8c7af368ac17da6f9dfec70dd492268c3eb101771e55fcb5a4977783a60c0944680b7", + "0e95567c183273663925d67fc43f649b482fa4270e56f11199879ede02a2107d60cbb489218f0e8e55e4367a2a91b399", + "a9b2af49495189720cf7910dedb336f4a0c04343f5856fa7851e3746952e2510dff430c103b0c8ec81af034ca8f59c38", + "b3c1049ed6ed4a613ded0adc34be30150310e357f231460016b0b8028d86b47124a4a5ae3200c02322f7f86884843baf", + "d1a99c2599ce7705fc77a0415f42dd7c7f458cf0c0c0ec3d87bc411db04053b07c496de98f245f084010896525d391c2" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "03219aa56c26c463fa6a59de234219148c4961dea21fd0c31c0f38bec81739aab7", + "vss_commitment": [ + "02c6ee013f6e28c62a8b0073b9cdd4e717023c40af6b1f4eecf076cfd72c0e2a7c", + "03675a400906d4d5f57ebda053a14ec90d59550a82177fd59fef54c25bf5fa8e39", + "03ffca04997ed1c26c885e050bd1c4997852e5563c3fe2c1849bfddd0521325902", + "0294dd00b7c3652d8e218255008d1931a83da66c32e2044237bfcda138bab96fd8", + "02c30b895f7730f4e2bbd956b5daf41420a2c5c233245f51a17247e6d2bad22c8e", + "03a6b45e0e28f1bf296d0b2c0c71a6b369b134b768c6c5bc8a2c4526cfefc380d1", + "03c126efd6b268085be966756dec3ac60cc036148475e1a8d5c0931871b4b01f89" + ], + "pop": "0275988b7fb3a73e52e77993ad71f97779f07709fb1f0a88ed774446216831a6f6111e490365d64b76b8a0c5ba5fd2ba3c641b9f0619c3cf8519b9424ff59bd953", + "encrypted_shares": [ + "615a1e6814ade0b4cebf128a118bafeabbe4b5bd52069570caa1dd76c8d15c1ce729cfb24cfeb77c07345179ea530421", + "f61a5c578fdc8f87bd7414f4aae8f526f13dff43281cf3ad8afc024fe94de0d633655fb6efa66a592c6d4e84ca5e7250", + "125466207df5c25702252951569b6f2acdecf22c581fc0c956c5b1afefc597146b07f9c14880e1e458e6d2c9fb82768d", + "a45b4f076cf763d21d6e3a2b85d9af26e1a644cebd6fc6f757502c23480c3aeed3bb20e93013908e09c1f3b1c4b94299", + "cd34c7b998d1692722ecd8b6c041c3189a6060f8d078f3481eda3e1bacc6bb69c22121024368effe6bd5e85aaf260287", + "e4e3320c2b6e7048ff983983743a9334a247a2acb444a7b19319fba0c593fdb02b268e8b17af855474aa0d441c131741", + "e7ebe4dab8bff3e8a3db2310403bb65e2d5d591676235164c4ce0133797f2c9c03a7432e17382891be43746bebd30a3f", + "6db74273aa99758b90999e6bdcde04dcd599271a0cbf01e677406cbbf0e72fc14d8213d44824b6eafd35c36be64aeb20", + "d7cc113edde109dfc9858ec7e9e33d61579ceb0e3419bf875b0963e676a32c6ad68d798c2b22ce4d0ba4c2434c5961b9", + "d523dff16746ac1b485cab77e094176050b1d7734d945be8d7dd5f003aa08a59994d71e5658a41483d06a55686aff7db", + "c85a93bfdeb38d08c73b50ac4b925fa2a72b261ecd857bec927699d66af4d7e20f8ff394de51c9adbb12e075f249dc45", + "8303f954a670c4dbfd3f0f8e4ec8339f9f8782ba8a906cb5d0f85dcfb28899b58cfe565785b2a4de260fe36684ce48b6", + "4cc03c506f4750ac7513d1a00e08f5254817ce4c38c9552b98ff6b4dbfa5ca4ca44bd41c6372fb26e7d2ca37ccb9fcb9", + "97a91d1f4c1649737b02a1878900915b5f4890ee7e4f5a09e3e771d0886d34d67965dbfd34aff515dd86752a11ce5130" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "03752e8cb44378981e7aee3de908fe1ebb411e4064de155d4c3d09c3df022db23c", + "vss_commitment": [ + "03ba8cc66420c7c0a3bc893143608dbdb1bf469dedbcaef50e6f5b58779b833f8e", + "0332d3dff1fc69d5395d52e811d3cbe693b10cc75aec68255dc88dff8aebd32733", + "0247b6acb9abd08d2deae5abc07280f9210db2c55f27b2f1d82a74ebff5d9c779c", + "02271f3f95cfa830120cc95623c8152b4f3f71b455cfc0ca9f89ccde9650a3ee5e", + "029bdab13b4f0168fb7be62da2a1706ac3740080bc7f89dd4c74e426a0ec9b7917", + "0259aaa0f0e9ff979af8be661031663368da236f1aeae59e41cd8eb3eb96431a1e", + "02e05e75c3451873675bd96133abfeba1aaeaf6df311d34d1eddbfd3c020ff456b" + ], + "pop": "031ad82d94f3fe7bee29148ada2e53716feb09e7fbd804c07e58c08a3c4cf9fa0230fe1882bbe60d21b491fd983d13c9fe574339357ff82118ab75b320b0b61e7a", + "encrypted_shares": [ + "2f286aa0dbb2e269b64c683465bc2466e8a30ed2c186673cec10591b067d1a40ca4d752daed8dad2dc284f5a195ddea5", + "12065394e6d664d1349adf7e758bf30f29d8baa193d540d29fa7e8ec549b699c5abb2c5d6f4654f0114f254cf50fbbfb", + "22f4cf5484fb3690a959a0de94ffc9d9e1e7e0adf7982351e5b7b01c0d944cce2a96c7703c43a2c4576a24ca6e2b9460", + "13c8951b1a9cee62aeb4aa54811b9b597dfe3caaa1f986b0e0ef6392448a9364ec7ee7852558c90daf2f316ee9319924", + "6824e822f5c665018b8e83bdf50ad868bb01983468590bc6e68264c33b07925e4437ae0de4efd4e88771e0a298f2ecfe", + "d009a471a21b32db47fe7a9a43f460b280c6bf69b6976c33cded6ffa0d803f4fd6bc2400c641330fb51a45d4f5bbd50f", + "ab57665a2bcf6799fccfdfa0b1c22812b5615bab1c38a59946d24d929bae5f1211c6b192338153e52e76cd0ec41e37ac", + "a258389f6fc6457180f3206bfc98f9a2a049bb1fc11c8644a3a46f47d5af1d7d1d0c51ad3dd1d04029b48d639a480192", + "a46de31903d2d4c82650e8bc1aab023fe522bd23ca60ace34d83b3912c046d5fab9c8abe95085d585efd13a10e392250", + "d67e097c7a336aacd6f10a895c990125b3e4b968e2cfa8c596a07128ee28ca76c7f8c702b8837f5002ea8539f5e8cc43", + "e31be82e3fa79a367d6ad35860e75d240125aa9f0756c465309312ce57081c69d50b2169d29f2285b7ff925c478e012f", + "dfd697364fb341418fc1f00aea9ab86a2d46a947df733cfb84b4f675723435ac7abddc03c58e05d20baed11bf6368af3", + "bec1924a5212ea33b942da397e8ca230165eb8d8dff127b76971adff0861d7371176e6b6bb91039f46fa87f27a402abc", + "148a80fea7c7950b2df082ca931d8eca074f08cebb343fb383762bb3cd2abfba3d2c49f7983b5724ffdc92ea18337295" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "036c18a2daa103a3106ac90403179dd10c6eb205fe0f8142a85528ba0a358dc3d3", + "vss_commitment": [ + "035cbcfeeab4a86fed431c5468fe98e84dca924b43efb6a098665a1c06839c2412", + "0232dce199a81d9a90686248d5e3541875e71bfd6ea250bf5bf3443905403da04a", + "02784102cbed98fff3f1e260d179586d6b5ca513dfc54daa0c733e7e6e9030a0a8", + "03659510549cc409a7ff4ea4ad11dc604528962a26328d27472c3cb231b31f0b34", + "037dfb277e037fce692fb719b073e5a7faca5942d51ff22086a34f4ae18043e6cc", + "021693e8e97250a449e1c822b9fb887493a3600b06a48f7a2c98184cbb68730bac", + "021ea69fb3422717ae4512c9da609f856906e0d9b58c34c4ce4f6e3029a14e6549" + ], + "pop": "021ed3f265628936ed49f4c6924a6019b4b4a3d274120c2372a0aecaff6345c5f1ad2717fde5849dafe5b75956a46eac9f4670b2f1b2c45ec63e42420044e1b1b4", + "encrypted_shares": [ + "b18f055de6c275487ddbb2303b3b78c6f41d8591dded5078a72f7cbda4599323c735859ed03681e8d31d3a2a15062c64", + "24ba2c1b5d472e560a08d112992fb09987348c36131e72fde5d9b2aa7d610ce0076812b6ecb4f6fddaac2c2d35fd228b", + "ca0b56278ef65a9727d846a4d19fc8e892b9a58a5f67fada3d5567a379ff069f95e5a727071a991f8a32c5e087d03410", + "299d096930e42e746f13fd26816b63ab99a6afb1a823519a40394890f338a2d3d0e2a2bbbf91f0ebd6e3359b6114767d", + "9d4781a8dea9e89d8eb145cfd9cc88832644095c4e6dac9e2a63ef51b1b1cce2327765775c2c33222f018632fa7ecedc", + "f961e98f274546825a7cfd8c70b761ce9095ccd31791743504cb0724401d900c3eeddf73385ca1bc0c67905a3274a407", + "68d709112ab62d87b8f41095752f47390990a976b3e23c7619c76748c437440b38452eed774204e6922f952a920dc148", + "46798c1a151984f2238b58d59530b7cd12a347af874ee16b1845aa9d85119da26f74ffa2af3c9018ea1b169cc2ad8564", + "6f5368ff9cf1468ff4af237579b3fdfba78ebe671cd846cf47227fe787e495bb8e73e3af570caa817946f6516b8016e3", + "7d07eec6a2067234d5a28b5f9ec48c5355fb481fed87c0d078f91b5a408bc87929e4e626c071eda99387bd85d0a3a8f6", + "7dcd9bafba3a56f343fb38d03749987a908e55b37829d4f28fa02dc192cb83fad80a5fd268d5df3de6d925f5365aa1d8", + "93982ea6ffdaac1f967eed9424369136ff15db6fc27f7aae2090e45fc7ab160fcb4b838766f5ed5459947c2f1a6c4305", + "a841f8fb4444fb24ed76c112e1f74b3219131e6380f99f84513613e4a67a343cb2104fc2ef319f00b62350758af16a7d", + "eb0c08fd9428a95531209371aa6fb9142f95fc0de5a47fe76fa80660a925d343614ec624f82f9f03fd16786bd5f63f2e" + ] + }, + { + "participant_id": 6, + "ephemeral_public_key": "033c5cb23c92642c1ca67419dd836626530b5b6e13053fc9cab2e44d8f97bb38c7", + "vss_commitment": [ + "02b167b922e3588b0c2a7baddb159f7a8c26b5053b9d32d6c5410b479879838482", + "02df7b7b224de2ca9615649d7046044e19daefe10d0d512a437891d08118aae0d2", + "036dcae49d5f41e1cda816e564c55f2d51c33f2c86a6de6d91ac5ec0c67f33f3f2", + "034f966828f4bc8b273d337aa434da29c7d14be6c78bca3ed338f859e1a4447523", + "02da21d2a0f1ef58c4b69910a9783009e46829eb4f109d4f67f6c697863b83db63", + "023549b1b25d2396e44b9468443f036492c72631b24a5ac5ec3b475faba6110bc4", + "03892a6ca75ff655473a7a030264a7d39a844ba35570cd4a88ac60459faa41fd0d" + ], + "pop": "0379ba28433b8fed7c9a3d201adabd39562c73bd4a2b62ef38a1fd291babcacaec74bd0f08940a49a5788fb26423fbd3a601d0e60f2510634c5d013d25af142f5a", + "encrypted_shares": [ + "ef7947943862b711fef9731ac45cdaf859b44f713a6bd98e4788553fc4aaf582a6cacb6e2c9d3cdea36892c6836ec255", + "0ac76804411259053e01458d802ef8c8b24ba476003886d490c2fab0bddb14e339da4a9e0302c5e34bb51bde8dec3078", + "0220970ec7b65dfe9cb1ccad9cb9f5cbc5379a5292925d2f3d95d85f601d5c79063578f03659d898b9521ac93ac1994d", + "48df70252bcdeaa18ce6f0d4a60ed658d807e06ae7d782345f4138edbb259b3f171e90339be30dc9f76ba037fa7a2bea", + "58260abffac243499be555ee77d9cbe03784f0cc8255f1cbb79b079e8a428053cdf1c06ec8f589bba63f264adc89bdb6", + "eba64c6d1c475e9fdb0ff887d8c3759e2ecbcb46fc28e14945099ca3e11605e159a5035c8d9b32040dba2579a3d12732", + "33d5cbfc3cd0b076c24d0977a129dd72d168413f95f9f6d20d60554df3a8aeb0961a8bbb50af32016b4e92c0217d951e", + "6f611b907eb1425d1e4ee8c3b9c92e2163056b1f6a26c5b3903eb259f4cbdeda03b3e1c494ca62bccb99abe78316b73d", + "34167f50c48dfdb69b77d7fd4f589ee0e3d93a71b7a6a31de9eb32e61e2bf633669080084b44cb3242aafc7503073b06", + "beeb900b6e617d74ce4f10adcfd8faafe89ee68ce2d43144923de46520e7120a6885a166266728c149e0bde567e4eb80", + "bafca43716d31a93e6509e3721f58ef878710399e4c693975355530c9fe1fe4c86712887bb70c39182883fe397aa40fa", + "9d48412cb50369241347034cb24940c24bb4f8ef197198a8894559c3dd4a8b9d08b240bb76ad870426251161dae91d06", + "51d53668fc3f46212f40e39e2969d5a5496081b788673b8b45359f99619633a29b708db7eb7bf0d1696f191bf3b978a8", + "2490dad1287812825444ad51d17ddb63b94c8095c485e03f9cabe3178befe32e8e0bede9c99fc05e839db64b29ee7f57" + ] + }, + { + "participant_id": 7, + "ephemeral_public_key": "035f0a9845e9aed7360bbb901897888862f18f85e64eec0245cb7f210e9065708b", + "vss_commitment": [ + "02bda7590d5969604d78b09a5ab00aaf2e76fbc4549f3195ee517b45c880353d58", + "0352e77a2a18c6a2a793b7ea0b4bceecf1269d802b75e106e6fce357b81282d08b", + "03a2918f07b3871e19672be0cd6ed7403e3cc507f7817ad7a8d51b842e7ad0915a", + "02d2988638ba9a09955ff7d3bd1eb5b311a8faa2f9173b66f6cfeadaa6a7141cd9", + "0212bdfcfac42442d8322e4572bb33ae261784e60e93e83c38fc9b608615aa5339", + "025223e3985cdb974270a4534c66bc5bd5bca5d9d8e9dcdfe110a34e1caaba9a46", + "0327bd5cb93a8be666d4b88e2097c05ee5834d1058698c3aecf369d3112c9637e3" + ], + "pop": "0229c95309045ff8d7f2ea4642de22e3329e0b800669aea4188010701893b46a91f73c43199150dd2568caeead6bb6e00df1bb049fb9d5815ec76247b796b2ce25", + "encrypted_shares": [ + "32f63d26e49d5b308782c44f6908e26bfc9902c1b0032194c1984b4cef32967a9b1fed2f0e69cdb015d0db405e3bb9ef", + "f1661197bd41c9f7a161184bde33f3afd5db4ed09be4e975e53c24011145c84bfa76801939579dc8aefee66ea2ee5bae", + "b1aae086a8f8930c8fd62c3ab2022504899fbfd24e0a013cdf672a289e013f819bc988d4b674bb355c9d386d977ad317", + "421d7aeb425ada608d1d29e06bf139b4211a6a814bdbbbe1ba799f6b115f57509a462aa4b3d7cb4ffd2c920fa146c594", + "18f0bec358aef20f1c71b4d4425de7ed9770c7d28f11df2f9b9b9dbc37dd51bc8be0bf3b267d15de90fbad4dcd168109", + "9cf7882dbec9a4225e3004083116300d68a16292ed3a7c12584f06ec8039a9b95c316de99c685cfb434b40db6ba5297a", + "ce5eba7a77308fb49a991ac3711305818dda5cfa41eea1e59f78ea26b4fcb9ea1b71872115873f5470b5cf556aae4288", + "1c03dccb93407ae05a3ec2be642e534b150593217c0830e1e27e5764b5073c3e44843f9cdaf5772f7f9b8cb6de3630c3", + "eebfd8aab1d6d84f977825a98f23664d5101059742081a8d19e2c3a39572217497cd8040c5c63f8d2a4f13cadd2e10e8", + "fbcea464a2e2c7388b8fc5b151c493efb57abe8d4c66dbbd0a38463c82ff039f625ecf7e82035e2e2ede364302f07898", + "344811ddc8f500e3a7a9052927bac5372a2deb42cbee852496707dd170439c445b79a93d87ad36d8260bd5e77955fb78", + "a65ff79323d66cc478c01680a7eda946477fc3bc97c59cc4268e2bd471d1fac63c4b8d359d8bef9bb5c3bb329251dc81", + "5b32a25ceafcb81ef0e055deef07f2ff6bb33356a5306551877a19d51d53bdb751f86b374d6739a9a598152b083c4922", + "6233a26d8a0cc0799bcfe82837eda03d65aaafda065925fbe51a0a3d3061f22a32cf553b20a0aaaa4615e6128bbe8246" + ] + }, + { + "participant_id": 8, + "ephemeral_public_key": "02b31ee89ef09143a6ba35bf5caf2d4cfd7541e1bda3ff0152c1ea11e23f9d2824", + "vss_commitment": [ + "039b874043fb7b2fff2e33f3ac87d7809cc9d454eb0e794e7f238b8bbe87b94416", + "03add0f324ae01568a1841a8ef1d115246174d207dd82137ec694c751f02f6057d", + "024e45562e4254755823ac586887bb9f54785fff1b9b19b2efcc1464950911cc69", + "021cd543c6e52eadf51249e65f6140d9280f43bda413e83bc91c980201e4178aeb", + "027d028e2d4e9205def1d5abcf5f93ef963583120cd4fa5a671cdcc239cacd87dc", + "026f89433c1ff28dc086b1f37919acee073145f605feabbdac422ef8d23bf149ef", + "02793e95cd166c2ab1e2ab251fbf054578090b5e9e08368f13002981efc71f25d0" + ], + "pop": "030d2d53f1cfc688b53c132ed1898b44c93dabdf4bfa6548680a10c6021c03a5e2fc9f8fe9ff4e3f07769edc771cf9986b4edf2c0816fd35587d767c5a6260ddd2", + "encrypted_shares": [ + "630ec98b2333cab7668cda6835f137fcc6c04b896f490761316e6716c12ae45e9efec81ba59c0ff2cccd28b7233bac52", + "f217a26eaa5adff03e676aba7be0368655af5285ce04c8dee9918fc13c7f66ce796dfbaac6955426c68d11f9fed7b934", + "5c1158fa404501e305ccc08576907ac7e171feca34868f4bb95617f4b6c62dc80e5b127a81fd3d24a10f8d6aea9e8023", + "49c655ba73e4e7a03d0573f77e3ae29174be4a295385482ea10b9b446fdb8e134ee91af20dce6b1e18a8adc911d1d40b", + "2c33477c532e8b995ac6f288d1e02778cb9f198afdedbb1dc4c334f5236196e330bb18f00e4041ee937eee91f98375a1", + "326042c53623c372ef0c9c4212f08e72dd0ff9a1e21a8a9595571dc3d6f1aec7f51baefdbc952b8bf5b9ed9a25b97ef6", + "89643def6092f07cb3bb5acc452298dc783647d65d5a031c1b47aa0438f72de2e960c9bd4307d3d642366ab8163ff70c", + "270b1d6edb74885157c82bb6159fbccc4dd85af2721ade21d2fd26231012c103687fbb8b303a513567c4c537b60214a6", + "c37622533559872036bc452795bda0acdede84776df2f944623b16f293d5fdd34ddb5ec8534b9b2a94b3b13ed8657398", + "4cfa9f3a78e0229bca1bb1db787508f238425b5fba2eaa037905235bdcee7a40db1c033aab29a420cb95aeb7d69514ef", + "6f1fd234d84844519f93d98899bfea6d1003cb15927f47e4f153958e409cedb38fbc542c44cfc2226bf1683f58e3c143", + "fdc4d6386f8953896a2fdac9c0b69f8ff7c8cd8cb6ed22b1c449d37ae78521b4ceab40ceef0a2c14780cd2fd5151a51a", + "f5fbe8f8ae21c12c6529144b918f963fbb5a3018a584ae76e02b905c6d4d00654b9172fb0ef2fda43fe155ccb09c8680", + "c466dae7da688d876b986e717540ec105b3aea0bda746f81607981279cb7cca828ae3e2405a4578f8570b23de59df905" + ] + }, + { + "participant_id": 9, + "ephemeral_public_key": "03b38cf1e8d8e1c56dafebf3094b9718267dae09b2260167a2617cdcbd68b1caaf", + "vss_commitment": [ + "0388b02dff15638d943864faeb799adaaaa5d80bb2d89a4153c7cde48f057aea35", + "03e838d7a48ce2831794698b70abc6b929948805ce0923361051065fee29e169dd", + "031b965950f12e914d162a55d748f60fe93ec30595da52e44831323ffac3e4ff4b", + "031073ee0d1ce400b524e90a2abc397c54c3d10c1661d4391d93dd3140fd247d98", + "02495f68c303645f5a9f1886422e85378754d9f7199f4f195395dbc458b0a59e85", + "03fddfdf2ef6036b6d9208567fdae196560cf2806035ccd9aefdab8f21d60ae8e8", + "020f8eccfc9fd07bd6877f382e34b47b760887e89a53883e15366bad946d630958" + ], + "pop": "0329d9e118ac622dfbcdb787313efbc904b49701414b7ff603ecc35f2db06085e606e7ebc09178672b8002f005d97f9810e73e02d33cc73a9ef72ece9fe3e2dc3e", + "encrypted_shares": [ + "923a590d95f2411d48b09562bba5d99a714d6e4a60b35db8a31bb33193ae58f5c966814a52992e0af01e3432271a7cf1", + "73be3dabe524bb4ba7f71d25cfda320de11e3ba03232eb71bd91fa27c8b48bd2bae2531ebfa586bc8013b60af39fc326", + "b4da36df1f135bac13b3d4e5d566ec5aa52a522346b6272e6cd0a8f15d2e8ab0cc3282698fe42a00af87a839dafec819", + "338d01985cb677198c8506e0152b6f5c0f93947f60f8a175a0747d5a60db597d9ff74cd5134011a5e8056e558b5bb89f", + "2d611a083b368b21b2c9e0852aa3d28492b15833a69d09d4409c2a1a9785de41fc08009b490cf5b36d404359bd9e0126", + "39d365e233684c734d048b06efa815ff223df5784e67d5d687405a756913148c71c471c8b0325db2b36403e5c9802b5f", + "c277f2ee81223748843fde668e47c91be64bb7a4f1497ec03746c36f3f42ceadf82ee88c86a8afb502cc90c23b183c38", + "af8083a2dae1cfd15167326f3685a99ae3d420bb6bd9184932921954fc6b18bcd00d8bb4850f73c8ee4396197981798e", + "c7bc07be46a544eb227e671e31743e03e05da3dffacb0f2eead47620a984f4694baaecea97677827bd80a4ab5019b0e9", + "4f688e407636f8497a84e5246bc9934b08b59127d507e83eda8d5aecc8bf2fe15fd872664f0ca6d1ce28beb199002231", + "533f842eb1c28e42fb18248e7476ec864fa7e72a87405367e64b18bbe80360c44afca91e581b6b9aa7be6a5a15f69332", + "dfe36eac282bcab432bd8c8fb9546604fb19f686e32dd79fc997fa2653026ea8c8f9c03b654254f1d775a4d9465f1c62", + "00e23df0e07658d196f92d3aec021b3f4b1df89aad4706d44e111da0e7d594d2a29fa4a6b055bb3aaedad3b8c54f77df", + "f8f4c1a319ad2ef7af773cea3df487ed7ed191161cc0d6800ccbb4d23de0cfa9a0310f793b9e0a5d490436af790c2753" + ] + }, + { + "participant_id": 10, + "ephemeral_public_key": "03d568c152a4ad09bef315837f7f4bfdda34a6eff3b151923866deda089e716307", + "vss_commitment": [ + "0374a20a2d4ea4b189b0c6ca7e9976635d7568fa8307f447d66a134f84943f3ae0", + "0322d4dae63fab06bb8e9ae2e995ff5e4a5687ef429be885cbd7a123bcd4f75500", + "02a38dc227423a37d1898c7da124c7024a70d7ec304ea32f8913eefad6b30b6d9b", + "034855ee072ce3b0c177500e72e8e93833c8db79881a5f2523152a628e7fcc8004", + "02b5405bfe554fe927b72329ab530fceb939844921b2bfe1f98fe12e8a325265fc", + "038de09b7dab7228ae8c920d44441f503ee75652f1f08e9b797ffae8283af62094", + "0270071e17f69ad18d515a89d385a834afe53955460e254e9ab11630e557446e3b" + ], + "pop": "032bf888ccd7f5084d9ca1af6d62b38966cf50ac7c3e739cbd1719ca7426b10d5a2f5a3da35c055dd6114b50a6af0c1884f9df83f34848cd8eea445eb57b22ed76", + "encrypted_shares": [ + "d2b88b9b4d038dd037f2c56b8f09ceb71a50d6ecc60a6b3d0cb2d09dc6013a92cce4d4a5e4f1d74990bf34265798121e", + "622d68c54a40d6603c6ef2347a2a0891d0abcf77c300eedcf0a547ef99ac35e0ba97b7c389adfb3eb3eb07ee02e99810", + "589f187f93903f9ba242902790ebba958ab8bccdefda2fcf87dbc37914d0a276d493c32b357fe3974b9af3dc9df790eb", + "dfb6ceb3049c18ae5e2028d92b8e2ccab947f7da8ca0d30a3d4863b50193ed6e48767512863a96230cf1e9301fe4bc6c", + "f36625c518a6d69371cac67db5420d2d9c9d240a8d9511e9dae63556d7de6a4dcf7e518726c9e24edae464246da3b9ce", + "904d3d147c2ad158e7b2b4c94af66d47298d16a417b87a0688608c55cb3a6cb32faff015522226d4c4a063cc7307aac6", + "cf6fe9bb81d2b1b5945050540ec0a6b518153663626fed31bd3de929f240fd5bd4905f92dd400bef360f93499df94176", + "bbcc37be7d6040ae8c69976c4b0591730664f7bbb3111549115d2bd96e6e65f26502d84c7cb6b2b9329b58256b6bb7a4", + "64fb66c1360b51d6be2f288208b41129edbcc645453f09ee23c311c2ba2f3f345b11ab4deaff041826d940d18cf79df8", + "67b64aecb3ff0d4a965d79501c2e23f771d7535ff32880e19c5a128f81ae7e21eb3af76c48d7b1d189f3f87e85b6a478", + "9bd86a52318863629f4f7f75c84e051916d94244c9e70aae7ff9ad6f772dc32ea2fb5fd51c04c179689f713c4f4bca2d", + "0aeb6dba45689072cae19d7ddfc77d93d189f759955c2856bb073af6dca4feafe480f146e17fd78e5b0c01ca0e48d883", + "ab3a3b917bdc233aad205eb35981c347ec9b5cef5889faa3d5f07cfff9b7a46d0e9e18dc18012cf05737db8e7ad77e37", + "c8160869c5cef46fca63781c46e42d1dac23320dfd88ad31c3b72e416d3c7d00acb0a17c28ae3c92b4d29f83b0fc0170" + ] + }, + { + "participant_id": 11, + "ephemeral_public_key": "038ac62f738230ba6f898b5906891617d33c4886c1f043f8caf5685f91351eaee8", + "vss_commitment": [ + "02ba30fde19d7aad01c59f5ee2d149d107da95c98ebcfe8657617e15dc465183d1", + "03ffb06d7ab01940af04c22c60d7c6461dfb959ff9372aa75848e21fd5558ca4dd", + "03cdd4445bb49dd6736703947df1e7125f14c4aa8033ad642395a45c4129d3fa71", + "0397e2a39cc409504794e4d99bac4de15b6d0392553b8e2af029776a7fd4a9ee86", + "03f7d0fcac904c25cea2fa36563b155470c8cb945c71d460c3037832d9f044cb24", + "0340a26b661b8465929513114f3b98c3b550be4175bc59245cf0351857e8fdbeec", + "020f500e1067a60e62878ff7d66e0da6f0376bab9365a11db9ba997fec8d7d835e" + ], + "pop": "0357d6b0bb54fa5114b411a172ec3df38835c7559bdd2157ee51a222ec4f107ae75e08d94c0f3330939ae78abe0621b1c499ce9fe2dd90ea92af6b4d4bd724e252", + "encrypted_shares": [ + "ac519bfef518eedbd188239ab9fc4809ccf52db2f57318f4dd4c9863538eb84c1fd0cf93c752b148aef6682fc05dcf50", + "2c2178003ba50f1d47eb9aa692c8b298eed9cee748da9b333625ea02a04aa01260b3abba071ed4c706362f71b9739c8f", + "2087eb10f98edfe2151aef5b8464b2ced2abedf3e8491e5d74636bb33dabe35ebd2399b0777236dc16cf8a851fe5d463", + "a03ef9014ecf81e007e0885c2bf57d16dd9cd12d99a4bc85f20358b49114bb57fc0e10d12ce83b8c8d516316687594da", + "9bf22b0b8f1e85fba7242e8bd48f6e1fa90b72ccdb8cca7b7b25c3b15be38eda2baebd18b21adf325f5f5eed5aa17706", + "0d922fbfd32476f5ac2858e460585ce0861491f8975848b7002de7fed4169fcf83c3c28bc12546d7d15bafd389a39364", + "daa48106e1d892f3cd8a07441ce53952c7dd555a87dd0c0f7be22c904ffd95499311963aba38f8f051435837ea8ea2a8", + "fb63bb7ab0e6c3785816c960d3ec9114473841531461a140126cb02659c12aec01dd45c2a63968417d2c4ea26f024718", + "7163f1a7c792ffc89936fb4d13c6c392d5def045f3e307ccca1768ad366d660a3bac6b84ed00d74825824eb63ae7bb21", + "50b935d64eef1ab18b64f6fed344808bfa3f65c2c33868af406bff5233a74018d35a4b23ad9ac5344191aeab1b422c28", + "b44f03af40057b1f5cac93560db6cdd249112379d39d7c242c82bc6c79c10720d9639de4ee7f45fb1416b6d5dae1a427", + "5b94c35ffca9604e30f9a29d0556890fd3a8120e3b730ee20ce0ff632fac30f74efc763eebe586b1b94d7a818947ebaa", + "ecbe2569f90d9d4f165b196b621070bfa15a2206552b103638300d4130a4ec1da69d0bdae3b03bf8af7fe1f4a4278ceb", + "a97bb6e128fe7f4a87ab808d0bba78f9f6788435616c9c290e2f96141b462120c6315654ae4468581f7c0b00a98212fc" + ] + }, + { + "participant_id": 12, + "ephemeral_public_key": "03e91d0c093f7be1eba5ec660a8405b84ef88c4217d79954dd9823a6554129a57f", + "vss_commitment": [ + "039a59f07fd8f82c2c02106ef89c799a4f57a2f15e355e2987170b27c925d30881", + "03a6d8e7561d9545ae4a422fc2bcfdc6c1f8d6418af00d956416eb0579a4fb6be9", + "03da796152040d12df126307020faf4148300f84f5aa39a91a0f6ce64d9e6c4799", + "03ca50596da3ed31873a565729194566174a93c5988ed3c191ac412acb9368437c", + "024402689fea73e67b288669f16915d96a8541a6d86af479afd6087d8a85f03bd9", + "024c1b7286fbac6244d638b70abec74fe2d6985b2bf06ded039a6a77e13c591d95", + "03d6fa2a766c9496a6f554d2b2a937502fe00fbe93306ac6732b93b71c62f5484d" + ], + "pop": "02deea5cb3293d523637585e1482c808a946e2729aa8940c79deadcdc1c54c18c10e73e195c01f77efc68bdbbfdf3893f511666c4585c300f351a17262b0833da0", + "encrypted_shares": [ + "bc79f5fcd30c8ec6961bd1c95d734a6b055c272c4d9cc03ff7ca7ab495ca9e4e07b94c9b97f76b5584ed041a57c22a3a", + "3153b9fbb6ff7a05c4998bd63040ce6338b51ea4b517304a15857b45ae6d2558854cac13451a8293b0092ca152346bae", + "449d0f40ab40367783e0036a02d21b07e49c3f5c6d7fd3d1c2468585dfd09f2c174c11ecb50fe8fe433a9d8e00b42ffa", + "088ea88e709060e650ce95e1aaa7cf0cb2be6c441310f22a9ec38628a295f55292b5f35b8b00f9ddf18927bd49eb26ef", + "d80c99bc5e11e633b1b7935749d9fda5175ad78e3cee2bd84df769c98590da62fdca93ade7ef879bbd71845f3b195bc3", + "9a1804f8aca29d4c5b43d167dcb3649a07717216777082d7b4b15b248dde67a1365765fdfc5dd1a45d510063853a1ddc", + "3426e3ef57f2a745970de3d592914a39baf187ba10cdcdef7b0514aadb49da72eba97ca343ec82dbc78fc8c79b695b0c", + "7c7b84469a8fe46ce485d853377fa2e661af9b1d8ac758f687d7a7bdce205f7a345c3439aed129974fb8c6ce510683e9", + "627c381cfe440f7f7c3809a7f9409b882c4d58e655b8a805c44f804690580d9557916c199d1e27e46bd80fe608de5ade", + "161cfa19ea4a2f512614b35a17a095e31f1404197425a67dcd38c7540d6c27d568df860bb993f1ae18483ebad7b27ad9", + "8964a99220249a91d591b73e0c7bd5f33e813894b2f7588915ff8aa5dc2cc6fb2b63b47f8d3901e6c1ede2affcae50b4", + "3bf9f709395519a9af4d371e8cde315700fa0ac6c775d96144f1a7bdf21cea0dbabaa7705323c85353a08722798f8d43", + "9d512a7d330152109c7b14cffaacdc4a58b1e0a47f284ce4c996be80f9b430e710155626d4628a9348f655e0fd4c4a3d", + "e1957795c31193a262be8b37ef1adcd711eee07982fd08c10fb70029899d95479a9a1c875b00f63bbc0659bdb510eea1" + ] + }, + { + "participant_id": 13, + "ephemeral_public_key": "02545b034cb36a3623d614bcd47e5a51e24e24d7baddefdacd86411fd9012b4404", + "vss_commitment": [ + "03aa1afbcb10b130fc184f115317d20912e885e547b3c2a41469db62ee6a39100d", + "0352d5a10fac1b8e91ef004be8d51ae394c4a09245d3655d4aae4f9f165fda4fe6", + "03c8203379a8818e92ed6c2990d3762398ab452a59f2cf1b3be2658d6e6954411f", + "0261c5e6c8384deb7a165a091f57a97b5b24988105609b81a30899137caffe525b", + "02c9be38386e1a00bf6b0c313ca2b0903843ae8a74a7beac6844aca2d0fef0db9d", + "02f020a388a5b7ab4e126f09eef83d2ca83e808affe85ce5bafa362b0545c532d7", + "030074d718b3d043b3bdb66bb130ce3edc7cd158e2b9c6be3a2f7842049361fa0c" + ], + "pop": "03933349e6fc056522148d9dfa5e7d5fd2c45120e0f56f3411601fd609226e3ba84d33dbe69d05f44dfcdf275e6958256f0cba5496c1fee77d9503d2a00a452faf", + "encrypted_shares": [ + "f2eabd1b1246ff7642564f68fd8c136ea7079786f5b8fa50ee0b2ad21ff801deb1a3dfb7bfb5d867c61152c2843f50ce", + "0ac9c2a3a0a42bca2fa394957b91c7e4f3aff99a4cbce0fca342bf2f37aa00b07a8ae7c70e4ad8f063864dbf4fa0a422", + "5794b8e02c60c2124ddca2b46c0455fc23fa94e2f3087a756bdc5847f7d98c2b18a571ce7eb61beee20b4f36e9d2f21b", + "efadcab9443f63729d901b21ddd8140632357bdd3a059c20d4e8828116294b9ea1a90b27811bfa1cb83ea09a17ce19a8", + "1f78145ae4fdfd29d614bf60dec4fdc9b34240f646f483dd5153b137c4961b7ffeb730e2e91f9c88a984dfc22bff966a", + "1a1a79cdf3b10d4fdbc3025221ec0f1fe4bafa83b1bd1a27652882615bb6f1244721d0d4dfa35e65eb526af2c9953ed5", + "a10383f35ac7c3b82548e39204514078aacd75af9c8f6f36d68cdaa1959510eacee3ba2a2832be31b2fe6a4dca2e049b", + "8d0c7bbb4e8532527753102aaffb7e24142641626d8f089aea7990b6562827dc03c6e81f0c00d2b71daec965bbfc1d53", + "3e0ed3ed590f47e14253ec6a7068120827e1bd138d880cb3edeb57e100bcbbaa6a32df895de509d688a1f5ec3255e41f", + "ddd0b4a83f61b4dd1ae79e36ce59ffef717f856643d404a776a2a0b8a0d972e2e6f6b7df999c9a3c62e85f11e84d69a2", + "562288f5fbbeaf31100f063ab0285f3b643966d47ffce7bdef943b1e077f6403a604e612a042e4c2bfe63cca419a426c", + "b86692934d1bfd9907f3fc8f8a3f8e98f3833086e54b87ca3bce070fae889d48fa70c23fb23febce4d919c49aacd3c05", + "a8b08dd99381a5dfb4b4d270dae32f8d439c87ea6eea5201afb6862c2929723d81e3136e2c3e6b6adf8570a2200e5d64", + "22627bcb0b65cb726cd82fc6cba10090d9dba89b69eb3078b8eb816e6d13020c079dbfdd2f21b161a6dc1922be8ea1d4" + ] + }, + { + "participant_id": 14, + "ephemeral_public_key": "02b4394cd91f111229050fab452fe9c4daed89dd6d3a7b5f81e1676170df9a7e98", + "vss_commitment": [ + "03ef1e07ebd93f16ca87fd72040df99f5cf42f9d9b0e827062376cef08b237b2f7", + "034ae5e7c1b0eef72e1b30b2c89c7d303965a94b9523f1e09f80e7965702e756f3", + "03dbf3b1e4a8baeafa68b3e20231bc73d1882263af49f00f3bc0ce6809d566927d", + "032034c893ad9cfe43dd8033986e1b52bc6d8c2f06d1f70799b9a4f2ecc8833196", + "022e75aaec4bc8c3a8bc12ad164df0748b0416158dd4f868a550bf8244175f3035", + "0334cce1e773d284b1e06265eb098e35420e9227d57e4041009f508335295271ae", + "0272aa738ec4fda91dc3f13bc918cd819a5109cf60b99bfd24f8fcee66ac34038b" + ], + "pop": "027984a319e998ed4ad1bec8a05135caed82abe0d59e99c722560d1d326797e93e7591d1e350ae155d8f9c396f4aea149a27aa5ad57ec214f772f5b056b77ac042", + "encrypted_shares": [ + "e4d24c01774cb026255b89401e4b6c1c91aa71816f24c4128cc4b76e068e3af42119d98c5eade7f189f8fdbaccacedae", + "9c2382163cd04f20d4ed9ed8dd2aa2cda9dd8c7480a4b83d74260540ddebafd456a42a88aa5a04e30b18dd178d8a779d", + "2041bb14a5455c5dfa1132b4d469a9287de48adb5ab7e2d47d4fa022d62786cb5f80e65cada334f4d45cd580d832f20f", + "ac52303f720ed072c619925128158ee7a44abe6c83abd1674794b2827b81dfa1264b76cb1e3b79c7eb3c727182c7babc", + "7ac6b834c41d38118678be7b303a151852193c8dc3fc43c0cb80c4a5acf8da95533efe986b145b8ee0aba7364cac344d", + "1b99c23299934ecaac4f10df2ae0c89481d64b8a37201d72fb4937ab8ba9e895562ab6e925625a925a25a37cbd53e7a3", + "3a385bfe8a37d494bcf17c3680e8b66c4e963d3d4f7d9241f853dfe2549c1dab64201fcbf124591f3b41d02e4293e79a", + "d66c4af84dda4f3df344ac53057c69bc2c2868faee7d0c4f8cf60d2c6d87019c6398e8a03d46f4b34ad8ac6c5c59a476", + "0444a2e11c743f1d22cb6b196c81e3c6ac6b8939a0b0919789039ce30031b3ddb7cdc8f89e1e6612ff27f6b85602a693", + "5ab42f1ce6ff28b5ae4e3d1a0a1e0a128a418335e8508f1f5e2887a60412ccf9afeaa6d65ce350e2080638668636afef", + "cec716dde8018859692a77d092ceec3def1d7d90fcc7c7ce8c592de3f021b1c6a84b445168a8712d2819c65e520b8e93", + "4709c705ca13e4692b5a5533aaa22ea30213ce021bc0d7a8ce0d9688289d51568af37558f8abf1d73b3a4599726cfbe0", + "90c1eb7aad4dfa6dcc41e7a28b86622775f27d32548105a7ca7fa83bb3705657ba46ef5e7f68e3a74ad2dc3c5679923a", + "54c3bd058967ce40a9c6b7cb4150162f8bad21a7976fcdd2e57ffe540a4ad56d2f4a58fba36c2b0be04ddf1806c626e1" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "31c11e7b3303511ae5b70236717ee6c996a7d36e32a07e5c7adeca6fb836ed27", + "verification_share": "025b18b60bcb8458af427fe61b52f1dd41a6f22fb1ace7aa5a1c3e22b2a80aa81a" + }, + { + "participant_id": 2, + "secret_share": "1b8b4d0aa4228283dfa14d07ffefc24a2764f83a69b1cfc7bec04aef7047b791", + "verification_share": "0311fd0213d232f3547188694dbb24793cdfc45da5dfcb19549bad97bd3c69b455" + }, + { + "participant_id": 3, + "secret_share": "5d7049854b0ec0b266a89d8477d2ce4e189fbeab01304e41d4684b13c027e21b", + "verification_share": "034b45d16c9a72d80f9505fb73b65ba8f4411f4430a21c5b5a5f8f0fba87da05cf" + }, + { + "participant_id": 4, + "secret_share": "093a2e063c3781459f9ba763bf2da8a338ef0ffc5f9ccb971c97c2e4fdd1bc45", + "verification_share": "02884c654b4f6d19df7c76e5d405d3e028522f7fb1ab35bdde13e2997acf31e113" + }, + { + "participant_id": 5, + "secret_share": "bffadeef6bdf4af4a78c3407e4f2be2a6466c1f2244ed5a27edf50abb561a92e", + "verification_share": "022e153ba09111011e3339abcd241f32501016a80bc02255a2fb3952c4c5e697e3" + }, + { + "participant_id": 6, + "secret_share": "4f6f1b2bdbacdad1d0af87ae2b073a4d9cb11bbffdd513827a6a7df8eaa588b3", + "verification_share": "03e4dcb617f646309a202619320639218a62c945cd5d1971955237ff02f0144ca9" + }, + { + "participant_id": 7, + "secret_share": "1ba7edf31d41da1d968cb1ab914869be47a3b994ca7d9da4f076ee96388a4a65", + "verification_share": "03efaac5e6e29b0ec212dafc12122b45e4bf77ece89483b3c9d75dc5ec656e00ce" + }, + { + "participant_id": 8, + "secret_share": "54fa822829d7248f4978c7b4e190908264da59250aa03728e798e1902c55e01c", + "verification_share": "02d7ab84edccfc432a43e0876dd86e0f3f8830220c478339c77b3336f0f8c8b6a0" + }, + { + "participant_id": 9, + "secret_share": "fa3657418ede9f2571610c323cbb334c02952f6a64538def6add46109ba62fd9", + "verification_share": "03988c658d2c966e685b357489654120dc1a6375f0d3eb2ac7f47c306f4444face" + }, + { + "participant_id": 10, + "secret_share": "a721d7c2efaa9f75e7e2ff9e28a8d41d0aa2f22affd08d33e6fb0df1121bda6f", + "verification_share": "02d1e05274bc9e97100b83806e4a2d7e6a54de0ad10ead869754e03c1580cb6fd3" + }, + { + "participant_id": 11, + "secret_share": "2f3d5140dc1ae384a9b25cf01f42223591a770084e29184eafa8495a3d66dc2a", + "verification_share": "02e8480ddf1b43092188b4e12c36f9003bdb278ac6dd07f81f1c869d743a4cd81e" + }, + { + "participant_id": 12, + "secret_share": "04cc4df9fc4f1a165f4d01129e7a9d4f8ad1f19f0c4e5deb3417550f7f726cf9", + "verification_share": "038c041ad40b98aa5ddeb30e7f0c8e88a7c7a5a614c53f3bbed39d7efb79fd6ddc" + }, + { + "participant_id": 13, + "secret_share": "6c254ffc915efb879cfcbd64b952ac25842233d3623b565e74243c41862c6ff4", + "verification_share": "03915d3038e25f2c08e367b120f3120548a616d0217bad578a459af68968e653ec" + }, + { + "participant_id": 14, + "secret_share": "7b47eddc4b17f324da27154729d9264577a0109281e4f309e74b22dbf75bdcfa", + "verification_share": "0361dc5bf691cf59bc00db0cd2801d740b8e00cba4404b8daee4ecc6ba3b142282" + } + ], + "round3": { + "transcript_hash": "dac02f58675a0646e6d72c46683231f30fb49eb44739b829bbc1c18f70f72b8e", + "signatures": [ + { + "signer_id": 1, + "signature": "039b07ea55654f9dc908e73bd52ce0668a9a9648ac5ee05134e121b865b636e286dd5d3318a6b3a94ebd638852a2d74af0d79e47027931d59be8dd913f632419c0" + }, + { + "signer_id": 2, + "signature": "0232707ee86eda35a04b41f05fb990d87d77085169a6d2d8dfbe8973084df74e65db2b118f9b94f83fee1528db2b0995c7582fe67fc90c6d9cb80b064ea79eeeff" + }, + { + "signer_id": 3, + "signature": "0293d75c5a837739a759070effe84ecc2dadb85cd745ae551c62b207048f1ef6a25a2b0a4398f3b8ad4447460163cc9b2d120b46696b01194487ad6ed602bf4447" + }, + { + "signer_id": 4, + "signature": "02f94808dc59e50957b01609ca6ec240bcde6781b4a6d9c607409be1e0019f4b9bda1e27f1b3071b12fe5fd3c525bbc1f808b3eee51284dcc7a7138c0d95ec1479" + }, + { + "signer_id": 5, + "signature": "03cf6302c231e92bfd5ac04bfd540862c40783bdbba95e1915283bffc7efacbb6e77c6ae407646696e741ec8cab62df3e2ac54fee567602338dade3a65a3caf24e" + }, + { + "signer_id": 6, + "signature": "0390b01403b274d40732de40489f2f8f96c675e865bcbea73fc71c88e6198bd817780cd85c067a04ee12d80d95a820480e792ba14bc2df2bc979038c923762d5dc" + }, + { + "signer_id": 7, + "signature": "02e3e0a2e9b86ef06e865bccf5bd04df9c9d21942407e42989c12510f8eaf72387e02400245f23a096c3e57a2f89c6970ece6b3cda3b87c8dc180de8116566c146" + }, + { + "signer_id": 8, + "signature": "02ea1849909fb414d74bf95ebf21ccea9c4958bab516b7d690739097232d9d085b52c7da80464ada07a7775496f1824d102d48a0a5e684573c92bcad55c6ea6bb2" + }, + { + "signer_id": 9, + "signature": "027bfeb893ab80b35b131970339401824f3ecd22cdddc4701faf320859921ed93833ec3cbd1a833324786f7fdb8f074fea0c220e3e689d86c3108acb90bbbd1e8a" + }, + { + "signer_id": 10, + "signature": "0281cf23107520236d381dc0f90716f43740c728997cdc9ee04da0a437f846f8e7152d250982711c397954b7d61eadc47ef2bcb39a9143b33d5102e20edcb7622d" + }, + { + "signer_id": 11, + "signature": "0228f6055a9c84c5d8fd8ae31409afe121f3e28ef8e60257880be71b61c511b11690e9b69b9f76e10056ce6c4eaee920f404b917b3b4ccb987aede0a5f971362c5" + }, + { + "signer_id": 12, + "signature": "02aed3b126bbeac6a2c796348a09a239184e6dcaa268d1f04aee353a9a686eaeb1c12ac443bb21e3b809c995e8beb185d0b92f538dd9cae1de1bcce7a4e53f5331" + }, + { + "signer_id": 13, + "signature": "02b2da075ac3b5c8bc387eb175fd67b96b0ecbbff410a4cb45d5662216c5a28818e5d3a6aa717e79efec2b139462e9eed485b8c7b6ebbd0672e7f8f9a4841a383e" + }, + { + "signer_id": 14, + "signature": "022237745753385e3299241df9190f66f0a83b0c89dbdfe0a1e2080ea54e4bdfbbec23c6c3b5c4c15a9e7dd9124a218d37ee64e7aaa64235b45763df0fe4e2681d" + } + ] + }, + "group_public_key": "030354ea2ae5e1eda262283b474f553683dba47f9060275452cd137d2a2c2d4992", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "05fbe15833e6639d8f6eb25b336af8d1fe0cab753a4040a829b7f957dddd1b73a4db1cf08f846d81da0990d4054ff984", + "6beff6e079a4964ecec533c73eabecd7dff63f0cfe50788133f01465296b6ed497c1aba5197b9c76564894f0044f9ad6", + "615a1e6814ade0b4cebf128a118bafeabbe4b5bd52069570caa1dd76c8d15c1ce729cfb24cfeb77c07345179ea530421", + "2f286aa0dbb2e269b64c683465bc2466e8a30ed2c186673cec10591b067d1a40ca4d752daed8dad2dc284f5a195ddea5", + "b18f055de6c275487ddbb2303b3b78c6f41d8591dded5078a72f7cbda4599323c735859ed03681e8d31d3a2a15062c64", + "ef7947943862b711fef9731ac45cdaf859b44f713a6bd98e4788553fc4aaf582a6cacb6e2c9d3cdea36892c6836ec255", + "32f63d26e49d5b308782c44f6908e26bfc9902c1b0032194c1984b4cef32967a9b1fed2f0e69cdb015d0db405e3bb9ef", + "630ec98b2333cab7668cda6835f137fcc6c04b896f490761316e6716c12ae45e9efec81ba59c0ff2cccd28b7233bac52", + "923a590d95f2411d48b09562bba5d99a714d6e4a60b35db8a31bb33193ae58f5c966814a52992e0af01e3432271a7cf1", + "d2b88b9b4d038dd037f2c56b8f09ceb71a50d6ecc60a6b3d0cb2d09dc6013a92cce4d4a5e4f1d74990bf34265798121e", + "ac519bfef518eedbd188239ab9fc4809ccf52db2f57318f4dd4c9863538eb84c1fd0cf93c752b148aef6682fc05dcf50", + "bc79f5fcd30c8ec6961bd1c95d734a6b055c272c4d9cc03ff7ca7ab495ca9e4e07b94c9b97f76b5584ed041a57c22a3a", + "f2eabd1b1246ff7642564f68fd8c136ea7079786f5b8fa50ee0b2ad21ff801deb1a3dfb7bfb5d867c61152c2843f50ce", + "e4d24c01774cb026255b89401e4b6c1c91aa71816f24c4128cc4b76e068e3af42119d98c5eade7f189f8fdbaccacedae" + ], + "recovered_secret_share": "31c11e7b3303511ae5b70236717ee6c996a7d36e32a07e5c7adeca6fb836ed27", + "recovered_verification_share": "025b18b60bcb8458af427fe61b52f1dd41a6f22fb1ace7aa5a1c3e22b2a80aa81a" + } + }, + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "fd69cd069d3ececc5e003e20ce25dd968c7da87e017bdf6afeffbae9a3b3f943", + "6d29dd621960b35d24d0091634fae965c424acd714907dbbcb26d7f4515bd3bf", + "56fbd9a1e45d2a3563a97f3618b1d8f71d5bf4974a44a49da41f13080c006ee0" + ], + "static_public_keys": [ + "0312a3ddd4c2f5d497e0ef6865495e6ee0076a1afc367b6a8f66ce889d8ecbfb8d", + "0311dea5e8bff958621b81640579565e19cf457ae4d4dfcc4f22d1273f7f482de6", + "0312236aa188f8c9f51f58cf70c2add13d9fce8f8bddcc8f330eadcb3ec48e7373" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "033a67ab40136398a659df9d5814c4c4cdf837289d8e5b86d4bdad62b151c8d8a8", + "vss_commitment": [ + "0230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc04", + "02a5fa9a71b1b96c9a3d9e004d54292c942913ad1981f3a9cc445d25f5fb5f6d93" + ], + "pop": "026f3b896e98d8c2f650e3b1ae4fd043d8925557d80db410f57afc0c50d6a6c8b35ec9392d9c42d8fa6f0a6c4895c84cb4e59cf011ec4408362ca98fc5fd2be0f6", + "encrypted_shares": [ + "7e8cb8ef817b78873a7eeb00fba8bbced71124951500ccdb2a287ac8c27e9619cb3e3e5957811dda27dcd6d463d5b54b", + "456ddc006f4cdfadac38d5677eba1be629684ba5472299e5f1190fb869b4b979325b843a37e898778f9f8d60e48d3362", + "33c21cd7ced15c32590f3e6aa39c02e3646dd03c0dd432ef943ef07c1204a936c9ee7c2e056af1eaa83e35fb04aab75d" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "027455f1bd669585e088f19b22e106c5ac3ddb92e711784e4b6da1b7ec3a63735d", + "vss_commitment": [ + "03c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72b", + "024e6022ac007812f6f218005e8d1cf8f4978462f5138fa5e984de338d2cb18340" + ], + "pop": "02b05dcfffa6310cf24d9ab80d337ec92b6e12b55c120ca5fd233db432633820121e92c7b058d4e27f4964f58406e23289d1b0e1cf54ee695a434e285527e74633", + "encrypted_shares": [ + "5d7d7fa5304ca522ce93970dcedb630a9034afc1b06ac864dee3f0ab0661d824b13fe694cc8a6e462bb8472a2236f833", + "9306c022f0e15f73bfb1d686119abd5dd1a931b200df90e8c4b912e38b5c47320204f7c3889235dd10979c9318ee19ca", + "b7f270da0f5979649ede4091824441784ab4fe343024d7a091385fc2dce7630159513c3c52e97ee6e8cf599a08bfb833" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "02a483ede7cff185665b1764c9337d2983892a63385c33b90886ba00bd13a64cbd", + "vss_commitment": [ + "0207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f8", + "02374f3e6f1b3deda886c1e22d2e63e7644cf1bd4b234a0837b7d42c70b7960446" + ], + "pop": "02fc546055185a2a01a813b6571e2ce2e85321408ce560e72febfb30a3ed4800df7c9b4be3ec4b0c24a5b02c9576639977d1c20059bc78a60dc59e62c8b4dd2d9e", + "encrypted_shares": [ + "0793cbe598727514b55731e9410bde1a302cdcf675b69bf44e720b9cef8e2be5274cdd7ce33d227f1752d9a1c8a00809", + "2443816f8743ddbf215a27723f15fd2728de74c852eb143e87d57ad331f656fbbd358af9f9e306b8d06a83130af4a043", + "a774783c341fc076d2f541ea7eda47265fdf7eea2b8af39ed2df411594bab02489aba99f5f1cc812205f1b23bf274796" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "112ffc75c88657968c290f46bea1573996cd4825c79d1422b2a430dcde0863af", + "verification_share": "0314bd10010bd552adee76a83db3042a17021244f0871cb2abdd1648686f55f662" + }, + { + "participant_id": 2, + "secret_share": "2a3da9df516e7993acf0e14b2174e4eb88a6b7c7f0e2ee700905462d7f3b6629", + "verification_share": "02ccce2880c58feebbbb42ab5a665402854792a59c5e38989c14277c621dd40d52" + }, + { + "participant_id": 3, + "secret_share": "434b5748da569b90cdb8b34f8448729d7a80276a1a28c8bd5f665b7e206e68a3", + "verification_share": "03b58d6f976b6481b808674b1ff6e424d38d74f6e37d8654a7c8847b0406fce7c8" + } + ], + "round3": { + "transcript_hash": "9f20db533b5adefda4da156725577441ed2b5f51f8ebce23b5558e79012cde69", + "signatures": [ + { + "signer_id": 1, + "signature": "02e92a2b18287720fed0b858128ccf5a719c63f83854992d3c0d6ab47b36580e41d6c20a593b59599588cfec1ee9493ba002641d431329407d1ad7119f52155d69" + }, + { + "signer_id": 2, + "signature": "02595981c0288661098257e74b470db9bb7d7d2463087c03b8fc9a8cc849d6a8756431f0185d01f894ae6133cf9cc5aaec21c470a5e5ab3486cbbdc256ef71ff06" + }, + { + "signer_id": 3, + "signature": "03f4099cf86c3e2d1955dfdb634ce4057de3def9712603fbfc2ac0fb600aa6968e74ea6e609c4d3c2267e010c82c7d212aa6a07fc953c9e4353825d5bc61c2933d" + } + ] + }, + "group_public_key": "02a8b67f71bffd8c6c2e529027aad586c1f544ad42f7ea7048b0eaebf233c4352a", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "7e8cb8ef817b78873a7eeb00fba8bbced71124951500ccdb2a287ac8c27e9619cb3e3e5957811dda27dcd6d463d5b54b", + "5d7d7fa5304ca522ce93970dcedb630a9034afc1b06ac864dee3f0ab0661d824b13fe694cc8a6e462bb8472a2236f833", + "0793cbe598727514b55731e9410bde1a302cdcf675b69bf44e720b9cef8e2be5274cdd7ce33d227f1752d9a1c8a00809" + ], + "recovered_secret_share": "112ffc75c88657968c290f46bea1573996cd4825c79d1422b2a430dcde0863af", + "recovered_verification_share": "0314bd10010bd552adee76a83db3042a17021244f0871cb2abdd1648686f55f662" + } + } + ] +} \ No newline at end of file diff --git a/frost-secp256k1-tr/src/keys/cocktail_dkg.rs b/frost-secp256k1-tr/src/keys/cocktail_dkg.rs new file mode 100644 index 000000000..665c9601f --- /dev/null +++ b/frost-secp256k1-tr/src/keys/cocktail_dkg.rs @@ -0,0 +1,124 @@ +use super::*; +use alloc::{collections::BTreeMap, vec::Vec}; + +pub use frost::keys::cocktail_dkg::CocktailCiphersuite; + +/// COCKTAIL-DKG Round 1 structures. +pub mod round1 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 1 and Round 2 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round1::SecretPackage; + + /// The package that must be broadcast by each participant to all other participants + /// (via the coordinator) between Round 1 and Round 2. + pub type Package = frost::keys::cocktail_dkg::round1::Package; +} + +/// COCKTAIL-DKG Round 2 structures. +pub mod round2 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 2 and Round 3 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round2::SecretPackage; + + /// The package sent by each participant to the coordinator after Round 2, + /// containing the transcript signature. + pub type Package = frost::keys::cocktail_dkg::round2::Package; +} + +/// Performs Round 1 of the COCKTAIL-DKG protocol for the given participant. +#[allow(clippy::too_many_arguments)] +pub fn part1( + identifier: Identifier, + max_signers: u16, + min_signers: u16, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + payloads: &BTreeMap>, + rng: RNG, +) -> Result<(round1::SecretPackage, round1::Package), Error> { + frost::keys::cocktail_dkg::part1( + identifier, + max_signers, + min_signers, + static_signing_key, + participants, + context, + payloads, + rng, + ) +} + +/// Performs Round 2 of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] +pub fn part2( + secret_package: round1::SecretPackage, + round1_packages: &BTreeMap, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + extension: &[u8], + rng: RNG, +) -> Result< + ( + round2::SecretPackage, + round2::Package, + BTreeMap>, + ), + Error, +> { + frost::keys::cocktail_dkg::part2( + secret_package, + round1_packages, + static_signing_key, + participants, + context, + extension, + rng, + ) +} + +/// Performs Round 3 (CertEq) of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] +pub fn part3( + secret_package: &round2::SecretPackage, + round2_packages: &BTreeMap, +) -> Result< + ( + KeyPackage, + PublicKeyPackage, + Vec, + BTreeMap, + ), + Error, +> { + frost::keys::cocktail_dkg::part3(secret_package, round2_packages) +} + +/// Recovers a participant's DKG outputs from the static secret key, transcript, +/// success certificate, and ciphertexts. +pub fn recover( + static_signing_key: &SigningKey, + transcript: &[u8], + success_certificate: &BTreeMap, + ciphertexts: &BTreeMap>, +) -> Result<(KeyPackage, PublicKeyPackage), Error> { + frost::keys::cocktail_dkg::recover( + static_signing_key, + transcript, + success_certificate, + ciphertexts, + ) +} diff --git a/frost-secp256k1-tr/tests/helpers/cocktail-dkg-secp256k1-sha256.json b/frost-secp256k1-tr/tests/helpers/cocktail-dkg-secp256k1-sha256.json new file mode 100644 index 000000000..683131c72 --- /dev/null +++ b/frost-secp256k1-tr/tests/helpers/cocktail-dkg-secp256k1-sha256.json @@ -0,0 +1,1015 @@ +{ + "ciphersuite": "COCKTAIL(secp256k1, SHA-256)", + "seed": "b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68", + "derivation": { + "method": "H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label) where H is the ciphersuite hash (COCKTAIL(secp256k1, SHA-256))", + "labels": { + "static_secret_key": "static_secret_key_{{i}}", + "ephemeral_secret_key": "round1_participant_{{i}} (RNG stream)", + "polynomial_coefficient": "round1_participant_{{i}} (RNG stream)" + } + }, + "vectors": [ + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "b6d8938c60ba5cfbf0ba97ae1c3f99c7a58485344ed7d6f387dc35bc76cacea1", + "ad371a449f8f2734c1d98f4f92dabeab6189953e7f9258a2657743adf4b49fde", + "344ae0d3d664507f90d5cb534c77af20d61e83dfaaa500bc8d27428af3ac1573" + ], + "static_public_keys": [ + "02610897b193f5d9ae8c6b6527dfb89481aa9440577b24a96a9378a756542ae20a", + "0325c9e642a8967b6069db110ddb5588d701b89ccebea4b15c277acab087c59129", + "02fe2400b831d7dc120d4f1f49ede75956782e77ca92aa24f7d1cb88bc584dd1f6" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "02788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "vss_commitment": [ + "0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e", + "0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f1" + ], + "pop": "03adb7b47336ac7c66f065e5963be8e2403e52134264fef03a9b654700df0ac457e4f93be87ee7a5efa216ecb73926a462caf865dec15ee7657518ea960d16d851", + "encrypted_shares": [ + "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", + "50162b60cefb0fa778966de5dcfa79b6046ad855a709fdc61ef253631575e2c3ce9048c42fe7c84583ff19d37ca8a775", + "be016f51b514b6bd413ab8053940454e068d69271cb5092dc0a229f544a9d134f72413b8ade30f4b21d10ca1f5485dd2" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "vss_commitment": [ + "02672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c", + "020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f" + ], + "pop": "03b55ded99a60fe407ee51b4c340a586110892e15d7f7b13da965fd826b4525653c1265f7595bd061e024830051e42b0816ba3cdbf7bb49947106930c788aba7cb", + "encrypted_shares": [ + "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", + "a45a839733537744b0cbdeeae90f14f659458425eb603ae69bd867e6098367d1a9982b249cb30daebe150570c5e7fa4d", + "f9f29daaa5cbb0e2917e71b8bfe5f2baa847307b5d70b319d5f7731bbb7075adc4ad244264b85fa4d0bf9299ae11a529" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "0306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "vss_commitment": [ + "02fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b4", + "02dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d0501" + ], + "pop": "025ab99ca736f8ce1203687a626364744c3ccfeda9b63e7313a8b969ac62aede0bc0943c103c540da236ba575fb88921221ebc85e1ed0f432408f8ad16896dd878", + "encrypted_shares": [ + "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a", + "11173ed71d7ad60daf3720734ad96cad47b58ee1548e65fa4903e0e5a7e94fbeae3a8076064895bc7bdc201df4de5236", + "d5aa7efab9d2d6e32c2039bd01eb893696930bf5c3e6449f9abc82a4482604680ba2373fad594aea7754960b3064e88b" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", + "verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11" + }, + { + "participant_id": 2, + "secret_share": "8e18ea88b0dae913f89c42b21be5f87ebeb801fff8f62a1cdd420d5725b5d7e0", + "verification_share": "0309e433bbcd6cf70a7c3dfdc5e3d44ab629f79568ac8bfa51c4dc118f4507ea20" + }, + { + "participant_id": 3, + "secret_share": "a3f1b10cb341e7a05b8fd606d7ea264f22fe58248f372864fc5c80a86c08f49a", + "verification_share": "02a91306f8390af207d697260df455bbe89328b1488ad5338271cc2a2019a394cd" + } + ], + "round3": { + "transcript_hash": "0d785c00ecb6bde350ea1800ca69121c82be87ace2d7b691cb3d4c91566994b2", + "signatures": [ + { + "signer_id": 1, + "signature": "02bab75a5155f867dfb974424b9993965f8e86929253f3630d7c840a9d381e9b1a1e1b1e11153dac5e3a1ac8ad0f12588e10822068435b26bcbc654bc1ee2b1c4e" + }, + { + "signer_id": 2, + "signature": "025a191fe08f7d0248f8bc69d016ceaa5316430e13b8056e192bd8f80c3017d4bbf658214c1ee2e184add34c07a73ee5f8da3eabe849b320a71e187769a54e1e61" + }, + { + "signer_id": 3, + "signature": "0388ea3c84b7ca9a7a4332227442495a5447d9832819817f48cfcedcbf8f44e672d61df10dd5ba4b979ebc8e38ed7b6baedc1b07703161d3539023cfcc2f80ddea" + } + ] + }, + "group_public_key": "0317763ca657a4d5e1c661b395aa9454ee2d9bdbbe8f2ea57ea0ec5cc0723ed9d9", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", + "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", + "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a" + ], + "recovered_secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", + "recovered_verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11" + } + }, + { + "n": 5, + "t": 3, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "config": { + "static_secret_keys": [ + "97b9f7468d461d768bfc89ffff0c41efa43d63e915db3b1e9558d0e7d0120b7c", + "917ea30b036b92edd821e7cab12e2d80fdbfaceb994dbf7d864aa4448f54c6b3", + "3fbede422d6df3631340b208e2653c1cbbdab0312745c3f4ad68c387175eaf5b", + "f06789105aa658a8f8d774242d748e805d429f07e4ba096ffa491ad2b3bd7c62", + "d3a9721ec87abdc04903dcce30cc56132118a773cc326afff752ed406f3cdc17" + ], + "static_public_keys": [ + "021bd81630d7864d25fba41cc05a5e635c7a08e8b190d996a554691ae246062764", + "02d2796cc622bc6cf3a720c78934b9b38d18a3ee5458c499f85d940606413673b8", + "02401aa2db05d19149dd680c4c1638be7b1a2f25b8f990d24029b9b8ef4eaa069f", + "034dd29d0db956fd5330fd68e951f063e42a85dcc0e78c4fd0c5752c3e5154eec8", + "024f80b54f11083d0462753f835ecb38e34cdb6d695f9213459f54af60bd9bcc1d" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "0220a9ce41fa715b0ffbdfcd0d24f9d0e47a6c824a133c79c6e5913aecd90bebbe", + "vss_commitment": [ + "028d67064658d922c4c16e052c326162fe25eaa5a5b67c18166285afde6a3736e7", + "03b9bfdd22bf681fd328e82debe7ba260ee2aeedab6fcdf24dde3b1db6e68fa64a", + "03ff3e169637a4a257d2dfc1cee6668121f8b9112c1555fa1b5a07bd5c495d00bd" + ], + "pop": "030116f65fb2f6c6bcbd7a0e4ea738b6d345e685f19589e1dbc4d7b923915dbb8321cd2cb9379e967a749c4d4fb4c0db8377feaba2a7f10bfbcf484703d070b880", + "encrypted_shares": [ + "be4888644474f5e3b447a32f12005a27929cdba66460a4ff71c51c4d55937af983d5c4442a7f3ef4519205e40c0abab0", + "cd5b5e013e0f0ab77571b49c9e3881af42a17102bdf12b4cd7e0b6627fa69f7475b9ccabd1b3958417cc2552046f6f87", + "4195663c99ae4fee99fb822654c1a91d8d4aa4524a67ee4f81a493aa6ac5c15fd98631039923304b4684bcdbe688ed71", + "f0ba86ddd4012763980b5c175872e30cddc5863352119693985bdbcb677cc4fb4e134c5d662e8464b984e5d5ae1a5988", + "57d250753752a517c513857f49e374e121150b366232955a905887cd55ee6bfb9a47cfd4007b34344b2df2ce27e54cc4" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "03b40ac55e8c628b50a73c7d6dad2648cf344148be9c2eb175daf62780df46178e", + "vss_commitment": [ + "02b517e4cc53bd4bcf6e04e79637d44321a9763ef8350a5c2d8e9b7b0dbb123091", + "0253b6295998c07f93e5272ad7639ed8172719fbf273f698522a93063c6efc2d64", + "02e602a2ae6dce4425bf660c55dcbc3f8e9ffdbad4517299d5d1d1426e5d7ef5e4" + ], + "pop": "03be58c97432325fc734ca6e2bbdaf68db27806dccd7f162f8e4f179d278e4c5e368f72756c4519ca14bfe9b1e479f8d2ab0db1256ecb00ed18da0befed3392aec", + "encrypted_shares": [ + "7c0cd36129905e1f0497e856e8c095c4894e7d3aa5f093ba8dc444ff5e02b37aa02936493e5e932a5fa194dc0444e06e", + "ed7a9c86ef801e9bffcd7caffe9f1dd8c228353dd633fb6ae0634d64d0267fd414cad8012fbc8c0f09a3928a4eed7aff", + "afb31731444bb89347facf940c451f50806c8c2d1cc5f712eba18780374357a93b2ae82aefc1e11af513cfd7d881c01a", + "15616fdc63cbf2d2f49faa90f1a83005853b86daee85eb6c2b3faa2c5a68fe12c3cd0fd2a3379c7df74138399d5fb647", + "e9bd960a0768858b5700cbf73186890bad5834d65f3a909b0a5d84310584a5cf06bc0332a4481e80237417fa2b954895" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "025d2e46cbf1d980427572df52fcca1bca4bcc50ea2165c2362bc3b65a0f253ef2", + "vss_commitment": [ + "03736a1d64fef3a68a054c2afc2ba2c3a6b75d5651030a954b322cc25095516a14", + "0303f357f157153c1a8df01b78fe3aecbd83af9a5628ba7696a666922f9732ad89", + "026a7c4e404fdb7dba91bec2646181377eaef2c5926011ec097b5390040fc9ab38" + ], + "pop": "02299d6c883a75da067f4bee7df0e765ebb7def51dd9013fd1d5b335663069430b7d50667a6d9638a31e256ae6a6651d6b3aad7a811660de58df319da0e395988a", + "encrypted_shares": [ + "a040df73212c2aac6fbfea2b2d8ee485c9a467d11e4a25b2cd5b252af53226fe5d9eddb85711844cef9d76e656417405", + "59ba15ffd40f2187b92d47f00a2c9c9f4f93b2ee2570bb62bdcc63a3e02d7802fff3cc248b96901a900763fb9c393b05", + "4041c551933749a5b40b793825e216c176ab69a515f15e0e69d4fe29920b035f462b5d9e9b64e46c8132c1e4f2c7cdd4", + "0aa4b79495a6a7ca6121d1b9b42a84ae5aae6df1d151fd60570566a272de29ae2d249907301a2b01357e4f27e5cd8085", + "ef3adca5d017946d284674368a3f6b91215304a0ce19abac529b9b8d521400a33d995eedaa79a5ba9976f0523d9f053d" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "0293e7d24e9b65b43b843ca030bf8dfccfc4e9af206e8f4b9b3e00b21cb1b41815", + "vss_commitment": [ + "035af32bf5f018c0ff4bf8676a6d2f388337ef94a603d9c4b5c2e29c432bf65342", + "0219bdef95c40ab661631c875bbb889074ba4b0b9bfb2efd247521ea0703087e1c", + "03010ef466a733f117074eeb7491e434731ba27a52d12d212547d20d19c0eac754" + ], + "pop": "02838260f85298a27e0b131434a28189e6621491893ad3606c48e98a874a17c01efb712ed3ede1c8f402c676fc5491afc309d57033276885cd61077be94a8f988a", + "encrypted_shares": [ + "c8d893e11274c4a5622967e519996a540b09c83a5a8b290a15a9b83803fa4928d3442f316ec515ffd20f689f7b965056", + "b90c169fbb2748073d8879231490fc2183fa7f394834a41e3cd6957ba6d35b3a8555ac0a23afa082ecb280309cc2c57e", + "628713a70fb02b03e0221c5bcc93f82daf8f11bcd5828ae3cfb2139acfa1781a077e5013f2850f2a73fdb927bfac9690", + "0f2bc915e2818be2eefd5fea13ca8aba4e4e6c658cecfd43ca2b6e1064529ae2a4ad9cd552ba2050349456a31a1aac2b", + "1a8446b2e1b30958b5f45c8e4037db19addfbba209374b7dda6fcee94046c5c9e5ce7e74c4cd4e05d39b3a3efe3e6b61" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "03b99e24a59bac8686386deeacf642995c6dcb9b034dfeb4a0c95f62e05be48c08", + "vss_commitment": [ + "032929a150a39be2ea8d5196e5ec1df09ce9ca0a8be24853b01ae8472771e3d223", + "02b7e6f0ff6d7210514e0bbead23e8d24f64c4a494ee35de46b7b4425a37dbe55a", + "02402145930979fc7e190bdf41fec0951397c2d1d874e723cf5b231f7dd3d58dd8" + ], + "pop": "025ca4d83365231f4e35ca1c4784edecdfb35d0fdb6d83907e0c1cccd7a2628bb2fd0697c274eb287c51127010c60f1c55e782fe8dfe60357a84bea35b669c5e5c", + "encrypted_shares": [ + "8f8c833e1dc8ac0a6065754591ead3c907c056b62c965b1afa9b6ac26d30ea7d9e3be842d18bbfe69613663e2eac1272", + "bc04eea028ba12490bd8b73715cc2aab4b1e22d44e558c12b1bd4458b2ee403404cc3919c6dcb8f769299eb699ae1c21", + "e7aa1762aac7ad4e1a6802cc2e645b84499fab5491bd28f7bab1ebc194ed86c8f80e9cf434aecf4a110f62dfe506d9f3", + "bcee0f8fc2097fb653feb0e49892fd2f8eed8331f7370205697b55de026fc7baac8e90de1c5e8d255b6944ee757df59d", + "d5c48b399ddcc645ecc33295d457feb069f024f0a45114196a4486f5667cfaf6f5275f035f80c49a1a2413f16c349609" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "2aa84b0e28cf945fab50a04b0493026be4a8aac17bdd980915a50830a897cbe7", + "verification_share": "03ffd0727fdb797a7ede721674aeec6080d67dd5667d0b7f11635bd27411eb8955" + }, + { + "participant_id": 2, + "secret_share": "ff866e4b77f019362eba9b7a7fe51b8fbd89f7c840acd54bfc102340c4dbbdaa", + "verification_share": "02642eb38167a3fb5db09fa1147bacaed15385a1d5288288f3f8300e19676e2235" + }, + { + "participant_id": 3, + "secret_share": "e8c1b142dcf6f97b12366fcb260179c8564f9938659dc92857afae56ef7d214c", + "verification_share": "03682119ba6fff3195d441ae3a615973bccaae35002319a030c6be0edc56e7d08f" + }, + { + "participant_id": 4, + "secret_share": "e65a13f457e4352e55c41d3cf6e81d1469a86bf899f913d9e85607fff8b2380e", + "verification_share": "02fea0e231fc509f7984cb568acabee1f489498889b4a7c32f30abf9dfae9ef922" + }, + { + "participant_id": 5, + "secret_share": "f84f965fe8b7cc4ff963a3cff2990573f7947008ddbeb560ae03303be07b01f0", + "verification_share": "029bb02d4434208c458b2968c0457993403bcbb7c23581831b3386f79639508989" + } + ], + "round3": { + "transcript_hash": "7dba0528c2bf18da7afe4a1de2e9283f70f4812569711f18eba3af92dab2469d", + "signatures": [ + { + "signer_id": 1, + "signature": "03a7e42ac95336d262b534ca4fa9f42de946c014a8880197d6e677d97ca3f2a4c2e2c8b5971498af9f9a892f11d88682d5c4e439efb919559fb8dc66392b7cb8bb" + }, + { + "signer_id": 2, + "signature": "0288501f4164d60bfe63f1b795fcdcbad86f0465653490f05133fd8fca4d6042ddc2604a251167d686b1a8a6f98dfc9fa260611f6534ac57874732676dc0f34a24" + }, + { + "signer_id": 3, + "signature": "02d2ad6aae935ab7c5ccf55c7f2219095cc4a5ab55fa3e5ad34510e7ec53e748d6075c0614e75a5e2e554d0435abc2b64c143982cc56ede5c5185a0880cb9fc987" + }, + { + "signer_id": 4, + "signature": "024a745339da5a45e921355acca626033a65f43fdcaf07814e4d7865d3b169f016fa0cb3e74ac36376c2a3720f06276d57db911eb7573640081ed05e492d25dbdc" + }, + { + "signer_id": 5, + "signature": "026682e0007ddf53d43bc64fb350ceb47b6787d2514cfb9c2b87acd3f13b99208192379a0aeb6fffef175e4cf69b59248e0eb735b9b1ed88a8b4c81c2545147ecc" + } + ] + }, + "group_public_key": "02c4d6153a66c590f2bc546d51cf411b2522ee6b447ed0b0e51275dac238e666f1", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "be4888644474f5e3b447a32f12005a27929cdba66460a4ff71c51c4d55937af983d5c4442a7f3ef4519205e40c0abab0", + "7c0cd36129905e1f0497e856e8c095c4894e7d3aa5f093ba8dc444ff5e02b37aa02936493e5e932a5fa194dc0444e06e", + "a040df73212c2aac6fbfea2b2d8ee485c9a467d11e4a25b2cd5b252af53226fe5d9eddb85711844cef9d76e656417405", + "c8d893e11274c4a5622967e519996a540b09c83a5a8b290a15a9b83803fa4928d3442f316ec515ffd20f689f7b965056", + "8f8c833e1dc8ac0a6065754591ead3c907c056b62c965b1afa9b6ac26d30ea7d9e3be842d18bbfe69613663e2eac1272" + ], + "recovered_secret_share": "2aa84b0e28cf945fab50a04b0493026be4a8aac17bdd980915a50830a897cbe7", + "recovered_verification_share": "03ffd0727fdb797a7ede721674aeec6080d67dd5667d0b7f11635bd27411eb8955" + } + }, + { + "n": 14, + "t": 7, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "config": { + "static_secret_keys": [ + "8f26fe486e7d36a291970961906a799433633e3fbae1ebc0d4f9a07ff6be6539", + "4b256597fee2e04590612eb7d249251a5b75606d503586cae0da143f5ca1fff6", + "c5c499d28c2d66d7cf856cf03bafa15744284f4f11b353ee180a3c0a44eeda22", + "326dfe8d3872834414cb082e41e0fd1d6c8baea7eb486c4054451e9f088ae020", + "faf07fc615242d7ec53cf92761adf7d5623765ddbe7b62a1a0b43933f41fc309", + "e67645b5eb4394cee403a5a96ff3690f3470cb319590be5bd57bf593e2ad4b3e", + "8d7a1d95687dddf48d5d0293d849f6ae4d7d2f9069df47a1c9caf72a4b30ec89", + "49d7506273ba41dd097000aa72a0b16812e2577e00f69f6a5f43ff54699eaa63", + "9bf7cf72481d1ca181f1e75a3f3d672a2382a218070e33e57f5b8b43bdfefff0", + "05055c065e84f445c62351b13b91942a0c25487c1a6b458da56e56a1bb8693ea", + "ac37617850deb54aa05e83e54c14b6623f222318f340efb5f811f71e34a19128", + "d068df395240d2661a52a55f172fb6c28d3ef611a7683e62e4e434842a43fcbb", + "d3f38a4e9cffc9a9f3d6298fbc2680e60f7a058392d0c95de5bbfa2a6b2a9f97", + "a1c677dc760dd5161eb9f27c8b02a5e23bf522a0c4483b1244c65b7938b0e256" + ], + "static_public_keys": [ + "022141199b4c48c897927b0c0fcb4067b4ab33a6fc8f7397a0279293a49440857b", + "033011dcdaf5a066952c31a17816735788ff11f6ddbeedcda7fc70b4eae293f534", + "03360bd6cab9f15eba62f9dfe9445c159c7dc84e2b26b0be032de03de9601d0542", + "03f6ec749ca5414704b72d898cf4e86ae272dd8e85070762218f3980df33b878eb", + "03bca7e4af0c86c440fea15781c50047619d47c24865d9d486428d55152742bfd0", + "03d99c3d44fe456d45acf50142ff7f944adbe15b5fa91cf5117663ac9824b849f7", + "0393c4a4f48427921fee93746d8b3179b9597f0aab53d5a7f3a6913c87ca9e4627", + "023ad713c160f31debb869fbc42e5131906e2cae0182bcf2e5d48a7dc963af4852", + "037aea9a5051b033abda7236a2fd0f95e1c5fe1911b48d134a64f06faf8bcf7493", + "02dd920888f6d1e32484533926301c3a2f663b84a219bee92069a3dc90b77c6096", + "03fa2f35b6360c71b3ccc6963b4e58607ee300b936119c492c58fc24c281cd7c81", + "03aa2cceeb92c4f6913e7de89daae148ebda6e89a988f34c548419be16157632f6", + "03a0fd661277b103b25ad0cc38c58dd3e8a990209f854a62831994504ff97efdd4", + "02612f2d257488980286424bef8bf17ecb609651e436a97de7b86a9b2faaf38bc3" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "0340e68f5518ea6dcbe5ffea65de6c65f57ed9d68eca22d113815eeacafa450699", + "vss_commitment": [ + "029fec9edf9536e4de8577e27298b286c80abba39a70a17cfadee7b45cd5750b75", + "02270a87f2092916b609f464965cf9992a9436bf5eba5adc46abfcd48b2c34bd00", + "02c5e04a05aaa88708cc76492c6adb731a0a86e952a3696f9ec3371c9b77e48388", + "0299180858f763aca25584c5d1ab6a4f895c37d4378c29cf0ed97d12a3f3f4c5b4", + "02753e0fc6e6b3191e87b493dec11c13ce96ce738236e2c858bdb24b2f00b1514f", + "03310dd76145338dab22d69993d2f9de096e80d25a4f57f66de80290f6d2e60653", + "03211495a08cbd357e03ac78783b6f0848c4a8ecee9f6ee3227a6c646584963ecf" + ], + "pop": "02651e2079058491cd52eb7afdadb51e7f820870d36041bcc6ed507df990c0d0570ba20d9f86150e8fccff44171be141173e248946471f70818c1b0b40f9163418", + "encrypted_shares": [ + "68f1a4f3a1b132dce2a36e4463baf2241918986826d32bb5e29374db2a8cc1a69dfd61e6cefda4ba70bd4471113da46f", + "1fce5ae21713a540bfc04293d04e5ffb0ad482a467e3673d268c3a2ec3e639c27b9963f169ebcc67c2d815b69ad960a6", + "67125dac2a0ed2ca7f6a618870aee00b3ea900b620d72dbaa008df1b449a7b120f4de503e478708633dba3ec54260f3d", + "f0cd7fa9ecb9d9d225ebbbfd39cf4c9a3f1e4e1622a846228dfb6f06f0a4401d4763934eca27cab650398afbbb82ca68", + "24b065d4e77d6bd4e634c16145365184ff077a62381a5ac51548e2df1bb67dfb9dc087adb7358b30f8ed2fb037d33bcc", + "9bd7d41baf33445173f2d5cd0efddbdb6dcfa9f1a0ad8c4c2a55886cab41ad88186c989a335bb2cf7bf6631e036fe01a", + "f1b69ee08a0c1881c64408f905073df0f258fa232f77cadb9af05d28a164d09e0ec71d277a2742c209489802951c4aad", + "dee1a6e72f8161fe7f1b227a670ce689dfb6179e98d0f51340684e50f791bb4d6ec2af29d6d1281943bd8c43d415ea88", + "cd36eb0a76e85c561a7a6c87b23e8b4340033175e29ac5e9c176b9de2413688344c1888748c6d1f6e376f9e0c93e14ca", + "9a857469603fb6136b05d6c634a06702e7ecce98c54088297619e7d4cca0966284a10c35d0e2c1ac9bd18ae31c422023", + "46eb07cd1b6c68ec8ada5c5c11f9b6bec3869cebee8b18b6e9d67ab79699940d9b031a267e1a79e9d85a662234945802", + "d23cedd66db8360c060d52fb0b5fbd6f44529612cf864d6e0b853c5d100200b97124ca6891bbdbd8904db59572263051", + "930c8919f3c3b7795b37d9b2e17e8afce1f48434de5c2019eefdd13ea6d02fe5e8a7d46e56144bcd83e9ff764e9ceecf", + "f4a1634a40e884e21dab729f8d9eeea46614659ed7e3ef8dfcc56e80c4186187f2e6afc5801caf89e3c86287369674f5" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "0246c7a2f3989134ac4ba45e39a4a9f653bc34062ced6ab7b4e485ae6ee27b520c", + "vss_commitment": [ + "021f247705c6b241e6d4ac3d0f95bfe10ad18403f2fd41ba11c794258119ecef88", + "03b70722e06075e49d19fdcebe86d960c36d958785eefc564b79b5a200496bf94c", + "0274aef2534c2b1d809be5353f99a5e099511c70507b8144a05c2525b452316cb2", + "025e8cf552d0c12e33bd057009338ea9762d010331b2b898502e6fd5d1d9ea8b1a", + "025791353f84de1fab98f6e22b5ae4b39563812cc27a35440946a95beba66d8b2b", + "030b0b881ab3849569821ba9db282a75eff81bd5548a1849023c8d2f925ecbfd89", + "03fae9c5ab6490dcea961231d605d48ee4b8f571b016a25e0befdf8b7dc882e25d" + ], + "pop": "023425786a702f8aa06cd63903efaf99013bff822501ab293b1098600d2a92dca23472ae68a21f6d9c5d19e552f67e7694c20d32a0b9b338426ea1604c4390de52", + "encrypted_shares": [ + "112de458c4a7d3f72b165723603c7d97f121a0c6eccf5b599a59680600a354c516ddf653651c17a559b8a1c572474e62", + "5cef24ed069c5d8b28a070d36548e81a37f44159ec1316e19558023c0c9ecfdcf6050d3183cadb11da788f3db2f688af", + "29467495d3cc43b6d4405e18f1be1e1617a38fce8b39063f02668c1d150697c44a6649d49aef212617a3beb0a4b36eeb", + "3e8ba8bc1c7dba280cae7b47102c3586f04bfc7228c552376231d25e1f68503a8efe3ede63bb3df0f13ebe428593eaf5", + "9a72bf6614b7f3d6d2822d8aa482de4f75f72decdfed0538a7ace87a96f2e3f6e19d975adf933fe61d2504fafb7991e8", + "a8e4be63f6b396c3a9a21b7d7805c9d9747defbae0565639e80b766ce9cb697ce830fb3f6fb4329f1faee47e4bd9aec9", + "8dcfdb1834410116ad7b33588ac58fc936f33b2392a01ea8d9ab3a7a8fcd27b119f4939579fcf4896d7182aa5beb432e", + "f2a64243c50e95637099c7b0ec4d009dfbe18655f7840982bfebc050ccae8f65706238e5683851ca504e55612af3ecaa", + "f807ee1a18c3ac55593be99aafea45722d19a4c8b9f7351e5047235c4c2d53b332f2bb022e9817ae7b1273c77740a596", + "5cd7ba1c00912d33bfd0235b90143cbec9e7aaec427d6e37b4cbb34321abff046617d0c2f58c4a1bc846c5ae7d7a7a97", + "6423c5ccaaeeef130e26d4333e071c4421a1b9676ba2db8a18fb156598385580c85fc3e466cb7711023bfa4dc2db1b36", + "99e0c37ef1f4a38ab9fc81b4866480b7c6dde023644cd8d8316ea634039b8ca99e054c59bf2665120a2d16465f7dc2f5", + "f0c15541813106c265042668ba394762fe4636ea0962fbf0e7ac0479307c49513b73791307b953b7dfc4613654a9b420", + "e04223c1ec7ac20542a43059449a180e5a60b366e039def067d7d836f8c1f240dbe760c586eba78b36e73c2853215932" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "02d48bbcb20444a2654a4c336ec39ddf7010b65484a68744641d03ef50f4e51945", + "vss_commitment": [ + "02028de294e49f3ea53c3aa4991680419cb7ae5588f66ac88dbc954521d52d329c", + "020b55fd370dcfadff8e37fc9da0342bf6df286d601633e9638cf8e18744ed2bd6", + "02231777348dc8490e9dc6a46ea7cf640280a446f7aecddd7dffdeac70b4acc1c4", + "022615e98a65cebc3771d05ef472837e813405d47549e0932a407161286114b9e0", + "0342a508beddcc510bd541a408f0da3a005f83177d0022ede87407aea94e7c3c39", + "021b20f069bbcbbd39cd7a8f8a7c4a0a8d90f241891f8847a0949bc2161b70da47", + "020df5bed362a491fa1194ec0cf51a501e225b91f3db9b5da7cff75e52ea3503b2" + ], + "pop": "0380d00397d4542d4ade0747ad9fc9900b99a21ef6073daeb2805fdae6776f1741815e11168680d7c5d1cbf4e090a5bb05a53d27851610900bb6c9dc9bc0da8eac", + "encrypted_shares": [ + "97c9c7b796bda9a0a458b1c17568ceb6564602168840aa02c2e66be77c4ffe1cf0e4f2fa79d7f623f8c054035f42b1f2", + "e739515db385a089212c8a5db981441040c9e3cad5c4bfc558ca9c860609ad9e3e2fd03c9cc1c5f419958a338365d752", + "d0698ef4cceb067697c7ae4bb61eea3607f9a4c4a7dde95e4e709b4fb768efbaf6b4d695b8e289c81854941a2532484f", + "7161c721136b42c677129146ddb6075918d315b1e0d8482676180a555a97dac79aec8c90d991dc799b79e6fb245864d5", + "0a209d12fc03d1a03246dff36d39fd4d3bab58326d4ccb5fc8efc9ff9f8d44ac188e9ee7ef88533b64592c2d92bd488a", + "b5d01742719ae48bd771da803bfdd860e9ec89f408a0460950029ef99d4a223fc560564c9c1ae4c726fdde055babb839", + "ea01267953724a36ec3b119fbcdfb59bbbffa55e74ca1b6041b5ed71bbf92daaff1dff7afe23e15856966fc472ef04a6", + "4a7743c8956d4d1ad7c19f1a6d9203ab5ce18b510c8e29c48aabeb67f0b693daed3e3fd443115492f3060f3aeb3491cb", + "c1b27ff8deea107d3301ffbc5ce8b694f74b613b3a5cc3337ff6f22165e6619f0c02d72ec6d4f81f830fb67f61456571", + "8ab8388145c9dabcc46c862744220a147a7745927d8d02d21f11e4b5fe96ee866ec7903dc2fb499a3b5d7622a0be436c", + "34872172bf936f1b9cd7ed20db682c39f69dccb3128d631fb694e19c72a467b2912e13e17b34167f66f96563f4ec4e86", + "6932a06319a6a1ec07cf50de0f426752b0b806d5e85963bdcad1fb0252bb4b7082539e10d0d9ca235c97ac32be300575", + "b10a99692123f84065299cff1ad6234d512808200cd7bcda886eb961d44fe8dba66cacbec81b1c97a0b312bebda65db9", + "600d89ae931b53a6307eb41bba7fd27268cebb23050f7db9219b4776720c9d2b3351b4edd8641e9f40d601f03bc3947e" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "033598b7108b3e1e4987003ea9803f248e7f78597d525af30e864569a4f4006871", + "vss_commitment": [ + "032c46c2b0f2fafe849f575abc906d2169d4efd6450d14b048a74cf0b78a80afd8", + "03c176bb4cd8da82662ae4a8e4fc71fbb870a305589fb72fe86069ea2af32eedeb", + "0392f58d64debde7dd4864be84ad06b8a7d598c405fc7f5fba59e9a9a8b714c603", + "033df5f112a03baacbae93e0b8ff462f55ce445d3317dbac1b4d6065d37b9e847f", + "025ba8abec84eccdd09f4403878c642830ddb8a5c87f697722d6f3395f482311ee", + "02daa518e1c337563cbcf69647a0a44025a9dce749a7540ddc0e2534624c31a00f", + "03c5b2125b34f31bd8e15a60c886d1a4eccbb7e4dbc8e756e57eaada2460a1215b" + ], + "pop": "02954c2b9cd4bcf9fe08b29e60ceba2cebc2dc22d3c97ebeb7114b5d9472760a14516cdaa7400c276140a59637c0745013336d0e5601115354d29c1a9634e25e64", + "encrypted_shares": [ + "3fc08d5f03a9fbcc9b6a02f4be8f70032e115d88d2062166df86ff0213a0a5ec36187f52641dcf50925688c550ed0820", + "09b172e4aa8bc508c45773155f3873e951195ecec1bded15794782f53bf6d0eacd69f987bbfcb30a080008c34d9ae811", + "93069c39f72d635175437aec0e11a344d484c873cc50ca6b6636c469ed6ebfd149a3def98706b48fe7a359a1f3918e3e", + "ef53af384ae2cb10e047800b5a271e0b0323b1a8bbfb84dbf62aa22ff6a02f4c1d9dbbf4acf0132c198835007d313ecb", + "c12901c106e19a86f4eb2a6ff7bb0008a5d286f619a89a034996d0d16071cbc6fd4d4981b2ee7b6dec7c086f84a8a23f", + "401d175240c9b8f8d16165f00709c89ffea89b7e0c4e4474d2cbd8e5b6702bacdfff9360712d31b088f84441b6ab2b55", + "581866ed8f2cde184fe91eca8b85ff0285a9b959e2e16a7b3b4ae0f2c24de67d96c910fa4ce97e867528a05ed05f1b3f", + "d3c54251d1686f925733cce604f380e61d96c955d883556f95f980022cfc7fd1a8cbfc645a20cee94a95a582a8a8ed0b", + "09767d1e2fc97498876863257d8ce576718efec1f6e2549a029831ef6f23ae74122658a86fbfb478565da7433637fdf4", + "4aeb6486a98d544b4e08001874abd4833a7011ade17ae93c0089c52096bab2c5ade3a209177d9791006082093a1d121f", + "217dba35d529eacbffbed4c865b447f988fb6d68122c11147fe51d1ec6dfc6027f95f8c3b0500ef6a80185b3c51f53de", + "66b44ca2477bb51c068fdbb1dc32c9897bde7fde89fc50781bb733fa0585312ae701d48d802359f1ec3cea97f973b576", + "de627a99b8e05e45e018dd8e0d274b20b10dcaf4e6471c39e44e54f6dee3d54dc329029b5510a02013d1b4f5e77423dc", + "dcb316073ad42a9bf3e5ff0f99208b9c430a6615a6bd8fa6694a8346265f4d278c97cc9e0a8d39c2610441eaca5c8169" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "024fecde50ff76e4b0e14e1468b4818fc4a259706a25c7ba6aa7603e36ddae3150", + "vss_commitment": [ + "025f5c6b5c45aefafeab56d42aaf10964178b90d52466c6d25308408ea913a50bf", + "02835119e04d272b61d833d1811b06761d3978b9eaf8d930b55100e54e305e820a", + "0241a586f2f9f82a69da02086d498c0a30324dc25734145aca070c1ab40217e326", + "031481e78f8669d8107bcbc418bce3254cdeefd48e8f68046b77bd3de7ef375a16", + "03ff971fdcdde07efe0392d9ba8cfc339893dd7b42728b91524d61d1d014376eac", + "0383b264526f45d2bf94f1002ac35cd0905c853255ce3bc99dabd45beb513c7f27", + "03977035063a3c00f9d99d3c45409ae0dc7ca4ee74e4358b79dc83a2a2b519cf63" + ], + "pop": "02fe825146fcb5a0d55b0c1f8970ddc5bcd56461f7efa2241964824c691dc6a392a0c66ac19d4e827f3468ba57cab41e1a46243dd3c25ec5b0e477b96214a5db43", + "encrypted_shares": [ + "b86302bc16bbd3750486cd01d2501292e7d56a866bd6724a8ad0a26e9764222db396dc4c9c91112af2e1f1ec25404473", + "1be0cc82223546ca9a0c48ef26b3a4ff622d2a349a9b581ee06084ba466e35461dc12db1c9e122da36e9ecda82d96dfb", + "316b215b1c0d1ce740d443ed661be293d91c379bd6d35b9bb57139d445f45ff3131e81d88e2cfca5a92072bac0154854", + "f4e5cae45f0436d13409dbcedb7d5534ee9a8f0ca8b274c761bbb1b4ba8af8fd45ba8a619799593f5b86eb3c768ed5ec", + "c409e3f8b13de31e2f175060f2922bdba82e67580dc43c153f448356d3e88f87274eb31aa1293e600fbc9cc7395d379e", + "79cac05f3ba8db918e4433d868a4649971b8c816d1f6909d8ad49da93a91684d02026a20146d598c381302f28b9a057e", + "1027ddbcf1d551c8afed5c4f5fc6743182eded036cd80dce2c2c98b96952b478c535e872f7875084aa15f41b63310c93", + "7d295afb7129849f212d82bc613c35bf156b6c0f662a3fefbb7c9155e40b6070f81dd8db47dcc82a00899b25ca8982de", + "74bc65974c0eaebe639608d6deb50d994ba17e70b91a5268fa50d235158f14be0282a4021c0a5619953b0e97967f1fce", + "880279785e1129568167eb412bb8e8beffa36ac34f49f044b5698d5778e27d07a782cd858466fb225c9078cb8e8729fd", + "79a0d02cbf57649bcf2bb5f583457cde3ad5934d8e126d738920de57b7327c4328e530c5edd3f2507d778f0af02ab6ad", + "4f6228456e716b3f293b6e2cbccb5aaaf806dfc79afc9b30a0b3d77eb19bb8d65d7ca125c9e8df36588f6e426af3e754", + "f06a6e479df097e74c0dbd4d6e3b7a02493a9e1d71fbc78a50fc632aac188c9e29c3472dd827c9a34dbdefe8b5d011df", + "59e224587b5fb7bf5b8b61653afb2441034892599837d3a50f7aa4be515298459f401448b8760acfed7a431209d7ee74" + ] + }, + { + "participant_id": 6, + "ephemeral_public_key": "03e6291ea571285bf18c16a3b12f85ac8db318fe4818c3b2def993606cdd0d517b", + "vss_commitment": [ + "02090c8ba9e7280642d1d9d7aadab4cc8bca04bef8cd5acfa5509e249007d31d5a", + "037656971b2e261daf3d42095509c47b3dc317af77f0b6562806e28e92cb2ad267", + "0357374b37f5deb0046a47644288fd8592e55245e1fde6d6fc2383742cf4a34fb8", + "03379a68a4b09775a7bab05a7497626504d9458b5808fc91f9c64ee584be07b763", + "02ac1fe63a050faabdf196971293412735952ed58fb47e27e3b7888939fd74adba", + "0376ad624ba60d02c1d2d151fcf5318de3a79d7d257a19cc99dd28d08bb5318b9e", + "02896784b3607b26cfdadf04878cb76ea81ce46893196d5bf6f14af193e6633523" + ], + "pop": "024c2e2387fc1600eb6da6edabaab8be811cd4c48ec5af13ff1a22508fd0515fc963f629ed03c65ba08d86c398a752afe245ee19ec31b41ef8b36fdc0342a17df0", + "encrypted_shares": [ + "64182e75b7f126a8bcc5dec90ffded51e21f7bdb8a9c24b3795a14dfe00f9c0f9b4dab50995f6023510c8afc7672d904", + "4c7038e8db4aa0e9f6fe3ae4a8b02d7b384d1e4c60e17baf05618925f08a863354c65f506e10d301908c6ca3cff23a47", + "4c6618d6e685759c8e31c5f1471543e189898ae6841e41a47efd6d1c15655b277702bc06acc7f04719078e70dc4975db", + "26b0e50ec578b78de1fd896efe2aa809c4cf5fa69860774fee8f95263eb65ee107de8b50bb8dc647230d08db5a0d6952", + "d7f60e330e079187c3d4c19c0d112ef2f1a5386714ca043f69a6d9b4dfad7dc470886c8731563cb3fdb3356f8fa0c3f6", + "0dd9e98daa97f46bc6a6e80871f334489173d2c81c7becdb1d19e035c616742a21da616df7937e5f74502d0385ba4100", + "32a165ddf46e1db19daced746cb778e9f4446d6587e8180ca52972fc70ba3dd657cc7c04af68e86fb7c5f82722c10089", + "1d4825b09206002d7f43b43f6a849a74ada36736b63d7b4c7ad7dff5406afbf31bfaf2ff0bfabcd4cd9508e6c9848e13", + "4558ce1a54e8468ff5f0e93070c3da4258fe616813352e3333b5fd6ce8fb3edf64aabcea631959317581cc4984e5284c", + "68cc2e86879581a89be4739193c33dfb501292fb2746690797b3c30aea522199d40712627c9cf0093c827c7fdc1f6985", + "acba4fad9316e28608f3d84e793f6db5dae938b52d0274ccdd7589078f2735d5acc20a14b812c8b5d2d7f0c78f888610", + "007456fe6f986fa91fa78e741412a68d1dd6f15d30b5b7ac3e26b8b5cf0c1ce6fbd663b60880142ce357027879fac3de", + "a42dcd63be8f4d932c2330d2fb83f439cf1e91a3d7ff441bab65e35c252e48213dbc75dcd2ad00fb4d634262e46958f8", + "0c0cd86d10d12d590cb5a8f76ff6da663e266f91541795e2732940462f20e52261b1b2108729152f3dbf2411033b2fed" + ] + }, + { + "participant_id": 7, + "ephemeral_public_key": "036161a36669fd45293969123bbe09e782ce241d8f3f9a2683a874319c5b260439", + "vss_commitment": [ + "0227274a81280503025a85015f6db6baee01a0913b17d60aa0b4824fa679093b4b", + "03a5feeb3bf59e429d058e41f782b282eafcf2bd717803fa6cfefae04429fb9e70", + "0264730f670d02f3e9912a9e7e56e86b6d9ea957ce4aae144864fc3398428c11c9", + "03025506b25599d255ccf749cec3f403a0f79f878168507deb12160a44d19e6fd2", + "030ecd13aec79f2b582b8abcf290a68c9ad2497f873bc5244b66d4c62db2e9d802", + "021221d9c8ea4fb7c4489a1c9de725e03bda1675cb946c730dc025deb95cf00a84", + "029eaa33be5c49e88d3b376787c49984b82a6212d77997aa84e01322e5c9c81ccb" + ], + "pop": "0348d22f2f2544958a153fd81c4ff2278920a167c72552ab3b75fcc9b5b8e6c698d8898ffd59909e316a8c2572fda6b34b3257945fdb38884d0c76def94685f72a", + "encrypted_shares": [ + "2e31a834492c145e6726494cbd7f6ca1f6202fd69853539c18d813fe379c44df32efc1ab21cf090fd4c94e0bb3fdb59c", + "0c47ae7527a16a7b148d0a8ca84a02a53d8a63b6fd00ab93429c9b4aba6ad65f6f669938a4f9f52a585d48dc547d3d46", + "483cd7f7e95ea8dbf559373defe99998e31b586cef8d57e8cc9ce46799acaffb21184dbbe1e6e6308074db9343bc352d", + "d9e91f818a5f7452af1e239cf6be4bdb6fc7410e29195c4cbe6d24130cb360e861c0d735a34fd35b1c39ae0e82b79dfd", + "a933cef0b4ed44c15869839f3d07e749de1fb68f0349a93ecf79c27b874d83f755613409e13a9dbbf11732cf0d12cc72", + "f9b609f4658e4795660e1abb47af109b18a96b54381f229e85214e5dbf79f9da23dac606bf0003b5a3cb9f085fc2f2c0", + "db4e5e83e198cc6c6a83880520c35167e0c8eaebdfd3dd7c0c73db5062d5efb1313d517ac0c8088a29ad57067c66150c", + "ca672bc3216085dbca6cd9e2452cbef64560b0b1c0c1f04c14f5f601528b284a2467c112adcf0e539418e65b02cd260d", + "2a1964a4603327210f7ae0f8834794f98bc597d0c8d3b1599d2d0adec8bf62f35a4c43fa6dcc9cce03c1f17a3d2ff89d", + "9a23de38b9fc8a069a2d0974de18107d265590aec245bfb8e89fd7e2fef19166a8a64af60a489b879a1781ea125c4bba", + "752f7a21efd76530c7e0a41d20c96fa786334fe1a0bb784da671f43c3d757171133c3254f6a370e2b174a37ab7ae8bb5", + "c609a19f8e73132834f0bc606c57a539432272fc8dca641fb26a9e4a02d99c9839dacd0c9fab5ba7936a920755ffb284", + "e55427ad94d690066914c58dc918fbb27e652b78e01a1d2a298525a99410c8043334a56837879113256f352239308e3d", + "cfbf866472e33db6788ae4a6e2fb3cf89d996fc8fb13ff89c5b03f85fbd56ec877601db85c4553df4b07ea0d6425e493" + ] + }, + { + "participant_id": 8, + "ephemeral_public_key": "039d7cdb373d5067737b86164e8dc2462c6bc948189dd38e25f5f06a00f6058fb1", + "vss_commitment": [ + "038fce3f5252fb0ca36eeba65102672cb5bc6755177ba833dc601d538677ff9255", + "030b66bd946b9cfdea2b9f151b8c2fb8d4bb7b1677b7ab1be9740cc819bdf179b6", + "03005cb473c499892e71258ce8e6e40d5b8862008d79f5384f9f9f6b09ef86b691", + "036d0184bee50a3af415bcb4f617f0510a90f234d43a69eef47110da37748bea14", + "03d9a59dfb29f3d92a8ca58bfa0cb08172d1e8a033ae6ed749759421a6f5d577f5", + "02a518224925bb4acf3ecbdadc010767ecea44b573ba95f1bb8b95beb502b32104", + "02740d42f724b2b8feae34b194552fe15ae20bbf5d1ef0b715305ae3fe6b5368a4" + ], + "pop": "03ef3828cbdfc25ca623b75eecb0101e724aeaadcde15ee010c5dcd30ce09af9fbf4d13894f9dcd5d4aadfa58ed94d7174ea33b961de3f44f46028eaecd57e317e", + "encrypted_shares": [ + "d23d0e189af314f25c0f28aa24943eecb62746b6beb805d1b7e17f1e454d6edd5ca8a4af6354ab289c064b3dd7cbd838", + "3ac8279890f911777f9d0a61c2adc34668359272f46b3625b68258b6cd2c35caf00814cdc8ff50c0d4d581a673b7a495", + "0a66e85f473c8ec3de08a70a5970f226182186c4a0d2e36ab0d98cb5a5befca438cdd4ec30bddd04f358beee753115e5", + "e3f3678e5a6610f52190acdbff5fea3b11ec93b68abd429c22109c93d5e16def56abfcd19bc9d000cea3f9ff152dc6b5", + "581c36f721c334b4d2d22f5d5d13f774bb9a6ab1fdc43b6e07ec25f4153c5da25ee362aebed4681e6ab869414b1b8e1d", + "f567b1aa2107372073feb929200e238cf8f8f12d82ee3acdc7a60f2af462d8b137e81ed52421aaeeb990c56fee42ea5f", + "65ff14b8eabaa0a308a00029c89bc37dbcb3131a2959294c1be1ef094ff00d886502e2ca40ed44901cea194eaae4240f", + "3125848460ad3985348715911c6972fad517a1a24d9bf1199f0ccb67b2f5272919f925294d7c1f7875226de966169c57", + "a914839e0ecff4ad8210b1c8d37a138950662fcfef75787ff15f142b9ba3a8dc5892e8ead7d526c51a84500c8c171576", + "4e2bb800804a94a24ca0318e17f13a5a43e68fa022f7f99538f3e177005cba2fc80a54a757acdd5292e7a46bf301e619", + "97984f7bc9586068c61635a0a624c54db8f6d74e0d2a9e56e1feb4e90174f45e9f5e879d6d87661121125faf84c18104", + "0f6214e6c4654340106d3816798ffab02fcc97cc371fd1fc07c4eaba754ca5baa8925e2370694f655c66824064f98bf7", + "a5d423146da9563142baa9ec697a1d325393fa89ce05da90259c3de11c22757e2dd11973c75dafe7bfe571ac5d6a5c90", + "58137f31b63fa54edbb7eb3e6cd7419772ca165dd658fe3c57e52095c1d3bcb71b7ef50ab4b53cf329189c06ae799973" + ] + }, + { + "participant_id": 9, + "ephemeral_public_key": "021575be706ffe480733c2786b3a80f49e1dc1fca6c4222d79f7c22e2d581448c0", + "vss_commitment": [ + "02e7ed96360065c607aaeb4160354ff18b5e9563597833ff5168b1b30c9f985684", + "02c5f1d57333211e466af91aae253831d20f4d4695b7fbd8349fbb96dc9d87dac6", + "03ec13c8699fe953b95e16cc244de070aa1b0c560cad2d95f1e3ae5527d89d4c4a", + "039cbd4bae5f065593da419bfa65e389a90d142d4584add5058a834c4ae4af13cc", + "03ad1773f595260ac150564135ae6a2d708ae811a67680831bf46bcee12a53788f", + "0246bcf194a197e65634895f60d540fb5168963aec254dc9e1481c1ceaa2eddc36", + "02f04c60f3afecd501bd5742c0476408c70a140dae619728bd378cf9417b295f57" + ], + "pop": "03cfd7083a8dae265bca8b7a0857d11a87f8678942bc9d8ffe739d08858335b7896c6c3e0f31fc067aa3c6cd2c6346466ba6bf2a81ab7e154157ffd063f1aea543", + "encrypted_shares": [ + "0878609704737084ba492d821dedd9f1835f4dc488ac5aa1a309cec0227035a406f6ac679f918b8b4691f5868fa18a3a", + "8a29295f27e605d6d660d38e2325855d2214cb7c4767c8f3b477185df301e57cfd4bab597b673e08a92646ccf3f8ae42", + "68d175e3a6b77eeac98fb2fc901d2e874b8192033cf6dc0c9af448e36600847dd143f6ac34437e325bdd7aaabcbdeee1", + "f610909085cc459c19e3d033a0a69156b68b662a69e23b705dff549c51c5335dcc262191e53cb335705a2eb74f3aaab6", + "3c7a48d7e07a867c48558daa6825c481dc81bc658062c0ac60ef188214c09b362c5e2c9e515ec100c324669173f4bbd5", + "161a858e461c82d4c76e2ba0847d2eb24cd6bed6e251e01069c7c9f99df36209b843e253604aefed61c9014c29d94125", + "4769b20ee27428c38395f95b7320df97894adde733e4b8c6fd10d9cab171e1bf442f9daa250cd9d514c2b14cba0c9fa6", + "f18cf4cc6af1710d36c7a8dccfc74ed998c44d0deabdfbe0bcc08c4d10f99a46d7b276e8f22cae7d55c8e4fb7f63604c", + "fa1e4dafa79eae687afe5af332dbbedbb22695c362b89ebd653056b57e88be4785bc7dad3abc133c4b4900c4c409fbac", + "c868c300bca273c5a5760369c3fcee31b0eb0e5f7eefb025a5be4728bcc4d63090311f9e52e1100f37c2cf275012c5af", + "ca41cae9d973f41baacd4214e7e35ddbabdd11ca988a74ce034b6e6ebb5a7c39416815687e3a7072657c7394426b9b75", + "a1bf80eeb350b56d8193f4d6fc02631ba7d1af5870ceef0cf852f8c1478382f726e73dd21e670004939367ed721708e5", + "c094acba3c5617ef33e6554b24b3cb52c0bebec29cb33e61204c9c89e40f38ba392bf13d8bc888b45378e3da93ce528c", + "701c064eb851d8dfba1d4a1a02715761bc32ab5e9e856557a75f743c2cf4b1684ebf0046d33bbb95fcf837ebadebd412" + ] + }, + { + "participant_id": 10, + "ephemeral_public_key": "021e8d6f6835f81e0116f49a1c4d81912a04283f14137773b12cfa760c10f7aeb2", + "vss_commitment": [ + "0286d02724ea3240278a86be7145bd7771bf185a82627e8326c8c7a0bcabe95d58", + "03f84623deb50aa07bf0d7a5a7b1429badacc4e263cee60a02e159c8a518cd9dcb", + "03e1998be4784122df4aa65722a3a626e124b42fdbed5cfdece5ba7801e6cd5f27", + "029a59df9b9d44ebfe75e3111b6489a634a0841be16e3293236f1b498ec0db4aad", + "03051ab2a97b9b58dc453b88c0fe83dda6c114637a6f62199c217795d8b000c0a7", + "03653bf707d0c43986427ba3a9a68236174b832ec122bd9b32b42dee645febd240", + "03ef5ed844d14265295e3960da6e2e0963f8b254710cdf523a98db664d06e81a8e" + ], + "pop": "0207a21bd084ca5608deef38369c0274e855a9523e3c2f2508ed430a41a458a6f0fdae764a757f23489f8013a0720a98f498537dda6cdf2a07312bd64b7b524c28", + "encrypted_shares": [ + "b4be12e10e8012f31acd9e671073066cc5fe67ede60e472017f06e8ad6c5311c86cb1af6d3e37b6c669ec4f37dbf6548", + "e91547f633e478f52b60e2099a56e8825d5620117bfee32bc911b6135a8590b4fd1a353916eae43378a88680704fca97", + "d8c17b093f80c13927b208f024f8fb06719c8cca85b2fa7ce61c9690ed2df772191b5482e403567f751feb0175dfe406", + "ed40bb15130f1826b77f2f35a548adaaa88ed27af407bfbf4f42cbd7379f8c3f35c946008b75f744e0544de0a4a3fa60", + "0d68c58e34f4860da657f446e4f9e31c1aa2e75b6c5a2bd14e1413b5328fe72af6d08bb170f49ee5b0e6b0d79c649014", + "3cebb78786dba08016538e9c932b925c0a66608c38ab5e8da5361c9be9a34c95228e26cf95aa8a151d5a3a37bf31f7f6", + "abde98f956f961f09049b6e06879efa0232a63945c8ac16654e9f0a0ff87e523c03f5bfa6c65908e2adbebfd57262f62", + "daa727e964ab8ba5fdc60198ece917360c767f04394c69779982d1712136f403a2b1065fe61add4d6343fcd0d1ebd69e", + "9004c2d11ff128e140ffec51d209a07f3a39a20aad6e26cd3919dafdffa639a8a356409852ccc6adb372baa2f304780f", + "55276897c36cf92f685ab5d862faf0c9b2ddc25884ea2f78d7961763ce6702f8caa21dd1487fc02fc49ea16a697f21b3", + "75e3b568c93623463b05708eb0ff02a92037712e31ef54ec1a86c064e69a02591fed3de3f26f0ec3209aef7d36b41963", + "077881c29748fda3538e046dfd4055a64729892e3c3b85a701a5c4c7d935b614e5a68038bcc83d7debc025e6762f9acb", + "83cc42e3fb19d351160943290d2160eb25f5ed2a87961c4aa76dd19347a4965916af3f02bc2a2084afa72f7d7d5b4a43", + "c51ab0d636ba40ab9808df2fed4c0b2208f8811821bc3a2ec9ceca839320a2fd86be32e1c23b25a6f7508c29e3fcfad9" + ] + }, + { + "participant_id": 11, + "ephemeral_public_key": "02d0e9b7c9d510929110f485450c7d2005e84540d30fad3793644c9dcc5508bf28", + "vss_commitment": [ + "021babfa9347f317acb16c45111e9c9053d623adee7419097cea163624a6c77398", + "028bc1491fbf92dcac01ecb41a0f1858a0cc39b14734c31ab591b77aafae16f2b7", + "025a327265522fbab2485fc46754744e74394093e4c91ba6df2bd3b589b91e61a2", + "02e98b7249ea5794645c0e49e41b354b15c165a63cfb7d4ac3e304dd5f68364a14", + "02aa4f42a30d2b7eef209d96da798373dde9910aaa1dadd8d8b55b0e3f277d7cc3", + "0339cd656b6cdf84eb9fe716f904c62ed72d43fd7bdb5be9e4c3853486e84687b0", + "030968a7797a54e267c531c3083619d4362ac322a656090f93b7b06d63cb5f4cec" + ], + "pop": "03712a375018ea9e1ae2c11c87a3c6692876718022033438dba2340533795f7c3c6b48cc66cf786775e7db8584314a8df246205c5ebbf74887423f13714f025573", + "encrypted_shares": [ + "1c7206f6fe3b4662e1ef3aaf70e09fa073c1b7ae9f542a68f29ac68e0081d149abfd15f112c1d7e84981d9ef01db4488", + "998ea64f2969d15e4af9f1a2b2bad20e846014d7a07349553659b38604c258fde3bc3ae786dc3e6848819d478a755354", + "30c8191c21483c1e6ae4e0038942465e02374dabaf4ff41373e0e6da524fa8e71003e0f9f9bbac91c19b9a927cc2f0ec", + "55eec026d58238609492cad9e2756dc10015766a516c624775fdebcf7a32504745f0484a81a4ed5abf1704a0e5295b01", + "333bfbeafc5598dd7033d8dac630adfea7e2896301e6c432a3a53174f0a96559f13426b25e4393f938573a9d948a3582", + "0bc0b9d5b7fcd78e75a8afcc3a5481b794bc253fb502fcc6431038ecc0e7d05186681bb0d001bb1637b6d46963b3e2ab", + "a0e97a87626431b1eabb2e993db0c6950a798308e531ea581fe8d2a6697e5eada5806f993be5399a94b91a6c6491909f", + "4c5782c093f36c60a5bd5e84dbe1aebc5140ea7ff882091783d2b5e4dfabf75b26b165abccc64dc0bff50a3637986b5c", + "99c124907cde46f965bd1e764f7d9e8e9256e4a51e1bccfeb66066e22d669e1615b226d6b0d95c7d4dec4ce9de8b1e0a", + "dc821a74a2b60152cacea6a3dc3765541c03d21830b489e5c5bfeabe159d32cf248a58f1719757f53a9c9d9614915bb7", + "dd9690c21416c8a5d7806f89b47589119419c19955e7b9aca6b177ace4d45d3e05e2c139eec578ecdd244b3921bab260", + "f4d002fe2f5b63574c66f3b967d2e16ad2536644962bc718c5111af201519f291ac0d621349afcee74c4d0b025c0917b", + "178d8ef21c27ec874e4f9ddbf910a5aff7828810b9dde843f392775710c4ce8f5ea8de8ecdd4efd7f368c0177e3c9b85", + "a4489a1ff9bcde95bf0f271009d354a041ae3794da41558073c59a77a8aae24835f6e79790b94f7f4e95fa4ae986d919" + ] + }, + { + "participant_id": 12, + "ephemeral_public_key": "0210c570c77f6fb8fb396aef54d293e493754d807baa1f1605241a4d8e895efdfc", + "vss_commitment": [ + "020be7444ee8418240a533119224900c85d44e544ec819eed4947883a21de67fea", + "03f30ff1bd63174b603d784be776a50ad8d3b69fc05200be35daab20916ba0b6dd", + "034cefa90c68f07c1a4cb587bd32c7a0c3698ba75b26c88882c4dfcc81756f8a3e", + "0396368f92eb8b33a363b82860e900cdc41da13bf6c6602e0d3bacfd4fec23c800", + "03a4971077a616644216f319e186cad60ba1320dc327a844d77ca828347620305a", + "036e60be5cf4f3d74f5a6cc43fbb03821bba55ea45c8c2bf0f744de2f8eabd207c", + "03375c34613979a6ef67293c0856ae714010d28e0ed6f0405b44e9c6f4cf608012" + ], + "pop": "0202fb9094d99ae591323e6f5a90fa4202e41fcf1ab144c012f85005a8829ca30217d939018d30b200dd89f185ae14647a903d9cf49210c390e60e282b466b55c1", + "encrypted_shares": [ + "45df99d313d832633fa08a9610932f6aafffe13f9059d4a3bbdd06868f840f48e5f05a3db0ac8fd0ea3597ad33709fe4", + "f129d6b6fa2a0fbb4644e82d3073a84745a2b7eaacff9ac4c7d81b21e7682517c27ec333157d4f3cfa6ec0a5b1063662", + "af31b9a506592565a4eb22c43411d5786865dfdfa49d87425460488e5715603246b9c5ab62a1a8225379c746d515282a", + "51882ca3be8c5a290c9841f95fd17cadaa5f6aa889aaa40ae20bb2268629b7b0927186080ae387aa2b23a72285a895ea", + "e8c7be74e17686783a2443c77b579151cc7b5f3bdc197ed43809c0048ccf51f9327aad35aff010bdf3eeb42cd29e5119", + "61c3a49a3b082a8b875b495fbefe5e98e9415997531b061a53cd461e27c22401689fd868a38891dffaad7238a72d975b", + "b546e39dea0c789035085c0518f288f92ec4d3e160c99ec76b10f38f11f5c0cfd29053f24628232b51fc83c0d801a483", + "289cf5bb3835d873f12de52b5bd56e13c3f94d5a5824718ebfa3c0b588c235521a79a0ca0e2c9cd54982fedb16972a9a", + "78733c90dc2c24aa1704a2a045e64be9fcc664ba55dc55920a3a6d049d3bb848476567e2eb944fe17027e9424ea736ff", + "9a1b5387e3d3bb43f97ff9ac26c46a3062fe8eef1e93dcfdacf49542d8bffa23178c812937780cc293d4c0cbd60cd9a0", + "4dafba923c543bdbb540d4d5b6543d8e4d22b8bf975e679537a526012e6562fc8ab4456f91adfaa15f6f0e01677d506b", + "7eb261bd7b63b6fafdbbf27924bd89f851dd0b87c12b1beb8091fc4efc89d8324d707f6ba8cc14f38be75aebaeb7f40b", + "bf61b6ef3468128b24847671ec110fffb37ed90e77a32ec69b112e273baff0807941b7188a1fcbf128c5665752fbd782", + "d8a3e20fbe4e41bb80828f8290da4ff46f1ba8c127bb2b6c5282b6e719cb12d55b92551d58c2eb2d26d87f7554dc8d0b" + ] + }, + { + "participant_id": 13, + "ephemeral_public_key": "038eb5b5e86ccce9138daa14a1c2b458491286ab00a973c9a3950091f4af8276e0", + "vss_commitment": [ + "0271a15813be66a1e81ff4f55506b959e9173de3e3c73554bb6180d9c5967aea24", + "03dc18b70508c3266717c349933db0ae50f7dea04fd7ae8607052a12a47cfecbc7", + "02eaf94e10fb2eea95c1f08a09a26a986d7724696040758e23ac36bed57935825d", + "02996cab462aeada0c282305276a5426292fe5c0b87b998f5c5e01caa227fe2c7e", + "033c08c5c61a1c2f7987b49850699440563f0f0823ae0ed0a689942ffcc7b4e0c6", + "03db77e50aa8d4ae02b86401ee575ee3f88504ef21284a54830641be5268650822", + "029ba8de4b973eacda2b112c528e520e12af390280e62d00370da5a7af978a2005" + ], + "pop": "024fc3f3f4e74e79fc587fff06a5833a96b1156fed803fbd5946c29a0a4ca1fb486d90c36c68896ff665f32668b12b1995ab0b90d241cd20fcad17f82d12b172dc", + "encrypted_shares": [ + "44b6eb6a4b4676a78edfe2c601d7c958ec6ce3013dbc9ff331ff688b892b6117f335957e2e892f5cab27b836c9ca0f40", + "eb74109355ddf85c2428bbcb6afcd821dce9c6d93eb95124dd247d448323ed242d9bf37d646fbb1db09dceae2d1f529f", + "9fc7457f2ef3feae0bc7584dcdfbe7ab333755d93b1725a4dff2d949aca02ae4c677701f554dfe3d621c129a29442ef4", + "b626e6be8ed44ae84070f60e0e1ac4642f8a33acdadae4c0c988bf30e37d52c685dc2c312c58785f640c1d156efca2f3", + "c6322caf3a731fd9d6a2031c2cca985d2502c58e5176e1b3e3bce9bf14558e7f96590f44ca5a5d94911f1ae128320cec", + "a068fa89668dc8e6130a3b73958b19125973d3607d59815f9f15b9cddf2a4df7d45ae998e57196082bd0deed8b113830", + "ba914953af6f3e3176c0a5fa40aa2fe856f147cb82deefb651226e7da40d5fd7d41e351ef1990ad5b1eca21757ce4e5a", + "e4fdffe4f2af9b800747acbe6c1a89a4308a1d03940d7e222fe43794c816943aff7a661eebe7043e62442f13726e6ca4", + "b2c7755a789a66cd83b6141b810b42e7898a752f15eaa99e327024f6f9868633eb3b9694294c78cb9e6bd3fb453bb83f", + "0247b0f5eb260c37f2d44cb16987534f39303a073282e10f476be53ef26e5ec7371908cc9d0407af6d303e6edac9290f", + "6d7b01ef543608c818676b27fe4d0536ae79b78472dda4c657321d966ef8d03275ff207a6d7f90fd95f64adba0ffe6e7", + "f07fb8113367e6f8a4bc9ff8831c5a5a8693a28c9ff8521ca59e9fb76b0b47520ead4aa55717bc2803ddc28b262ebee9", + "996df11a2f8d3d0f38bb2d17531a75033c4ead473bfbd32463788cb54e1c683f918244b7f1cd3dbdd18ffde2c8759378", + "7b7f24ff1f4b8376882225b8d7ee12a255cedabbff4c310cf0170e3dc9b7a3573b6ceb13be136fbba68aa541df6fc05b" + ] + }, + { + "participant_id": 14, + "ephemeral_public_key": "03b1a97536cf30136ee127f4331208ea81b12370c12422f5711b6c512096c677ab", + "vss_commitment": [ + "038da248d7ec20d51715a358307d5db7af4fe3a1c8ca77e2935c58eb8b1e960445", + "034df2b9dcb9cf805aa7b0512267bea491594e1914ccbb3d7a52416f34a5daf610", + "02dc5c6e33b65b604839d5c9afa49d56e6d7885ff379107d1d0d4b2ad5f4f69ecb", + "03ddcf074590c752fd0e49d9430836448d4d3605b6bbb9e7de40669ab4af32e463", + "021492e7d43b593333fcd22b2a480ca7b2792f87b166d4c1a4428d6d9755cf5f25", + "02f58e5125a8deffcfc6d981194013a76124f4de11de953170b9637874f8a56891", + "034f7bbf3a956cf571aecda6dd3c26d705243a1231570c72f22d0901dcb7d4a72b" + ], + "pop": "03ac98fabf07224fc9d714b6d76fdec15e0fb317f54efd8c6f678b5741dca7379b395559896533b2fb885631fa1b1a7b75056bb24071553a0a6dced76aefa7bd3f", + "encrypted_shares": [ + "8423f53c937087ef2f07186357a7a23c02dfc5775ab0072343a9b1d0bae008662adb3434d1a8f87e86bfbf16567b22f3", + "2905ca9e775303b9ddd04cee3aaf23f931608eed2b79e10ab719d5057b0704e38f9995d5aed4b775dae84c936cc90047", + "6cb4798da69853c098fd0557a45375c99dad9f03ead6acb47b45f6b420877dbcf5fb30d0902b39eb0d54258c87b205b4", + "429d35a2f09eebd6337b78a5050eb2f21ef8392aef02ef81c029af9aa381c1a5521566ea973f938e459a1959debf2c79", + "476ffb9762b7e73d0e5c8e1920164436fd07df080e60d0412b68aad33207792db7d5ce94aba93d24f273db456448213f", + "f43a029a09659d6d1fdcb3955076fbff3ba351ef0747a04012dd21ddc2eba10740cacb7bcd13585b32da982c873d55af", + "7100ce08067299f7187aca2c7c7cdf1d806f2b60cc6a386ed50e1f4147e17a116b34b6f14f1fae748fdf6d1fb1374cdc", + "d90ccbf4df5e610a8898f98493b351e56f5522b623636fbca4b5c3a8d45e5f434f716488f68e787f350e1bf0af4cdb14", + "a1f4387952e5fecb9a9fc0910c8360e41555c9ddfcc405ca95f4de542af100b82dab26b65eeef1c56d746e476f0b4563", + "dacb37642ed196cf2d03589e4b94dc632a335bc72d9a127114f7b1457f59e839947b9513b57498e3b57fe031d6fb5c88", + "9226a45a1fe82558373cf34f71af7e0b625427378dd34bd37850c38c4f3ac2c866bfb4534f85498a5215cf99f739543b", + "3ffd69bba2d65739c8a2d80d57eae4083b222c727690c152af3c32911ea4e4dbb58e774eeb4d69e9ad1f221bc15d7948", + "7c7c1ce2ffa4199620515d614f615352f7bb9dde2ad19534bda080a8f08d50e93bf64b53d56ec9fcd9dcc01a10100ec5", + "88c366c4d2fa9ef310e98f8ebc3541481f834721ea480ee59ed61c5975ff044a031ef1bad7fbd448b49614f033b9ccc9" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "6a230a7c1d0d83e59c6e26fbcc4be24c4a691b5f2f14a049154f88883faade9a", + "verification_share": "0201e0c204e450fa1025f793493a1f79260b5956cd73edd47883d8b15782e47ef6" + }, + { + "participant_id": 2, + "secret_share": "f434eae0441f2811fba757573e6fa501f30ab7bf41f053738dabe687b2e8e0bb", + "verification_share": "03e8959c4848cdb2334d3e2b55193426cd5cbfbbccea83c2191b2e0514ae3e3f9e" + }, + { + "participant_id": 3, + "secret_share": "9d07cd0257aa43f68bfe0bb4349cf4242c89aeb9740eae6455b871f1ba25645f", + "verification_share": "021f3ccd0152c2a8303182de160765c6b79e4fb1e3a14d8c163462b01ae6007cfa" + }, + { + "participant_id": 4, + "secret_share": "029c60851c9c6dd97ed01d0891f0cd7f3bd2b3af3b4b3aef3f7031836572b7be", + "verification_share": "032923d3bef3794e465103cf2767e48e8fb963efd28aaa7df250339ac24c6baf42" + }, + { + "participant_id": 5, + "secret_share": "6b1433204335301fd445350114a3fd80dd66ed6470f8be8157389cb5f2a828c1", + "verification_share": "036f8bd525ca06d851e583882a64ee145abec9283101aedb24a228ec9e4aff62e3" + }, + { + "participant_id": 6, + "secret_share": "d18fae79826e3ca7bb0430f2e7af084490f71edfdbd205861937848457e2a205", + "verification_share": "027d5fc00c377d577eda447c6fb8c137b72f2c39d79a4c5becaa40c1263c8c7a92" + }, + { + "participant_id": 7, + "secret_share": "9ffaf3b0425d77995329688056636e854eed32db738698c3b14fdd77f60ba4de", + "verification_share": "02892867c93d10b3585724fe178c98adf2e4a1dbf39a0bd1240300c56bac17356c" + }, + { + "participant_id": 8, + "secret_share": "15c9949bd590d9add47dd7f0a1fa4e7ed26d428ee39e5ad047327695f1b49652", + "verification_share": "0205baaf66a14e7aea3cb4820885c0abc88b8956a8ae7a5778a031e637a03494ba" + }, + { + "participant_id": 9, + "secret_share": "5ba12abc416429ed17ef2e3af91860bbed2bd1a1ac454e17d6275a46d2b2e18e", + "verification_share": "02fb1323b9354783c75316603042ee5b6d721a01eaae1d151cc4ce57f74919ece4" + }, + { + "participant_id": 10, + "secret_share": "43f2cbdd95508ee18448bec4914750d5b50ca890d325a2bf5118bd91f9da2c12", + "verification_share": "03ce0d8ed6c0321301d9f33e1b4e80eb9c8e3ac59f7d245b98b7440681ac0aae78" + }, + { + "participant_id": 11, + "secret_share": "b8835c6dd135f7425e2d56d1e2647215910dcb71ac6eeef650e98db9df29695f", + "verification_share": "026932e96c0da497f90430740aaaa9a99631cd15849c8a669b34bc313404204123" + }, + { + "participant_id": 12, + "secret_share": "d4e2bf855a9e5a147b51f6ab0404d00e7a90bea6c7808dfb4ff1b36c1506ba17", + "verification_share": "03419ef7927e8e6dc2df9b21b99bd5ad413c1b917dd9bd9b491fc543b1509406ae" + }, + { + "participant_id": 13, + "secret_share": "add1e4a200face4158f96e732cce9b1a63410b0b44788952aff395c543b7e95e", + "verification_share": "0290953b5eead2cb548ebbb0bee6cdc6af6a889d08b7cdc1c871f60662acb06597" + }, + { + "participant_id": 14, + "secret_share": "c597b31490da79a495b0deb353c7f0c874c36091b9d0c9db0c532ba8faf8fbf2", + "verification_share": "02b5a7cdd2e6e9dcb68645244a9319ed946fe600a22ec5242a6f8950c4ba363178" + } + ], + "round3": { + "transcript_hash": "87196836c538f03a5c1528134793a916da9adad6c03003d39b062b38597616fe", + "signatures": [ + { + "signer_id": 1, + "signature": "02a2dcee0bc91f054c6b2cefa47e8b78e957cecf8dda88ca0067652b34c99ebb514ceb1505f625891ac399d116925f7c0d29a10cf50673fb60e1347f7c0ca9697b" + }, + { + "signer_id": 2, + "signature": "027babf54a124fa0950f232fa7d0276e2871fd67daff919110ccefc99e8c0202ecdb5076f1017c8bf9d9d6783518083d52c8ac26621389b71a7c6a3b088252ef42" + }, + { + "signer_id": 3, + "signature": "0381ce5e780f8b306ea3af6a2c64b469e4c38e5d6bc96aa32e0672863bcd03898a8b8a261dcd5320dbfd31dfd4a2c01c279002d310900209483507fe9de9ac139d" + }, + { + "signer_id": 4, + "signature": "03a945b9932f6e6ac2d572ab43b679615dfb10d69679d1e667b68f3bc77b80bb6ba8bb6137144f7aa7af9db910dfbe58afa5687fe0bcf8abf06a67e90602d2d47a" + }, + { + "signer_id": 5, + "signature": "03a4465ce3697bad87559bf75a16bd837d2826b32c141f462003ca24c658c24788c69f2ac9991b10f23731fb1bfd8e62170cac5528ca13ef1a8bfdf7a40bfbb8f5" + }, + { + "signer_id": 6, + "signature": "0346412d18d070db59556e667c8112591ca7ab3345231f9cb96084e2dce7b739b25eb815b2ba05859b0d66c52effdb3ad49853213f51500b172a5d6e93113a3d84" + }, + { + "signer_id": 7, + "signature": "03dae4f34266c2ce268accbfc7cb3123c23950a27488c64f2aa64b3f12db4657fb9593d1e0591dcdf31593ad1c98dc65f2b3ff40c1bebb8172a0943bdc69ab8913" + }, + { + "signer_id": 8, + "signature": "030e5a2bb9fd13bdc5816468fce6ef592bd7a2a5dbaf02c7974c6040d5fa17956cdeb486fe7a4c9b54240fb9c05078428dfbbf6ced110aef2323dd8e0f64dd7bc3" + }, + { + "signer_id": 9, + "signature": "02aea5f43b21b586985fbe20fe86f45f78235d66a96d5e170ee755cf3be2956d779ca1c8646902fc4eb292a78af422b65019b47c958a25c5b4bd10339aee08a2f0" + }, + { + "signer_id": 10, + "signature": "0224d6bdd3c2dbae0d3ffca09d706a7d0b6450f38edc978497181be7c06510aff4347687cd2fb52930f15e1d59347ec2a5e4e70f8735e1804d5022e91ecf9f2ae9" + }, + { + "signer_id": 11, + "signature": "03468d3766e8700bad4193e5beed6556b808e2df8f80b97fe28fb44380ec10e0a169a8989e84fd2986f03c201f1feb6d4cc4e6c95b2aa49e9d75844d6b4031b61b" + }, + { + "signer_id": 12, + "signature": "0339c42bd4ec25759c8a630389b7e71a6f201b3a38adfe18082105bc7dbac4f5aaeaca52edab4a8e335c6c556abcb30279cc42c5b35926d2485847b366cbe7c3f4" + }, + { + "signer_id": 13, + "signature": "024c25d61ba694b4d674f0e4614f87f86d337b9c78d070b25a6d8173ce05d01fb675c12baf22828712db6cae094b53900715a74b6def48eccf92d9a268c4a24143" + }, + { + "signer_id": 14, + "signature": "03c8272010bfa2e14ea986511620e5f772b9ef58678b2fef702d4e70f428af77fac994cc93ca2956fdae8f12f6e4ae80441b8fc6d3c0b3fbe9f4887aa89d86331b" + } + ] + }, + "group_public_key": "0359d5d1ab443cda953b002b6dc12a11ba96e6f3aca7b8fe8d3e159ae1d56cde4b", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "68f1a4f3a1b132dce2a36e4463baf2241918986826d32bb5e29374db2a8cc1a69dfd61e6cefda4ba70bd4471113da46f", + "112de458c4a7d3f72b165723603c7d97f121a0c6eccf5b599a59680600a354c516ddf653651c17a559b8a1c572474e62", + "97c9c7b796bda9a0a458b1c17568ceb6564602168840aa02c2e66be77c4ffe1cf0e4f2fa79d7f623f8c054035f42b1f2", + "3fc08d5f03a9fbcc9b6a02f4be8f70032e115d88d2062166df86ff0213a0a5ec36187f52641dcf50925688c550ed0820", + "b86302bc16bbd3750486cd01d2501292e7d56a866bd6724a8ad0a26e9764222db396dc4c9c91112af2e1f1ec25404473", + "64182e75b7f126a8bcc5dec90ffded51e21f7bdb8a9c24b3795a14dfe00f9c0f9b4dab50995f6023510c8afc7672d904", + "2e31a834492c145e6726494cbd7f6ca1f6202fd69853539c18d813fe379c44df32efc1ab21cf090fd4c94e0bb3fdb59c", + "d23d0e189af314f25c0f28aa24943eecb62746b6beb805d1b7e17f1e454d6edd5ca8a4af6354ab289c064b3dd7cbd838", + "0878609704737084ba492d821dedd9f1835f4dc488ac5aa1a309cec0227035a406f6ac679f918b8b4691f5868fa18a3a", + "b4be12e10e8012f31acd9e671073066cc5fe67ede60e472017f06e8ad6c5311c86cb1af6d3e37b6c669ec4f37dbf6548", + "1c7206f6fe3b4662e1ef3aaf70e09fa073c1b7ae9f542a68f29ac68e0081d149abfd15f112c1d7e84981d9ef01db4488", + "45df99d313d832633fa08a9610932f6aafffe13f9059d4a3bbdd06868f840f48e5f05a3db0ac8fd0ea3597ad33709fe4", + "44b6eb6a4b4676a78edfe2c601d7c958ec6ce3013dbc9ff331ff688b892b6117f335957e2e892f5cab27b836c9ca0f40", + "8423f53c937087ef2f07186357a7a23c02dfc5775ab0072343a9b1d0bae008662adb3434d1a8f87e86bfbf16567b22f3" + ], + "recovered_secret_share": "6a230a7c1d0d83e59c6e26fbcc4be24c4a691b5f2f14a049154f88883faade9a", + "recovered_verification_share": "0201e0c204e450fa1025f793493a1f79260b5956cd73edd47883d8b15782e47ef6" + } + }, + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "b6d8938c60ba5cfbf0ba97ae1c3f99c7a58485344ed7d6f387dc35bc76cacea1", + "ad371a449f8f2734c1d98f4f92dabeab6189953e7f9258a2657743adf4b49fde", + "344ae0d3d664507f90d5cb534c77af20d61e83dfaaa500bc8d27428af3ac1573" + ], + "static_public_keys": [ + "02610897b193f5d9ae8c6b6527dfb89481aa9440577b24a96a9378a756542ae20a", + "0325c9e642a8967b6069db110ddb5588d701b89ccebea4b15c277acab087c59129", + "02fe2400b831d7dc120d4f1f49ede75956782e77ca92aa24f7d1cb88bc584dd1f6" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "02788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "vss_commitment": [ + "0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e", + "0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f1" + ], + "pop": "03adb7b47336ac7c66f065e5963be8e2403e52134264fef03a9b654700df0ac457e4f93be87ee7a5efa216ecb73926a462caf865dec15ee7657518ea960d16d851", + "encrypted_shares": [ + "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", + "50162b60cefb0fa778966de5dcfa79b6046ad855a709fdc61ef253631575e2c3ce9048c42fe7c84583ff19d37ca8a775", + "be016f51b514b6bd413ab8053940454e068d69271cb5092dc0a229f544a9d134f72413b8ade30f4b21d10ca1f5485dd2" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "vss_commitment": [ + "02672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c", + "020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f" + ], + "pop": "03b55ded99a60fe407ee51b4c340a586110892e15d7f7b13da965fd826b4525653c1265f7595bd061e024830051e42b0816ba3cdbf7bb49947106930c788aba7cb", + "encrypted_shares": [ + "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", + "a45a839733537744b0cbdeeae90f14f659458425eb603ae69bd867e6098367d1a9982b249cb30daebe150570c5e7fa4d", + "f9f29daaa5cbb0e2917e71b8bfe5f2baa847307b5d70b319d5f7731bbb7075adc4ad244264b85fa4d0bf9299ae11a529" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "0306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "vss_commitment": [ + "02fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b4", + "02dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d0501" + ], + "pop": "025ab99ca736f8ce1203687a626364744c3ccfeda9b63e7313a8b969ac62aede0bc0943c103c540da236ba575fb88921221ebc85e1ed0f432408f8ad16896dd878", + "encrypted_shares": [ + "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a", + "11173ed71d7ad60daf3720734ad96cad47b58ee1548e65fa4903e0e5a7e94fbeae3a8076064895bc7bdc201df4de5236", + "d5aa7efab9d2d6e32c2039bd01eb893696930bf5c3e6449f9abc82a4482604680ba2373fad594aea7754960b3064e88b" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", + "verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11" + }, + { + "participant_id": 2, + "secret_share": "8e18ea88b0dae913f89c42b21be5f87ebeb801fff8f62a1cdd420d5725b5d7e0", + "verification_share": "0309e433bbcd6cf70a7c3dfdc5e3d44ab629f79568ac8bfa51c4dc118f4507ea20" + }, + { + "participant_id": 3, + "secret_share": "a3f1b10cb341e7a05b8fd606d7ea264f22fe58248f372864fc5c80a86c08f49a", + "verification_share": "02a91306f8390af207d697260df455bbe89328b1488ad5338271cc2a2019a394cd" + } + ], + "round3": { + "transcript_hash": "0d785c00ecb6bde350ea1800ca69121c82be87ace2d7b691cb3d4c91566994b2", + "signatures": [ + { + "signer_id": 1, + "signature": "02bab75a5155f867dfb974424b9993965f8e86929253f3630d7c840a9d381e9b1a1e1b1e11153dac5e3a1ac8ad0f12588e10822068435b26bcbc654bc1ee2b1c4e" + }, + { + "signer_id": 2, + "signature": "025a191fe08f7d0248f8bc69d016ceaa5316430e13b8056e192bd8f80c3017d4bbf658214c1ee2e184add34c07a73ee5f8da3eabe849b320a71e187769a54e1e61" + }, + { + "signer_id": 3, + "signature": "0388ea3c84b7ca9a7a4332227442495a5447d9832819817f48cfcedcbf8f44e672d61df10dd5ba4b979ebc8e38ed7b6baedc1b07703161d3539023cfcc2f80ddea" + } + ] + }, + "group_public_key": "0317763ca657a4d5e1c661b395aa9454ee2d9bdbbe8f2ea57ea0ec5cc0723ed9d9", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", + "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", + "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a" + ], + "recovered_secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", + "recovered_verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11" + } + } + ] +} \ No newline at end of file diff --git a/frost-secp256k1/src/keys/cocktail_dkg.rs b/frost-secp256k1/src/keys/cocktail_dkg.rs new file mode 100644 index 000000000..665c9601f --- /dev/null +++ b/frost-secp256k1/src/keys/cocktail_dkg.rs @@ -0,0 +1,124 @@ +use super::*; +use alloc::{collections::BTreeMap, vec::Vec}; + +pub use frost::keys::cocktail_dkg::CocktailCiphersuite; + +/// COCKTAIL-DKG Round 1 structures. +pub mod round1 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 1 and Round 2 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round1::SecretPackage; + + /// The package that must be broadcast by each participant to all other participants + /// (via the coordinator) between Round 1 and Round 2. + pub type Package = frost::keys::cocktail_dkg::round1::Package; +} + +/// COCKTAIL-DKG Round 2 structures. +pub mod round2 { + use super::*; + + /// The secret package that must be kept in memory by the participant + /// between Round 2 and Round 3 of the COCKTAIL-DKG protocol. + /// + /// # Security + /// + /// This package MUST NOT be sent to other participants! + pub type SecretPackage = frost::keys::cocktail_dkg::round2::SecretPackage; + + /// The package sent by each participant to the coordinator after Round 2, + /// containing the transcript signature. + pub type Package = frost::keys::cocktail_dkg::round2::Package; +} + +/// Performs Round 1 of the COCKTAIL-DKG protocol for the given participant. +#[allow(clippy::too_many_arguments)] +pub fn part1( + identifier: Identifier, + max_signers: u16, + min_signers: u16, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + payloads: &BTreeMap>, + rng: RNG, +) -> Result<(round1::SecretPackage, round1::Package), Error> { + frost::keys::cocktail_dkg::part1( + identifier, + max_signers, + min_signers, + static_signing_key, + participants, + context, + payloads, + rng, + ) +} + +/// Performs Round 2 of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] +pub fn part2( + secret_package: round1::SecretPackage, + round1_packages: &BTreeMap, + static_signing_key: &SigningKey, + participants: &BTreeMap, + context: &[u8], + extension: &[u8], + rng: RNG, +) -> Result< + ( + round2::SecretPackage, + round2::Package, + BTreeMap>, + ), + Error, +> { + frost::keys::cocktail_dkg::part2( + secret_package, + round1_packages, + static_signing_key, + participants, + context, + extension, + rng, + ) +} + +/// Performs Round 3 (CertEq) of the COCKTAIL-DKG protocol. +#[allow(clippy::type_complexity)] +pub fn part3( + secret_package: &round2::SecretPackage, + round2_packages: &BTreeMap, +) -> Result< + ( + KeyPackage, + PublicKeyPackage, + Vec, + BTreeMap, + ), + Error, +> { + frost::keys::cocktail_dkg::part3(secret_package, round2_packages) +} + +/// Recovers a participant's DKG outputs from the static secret key, transcript, +/// success certificate, and ciphertexts. +pub fn recover( + static_signing_key: &SigningKey, + transcript: &[u8], + success_certificate: &BTreeMap, + ciphertexts: &BTreeMap>, +) -> Result<(KeyPackage, PublicKeyPackage), Error> { + frost::keys::cocktail_dkg::recover( + static_signing_key, + transcript, + success_certificate, + ciphertexts, + ) +} diff --git a/frost-secp256k1/tests/helpers/cocktail-dkg-secp256k1-sha256.json b/frost-secp256k1/tests/helpers/cocktail-dkg-secp256k1-sha256.json new file mode 100644 index 000000000..683131c72 --- /dev/null +++ b/frost-secp256k1/tests/helpers/cocktail-dkg-secp256k1-sha256.json @@ -0,0 +1,1015 @@ +{ + "ciphersuite": "COCKTAIL(secp256k1, SHA-256)", + "seed": "b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68", + "derivation": { + "method": "H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label) where H is the ciphersuite hash (COCKTAIL(secp256k1, SHA-256))", + "labels": { + "static_secret_key": "static_secret_key_{{i}}", + "ephemeral_secret_key": "round1_participant_{{i}} (RNG stream)", + "polynomial_coefficient": "round1_participant_{{i}} (RNG stream)" + } + }, + "vectors": [ + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "b6d8938c60ba5cfbf0ba97ae1c3f99c7a58485344ed7d6f387dc35bc76cacea1", + "ad371a449f8f2734c1d98f4f92dabeab6189953e7f9258a2657743adf4b49fde", + "344ae0d3d664507f90d5cb534c77af20d61e83dfaaa500bc8d27428af3ac1573" + ], + "static_public_keys": [ + "02610897b193f5d9ae8c6b6527dfb89481aa9440577b24a96a9378a756542ae20a", + "0325c9e642a8967b6069db110ddb5588d701b89ccebea4b15c277acab087c59129", + "02fe2400b831d7dc120d4f1f49ede75956782e77ca92aa24f7d1cb88bc584dd1f6" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "02788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "vss_commitment": [ + "0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e", + "0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f1" + ], + "pop": "03adb7b47336ac7c66f065e5963be8e2403e52134264fef03a9b654700df0ac457e4f93be87ee7a5efa216ecb73926a462caf865dec15ee7657518ea960d16d851", + "encrypted_shares": [ + "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", + "50162b60cefb0fa778966de5dcfa79b6046ad855a709fdc61ef253631575e2c3ce9048c42fe7c84583ff19d37ca8a775", + "be016f51b514b6bd413ab8053940454e068d69271cb5092dc0a229f544a9d134f72413b8ade30f4b21d10ca1f5485dd2" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "vss_commitment": [ + "02672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c", + "020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f" + ], + "pop": "03b55ded99a60fe407ee51b4c340a586110892e15d7f7b13da965fd826b4525653c1265f7595bd061e024830051e42b0816ba3cdbf7bb49947106930c788aba7cb", + "encrypted_shares": [ + "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", + "a45a839733537744b0cbdeeae90f14f659458425eb603ae69bd867e6098367d1a9982b249cb30daebe150570c5e7fa4d", + "f9f29daaa5cbb0e2917e71b8bfe5f2baa847307b5d70b319d5f7731bbb7075adc4ad244264b85fa4d0bf9299ae11a529" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "0306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "vss_commitment": [ + "02fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b4", + "02dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d0501" + ], + "pop": "025ab99ca736f8ce1203687a626364744c3ccfeda9b63e7313a8b969ac62aede0bc0943c103c540da236ba575fb88921221ebc85e1ed0f432408f8ad16896dd878", + "encrypted_shares": [ + "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a", + "11173ed71d7ad60daf3720734ad96cad47b58ee1548e65fa4903e0e5a7e94fbeae3a8076064895bc7bdc201df4de5236", + "d5aa7efab9d2d6e32c2039bd01eb893696930bf5c3e6449f9abc82a4482604680ba2373fad594aea7754960b3064e88b" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", + "verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11" + }, + { + "participant_id": 2, + "secret_share": "8e18ea88b0dae913f89c42b21be5f87ebeb801fff8f62a1cdd420d5725b5d7e0", + "verification_share": "0309e433bbcd6cf70a7c3dfdc5e3d44ab629f79568ac8bfa51c4dc118f4507ea20" + }, + { + "participant_id": 3, + "secret_share": "a3f1b10cb341e7a05b8fd606d7ea264f22fe58248f372864fc5c80a86c08f49a", + "verification_share": "02a91306f8390af207d697260df455bbe89328b1488ad5338271cc2a2019a394cd" + } + ], + "round3": { + "transcript_hash": "0d785c00ecb6bde350ea1800ca69121c82be87ace2d7b691cb3d4c91566994b2", + "signatures": [ + { + "signer_id": 1, + "signature": "02bab75a5155f867dfb974424b9993965f8e86929253f3630d7c840a9d381e9b1a1e1b1e11153dac5e3a1ac8ad0f12588e10822068435b26bcbc654bc1ee2b1c4e" + }, + { + "signer_id": 2, + "signature": "025a191fe08f7d0248f8bc69d016ceaa5316430e13b8056e192bd8f80c3017d4bbf658214c1ee2e184add34c07a73ee5f8da3eabe849b320a71e187769a54e1e61" + }, + { + "signer_id": 3, + "signature": "0388ea3c84b7ca9a7a4332227442495a5447d9832819817f48cfcedcbf8f44e672d61df10dd5ba4b979ebc8e38ed7b6baedc1b07703161d3539023cfcc2f80ddea" + } + ] + }, + "group_public_key": "0317763ca657a4d5e1c661b395aa9454ee2d9bdbbe8f2ea57ea0ec5cc0723ed9d9", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", + "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", + "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a" + ], + "recovered_secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", + "recovered_verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11" + } + }, + { + "n": 5, + "t": 3, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "config": { + "static_secret_keys": [ + "97b9f7468d461d768bfc89ffff0c41efa43d63e915db3b1e9558d0e7d0120b7c", + "917ea30b036b92edd821e7cab12e2d80fdbfaceb994dbf7d864aa4448f54c6b3", + "3fbede422d6df3631340b208e2653c1cbbdab0312745c3f4ad68c387175eaf5b", + "f06789105aa658a8f8d774242d748e805d429f07e4ba096ffa491ad2b3bd7c62", + "d3a9721ec87abdc04903dcce30cc56132118a773cc326afff752ed406f3cdc17" + ], + "static_public_keys": [ + "021bd81630d7864d25fba41cc05a5e635c7a08e8b190d996a554691ae246062764", + "02d2796cc622bc6cf3a720c78934b9b38d18a3ee5458c499f85d940606413673b8", + "02401aa2db05d19149dd680c4c1638be7b1a2f25b8f990d24029b9b8ef4eaa069f", + "034dd29d0db956fd5330fd68e951f063e42a85dcc0e78c4fd0c5752c3e5154eec8", + "024f80b54f11083d0462753f835ecb38e34cdb6d695f9213459f54af60bd9bcc1d" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "0220a9ce41fa715b0ffbdfcd0d24f9d0e47a6c824a133c79c6e5913aecd90bebbe", + "vss_commitment": [ + "028d67064658d922c4c16e052c326162fe25eaa5a5b67c18166285afde6a3736e7", + "03b9bfdd22bf681fd328e82debe7ba260ee2aeedab6fcdf24dde3b1db6e68fa64a", + "03ff3e169637a4a257d2dfc1cee6668121f8b9112c1555fa1b5a07bd5c495d00bd" + ], + "pop": "030116f65fb2f6c6bcbd7a0e4ea738b6d345e685f19589e1dbc4d7b923915dbb8321cd2cb9379e967a749c4d4fb4c0db8377feaba2a7f10bfbcf484703d070b880", + "encrypted_shares": [ + "be4888644474f5e3b447a32f12005a27929cdba66460a4ff71c51c4d55937af983d5c4442a7f3ef4519205e40c0abab0", + "cd5b5e013e0f0ab77571b49c9e3881af42a17102bdf12b4cd7e0b6627fa69f7475b9ccabd1b3958417cc2552046f6f87", + "4195663c99ae4fee99fb822654c1a91d8d4aa4524a67ee4f81a493aa6ac5c15fd98631039923304b4684bcdbe688ed71", + "f0ba86ddd4012763980b5c175872e30cddc5863352119693985bdbcb677cc4fb4e134c5d662e8464b984e5d5ae1a5988", + "57d250753752a517c513857f49e374e121150b366232955a905887cd55ee6bfb9a47cfd4007b34344b2df2ce27e54cc4" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "03b40ac55e8c628b50a73c7d6dad2648cf344148be9c2eb175daf62780df46178e", + "vss_commitment": [ + "02b517e4cc53bd4bcf6e04e79637d44321a9763ef8350a5c2d8e9b7b0dbb123091", + "0253b6295998c07f93e5272ad7639ed8172719fbf273f698522a93063c6efc2d64", + "02e602a2ae6dce4425bf660c55dcbc3f8e9ffdbad4517299d5d1d1426e5d7ef5e4" + ], + "pop": "03be58c97432325fc734ca6e2bbdaf68db27806dccd7f162f8e4f179d278e4c5e368f72756c4519ca14bfe9b1e479f8d2ab0db1256ecb00ed18da0befed3392aec", + "encrypted_shares": [ + "7c0cd36129905e1f0497e856e8c095c4894e7d3aa5f093ba8dc444ff5e02b37aa02936493e5e932a5fa194dc0444e06e", + "ed7a9c86ef801e9bffcd7caffe9f1dd8c228353dd633fb6ae0634d64d0267fd414cad8012fbc8c0f09a3928a4eed7aff", + "afb31731444bb89347facf940c451f50806c8c2d1cc5f712eba18780374357a93b2ae82aefc1e11af513cfd7d881c01a", + "15616fdc63cbf2d2f49faa90f1a83005853b86daee85eb6c2b3faa2c5a68fe12c3cd0fd2a3379c7df74138399d5fb647", + "e9bd960a0768858b5700cbf73186890bad5834d65f3a909b0a5d84310584a5cf06bc0332a4481e80237417fa2b954895" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "025d2e46cbf1d980427572df52fcca1bca4bcc50ea2165c2362bc3b65a0f253ef2", + "vss_commitment": [ + "03736a1d64fef3a68a054c2afc2ba2c3a6b75d5651030a954b322cc25095516a14", + "0303f357f157153c1a8df01b78fe3aecbd83af9a5628ba7696a666922f9732ad89", + "026a7c4e404fdb7dba91bec2646181377eaef2c5926011ec097b5390040fc9ab38" + ], + "pop": "02299d6c883a75da067f4bee7df0e765ebb7def51dd9013fd1d5b335663069430b7d50667a6d9638a31e256ae6a6651d6b3aad7a811660de58df319da0e395988a", + "encrypted_shares": [ + "a040df73212c2aac6fbfea2b2d8ee485c9a467d11e4a25b2cd5b252af53226fe5d9eddb85711844cef9d76e656417405", + "59ba15ffd40f2187b92d47f00a2c9c9f4f93b2ee2570bb62bdcc63a3e02d7802fff3cc248b96901a900763fb9c393b05", + "4041c551933749a5b40b793825e216c176ab69a515f15e0e69d4fe29920b035f462b5d9e9b64e46c8132c1e4f2c7cdd4", + "0aa4b79495a6a7ca6121d1b9b42a84ae5aae6df1d151fd60570566a272de29ae2d249907301a2b01357e4f27e5cd8085", + "ef3adca5d017946d284674368a3f6b91215304a0ce19abac529b9b8d521400a33d995eedaa79a5ba9976f0523d9f053d" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "0293e7d24e9b65b43b843ca030bf8dfccfc4e9af206e8f4b9b3e00b21cb1b41815", + "vss_commitment": [ + "035af32bf5f018c0ff4bf8676a6d2f388337ef94a603d9c4b5c2e29c432bf65342", + "0219bdef95c40ab661631c875bbb889074ba4b0b9bfb2efd247521ea0703087e1c", + "03010ef466a733f117074eeb7491e434731ba27a52d12d212547d20d19c0eac754" + ], + "pop": "02838260f85298a27e0b131434a28189e6621491893ad3606c48e98a874a17c01efb712ed3ede1c8f402c676fc5491afc309d57033276885cd61077be94a8f988a", + "encrypted_shares": [ + "c8d893e11274c4a5622967e519996a540b09c83a5a8b290a15a9b83803fa4928d3442f316ec515ffd20f689f7b965056", + "b90c169fbb2748073d8879231490fc2183fa7f394834a41e3cd6957ba6d35b3a8555ac0a23afa082ecb280309cc2c57e", + "628713a70fb02b03e0221c5bcc93f82daf8f11bcd5828ae3cfb2139acfa1781a077e5013f2850f2a73fdb927bfac9690", + "0f2bc915e2818be2eefd5fea13ca8aba4e4e6c658cecfd43ca2b6e1064529ae2a4ad9cd552ba2050349456a31a1aac2b", + "1a8446b2e1b30958b5f45c8e4037db19addfbba209374b7dda6fcee94046c5c9e5ce7e74c4cd4e05d39b3a3efe3e6b61" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "03b99e24a59bac8686386deeacf642995c6dcb9b034dfeb4a0c95f62e05be48c08", + "vss_commitment": [ + "032929a150a39be2ea8d5196e5ec1df09ce9ca0a8be24853b01ae8472771e3d223", + "02b7e6f0ff6d7210514e0bbead23e8d24f64c4a494ee35de46b7b4425a37dbe55a", + "02402145930979fc7e190bdf41fec0951397c2d1d874e723cf5b231f7dd3d58dd8" + ], + "pop": "025ca4d83365231f4e35ca1c4784edecdfb35d0fdb6d83907e0c1cccd7a2628bb2fd0697c274eb287c51127010c60f1c55e782fe8dfe60357a84bea35b669c5e5c", + "encrypted_shares": [ + "8f8c833e1dc8ac0a6065754591ead3c907c056b62c965b1afa9b6ac26d30ea7d9e3be842d18bbfe69613663e2eac1272", + "bc04eea028ba12490bd8b73715cc2aab4b1e22d44e558c12b1bd4458b2ee403404cc3919c6dcb8f769299eb699ae1c21", + "e7aa1762aac7ad4e1a6802cc2e645b84499fab5491bd28f7bab1ebc194ed86c8f80e9cf434aecf4a110f62dfe506d9f3", + "bcee0f8fc2097fb653feb0e49892fd2f8eed8331f7370205697b55de026fc7baac8e90de1c5e8d255b6944ee757df59d", + "d5c48b399ddcc645ecc33295d457feb069f024f0a45114196a4486f5667cfaf6f5275f035f80c49a1a2413f16c349609" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "2aa84b0e28cf945fab50a04b0493026be4a8aac17bdd980915a50830a897cbe7", + "verification_share": "03ffd0727fdb797a7ede721674aeec6080d67dd5667d0b7f11635bd27411eb8955" + }, + { + "participant_id": 2, + "secret_share": "ff866e4b77f019362eba9b7a7fe51b8fbd89f7c840acd54bfc102340c4dbbdaa", + "verification_share": "02642eb38167a3fb5db09fa1147bacaed15385a1d5288288f3f8300e19676e2235" + }, + { + "participant_id": 3, + "secret_share": "e8c1b142dcf6f97b12366fcb260179c8564f9938659dc92857afae56ef7d214c", + "verification_share": "03682119ba6fff3195d441ae3a615973bccaae35002319a030c6be0edc56e7d08f" + }, + { + "participant_id": 4, + "secret_share": "e65a13f457e4352e55c41d3cf6e81d1469a86bf899f913d9e85607fff8b2380e", + "verification_share": "02fea0e231fc509f7984cb568acabee1f489498889b4a7c32f30abf9dfae9ef922" + }, + { + "participant_id": 5, + "secret_share": "f84f965fe8b7cc4ff963a3cff2990573f7947008ddbeb560ae03303be07b01f0", + "verification_share": "029bb02d4434208c458b2968c0457993403bcbb7c23581831b3386f79639508989" + } + ], + "round3": { + "transcript_hash": "7dba0528c2bf18da7afe4a1de2e9283f70f4812569711f18eba3af92dab2469d", + "signatures": [ + { + "signer_id": 1, + "signature": "03a7e42ac95336d262b534ca4fa9f42de946c014a8880197d6e677d97ca3f2a4c2e2c8b5971498af9f9a892f11d88682d5c4e439efb919559fb8dc66392b7cb8bb" + }, + { + "signer_id": 2, + "signature": "0288501f4164d60bfe63f1b795fcdcbad86f0465653490f05133fd8fca4d6042ddc2604a251167d686b1a8a6f98dfc9fa260611f6534ac57874732676dc0f34a24" + }, + { + "signer_id": 3, + "signature": "02d2ad6aae935ab7c5ccf55c7f2219095cc4a5ab55fa3e5ad34510e7ec53e748d6075c0614e75a5e2e554d0435abc2b64c143982cc56ede5c5185a0880cb9fc987" + }, + { + "signer_id": 4, + "signature": "024a745339da5a45e921355acca626033a65f43fdcaf07814e4d7865d3b169f016fa0cb3e74ac36376c2a3720f06276d57db911eb7573640081ed05e492d25dbdc" + }, + { + "signer_id": 5, + "signature": "026682e0007ddf53d43bc64fb350ceb47b6787d2514cfb9c2b87acd3f13b99208192379a0aeb6fffef175e4cf69b59248e0eb735b9b1ed88a8b4c81c2545147ecc" + } + ] + }, + "group_public_key": "02c4d6153a66c590f2bc546d51cf411b2522ee6b447ed0b0e51275dac238e666f1", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "be4888644474f5e3b447a32f12005a27929cdba66460a4ff71c51c4d55937af983d5c4442a7f3ef4519205e40c0abab0", + "7c0cd36129905e1f0497e856e8c095c4894e7d3aa5f093ba8dc444ff5e02b37aa02936493e5e932a5fa194dc0444e06e", + "a040df73212c2aac6fbfea2b2d8ee485c9a467d11e4a25b2cd5b252af53226fe5d9eddb85711844cef9d76e656417405", + "c8d893e11274c4a5622967e519996a540b09c83a5a8b290a15a9b83803fa4928d3442f316ec515ffd20f689f7b965056", + "8f8c833e1dc8ac0a6065754591ead3c907c056b62c965b1afa9b6ac26d30ea7d9e3be842d18bbfe69613663e2eac1272" + ], + "recovered_secret_share": "2aa84b0e28cf945fab50a04b0493026be4a8aac17bdd980915a50830a897cbe7", + "recovered_verification_share": "03ffd0727fdb797a7ede721674aeec6080d67dd5667d0b7f11635bd27411eb8955" + } + }, + { + "n": 14, + "t": 7, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "config": { + "static_secret_keys": [ + "8f26fe486e7d36a291970961906a799433633e3fbae1ebc0d4f9a07ff6be6539", + "4b256597fee2e04590612eb7d249251a5b75606d503586cae0da143f5ca1fff6", + "c5c499d28c2d66d7cf856cf03bafa15744284f4f11b353ee180a3c0a44eeda22", + "326dfe8d3872834414cb082e41e0fd1d6c8baea7eb486c4054451e9f088ae020", + "faf07fc615242d7ec53cf92761adf7d5623765ddbe7b62a1a0b43933f41fc309", + "e67645b5eb4394cee403a5a96ff3690f3470cb319590be5bd57bf593e2ad4b3e", + "8d7a1d95687dddf48d5d0293d849f6ae4d7d2f9069df47a1c9caf72a4b30ec89", + "49d7506273ba41dd097000aa72a0b16812e2577e00f69f6a5f43ff54699eaa63", + "9bf7cf72481d1ca181f1e75a3f3d672a2382a218070e33e57f5b8b43bdfefff0", + "05055c065e84f445c62351b13b91942a0c25487c1a6b458da56e56a1bb8693ea", + "ac37617850deb54aa05e83e54c14b6623f222318f340efb5f811f71e34a19128", + "d068df395240d2661a52a55f172fb6c28d3ef611a7683e62e4e434842a43fcbb", + "d3f38a4e9cffc9a9f3d6298fbc2680e60f7a058392d0c95de5bbfa2a6b2a9f97", + "a1c677dc760dd5161eb9f27c8b02a5e23bf522a0c4483b1244c65b7938b0e256" + ], + "static_public_keys": [ + "022141199b4c48c897927b0c0fcb4067b4ab33a6fc8f7397a0279293a49440857b", + "033011dcdaf5a066952c31a17816735788ff11f6ddbeedcda7fc70b4eae293f534", + "03360bd6cab9f15eba62f9dfe9445c159c7dc84e2b26b0be032de03de9601d0542", + "03f6ec749ca5414704b72d898cf4e86ae272dd8e85070762218f3980df33b878eb", + "03bca7e4af0c86c440fea15781c50047619d47c24865d9d486428d55152742bfd0", + "03d99c3d44fe456d45acf50142ff7f944adbe15b5fa91cf5117663ac9824b849f7", + "0393c4a4f48427921fee93746d8b3179b9597f0aab53d5a7f3a6913c87ca9e4627", + "023ad713c160f31debb869fbc42e5131906e2cae0182bcf2e5d48a7dc963af4852", + "037aea9a5051b033abda7236a2fd0f95e1c5fe1911b48d134a64f06faf8bcf7493", + "02dd920888f6d1e32484533926301c3a2f663b84a219bee92069a3dc90b77c6096", + "03fa2f35b6360c71b3ccc6963b4e58607ee300b936119c492c58fc24c281cd7c81", + "03aa2cceeb92c4f6913e7de89daae148ebda6e89a988f34c548419be16157632f6", + "03a0fd661277b103b25ad0cc38c58dd3e8a990209f854a62831994504ff97efdd4", + "02612f2d257488980286424bef8bf17ecb609651e436a97de7b86a9b2faaf38bc3" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "0340e68f5518ea6dcbe5ffea65de6c65f57ed9d68eca22d113815eeacafa450699", + "vss_commitment": [ + "029fec9edf9536e4de8577e27298b286c80abba39a70a17cfadee7b45cd5750b75", + "02270a87f2092916b609f464965cf9992a9436bf5eba5adc46abfcd48b2c34bd00", + "02c5e04a05aaa88708cc76492c6adb731a0a86e952a3696f9ec3371c9b77e48388", + "0299180858f763aca25584c5d1ab6a4f895c37d4378c29cf0ed97d12a3f3f4c5b4", + "02753e0fc6e6b3191e87b493dec11c13ce96ce738236e2c858bdb24b2f00b1514f", + "03310dd76145338dab22d69993d2f9de096e80d25a4f57f66de80290f6d2e60653", + "03211495a08cbd357e03ac78783b6f0848c4a8ecee9f6ee3227a6c646584963ecf" + ], + "pop": "02651e2079058491cd52eb7afdadb51e7f820870d36041bcc6ed507df990c0d0570ba20d9f86150e8fccff44171be141173e248946471f70818c1b0b40f9163418", + "encrypted_shares": [ + "68f1a4f3a1b132dce2a36e4463baf2241918986826d32bb5e29374db2a8cc1a69dfd61e6cefda4ba70bd4471113da46f", + "1fce5ae21713a540bfc04293d04e5ffb0ad482a467e3673d268c3a2ec3e639c27b9963f169ebcc67c2d815b69ad960a6", + "67125dac2a0ed2ca7f6a618870aee00b3ea900b620d72dbaa008df1b449a7b120f4de503e478708633dba3ec54260f3d", + "f0cd7fa9ecb9d9d225ebbbfd39cf4c9a3f1e4e1622a846228dfb6f06f0a4401d4763934eca27cab650398afbbb82ca68", + "24b065d4e77d6bd4e634c16145365184ff077a62381a5ac51548e2df1bb67dfb9dc087adb7358b30f8ed2fb037d33bcc", + "9bd7d41baf33445173f2d5cd0efddbdb6dcfa9f1a0ad8c4c2a55886cab41ad88186c989a335bb2cf7bf6631e036fe01a", + "f1b69ee08a0c1881c64408f905073df0f258fa232f77cadb9af05d28a164d09e0ec71d277a2742c209489802951c4aad", + "dee1a6e72f8161fe7f1b227a670ce689dfb6179e98d0f51340684e50f791bb4d6ec2af29d6d1281943bd8c43d415ea88", + "cd36eb0a76e85c561a7a6c87b23e8b4340033175e29ac5e9c176b9de2413688344c1888748c6d1f6e376f9e0c93e14ca", + "9a857469603fb6136b05d6c634a06702e7ecce98c54088297619e7d4cca0966284a10c35d0e2c1ac9bd18ae31c422023", + "46eb07cd1b6c68ec8ada5c5c11f9b6bec3869cebee8b18b6e9d67ab79699940d9b031a267e1a79e9d85a662234945802", + "d23cedd66db8360c060d52fb0b5fbd6f44529612cf864d6e0b853c5d100200b97124ca6891bbdbd8904db59572263051", + "930c8919f3c3b7795b37d9b2e17e8afce1f48434de5c2019eefdd13ea6d02fe5e8a7d46e56144bcd83e9ff764e9ceecf", + "f4a1634a40e884e21dab729f8d9eeea46614659ed7e3ef8dfcc56e80c4186187f2e6afc5801caf89e3c86287369674f5" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "0246c7a2f3989134ac4ba45e39a4a9f653bc34062ced6ab7b4e485ae6ee27b520c", + "vss_commitment": [ + "021f247705c6b241e6d4ac3d0f95bfe10ad18403f2fd41ba11c794258119ecef88", + "03b70722e06075e49d19fdcebe86d960c36d958785eefc564b79b5a200496bf94c", + "0274aef2534c2b1d809be5353f99a5e099511c70507b8144a05c2525b452316cb2", + "025e8cf552d0c12e33bd057009338ea9762d010331b2b898502e6fd5d1d9ea8b1a", + "025791353f84de1fab98f6e22b5ae4b39563812cc27a35440946a95beba66d8b2b", + "030b0b881ab3849569821ba9db282a75eff81bd5548a1849023c8d2f925ecbfd89", + "03fae9c5ab6490dcea961231d605d48ee4b8f571b016a25e0befdf8b7dc882e25d" + ], + "pop": "023425786a702f8aa06cd63903efaf99013bff822501ab293b1098600d2a92dca23472ae68a21f6d9c5d19e552f67e7694c20d32a0b9b338426ea1604c4390de52", + "encrypted_shares": [ + "112de458c4a7d3f72b165723603c7d97f121a0c6eccf5b599a59680600a354c516ddf653651c17a559b8a1c572474e62", + "5cef24ed069c5d8b28a070d36548e81a37f44159ec1316e19558023c0c9ecfdcf6050d3183cadb11da788f3db2f688af", + "29467495d3cc43b6d4405e18f1be1e1617a38fce8b39063f02668c1d150697c44a6649d49aef212617a3beb0a4b36eeb", + "3e8ba8bc1c7dba280cae7b47102c3586f04bfc7228c552376231d25e1f68503a8efe3ede63bb3df0f13ebe428593eaf5", + "9a72bf6614b7f3d6d2822d8aa482de4f75f72decdfed0538a7ace87a96f2e3f6e19d975adf933fe61d2504fafb7991e8", + "a8e4be63f6b396c3a9a21b7d7805c9d9747defbae0565639e80b766ce9cb697ce830fb3f6fb4329f1faee47e4bd9aec9", + "8dcfdb1834410116ad7b33588ac58fc936f33b2392a01ea8d9ab3a7a8fcd27b119f4939579fcf4896d7182aa5beb432e", + "f2a64243c50e95637099c7b0ec4d009dfbe18655f7840982bfebc050ccae8f65706238e5683851ca504e55612af3ecaa", + "f807ee1a18c3ac55593be99aafea45722d19a4c8b9f7351e5047235c4c2d53b332f2bb022e9817ae7b1273c77740a596", + "5cd7ba1c00912d33bfd0235b90143cbec9e7aaec427d6e37b4cbb34321abff046617d0c2f58c4a1bc846c5ae7d7a7a97", + "6423c5ccaaeeef130e26d4333e071c4421a1b9676ba2db8a18fb156598385580c85fc3e466cb7711023bfa4dc2db1b36", + "99e0c37ef1f4a38ab9fc81b4866480b7c6dde023644cd8d8316ea634039b8ca99e054c59bf2665120a2d16465f7dc2f5", + "f0c15541813106c265042668ba394762fe4636ea0962fbf0e7ac0479307c49513b73791307b953b7dfc4613654a9b420", + "e04223c1ec7ac20542a43059449a180e5a60b366e039def067d7d836f8c1f240dbe760c586eba78b36e73c2853215932" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "02d48bbcb20444a2654a4c336ec39ddf7010b65484a68744641d03ef50f4e51945", + "vss_commitment": [ + "02028de294e49f3ea53c3aa4991680419cb7ae5588f66ac88dbc954521d52d329c", + "020b55fd370dcfadff8e37fc9da0342bf6df286d601633e9638cf8e18744ed2bd6", + "02231777348dc8490e9dc6a46ea7cf640280a446f7aecddd7dffdeac70b4acc1c4", + "022615e98a65cebc3771d05ef472837e813405d47549e0932a407161286114b9e0", + "0342a508beddcc510bd541a408f0da3a005f83177d0022ede87407aea94e7c3c39", + "021b20f069bbcbbd39cd7a8f8a7c4a0a8d90f241891f8847a0949bc2161b70da47", + "020df5bed362a491fa1194ec0cf51a501e225b91f3db9b5da7cff75e52ea3503b2" + ], + "pop": "0380d00397d4542d4ade0747ad9fc9900b99a21ef6073daeb2805fdae6776f1741815e11168680d7c5d1cbf4e090a5bb05a53d27851610900bb6c9dc9bc0da8eac", + "encrypted_shares": [ + "97c9c7b796bda9a0a458b1c17568ceb6564602168840aa02c2e66be77c4ffe1cf0e4f2fa79d7f623f8c054035f42b1f2", + "e739515db385a089212c8a5db981441040c9e3cad5c4bfc558ca9c860609ad9e3e2fd03c9cc1c5f419958a338365d752", + "d0698ef4cceb067697c7ae4bb61eea3607f9a4c4a7dde95e4e709b4fb768efbaf6b4d695b8e289c81854941a2532484f", + "7161c721136b42c677129146ddb6075918d315b1e0d8482676180a555a97dac79aec8c90d991dc799b79e6fb245864d5", + "0a209d12fc03d1a03246dff36d39fd4d3bab58326d4ccb5fc8efc9ff9f8d44ac188e9ee7ef88533b64592c2d92bd488a", + "b5d01742719ae48bd771da803bfdd860e9ec89f408a0460950029ef99d4a223fc560564c9c1ae4c726fdde055babb839", + "ea01267953724a36ec3b119fbcdfb59bbbffa55e74ca1b6041b5ed71bbf92daaff1dff7afe23e15856966fc472ef04a6", + "4a7743c8956d4d1ad7c19f1a6d9203ab5ce18b510c8e29c48aabeb67f0b693daed3e3fd443115492f3060f3aeb3491cb", + "c1b27ff8deea107d3301ffbc5ce8b694f74b613b3a5cc3337ff6f22165e6619f0c02d72ec6d4f81f830fb67f61456571", + "8ab8388145c9dabcc46c862744220a147a7745927d8d02d21f11e4b5fe96ee866ec7903dc2fb499a3b5d7622a0be436c", + "34872172bf936f1b9cd7ed20db682c39f69dccb3128d631fb694e19c72a467b2912e13e17b34167f66f96563f4ec4e86", + "6932a06319a6a1ec07cf50de0f426752b0b806d5e85963bdcad1fb0252bb4b7082539e10d0d9ca235c97ac32be300575", + "b10a99692123f84065299cff1ad6234d512808200cd7bcda886eb961d44fe8dba66cacbec81b1c97a0b312bebda65db9", + "600d89ae931b53a6307eb41bba7fd27268cebb23050f7db9219b4776720c9d2b3351b4edd8641e9f40d601f03bc3947e" + ] + }, + { + "participant_id": 4, + "ephemeral_public_key": "033598b7108b3e1e4987003ea9803f248e7f78597d525af30e864569a4f4006871", + "vss_commitment": [ + "032c46c2b0f2fafe849f575abc906d2169d4efd6450d14b048a74cf0b78a80afd8", + "03c176bb4cd8da82662ae4a8e4fc71fbb870a305589fb72fe86069ea2af32eedeb", + "0392f58d64debde7dd4864be84ad06b8a7d598c405fc7f5fba59e9a9a8b714c603", + "033df5f112a03baacbae93e0b8ff462f55ce445d3317dbac1b4d6065d37b9e847f", + "025ba8abec84eccdd09f4403878c642830ddb8a5c87f697722d6f3395f482311ee", + "02daa518e1c337563cbcf69647a0a44025a9dce749a7540ddc0e2534624c31a00f", + "03c5b2125b34f31bd8e15a60c886d1a4eccbb7e4dbc8e756e57eaada2460a1215b" + ], + "pop": "02954c2b9cd4bcf9fe08b29e60ceba2cebc2dc22d3c97ebeb7114b5d9472760a14516cdaa7400c276140a59637c0745013336d0e5601115354d29c1a9634e25e64", + "encrypted_shares": [ + "3fc08d5f03a9fbcc9b6a02f4be8f70032e115d88d2062166df86ff0213a0a5ec36187f52641dcf50925688c550ed0820", + "09b172e4aa8bc508c45773155f3873e951195ecec1bded15794782f53bf6d0eacd69f987bbfcb30a080008c34d9ae811", + "93069c39f72d635175437aec0e11a344d484c873cc50ca6b6636c469ed6ebfd149a3def98706b48fe7a359a1f3918e3e", + "ef53af384ae2cb10e047800b5a271e0b0323b1a8bbfb84dbf62aa22ff6a02f4c1d9dbbf4acf0132c198835007d313ecb", + "c12901c106e19a86f4eb2a6ff7bb0008a5d286f619a89a034996d0d16071cbc6fd4d4981b2ee7b6dec7c086f84a8a23f", + "401d175240c9b8f8d16165f00709c89ffea89b7e0c4e4474d2cbd8e5b6702bacdfff9360712d31b088f84441b6ab2b55", + "581866ed8f2cde184fe91eca8b85ff0285a9b959e2e16a7b3b4ae0f2c24de67d96c910fa4ce97e867528a05ed05f1b3f", + "d3c54251d1686f925733cce604f380e61d96c955d883556f95f980022cfc7fd1a8cbfc645a20cee94a95a582a8a8ed0b", + "09767d1e2fc97498876863257d8ce576718efec1f6e2549a029831ef6f23ae74122658a86fbfb478565da7433637fdf4", + "4aeb6486a98d544b4e08001874abd4833a7011ade17ae93c0089c52096bab2c5ade3a209177d9791006082093a1d121f", + "217dba35d529eacbffbed4c865b447f988fb6d68122c11147fe51d1ec6dfc6027f95f8c3b0500ef6a80185b3c51f53de", + "66b44ca2477bb51c068fdbb1dc32c9897bde7fde89fc50781bb733fa0585312ae701d48d802359f1ec3cea97f973b576", + "de627a99b8e05e45e018dd8e0d274b20b10dcaf4e6471c39e44e54f6dee3d54dc329029b5510a02013d1b4f5e77423dc", + "dcb316073ad42a9bf3e5ff0f99208b9c430a6615a6bd8fa6694a8346265f4d278c97cc9e0a8d39c2610441eaca5c8169" + ] + }, + { + "participant_id": 5, + "ephemeral_public_key": "024fecde50ff76e4b0e14e1468b4818fc4a259706a25c7ba6aa7603e36ddae3150", + "vss_commitment": [ + "025f5c6b5c45aefafeab56d42aaf10964178b90d52466c6d25308408ea913a50bf", + "02835119e04d272b61d833d1811b06761d3978b9eaf8d930b55100e54e305e820a", + "0241a586f2f9f82a69da02086d498c0a30324dc25734145aca070c1ab40217e326", + "031481e78f8669d8107bcbc418bce3254cdeefd48e8f68046b77bd3de7ef375a16", + "03ff971fdcdde07efe0392d9ba8cfc339893dd7b42728b91524d61d1d014376eac", + "0383b264526f45d2bf94f1002ac35cd0905c853255ce3bc99dabd45beb513c7f27", + "03977035063a3c00f9d99d3c45409ae0dc7ca4ee74e4358b79dc83a2a2b519cf63" + ], + "pop": "02fe825146fcb5a0d55b0c1f8970ddc5bcd56461f7efa2241964824c691dc6a392a0c66ac19d4e827f3468ba57cab41e1a46243dd3c25ec5b0e477b96214a5db43", + "encrypted_shares": [ + "b86302bc16bbd3750486cd01d2501292e7d56a866bd6724a8ad0a26e9764222db396dc4c9c91112af2e1f1ec25404473", + "1be0cc82223546ca9a0c48ef26b3a4ff622d2a349a9b581ee06084ba466e35461dc12db1c9e122da36e9ecda82d96dfb", + "316b215b1c0d1ce740d443ed661be293d91c379bd6d35b9bb57139d445f45ff3131e81d88e2cfca5a92072bac0154854", + "f4e5cae45f0436d13409dbcedb7d5534ee9a8f0ca8b274c761bbb1b4ba8af8fd45ba8a619799593f5b86eb3c768ed5ec", + "c409e3f8b13de31e2f175060f2922bdba82e67580dc43c153f448356d3e88f87274eb31aa1293e600fbc9cc7395d379e", + "79cac05f3ba8db918e4433d868a4649971b8c816d1f6909d8ad49da93a91684d02026a20146d598c381302f28b9a057e", + "1027ddbcf1d551c8afed5c4f5fc6743182eded036cd80dce2c2c98b96952b478c535e872f7875084aa15f41b63310c93", + "7d295afb7129849f212d82bc613c35bf156b6c0f662a3fefbb7c9155e40b6070f81dd8db47dcc82a00899b25ca8982de", + "74bc65974c0eaebe639608d6deb50d994ba17e70b91a5268fa50d235158f14be0282a4021c0a5619953b0e97967f1fce", + "880279785e1129568167eb412bb8e8beffa36ac34f49f044b5698d5778e27d07a782cd858466fb225c9078cb8e8729fd", + "79a0d02cbf57649bcf2bb5f583457cde3ad5934d8e126d738920de57b7327c4328e530c5edd3f2507d778f0af02ab6ad", + "4f6228456e716b3f293b6e2cbccb5aaaf806dfc79afc9b30a0b3d77eb19bb8d65d7ca125c9e8df36588f6e426af3e754", + "f06a6e479df097e74c0dbd4d6e3b7a02493a9e1d71fbc78a50fc632aac188c9e29c3472dd827c9a34dbdefe8b5d011df", + "59e224587b5fb7bf5b8b61653afb2441034892599837d3a50f7aa4be515298459f401448b8760acfed7a431209d7ee74" + ] + }, + { + "participant_id": 6, + "ephemeral_public_key": "03e6291ea571285bf18c16a3b12f85ac8db318fe4818c3b2def993606cdd0d517b", + "vss_commitment": [ + "02090c8ba9e7280642d1d9d7aadab4cc8bca04bef8cd5acfa5509e249007d31d5a", + "037656971b2e261daf3d42095509c47b3dc317af77f0b6562806e28e92cb2ad267", + "0357374b37f5deb0046a47644288fd8592e55245e1fde6d6fc2383742cf4a34fb8", + "03379a68a4b09775a7bab05a7497626504d9458b5808fc91f9c64ee584be07b763", + "02ac1fe63a050faabdf196971293412735952ed58fb47e27e3b7888939fd74adba", + "0376ad624ba60d02c1d2d151fcf5318de3a79d7d257a19cc99dd28d08bb5318b9e", + "02896784b3607b26cfdadf04878cb76ea81ce46893196d5bf6f14af193e6633523" + ], + "pop": "024c2e2387fc1600eb6da6edabaab8be811cd4c48ec5af13ff1a22508fd0515fc963f629ed03c65ba08d86c398a752afe245ee19ec31b41ef8b36fdc0342a17df0", + "encrypted_shares": [ + "64182e75b7f126a8bcc5dec90ffded51e21f7bdb8a9c24b3795a14dfe00f9c0f9b4dab50995f6023510c8afc7672d904", + "4c7038e8db4aa0e9f6fe3ae4a8b02d7b384d1e4c60e17baf05618925f08a863354c65f506e10d301908c6ca3cff23a47", + "4c6618d6e685759c8e31c5f1471543e189898ae6841e41a47efd6d1c15655b277702bc06acc7f04719078e70dc4975db", + "26b0e50ec578b78de1fd896efe2aa809c4cf5fa69860774fee8f95263eb65ee107de8b50bb8dc647230d08db5a0d6952", + "d7f60e330e079187c3d4c19c0d112ef2f1a5386714ca043f69a6d9b4dfad7dc470886c8731563cb3fdb3356f8fa0c3f6", + "0dd9e98daa97f46bc6a6e80871f334489173d2c81c7becdb1d19e035c616742a21da616df7937e5f74502d0385ba4100", + "32a165ddf46e1db19daced746cb778e9f4446d6587e8180ca52972fc70ba3dd657cc7c04af68e86fb7c5f82722c10089", + "1d4825b09206002d7f43b43f6a849a74ada36736b63d7b4c7ad7dff5406afbf31bfaf2ff0bfabcd4cd9508e6c9848e13", + "4558ce1a54e8468ff5f0e93070c3da4258fe616813352e3333b5fd6ce8fb3edf64aabcea631959317581cc4984e5284c", + "68cc2e86879581a89be4739193c33dfb501292fb2746690797b3c30aea522199d40712627c9cf0093c827c7fdc1f6985", + "acba4fad9316e28608f3d84e793f6db5dae938b52d0274ccdd7589078f2735d5acc20a14b812c8b5d2d7f0c78f888610", + "007456fe6f986fa91fa78e741412a68d1dd6f15d30b5b7ac3e26b8b5cf0c1ce6fbd663b60880142ce357027879fac3de", + "a42dcd63be8f4d932c2330d2fb83f439cf1e91a3d7ff441bab65e35c252e48213dbc75dcd2ad00fb4d634262e46958f8", + "0c0cd86d10d12d590cb5a8f76ff6da663e266f91541795e2732940462f20e52261b1b2108729152f3dbf2411033b2fed" + ] + }, + { + "participant_id": 7, + "ephemeral_public_key": "036161a36669fd45293969123bbe09e782ce241d8f3f9a2683a874319c5b260439", + "vss_commitment": [ + "0227274a81280503025a85015f6db6baee01a0913b17d60aa0b4824fa679093b4b", + "03a5feeb3bf59e429d058e41f782b282eafcf2bd717803fa6cfefae04429fb9e70", + "0264730f670d02f3e9912a9e7e56e86b6d9ea957ce4aae144864fc3398428c11c9", + "03025506b25599d255ccf749cec3f403a0f79f878168507deb12160a44d19e6fd2", + "030ecd13aec79f2b582b8abcf290a68c9ad2497f873bc5244b66d4c62db2e9d802", + "021221d9c8ea4fb7c4489a1c9de725e03bda1675cb946c730dc025deb95cf00a84", + "029eaa33be5c49e88d3b376787c49984b82a6212d77997aa84e01322e5c9c81ccb" + ], + "pop": "0348d22f2f2544958a153fd81c4ff2278920a167c72552ab3b75fcc9b5b8e6c698d8898ffd59909e316a8c2572fda6b34b3257945fdb38884d0c76def94685f72a", + "encrypted_shares": [ + "2e31a834492c145e6726494cbd7f6ca1f6202fd69853539c18d813fe379c44df32efc1ab21cf090fd4c94e0bb3fdb59c", + "0c47ae7527a16a7b148d0a8ca84a02a53d8a63b6fd00ab93429c9b4aba6ad65f6f669938a4f9f52a585d48dc547d3d46", + "483cd7f7e95ea8dbf559373defe99998e31b586cef8d57e8cc9ce46799acaffb21184dbbe1e6e6308074db9343bc352d", + "d9e91f818a5f7452af1e239cf6be4bdb6fc7410e29195c4cbe6d24130cb360e861c0d735a34fd35b1c39ae0e82b79dfd", + "a933cef0b4ed44c15869839f3d07e749de1fb68f0349a93ecf79c27b874d83f755613409e13a9dbbf11732cf0d12cc72", + "f9b609f4658e4795660e1abb47af109b18a96b54381f229e85214e5dbf79f9da23dac606bf0003b5a3cb9f085fc2f2c0", + "db4e5e83e198cc6c6a83880520c35167e0c8eaebdfd3dd7c0c73db5062d5efb1313d517ac0c8088a29ad57067c66150c", + "ca672bc3216085dbca6cd9e2452cbef64560b0b1c0c1f04c14f5f601528b284a2467c112adcf0e539418e65b02cd260d", + "2a1964a4603327210f7ae0f8834794f98bc597d0c8d3b1599d2d0adec8bf62f35a4c43fa6dcc9cce03c1f17a3d2ff89d", + "9a23de38b9fc8a069a2d0974de18107d265590aec245bfb8e89fd7e2fef19166a8a64af60a489b879a1781ea125c4bba", + "752f7a21efd76530c7e0a41d20c96fa786334fe1a0bb784da671f43c3d757171133c3254f6a370e2b174a37ab7ae8bb5", + "c609a19f8e73132834f0bc606c57a539432272fc8dca641fb26a9e4a02d99c9839dacd0c9fab5ba7936a920755ffb284", + "e55427ad94d690066914c58dc918fbb27e652b78e01a1d2a298525a99410c8043334a56837879113256f352239308e3d", + "cfbf866472e33db6788ae4a6e2fb3cf89d996fc8fb13ff89c5b03f85fbd56ec877601db85c4553df4b07ea0d6425e493" + ] + }, + { + "participant_id": 8, + "ephemeral_public_key": "039d7cdb373d5067737b86164e8dc2462c6bc948189dd38e25f5f06a00f6058fb1", + "vss_commitment": [ + "038fce3f5252fb0ca36eeba65102672cb5bc6755177ba833dc601d538677ff9255", + "030b66bd946b9cfdea2b9f151b8c2fb8d4bb7b1677b7ab1be9740cc819bdf179b6", + "03005cb473c499892e71258ce8e6e40d5b8862008d79f5384f9f9f6b09ef86b691", + "036d0184bee50a3af415bcb4f617f0510a90f234d43a69eef47110da37748bea14", + "03d9a59dfb29f3d92a8ca58bfa0cb08172d1e8a033ae6ed749759421a6f5d577f5", + "02a518224925bb4acf3ecbdadc010767ecea44b573ba95f1bb8b95beb502b32104", + "02740d42f724b2b8feae34b194552fe15ae20bbf5d1ef0b715305ae3fe6b5368a4" + ], + "pop": "03ef3828cbdfc25ca623b75eecb0101e724aeaadcde15ee010c5dcd30ce09af9fbf4d13894f9dcd5d4aadfa58ed94d7174ea33b961de3f44f46028eaecd57e317e", + "encrypted_shares": [ + "d23d0e189af314f25c0f28aa24943eecb62746b6beb805d1b7e17f1e454d6edd5ca8a4af6354ab289c064b3dd7cbd838", + "3ac8279890f911777f9d0a61c2adc34668359272f46b3625b68258b6cd2c35caf00814cdc8ff50c0d4d581a673b7a495", + "0a66e85f473c8ec3de08a70a5970f226182186c4a0d2e36ab0d98cb5a5befca438cdd4ec30bddd04f358beee753115e5", + "e3f3678e5a6610f52190acdbff5fea3b11ec93b68abd429c22109c93d5e16def56abfcd19bc9d000cea3f9ff152dc6b5", + "581c36f721c334b4d2d22f5d5d13f774bb9a6ab1fdc43b6e07ec25f4153c5da25ee362aebed4681e6ab869414b1b8e1d", + "f567b1aa2107372073feb929200e238cf8f8f12d82ee3acdc7a60f2af462d8b137e81ed52421aaeeb990c56fee42ea5f", + "65ff14b8eabaa0a308a00029c89bc37dbcb3131a2959294c1be1ef094ff00d886502e2ca40ed44901cea194eaae4240f", + "3125848460ad3985348715911c6972fad517a1a24d9bf1199f0ccb67b2f5272919f925294d7c1f7875226de966169c57", + "a914839e0ecff4ad8210b1c8d37a138950662fcfef75787ff15f142b9ba3a8dc5892e8ead7d526c51a84500c8c171576", + "4e2bb800804a94a24ca0318e17f13a5a43e68fa022f7f99538f3e177005cba2fc80a54a757acdd5292e7a46bf301e619", + "97984f7bc9586068c61635a0a624c54db8f6d74e0d2a9e56e1feb4e90174f45e9f5e879d6d87661121125faf84c18104", + "0f6214e6c4654340106d3816798ffab02fcc97cc371fd1fc07c4eaba754ca5baa8925e2370694f655c66824064f98bf7", + "a5d423146da9563142baa9ec697a1d325393fa89ce05da90259c3de11c22757e2dd11973c75dafe7bfe571ac5d6a5c90", + "58137f31b63fa54edbb7eb3e6cd7419772ca165dd658fe3c57e52095c1d3bcb71b7ef50ab4b53cf329189c06ae799973" + ] + }, + { + "participant_id": 9, + "ephemeral_public_key": "021575be706ffe480733c2786b3a80f49e1dc1fca6c4222d79f7c22e2d581448c0", + "vss_commitment": [ + "02e7ed96360065c607aaeb4160354ff18b5e9563597833ff5168b1b30c9f985684", + "02c5f1d57333211e466af91aae253831d20f4d4695b7fbd8349fbb96dc9d87dac6", + "03ec13c8699fe953b95e16cc244de070aa1b0c560cad2d95f1e3ae5527d89d4c4a", + "039cbd4bae5f065593da419bfa65e389a90d142d4584add5058a834c4ae4af13cc", + "03ad1773f595260ac150564135ae6a2d708ae811a67680831bf46bcee12a53788f", + "0246bcf194a197e65634895f60d540fb5168963aec254dc9e1481c1ceaa2eddc36", + "02f04c60f3afecd501bd5742c0476408c70a140dae619728bd378cf9417b295f57" + ], + "pop": "03cfd7083a8dae265bca8b7a0857d11a87f8678942bc9d8ffe739d08858335b7896c6c3e0f31fc067aa3c6cd2c6346466ba6bf2a81ab7e154157ffd063f1aea543", + "encrypted_shares": [ + "0878609704737084ba492d821dedd9f1835f4dc488ac5aa1a309cec0227035a406f6ac679f918b8b4691f5868fa18a3a", + "8a29295f27e605d6d660d38e2325855d2214cb7c4767c8f3b477185df301e57cfd4bab597b673e08a92646ccf3f8ae42", + "68d175e3a6b77eeac98fb2fc901d2e874b8192033cf6dc0c9af448e36600847dd143f6ac34437e325bdd7aaabcbdeee1", + "f610909085cc459c19e3d033a0a69156b68b662a69e23b705dff549c51c5335dcc262191e53cb335705a2eb74f3aaab6", + "3c7a48d7e07a867c48558daa6825c481dc81bc658062c0ac60ef188214c09b362c5e2c9e515ec100c324669173f4bbd5", + "161a858e461c82d4c76e2ba0847d2eb24cd6bed6e251e01069c7c9f99df36209b843e253604aefed61c9014c29d94125", + "4769b20ee27428c38395f95b7320df97894adde733e4b8c6fd10d9cab171e1bf442f9daa250cd9d514c2b14cba0c9fa6", + "f18cf4cc6af1710d36c7a8dccfc74ed998c44d0deabdfbe0bcc08c4d10f99a46d7b276e8f22cae7d55c8e4fb7f63604c", + "fa1e4dafa79eae687afe5af332dbbedbb22695c362b89ebd653056b57e88be4785bc7dad3abc133c4b4900c4c409fbac", + "c868c300bca273c5a5760369c3fcee31b0eb0e5f7eefb025a5be4728bcc4d63090311f9e52e1100f37c2cf275012c5af", + "ca41cae9d973f41baacd4214e7e35ddbabdd11ca988a74ce034b6e6ebb5a7c39416815687e3a7072657c7394426b9b75", + "a1bf80eeb350b56d8193f4d6fc02631ba7d1af5870ceef0cf852f8c1478382f726e73dd21e670004939367ed721708e5", + "c094acba3c5617ef33e6554b24b3cb52c0bebec29cb33e61204c9c89e40f38ba392bf13d8bc888b45378e3da93ce528c", + "701c064eb851d8dfba1d4a1a02715761bc32ab5e9e856557a75f743c2cf4b1684ebf0046d33bbb95fcf837ebadebd412" + ] + }, + { + "participant_id": 10, + "ephemeral_public_key": "021e8d6f6835f81e0116f49a1c4d81912a04283f14137773b12cfa760c10f7aeb2", + "vss_commitment": [ + "0286d02724ea3240278a86be7145bd7771bf185a82627e8326c8c7a0bcabe95d58", + "03f84623deb50aa07bf0d7a5a7b1429badacc4e263cee60a02e159c8a518cd9dcb", + "03e1998be4784122df4aa65722a3a626e124b42fdbed5cfdece5ba7801e6cd5f27", + "029a59df9b9d44ebfe75e3111b6489a634a0841be16e3293236f1b498ec0db4aad", + "03051ab2a97b9b58dc453b88c0fe83dda6c114637a6f62199c217795d8b000c0a7", + "03653bf707d0c43986427ba3a9a68236174b832ec122bd9b32b42dee645febd240", + "03ef5ed844d14265295e3960da6e2e0963f8b254710cdf523a98db664d06e81a8e" + ], + "pop": "0207a21bd084ca5608deef38369c0274e855a9523e3c2f2508ed430a41a458a6f0fdae764a757f23489f8013a0720a98f498537dda6cdf2a07312bd64b7b524c28", + "encrypted_shares": [ + "b4be12e10e8012f31acd9e671073066cc5fe67ede60e472017f06e8ad6c5311c86cb1af6d3e37b6c669ec4f37dbf6548", + "e91547f633e478f52b60e2099a56e8825d5620117bfee32bc911b6135a8590b4fd1a353916eae43378a88680704fca97", + "d8c17b093f80c13927b208f024f8fb06719c8cca85b2fa7ce61c9690ed2df772191b5482e403567f751feb0175dfe406", + "ed40bb15130f1826b77f2f35a548adaaa88ed27af407bfbf4f42cbd7379f8c3f35c946008b75f744e0544de0a4a3fa60", + "0d68c58e34f4860da657f446e4f9e31c1aa2e75b6c5a2bd14e1413b5328fe72af6d08bb170f49ee5b0e6b0d79c649014", + "3cebb78786dba08016538e9c932b925c0a66608c38ab5e8da5361c9be9a34c95228e26cf95aa8a151d5a3a37bf31f7f6", + "abde98f956f961f09049b6e06879efa0232a63945c8ac16654e9f0a0ff87e523c03f5bfa6c65908e2adbebfd57262f62", + "daa727e964ab8ba5fdc60198ece917360c767f04394c69779982d1712136f403a2b1065fe61add4d6343fcd0d1ebd69e", + "9004c2d11ff128e140ffec51d209a07f3a39a20aad6e26cd3919dafdffa639a8a356409852ccc6adb372baa2f304780f", + "55276897c36cf92f685ab5d862faf0c9b2ddc25884ea2f78d7961763ce6702f8caa21dd1487fc02fc49ea16a697f21b3", + "75e3b568c93623463b05708eb0ff02a92037712e31ef54ec1a86c064e69a02591fed3de3f26f0ec3209aef7d36b41963", + "077881c29748fda3538e046dfd4055a64729892e3c3b85a701a5c4c7d935b614e5a68038bcc83d7debc025e6762f9acb", + "83cc42e3fb19d351160943290d2160eb25f5ed2a87961c4aa76dd19347a4965916af3f02bc2a2084afa72f7d7d5b4a43", + "c51ab0d636ba40ab9808df2fed4c0b2208f8811821bc3a2ec9ceca839320a2fd86be32e1c23b25a6f7508c29e3fcfad9" + ] + }, + { + "participant_id": 11, + "ephemeral_public_key": "02d0e9b7c9d510929110f485450c7d2005e84540d30fad3793644c9dcc5508bf28", + "vss_commitment": [ + "021babfa9347f317acb16c45111e9c9053d623adee7419097cea163624a6c77398", + "028bc1491fbf92dcac01ecb41a0f1858a0cc39b14734c31ab591b77aafae16f2b7", + "025a327265522fbab2485fc46754744e74394093e4c91ba6df2bd3b589b91e61a2", + "02e98b7249ea5794645c0e49e41b354b15c165a63cfb7d4ac3e304dd5f68364a14", + "02aa4f42a30d2b7eef209d96da798373dde9910aaa1dadd8d8b55b0e3f277d7cc3", + "0339cd656b6cdf84eb9fe716f904c62ed72d43fd7bdb5be9e4c3853486e84687b0", + "030968a7797a54e267c531c3083619d4362ac322a656090f93b7b06d63cb5f4cec" + ], + "pop": "03712a375018ea9e1ae2c11c87a3c6692876718022033438dba2340533795f7c3c6b48cc66cf786775e7db8584314a8df246205c5ebbf74887423f13714f025573", + "encrypted_shares": [ + "1c7206f6fe3b4662e1ef3aaf70e09fa073c1b7ae9f542a68f29ac68e0081d149abfd15f112c1d7e84981d9ef01db4488", + "998ea64f2969d15e4af9f1a2b2bad20e846014d7a07349553659b38604c258fde3bc3ae786dc3e6848819d478a755354", + "30c8191c21483c1e6ae4e0038942465e02374dabaf4ff41373e0e6da524fa8e71003e0f9f9bbac91c19b9a927cc2f0ec", + "55eec026d58238609492cad9e2756dc10015766a516c624775fdebcf7a32504745f0484a81a4ed5abf1704a0e5295b01", + "333bfbeafc5598dd7033d8dac630adfea7e2896301e6c432a3a53174f0a96559f13426b25e4393f938573a9d948a3582", + "0bc0b9d5b7fcd78e75a8afcc3a5481b794bc253fb502fcc6431038ecc0e7d05186681bb0d001bb1637b6d46963b3e2ab", + "a0e97a87626431b1eabb2e993db0c6950a798308e531ea581fe8d2a6697e5eada5806f993be5399a94b91a6c6491909f", + "4c5782c093f36c60a5bd5e84dbe1aebc5140ea7ff882091783d2b5e4dfabf75b26b165abccc64dc0bff50a3637986b5c", + "99c124907cde46f965bd1e764f7d9e8e9256e4a51e1bccfeb66066e22d669e1615b226d6b0d95c7d4dec4ce9de8b1e0a", + "dc821a74a2b60152cacea6a3dc3765541c03d21830b489e5c5bfeabe159d32cf248a58f1719757f53a9c9d9614915bb7", + "dd9690c21416c8a5d7806f89b47589119419c19955e7b9aca6b177ace4d45d3e05e2c139eec578ecdd244b3921bab260", + "f4d002fe2f5b63574c66f3b967d2e16ad2536644962bc718c5111af201519f291ac0d621349afcee74c4d0b025c0917b", + "178d8ef21c27ec874e4f9ddbf910a5aff7828810b9dde843f392775710c4ce8f5ea8de8ecdd4efd7f368c0177e3c9b85", + "a4489a1ff9bcde95bf0f271009d354a041ae3794da41558073c59a77a8aae24835f6e79790b94f7f4e95fa4ae986d919" + ] + }, + { + "participant_id": 12, + "ephemeral_public_key": "0210c570c77f6fb8fb396aef54d293e493754d807baa1f1605241a4d8e895efdfc", + "vss_commitment": [ + "020be7444ee8418240a533119224900c85d44e544ec819eed4947883a21de67fea", + "03f30ff1bd63174b603d784be776a50ad8d3b69fc05200be35daab20916ba0b6dd", + "034cefa90c68f07c1a4cb587bd32c7a0c3698ba75b26c88882c4dfcc81756f8a3e", + "0396368f92eb8b33a363b82860e900cdc41da13bf6c6602e0d3bacfd4fec23c800", + "03a4971077a616644216f319e186cad60ba1320dc327a844d77ca828347620305a", + "036e60be5cf4f3d74f5a6cc43fbb03821bba55ea45c8c2bf0f744de2f8eabd207c", + "03375c34613979a6ef67293c0856ae714010d28e0ed6f0405b44e9c6f4cf608012" + ], + "pop": "0202fb9094d99ae591323e6f5a90fa4202e41fcf1ab144c012f85005a8829ca30217d939018d30b200dd89f185ae14647a903d9cf49210c390e60e282b466b55c1", + "encrypted_shares": [ + "45df99d313d832633fa08a9610932f6aafffe13f9059d4a3bbdd06868f840f48e5f05a3db0ac8fd0ea3597ad33709fe4", + "f129d6b6fa2a0fbb4644e82d3073a84745a2b7eaacff9ac4c7d81b21e7682517c27ec333157d4f3cfa6ec0a5b1063662", + "af31b9a506592565a4eb22c43411d5786865dfdfa49d87425460488e5715603246b9c5ab62a1a8225379c746d515282a", + "51882ca3be8c5a290c9841f95fd17cadaa5f6aa889aaa40ae20bb2268629b7b0927186080ae387aa2b23a72285a895ea", + "e8c7be74e17686783a2443c77b579151cc7b5f3bdc197ed43809c0048ccf51f9327aad35aff010bdf3eeb42cd29e5119", + "61c3a49a3b082a8b875b495fbefe5e98e9415997531b061a53cd461e27c22401689fd868a38891dffaad7238a72d975b", + "b546e39dea0c789035085c0518f288f92ec4d3e160c99ec76b10f38f11f5c0cfd29053f24628232b51fc83c0d801a483", + "289cf5bb3835d873f12de52b5bd56e13c3f94d5a5824718ebfa3c0b588c235521a79a0ca0e2c9cd54982fedb16972a9a", + "78733c90dc2c24aa1704a2a045e64be9fcc664ba55dc55920a3a6d049d3bb848476567e2eb944fe17027e9424ea736ff", + "9a1b5387e3d3bb43f97ff9ac26c46a3062fe8eef1e93dcfdacf49542d8bffa23178c812937780cc293d4c0cbd60cd9a0", + "4dafba923c543bdbb540d4d5b6543d8e4d22b8bf975e679537a526012e6562fc8ab4456f91adfaa15f6f0e01677d506b", + "7eb261bd7b63b6fafdbbf27924bd89f851dd0b87c12b1beb8091fc4efc89d8324d707f6ba8cc14f38be75aebaeb7f40b", + "bf61b6ef3468128b24847671ec110fffb37ed90e77a32ec69b112e273baff0807941b7188a1fcbf128c5665752fbd782", + "d8a3e20fbe4e41bb80828f8290da4ff46f1ba8c127bb2b6c5282b6e719cb12d55b92551d58c2eb2d26d87f7554dc8d0b" + ] + }, + { + "participant_id": 13, + "ephemeral_public_key": "038eb5b5e86ccce9138daa14a1c2b458491286ab00a973c9a3950091f4af8276e0", + "vss_commitment": [ + "0271a15813be66a1e81ff4f55506b959e9173de3e3c73554bb6180d9c5967aea24", + "03dc18b70508c3266717c349933db0ae50f7dea04fd7ae8607052a12a47cfecbc7", + "02eaf94e10fb2eea95c1f08a09a26a986d7724696040758e23ac36bed57935825d", + "02996cab462aeada0c282305276a5426292fe5c0b87b998f5c5e01caa227fe2c7e", + "033c08c5c61a1c2f7987b49850699440563f0f0823ae0ed0a689942ffcc7b4e0c6", + "03db77e50aa8d4ae02b86401ee575ee3f88504ef21284a54830641be5268650822", + "029ba8de4b973eacda2b112c528e520e12af390280e62d00370da5a7af978a2005" + ], + "pop": "024fc3f3f4e74e79fc587fff06a5833a96b1156fed803fbd5946c29a0a4ca1fb486d90c36c68896ff665f32668b12b1995ab0b90d241cd20fcad17f82d12b172dc", + "encrypted_shares": [ + "44b6eb6a4b4676a78edfe2c601d7c958ec6ce3013dbc9ff331ff688b892b6117f335957e2e892f5cab27b836c9ca0f40", + "eb74109355ddf85c2428bbcb6afcd821dce9c6d93eb95124dd247d448323ed242d9bf37d646fbb1db09dceae2d1f529f", + "9fc7457f2ef3feae0bc7584dcdfbe7ab333755d93b1725a4dff2d949aca02ae4c677701f554dfe3d621c129a29442ef4", + "b626e6be8ed44ae84070f60e0e1ac4642f8a33acdadae4c0c988bf30e37d52c685dc2c312c58785f640c1d156efca2f3", + "c6322caf3a731fd9d6a2031c2cca985d2502c58e5176e1b3e3bce9bf14558e7f96590f44ca5a5d94911f1ae128320cec", + "a068fa89668dc8e6130a3b73958b19125973d3607d59815f9f15b9cddf2a4df7d45ae998e57196082bd0deed8b113830", + "ba914953af6f3e3176c0a5fa40aa2fe856f147cb82deefb651226e7da40d5fd7d41e351ef1990ad5b1eca21757ce4e5a", + "e4fdffe4f2af9b800747acbe6c1a89a4308a1d03940d7e222fe43794c816943aff7a661eebe7043e62442f13726e6ca4", + "b2c7755a789a66cd83b6141b810b42e7898a752f15eaa99e327024f6f9868633eb3b9694294c78cb9e6bd3fb453bb83f", + "0247b0f5eb260c37f2d44cb16987534f39303a073282e10f476be53ef26e5ec7371908cc9d0407af6d303e6edac9290f", + "6d7b01ef543608c818676b27fe4d0536ae79b78472dda4c657321d966ef8d03275ff207a6d7f90fd95f64adba0ffe6e7", + "f07fb8113367e6f8a4bc9ff8831c5a5a8693a28c9ff8521ca59e9fb76b0b47520ead4aa55717bc2803ddc28b262ebee9", + "996df11a2f8d3d0f38bb2d17531a75033c4ead473bfbd32463788cb54e1c683f918244b7f1cd3dbdd18ffde2c8759378", + "7b7f24ff1f4b8376882225b8d7ee12a255cedabbff4c310cf0170e3dc9b7a3573b6ceb13be136fbba68aa541df6fc05b" + ] + }, + { + "participant_id": 14, + "ephemeral_public_key": "03b1a97536cf30136ee127f4331208ea81b12370c12422f5711b6c512096c677ab", + "vss_commitment": [ + "038da248d7ec20d51715a358307d5db7af4fe3a1c8ca77e2935c58eb8b1e960445", + "034df2b9dcb9cf805aa7b0512267bea491594e1914ccbb3d7a52416f34a5daf610", + "02dc5c6e33b65b604839d5c9afa49d56e6d7885ff379107d1d0d4b2ad5f4f69ecb", + "03ddcf074590c752fd0e49d9430836448d4d3605b6bbb9e7de40669ab4af32e463", + "021492e7d43b593333fcd22b2a480ca7b2792f87b166d4c1a4428d6d9755cf5f25", + "02f58e5125a8deffcfc6d981194013a76124f4de11de953170b9637874f8a56891", + "034f7bbf3a956cf571aecda6dd3c26d705243a1231570c72f22d0901dcb7d4a72b" + ], + "pop": "03ac98fabf07224fc9d714b6d76fdec15e0fb317f54efd8c6f678b5741dca7379b395559896533b2fb885631fa1b1a7b75056bb24071553a0a6dced76aefa7bd3f", + "encrypted_shares": [ + "8423f53c937087ef2f07186357a7a23c02dfc5775ab0072343a9b1d0bae008662adb3434d1a8f87e86bfbf16567b22f3", + "2905ca9e775303b9ddd04cee3aaf23f931608eed2b79e10ab719d5057b0704e38f9995d5aed4b775dae84c936cc90047", + "6cb4798da69853c098fd0557a45375c99dad9f03ead6acb47b45f6b420877dbcf5fb30d0902b39eb0d54258c87b205b4", + "429d35a2f09eebd6337b78a5050eb2f21ef8392aef02ef81c029af9aa381c1a5521566ea973f938e459a1959debf2c79", + "476ffb9762b7e73d0e5c8e1920164436fd07df080e60d0412b68aad33207792db7d5ce94aba93d24f273db456448213f", + "f43a029a09659d6d1fdcb3955076fbff3ba351ef0747a04012dd21ddc2eba10740cacb7bcd13585b32da982c873d55af", + "7100ce08067299f7187aca2c7c7cdf1d806f2b60cc6a386ed50e1f4147e17a116b34b6f14f1fae748fdf6d1fb1374cdc", + "d90ccbf4df5e610a8898f98493b351e56f5522b623636fbca4b5c3a8d45e5f434f716488f68e787f350e1bf0af4cdb14", + "a1f4387952e5fecb9a9fc0910c8360e41555c9ddfcc405ca95f4de542af100b82dab26b65eeef1c56d746e476f0b4563", + "dacb37642ed196cf2d03589e4b94dc632a335bc72d9a127114f7b1457f59e839947b9513b57498e3b57fe031d6fb5c88", + "9226a45a1fe82558373cf34f71af7e0b625427378dd34bd37850c38c4f3ac2c866bfb4534f85498a5215cf99f739543b", + "3ffd69bba2d65739c8a2d80d57eae4083b222c727690c152af3c32911ea4e4dbb58e774eeb4d69e9ad1f221bc15d7948", + "7c7c1ce2ffa4199620515d614f615352f7bb9dde2ad19534bda080a8f08d50e93bf64b53d56ec9fcd9dcc01a10100ec5", + "88c366c4d2fa9ef310e98f8ebc3541481f834721ea480ee59ed61c5975ff044a031ef1bad7fbd448b49614f033b9ccc9" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "6a230a7c1d0d83e59c6e26fbcc4be24c4a691b5f2f14a049154f88883faade9a", + "verification_share": "0201e0c204e450fa1025f793493a1f79260b5956cd73edd47883d8b15782e47ef6" + }, + { + "participant_id": 2, + "secret_share": "f434eae0441f2811fba757573e6fa501f30ab7bf41f053738dabe687b2e8e0bb", + "verification_share": "03e8959c4848cdb2334d3e2b55193426cd5cbfbbccea83c2191b2e0514ae3e3f9e" + }, + { + "participant_id": 3, + "secret_share": "9d07cd0257aa43f68bfe0bb4349cf4242c89aeb9740eae6455b871f1ba25645f", + "verification_share": "021f3ccd0152c2a8303182de160765c6b79e4fb1e3a14d8c163462b01ae6007cfa" + }, + { + "participant_id": 4, + "secret_share": "029c60851c9c6dd97ed01d0891f0cd7f3bd2b3af3b4b3aef3f7031836572b7be", + "verification_share": "032923d3bef3794e465103cf2767e48e8fb963efd28aaa7df250339ac24c6baf42" + }, + { + "participant_id": 5, + "secret_share": "6b1433204335301fd445350114a3fd80dd66ed6470f8be8157389cb5f2a828c1", + "verification_share": "036f8bd525ca06d851e583882a64ee145abec9283101aedb24a228ec9e4aff62e3" + }, + { + "participant_id": 6, + "secret_share": "d18fae79826e3ca7bb0430f2e7af084490f71edfdbd205861937848457e2a205", + "verification_share": "027d5fc00c377d577eda447c6fb8c137b72f2c39d79a4c5becaa40c1263c8c7a92" + }, + { + "participant_id": 7, + "secret_share": "9ffaf3b0425d77995329688056636e854eed32db738698c3b14fdd77f60ba4de", + "verification_share": "02892867c93d10b3585724fe178c98adf2e4a1dbf39a0bd1240300c56bac17356c" + }, + { + "participant_id": 8, + "secret_share": "15c9949bd590d9add47dd7f0a1fa4e7ed26d428ee39e5ad047327695f1b49652", + "verification_share": "0205baaf66a14e7aea3cb4820885c0abc88b8956a8ae7a5778a031e637a03494ba" + }, + { + "participant_id": 9, + "secret_share": "5ba12abc416429ed17ef2e3af91860bbed2bd1a1ac454e17d6275a46d2b2e18e", + "verification_share": "02fb1323b9354783c75316603042ee5b6d721a01eaae1d151cc4ce57f74919ece4" + }, + { + "participant_id": 10, + "secret_share": "43f2cbdd95508ee18448bec4914750d5b50ca890d325a2bf5118bd91f9da2c12", + "verification_share": "03ce0d8ed6c0321301d9f33e1b4e80eb9c8e3ac59f7d245b98b7440681ac0aae78" + }, + { + "participant_id": 11, + "secret_share": "b8835c6dd135f7425e2d56d1e2647215910dcb71ac6eeef650e98db9df29695f", + "verification_share": "026932e96c0da497f90430740aaaa9a99631cd15849c8a669b34bc313404204123" + }, + { + "participant_id": 12, + "secret_share": "d4e2bf855a9e5a147b51f6ab0404d00e7a90bea6c7808dfb4ff1b36c1506ba17", + "verification_share": "03419ef7927e8e6dc2df9b21b99bd5ad413c1b917dd9bd9b491fc543b1509406ae" + }, + { + "participant_id": 13, + "secret_share": "add1e4a200face4158f96e732cce9b1a63410b0b44788952aff395c543b7e95e", + "verification_share": "0290953b5eead2cb548ebbb0bee6cdc6af6a889d08b7cdc1c871f60662acb06597" + }, + { + "participant_id": 14, + "secret_share": "c597b31490da79a495b0deb353c7f0c874c36091b9d0c9db0c532ba8faf8fbf2", + "verification_share": "02b5a7cdd2e6e9dcb68645244a9319ed946fe600a22ec5242a6f8950c4ba363178" + } + ], + "round3": { + "transcript_hash": "87196836c538f03a5c1528134793a916da9adad6c03003d39b062b38597616fe", + "signatures": [ + { + "signer_id": 1, + "signature": "02a2dcee0bc91f054c6b2cefa47e8b78e957cecf8dda88ca0067652b34c99ebb514ceb1505f625891ac399d116925f7c0d29a10cf50673fb60e1347f7c0ca9697b" + }, + { + "signer_id": 2, + "signature": "027babf54a124fa0950f232fa7d0276e2871fd67daff919110ccefc99e8c0202ecdb5076f1017c8bf9d9d6783518083d52c8ac26621389b71a7c6a3b088252ef42" + }, + { + "signer_id": 3, + "signature": "0381ce5e780f8b306ea3af6a2c64b469e4c38e5d6bc96aa32e0672863bcd03898a8b8a261dcd5320dbfd31dfd4a2c01c279002d310900209483507fe9de9ac139d" + }, + { + "signer_id": 4, + "signature": "03a945b9932f6e6ac2d572ab43b679615dfb10d69679d1e667b68f3bc77b80bb6ba8bb6137144f7aa7af9db910dfbe58afa5687fe0bcf8abf06a67e90602d2d47a" + }, + { + "signer_id": 5, + "signature": "03a4465ce3697bad87559bf75a16bd837d2826b32c141f462003ca24c658c24788c69f2ac9991b10f23731fb1bfd8e62170cac5528ca13ef1a8bfdf7a40bfbb8f5" + }, + { + "signer_id": 6, + "signature": "0346412d18d070db59556e667c8112591ca7ab3345231f9cb96084e2dce7b739b25eb815b2ba05859b0d66c52effdb3ad49853213f51500b172a5d6e93113a3d84" + }, + { + "signer_id": 7, + "signature": "03dae4f34266c2ce268accbfc7cb3123c23950a27488c64f2aa64b3f12db4657fb9593d1e0591dcdf31593ad1c98dc65f2b3ff40c1bebb8172a0943bdc69ab8913" + }, + { + "signer_id": 8, + "signature": "030e5a2bb9fd13bdc5816468fce6ef592bd7a2a5dbaf02c7974c6040d5fa17956cdeb486fe7a4c9b54240fb9c05078428dfbbf6ced110aef2323dd8e0f64dd7bc3" + }, + { + "signer_id": 9, + "signature": "02aea5f43b21b586985fbe20fe86f45f78235d66a96d5e170ee755cf3be2956d779ca1c8646902fc4eb292a78af422b65019b47c958a25c5b4bd10339aee08a2f0" + }, + { + "signer_id": 10, + "signature": "0224d6bdd3c2dbae0d3ffca09d706a7d0b6450f38edc978497181be7c06510aff4347687cd2fb52930f15e1d59347ec2a5e4e70f8735e1804d5022e91ecf9f2ae9" + }, + { + "signer_id": 11, + "signature": "03468d3766e8700bad4193e5beed6556b808e2df8f80b97fe28fb44380ec10e0a169a8989e84fd2986f03c201f1feb6d4cc4e6c95b2aa49e9d75844d6b4031b61b" + }, + { + "signer_id": 12, + "signature": "0339c42bd4ec25759c8a630389b7e71a6f201b3a38adfe18082105bc7dbac4f5aaeaca52edab4a8e335c6c556abcb30279cc42c5b35926d2485847b366cbe7c3f4" + }, + { + "signer_id": 13, + "signature": "024c25d61ba694b4d674f0e4614f87f86d337b9c78d070b25a6d8173ce05d01fb675c12baf22828712db6cae094b53900715a74b6def48eccf92d9a268c4a24143" + }, + { + "signer_id": 14, + "signature": "03c8272010bfa2e14ea986511620e5f772b9ef58678b2fef702d4e70f428af77fac994cc93ca2956fdae8f12f6e4ae80441b8fc6d3c0b3fbe9f4887aa89d86331b" + } + ] + }, + "group_public_key": "0359d5d1ab443cda953b002b6dc12a11ba96e6f3aca7b8fe8d3e159ae1d56cde4b", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "68f1a4f3a1b132dce2a36e4463baf2241918986826d32bb5e29374db2a8cc1a69dfd61e6cefda4ba70bd4471113da46f", + "112de458c4a7d3f72b165723603c7d97f121a0c6eccf5b599a59680600a354c516ddf653651c17a559b8a1c572474e62", + "97c9c7b796bda9a0a458b1c17568ceb6564602168840aa02c2e66be77c4ffe1cf0e4f2fa79d7f623f8c054035f42b1f2", + "3fc08d5f03a9fbcc9b6a02f4be8f70032e115d88d2062166df86ff0213a0a5ec36187f52641dcf50925688c550ed0820", + "b86302bc16bbd3750486cd01d2501292e7d56a866bd6724a8ad0a26e9764222db396dc4c9c91112af2e1f1ec25404473", + "64182e75b7f126a8bcc5dec90ffded51e21f7bdb8a9c24b3795a14dfe00f9c0f9b4dab50995f6023510c8afc7672d904", + "2e31a834492c145e6726494cbd7f6ca1f6202fd69853539c18d813fe379c44df32efc1ab21cf090fd4c94e0bb3fdb59c", + "d23d0e189af314f25c0f28aa24943eecb62746b6beb805d1b7e17f1e454d6edd5ca8a4af6354ab289c064b3dd7cbd838", + "0878609704737084ba492d821dedd9f1835f4dc488ac5aa1a309cec0227035a406f6ac679f918b8b4691f5868fa18a3a", + "b4be12e10e8012f31acd9e671073066cc5fe67ede60e472017f06e8ad6c5311c86cb1af6d3e37b6c669ec4f37dbf6548", + "1c7206f6fe3b4662e1ef3aaf70e09fa073c1b7ae9f542a68f29ac68e0081d149abfd15f112c1d7e84981d9ef01db4488", + "45df99d313d832633fa08a9610932f6aafffe13f9059d4a3bbdd06868f840f48e5f05a3db0ac8fd0ea3597ad33709fe4", + "44b6eb6a4b4676a78edfe2c601d7c958ec6ce3013dbc9ff331ff688b892b6117f335957e2e892f5cab27b836c9ca0f40", + "8423f53c937087ef2f07186357a7a23c02dfc5775ab0072343a9b1d0bae008662adb3434d1a8f87e86bfbf16567b22f3" + ], + "recovered_secret_share": "6a230a7c1d0d83e59c6e26fbcc4be24c4a691b5f2f14a049154f88883faade9a", + "recovered_verification_share": "0201e0c204e450fa1025f793493a1f79260b5956cd73edd47883d8b15782e47ef6" + } + }, + { + "n": 3, + "t": 2, + "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "config": { + "static_secret_keys": [ + "b6d8938c60ba5cfbf0ba97ae1c3f99c7a58485344ed7d6f387dc35bc76cacea1", + "ad371a449f8f2734c1d98f4f92dabeab6189953e7f9258a2657743adf4b49fde", + "344ae0d3d664507f90d5cb534c77af20d61e83dfaaa500bc8d27428af3ac1573" + ], + "static_public_keys": [ + "02610897b193f5d9ae8c6b6527dfb89481aa9440577b24a96a9378a756542ae20a", + "0325c9e642a8967b6069db110ddb5588d701b89ccebea4b15c277acab087c59129", + "02fe2400b831d7dc120d4f1f49ede75956782e77ca92aa24f7d1cb88bc584dd1f6" + ] + }, + "round1": [ + { + "participant_id": 1, + "ephemeral_public_key": "02788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "vss_commitment": [ + "0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e", + "0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f1" + ], + "pop": "03adb7b47336ac7c66f065e5963be8e2403e52134264fef03a9b654700df0ac457e4f93be87ee7a5efa216ecb73926a462caf865dec15ee7657518ea960d16d851", + "encrypted_shares": [ + "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", + "50162b60cefb0fa778966de5dcfa79b6046ad855a709fdc61ef253631575e2c3ce9048c42fe7c84583ff19d37ca8a775", + "be016f51b514b6bd413ab8053940454e068d69271cb5092dc0a229f544a9d134f72413b8ade30f4b21d10ca1f5485dd2" + ] + }, + { + "participant_id": 2, + "ephemeral_public_key": "02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "vss_commitment": [ + "02672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c", + "020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f" + ], + "pop": "03b55ded99a60fe407ee51b4c340a586110892e15d7f7b13da965fd826b4525653c1265f7595bd061e024830051e42b0816ba3cdbf7bb49947106930c788aba7cb", + "encrypted_shares": [ + "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", + "a45a839733537744b0cbdeeae90f14f659458425eb603ae69bd867e6098367d1a9982b249cb30daebe150570c5e7fa4d", + "f9f29daaa5cbb0e2917e71b8bfe5f2baa847307b5d70b319d5f7731bbb7075adc4ad244264b85fa4d0bf9299ae11a529" + ] + }, + { + "participant_id": 3, + "ephemeral_public_key": "0306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "vss_commitment": [ + "02fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b4", + "02dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d0501" + ], + "pop": "025ab99ca736f8ce1203687a626364744c3ccfeda9b63e7313a8b969ac62aede0bc0943c103c540da236ba575fb88921221ebc85e1ed0f432408f8ad16896dd878", + "encrypted_shares": [ + "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a", + "11173ed71d7ad60daf3720734ad96cad47b58ee1548e65fa4903e0e5a7e94fbeae3a8076064895bc7bdc201df4de5236", + "d5aa7efab9d2d6e32c2039bd01eb893696930bf5c3e6449f9abc82a4482604680ba2373fad594aea7754960b3064e88b" + ] + } + ], + "round2": [ + { + "participant_id": 1, + "secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", + "verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11" + }, + { + "participant_id": 2, + "secret_share": "8e18ea88b0dae913f89c42b21be5f87ebeb801fff8f62a1cdd420d5725b5d7e0", + "verification_share": "0309e433bbcd6cf70a7c3dfdc5e3d44ab629f79568ac8bfa51c4dc118f4507ea20" + }, + { + "participant_id": 3, + "secret_share": "a3f1b10cb341e7a05b8fd606d7ea264f22fe58248f372864fc5c80a86c08f49a", + "verification_share": "02a91306f8390af207d697260df455bbe89328b1488ad5338271cc2a2019a394cd" + } + ], + "round3": { + "transcript_hash": "0d785c00ecb6bde350ea1800ca69121c82be87ace2d7b691cb3d4c91566994b2", + "signatures": [ + { + "signer_id": 1, + "signature": "02bab75a5155f867dfb974424b9993965f8e86929253f3630d7c840a9d381e9b1a1e1b1e11153dac5e3a1ac8ad0f12588e10822068435b26bcbc654bc1ee2b1c4e" + }, + { + "signer_id": 2, + "signature": "025a191fe08f7d0248f8bc69d016ceaa5316430e13b8056e192bd8f80c3017d4bbf658214c1ee2e184add34c07a73ee5f8da3eabe849b320a71e187769a54e1e61" + }, + { + "signer_id": 3, + "signature": "0388ea3c84b7ca9a7a4332227442495a5447d9832819817f48cfcedcbf8f44e672d61df10dd5ba4b979ebc8e38ed7b6baedc1b07703161d3539023cfcc2f80ddea" + } + ] + }, + "group_public_key": "0317763ca657a4d5e1c661b395aa9454ee2d9bdbbe8f2ea57ea0ec5cc0723ed9d9", + "recovery": { + "participant_id": 1, + "ciphertexts": [ + "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", + "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", + "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a" + ], + "recovered_secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", + "recovered_verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11" + } + } + ] +} \ No newline at end of file From dd63723f5f3cad4b2f3142ef10c4f62d3c1292a7 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Thu, 19 Mar 2026 11:51:33 -0300 Subject: [PATCH 19/30] clippy fixes --- frost-core/src/keys/cocktail_dkg.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index 4897821c2..5d7517950 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -155,7 +155,7 @@ fn pop_message( let mut msg = Vec::new(); msg.extend_from_slice(context); msg.extend_from_slice(&commitment.serialize_whole()?); - msg.extend_from_slice(&::serialize(ephemeral_pub)?.as_ref().to_vec()); + msg.extend_from_slice(::serialize(ephemeral_pub)?.as_ref()); Ok(msg) } @@ -357,7 +357,7 @@ impl Transcript { } for id in self.participants.keys() { let e = self.ephemeral_pubs.get(id).ok_or(Error::PackageNotFound)?; - t_bytes.extend_from_slice(&::serialize(e)?.as_ref().to_vec()); + t_bytes.extend_from_slice(::serialize(e)?.as_ref()); } t_bytes.extend_from_slice(&(extension.len() as u64).to_le_bytes()); @@ -713,8 +713,8 @@ pub fn part1( let s_static = recipient_element * d_i; let h6 = C::H6( - &::serialize(&s_ephem)?.as_ref().to_vec(), - &::serialize(&s_static)?.as_ref().to_vec(), + ::serialize(&s_ephem)?.as_ref(), + ::serialize(&s_static)?.as_ref(), &ephemeral_pubkey_bytes, &sender_pubkey_bytes, &recipient_pubkey.serialize()?, @@ -873,9 +873,9 @@ pub fn part2( let s_static = sender_pubkey.to_element() * d_i; let h6 = C::H6( - &::serialize(&s_ephemeral)?.as_ref().to_vec(), - &::serialize(&s_static)?.as_ref().to_vec(), - &::serialize(&package.ephemeral_pub)?.as_ref().to_vec(), + ::serialize(&s_ephemeral)?.as_ref(), + ::serialize(&s_static)?.as_ref(), + ::serialize(&package.ephemeral_pub)?.as_ref(), &sender_pubkey.serialize()?, &my_pub_bytes, context, @@ -1150,9 +1150,9 @@ pub fn recover( let s_static = sender_pub.to_element() * d_i; let h6 = C::H6( - &::serialize(&s_ephem)?.as_ref().to_vec(), - &::serialize(&s_static)?.as_ref().to_vec(), - &::serialize(ephemeral_pub)?.as_ref().to_vec(), + ::serialize(&s_ephem)?.as_ref(), + ::serialize(&s_static)?.as_ref(), + ::serialize(ephemeral_pub)?.as_ref(), &sender_pub.serialize()?, &my_pub_bytes, &parsed.context, From cacee642093fabc6d82f727febf50b2262fcc1a1 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Thu, 19 Mar 2026 17:26:18 -0300 Subject: [PATCH 20/30] refactor CounterDrng into frost-core --- frost-core/src/tests/ciphersuite_generic.rs | 107 ++++++++++++++++-- frost-ed25519/tests/integration_tests.rs | 90 +-------------- frost-ed448/tests/integration_tests.rs | 95 ++-------------- frost-p256/tests/integration_tests.rs | 90 +-------------- frost-ristretto255/tests/integration_tests.rs | 97 +--------------- frost-secp256k1-tr/tests/integration_tests.rs | 90 +-------------- 6 files changed, 113 insertions(+), 456 deletions(-) diff --git a/frost-core/src/tests/ciphersuite_generic.rs b/frost-core/src/tests/ciphersuite_generic.rs index 7fe6221dd..943f64dbf 100644 --- a/frost-core/src/tests/ciphersuite_generic.rs +++ b/frost-core/src/tests/ciphersuite_generic.rs @@ -1296,28 +1296,117 @@ where check_sign(min_signers, key_packages, rng, first_pubkey).unwrap() } +/// Counter-based deterministic RNG for COCKTAIL-DKG test vectors. +/// +/// Each block is: `hash_fn(seed || cs_id || uint32_le(t) || uint32_le(n) || label || uint64_le(counter))` +struct CounterDrng<'a> { + seed: Vec, + cs_id: Vec, + t: u32, + n: u32, + label: Vec, + counter: u64, + hash_fn: &'a dyn Fn(&[u8]) -> Vec, + buf: Vec, + buf_pos: usize, +} + +impl<'a> CounterDrng<'a> { + fn new( + seed: &[u8], + cs_id: &[u8], + t: u32, + n: u32, + participant: u32, + hash_fn: &'a dyn Fn(&[u8]) -> Vec, + ) -> Self { + Self { + seed: seed.to_vec(), + cs_id: cs_id.to_vec(), + t, + n, + label: format!("round1_participant_{}", participant).into_bytes(), + counter: 0, + hash_fn, + buf: Vec::new(), + buf_pos: 0, + } + } + + fn refill(&mut self) { + let mut input = Vec::new(); + input.extend_from_slice(&self.seed); + input.extend_from_slice(&self.cs_id); + input.extend_from_slice(&self.t.to_le_bytes()); + input.extend_from_slice(&self.n.to_le_bytes()); + input.extend_from_slice(&self.label); + input.extend_from_slice(&self.counter.to_le_bytes()); + self.buf = (self.hash_fn)(&input); + self.buf_pos = 0; + self.counter += 1; + } +} + +impl RngCore for CounterDrng<'_> { + fn fill_bytes(&mut self, dest: &mut [u8]) { + let mut pos = 0; + while pos < dest.len() { + if self.buf_pos == self.buf.len() { + self.refill(); + } + let available = self.buf.len() - self.buf_pos; + let needed = dest.len() - pos; + let to_copy = available.min(needed); + dest[pos..pos + to_copy] + .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); + self.buf_pos += to_copy; + pos += to_copy; + } + } + + fn next_u32(&mut self) -> u32 { + let mut buf = [0u8; 4]; + self.fill_bytes(&mut buf); + u32::from_le_bytes(buf) + } + + fn next_u64(&mut self) -> u64 { + let mut buf = [0u8; 8]; + self.fill_bytes(&mut buf); + u64::from_le_bytes(buf) + } + + fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { + self.fill_bytes(dest); + Ok(()) + } +} + +impl CryptoRng for CounterDrng<'_> {} + /// Test COCKTAIL-DKG protocol against JSON test vectors. /// /// - `json`: JSON test vector content (use `include_str!` in the caller). -/// - `make_rng`: Factory for a per-participant deterministic RNG. -/// Arguments: `(seed, cs_id, t, n, participant_index)`. -/// `participant_index = 0` is a sentinel used for the coordinator's RNG in Round 2. +/// - `hash_fn`: Hash/XOF function used as a counter-based RNG for test vectors. +/// E.g. `|data| Sha256::digest(data).to_vec()`. /// - `compare_encrypted_shares`: Whether to compare encrypted shares against the vectors. /// Set `false` when the ciphersuite AEAD differs from the reference /// (e.g. P-256/secp256k1 spec requires XAES-256-GCM, not XChaCha20Poly1305). /// - `check_recovery`: Whether to test the `recovery` section of the vector. /// Set `false` when the encrypted share format is incompatible with the reference. -pub fn check_cocktail_dkg_test_vectors( +pub fn check_cocktail_dkg_test_vectors( json: &str, - make_rng: F, + hash_fn: H, compare_encrypted_shares: bool, check_recovery: bool, ) where C: CocktailCiphersuite, - R: RngCore + CryptoRng, - F: Fn(u32, u32, u32) -> R, + H: Fn(&[u8]) -> Vec, { let file: serde_json::Value = serde_json::from_str(json.trim()).unwrap(); + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + let hash_fn_ref: &dyn Fn(&[u8]) -> Vec = &hash_fn; for vector in file["vectors"].as_array().unwrap().iter() { let n = vector["n"].as_u64().unwrap() as u32; @@ -1388,7 +1477,7 @@ pub fn check_cocktail_dkg_test_vectors( > = BTreeMap::new(); for (idx, (&id, sk)) in static_keys.iter().enumerate() { - let mut rng = make_rng(t, n, (idx + 1) as u32); + let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32, hash_fn_ref); let (secret_pkg, pkg) = frost::keys::cocktail_dkg::part1( id, n as u16, @@ -1470,7 +1559,7 @@ pub fn check_cocktail_dkg_test_vectors( let round1_packages = &received_round1_packages[&id]; // Use participant 0 as a sentinel RNG for part2 (transcript Schnorr signing). // This randomness is not verified against test vectors. - let mut rng2 = make_rng(t, n, 0); + let mut rng2 = CounterDrng::new(&seed, &cs_id, t, n, 0, hash_fn_ref); let (r2_secret, r2_pkg, _received_payloads) = frost::keys::cocktail_dkg::part2( secret_pkg, round1_packages, diff --git a/frost-ed25519/tests/integration_tests.rs b/frost-ed25519/tests/integration_tests.rs index 536ee8c74..8a7dc5c85 100644 --- a/frost-ed25519/tests/integration_tests.rs +++ b/frost-ed25519/tests/integration_tests.rs @@ -316,99 +316,13 @@ async fn check_async_sign_with_dealer() { #[test] fn check_cocktail_dkg_test_vectors() { - use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha512}; - struct CounterDrng { - seed: Vec, - cs_id: Vec, - t: u32, - n: u32, - label: Vec, - counter: u64, - buf: [u8; 64], - buf_pos: usize, - } - - impl CounterDrng { - fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { - Self { - seed: seed.to_vec(), - cs_id: cs_id.to_vec(), - t, - n, - label: format!("round1_participant_{}", participant).into_bytes(), - counter: 0, - buf: [0u8; 64], - buf_pos: 64, - } - } - - fn refill(&mut self) { - let hash: [u8; 64] = Sha512::new() - .chain_update(&self.seed) - .chain_update(&self.cs_id) - .chain_update(self.t.to_le_bytes()) - .chain_update(self.n.to_le_bytes()) - .chain_update(&self.label) - .chain_update(self.counter.to_le_bytes()) - .finalize() - .into(); - self.buf = hash; - self.buf_pos = 0; - self.counter += 1; - } - } - - impl RngCore for CounterDrng { - fn fill_bytes(&mut self, dest: &mut [u8]) { - let mut pos = 0; - while pos < dest.len() { - if self.buf_pos == 64 { - self.refill(); - } - let available = 64 - self.buf_pos; - let needed = dest.len() - pos; - let to_copy = available.min(needed); - dest[pos..pos + to_copy] - .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); - self.buf_pos += to_copy; - pos += to_copy; - } - } - - fn next_u32(&mut self) -> u32 { - let mut buf = [0u8; 4]; - self.fill_bytes(&mut buf); - u32::from_le_bytes(buf) - } - - fn next_u64(&mut self) -> u64 { - let mut buf = [0u8; 8]; - self.fill_bytes(&mut buf); - u64::from_le_bytes(buf) - } - - fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { - self.fill_bytes(dest); - Ok(()) - } - } - - impl CryptoRng for CounterDrng {} - let json_str = include_str!("helpers/cocktail-dkg-ed25519-sha512.json"); - let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); - frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< - Ed25519Sha512, - _, - _, - >( + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::( json_str, - |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), + |data| Sha512::digest(data).to_vec(), true, // encrypted shares match (XChaCha20Poly1305) true, // recovery is tested ); diff --git a/frost-ed448/tests/integration_tests.rs b/frost-ed448/tests/integration_tests.rs index 84917e23c..48bdee38d 100644 --- a/frost-ed448/tests/integration_tests.rs +++ b/frost-ed448/tests/integration_tests.rs @@ -316,101 +316,22 @@ async fn check_async_sign_with_dealer() { #[test] fn check_cocktail_dkg_test_vectors() { - use rand_core::{CryptoRng, RngCore}; use sha3::{ digest::{ExtendableOutput, Update, XofReader}, Shake256, }; - struct CounterDrng { - seed: Vec, - cs_id: Vec, - t: u32, - n: u32, - label: Vec, - counter: u64, - buf: [u8; 64], - buf_pos: usize, - } - - impl CounterDrng { - fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { - Self { - seed: seed.to_vec(), - cs_id: cs_id.to_vec(), - t, - n, - label: format!("round1_participant_{}", participant).into_bytes(), - counter: 0, - buf: [0u8; 64], - buf_pos: 64, - } - } - - fn refill(&mut self) { - let mut hasher = Shake256::default(); - hasher.update(&self.seed); - hasher.update(&self.cs_id); - hasher.update(&self.t.to_le_bytes()); - hasher.update(&self.n.to_le_bytes()); - hasher.update(&self.label); - hasher.update(&self.counter.to_le_bytes()); - let mut reader = hasher.finalize_xof(); - reader.read(&mut self.buf); - self.buf_pos = 0; - self.counter += 1; - } - } - - impl RngCore for CounterDrng { - fn fill_bytes(&mut self, dest: &mut [u8]) { - let mut pos = 0; - while pos < dest.len() { - if self.buf_pos == 64 { - self.refill(); - } - let available = 64 - self.buf_pos; - let needed = dest.len() - pos; - let to_copy = available.min(needed); - dest[pos..pos + to_copy] - .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); - self.buf_pos += to_copy; - pos += to_copy; - } - } - - fn next_u32(&mut self) -> u32 { - let mut buf = [0u8; 4]; - self.fill_bytes(&mut buf); - u32::from_le_bytes(buf) - } - - fn next_u64(&mut self) -> u64 { - let mut buf = [0u8; 8]; - self.fill_bytes(&mut buf); - u64::from_le_bytes(buf) - } - - fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { - self.fill_bytes(dest); - Ok(()) - } - } - - impl CryptoRng for CounterDrng {} - let json_str = include_str!("helpers/cocktail-dkg-ed448-shake256.json"); - let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); - frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< - Ed448Shake256, - _, - _, - >( + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::( json_str, - |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), + |data| { + let mut h = Shake256::default(); + h.update(data); + let mut out = vec![0u8; 64]; + h.finalize_xof().read(&mut out); + out + }, false, // encrypted shares: 73 vs 72 byte format mismatch false, // recovery: ciphertext format incompatible ); diff --git a/frost-p256/tests/integration_tests.rs b/frost-p256/tests/integration_tests.rs index a7f84af1b..9eeffaafe 100644 --- a/frost-p256/tests/integration_tests.rs +++ b/frost-p256/tests/integration_tests.rs @@ -313,99 +313,13 @@ async fn check_async_sign_with_dealer() { #[test] fn check_cocktail_dkg_test_vectors() { - use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha256}; - struct CounterDrng { - seed: Vec, - cs_id: Vec, - t: u32, - n: u32, - label: Vec, - counter: u64, - buf: [u8; 32], - buf_pos: usize, - } - - impl CounterDrng { - fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { - Self { - seed: seed.to_vec(), - cs_id: cs_id.to_vec(), - t, - n, - label: format!("round1_participant_{}", participant).into_bytes(), - counter: 0, - buf: [0u8; 32], - buf_pos: 32, - } - } - - fn refill(&mut self) { - let hash: [u8; 32] = Sha256::new() - .chain_update(&self.seed) - .chain_update(&self.cs_id) - .chain_update(self.t.to_le_bytes()) - .chain_update(self.n.to_le_bytes()) - .chain_update(&self.label) - .chain_update(self.counter.to_le_bytes()) - .finalize() - .into(); - self.buf = hash; - self.buf_pos = 0; - self.counter += 1; - } - } - - impl RngCore for CounterDrng { - fn fill_bytes(&mut self, dest: &mut [u8]) { - let mut pos = 0; - while pos < dest.len() { - if self.buf_pos == 32 { - self.refill(); - } - let available = 32 - self.buf_pos; - let needed = dest.len() - pos; - let to_copy = available.min(needed); - dest[pos..pos + to_copy] - .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); - self.buf_pos += to_copy; - pos += to_copy; - } - } - - fn next_u32(&mut self) -> u32 { - let mut buf = [0u8; 4]; - self.fill_bytes(&mut buf); - u32::from_le_bytes(buf) - } - - fn next_u64(&mut self) -> u64 { - let mut buf = [0u8; 8]; - self.fill_bytes(&mut buf); - u64::from_le_bytes(buf) - } - - fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { - self.fill_bytes(dest); - Ok(()) - } - } - - impl CryptoRng for CounterDrng {} - let json_str = include_str!("helpers/cocktail-dkg-p256-sha256.json"); - let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); - frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< - P256Sha256, - _, - _, - >( + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::( json_str, - |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), + |data| Sha256::digest(data).to_vec(), true, // encrypted shares match (XAES-256-GCM) true, // recovery is tested ); diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index 6e37a4cf2..026d83dd9 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -321,113 +321,18 @@ async fn check_async_sign_with_dealer() { .unwrap(); } -/// Test COCKTAIL-DKG with the 2-of-3 test vectors from the CCTV JSON file. -/// -/// The derivation scheme (from the CCTV JSON) is counter-based SHA-512: -/// scalar(participant_i, counter_j) = wide_reduce( -/// SHA-512(seed || cs_id || uint32_le(t) || uint32_le(n) -/// || "round1_participant_i" || uint64_le(j)) -/// ) -/// Scalars are generated in order: a_0 (j=0), a_1 (j=1), …, a_{t-1} (j=t-1), e_i (j=t). #[test] fn check_cocktail_dkg_test_vectors() { - use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha512}; - /// Counter-based deterministic RNG for COCKTAIL-DKG test vectors. - /// - /// Each 64-byte block is: - /// SHA-512(seed || cs_id || uint32_le(t) || uint32_le(n) || label || uint64_le(counter)) - struct CounterDrng { - seed: Vec, - cs_id: Vec, - t: u32, - n: u32, - label: Vec, - counter: u64, - buf: [u8; 64], - buf_pos: usize, // 64 means buffer is empty and needs refill - } - - impl CounterDrng { - fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { - Self { - seed: seed.to_vec(), - cs_id: cs_id.to_vec(), - t, - n, - label: format!("round1_participant_{}", participant).into_bytes(), - counter: 0, - buf: [0u8; 64], - buf_pos: 64, // empty; first fill_bytes triggers refill - } - } - - fn refill(&mut self) { - let hash: [u8; 64] = Sha512::new() - .chain_update(&self.seed) - .chain_update(&self.cs_id) - .chain_update(self.t.to_le_bytes()) - .chain_update(self.n.to_le_bytes()) - .chain_update(&self.label) - .chain_update(self.counter.to_le_bytes()) - .finalize() - .into(); - self.buf = hash; - self.buf_pos = 0; - self.counter += 1; - } - } - - impl RngCore for CounterDrng { - fn fill_bytes(&mut self, dest: &mut [u8]) { - let mut pos = 0; - while pos < dest.len() { - if self.buf_pos == 64 { - self.refill(); - } - let available = 64 - self.buf_pos; - let needed = dest.len() - pos; - let to_copy = available.min(needed); - dest[pos..pos + to_copy] - .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); - self.buf_pos += to_copy; - pos += to_copy; - } - } - - fn next_u32(&mut self) -> u32 { - let mut buf = [0u8; 4]; - self.fill_bytes(&mut buf); - u32::from_le_bytes(buf) - } - - fn next_u64(&mut self) -> u64 { - let mut buf = [0u8; 8]; - self.fill_bytes(&mut buf); - u64::from_le_bytes(buf) - } - - fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { - self.fill_bytes(dest); - Ok(()) - } - } - - impl CryptoRng for CounterDrng {} - let json_str = include_str!("helpers/cocktail-dkg-ristretto255-sha512.json"); - let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< Ristretto255Sha512, _, - _, >( json_str, - |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), + |data| Sha512::digest(data).to_vec(), true, // encrypted shares match (XChaCha20Poly1305) true, // recovery is tested ); diff --git a/frost-secp256k1-tr/tests/integration_tests.rs b/frost-secp256k1-tr/tests/integration_tests.rs index 3ba63f9af..585c8f979 100644 --- a/frost-secp256k1-tr/tests/integration_tests.rs +++ b/frost-secp256k1-tr/tests/integration_tests.rs @@ -25,99 +25,13 @@ fn check_sign_with_cocktail_dkg() { #[test] fn check_cocktail_dkg_test_vectors() { - use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha256}; - struct CounterDrng { - seed: Vec, - cs_id: Vec, - t: u32, - n: u32, - label: Vec, - counter: u64, - buf: [u8; 32], - buf_pos: usize, - } - - impl CounterDrng { - fn new(seed: &[u8], cs_id: &[u8], t: u32, n: u32, participant: u32) -> Self { - Self { - seed: seed.to_vec(), - cs_id: cs_id.to_vec(), - t, - n, - label: format!("round1_participant_{}", participant).into_bytes(), - counter: 0, - buf: [0u8; 32], - buf_pos: 32, - } - } - - fn refill(&mut self) { - let hash: [u8; 32] = Sha256::new() - .chain_update(&self.seed) - .chain_update(&self.cs_id) - .chain_update(self.t.to_le_bytes()) - .chain_update(self.n.to_le_bytes()) - .chain_update(&self.label) - .chain_update(self.counter.to_le_bytes()) - .finalize() - .into(); - self.buf = hash; - self.buf_pos = 0; - self.counter += 1; - } - } - - impl RngCore for CounterDrng { - fn fill_bytes(&mut self, dest: &mut [u8]) { - let mut pos = 0; - while pos < dest.len() { - if self.buf_pos == 32 { - self.refill(); - } - let available = 32 - self.buf_pos; - let needed = dest.len() - pos; - let to_copy = available.min(needed); - dest[pos..pos + to_copy] - .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); - self.buf_pos += to_copy; - pos += to_copy; - } - } - - fn next_u32(&mut self) -> u32 { - let mut buf = [0u8; 4]; - self.fill_bytes(&mut buf); - u32::from_le_bytes(buf) - } - - fn next_u64(&mut self) -> u64 { - let mut buf = [0u8; 8]; - self.fill_bytes(&mut buf); - u64::from_le_bytes(buf) - } - - fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { - self.fill_bytes(dest); - Ok(()) - } - } - - impl CryptoRng for CounterDrng {} - let json_str = include_str!("helpers/cocktail-dkg-secp256k1-sha256.json"); - let file: serde_json::Value = serde_json::from_str(json_str).unwrap(); - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); - frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< - Secp256K1Sha256TR, - _, - _, - >( + frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::( json_str, - |t, n, p| CounterDrng::new(&seed, &cs_id, t, n, p), + |data| Sha256::digest(data).to_vec(), true, // encrypted shares match (XAES-256-GCM) true, // recovery is tested ); From 84a75c3aad98d5614b0131a74386bb92ccc4ffad Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Thu, 19 Mar 2026 18:05:48 -0300 Subject: [PATCH 21/30] fixed taproot test by applying post_dkg() to vectors --- frost-core/src/tests/ciphersuite_generic.rs | 109 ++++++++++++++++++-- 1 file changed, 103 insertions(+), 6 deletions(-) diff --git a/frost-core/src/tests/ciphersuite_generic.rs b/frost-core/src/tests/ciphersuite_generic.rs index 943f64dbf..58b0da74d 100644 --- a/frost-core/src/tests/ciphersuite_generic.rs +++ b/frost-core/src/tests/ciphersuite_generic.rs @@ -8,7 +8,7 @@ use rand_core::{CryptoRng, RngCore}; use crate as frost; use crate::keys::cocktail_dkg::CocktailCiphersuite; use crate::keys::dkg::{round1, round2}; -use crate::keys::{SecretShare, SigningShare}; +use crate::keys::{KeyPackage, SecretShare, SigningShare, VerifyingShare}; use crate::round1::SigningNonces; use crate::round2::SignatureShare; use crate::{ @@ -1584,6 +1584,65 @@ pub fn check_cocktail_dkg_test_vectors( let mut transcript_for_recovery: Vec = Vec::new(); let mut cert_for_recovery: BTreeMap, Signature> = BTreeMap::new(); + // Build expected packages from test vector data and apply post_dkg. + // Some ciphersuites (e.g. secp256k1-tr) apply transformations in post_dkg + // (like a taproot tweak) that are not reflected in the test vectors. + let expected_vk = VerifyingKey::::deserialize(&expected_group_public_key).unwrap(); + let expected_vshares_map: BTreeMap, VerifyingShare> = identifiers + .iter() + .zip(expected_verification_shares.iter()) + .map(|(id, bytes)| (*id, VerifyingShare::::deserialize(bytes).unwrap())) + .collect(); + let expected_signing_shares_parsed: Vec> = expected_shares + .iter() + .map(|bytes| { + SigningShare::::deserialize(bytes).unwrap_or_else(|_| { + let mut padded = bytes.clone(); + padded.push(0); + SigningShare::::deserialize(&padded).unwrap() + }) + }) + .collect(); + // Compute the tweaked pubkey package (same for all participants). + let expected_tweaked_pubkey_pkg = { + let pkp_raw = PublicKeyPackage::::new( + expected_vshares_map.clone(), + expected_vk, + Some(t as u16), + ); + let id0 = identifiers[0]; + let kp0 = KeyPackage::::new( + id0, + expected_signing_shares_parsed[0], + *expected_vshares_map.get(&id0).unwrap(), + expected_vk, + t as u16, + ); + let (_, tweaked_pkp) = C::post_dkg(kp0, pkp_raw).unwrap(); + tweaked_pkp + }; + // Compute per-participant tweaked key packages. + let expected_tweaked_key_pkgs: Vec> = identifiers + .iter() + .zip(expected_signing_shares_parsed.iter()) + .map(|(id, ss)| { + let pkp = PublicKeyPackage::::new( + expected_vshares_map.clone(), + expected_vk, + Some(t as u16), + ); + let kp = KeyPackage::::new( + *id, + *ss, + *expected_vshares_map.get(id).unwrap(), + expected_vk, + t as u16, + ); + let (tweaked_kp, _) = C::post_dkg(kp, pkp).unwrap(); + tweaked_kp + }) + .collect(); + for (idx, (&id, _)) in static_keys.iter().enumerate() { let r2_secret = &round2_secret_packages[&id]; let round2_packages = &received_round2_packages[&id]; @@ -1597,7 +1656,11 @@ pub fn check_cocktail_dkg_test_vectors( assert_eq!( pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), - expected_group_public_key.as_slice(), + expected_tweaked_pubkey_pkg + .verifying_key() + .serialize() + .unwrap() + .as_slice(), "participant {} group public key mismatch", idx + 1 ); @@ -1605,7 +1668,7 @@ pub fn check_cocktail_dkg_test_vectors( // Compare only the prefix when JSON bytes are fewer than the serialized length. // Handles ed448 (56-byte JSON raw scalar vs 57-byte RFC 8032 format). let serialized_share = key_pkg.signing_share().serialize(); - let expected = expected_shares[idx].as_slice(); + let expected = expected_tweaked_key_pkgs[idx].signing_share().serialize(); let cmp_len = expected.len().min(serialized_share.len()); assert_eq!( &serialized_share[..cmp_len], @@ -1622,7 +1685,13 @@ pub fn check_cocktail_dkg_test_vectors( .serialize() .unwrap() .as_slice(), - expected_verification_shares[idx].as_slice(), + expected_tweaked_pubkey_pkg + .verifying_shares() + .get(&id) + .unwrap() + .serialize() + .unwrap() + .as_slice(), "participant {} verification share mismatch", idx + 1 ); @@ -1650,6 +1719,28 @@ pub fn check_cocktail_dkg_test_vectors( ) .unwrap(); + // Apply post_dkg to the expected recovered key package. + let expected_tweaked_recovery_kp = { + let recovered_ss = + SigningShare::::deserialize(&expected_recovered_share).unwrap(); + let recovered_vs = + VerifyingShare::::deserialize(&expected_recovered_vshare).unwrap(); + let kp = KeyPackage::::new( + recovery_identifier, + recovered_ss, + recovered_vs, + expected_vk, + t as u16, + ); + let pkp = PublicKeyPackage::::new( + expected_vshares_map.clone(), + expected_vk, + Some(t as u16), + ); + let (tweaked_kp, _) = C::post_dkg(kp, pkp).unwrap(); + tweaked_kp + }; + let (recovered_key_pkg, recovered_pubkey_pkg) = frost::keys::cocktail_dkg::recover( recovery_sk, @@ -1661,7 +1752,7 @@ pub fn check_cocktail_dkg_test_vectors( assert_eq!( recovered_key_pkg.signing_share().serialize().as_slice(), - expected_recovered_share.as_slice(), + expected_tweaked_recovery_kp.signing_share().serialize().as_slice(), "recovered secret share mismatch" ); assert_eq!( @@ -1672,7 +1763,13 @@ pub fn check_cocktail_dkg_test_vectors( .serialize() .unwrap() .as_slice(), - expected_recovered_vshare.as_slice(), + expected_tweaked_pubkey_pkg + .verifying_shares() + .get(&recovery_identifier) + .unwrap() + .serialize() + .unwrap() + .as_slice(), "recovered verification share mismatch" ); } From 4b94ae3574ba7d0d21c80badb839ea8f71c742aa Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Fri, 20 Mar 2026 11:09:42 -0300 Subject: [PATCH 22/30] move tests to a separate file --- cocktail-dkg-ed25519-sha512.json | 1015 -------- cocktail-dkg.md | 2143 +++++++++++++++++ frost-core/src/tests.rs | 1 + frost-core/src/tests/ciphersuite_generic.rs | 605 +---- frost-core/src/tests/cocktail_dkg.rs | 617 +++++ frost-ed25519/tests/integration_tests.rs | 4 +- frost-ed448/tests/integration_tests.rs | 4 +- frost-p256/tests/integration_tests.rs | 4 +- frost-ristretto255/tests/integration_tests.rs | 4 +- frost-secp256k1-tr/tests/integration_tests.rs | 4 +- 10 files changed, 2772 insertions(+), 1629 deletions(-) delete mode 100644 cocktail-dkg-ed25519-sha512.json create mode 100644 cocktail-dkg.md create mode 100644 frost-core/src/tests/cocktail_dkg.rs diff --git a/cocktail-dkg-ed25519-sha512.json b/cocktail-dkg-ed25519-sha512.json deleted file mode 100644 index cbe88095f..000000000 --- a/cocktail-dkg-ed25519-sha512.json +++ /dev/null @@ -1,1015 +0,0 @@ -{ - "ciphersuite": "COCKTAIL(Ed25519, SHA-512)", - "seed": "b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68", - "derivation": { - "method": "H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label) where H is the ciphersuite hash (COCKTAIL(Ed25519, SHA-512))", - "labels": { - "static_secret_key": "static_secret_key_{{i}}", - "ephemeral_secret_key": "round1_participant_{{i}} (RNG stream)", - "polynomial_coefficient": "round1_participant_{{i}} (RNG stream)" - } - }, - "vectors": [ - { - "n": 3, - "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", - "config": { - "static_secret_keys": [ - "976f8781ac89edb9b14f00b42915f36add6fb01f795ad7048e88a7246ab35304", - "b00aff74021d100b0eb587ca406fd4c1af2ffef9146454a4c35f547f709e8403", - "5d3df9bdd5e6ff1e43f07d2d81791cda76e44e6fdbba980b1231a9ff39e1ee02" - ], - "static_public_keys": [ - "2f35ea108d2b43a27d2dd17f3f0d0e44422514d91d667af850fa206a85cde4f3", - "d34665a229edcb3a8b822179868138c097bbf51316cbea636e6626b152742812", - "e4f58f6834e2315cc79cbb142ffa2ae0700f835ddb581818e10553679c32fafa" - ] - }, - "round1": [ - { - "participant_id": 1, - "ephemeral_public_key": "f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", - "vss_commitment": [ - "2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941", - "590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1" - ], - "pop": "a7abfa107e2ac05ad11a71fd494f3f2baa177253ef9c7594a37da917f2a84333bd7a61ae269c5624b8eb49d10e28a78f07718728f59b2bc626f9d07e653faf09", - "encrypted_shares": [ - "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", - "156d49dae0cb8917f47e70e75d7eaaf3251d160eefc294f9b5eba5f918ac453a05ee5351918384d62a43e888659e880a", - "a90c87b8b6cf42cc308e488f50662f0988d4229d68eb00e70916079bccb8df591ac2732b174e86a57bd292fbf485cb94" - ] - }, - { - "participant_id": 2, - "ephemeral_public_key": "1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", - "vss_commitment": [ - "3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d", - "5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd" - ], - "pop": "2b8520cf63b7e857d02c47367dd20c54c27dc2d96a6dcff3918bd4b8616bb3d01ed4c7d2e3189955c3fb4f18988f56e3053fb2a62d3d0cac49a860a22da90700", - "encrypted_shares": [ - "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", - "cfc83a3f386eeec4789ba05cfe565a3240b6c1801e80a4aef8771a23c389b526f7b2b601020d576e2f72c39a4b2c26c0", - "fb6cec9a16d2f536457c96afedea704a5228c42365b34377c04f7c9e953a45d09ce4a40f5ea62b63fbfcae9a452b56de" - ] - }, - { - "participant_id": 3, - "ephemeral_public_key": "53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", - "vss_commitment": [ - "74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8", - "ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d" - ], - "pop": "af79a5ff31a6536b2d0b333452c13ff0089192aafc9b10323e017923ef8e45c9d5a4cea1a5f14c86eccdf8b3c0ea25c9d7b9ba6b071c0cee0a5374f95285d003", - "encrypted_shares": [ - "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d", - "b151386d9e5316c52cc67897c65231c753a0036d974909403220f5168c55aaea336acf361b273cb81d06a5117c144ef8", - "a9fd00d94fd411354947c995c054c9d842aec6ca351450256e28198ea3d7b7fb6a939626e0a99c6f456bae3aa243fcb3" - ] - } - ], - "round2": [ - { - "participant_id": 1, - "secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", - "verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" - }, - { - "participant_id": 2, - "secret_share": "6723b951f1a81f143f11eea4ec31413e76669d049b962b8946a78a35cf97cf0c", - "verification_share": "0c37616b618d49bc5ce2db1cc0ec4177890bbefa2caed8aeb2cc20aa5e872ecb" - }, - { - "participant_id": 3, - "secret_share": "0d2809d5c126e019a3bbadc2cc132013eb6141f7f6d1f062408ef58b89ad180d", - "verification_share": "9b992f1e668431df2531c8a29defe7d7a5897862648c8efc92bfd9464dbed5c9" - } - ], - "round3": { - "transcript_hash": "c271c24bac1aef846815a8c43fc6618bb6d4367edece0c0937be417c3948ed69671629784f0950e43d63b0c2af66a5259ec2fd0b27e70b1d0cf49a127fca1970", - "signatures": [ - { - "signer_id": 1, - "signature": "cd0c7695346ad9b5be3a51652c12dfa4aeab9e52ae15994a4d44b06683fbc390677f619be7eb8abffdc6172f8acf4aca9ef062a80a0e7663c2c19ab5e2848d01" - }, - { - "signer_id": 2, - "signature": "e9caf69275d884494d4730d5dbd20fab0bb242edf0771d2e0b9ea9cbc74a0e1b2a5c389dfc19d69c62cf622a073346e0111664e4e65e4d0b695a3e3968a72503" - }, - { - "signer_id": 3, - "signature": "3a50cb19fc6bf1bf82d58fda0e02ebd535c549f1dae01f579efe010250876a6410dda05c773ec8dd1d414a6a9bb8be0a4693b08c59a32c20d60e51cb59698405" - } - ] - }, - "group_public_key": "ec21f5ee46aa6e11ddc8d3f42af51e6636b86de0243229d848da48c3b604964d", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", - "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", - "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d" - ], - "recovered_secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", - "recovered_verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" - } - }, - { - "n": 5, - "t": 3, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", - "config": { - "static_secret_keys": [ - "72553463294cecf2b05391d0b4697c7e5dd42e6fd8e3e779ab8dbcd762a1c701", - "784418850a415959dcd16f114e96b7e300865107391bc737f39d2e1c3f70420f", - "82893224a1af1dcf0e1884a15885937af1018ef07b9d70ec6a14dfef21d97203", - "2e102fbfe8593ae24446eca8635a81f91e16a53d8deedb73ec8b1e473f6f8f0b", - "37bb7ef244c9f1d5ccac85fd9a01c881b44b50049652a7f50082e6c59aa80c0f" - ], - "static_public_keys": [ - "e38cc6776d91cce01937aa23469caf8c019298136055e2c8f4002f2e0d4b1d30", - "b89c8543454c361cf07cbb8fb62d29186b2d82b716f642e61e42f45e3fc603d8", - "5f3e9f0f8deb3160261d5534431375ff66d5c305aa734801d6ea3c78a393af31", - "6c4ce9698663429e3327c203937d509f00ebd8cf889f5af090d7a4762bcd31c9", - "1535febfa522cc03fc9c2d67cd731263b93fe0d0795cbb6c599f922e9bf0319c" - ] - }, - "round1": [ - { - "participant_id": 1, - "ephemeral_public_key": "373fc3c1b4fdab7bdc428bbab77a9a7650d72f8a05eebf9ec7a43cd1460fadff", - "vss_commitment": [ - "577de5fe8c5a012f61bd7f1a87fe731088cfb21344c0a7162a369691d8f8c1aa", - "2382e6025db8a26cbe45cd54c1561b949acdd93717949de37434a9bd52459d6a", - "2c6e92a470150a647f29b1b83d619ae68c713dcf5764a8325afb9fe8a383a67e" - ], - "pop": "72c99e9124e2009927d71aef5a080fba3df02f16c4cc47e87ee426d8adc5debb1f7a1d81073ef62d7407c3edde7e9502c08a68e9f55e455fd10d369d0df2220a", - "encrypted_shares": [ - "01aed684aa8999740e7d7254184dedd6b19186813f5f761e70286bd27a26711835b47dcc28190fe97192dd1e0b669f66", - "af0d6aa7b34ed6989ea0dc5b9a1d7a60eed10dc3e098959858f5ebe5090232bd8413dc6a00d803b03dc843f224e9e22f", - "236a44cd2cee60a6cb4c77271e6c0a2fa001c3f5384d9a286b3a504b16d97cdd22cdf77b782ca94560b95d97b185ac48", - "582bdae6519fe23ff88a2b6a6507b8e14a7665096da7a2dfc4f5fffeacd821508f1b382a7e6afe4aa4bdfc5119c0c449", - "8a2f022e2591d20032b6a1415f38e96e5c142ba99a36422dcecccfc74031e1264695a90701aa650c51f13997263b630f" - ] - }, - { - "participant_id": 2, - "ephemeral_public_key": "84ecfedb2426e10a370d2ed4e4c1ee8b42b1592fe491c9eed76000c241d234a0", - "vss_commitment": [ - "933356e4b8a99c7c543b3b89148f14c5587ab33ede20e7672050d4d89ec1da51", - "537d5757b4f71162233db01a81bf1408adec803b52d1d67aa60db7feba998a74", - "e1fe1de4bd969bceba1566396240485c78343ff765a7c5b5428d24e8b862317d" - ], - "pop": "a387c502db19055b300516fcf7e8a4bd1419bd6c41c8b38f2b787758713752dfb9a1d01cf0e32a0472133285ec4ff2caeb95d9794ae022f9bcd1108eabba0808", - "encrypted_shares": [ - "cbfe45298edc61ca5e76734488d0bfccb000eaa380c829996f9a38f273e34ccf499e356e62216cef197a384012399b12", - "47bbbee166be8a2cde7eb33f256e75acc5d70a10c0bf26157c6b58cce78aa8c69d0d1535c6b36959cee980c5b5fb419f", - "03c3d530eda54867119383100b4e5b6cd885b786c9d9b960e904363d832a03be6ec87ca774117d32972a8f66952e441c", - "133ebeef97d79fd7457659e4aa6d7dbfc3d06a4bbc454058e72b736440ab3c033c1195e8deaa394ca86df2004664df32", - "97c33474da0e562c2d9909263099242fe6bc71845fb225e0dd68068fcd07fd6e280f1f622ce842c43e35491be9322d46" - ] - }, - { - "participant_id": 3, - "ephemeral_public_key": "c1be307582a17bbd4100286e5c24e1a149a7696893fad49cc839c0bf832a6d55", - "vss_commitment": [ - "74f1fc2c8d94fa6f972fe04643daa4652d465bb75799163a26f7cb51fe7fad5e", - "3c876fcc8317b8b27e80b5f7cd997e5dc217b910d808f507a32657d2a6b8d68c", - "1efdc51b210892679174616fca77eb58fe62713ad641d4e9a85349eec7bbe831" - ], - "pop": "e101f1de26c378b9a4f6fd430b31607d6219fcc86a3468385a6d9e9717345dc99690b4e5cf0c9ce7e2e377a1aecdba1b3f085e02a8e20c8c2d599395a6a96f0a", - "encrypted_shares": [ - "9ea8eb1b0de6a4e7330733ea0414235f9717555e61a6380ca5c300b25d23e79510797c7304c909ac5cecdb2bad6f1bc9", - "70b90c494e0e6ead27d9acaa887ab6bff7fa633c9a43ebcf464c42bce87e9dded089e82007f8a0391c75b5c3af46e2d0", - "5a1b8962ebeb08bf7f9e31a29d9e46bb83c9905e9cd9f0d0bcd63c55901544464c3d318ed3ff09989c642b659446651f", - "10e7f9ca7c5477bc4c3f07e8d4c876b455ee94274d6b76548c317cc0a0da669f5596a3cb3ab4dab4027ab39599b30748", - "84f125daaf112b126acbff68bd540281c4e2d8286945d1198d7cb57cd81bf254e77cc2a0e1f7c840feeb43dd7c46f66b" - ] - }, - { - "participant_id": 4, - "ephemeral_public_key": "3d45212365322ba65c8801cfcd86d396b07fe481b4ad0fcd98c7c373c0209539", - "vss_commitment": [ - "9f8b65634ac24eefaec60164cb17f690211404bd4fd8fbf834dcbcd14a44aa69", - "667b813e8e6f6fa81c06ac57bb4dabc728d3de0a187dc84b13cc45eb783e293b", - "8fb3fa58292561c8ca16959881c6a21ab5caf27165f00529743d3697a8661f4f" - ], - "pop": "06835ce53daffde198f7483334a00edc813f409225849fdf4551440e9dabe658802040130c523f6b99a98ec7d62fa9b3e4df99abb8b09aee456e17711541ba04", - "encrypted_shares": [ - "d1eb62ffbd5b3f355ddbf3b9c26e0f9548aa71d8603b8f0d4fbbdf554c80062f20b64c44223b762be4ddad5e5788f01e", - "794a12a09418c2b1bcbd0c5c11ff4821a644c7b19c7a18f1ebfe37280f40d4a07da623159d1c134bd3f6e7028eb1114c", - "2a1ff8f57f072fb0257b6afa1bc2204b0206080ee208d683f3bf055dbae11f75096eff3b0eefcdb7d31dec1364e7d27c", - "0660afde6d35b617b66c939c5f986d7b52ddca1b3f267d04e8eca4bad7b601abe813de2b096a05e3f4e0bbf96a14a7fe", - "8e2bdf782b5bc1c526823ee0514081efe17074321657cb49d9bb8fb9a29b34004b6efc56a9773bcf7675c63d2e173565" - ] - }, - { - "participant_id": 5, - "ephemeral_public_key": "b19fdf15c737fc2ebb55749b6e54f95114b673a933a640104f2b92e375e5bf12", - "vss_commitment": [ - "7253eeb9941c4912709f44934cc6ba3cb3785081567220984d8ba64b6b4cf1ed", - "562f19f3d037fdbfbd247596b1a0a85d40f5c70eb99a55ab0e87d2fc0a88f611", - "fdf684c6c5fd9cc91230a913f99301517a0ce38678851ec6648553562670c98b" - ], - "pop": "081d44620a1f93f778cc5627f4a46a5683dd6989b7bc4f4f13d99ef11a7c239dcaf32a43cf6ff6ae1ae717d18370c42f0a7ee60e4bc5e8f134eefece8d441f03", - "encrypted_shares": [ - "b417ba3c430ff39c282283cfc659fb61017c2a1c0d323a4c90f9cafe860b4665620ff6538ac053b51fff8c186b41675c", - "fe0fa3400de6a1952a4a327884da1d90fe14a22d484edcfdbfe4667a52f24500942c38fb34c6278ffba0829aa48a69f4", - "d0f9ea2acbbc7f8926e351bb97544c2e150a83c296a1c8a2de47c9a5ac031c639edd24954f36c3a685e8f326e8d2b2de", - "f21bff66817dbf12ae2282814c72da218fed21530da481d7b05fbc7f129f224974bd2a51f87a26f76e9b3767551fc2f2", - "6e2fbf6605df0a1b86cde2903b4833ccba42950af21445886588f232dce84fae8b6d0abb3c916af4ba40902f556ee950" - ] - } - ], - "round2": [ - { - "participant_id": 1, - "secret_share": "089205ddc8931a7778eb588b836756bc5f10a650bb9c3c6f23646c6303426f05", - "verification_share": "279636be807557633c8acd8161d452e8a9542f280463a643703184ef0bc88c22" - }, - { - "participant_id": 2, - "secret_share": "e8d9ed60a8df0d5f99459a1fe71ace6bc84c81773b25f84da8e6743816ad040f", - "verification_share": "20381dd73762ae08cce6f825178ad70a08636426c4caa4e797d06eec28f8c821" - }, - { - "participant_id": 3, - "secret_share": "b4d8f5ab9fa5ab1ff885e83885f37ffa59a540a3c09b1be8a6fb011736a77603", - "verification_share": "fa64620863ba443af3ac17968b550e221b7914b11892f831824839c036960925" - }, - { - "participant_id": 4, - "secret_share": "46360978e3ab186941e6321d1be52992141ae4d34a00a73d1fa313ff6230c502", - "verification_share": "42a70b7244644cd6acff8a2ccd9c105767dae4fc5a69f93ac588dabf2cf82e77" - }, - { - "participant_id": 5, - "secret_share": "9ef227c573f2543b756679cca8efcb32f8aa6b09da529a4e11dda9f09c48f00c", - "verification_share": "bb3e7a3a1a08d17197d41cbb3fb247380c5e6b2c85d92208d281896c1cc958e8" - } - ], - "round3": { - "transcript_hash": "f8309b2d74d773466af7263f6341e05993171e7a05a405fed9d4bf890199a881805641a89396da1f868f14b4e73b5952ff854b8a5c5c7c45061c77e5ac77f2cf", - "signatures": [ - { - "signer_id": 1, - "signature": "214f038e882da7449067e2e2b5dfe6f24c110536f58057659a101b2ebde16f913b9718153031420becfcf4ebdfd45f886e8dcaaae237b93a86245ff2955f5f01" - }, - { - "signer_id": 2, - "signature": "e366fcce096b78bf1437a4f7d4442247b509efc2e0a6867b885c9712fa62a0ce31c3edd490e8e50ad22459847dbf1e3560a3f916be7d1cbf923df52cd02a770d" - }, - { - "signer_id": 3, - "signature": "815a76a53c5ac6308e03b1e9f7d3d97c21651ef99dad1e322c1f5d26964677cdad9035f681cbe0f9a949ffbdff4103d285311aa2907cd189e3ab98431adb6a08" - }, - { - "signer_id": 4, - "signature": "2b6214d85588efb7d9298d37fe53321be610918451ebb192004c2756fa988a0c50dcaa5df273d1254a4c3b146484bb5911728b622849806fb1a694b36a84ba01" - }, - { - "signer_id": 5, - "signature": "3df81aad1752f4090e02bf59b7b81510d89f794ebe0db04bfc4004c79a5b53170081434be72a9ac82358044a01974132d54dac9894b02eb1e893b1d203401d01" - } - ] - }, - "group_public_key": "334d3d0229f6c32ae6b77e9bfd13bb72f565a1fead8aab11e06ecc55f0c4d4a4", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "01aed684aa8999740e7d7254184dedd6b19186813f5f761e70286bd27a26711835b47dcc28190fe97192dd1e0b669f66", - "cbfe45298edc61ca5e76734488d0bfccb000eaa380c829996f9a38f273e34ccf499e356e62216cef197a384012399b12", - "9ea8eb1b0de6a4e7330733ea0414235f9717555e61a6380ca5c300b25d23e79510797c7304c909ac5cecdb2bad6f1bc9", - "d1eb62ffbd5b3f355ddbf3b9c26e0f9548aa71d8603b8f0d4fbbdf554c80062f20b64c44223b762be4ddad5e5788f01e", - "b417ba3c430ff39c282283cfc659fb61017c2a1c0d323a4c90f9cafe860b4665620ff6538ac053b51fff8c186b41675c" - ], - "recovered_secret_share": "089205ddc8931a7778eb588b836756bc5f10a650bb9c3c6f23646c6303426f05", - "recovered_verification_share": "279636be807557633c8acd8161d452e8a9542f280463a643703184ef0bc88c22" - } - }, - { - "n": 14, - "t": 7, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", - "config": { - "static_secret_keys": [ - "b6090806188eb1cd2222c9f180561e3b8bac09fb672f5b0de705170929048b09", - "a1128fa24af9852c08790928825ab0845892a9b2d3133f7058e9d7706d70100d", - "6dafbb3e7cad284a0f8510c6736dc0b0aede00ebad9f265eaad2837dfe4d2c03", - "a4396d6729b6e19331d4e58e43e278907858c7c7f2cd9fcb1bb84495b95d2f04", - "a606911a4a0de0376efa44fd072a6fad150d056dde32ba4115a2804e5077440e", - "56d529262e1d6fa4e6a7db8bb9f61bcea14833cc88040b5fea23a7cd6fba6404", - "f4e3554295a31835c68f81479877c90cf4c1340961ce1f3d3f07ab4ec5737404", - "97559b3d6c9a433e9bcbc29b6c747b170d1e50865a875913f514ea96f77d050e", - "b67bcab764b7900ad51c912ef6e6ffe8799fec6032a045401c15102eda158d06", - "55ed81fa6989d8b8c36edad9ff6c86166ec156c1cbcf9edc739ff9367599ff0e", - "738a92c61738eff1c6657144213655448d4ed176bcdc898a89422189c932580c", - "a48375bdd1e9fada7f72648458dbf46c2c9b4f885c072203c25f52c8f371dd02", - "fdbcc18d4bde352980ae363ee736f014d54dafbf8b63fa95fd0e9df673fe180a", - "d9947c89c8a60154e690f679a17037ae7529e00557061dcbd20d04f9a3615604" - ], - "static_public_keys": [ - "421a26a59527dcc8db396279fea139514903d6632872c6bd25592c94ae5eb191", - "164d1d596b00488600758f2d591d6682ebbc548d6c0ac91cd5ca6810afcb50a6", - "9f5a2c1959d25a72fe2275b8a8d9ddb4232e31bf81f99073241dd739cdbbdb5f", - "95b2ca39493be7974327815009509820f88323250ae5206735d35dec1626c8dc", - "e0a805b8cc81e67002acbc41046b1e069a9143c64f7d4bd77cf5845a6c3fe81d", - "dce5dfc8c734a2edae38c4c2e6fda4e096eb3d544ec8d6619a895f9fd3ca9b61", - "60177138f0d98f7e7083b718339daeab4fc44c370bba05cb946bb2de62ce2f13", - "a18e2c39bed98bfbe05eb5ef8a629b48ecf45eaabda7e55501b7c3c4966fff77", - "24c2f04cf1a9e81e0ea3f5701c3dc76df93ce872fd04aa1b1293c368bbddee6b", - "2656186197fa97728aba52c27e9ed50384e996ed9c8e491906ed2ab64db456a9", - "08ea6307aafb5ef6b20f023eb4edf2a5fb912661855e3b6dde327dc58bad5049", - "f69dbdee18af719ac59dff612e28043a19476b164574d24bb908ba201a8ebe90", - "4fa1de61f77b0a1a796506680fd14a1d25d9890a56a34e164af8fc102e71ee1d", - "d31f8c2e0d22455a40cfe819737605223f1add340a442fde18e4c2071a9b5d4d" - ] - }, - "round1": [ - { - "participant_id": 1, - "ephemeral_public_key": "ec9a1e742c0f07e099216acdaf01777759f32a0d6a8cc091dcd223e36565c03e", - "vss_commitment": [ - "e20adc22c979794477c704e291cc11e49021a64da54a1854be0ff5c15ceef143", - "621fedbd9621488b50191f9724c55c329d37554c78012c0809a8d29129e23a17", - "211343dd4a42fd5c5a6c352cec172bdf2fb192d57edb21d53599463277076fe9", - "f3cf65e57e82de4a8ea1ec40636fc322323f6f091c941a380a57ace257078671", - "d201f2d656f4a6d4d721c9137faa6a24df8d832255bbee8672cfb7bfacd57af6", - "db642261749e71ea50706061eb8725ccba05f69774ccf05af9d7d0182c7cd422", - "8fdd74119499cb19238afddb4aa363ab3c74f08b34db6fd91d63d6ed43f57923" - ], - "pop": "dc1f5f176a123d6cea565e0004d147475c3367606bf7520644ecef2e6d6e777eeb08fd2fbaf714db4221da096101f1bcc0302a76224e64ae624c038d09bda604", - "encrypted_shares": [ - "31aa6638fb9526fe734101a432cfd8a02db6967bfc9eeea5f18281c5f11761e57acab35201c7fb0857bb94e897af538a", - "7356840010a4c43728092fdf5364c33259393c6835ae45a52925be40f36c5f6f7751a39cff0a068ce53aa93531dcc1b5", - "cc41aa2f8efb9238d4a682e5af425dbd7e0bca54fd5a3b5e60799b9b19c366deb90060f6982eb358372dd55d87db187a", - "109c33c243ee8222fe819c43d65d664d8ca22d1d69a884b3fea5518bf43271e892e10f329a21019127730399f52a1cfa", - "52d4351cbe12035eeefc9dfb589328b343359341309f6d98db3a4dd9acf6c396e68af6fc84522ac812f71b4b4c92f36f", - "29fb40fc1bb9b1981ef88b1b0ed702dc37ce63f5c6f5f52c4b54574af4eaa34dffdf38eaf34f25cc407d39e0c8ca4bb1", - "b1b6d7dd6c331454f4a501e67e20331574103d7ad1e04e78adce5543284e773036aa131e9559f852a51c5ef2531532b8", - "2ef7a2120a33974af5810051803dfa2a86fddf6fb4379200c6a45f485a64c779652e4dda542437dd3f1f3acbf5ca24e2", - "03f65c6d4e6552d79fcaa9e9e240e80313f014cdca2a7e666bfb9f570fa00dbec31ee9833a610ca5c0cb8ceda857f3d5", - "7b17e86a0dc86294ce3762865aa8df72b31238bb73ea4fd19a7e512317f20f4d208be0b9ba21aed1d63c707f4d8dbdd0", - "ccaf2c722b03261e7e1616c39f927d466be399e77a3f675a4bb767238484ef5afcac60252a19cc80feb328acbab0bff9", - "35af8225a7ea93a9bb25c16079ec0c2b51e15a39d6ba7560ce5d970cf0ba627afb954c1611bc3bf1dae6c9adaf21f057", - "f3cf55dcd2df1a602dc5222f17d833afb5dfceac631f89250bee4b4f5ca8f2c5f0bb2e93eeb8e331c48ee34e414e5573", - "0041011ea00d529a90db805e798b599cb00c11270f8aee9e0f3ce43a5b382884ad85522b54e16aac19672268d9454ded" - ] - }, - { - "participant_id": 2, - "ephemeral_public_key": "a6395b51c8510a76c878d0b4a690e9eab335e156e7d473b9cda1ecd4ca2e48bd", - "vss_commitment": [ - "420d43331f1db58c418449278cb62b569313006250a819cadedbce1146d4ada0", - "1dc96af65e28f1d86bc523f567b74363912130a5b62476af4fb805034a3c0c20", - "73b658e2c160414f874df5e649b36a6ccc98520727e8dc763f93e1cb292f685d", - "1b4a4a12e80e2a89289dfa96160e1230b67e95dfdc71b9c4fb122e578a4d577c", - "8151a2571a5e789e1c4ee1e36e506f0401a5d66a32769a69e867e06574867392", - "497de82dfd1630944bd60c4f637bc516c483ebcf9c416a42518d6b98915fa145", - "fed87acccc7656341afa36fbdbe446b18e0f9e4875752c4ddfc0f8f243c0b543" - ], - "pop": "f43acabe4644f6f7839370da7dc1494e3b9ddd3578489d027962d20191ec1b5207a7118326f22675068289d196b7f65d330bbb9b93bda0b89abb7a4c74748d00", - "encrypted_shares": [ - "25bf5df8189cbdb175cab533b438c3a8302ba442dea605771e235684fb5183e03812b08d994020ae7ae7134ffe080d42", - "6ec361aaf8b40466011be9ad47d2e6c1a9b921bbf625c394c57e3232ab2b74ec8e7a88449182cc882ecbb16fdb5c7023", - "1441b39ec7319b11a13d3857286d49b52f6702c6f649581d89941a5ecf31cb2d3d1c035a429cb2e9a11fef6546f2baa7", - "037878da1f50706d8901344b159c3b954212bcc1a11544f16b8c2468c969b4889a40bdcaeb196261ddb35a124d4ffed4", - "1c44211cd36c79835d29623928dd5aafdbcb6c6b2269eec14946bfb7a6cd5f26ad81680406e6fa30ae804847030732bf", - "bb24e9d432d50f30a74dd8381d5d9e413b8a90cf1536f9a8bdc484ab1827510602908d7a06fd80eea04e47168e3f8bc6", - "4d26e20998aa4f2aecf999fec9acab27f1934659c15ea9beba58de2d4f5e1b270c00d94a56e21ec2ffb7973ab728a66e", - "8168cdb30107d41539f754097769e26e75fecabacdee9568dd418ca5cfde4beb25ed4d6189140dafdb153b7facd4bb09", - "9a574a27010c0d3a2438308089924d58addb1ad377ee76b7cb983001ede64a474c184716e75fd75b3c0494986894c2a6", - "4693d7d45809b5fbeaad7ae0c58fe7c71ef10e6ff98537692c30fbf20a09c075de568c55314e71bfe7777d7e49779277", - "631d8fce0972b0c9e2a433d721b9287c436f0fb1c22a9f1f80616a72d7b9d787cc8743cfb7197de206f8bf63db4ee6f6", - "485ecf567df4e2453b8639179baad965f34cdf19bf3ed2d93c857bcdb60fbf33ee933dd3513b9c2087f4959a1fe9a285", - "9977d24502c5a3da327d661f87fd7aad43fdd5e541b35e0242695caac84a6b377312801c6b0d2fecef4e2b43c27160f9", - "bd6003c1d34065d16e4f8a6c87b028bb5fd9599d27b954a10c0bf88850c3144769a0dc8a6248889d912e93e4ba1fc558" - ] - }, - { - "participant_id": 3, - "ephemeral_public_key": "92633fa0eb676210937de058ff08e7286d5d50e10313d9efb7c66b90f3912940", - "vss_commitment": [ - "c0717eac65ae7a3091646c0a58576dab11faebc83e1957da5d2bc3791e7f644a", - "0eae88f151a123f51d40f268ff3047cac6114df59b73780b1d1116e1e3bbf6e7", - "d902a286c5e28ca7e86791c834170b039563ef992b3f2d0251ea22d90cad479d", - "4a3b85f1bf7dd3e75f3830007d7315e00126f14276fcf0e388a29527b69bb8ce", - "f2d62135516a481569b887e466f7435b27d604814eaa88dd1cbf1c368a5c9214", - "119c3c153964acd48ff60007678be201640bff1cd54ed2e7a267fedc440d4b52", - "144993764ac91e823e43b9a30cadfff865c0a39e8fae1cb42cc4fc1b612f12bc" - ], - "pop": "4cdb3ac17bc52773871d8a814f466b52f2020b1ceecbe16db3ff5d2fd983562b33f432dbd64f9e501a094b8b23ef25d9ff5223416c2373a48859909b96759a0f", - "encrypted_shares": [ - "7ff806ef14fc0fe79badd46918dcdb6acddc2de6080b4ee847586564d58d9723b3c876b3777dc38a41bfe8a000c8b7df", - "738f3496435c3037048269e2b51eb7a7eb95ff5c68c1f0aae9a703efccd68c098e892470dab15718070c2a0b0edb25be", - "0628f96e45e6184ef81233918231fe51cec58de6bc24d38329ee750fbb9741b8b7233a5b176fe12a81b3c49907312207", - "8f990d87f06270019e980616cc52eee4d2fae4b1b3faffe5ad70fb66910b3951d6b7ef7261fff1bffa26ae1abd3f40d6", - "3d4bd800ede6dc24859a5f15a481c34bc90446ea8740aa1d85aab9e9aa2b8b58b6198bbd9e236dccf3e47f00af03259f", - "48fc8c03a1aafb4c6bdccec4ad5e968a2466293d181af907c52361636fac95b2c4cef6d1ef823cddb60eb4c73b95ea4a", - "2c267942feff661dade23ceb230214e3f89df550380040c12de96071910975125e950983edfbb992866c6b3f7c061ee2", - "4bceb341af1830d545133f1b9c5227cdc9aaed47dc4f307355af48ed197e2d678fba0452861b0af5c28935a96cf95e82", - "7f8d6c7c6e9d10ed6fc44a01bdd0b9c12d226e781886f51d72c7728749b3fa89f804ebaf7bc7d30ae75a9583417d31b4", - "198fc4a37d93869fbac1c9e20fe6d16a115dca7a40b99454e0557121790dd032d96a071329e526e08b649f72fa1d6d5c", - "c51840d31d241d25e2f3adf3249ce237f00df3a09c96048f2925538999a2687ceb8d6c2c5f916e9d83cbd2243f2841db", - "1384ffdc437791b0379232e49589364dac8e695500d9d1f7d49948e9554081a348d08eb9b8d745758fefd48d35674ec5", - "7275ec9c2f68e5b5664775c82a5d1693fc6667b9b6a285e321ebb738ea0021aee3f9c81da615f49ee1fc50d9f93b271e", - "a2466d14acb533b7d73152e77037de149b3742db482b789459a7000a14efa1ec8c27a7d29eae82287ac2b7d41e42a060" - ] - }, - { - "participant_id": 4, - "ephemeral_public_key": "de83e49ee163cda52e518af7932d369bba1cb20010414fe2a22a1f81c4ab91ee", - "vss_commitment": [ - "00c5bd007074940e99b7ba59be5d46461616e1d304c0bebffd67e49ab5db1c38", - "5a2310b15f9457af7f90f109c8fbf9ab29e7f2a1d7850bf59fc971b1011b4cea", - "6702600d0c060f3a6527f1c2030b8096bf97f65eca31dfe4e9a5e35686bac048", - "813c74e5ea76b066908297fefb79df996c1197760b8ecd9f019cb842b0290ada", - "af05944e3650b4e2c7e06ba2b070dbfd12f503f8832113205a37134ebb987a4a", - "b12920cf2afb4122387625474e7d128c945e070bc4a397ff8e53ffd9dffac610", - "0ea39bb6668dc3159094174825a9a54bb02f798f3454fac3db3c414bd7d87aeb" - ], - "pop": "0ef18e582e88cf5cff659d592f7690424e822230d98d075b0773afcbf37cab435cfb9bccccbaa6d01b8f650ad15b950c722c63a402fef012fdf0255fa40b2f0b", - "encrypted_shares": [ - "8ea087b8ad7c163085d16d5efc03bdb4c0ff1892686a8d5dd2a2265259e46b77555457fae4f4da72f3f3b523323018b2", - "f6e06bf4312c5b45b2f75ab5d31633bd78d5254163ea556972f5662856f34956bd8364894d57672ec159b3492c2ae38d", - "967bde47183fd1e84699fcd0e94768c57689c9bd0fd9d8e246ae86ffe51213bd5980267a54a7b924d630e59193d67dde", - "dd33ae9fff8bb4e468e506dfa992d360991c4226605cbf1ac7f5a3e5d7ba19df8f631da1bad367d7545eb70755d0798e", - "42488bf8e99b5082b7124d8f400f4649bafb9e86b505a0a53709ccf6321019c6898567365a1eaaacac713685c561a0e2", - "de3fe149ef628c2c49441f16536107053630c4a7883f76721a84730b83e7d1d0244e621542c7b69dfc6946b47c890d68", - "7a19997ba41a97230fd74acdc79bea27eb41e27b0163d03a6bc4d566e3ceee55f64cba565a6d2a232ec299f090030bd2", - "f96f620707a43177d56eb3cb400f6c86a79b2e3352e7aee0939f6e54ce42f71a35a416637b54de40c701d1d762bc0586", - "f2f0ecf1a6b32998bd5824514789564de0970529dc457b512a02d27d3e68c8962b6375fe7527f363e35ce54c18285698", - "6b6243585bda39544287acd9d45c57a3004c3f21560faafa10a2822bb7db5d490bd3f578cb1611ef6fd2092d7c17457a", - "598252e9f7dc7ce6bc6e74c7b9c266b194585fd927b9639997ae32b7a9a1b0467d4e473a9fa3b0f193e47021d413fc76", - "83a3191f75da4083f94001104daf21e15d4a26fad631b63c0d5beb7dc59af73df922e185826e0cc8e0dc68e742665fe7", - "5791bd36d9e4b7ffbfab2eb6e6a31037a9444d48ab387ec16312a4823b4f6f4847bebab74d1c6b78fda56cc60d98a027", - "91090ab6af987082ede3800bbe280ecd571662f5f6e73c8cb4218c226ea6870627a54ae4914f1b12a6719e49be2678e4" - ] - }, - { - "participant_id": 5, - "ephemeral_public_key": "9e497409331c8cc930c6881c388c11da647b3a6849d04825e2e94f8e9c6a294d", - "vss_commitment": [ - "41345c19975153d5961b06ff5dabcf4b60d7e93e75efca4b0782c42176d6db75", - "18a18f76755442f4a24d9d03c83d0b40c83024cbdd14a986dafbd2fab1372686", - "4d6f17bad6ab2285be9a6d95889e07efcdbc584bd0e75025a17b48d2e628b01e", - "8486d3bd93cfb628d4505c414d99428c02b673ef22f8c14903470af2c69c7bc1", - "8bad8a53afc6aac05fee4e78226c7dfcf1410a5e098c6907516aca0afc77e91b", - "5babc6627c45b3d97225ab9c6b179972146a48abdf61919a3421f66ba7d542d3", - "007462465d30433039c3d7071d38acb67593221f040fae991ecf4e49de5969d3" - ], - "pop": "39cedb6aade53ba3fd13a19100b096be7f0d8c797936d047cfa1cf1825d6cdde5fdbc8b75520485197c2b649ded5ef59fc3fae12c241e30bcf50ae54399a5b02", - "encrypted_shares": [ - "a57ba6db32bc68c0d3d5672774a106031ebee2e3f64d18c4655d91d4628a10c5203593f62340a8cb3361d36038026696", - "c170445bd700659c71abb4d3be28a568a0abe342dd5daf7ee33cb1a1baf519523e87c311598ae74a83577ffe388a6666", - "dc7851edccfcb7c8ad371c4cdb77f5a07e01a64612bcf5969dffe08e94b1912bed414eb34054d15c4c4ce9a4c1713a60", - "66dc53e46e3efa19b493318d30cdf4f25e1960d8fa97ac73f7ccf107c0fa16d18360881cce525e32c0bdb66e360e7273", - "25b2b8edee1d73b60a024ead57881d3e1e06bf0d0b27c3bb4dd848e7ca16c9d7c11ae19e5f752373d46bc8805b35b65c", - "17c59fdf354c849d3d806cf52bfc899890a394eabfea9de90cd65d8f9b477865cc83710de57cfbc041cf3cf523727519", - "7336a52e1d2a5499a773cb7d205a19ac900f03aaacab11e84591681e9d1b93d55d9707fc425979789db8ae74d660a126", - "094c55cd0f3d06c24240fdd78d3aeb5e94b1347c4a19627fb043dda18ffed8c19fb18599d5740eaeb5af78a87f8c45e4", - "b9e27f4c368d88ec1d082c11f2384d6c5caea3741de561effbaa602b09a382c1da1c13198c2e25037e7a75800a12e27a", - "bcef98ea19f4cef543f46801d7cd87fd8f672f4e2dc5c3ce5e0b41fb3b5dfd6a863593214e017ccdd7d4e7caac900f99", - "d8a7b547efaccc6a64e93b8f4a7f0db0d43690c400b68ceeebdf62bb3523bc9a0284fb06b9fbdb2b54392735420b8626", - "e58beb57936f01f049f30a864c2ea9f5a26555a6747e7da01b1f75f3b3838466d406c142744fb821e8d554c671aad9aa", - "026f951d25afc4148811ebe764ef502437e4cdb59f499494aedfc6590bd84c4619d9c0e1bd8cbcb9f08b46212b498446", - "73dd935a33796b540675569a2d7bc55f2a2197b9f9b8131f8354cc4c71e7a8b4ef1e245a3c0c04d15ea18b16066a0f70" - ] - }, - { - "participant_id": 6, - "ephemeral_public_key": "9927571d81fedb4b56db270d4815f61b4ad379bd78f5ded818d8793cb9791177", - "vss_commitment": [ - "01562a03fef123fc44ec8df875a6d280a35ec131b155d9a0ad267b9e244b972c", - "3e2fc03bc56e6eee6dfaf3c4a32a756e181954256b7aa05a1aa00370f0d254de", - "326483528c23b4965a3a94c52e1927ce3961629310a1993361f767a6900ff350", - "c8c71cd4e5984fc43f65e3a5c9dea94d4a29f86075d8782b639ce28ad2a31ab3", - "b7dc36dc1942e39845156a7c6324720db30ea373a515765d153ea43f5a61cfa1", - "4f4deb4e9509da4815b064ae9ddbf3b7f884c253bd45b063c7561e2cd9a2b441", - "07b75e7787fea8471bf90b240b625b9bf037f0d442c5dfa1b9653bda4daf6132" - ], - "pop": "616ba047d0851d91f9e0500986cce1743011869d08dce06a5d21735813a4c5b3e65966054954bfac5b77215e2133f3005df08bf9460784d05a9784cd79550c02", - "encrypted_shares": [ - "1295490279cdd0c22d4cb078d037de263357b9217be5bc3614f2b06986432938edbc49bb328af74e38eb7f19d419b0e1", - "e77b26621dd0c6b900050efcf24c7cf15938f5f656462d3d68c84cf1087ba2a3539515b69fb0017e285ea4b769b1971e", - "393a42c6bd01ff112b7ba6cd4e6cc96e26266cab650948eb230fa62297260953657000cd0d0e5fb2f2cab7417e4b15a1", - "03dc48fc8572f6b896fafd694e167e104320aafa9b524c97c4a3ae820c7924d0608235b410967cd10230cdcc58c49d68", - "a0325605fb8fc4ff68c1d80d5e82c2f0923a63e7580823678e4127494f7d518bf8a67460c01da0d7f61c99cf8756d565", - "cb75cc67318ee692364d497f68e02e4ea0b8fd809f87a02fc0470e395674218800ec9118fad92dfcff583a5d40c4aa63", - "8a55bc6e54ac3f83b4279f8c6eb42fe0e27e68bfa5c8d4c3e7c42cccbb411300af29210fb82a98bc4a0d46938ca3e4d1", - "0f84281ecb11ae3bfcfc0d01ff933d261ea166ecbaa813fac76a1b6da7bf2f0ac799976f43fc11a03f998c55c30f4b28", - "10905c5369db527b0d11029f2ab3a4285c7d03b3dc999c4a59faa3d302043373fffebf277be86eb9a4358ab1dd7fee20", - "2b3959c27355e9f3d122ea265d69c639188c4a4514b984a29490aadc61cddb5bea9fb0507ecdfd6c1d06c9e43289c263", - "df08ed10e3fadec43bb63b34c98675d900ceca5ae4a26bbf60de8b070196ed9a5ee7d229fd0092c036f3a2130eb55db9", - "502953693190fb90977a4eae0cff05031f6ace6316a3576f492c2b1a2c500700f07912b2280197ade63d76a7185a5079", - "6fd33b932fa7ac041e47b70624ca84025074e862238f4eb66f33babbe7f3180d0645674974fd89244b0bd895960867de", - "fe195562db5882d1fef094d40378da1a5e1e304e4be2c645694d20b613648812023219a7faaa15251c19ec7fc6d031a4" - ] - }, - { - "participant_id": 7, - "ephemeral_public_key": "383ce11f0a72af6f87a8eced6ca2be63f8d8fe1a7e6e3ff60dcef527a981e13d", - "vss_commitment": [ - "1631fdf734bdc56ac76e5ea18d4249372548866eee6bc4b921ce2ec34f63d2dc", - "a501c55a41c46ed2979f1aaad73c709da1b59f1fe9dd9d8ee5ffefecdb400ba5", - "f275d88f82795d54413fece420d2bd716c3ebef508ab576ecd831a73f7c2be0e", - "2dbe0fb91c435a62d13cc2486d8d1cb3bb37b3df8a2b8e7eac3943303b55e81a", - "2cbb2a69bdbcb0f2db5df5e5a30d37350dc14bcbb8246b78ff6089948ab5d26c", - "fe178255b74e32558e0bc0c056848f193d4dd5ea98bf1c4c04502b19865d9212", - "1a937ecc3604b3936f18f716434c8fabd1dcb7520482ed4c6a38fb5a408b07f0" - ], - "pop": "19781296b8ccc0a51281af8b06409e3a08ff58e27e142c19538c375802aa33df1a9376ddfca182a09904acd801e7cc5453d99e9b1bfebbb3bde25d71634f1705", - "encrypted_shares": [ - "b2c363c2a0a2fb73002a34ebef38ed49ecf07babaf04daeab561d3294c0d71cf2d432f75f030b89fc9c5b995ca1020f3", - "ee4d2c6e2aea605043a3a879fcf5d8280587ae5da556023be53151779bdb8d5c054ad35519a89284f37b48f711c2dbfd", - "b1848c831e794a1688d8e7ee4896762ee4d713989acd357b7da98466886fffade030a9eda20bcd955b8554641fdc61b9", - "6378c2fbafec101382b87f6839c551c983a1a5e9bab6fa71eb93ce44c8fe30081e56f5fb9f2ade193c39ce371be72e60", - "cc024216f06b98971a12262bb68a309fd304353bb2cf2a983ab4f4d61431a6556e925f51543be89510ab7b7c6f4f6d21", - "4a1170057461653ff45008ae105f0d5311ea55aa5d4a720eeaaa96a3a3b7b9ab640de138f2adffacff8ec525ea21eb64", - "7c9d22362e02339db8604c3aadc309255c9e43583e6d8f0a1b37e53be387e6b24b070afc759576d56b83949350ed67d8", - "20d2478d317e3047e43dbc08a4eac5c3a3eed9229549dc0021fed28792212f4c648110db5f597497006f364c745ee792", - "e062f6cac8bca877f47c98b5575bfaf5207f2385f3f530b46a34c3778e3c6066943ea9d74d2b1971874d437db933b04c", - "2bb36da2791b80ae1cf3871ab1e1bba75d1d1b3423b272b4fc250fccc9254ccfca50c106e5598a59a0cb4443a0a7b2c7", - "462fe9d1b1a1ad05ae3a80476b16a58edc992ee6f6292ba3d02ff84ed71ee9529c8b3c70b31cfddee7a516b7ab3792c6", - "e922696998f70bf7d9e62fb9c5686b250bc6a39fda33d21321f3a18f04d36b6ca100f2909bf4f3d0d30ab016470dd358", - "20dbdb9ca66b9b025b79e35d921b078c95fa7c62f6905fdf2c6840d7e41323e0f9bcc21727a7f614c535d4b45d9baf0c", - "4eb13643fbc1707d15bcbdc54f8f4df23429a587c878b9dfef22a0a88692e6229728bf9e984898f11a491b7eb1957204" - ] - }, - { - "participant_id": 8, - "ephemeral_public_key": "484705f96389c19faf1061f11903a5fcc5844eb0b8a585010012bb996dcaad5c", - "vss_commitment": [ - "bdae4e963ee31ca9568847258d852b7f3a9c2b60e9ba1822ec5b763b86da5e13", - "a46509672dfec6565badaf935779c94eea7204d3d5f728e32f296ca77673fc88", - "542bc5a5df72e29bc7672d64915922a8a92f8ba217b0b17aac58d1bc9b47bd90", - "81dacd05ed7c4ec034827b239356fdebb83163fe21b08e53b283a1827234eb73", - "3b2cfa57d898141156d0cf9d153f947549fa68edd792880f80ffcdfd0817110e", - "9baa4cb447d021ac8ba59f6588d63a0841e75afef5cb385a92afaf4f07c7f769", - "a28d99e40af6d79a4e8100465cce70f5095d7a0842cb3f50801d37a037baef49" - ], - "pop": "1033258069dffd6ac1524aea28a7a8c02f04ff11f20f5f21e30ef7b48c3b69561ed18bc423122244fb96a3d5aa42b2f2286c637679f8375472121ac60eba930e", - "encrypted_shares": [ - "c63a8cb52cdd625574a2f7c116b922c79a1da9f6acfe4bb2ff0a2e3d08e600e7624b3d54109dec201001643452b570dc", - "a83c0cad53e0c0a802d4dc331977dd56a99b2022143b69bae3faffbdff3dfca9e497ea3bb792364210c8b8b567179212", - "6654be93868d0ab275ede1d98f45920f0717f3348433ef8c97fedd58882b254802f0580f977f033df6b6aab31cef6c9d", - "0ea2351dd4751ecdb33f8fb31eb5521b3ad5cdd10c0122ffe3effdb08a8d3f6641cc45e2ee6b9ffbd47083e40ce97a4d", - "21682154be22781a5e117b93123a023b4746fd24c4404bacb0f5dfb5240ebc45187a3646bfae132bb9c7d6de6c746eab", - "9fc303e955847e1c274f01ac3cb8432c4c2b6a150a7a107fab28892f2a1dcf53b54844f60c5a553dc677fb0813c403f6", - "c5c016762422ac1d5ad5b35b18f42da43f4374cf800507ae5b251b10d17facf83584dafaa64de981964b744932978ec4", - "5e524ae2a1d7709f8cbbc06e6d318d8fbabe514579995b2d3bcc84bf83af78a5468b84738a812e755d72741632d8e47a", - "140fff910fc947b23502bf25fcbc23d82f65fccce07ea77c7e9502336c48bfa82286e05f4794257b4e3facb18f524191", - "552d62b34fcd773bdd659c2b9217fed91829de4f18fde2ae3807ec720b4fe9b2997e6098567c078fe55392d7e2327b02", - "d86e584dfe9843ba9135dad563962312d7526c5472c8928a121c9be2612c8d78e54dc8993fd23ae806252178f67e621d", - "935fc4926e1e5be523e9c82456bc9ce4341a1662fa2cb4a18696691f94e322ae79b59aca2dda611e6ecb4b128beac7a5", - "e852571a2cfa668ba8439b8baaeed493fffd41985ccd13164fed4ed1d599f74b4e6b8740bda6b2be55c202f34be38c33", - "7cf7aa5e43e5d103c5ede92b72a13c4b61cade63050efa2a1e5297832462466e6ad189ad2750adaabe79ee07ef6cb4a9" - ] - }, - { - "participant_id": 9, - "ephemeral_public_key": "6346ab5612264768d79a7ad16fd49a1b2247e0faa51a9884d0bbc2e943f6c25e", - "vss_commitment": [ - "e25bdc4d0553e9df680ff6a68e99fc57bc0996abc6efdc5df27d2a93ddfaa537", - "231b7bcf4b9e85df4be0b459474b3da7e0be54bf6216de54c95ea07ed4265849", - "29ac9239d300994b6708db3e50d231b1a921859ba7e49981caf8afcb34dce45a", - "c62c976a81ff9b637eeeae20a58a62467202343ccaa35472a48135c139278519", - "96f4e362273c2cd302ed9d80a73675b040b6abe79d8146706cd03c3d8244201a", - "bd88388e2b4b13cdd8a5dde0a53a4462f5a5e8503d9e052f50c152ac7601074f", - "5834bc33ce6f5219f5d759fef541286daf1576249ae74dadede45b12b73a541c" - ], - "pop": "c1608e4e28ff3078f3f4d920a6f946be04c3aba0311c4f5991b8e8b2888d55d32ba301f065fcad7a17b04f388788557fef86d4fe033b18825db32940dec6d809", - "encrypted_shares": [ - "61c293eb9ce2ab514dbd8f76402763c73c514a646d3405b577fd633eff6d83b0ef6f7d90d13dd8cfc9c2676225afb104", - "5f344358d69157a40888ddbb3908a2c53b154ca1366c323107d89bae9efab3292d7be83fa2a126c6945f85a662d6b487", - "e128e21dfb6196fe50bdaa24254395edad362f275bd653add426b78a1bbe008a9a02ef044bab06e7e0991ff65562ad21", - "4a04a1dd97dc5f9babab013333ae9e1c18b23eca17501605fedeaf326ecc8f212789e0143e1b68f89b1aa9c88cc3fafd", - "052efb884a3cd42f8cc8faecb35506e850a1a49f75d42379079a58e50388525fe4215952ab6ea19e3f3aef72b83c5cc6", - "2f1e1f3661204fc9f5cb880e66994a4cdb031e1190d9b5dfccbb2df9240ab0568d0749c5eb993c314d3c9c2e4d67af5f", - "14ff85f13b442cab2d301a650a66df2c88273ed10e4066b61a08436263009879b5cef1c39c40d5cee91ea9856a48c91d", - "aa00cb750bb8a0aabe600248a31fdde681e59afad82225522437e8966692127722ae26271d280dc3c7555d5144395ff7", - "cfbbcfdc0f2c1187ddee831993d230c8385f487580ab7a151c4d90e24f340ed421ef50311712e65d546f2d15186ed6ac", - "bd377a37cafb39d64d1554405cfe2c518939b09d4e18d2d4df448c4190f101cb2b0d36e7013ce2c2924217bceea48fd0", - "9c602d07928047d5aa81e3f2221ca9d7ff2d03001c1a2954b32e1668d85c1e05c58dc1bc15a6c21ea0707d764bcbd176", - "2b746d69c5ba3d7d877f92282dd5a93d8a604c26eae87b5fd0733911f0a7617c4428b210e2dd1c6586e79167e9113e47", - "4ced74574c94849c3ae2411f702987ec48522313d6fe970bf7b549dae1550a68b256a1ef3d697734163724e2fd1a29cd", - "2cab6bd2d2927e2095b22d7b04a34c252176f5c0234d3b67575a81df12b94832e05bdb9b8efe74c43e59b7d42e4514a7" - ] - }, - { - "participant_id": 10, - "ephemeral_public_key": "046d776b7355111941425f2e69fd9059139c4168f322ec299a798a30a0b35c66", - "vss_commitment": [ - "50ed6094879b72b1f0fa664c3567f8286256ff66490d5ab7ea1a855cd462ed27", - "c6bd58b6a980274eaad1ac983b508ebfacfeeefaf0711b017f18c4b53ae9bc27", - "aefcda47b58ae756debb4ee5d2d788dc28520e20acd4bccfa8672fd5ea760924", - "adfe712418b7195a85a6bbd73ab6eaae0836bc85d286280ab94f7ebb1449c42c", - "c24ed11efd7af32656f9cfa916268e6353dd2f83420611cf9408fa49de3a67ea", - "b46a06b89f15bf3708926422a655bd351a206c36c50b665f1feb5115dda34c7b", - "4c606cb5a24e7db824366cece763b0e648cef83adcd809f65ff647a3c947d0f8" - ], - "pop": "af65b861d4b00fe55420f43aa4a2f6c395f6578eb9078755e77fd2a703ff9663c3da40b329beb9180f1375e6bba4f1e3c1df96520fa4f9f1b8fd2e9590552806", - "encrypted_shares": [ - "776dd600ffb97f314ed4b740f30dd7d23ba83a29a5ad6729e85e9463264806b0c53ca265f4b457e36b1e99ca00136809", - "f4b5a510a7ba3acddb7e5af6cbc1d80d605c49b17e5c82dd5469301b9252dbdf86d02b6a78f5ccd7051c09d8b6497b62", - "f7955c99c52adab77ccc869c3413c7aef87ae3e32b95199fd651bb3f944724486ce56b73fe8c397bc50f1983f7547ac3", - "75a35476cf54d5e510e379dcba9a79f5021443def9a4a923d41f04c7284b48af60d2c29345556dbd0ab6144c24ca1512", - "dcb496435f9395597f22ff577d72b316a1f59eab3a2ef08c86c2f16c245ef92c1cc87633b00f8e125fa82d28f6a9918d", - "a8c544edbdd7ce9d86baaeaa025274095edfca7046834836780269790a375d86b89c9925839f01493d56203e06ce5e56", - "47b532e0293ae0635c342758ef916572418de506f7bbf5797f3e9120dd051f2da3269613f2a9be77f286ab3e5384a4a8", - "d743e2fb22a2221621301bc700487090f3ff0674dbd3cb34a31f20a6c8526ff6eff1258c257d68ce45f9c98c62b3769c", - "c8d5643c5dec331313e46a1334212c20d166a1eb553a59b2d63ce17912e71aa77b65e8ba2a077cee685b79c9f5ce09e3", - "910027bbc68f54473a4a8810e5cae922a9d3f03b250f23a18bfdcf25c1831d02fc66dd425feff6fb22cce8fe49845784", - "ef0ce7493ac9308bb1dc7b22a94798ab9c757cd22657b3d73ed763c5d65a2ce81e77d2f9bb95520dc2ae6c93cc2936dd", - "f6d80a12324c3a50cbe9717e546f4a5ef579ccc36bd6bb3e41178398c3dfc1903f8e173a9d3bf7a2463c15788a6926cf", - "fc3da8ac491f9e74c8ac84c1f3ecd70514f7166a2015888ad87b0396c857b06544ef74470c50ebaf0295bf90bd1cf697", - "fc06a1e4c88e2272348552691d8c7f79723b90b08be01788b14e04b7ee16a7e94cff03794f1bef7f5e7cfbab2acfb007" - ] - }, - { - "participant_id": 11, - "ephemeral_public_key": "c7c637f3322e21b93a61d7f08df232c276bb4291bdf21601a6701ef7d882f3c3", - "vss_commitment": [ - "b7d488e5abc933f36cba7c5b0fb11cd13d9446a24067716a2848b1ed36c955ec", - "0b6f1ee40385c09e03773e6061ae8bacb14e8e57df661ee6a88546a0f4629749", - "b2a99bec353262f120eed04546182b430c8441646f725ee2fa1d75ab2d4b586f", - "137ae83a1a7ee33abe1635e96d6ee2ff7c52f86e37721017fe9ab4e419998201", - "0b2178e228d5085a59cb436ba86399d28fac25971f380477ced7849f63985879", - "b8150ef51101b630a405737ef38a8e7b4e0d4ff437b389b167562e25022a284a", - "3103fd0db65d60047062f2bda799d1dd3af103babe07cc015d337f908abfea7e" - ], - "pop": "a28d02bb9ea5529eacfd34e1f502d63e5a0d786fde4c840ade0aa9163ab86868ff3c5964cf55a65e799a32a5dd2779eb74242fa155d7ba59bed76259ff6c3f0c", - "encrypted_shares": [ - "0e6e7ffb5df7e9e2b2f58d3d371c5431cfb5953ed180bdde2c9d7d1c130a6e31f9cff1ad84294e2530ec79c3a0a02fe0", - "97801309a0f1000d856ee0214d492eaf949bb42a53f931aa1ea72d005bc7a375c80e21bcaea1a275d6706ad9155d41c0", - "6c0d93f91a12f2b1f79a86cb12cdcc3aad11b40847561c326838693def41bb9bc58bc37a340e0d8cc76b87465f14142f", - "56ccf959a6be369f9bc0a22de3c15388dd05f86a3635e0939717fc1e20e49b81b1b7630d8e47f38011acdd9d9b22c488", - "bb3930ae717d8a37c6215f3b3dbf01b4b780f2fc222e4609e29cf10a9a259a313046d9fbd4fefc18f85670f6f9186a81", - "496261c02769750dbb71d9064c87400099f6cc1db379470f173fdd25434960c602741c81336d1448b62f5df9a2050742", - "7bfadd2e5f35f0ef0eba410323a413fbc4c3fea6748d032d3599820acb5520fda562aa7f7b99bc5a4b1b28fa43e054a0", - "0afb71f3a9f6b71bb5522b92dcd5c86e32ab534aa5a52f59ec8d8efc90c3e83358b1c99f4276f590a3fda5c7da873760", - "11d00688d12231cc1e455253327e58bd9030c1a503d1f3253d42ce327fd5a0f9ba4eec38425f7b56556966aac48f0cb3", - "b441b4fbf8098175b33203f1859f8b1b26314069516a35f4e4f28b13d845568310004389706f5561f86aaf39473929fc", - "6565d40221095e01075db0a2aabaed424178fffd57e1e4a633d26ac6f8d8fe9aac480fe7728f03d1d971a19ab4c4eca5", - "3d9fa91cef6589f0ea4e0aab01635718cd899190cf9955e974ef071d3ee0f2b658415e6768a713fdcd365bd7d7ecae23", - "4aba04bb764f483876cbd6b289b40dc68bbe0ab3abf7871f84c34698196702b1ace6c6ba461b08bdbe07546906c18c03", - "54567a41c0db163c6317d4b23dce5e9259353fcb22e42f9d75b5a05f359d895ff9526555537c1a8d7796a329d596b76f" - ] - }, - { - "participant_id": 12, - "ephemeral_public_key": "28ffa165a337a6fe8fd74d63a094784299ceca4a6c489a04a9d996b64438881a", - "vss_commitment": [ - "170c09025b04e53ec0e866f0c071583adce509f5026ed4e58a8f78f8d143e248", - "b9246fa3339cb000445f04ae3f0a38dd07f3e6238153e87e15f8c90a944823f0", - "22fae575938a481ebf5b84323adc56ab70953d38cdbf49def1ab0b63c609639a", - "9e37660b5de64b7d99039f57b7bef9624060f7331844fe0a5adad760f302cd1d", - "dae217a58c573a562543283c4d067b379b165c26d435e746adea8180624ba6e4", - "d49d8e123cfbc7114722c91b25128c7e0db78207584e7eb1da1136059d1e2d89", - "adf0c75b8edcd09827ba888a1bced3d88bca1b0ca9adf7718943f64ed788155a" - ], - "pop": "5b04ddb6095fb762e1a9e41cc7ad072b3bc29c38a6c80527c01a0c251af021e57ed76b2ab914625ad33e168fe2004714c82080f26b3e4d69610382a1e0fb6a07", - "encrypted_shares": [ - "7d873e3e309f798994887b992563f18510326af0a040d632b343e45dafec1c79d905d040116b2446fd8d428d1bc200d3", - "11aaab8862f75a2362ce7a62c4a3dcba633cd2ec23b4d7753b3f50e2cb059a9ee39feb758c850de8332474cee341c5ec", - "aab7b1faa74c3c40b78dc8c8fed7c20d75cc418bedb6890b0826bfaedbbfaf54cdcf6d62be03184dc47f0c324fe5cfe5", - "39ccaa60fe7b8c717eebbb4f3f4a214bb32b4845a0d5fb42e8f36727d9c98d041a8681f62b6adb8810442e45719450c2", - "d4e9e27596e22b915171cc0320217c3aa814df1cfc796cdf42defdac09e8dcbf6f996f79d2e377ca97637c0b1f91e00a", - "b607c069c1acfcf15fac9963fb9a0844f8c8a5b426c7ccdfc84e9230ee87b89c1ae6e99e436faca77e950d18b79a775d", - "70f4d50e5b9f5ee0d25767b957af58ca2320984e50489ce2c38a150c37814a56df13476c01317c9732131a0a598ce319", - "1509f71256e8dc7641a7d51a90ab242709fbc22fe73ba3e88d22db8d2564ff97957c91fbe0a98be2547aac50b5f6a245", - "bed5ac4982d0798a0165c123d9b778fc913b1aa9c2660c54b92d90143e8dd6b920c484269be987b3f5c2a1d6c051e752", - "7eb93d3977ead48f3d9e2d52039728a1b464c0f5d2090df8dd38f5b54564c442824a351f6701dcacd605e740e0d7e19c", - "05117bbd6c237a1ef31990f1adf7f47cf1410b4d08dc267eba4f8041f1b5f93a4da595371076d8bcdb6948238d7d9fd4", - "5b49f4d6ea1399f5ad4d4572e8d8ecc063025c3618cdf3cab827da50059d963734143857003644558d9e85ac256f0243", - "4d2939154aa8ab77ca9922caae650269c3dc9d5c63b1712be9f5acfbd9323bb29c2a466ebc6ac801c69be150d724c298", - "cfe69b94f54c1a6981a0011c0586a40963c78a3da0e592e70f685b67aee1ba72a420b8fae201e6ce5c51bcad3526382c" - ] - }, - { - "participant_id": 13, - "ephemeral_public_key": "1902b9fa56012a0f1ec6a81fc92cb231bd344e0e026dcb3ef64308c06a113165", - "vss_commitment": [ - "66952760f7acd6b3e91ca4886a80f0743a13fd68e2cf132f6bbd3d66b8e9c78e", - "0a5f2e38fc3c2b29154936f98507571d451efd763ebe4abd79f18a8397ad7703", - "ebb94efcb4f3f7f8d11347c5d0198db175bee6b20088c6d87e9400eede637349", - "ed62766da9eecc81eb91e294a0c3ca6b24617be617e029988859ece191961102", - "e388d21f0b0815e8677533482fb2f1a4aa9dd6c880eb95292ece52f04c2af632", - "56fe89800e07db8007553047d7f8dd3121080e34cda00e546b64ef254ac20cd3", - "396bd279026a38d1798cc2aafb46f86684ec84066cb7048343c6b4ed22e03772" - ], - "pop": "1cdfba449defc45cbc73093c49d18887fc0bb4044ebb22b901c47c7f33634977c208aafe5267857b5fae687cd89add6dc81175d7bb6c74ae8f1253d29706a50b", - "encrypted_shares": [ - "456b2c3aed159f290db5020362c87ff850ac00b8b0fb2a68dabb5c9fe8a16ba236daa3a8595afe9b01b63357d7ef31b7", - "5e32795f9d9295b7a08d1c5b0da55dedc4f7529e65100f3d922da04eadb80e7659f5f07dd132d24b392328c95c220313", - "d5c205bc9bd512128fafb2178c41e4d6f8827d1f53e8eb87f311673578a2cfebe67a95f231026a188b3c970bc1ee3b50", - "1b26be6193e02d2faea7380b77c2dbb8fef5c9d01a340e5ea49119b3bb360f99e3e954031586ab4120c7e49435b6f11c", - "6d50513d775bf531272167601628df79499ae1bb79d4146f4a57c24d50f87b985cb18ce5e1ab553cb01c4a59efeff9a6", - "84fbb5dacd4717505ce92e8656b023197a0859d2abd3dc88967934d6dedc698fd352c9b53724a3f3c410ac4a647f861d", - "1d091fcb8e50cf21413126594b65aa9660c9e2bcebbf05880ad2d137f2026a50e83ab571fc4e4d6675596190f3e7fe9c", - "cf6745f9342f2d1b03d6626b774fd131e0eb1daea9097dd30813e52d491ab338ccc9a7ce910c7697c7b0546810cf8fb5", - "96ed6df53f39764eeaf9b153b3dbd780885b3d557161f7d887ff7abcff8d7e7fc6457543d9877ae0ddb026337ae68d2f", - "6386e0051ce1bd5ee3a68b9d621554933b6621b696154855d924ea11bf0427092987bf1584fcc95cad03c795655b2075", - "75303d657a6a8217e7c115a614707eebf67c39c9b56727473500554664aaab5b76d865a655ae7db5a0b21a42d3c8822a", - "ea3670dc26da123ace13ea0c3940549f03706d55048ef6bcf9b34b21d1044ebc765ef53116447dfe6519969a03a211b4", - "e9dd1c5b8f65ced0fbbbb56d0e6aca19ffe01ef4769b6b5585ad018935d830ccc250bccb1e2ec21fd1dc0f4313a0f38c", - "87aa51b4758fe82e71d13fc3cd711bc7e83a001baae749e32c313cb30f3f43ba07191bbcbceab372b88ddff11cf043eb" - ] - }, - { - "participant_id": 14, - "ephemeral_public_key": "7a96b83ebb29c73c5dd728e2d90ca82a73fe4b6e4eb3551aff4985e83acc5d09", - "vss_commitment": [ - "41e386a282fa8130686b6daca702a454fc49aa6b58d8f25c0fdb35556a4e5076", - "25e4c2c64fdfbe3e95ba3dc721901584316c20bdc7042e5131ee67f97984dc82", - "83c6d42db01e6305afbcc32ee22876a6ef9d3ef72f6e80996460b21be43b076a", - "15bfac3955c11453e9cd7866df965d7cab2f3ffd328d79ef118a606cc159997e", - "507e3aeb3cda6d20dee7f300f56204033f9ca6803ecda929c4e1b1135a5e02ec", - "4a34153f93828c0e11bd12ee5354983c0702443a200509c08b3c5b03f6914a25", - "cf86e9af5d9346cfa85d3f0ed4a2f5caafc3eddb1e4bdfb2aa47ac556b940d0c" - ], - "pop": "a86a7e6789780852dbaf27b4774e992f34324e3bbf720909db73ab60948bc97a2d60000c4f962218a3faff9805e402f83ec9bef9d5cb8457489a2ec5a6f1c30f", - "encrypted_shares": [ - "5c3651ec6ce24ca39e9762f14ef2f0bc3005c9a9249dc9ae2ff766047837f9870e86ce93507f4cfb986dc082a4335561", - "6b7d57767b1e19d0a2fb47168651f134763c148b8759d238e20c2a466cb2d53960c0c3c04f3fd57853a8c2c967c62657", - "6674a2c7077fe97c00c541065052cff81326d17c8665192e4450bcff087405d41cd2ee3409eb2f172900a9ce7a3a49a7", - "bc1c2fc3b8f76eb1825d3581707eddfdfaafd27bf47f9a23c5a19803c77a717c4d1239e0af2a0bb978a19f5e8084eaa7", - "1a3d7edc3849e399ef828b3e0642890d687c9f1c45955c9fd49b772cc652aa2b23a39e38334df487845e5f33ae86be46", - "a74caf41cabf5ab2dabdad91031b75990bd9d650b9affde09a2713dbcc866255fb154aca9211121d14bd622bb5867338", - "5349a1e8a61e3b3ebed7275132fff77f27eb21fcc63235fe01ad3055a6f98ea481c7faf5d2a82835ee6c55cfadc49532", - "f2fcfb3f8bcf55b84e12a15198faf3e089fcbc9af53ad358dc243ec5c17a35f94e4331bf6d442389be71f0ffa0af03f2", - "f2555d4e1aa8bfd94cdeed14b49687e0ef515b414cec830edffd6c32a1db6b2f4e8cc2811a5706f70fae9a8bbda96339", - "9d2b8c9d31800ae633e5e06f119c4b74e0cfa4c11493dccb0f21c77255fa03de2464dd24c3bcd5773c758674f9442298", - "b853fa24dbf3c29000ff4c513069943731409686a1d4967dc1c9c95563313a584c40c6a5ed8fb53f72679176ca246663", - "91f67305d0d4df7cf48a0a85d365163df7ce97bea5eee8dcb03e8b65d8e663334d4c7882731548794280a953e96cb3af", - "1956457f7d8cc80393631ea12ab64073f19314d0b68a7c263428ffade35070a15a5ac2f4ce4a09ac7d16f068487cab96", - "e2caf932169e8486dd990ab71a9e03af4ff2161853b4373919dc633c0bbf6dcf50d59ff81fc8d5f499264e0ea9d48939" - ] - } - ], - "round2": [ - { - "participant_id": 1, - "secret_share": "5ae8e4e94395ba0838c4ba4a8849130645206e71aee6c9bdc12fb56edbfcfe0c", - "verification_share": "fa590716e0023453938b48e08717ba09446c3619431c69c777c20988fcacc619" - }, - { - "participant_id": 2, - "secret_share": "c69d4ac4d26e43318de29812ca720a5140e3bb7469105ef4e4d841ac987e3202", - "verification_share": "3889ff3155acdd6d481605ddd4ee63e1b080956186c055b19534ca97c8d42405" - }, - { - "participant_id": 3, - "secret_share": "52d315dcd6af952d6859db1bd796f90ad21117a4fc0c775d30810d2ef9ef9300", - "verification_share": "722e79c780637a20bfa188c09dab21ac2495c78927b768aa08e57557b3b708f4" - }, - { - "participant_id": 4, - "secret_share": "900b3bb6eef0c1b9a21196153b93431fcf4154a24c7fbafcf766eee40782de00", - "verification_share": "3b41c48d577cd28a2953ea1c1933c63e91f05317f15d21d21b2b19df84142f8f" - }, - { - "participant_id": 5, - "secret_share": "5aedb52a15bf785ba6b7b3c8cea04614162f1b1c2460c7d8e003986628d7de0b", - "verification_share": "205c0151dcd7d9bf04c75938ed0cd1342ab1f3ad35e61e81d62e5740c112a4ed" - }, - { - "participant_id": 6, - "secret_share": "4473e33ddb76fa45376158f2c6d28763a8ee43ffa75bfabd38c5639fef67b902", - "verification_share": "07d279f5bb2427088e56ca772e155c9f81e68e81a4d598756b73ce876f059717" - }, - { - "participant_id": 7, - "secret_share": "db1e9d5f393aea86ac4535ee3596b774c9b958525ec4b14d8632aad83e347c0a", - "verification_share": "28f08574232f539352bb1fbddcc667531b3792621ac32f34e9f5eaf25839a208" - }, - { - "participant_id": 8, - "secret_share": "8c7d13fc645338e2a6379f4642cbc83121513cacc71b115a5182ac13a1c0fb0a", - "verification_share": "b498cd2daff4fd916e84526bc308dbf0e5d248bae30ae72543c880d7e40aa28f" - }, - { - "participant_id": 9, - "secret_share": "1f2d4b898cdb26ffb7077dfd6bcc7d7ce4f7f44b8b30448e239d0eb9ea5ffb00", - "verification_share": "35231bef16e2991f532a42bd50f50e237be8c58ad4f0b25e704a43d26425d058" - }, - { - "participant_id": 10, - "secret_share": "1c79f3879fad1db5e7c8a41839d2bd0d02079cd035d24163c18ee19c1bc9a003", - "verification_share": "939c672f7382b03ce0826d6fecbfc8abe0e540a72b51aecbc5c8d5e1bd93a8d2" - }, - { - "participant_id": 11, - "secret_share": "07658cd43c0860d0ed939f1428ad91d3531872918a1a0e619b653e5783f9320d", - "verification_share": "022583f552659100e1b7bad7cc8aba80227a1b73d3fb646a83004275376fe37f" - }, - { - "participant_id": 12, - "secret_share": "dbc28a309af7360fd3af9055dda4bf74d5c91796674c7cac778071f127632407", - "verification_share": "b9ed1bfb7844a158685780659e2c018884b76a35387289914f849acb8750114b" - }, - { - "participant_id": 13, - "secret_share": "d78184a64a247eff228348f3ac8227e5df18eb2e3c4870e1534ab6e76e676809", - "verification_share": "cf098dad4e88dae95a64c6b3a2cc057134df15251d6ad09783bd68fcfafc419f" - }, - { - "participant_id": 14, - "secret_share": "8146df6da761b69ba2f3e73c11116b106955892d12969f397f64837f081e140d", - "verification_share": "058b5bdeb82562287d086a103007a7524cd778613d1fcf574b9970d45f6cfada" - } - ], - "round3": { - "transcript_hash": "42d65bfd93ad920dfcb048b90ff5a4b45d7e4d48e559c7aa89573d18d50758ad24bf3242bd87f445623aea08aee37edff4b45d2ddf2e6431d170b8a80caeb7c7", - "signatures": [ - { - "signer_id": 1, - "signature": "3b1367290e890f881abc9030b9c655f58c1ec10fbb905e3e1488d122ca41d7c8def539dd230a9b0daac62443d463011621ce2bf74ea5e235a56c1a550ba6f90b" - }, - { - "signer_id": 2, - "signature": "ce6a61cbcf33dbf2235d471c99fd044107c77cf06b2a4fa11e8f1fdd5e429b69a41304271d23ba1a21af6c1e0dc3d1847ebb630aeac19f3bcf074f4289d1ea04" - }, - { - "signer_id": 3, - "signature": "7c86105ad43b7f45b5403e77bde44a4325165127fec30f6e739f05eaf11e077c9b6af73d5bdc103e42beb253bc71e921c054a564391ba9aca98e750d890c750b" - }, - { - "signer_id": 4, - "signature": "4b694069c6302e73f22db4b640a6aa6447003334d9c5adf2d6e20ecd01a581a4069247f9297abe3526ca17efcbb75bf1b074b3a873b98f78686623179f77c50e" - }, - { - "signer_id": 5, - "signature": "0a6b303c24f0728da8bb25c3447e9d13d17496bfcaa91a91c05fca2aaf26236f9338866d83be74e79536162f05e4052fb56436a2181060c3af78189ed21d230f" - }, - { - "signer_id": 6, - "signature": "1b59b2ee70888d59667b8ab5fb2b2951d0905c83cd7bf8284d691f93f1c985e2d450c0e857e3eb606c70aa4753ec7213c573bc4f6b5e7f72adddbdab6d9b8f0c" - }, - { - "signer_id": 7, - "signature": "9cf0900dc7cb64e0e1a778fab17265a54e24495d1baae4023c0eef22dc8ae8e3e0f75a24306ca124e99b7f36f296ae24921f018b49b97f46944a34d4a78f780c" - }, - { - "signer_id": 8, - "signature": "ad80f1cae8f35461f5771a7b01f71ac6c21dccb1c3059839ec1b966cec669dbfa7ae6953167d61bbc93060e4694259d76a492ebc0c09e826bba34e18d4fa1401" - }, - { - "signer_id": 9, - "signature": "700c13cb118fb25edba791dac2c01ff8d45b40989ef5956a8f09953af732a82069b20cab9b4cff1c3fb0aae295c1772ddaff0138018cd0d32598354990855302" - }, - { - "signer_id": 10, - "signature": "5ec0fa59e9e8e7d7d9301d145f21e36c71f949d539481e03f98ecf02aca290c0f768477d4e25653d0f2db0081192f03f174042c902cfd6403600becc9e7dc705" - }, - { - "signer_id": 11, - "signature": "a7b0ae91a47dbabe7197d420da07d00618065b03b97bb6b0b2f9d60027fac152bbd8edbda81895cee6e988ffada5d5784b5a5fa678fdaf63e5b064bb50d7020c" - }, - { - "signer_id": 12, - "signature": "c53ad1c1087bbf76745ba542d1b46108a8175a93483309d0fc4e928a74099d517f7bdfe708641fe8207335aa3336237f14eb93acc0065a55d4e195153d8f7b09" - }, - { - "signer_id": 13, - "signature": "7fabcd96d266e30736e99336b0238ff18f7cf98d2d591edcda75616f7183e6648c7f14701c1adf7965806015f3b740ce4e9b49b83710f46d82d58c7c778af706" - }, - { - "signer_id": 14, - "signature": "52779e41e7bdfa5aa5769d705b56404926bf8808f3db4cd264e56a04aed8f08fab2771723a982f6139861bd66d32446dae20726882d1fed841d1676488669b0f" - } - ] - }, - "group_public_key": "d3bd4888ca21d85a346d97ff7a95f07a22f2060f8566ce4228e61f214de7730d", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "31aa6638fb9526fe734101a432cfd8a02db6967bfc9eeea5f18281c5f11761e57acab35201c7fb0857bb94e897af538a", - "25bf5df8189cbdb175cab533b438c3a8302ba442dea605771e235684fb5183e03812b08d994020ae7ae7134ffe080d42", - "7ff806ef14fc0fe79badd46918dcdb6acddc2de6080b4ee847586564d58d9723b3c876b3777dc38a41bfe8a000c8b7df", - "8ea087b8ad7c163085d16d5efc03bdb4c0ff1892686a8d5dd2a2265259e46b77555457fae4f4da72f3f3b523323018b2", - "a57ba6db32bc68c0d3d5672774a106031ebee2e3f64d18c4655d91d4628a10c5203593f62340a8cb3361d36038026696", - "1295490279cdd0c22d4cb078d037de263357b9217be5bc3614f2b06986432938edbc49bb328af74e38eb7f19d419b0e1", - "b2c363c2a0a2fb73002a34ebef38ed49ecf07babaf04daeab561d3294c0d71cf2d432f75f030b89fc9c5b995ca1020f3", - "c63a8cb52cdd625574a2f7c116b922c79a1da9f6acfe4bb2ff0a2e3d08e600e7624b3d54109dec201001643452b570dc", - "61c293eb9ce2ab514dbd8f76402763c73c514a646d3405b577fd633eff6d83b0ef6f7d90d13dd8cfc9c2676225afb104", - "776dd600ffb97f314ed4b740f30dd7d23ba83a29a5ad6729e85e9463264806b0c53ca265f4b457e36b1e99ca00136809", - "0e6e7ffb5df7e9e2b2f58d3d371c5431cfb5953ed180bdde2c9d7d1c130a6e31f9cff1ad84294e2530ec79c3a0a02fe0", - "7d873e3e309f798994887b992563f18510326af0a040d632b343e45dafec1c79d905d040116b2446fd8d428d1bc200d3", - "456b2c3aed159f290db5020362c87ff850ac00b8b0fb2a68dabb5c9fe8a16ba236daa3a8595afe9b01b63357d7ef31b7", - "5c3651ec6ce24ca39e9762f14ef2f0bc3005c9a9249dc9ae2ff766047837f9870e86ce93507f4cfb986dc082a4335561" - ], - "recovered_secret_share": "5ae8e4e94395ba0838c4ba4a8849130645206e71aee6c9bdc12fb56edbfcfe0c", - "recovered_verification_share": "fa590716e0023453938b48e08717ba09446c3619431c69c777c20988fcacc619" - } - }, - { - "n": 3, - "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", - "config": { - "static_secret_keys": [ - "976f8781ac89edb9b14f00b42915f36add6fb01f795ad7048e88a7246ab35304", - "b00aff74021d100b0eb587ca406fd4c1af2ffef9146454a4c35f547f709e8403", - "5d3df9bdd5e6ff1e43f07d2d81791cda76e44e6fdbba980b1231a9ff39e1ee02" - ], - "static_public_keys": [ - "2f35ea108d2b43a27d2dd17f3f0d0e44422514d91d667af850fa206a85cde4f3", - "d34665a229edcb3a8b822179868138c097bbf51316cbea636e6626b152742812", - "e4f58f6834e2315cc79cbb142ffa2ae0700f835ddb581818e10553679c32fafa" - ] - }, - "round1": [ - { - "participant_id": 1, - "ephemeral_public_key": "f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", - "vss_commitment": [ - "2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941", - "590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1" - ], - "pop": "a7abfa107e2ac05ad11a71fd494f3f2baa177253ef9c7594a37da917f2a84333bd7a61ae269c5624b8eb49d10e28a78f07718728f59b2bc626f9d07e653faf09", - "encrypted_shares": [ - "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", - "156d49dae0cb8917f47e70e75d7eaaf3251d160eefc294f9b5eba5f918ac453a05ee5351918384d62a43e888659e880a", - "a90c87b8b6cf42cc308e488f50662f0988d4229d68eb00e70916079bccb8df591ac2732b174e86a57bd292fbf485cb94" - ] - }, - { - "participant_id": 2, - "ephemeral_public_key": "1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", - "vss_commitment": [ - "3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d", - "5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd" - ], - "pop": "2b8520cf63b7e857d02c47367dd20c54c27dc2d96a6dcff3918bd4b8616bb3d01ed4c7d2e3189955c3fb4f18988f56e3053fb2a62d3d0cac49a860a22da90700", - "encrypted_shares": [ - "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", - "cfc83a3f386eeec4789ba05cfe565a3240b6c1801e80a4aef8771a23c389b526f7b2b601020d576e2f72c39a4b2c26c0", - "fb6cec9a16d2f536457c96afedea704a5228c42365b34377c04f7c9e953a45d09ce4a40f5ea62b63fbfcae9a452b56de" - ] - }, - { - "participant_id": 3, - "ephemeral_public_key": "53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", - "vss_commitment": [ - "74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8", - "ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d" - ], - "pop": "af79a5ff31a6536b2d0b333452c13ff0089192aafc9b10323e017923ef8e45c9d5a4cea1a5f14c86eccdf8b3c0ea25c9d7b9ba6b071c0cee0a5374f95285d003", - "encrypted_shares": [ - "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d", - "b151386d9e5316c52cc67897c65231c753a0036d974909403220f5168c55aaea336acf361b273cb81d06a5117c144ef8", - "a9fd00d94fd411354947c995c054c9d842aec6ca351450256e28198ea3d7b7fb6a939626e0a99c6f456bae3aa243fcb3" - ] - } - ], - "round2": [ - { - "participant_id": 1, - "secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", - "verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" - }, - { - "participant_id": 2, - "secret_share": "6723b951f1a81f143f11eea4ec31413e76669d049b962b8946a78a35cf97cf0c", - "verification_share": "0c37616b618d49bc5ce2db1cc0ec4177890bbefa2caed8aeb2cc20aa5e872ecb" - }, - { - "participant_id": 3, - "secret_share": "0d2809d5c126e019a3bbadc2cc132013eb6141f7f6d1f062408ef58b89ad180d", - "verification_share": "9b992f1e668431df2531c8a29defe7d7a5897862648c8efc92bfd9464dbed5c9" - } - ], - "round3": { - "transcript_hash": "c271c24bac1aef846815a8c43fc6618bb6d4367edece0c0937be417c3948ed69671629784f0950e43d63b0c2af66a5259ec2fd0b27e70b1d0cf49a127fca1970", - "signatures": [ - { - "signer_id": 1, - "signature": "cd0c7695346ad9b5be3a51652c12dfa4aeab9e52ae15994a4d44b06683fbc390677f619be7eb8abffdc6172f8acf4aca9ef062a80a0e7663c2c19ab5e2848d01" - }, - { - "signer_id": 2, - "signature": "e9caf69275d884494d4730d5dbd20fab0bb242edf0771d2e0b9ea9cbc74a0e1b2a5c389dfc19d69c62cf622a073346e0111664e4e65e4d0b695a3e3968a72503" - }, - { - "signer_id": 3, - "signature": "3a50cb19fc6bf1bf82d58fda0e02ebd535c549f1dae01f579efe010250876a6410dda05c773ec8dd1d414a6a9bb8be0a4693b08c59a32c20d60e51cb59698405" - } - ] - }, - "group_public_key": "ec21f5ee46aa6e11ddc8d3f42af51e6636b86de0243229d848da48c3b604964d", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", - "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", - "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d" - ], - "recovered_secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", - "recovered_verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" - } - } - ] -} \ No newline at end of file diff --git a/cocktail-dkg.md b/cocktail-dkg.md new file mode 100644 index 000000000..d2203dcb9 --- /dev/null +++ b/cocktail-dkg.md @@ -0,0 +1,2143 @@ +# COCKTAIL Distributed Key Generation + +[c2sp.org/cocktail-dkg](https://c2sp.org/cocktail-dkg) + +- **Version**: v0.2.0 +- **Authors**: + - [Daniel Bourdrez](https://github.com/bytemare) + - [Soatok Dreamseeker](https://github.com/soatok) + - [Tjaden Hess](https://github.com/tjade273), *[Trail of Bits](https://trailofbits.com)* + - COCKTAIL is an independent derivative of [ChillDKG](https://github.com/BlockstreamResearch/bip-frost-dkg/tree/master), + which was made by: + - [Tim Ruffing](https://github.com/real-or-random), *Blockstream Research* + - [Jonas Nick](https://github.com/jonasnick), *Blockstream Research* + +## Introduction + +Threshold signature schemes (i.e., [FROST (RFC 9591)](https://www.rfc-editor.org/rfc/rfc9591.html)) allow a secret key +be shared among $n$ parties such that any $t$ of the $n$ parties can cooperate to generate a digital signature for the +group public key. + +Initializing a $t$-of-$n$ threshold requires a key generation protocol. This can be a **Distributed Key Generation** +(DKG) protocol or a Trusted Dealer approach. RFC 9591 specifies a Trusted Dealer approach and leaves DKG specification +out of scope. + +However, [the original FROST paper](https://eprint.iacr.org/2020/852) did specify a DKG protocol based on Verifiable +Secret Sharing, Pedersen commitments, and Proofs of Possession. This protocol is secure only if communications are +performed over a secure channel, with the following requirements: + +- Messages are authenticated and encrypted in transit, to prevent man-in-the-middle attacks +- All participants have some consensus mechanism (e.g., a transparency log) so everyone has a consistent view of the + protocol messages + +To satisfy these requirements in a standalone protocol, Nick and Ruffing proposed [ChillDKG](https://github.com/BlockstreamResearch/bip-frost-dkg) +as a Bitcoin Improvement Proposal. Because of its tight coupling to the Bitcoin project, ChillDKG was only specified and +implemented over the secp256k1 elliptic curve group. + +> COCKTAIL is a recursive acronym that stands for: "COCKTAIL Orchestrates Cryptographic Key Threshold Agreement for +> Interoperable Libraries." + +COCKTAIL is an independent derivative of ChillDKG intended to be used with any FROST ciphersuite. + +## Abstract + +COCKTAIL-DKG is a standalone, three-round distributed key generation protocol for threshold signature schemes like +FROST. + +COCKTAIL-DKG allows a group of $n$ participants to securely generate a shared group public key and individual secret +shares for a $t$-of-$n$ threshold, without a trusted dealer. The protocol is built on Feldman's Verifiable Secret +Sharing (VSS), uses pairwise ECDH to encrypt shares for transport over insecure channels, and includes a final +certification round to ensure all participants agree on the outcome. It is designed to be ciphersuite-agile, with +specific recommendations for curves like secp256k1, Ed25519 (via Ristretto255), and Ed448 (via Decaf448). + +## Design Overview + +COCKTAIL-DKG, like ChillDKG before it, starts off with a simplified variant of a Pedersen Commitment with Proof of +Possession protocol, referred to as "SimplPedPop". If SimplPedPop were a standalone protocol, it would depend on an +external *equality check protocol* to ensure all participants received the same messages. + +An encryption layer, called "EncPedPop", wraps SimplPedPop with pairwise ECDH to encrypt secret shares. + +Finally, an equality check protocol called "CertEq" is built atop EncPedPop to create a standalone protocol. + +A **coordinator** is assumed to facilitate message passing between participants. The coordinator is a trusted third +party that is responsible for receiving messages from all participants, aggregating them where necessary, and +broadcasting them to all participants. The coordinator does not have access to any secret information. The role of the +coordinator can be fulfilled by a simple broadcast channel, a peer-to-peer network, or a dedicated server application. + +## Supporting Definitions + +This section provides detailed definitions for the notation, message formats, and cryptographic primitives used +throughout the COCKTAIL-DKG protocol. + +### Notation + +- $X \parallel Y$: The concatenation of X followed by Y. +- $n$: The total number of participants in the DKG ceremony. +- $t$: The threshold, i.e., the minimum number of participants required to generate a signature. +- $i, j$: Indices representing participants, where $1 <= i, j <= n$. +- $B$: The generator point of the elliptic curve group. +- $q$: The order of the elliptic curve group. +- $f_i(x)$: The secret polynomial of degree $t-1$ generated by participant $i$. +- $a_{i,k}$: The $k$-th coefficient of $f_i(x)$, which is a scalar. $a_{i,0}$ is the primary secret of participant $i$. +- $C_{i,k}$: The public commitment to the coefficient $a_{i,k}$, where $C_{i,k} = a_{i,k} * B$. +- $C_i$: The VSS commitment for participant $i$, which is the vector of all $C_{i,k}$. +- $s_{i,j}$: The secret share of participant $i$'s polynomial evaluated at $j$, i.e., $s_{i,j} = f_i(j)$. +- $d_i$: The long-term static private key for participant $i$, a scalar. +- $P_i$: The long-term static public key for participant $i$, where $P_i = d_i * B$. +- $e_i$: The ephemeral private key for participant $i$ for a single DKG session, a scalar. +- $E_i$: The ephemeral public key for participant $i$, where $E_i = e_i * B$. +- $PoP_i$: A Proof of Possession signature from participant $i$. +- $x_i$: The final, long-lived secret share for participant $i$, where $x_i = \sum_{j=1}^{n} s_{j,i}$. +- $Y_i$: The public verification share for participant $i$. +- $Y$: The final group public key, where $Y = \sum_{j=1}^{n} C_{j,0}$. +- $payload_{i,j}$: An optional application-defined payload from participant $i$ to participant $j$, which may be empty. +- $S^{(e)}_{i,j}$: The ephemeral-to-static ECDH shared secret, where $S^{(e)}_{i,j} = e_i * P_j$. +- $S^{(d)}_{i,j}$: The static-to-static ECDH shared secret, where $S^{(d)}_{i,j} = d_i * P_j$. + +### Operations + +- $Add(P1, P2)$: Elliptic curve point addition. +- $RandomScalar()$: Generates a uniform cryptographically secure random scalar in the range $[0, q-1]$. +- $H6()$: A ciphersuite-specific key derivation function. +- $Enc()$/$Dec()$: Ciphersuite-specific AEAD encryption/decryption functions. +- $Sign()$/$Verify()$: Ciphersuite-specific digital signature functions for the Proof of Possession. + +### Message Formats + +All messages exchanged between participants are encoded as byte arrays. The specific encoding of protocol elements is +defined below. Implementations **MUST** adhere to these formats to ensure interoperability. + +#### Primitive Types + +Let $G$ be an elliptic curve group with a standardized name (e.g., "P-256", "Ed25519", "secp256k1"). + +- **Scalar**: A scalar is an integer in the range $[0, q-1]$, where $q$ is the order of the group $G$. A scalar is + encoded as a fixed-size, big-endian byte array. The size is determined by the curve (e.g., 32 bytes for P-256, + secp256k1, and Ed25519/Ristretto255). Implementations **MUST** reject any decoded scalar value $s$ where $s \geq q$. +- **Elliptic Curve Point**: An elliptic curve point is encoded in its compressed form, as a fixed-size byte array. The + size and format are determined by the curve (e.g., 33 bytes for P-256 and secp256k1, 32 bytes for + Ed25519/Ristretto255). Implementations **MUST** validate that decoded points are valid curve points. +- **The Point at Infinity**: The point at infinity, which is the identity element of the group, is represented by a byte + array of the same length as a standard point encoding, but filled with all zero bytes. The point at infinity **MUST** + be rejected when parsing VSS commitment points $C_{i,k}$, ephemeral public keys $E_i$, and static public keys $P_i$. + Accepting identity elements in these positions would compromise protocol security. + +#### Protocol Messages + +The following messages are exchanged during the COCKTAIL-DKG protocol. They are constructed by concatenating the byte +representations of their constituent parts in the specified order. + +**1. $msg_{1|i}$ (Participant -> Coordinator, Round 1)** + +This message contains the participant's VSS commitment, their Proof-of-Possession, their ephemeral public key, and the +encrypted shares for all other participants. + +- $C_i$: The VSS commitment, which is a list of **exactly** $t$ elliptic curve points. Implementations **MUST** verify + that the commitment contains exactly $t$ points; any other length indicates a malformed message or an attempted + [threshold elevation attack](https://blog.trailofbits.com/2024/02/20/breaking-the-shared-key-in-threshold-signature-schemes/). + - Format: $C_{i,0} \parallel C_{i,1} \parallel \cdots \parallel C_{i,t-1}$ +- $PoP_i$: The Proof of Possession, which is a signature. The size depends on the signature scheme used by the + ciphersuite. +- $E_i$: The ephemeral public key, an elliptic curve point. + - It does not refer to isogenies. Here, E stands for "ephemeral". +- $c_{i,j}$: An encrypted ciphertext containing the secret share $s_{i,j}$ and an optional application-defined payload + $payload_{i,j}$. The plaintext format is $s_{i,j} \parallel payload_{i,j}$, where $payload_{i,j}$ may be empty. + The ciphertext size depends on the AEAD scheme and the payload size. The minimum ciphertext size is the scalar + encoding size plus the AEAD authentication tag size (e.g., 32 + 16 = 48 bytes for most ciphersuites). + Implementations **SHOULD** enforce a maximum ciphertext size to prevent resource exhaustion attacks. + +The full message is the concatenation of these elements: + +```math +msg_{1|i} = C_i \parallel PoP_i \parallel E_i \parallel c_{i,1} \parallel c_{i,2} \parallel \cdots \parallel c_{i,n} +``` + +**2. $msg2$ (Coordinator -> All Participants, Round 2)** + +This message aggregates the public information from all participants. + +- $C_{j,0}$: The zero-coefficient commitment from participant $j$, an elliptic curve point. +- $PoP_j$: The Proof of Possession from participant $j$. +- $C_{agg}$: The aggregated commitment for non-zero coefficients. This is a list of $t-1$ points. + - Format: $C_{agg,1} \parallel \cdots \parallel C_{agg,t-1}$ +- $E_j$: The ephemeral public key from participant $j$. +- $c_{j,i}$: The ciphertext from participant $j$ intended for participant $i$. + +The message broadcast to participant $i$ is structured as: + +```math +msg_{2|i} = (C_{1,0} \parallel PoP_1) \parallel \cdots \parallel (C_{n,0} \parallel PoP_n) \parallel C_{agg} \parallel E_1 \parallel \cdots \parallel E_n \parallel c_{1,i} \parallel \cdots \parallel c_{n,i} +``` + +**3. $sig_i$ (Participant -> Coordinator, CertEq Phase)** + +This message contains the participant's signature over the protocol transcript. + +- $sig_i$: The signature, created using the participant's static private key $d_i$. The size depends on the signature + scheme. + +**4. Aggregated Signatures (Coordinator -> All Participants, CertEq Phase)** + +This is the final message, containing all signatures on the transcript. + +- $sig_j$: The signature from participant $j$. + +The message is structured as: + +```math +aggregated_sigs = sig_1 \parallel sig_2 \parallel \cdots \parallel sig_n +``` + +### Cryptographic Primitives + +As COCKTAIL-DKG is intended to be used in conjunction with [RFC 9591](https://www.rfc-editor.org/rfc/rfc9591.html), we +begin our enumeration of named hash functions with "H6". + +## Protocol Definition + +This section describes the COCKTAIL-DKG protocol in detail. + +### Setup + +Each participant $i$ is assumed to have: + +- A unique identifier $i$ from $1$ to $n$. Identifiers **MUST NOT** be $0$ or congruent to $0$ modulo the group order + $q$, as this would allow a [zero share attack](https://www.zkdocs.com/docs/zkdocs/protocol-primitives/verifiable-secret-sharing/). +- The parameters $n$ (total participants) and $t$ (threshold). +- A long-term static key pair $(d_i, P_i)$. +- A list of the static public keys of all other participants, ${P_1, ..., P_n}$. +- A ciphersuite defining the elliptic curve group, hash function, and AEAD scheme. +- A `context` string, which **MUST** be unique to the DKG session to prevent replay attacks. It is RECOMMENDED that this + string be constructed by hashing a domain separation tag, the session ID, and the list of participant public keys, + for example: `context = H("COCKTAIL-DKG-CONTEXT" || session_id || P_1 || P_2 || ... || P_n)`. The `session_id` should + be a value that is unique to the session, such as a high-entropy random byte string or a timestamp. All participants + **MUST** validate that they agree on the `context` string before proceeding. + +### Round 1: Commitment and Encryption + +1. **Generate Polynomial:** Participant $i$ generates a secret polynomial $f_i(x)$ of degree $t-1$: + $f_i(x) = a_{i,0} + a_{i,1}x + \cdots + a_{i,t-1}x^{t-1}$. + The coefficients $a_{i,k}$ are chosen as random scalars. $a_{i,0}$ is the participant's primary secret share. +2. **Compute VSS Commitment:** Participant $i$ computes a VSS commitment $C_i$ to their polynomial by creating a public + commitment for each coefficient: + $C_i = (C_{i,0}, C_{i,1}, \cdots, C_{i,t-1})$, where $C_{i,k} = a_{i,k} * B$. +3. **Generate Ephemeral Key:** Participant $i$ generates a fresh ephemeral key pair $(e_i, E_i)$ for this session. +4. **Compute Proof of Possession (PoP):** Participant $i$ computes a digital signature $PoP_i$ over a concatenation of + the `context` string, their VSS commitment $C_i$, and their ephemeral public key $E_i$. The signature is created + using the secret $a_{i,0}$ as the private key and $C_{i,0}$ as the public key. The message to be signed is + `context || C_i || E_i`. The specific signature algorithm is defined by the ciphersuite. +5. **Compute and Encrypt Shares:** For each participant $j$ from $1$ to $n$ (including $j = i$, the self-share): + 1. **Compute Share:** Participant $i$ computes the secret share $s_{i,j} = f_i(j)$. + 2. **Derive Key:** Participant $i$ computes two ECDH shared secrets: one with their ephemeral key and the + recipient's static public key, and one with their static key and the recipient's static public key: + $S^{(e)}_{i,j} = e_i * P_j$ and $S^{(d)}_{i,j} = d_i * P_j$. It then derives a symmetric key and nonce for the AEAD. + - If the hash function has an output length at least 480 bits long: + - $tmp = H6(S^{(e)}_{i,j} \parallel S^{(d)}_{i,j}, E_i, P_i, P_j, context)$. + - $k_{i,j} = tmp[0:32]$ + - $iv_{i,j} = tmp[32:56]$ + - Otherwise: + - $ikm = H6(S^{(e)}_{i,j} \parallel S^{(d)}_{i,j}, E_i, P_i, P_j, context)$. + - $k_{i,j} = H("COCKTAIL-derive-key" \parallel ikm)$ + - $iv_{i,j} = H("COCKTAIL-derive-nonce" \parallel ikm)[0:24]$ + - Here, $H(x)$ is the underlying hash function (e.g., SHA-256). + 3. **Prepare Plaintext:** Participant $i$ prepares the plaintext to encrypt. This consists of the secret share + $s_{i,j}$ followed by an optional application-defined payload $payload_{i,j}$: + $plaintext_{i,j} = s_{i,j} \parallel payload_{i,j}$. + If no application payload is used, $payload_{i,j}$ is empty. + 4. **Encrypt Share:** Participant $i$ encrypts the plaintext for participant $j$: + $c_{i,j} = Enc(plaintext_{i,j}, k_{i,j}, iv_{i,j})$. +6. **Broadcast:** Participant $i$ sends their $msg_{1|i}$ to the coordinator. + +### Round 2: Share Decryption and Verification + +The coordinator waits to receive $msg_{1|i}$ from all $n$ participants. It then broadcasts a list of all received messages +to every participant. Upon receiving the list of all $msg_{1|i}$ messages, each participant $i$ performs the following +steps: + +1. **Validate Commitments:** For each participant $j$ from $1$ to $n$: + - Participant $i$ verifies that the VSS commitment $C_j$ contains **exactly** $t$ points. If $|C_j| \neq t$, + participant $i$ **MUST** abort, identifying participant $j$ as malicious. This check prevents + [threshold elevation attacks](https://blog.trailofbits.com/2024/02/20/breaking-the-shared-key-in-threshold-signature-schemes/). +2. **Verify All PoPs:** For each participant $j$ from $1$ to $n$: + - Participant $i$ verifies the proof of possession $PoP_j$. The signature is checked against the message + `context || C_j || E_j`, using participant $j$'s public commitment $C_{j,0}$ as the public key. + - If any $PoP_j$ is invalid, participant $i$ **MUST** abort, identifying participant $j$ as malicious. +3. **Decrypt and Verify Shares:** For each participant $j$ from $1$ to $n$ (including the self-share $j = i$): + 1. **Derive Key:** Participant $i$ computes two ECDH shared secrets: one with the sender's ephemeral public key + and their static key, and one with the sender's static public key and their static key: + $S^{(e)}_{j,i} = d_i * E_j$ and $S^{(d)}_{j,i} = d_i * P_j$. They then derive the symmetric key and nonce: + - If the hash function has an output length at least 480 bits long: + - $tmp = H6(S^{(e)}_{j,i} \parallel S^{(d)}_{j,i}, E_j, P_j, P_i, context)$. + - $k_{j,i} = tmp[0:32]$ + - $iv_{j,i} = tmp[32:56]$ + - Otherwise: + - $ikm = H6(S^{(e)}_{j,i} \parallel S^{(d)}_{j,i}, E_j, P_j, P_i, context)$. + - $k_{j,i} = H("COCKTAIL-derive-key" \parallel ikm)$ + - $iv_{j,i} = H("COCKTAIL-derive-nonce" \parallel ikm)[0:24]$ + - Here, $H(x)$ is the underlying hash function (e.g., SHA-256). + 2. **Decrypt Plaintext:** Participant $i$ decrypts the ciphertext sent to them from participant $j$: + $plaintext_{j,i} = Dec(c_{j,i}, k_{j,i}, iv_{j,i})$. + If decryption fails, participant $i$ **MUST** abort, identifying $j$ as malicious. + 3. **Parse Plaintext:** Participant $i$ parses the plaintext to extract the secret share $s_{j,i}$ (the first + scalar-sized portion) and any optional application payload $payload_{j,i}$ (the remainder). + 4. **Verify Share:** Participant $i$ verifies the decrypted share $s_{j,i}$ against $j$'s VSS commitment: + $s_{j,i} * B = \sum_{k=0}^{t-1} i^k * C_{j,k}$ + If the check fails, participant $i$ **MUST** abort, identifying $j$ as malicious. +4. **Compute Final Keys:** If all shares are successfully decrypted and verified: + 1. **Secret Share:** Participant $i$ computes their final long-lived secret share by summing all received shares: + $x_i = \sum_{j=1}^{n} s_{j,i}$. + 2. **Group Public Key:** Participant $i$ computes the group public key: + $Y = \sum_{j=1}^n C_{j,0}$. + 3. **Verification Share:** Participant $i$ computes their public verification share $Y_i$. This is done by first + computing the aggregated commitment for each coefficient $k$: + $C_{agg,k} = \sum_{j=1}^{n} C_{j,k}$. + Then, $Y_i = \sum_{k=0}^{t-1} i^k * C_{agg,k}$. + 4. **Final Check:** Participant $i$ performs a final self-consistency check: + $x_i * B = Y_i$. If this check fails, the participant must abort. Note: This check is mathematically + guaranteed to pass if all VSS share verifications in step 3.4 succeeded. It serves as a defense-in-depth + measure to catch implementation bugs in the share summation or verification share computation. + +### Round 3: Certification + +This round ensures that all honest participants have arrived at the same public state. + +1. **Construct Transcript:** Each participant $i$ constructs a canonical byte representation of the final public + transcript, $T$. The transcript **MUST** be constructed by concatenating the following elements in this exact order: + 1. $len(context)$: The length of the context string as a little-endian 64-bit unsigned integer. + 2. $context$: The context string bytes. + 3. $n$: The number of participants as a little-endian 32-bit unsigned integer. + 4. $t$: The threshold as a little-endian 32-bit unsigned integer. + 5. For $j$ from $1$ to $n$: $P_j$ (the static public key of participant $j$, in its standard encoding). + 6. For $j$ from $1$ to $n$: $C_j$ (the full VSS commitment of participant $j$: $C_{j,0} \parallel \cdots \parallel C_{j,t-1}$). + 7. For $j$ from $1$ to $n$: $PoP_j$ (the Proof of Possession signature from participant $j$). + 8. For $j$ from $1$ to $n$: $E_j$ (the ephemeral public key from participant $j$). + 9. $len(ext)$: The length of the application-specific extension as a little-endian 64-bit unsigned integer. + 10. $ext$: The application-specific extension bytes (may be empty). + + All participants **MUST** produce identical transcripts. Any difference indicates a split-view attack or implementation bug. +2. **Sign Transcript:** Participant $i$ signs the transcript $T$ with their long-term static private key $d_i$, + producing a signature $sig_i$. +3. **Broadcast Signature:** Participant $i$ sends $sig_i$ to the coordinator. +4. **Verify Certificate:** The coordinator broadcasts the set of all signatures ${sig_1, \cdots, sig_n}$ to everyone. + Each participant $i$ verifies every signature $sig_j$ on the transcript $T$ against the public key $P_j$. +5. **Success:** If all signatures are valid, the DKG is successful. The participant stores their secret share $x_i$ and + the group public key $Y$. The collection of $T$ and all $n$ signatures on it is called a "success certificate" and + can be stored for auditing. + +### Application-Specific Extensions + +COCKTAIL-DKG supports an optional application-specific extension that is appended to the transcript before signing. +This allows protocols that build atop COCKTAIL-DKG to ensure all parties agree on some application-defined value. + +**Extension Format:** + +The extension is appended to the transcript as: + +- $len(ext)$: The length of the extension as a little-endian 64-bit unsigned integer. +- $ext$: The extension bytes (may be empty; when empty, $len(ext) = 0$). + +**Recommended Use Cases:** + +Applications **MAY** use the extension field for different purposes. Two common patterns are: + +1. **Consensus on External State:** Ensure all parties commit to some agreed-upon value (e.g., a Merkle tree root, + a configuration hash, or a session identifier). The protocol only succeeds if everyone provides the same extension + value. This is useful when the DKG must be bound to external application state. + +2. **Collective Randomness Derivation:** All participants hash together independently-contributed random data via the + extension. If the transcript hashes all match, the participants can derive a shared random value that no single + party could have predicted or biased. This is useful for protocols that need distributed randomness as a byproduct + of the DKG. + +These use cases are not compatible with each other—an application must choose one approach. The extension semantics +are entirely application-defined; COCKTAIL-DKG simply ensures that all participants agreed on the extension value +before the protocol completes. + +**Deriving Extensions from Payloads:** + +When applications use the optional payloads in the encryption step (see [Optional Application Payloads](#optional-application-payloads)), +they **MAY** derive the extension from those payloads to ensure all participants agree on the exchanged data. A recommended +approach is to compute a hash of the participant-ordered payloads: + +1. For each participant $j$ from $1$ to $n$, collect their payload contributions. +2. Compute the extension as: + $ext = H(n \parallel len(payload_1) \parallel payload_1 \parallel \cdots \parallel len(payload_n) \parallel payload_n)$ + Where $n$ is encoded as a little-endian 64-bit unsigned integer and each $len(payload_j)$ is a little-endian 64-bit unsigned integer. + +This ensures that any disagreement about the payloads will result in different transcripts and failed signature verification. + +**Security Note:** + +The extension is included in the transcript and thus covered by all participants' signatures. This provides the same +consensus guarantee as the rest of the transcript: if any participant has a different extension value, the signatures +will not verify and the protocol will abort safely. + +## Error Handling + +A robust implementation of COCKTAIL-DKG **MUST** handle a variety of error conditions. Errors can arise from malformed +messages, invalid cryptographic values, or protocol violations. The ability to distinguish between these cases is +crucial for security and usability. + +### Error Categories + +We recommend that implementations define distinct error types to represent different failure modes. This allows +applications to react appropriately, whether by retrying an operation, aborting the protocol, or initiating a +blame-finding procedure. + +The following categories cover the most common errors: + +1. **Parsing and Deserialization Errors**: + - **Description**: These errors occur when a received message does not conform to the byte-based format specified in + the `Message Formats` section. This could be due to an incorrect length, an invalid point or scalar encoding, or + other structural defects. + - **Action**: An honest participant should never produce a malformed message. If a participant receives such a + message, it should be treated as evidence of a bug in the sender's implementation or a deliberate protocol + violation. The protocol **MUST** be aborted. If the sender can be identified (e.g., in $msg_{1|i}$), they should + be flagged as faulty. +2. **Cryptographic Verification Failures**: + - **Description**: These errors occur when a cryptographic check fails. This category includes: + - An invalid Proof-of-Possession ($PoP_j$). + - A VSS share verification failure ($s_{j,i}G \ne \sum_{i}^{k} C_{j,k}$). + - A failed decryption of an encrypted share ($c_{j,i}$). + - An invalid signature on the final transcript ($sig_j$). + - **Action**: A cryptographic failure is a clear indication that a participant is behaving maliciously or has a + serious bug. The protocol **MUST** be aborted immediately. The participant who sent the invalid data **MUST** be + identified and blamed. For example, if $PoP_j$ is invalid, participant $j$ is at fault. +3. **Protocol Logic Errors**: + - **Description**: These errors relate to violations of the protocol's state machine or rules, such as: + - A participant sending a message at the wrong time. + - The coordinator broadcasting an inconsistent `msg2` (e.g., omitting a participant's data). + - **Action**: These errors indicate a faulty participant or coordinator. The protocol **MUST** be aborted. + If the error can be traced to a specific participant, they should be blamed. + +### Blame-Finding and Reporting + +A key feature of a secure DKG protocol is the ability to identify malicious participants. When an error occurs, the +protocol **MUST** not only terminate but also output information about who caused the failure. This is crucial for +accountability in decentralized systems. + +- **Coordinator's Role**: The coordinator is in a unique position to detect errors in $msg_{1|i}$ messages. If the + coordinator receives a malformed message or one with an invalid PoP from participant $i$, it **MUST** immediately abort + the protocol and broadcast a blame message identifying participant $i$ as faulty, including the malformed message as + evidence. +- **Participant's Role and Public Proofs**: Participants **MUST** validate all data they receive. + - If participant $i$ fails to verify a share $s_{j,i}$ from participant $j$, it **MUST** abort. To prove that $j$ + is cheating, participant $i$ can broadcast a blame message containing $j$'s index and the invalid share $s_{j,i}$. + Any third party can then verify this claim by checking the VSS equation + ($s_{j,i} \cdot B = \sum_{k=0}^{t-1} i^k \cdot C_{j,k}$) + using the public commitment $C_j$. A failure of this equation is a public and undeniable proof of $j$'s misbehavior. + - Similarly, if a PoP from participant $j$ is invalid, this is also a publicly verifiable proof of misbehavior, + since the PoP, the message it signs, and the public key $C_{j,0}$ are all public. +- **Resolving Disputes and Coordinator Malice**: The final certification round is essential for detecting a malicious + coordinator and resolving disputes. + - **Split-View Attack**: If a coordinator sends different messages to different participants, their final + transcripts $T$ will differ. In Round 3, when participants exchange signatures, these signatures will not verify + on the inconsistent transcripts. + An honest participant $i$ who fails to verify $sig_j$ can initiate a dispute by broadcasting their $T_i$ and $sig_i$. + - If participant $j$ responds with a different $T_j$ and a valid $sig_j$ over it, the discrepancy between $T_i$ and + $T_j$ serves as undeniable proof of a split-view attack by the coordinator. + - **Framing a Participant**: If a coordinator attempts to frame participant $j$ by modifying their $msg_{1|j}$ before + broadcasting it, the PoP will fail for all other participants, who will blame $j$. However, in Round 3, + participant $j$ will construct a transcript based on their *original*, valid $msg_{1|j}$. Their signature $sig_j$ + will be valid for their transcript but not for the altered transcript held by others. When this signature + mismatch is detected, participant $j$ can reveal their original $msg_{1|j}$ (with its valid PoP) and their + transcript signature. This evidence proves their honesty and definitively identifies the coordinator as malicious. + +## Ciphersuites + +This section describes the ciphersuites that are specified for use with COCKTAIL. The current scope includes both +[RFC 9591](https://www.rfc-editor.org/rfc/rfc9591.html#name-ciphersuites) and [ZIP-0312](https://zips.z.cash/zip-0312#ciphersuites). + +Each ciphersuite defines a key derivation function $H6(x, pk1, pk2, extra)$, an encryption method $Enc(plain, key, iv)$, +and a decryption method $Dec(cipher, key, iv)$. Ciphersuites **SHOULD** use an AEAD mode for $Enc()$ and $Dec()$. + +The choice of AEAD is guided by the principle of preventing nonce reuse. For ciphersuites where the underlying hash +function provides a large enough output (at least 480 bits; e.g., SHA-512), we can derive both the 256-bit key and a +24-byte (192-bit) nonce (which is long enough to be generated randomly with a negligible chance of collision). + +For ciphersuites based on SHA-256, where the output is smaller than 480 bits, we use $H6()$ to derive an Input Keying +Material (IKM), which is then used with the underlying hash function with two different prefixes. For the key, we use +$Sha256("COCKTAIL-derive-key" \parallel ikm)$. For the nonce, we use the most significant 192 bits of +$Sha256("COCKTAIL-derive-nonce" \parallel ikm)$. The AEAD of choice for the SHA-256 based ciphersuites we specify here is +[XAES-256-GCM](https://github.com/C2SP/C2SP/blob/main/XAES-256-GCM.md). + +The $H6$ function is used to derive a symmetric key and nonce from ECDH shared secrets. Unless otherwise specified, +it is defined as: + +$H6(x, E, P_s, P_r, extra) = CH(prefix \parallel x \parallel E \parallel P_s \parallel P_r \parallel len(extra) \parallel extra)$ + +- $CH$: The specified cryptographic hash function (e.g., SHA-512, BLAKE2b-512). +- $prefix$: A ciphersuite-specific byte string (e.g., `COCKTAIL-DKG-Ed25519-SHA512-H6`). +- $x$: The concatenation of two ECDH shared secrets: $S^{(e)}$ (ephemeral-to-static) and $S^{(d)}$ (static-to-static). +- $E$: The sender's ephemeral public key. +- $P_s$: The sender's static public key. +- $P_r$: The recipient's static public key. +- $len(extra)$: The length of the `extra` data, encoded as a little-endian 64-bit integer. +- $extra$: Additional context-specific data. + +The output of $H6$ is used to derive the key and nonce for the AEAD. + +### Ciphersuite Definitions + +- **COCKTAIL(Ed25519, SHA-512)** + - **`H6` Hash**: SHA-512 + - **`H6` Prefix**: `COCKTAIL-DKG-Ed25519-SHA512-H6` + - **Key/Nonce**: The first 32 bytes of the `H6` output are the key, and the next 24 bytes are the nonce. + - **AEAD**: XChaCha20-Poly1305 + +- **COCKTAIL(Ristretto255, SHA-512)** + - **`H6` Hash**: SHA-512 + - **`H6` Prefix**: `COCKTAIL-DKG-Ristretto255-SHA512-H6` + - **Key/Nonce**: The first 32 bytes of the `H6` output are the key, and the next 24 bytes are the nonce. + - **AEAD**: XChaCha20-Poly1305 + +- **COCKTAIL(Ed448, SHAKE256)** + - **`H6` Hash**: SHAKE256 (with a 56-byte output) + - **`H6` Prefix**: `COCKTAIL-DKG-Ed448-SHAKE256-H6` + - **Key/Nonce**: The first 32 bytes of the `H6` output are the key, and the next 24 bytes are the nonce. + - **AEAD**: XChaCha20-Poly1305 + +- **COCKTAIL(P-256, SHA-256)** + - **`H6` Hash**: SHA-256 + - **`H6` Prefix**: `COCKTAIL-DKG-P256-SHA256-H6` + - **Key/Nonce**: The output of `H6` is used as an input key material. + - The key shall the SHA256 of the string `COCKTAIL-derive-key` followed by the IKM. + - The nonce shall the first 24 bytes SHA256 of the string `COCKTAIL-derive-nonce` followed by the IKM. + - **AEAD**: [XAES-256-GCM](https://github.com/C2SP/C2SP/blob/main/XAES-256-GCM.md) + +- **COCKTAIL(secp256k1, SHA-256)** + - **Note**: This ciphersuite is **NOT** backwards-compatible with ChillDKG due to our key derivation including both + ephemeral-static and static-static ECDH, instead of just ephemeral-static (see + [Differences from ChillDKG](#differences-from-chilldkg) below). + - **`H6` Definition**: A BIP-340-style tagged hash with the tag `COCKTAIL-DKG/H6`. + The message is $x \parallel E \parallel P_s \parallel P_r \parallel extra$. + - **Key/Nonce**: The output of `H6` is used as an input key material. + - The key shall the SHA256 of the string `COCKTAIL-derive-key` followed by the IKM. + - The nonce shall the first 24 bytes SHA256 of the string `COCKTAIL-derive-nonce` followed by the IKM. + - **AEAD**: [XAES-256-GCM](https://github.com/C2SP/C2SP/blob/main/XAES-256-GCM.md) + - **Bitcoin Taproot Warning**: When using this ciphersuite for Bitcoin Taproot outputs, applications **MUST** be aware + that a malicious participant could attempt to embed a hidden Taproot script path commitment in the threshold public + key. Applications intending to use the group public key $Y$ as a Taproot output **SHOULD** apply an additional + unspendable script path tweak (as described in ChillDKG) or use the key only for key-path spending with appropriate + safeguards. This consideration is specific to Bitcoin Taproot and does not apply to other uses of this ciphersuite. + +- **COCKTAIL(JubJub, BLAKE2b-512)** + - **Note**: Compatible with [ZIP-0312](https://zips.z.cash/zip-0312#ciphersuites). + - **`H6` Hash**: BLAKE2b-512 (with a 56-byte output) + - **`H6` Prefix**: `COCKTAIL-DKG-JubJub-BLAKE2b-H6` + - **Key/Nonce**: The first 32 bytes of the `H6` output are the key, and the next 24 bytes are the nonce. + - **AEAD**: XChaCha20-Poly1305 + +- **COCKTAIL(Pallas, BLAKE2b-512)** + - **Note**: Compatible with [ZIP-0312](https://zips.z.cash/zip-0312#ciphersuites). + - **`H6` Hash**: BLAKE2b-512 (with a 56-byte output) + - **`H6` Prefix**: `COCKTAIL-DKG-Pallas-BLAKE2b-H6` + - **Key/Nonce**: The first 32 bytes of the `H6` output are the key, and the next 24 bytes are the nonce. + - **AEAD**: XChaCha20-Poly1305 + +### Schnorr Signature Scheme + +COCKTAIL-DKG uses a simple Schnorr signature scheme for both the Proof of Possession (PoP) and the transcript +certification in Round 3. The signature scheme is defined as follows: + +#### Schnorr Signature Format + +A signature consists of two components: + +- $R$: A compressed elliptic curve point (the commitment) +- $z$: A scalar (the response) + +The signature is encoded as the concatenation of the compressed point encoding of $R$ followed by the scalar encoding +of $z$. The total signature size is the point size plus the scalar size (e.g., 64 bytes for Ristretto255/Ed25519, 65 +bytes for P-256/secp256k1). + +#### Schnorr Sign Algorithm (Prove Possession) + +Given a secret key $sk$ (a scalar) and a message $m$ (a byte string): + +1. Compute the public key: $pk = sk * B$ +2. Compute a deterministic nonce: $k = H(sk \parallel m)$ reduced to a scalar +3. Compute the commitment: $R = k * B$ +4. Compute the challenge: $c = H(R \parallel pk \parallel m)$ reduced to a scalar +5. Compute the response: $z = k + c * sk$ +6. Return the signature $(R, z)$ + +Where: + +- $H$ is the ciphersuite's hash function (SHA-512 for Ed25519/Ristretto255, SHA-256 for P-256/secp256k1) +- The hash output is reduced to a scalar using wide reduction (mod $q$) for 64-byte hashes, or direct reduction for 32-byte hashes +- $B$ is the generator point of the elliptic curve group + +#### Schnorr Verify Algorithm (Verify Proof of Possession) + +Given a signature $(R, z)$, a public key $pk$, and a message $m$: + +1. Compute the challenge: $c = H(R \parallel pk \parallel m)$ reduced to a scalar +2. Compute the left-hand side: $lhs = z * B$ +3. Compute the right-hand side: $rhs = R + c * pk$ +4. Return `true` if $lhs = rhs$, otherwise return `false` + +#### Schnorr Hash-to-Scalar Reduction + +For ciphersuites using SHA-512 (Ed25519, Ristretto255), the 64-byte hash output is reduced to a scalar using +wide modular reduction (reducing a 512-bit integer modulo the group order $q$). + +For ciphersuites using SHA-256 (P-256, secp256k1), the 32-byte hash output is reduced to a scalar by interpreting +the hash as a big-endian integer and reducing modulo the group order $q$. + +#### Schnorr Security Notes + +- The deterministic nonce generation ($k = H(sk \parallel m)$) prevents nonce-reuse attacks that would leak the + secret key. +- The challenge includes $R$, $pk$, and the full message, binding the signature to all inputs. +- This signature scheme is NOT the same as EdDSA (RFC 8032), ECDSA, or BIP-340. Implementations **MUST** use the + scheme specified here to ensure interoperability with COCKTAIL-DKG. + +## Security Considerations + +- **Coordinator Role**: The coordinator is trusted for availability and to correctly broadcast messages, but is not + trusted with the confidentiality of any secret data. A malicious coordinator can disrupt the protocol by refusing to + broadcast messages or by sending different messages to different participants, but it cannot learn the secret shares + or the final group secret key. The final certification round (Round 3) is designed to detect such split-view attacks. +- **Proof of Possession (PoP)**: The PoP in Round 1 prevents a malicious participant from performing a rogue key attack. + By signing their commitment $C_{i,0}$ with the corresponding secret $a_{i,0}$, each participant proves they actually + know the secret key they are contributing. Without this, an attacker could contribute a public key for which they + don't know the private key, leading to an unusable group key. The PoP message includes the context string (which + contains all participant public keys), the full VSS commitment $C_i$, and the ephemeral key $E_i$. The participant + index $i$ is not explicitly included in the PoP message because it is implicitly bound through the context string + (which includes all $P_j$) and through the position of the message in the broadcast. +- **Verifiable Secret Sharing (VSS)**: Feldman's VSS scheme ensures that even if a participant is malicious and sends + incorrect shares, they will be caught. The VSS verification check in Round 2 (step 3.4) allows each participant to + verify that the share they received is consistent with the public commitment. This prevents a malicious participant + from corrupting the final key. + - Participant IDs ($i$, $j$, etc.) **MUST NOT** be equal to 0 or a multiple of the elliptic curve group order. + Respecting this requirement prevents a [zero share attack](https://www.zkdocs.com/docs/zkdocs/protocol-primitives/verifiable-secret-sharing/). +- **Encryption of Shares**: The use of an AEAD to encrypt the secret shares $s_{i,j}$ is crucial. It provides + confidentiality against an eavesdropper on the communication channel and authenticity to prevent a man-in-the-middle + from tampering with the shares. The encryption key is derived using two ECDH shared secrets: one from the sender's + ephemeral key with the recipient's static key ($S^{(e)}_{i,j} = e_i * P_j$), and one from the sender's static key + with the recipient's static key ($S^{(d)}_{i,j} = d_i * P_j$). This approach provides: + - **Forward secrecy**: Compromise of long-term keys does not reveal past session secrets, due to the ephemeral + component. + - **Robust blame-finding**: If decryption fails, the recipient can prove the sender misbehaved using only public + information. Since both parties can independently compute both ECDH shared secrets (the recipient computes + $d_i * E_j$ and $d_i * P_j$), a third party with access to the sender's public keys $E_j$ and $P_j$ can verify + blame claims without requiring the recipient to reveal their private key. + - **Sender authentication**: The inclusion of the static-to-static ECDH binds the ciphertext to the sender's identity, + preventing an attacker from replaying or modifying ciphertexts without detection. +- **Cofactor Security**: As noted in the [working with curves with small subgroups](#working-with-curves-with-small-subgroups) + section, curves like Ed25519 and Ed448 have small cofactors. It is critical that implementations use prime-order group + abstractions like Ristretto255 and Decaf448 to prevent small subgroup attacks, where an attacker could submit a + low-order point to leak information. +- **Participant Authentication**: Throughout the protocol, participants are authenticated to each other via their + long-term static key pairs. The pairwise ECDH key agreement used to encrypt shares in Round 1 provides deniable + authentication; only the owner of the corresponding static private key can derive the correct symmetric key to decrypt + and verify the secret share. This ensures that participants are communicating with the intended parties. The final + signature on the transcript in Round 3 provides explicit, non-repudiable authentication of each participant's agreement + on the final public state. +- **Transcript Certification**: The final round where all participants sign the public transcript is vital. It ensures + that all honest participants have a consistent view of the entire public state of the DKG. If a malicious coordinator + tried to give different participants different sets of messages, the transcript signatures would not match, and the + protocol would fail safely. This provides a guarantee of explicit consensus. Notably, COCKTAIL-DKG does not require + an honest majority for security: even a single honest participant will detect a split-view attack. The success + certificate (transcript plus all signatures) serves as cryptographic proof that all participants agreed on the same + public state at protocol completion. + +### Working with curves with small subgroups + +Certain elliptic curves used in cryptography are in the so-called Montgomery or Edwards model, picked for particularly +efficient arithmetic. The downside to these curves is that they have an order which factors as $n = [h] * q$ for some +small value $h$ and large prime $q$. If an attacker can select a point $P$ of order $h$ they can potentially leak +partial information about the secret scalars from the output of $[s] P$. (They specifically learn $s \bmod h$). + +Two curves in these families we consider are ed25519 with $h = 8$ and edwards448 with $h = 4$. When these curves are +required, use the safe abstractions (Ristretto255 and Decaf448 respectively) which internally handle cofactor clearing. + +However, for some use cases, ed25519 and edwards448 might be used directly. Here, users MUST ensure all points are in +the prime order subgroup q through proper cofactor clearing. + +In the case that a protocol requires both the abstractions (Ristretto255 and Decaf448) as well as points on the curves +themselves, then the lifted points must have their potential cofactors cleared. This should be done by computing +$P^{\prime} = [1/h] [h] P$ where $P$ is a point in the group abstraction. The point $P^{\prime}$ can then be safely +used on the curve itself as it will either be a point of order q or when P is the point at infinity, then $P^{\prime}$ +will be too. + +### Optional Application Payloads + +COCKTAIL-DKG supports an optional application-defined payload that can be included alongside each secret share in the +encrypted ciphertext. This feature enables applications to derive additional shared secrets during the DKG without +running a separate protocol. + +**Use Cases:** + +- **Backup encryption keys**: Participants can exchange random contributions to derive a shared backup key. +- **Session keys**: Applications can establish pairwise or group session keys for subsequent communication. +- **Application-specific data**: Any data that needs to be securely exchanged between participants during key generation. + +**Payload Format:** + +The plaintext encrypted in each ciphertext $c_{i,j}$ has the format: +$plaintext_{i,j} = s_{i,j} \parallel payload_{i,j}$ + +Where $s_{i,j}$ is the fixed-size secret share (determined by the scalar size of the ciphersuite) and $payload_{i,j}$ +is the variable-length application payload (which may be empty). + +**Payload Commitments:** + +If applications use payloads and need to ensure all participants agree on the payloads exchanged, they **SHOULD** +include commitments to the payloads in the transcript or in application-specific extension data. A recommended +commitment format is: +$commitment = H(len(payload) \parallel payload)$ + +Where $len(payload)$ is the length of the payload encoded as a little-endian 64-bit integer. This format ensures +domain separation between payloads of different lengths. + +**Security Note:** + +The optional payload is encrypted and authenticated by the same AEAD that protects the secret share. However, the +payload is NOT verified against the VSS commitments (only the share portion is). Applications using payloads **MUST** +implement their own verification logic if payload integrity beyond AEAD authentication is required. + +### Differences from ChillDKG + +COCKTAIL-DKG is derived from [ChillDKG](https://github.com/BlockstreamResearch/bip-frost-dkg) but introduces several +important changes that break backwards compatibility: + +#### 1. Key Derivation Uses Both Static and Ephemeral ECDH + +ChillDKG derives encryption keys using only an ephemeral-to-static ECDH: + +$S_{i,j} = e_i * P_j$ + +COCKTAIL-DKG uses both ephemeral-to-static AND static-to-static ECDH: + +$S^{(e)}_{i,j} = e_i * P_j$ and $S^{(d)}_{i,j} = d_i * P_j$ + +**Why this matters:** + +Our approach significantly improves blame-finding when decryption fails. + +With ChillDKG's ephemeral-only approach, if participant $i$ claims that participant $j$'s ciphertext failed to decrypt, +proving this claim requires $i$ to demonstrate they correctly computed the ECDH shared secret. However, since only $j$ +knows the ephemeral secret $e_j$, participant $i$ cannot prove to a third party that they used the correct shared secret +without revealing their own long-term private key $d_i$. + +With COCKTAIL-DKG's approach, the encryption key depends on both parties' long-term public keys, which are +publicly known. A third party can verify that participant $i$ correctly derived the key by checking that: + +- The ephemeral component matches: $d_i * E_j$ (verifiable if $i$ reveals the result) +- The static component matches: This is deterministic from public keys $P_i$ and $P_j$ + +This enables more robust blame attribution without requiring participants to reveal their long-term secrets. + +#### 2. Extended H6 Function + +The H6 key derivation function now includes the sender's static public key $P_s$ in addition to the recipient's +public key $P_r$: $H6(x, E, P_s, P_r, extra)$ instead of $H6(x, E, P_r, extra)$. + +#### 3. Optional Application Payloads + +COCKTAIL-DKG allows optional application-defined data to be included in the encrypted share ciphertexts, which +ChillDKG does not support. + +### Share Recovery + +COCKTAIL-DKG inherits a key feature from ChillDKG: the ability to recover DKG outputs from minimal backup material. +This eliminates the need for participants to store session-specific secrets and simplifies backup procedures. + +#### Recovery Data + +The **recovery data** for a successful DKG session consists of: + +1. **Transcript ($T$):** The canonical byte representation of the protocol transcript, as constructed in Round 3. +2. **Success Certificate:** The collection of all $n$ signatures on the transcript: $sig_1, sig_2, \ldots, sig_n$. + +The recovery data is identical for all participants and contains no confidential information. It can be safely: + +- Stored with untrusted backup providers +- Obtained from any cooperative participant or the coordinator +- Shared publicly without compromising security + +#### Backup Requirements + +A complete backup for any participant $i$ consists of only two components: + +1. **Static Secret Key ($d_i$):** The participant's long-term static private key. +2. **Recovery Data:** The transcript and success certificate from each DKG session the participant joined. + +This is a significant simplification compared to traditional DKG backup schemes, which typically require storing +session-specific secrets for each key generation ceremony. + +#### Recovery Algorithm + +Given the static secret key $d_i$ and the recovery data, a participant can deterministically reconstruct all DKG outputs: + +**Input:** + +- $d_i$: The participant's static secret key. +- $T$: The transcript from a successful DKG session. +- $\{sig_1, \ldots, sig_n\}$: The success certificate. + +**Output:** + +- $x_i$: The participant's secret share. +- $Y$: The group public key. +- $Y_1, \ldots, Y_n$: The public verification shares. + +**Steps:** + +1. **Validate Certificate:** Verify each signature $sig_j$ on the transcript $T$ against the public key $P_j$ extracted + from the transcript. If any signature is invalid, abort with an error. +2. **Extract Parameters:** Parse the transcript to obtain: + - The context string and its length + - The number of participants $n$ and threshold $t$ + - All static public keys $P_1, \ldots, P_n$ + - All VSS commitments $C_1, \ldots, C_n$ + - All Proofs of Possession $PoP_1, \ldots, PoP_n$ + - All ephemeral public keys $E_1, \ldots, E_n$ + - The application-specific extension (if any) +3. **Determine Participant Index:** Find the index $i$ such that $P_i = d_i * B$. If no such index exists, abort. +4. **Reconstruct Encryption Keys:** For each participant $j$ from $1$ to $n$: + 1. Compute the ECDH shared secrets: + - $S^{(e)}_{j,i} = d_i * E_j$ (using the sender's ephemeral key) + - $S^{(d)}_{j,i} = d_i * P_j$ (using the sender's static key) + 2. Derive the symmetric key $k_{j,i}$ and nonce $iv_{j,i}$ using H6, following the same derivation as Round 1. +5. **Obtain Ciphertexts:** The recovering participant must request the ciphertexts $c_{j,i}$ from other participants + or the coordinator. This cooperative step ensures that recovery requires active participation from the group, + preventing unilateral recovery from backup alone. +6. **Decrypt and Verify Shares:** For each participant $j$, decrypt $c_{j,i}$ using $k_{j,i}$ and $iv_{j,i}$ to obtain + $s_{j,i}$. Verify each share against the VSS commitment: $s_{j,i} * B = \sum_{k=0}^{t-1} i^k \cdot C_{j,k}$. +7. **Compute Final Share:** $x_i = \sum_{j=1}^{n} s_{j,i}$. +8. **Compute Public Outputs:** + - Group public key: $Y = \sum_{j=1}^{n} C_{j,0}$. + - Public verification shares: For each participant $m$, $Y_m = \sum_{j=1}^{n} \sum_{k=0}^{t-1} m^k \cdot C_{j,k}$. + +#### Privacy Considerations + +Users should be aware that recovery data reveals: + +- Session parameters (threshold $t$ and number of participants $n$) +- All participants' static public keys ($P_1, \ldots, P_n$) +- The group public key ($Y$) and public verification shares +- The application-specific extension (if used) + +This information may create correlations between participants and their threshold setup. For privacy-sensitive +applications, the recovery data **SHOULD** be encrypted before storage with untrusted providers. A recommended approach +is to derive an encryption key from the static secret key using the ciphersuite's hash function: + +$$k_{backup} = H(\text{"COCKTAIL-BACKUP-KEY"} \parallel d_i)$$ + +#### Security Considerations for Recovery + +1. **Timing of Key Usage:** Participants **MUST NOT** use the group public key $Y$ until they have confirmed that all + participants possess the recovery data. A catastrophic scenario could otherwise occur: one participant deems the + session successful and begins using the threshold key, but they are the only one with recovery data. If that + participant's storage fails, the key becomes unrecoverable and any data or operations depending on it are lost. + +2. **Explicit Confirmations:** Before using a threshold public key, applications **SHOULD** obtain explicit confirmations + from all participants that they have successfully stored the recovery data. + +3. **Recovery Without Confirmations:** If a participant receives recovery data after a session but cannot verify other + participants' completion, they **MAY** still recover their outputs for future signing participation. However, they + **SHOULD NOT** rely on that threshold key for critical operations until all participants have confirmed storage. + +## Alternatives + +- **Trusted Dealer**: Simpler but introduces a single point of failure. COCKTAIL-DKG is for scenarios where a trusted + dealer is unavailable or undesirable. +- **Original FROST DKG**: Requires pre-established secure channels between all participant pairs. COCKTAIL-DKG builds + in its own encryption layer (EncPedPop), making it usable over insecure channels. + +## Appendix A: Pseudocode + +This appendix provides a series of algorithms that describe the COCKTAIL-DKG protocol in a high-level, +implementation-agnostic manner. The notation is meant to be illustrative rather than strictly formal. + +### Algorithm 1: Polynomial Generation and VSS Commitment + +**Input:** + +- `t`: The threshold parameter. +- `G`: The generator point of the elliptic curve group. +- `q`: The order of the elliptic curve group. + +**Output:** + +- `f`: A secret polynomial of degree `t-1`. +- `C`: A vector of public commitments to the polynomial coefficients. + +**Steps:** + +1. Initialize an empty polynomial f. +2. Initialize an empty list of commitments C. +3. For k from 0 to t-1: + 1. Generate a random scalar a_k in the range [0, q-1]. + 2. Add the term a_k * x^k to the polynomial f. + 3. Compute the commitment C_k = a_k * B. + 4. Append C_k to the list C. +4. Return (f, C). + +**Pseudocode:** + +```python +function GeneratePolynomial(t, G, q): + f = new Polynomial() + C = new List() + + for k from 0 to t-1: + a_k = RandomScalar(q) + f.add_coefficient(a_k) + + C_k = a_k * B + C.append(C_k) + + return (f, C) +``` + +--- + +### Algorithm 2: Secret Share Evaluation + +**Input:** + +- `f`: A secret polynomial. +- `j`: The index of the recipient participant. + +**Output:** + +- `s_j`: The secret share for participant `j`. + +**Steps:** + +1. Evaluate the polynomial f at the point x = j. +2. Let the result be s_j = f(j). +3. Return s_j. + +**Pseudocode:** + +```python +function EvaluatePolynomial(f, j): + result = 0 + # iterate from highest degree to lowest + for a in reverse(f.coefficients): + result = result * j + a + return result +``` + +--- + +### Algorithm 3: Secret Share Verification + +**Input:** + +- `s_j`: A secret share received from another participant. +- `j`: The index of the recipient participant (i.e., self). +- `C`: The list of VSS commitments from the sender. +- `G`: The generator point of the elliptic curve group. +- `t`: The threshold parameter. + +**Output:** + +- `valid`: A boolean indicating if the share is valid. + +**Steps:** + +1. Compute the public verification point from the share: V = s_j * B. +2. Compute the expected verification point from the commitments: + 1. Initialize an identity point R. + 2. For k from 0 to t-1: + 1. Compute term = (j^k) * C_k. + 2. Add term to R: R = R + term. +3. Compare the points: valid = (V == R). +4. Return valid. + +**Pseudocode:** + +```python +function VerifyShare(s_ji, i, C_j, G, t): + # V = s_{j,i} * B + V = s_ji * B + + # R = sum_{k=0}^{t-1} (i^k * C_{j,k}) + R = IdentityPoint() + for k from 0 to t-1: + i_k = power(i, k) + C_jk = C_j[k] + term = i_k * C_jk + R = R + term + + return V == R +``` + +### Helper: Key and Nonce Derivation + +This helper abstracts the ciphersuite-dependent key derivation logic used in Rounds 1 and 2. + +```python +function DeriveKeyAndNonce(cs, ecdh_secret, E, P_sender, P_recipient, context): + if cs.HashFunction.OutputSizeInBytes() >= 56: + tmp = H6(ecdh_secret, E, P_sender, P_recipient, context) + return (tmp[0:32], tmp[32:56]) + else: + ikm = H6(ecdh_secret, E, P_sender, P_recipient, context) + key = H("COCKTAIL-derive-key" || ikm) + nonce = H("COCKTAIL-derive-nonce" || ikm)[0:24] + return (key, nonce) +``` + +### Algorithm 4: COCKTAIL-DKG Round 1 (Participant `i`) + +**Input:** + +- `i`: The index of the current participant. +- `t`: The threshold parameter. +- `n`: The total number of participants. +- `cs`: The ciphersuite (providing Group, Hash, AEAD). +- `context`: A session-specific context string. +- `d_i`: The static private key of participant `i`. +- `P_i`: The static public key of participant `i`. +- `P_j`: The static public key of every other participant `j`. +- `payloads`: (Optional) A map from participant index `j` to application-defined payload bytes. + +**Output:** + +- `msg1_i`: The Round 1 message to be broadcast. +- `internal_state`: Values to be stored for the next round (e.g., polynomial, ephemeral key). + +**Steps:** + +1. Generate Polynomial and VSS Commitment: + 1. (f_i, C_i) = Algorithm1(t, cs.Group.G, cs.Group.q) +2. Generate Ephemeral Key: + 1. e_i = cs.Group.RandomScalar() + 2. E_i = e_i * cs.Group.G +3. Compute Proof of Possession (PoP): + 1. Let a_i_0 be the constant term of f_i. + 2. Let C_i_0 be the first commitment in C_i. + 3. PoP_i = Sign(private_key=a_i_0, message=context || C_i || E_i) (using a scheme compatible with C_i_0). +4. Compute and Encrypt Shares: + 1. Initialize an empty list encrypted_shares. + 2. For j from 1 to n: + 1. s_i_j = Algorithm2(f_i, j). + 2. Derive ECDH key using both ephemeral and static secrets: + - ecdh_ephemeral = e_i * P_j + - ecdh_static = d_i * P_j + - ecdh_secret = ecdh_ephemeral || ecdh_static + - If the hash function used has an output size fewer than 480 bits, use the output + of H6 as an Input Keying Material to two more hash function calls, which will be used + to derive a nonce and key. (Here, H() refers to, e.g., sha256): + - ikm = H6(ecdh_secret, E_i, P_i, P_j, context) + - key = H("COCKTAIL-derive-key" || ikm) + - nonce = H("COCKTAIL-derive-nonce" || ikm)\[0:24] + - If the hash function used has an output size greater than equal to 480 bits, just split them: + - tmp = H6(ecdh_secret, E_i, P_i, P_j, context) + - key = tmp[0:32] (32 bytes) + - nonce = tmp[32:56] (24 bytes) + 3. Prepare plaintext with optional payload: + - payload_i_j = payloads[j] if j in payloads else empty bytes + - plaintext = s_i_j || payload_i_j + 4. Encrypt plaintext: + - c_i_j = Encrypt(key, nonce, plaintext) + 5. Append c_i_j to encrypted_shares. +5. Construct Message: + 1. msg1_i = (C_i, PoP_i, E_i, encrypted_shares) +6. Store State: + 1. internal_state = (f_i, e_i) +7. Return (msg1_i, internal_state). + +**Pseudocode:** + +```python +function Round1(i, t, n, cs, context, d_i, P_i, AllPublicKeys, payloads={}): + (f_i, C_i) = GeneratePolynomial(t, cs.Group.G, cs.Group.q) + a_i0 = f_i.coefficient(0) + e_i = cs.Group.RandomScalar() + E_i = e_i * cs.Group.G + PoP_i = Sign(private_key=a_i0, message=context || C_i || E_i) + + encrypted_shares = new List() + for j from 1 to n: + s_ij = EvaluatePolynomial(f_i, j) + P_j = AllPublicKeys[j] + ecdh_secret = (e_i * P_j) || (d_i * P_j) + (key, nonce) = DeriveKeyAndNonce(cs, ecdh_secret, E_i, P_i, P_j, context) + payload_ij = payloads.get(j, empty_bytes) + c_ij = Encrypt(key, nonce, s_ij || payload_ij) + encrypted_shares.append(c_ij) + + msg1_i = new Round1Message(C_i, PoP_i, E_i, encrypted_shares) + internal_state = new State(f_i, e_i) + return (msg1_i, internal_state) +``` + +### Algorithm 5: COCKTAIL-DKG Round 2 (Participant `i`) + +**Input:** + +- `i`: The index of the current participant. +- `all_msg1s`: A list of all Round 1 messages from all participants. +- `internal_state`: The state saved from Round 1 (`f_i`, `e_i`). +- `d_i`: The static private key of participant `i`. +- `P_i`: The static public key of participant `i`. +- `AllPublicKeys`: The static public keys of all participants. +- `cs`: The ciphersuite. +- `context`: The session-specific context string. + +**Output:** + +- `x_i`: The final secret share for participant `i`. +- `Y`: The group public key. +- `Y_i`: The public verification share for participant `i`. +- `received_payloads`: A map from participant index `j` to the received payload bytes (may be empty). +- `transcript_data`: Public data needed for Round 3. + +**Steps:** + +1. Initialize an empty list received_shares. +2. Initialize an empty map received_payloads. +3. Process messages from each participant j: + 1. For j from 1 to n: + 1. Parse (C_j, PoP_j, E_j, encrypted_shares_j) from msg1_j. + 2. Verify PoP: + - valid_pop = Verify(public_key=C_j_0, signature=PoP_j, message=context || C_j || E_j) + - If valid_pop is false, abort and blame participant j. + 3. Decrypt Plaintext: + - Let c_j_i be the encrypted ciphertext from j for i. + - Let P_j = AllPublicKeys\[j\]. + - Derive ECDH key using both ephemeral and static secrets: + - ecdh_ephemeral = d_i * E_j + - ecdh_static = d_i * P_j + - ecdh_secret = ecdh_ephemeral || ecdh_static + - If the hash function used has an output size fewer than 480 bits, use the output + of H6 as an Input Keying Material to two more hash function calls, which will be used + to derive a nonce and key. (Here, H() refers to, e.g., sha256): + - ikm = H6(ecdh_secret, E_j, P_j, P_i, context) + - key = H("COCKTAIL-derive-key" || ikm) + - nonce = H("COCKTAIL-derive-nonce" || ikm)\[0:24] + - If the hash function used has an output size greater than equal to 480 bits, just split them: + - tmp = H6(ecdh_secret, E_j, P_j, P_i, context) + - key = tmp\[0:32\] (32 bytes) + - nonce = tmp\[32:56\] (24 bytes) + - Decrypt: + - plaintext = Decrypt(key, nonce, ciphertext=c_j_i) + - If decryption fails, abort and blame participant j. + 4. Parse Plaintext: + - s_j_i = plaintext\[0:scalar_size\] (the secret share) + - payload_j_i = plaintext\[scalar_size:\] (any remaining bytes are the optional payload) + - received_payloads\[j\] = payload_j_i + 5. Verify Share: + - valid_share = Algorithm3(s_j_i, i, C_j, cs.Group.G, t) + - If valid_share is false, abort and blame participant j. + 6. Add s_j_i to received_shares. +4. Compute Final Keys: + 1. x_i = sum(received_shares) (scalar addition). + 2. Y = sum(C_j_0 for all j) (point addition). + 3. Compute Verification Share Y_i: + 1. Initialize Y_i to the identity point. + 2. For k from 0 to t-1: + - C_agg_k = sum(C_j_k for all j) (point addition). + - term = (i^k) * C_agg_k + - Y_i = Y_i + term + 4. Final Check: + - If x_i * cs.Group.G != Y_i, abort (protocol failure). +5. Prepare for Round 3: + 1. transcript_data = (all_msg1s, context, all_static_public_keys) +6. Return (x_i, Y, Y_i, received_payloads, transcript_data). + +**Pseudocode:** + +```python +function Round2(i, all_msg1s, internal_state, d_i, P_i, AllPublicKeys, cs, context): + received_shares = new List() + received_payloads = new Map() + + for j from 1 to n: + msg1_j = all_msg1s[j] + C_j, PoP_j, E_j = msg1_j.C, msg1_j.PoP, msg1_j.E + P_j = AllPublicKeys[j] + + if len(C_j) != t: + abort("Invalid commitment length", j) + if not Verify(public_key=C_j[0], signature=PoP_j, message=context || C_j || E_j): + abort("Invalid PoP", j) + + c_ji = msg1_j.encrypted_shares[i] + ecdh_secret = (d_i * E_j) || (d_i * P_j) + (key, nonce) = DeriveKeyAndNonce(cs, ecdh_secret, E_j, P_j, P_i, context) + plaintext = Decrypt(key, nonce, ciphertext=c_ji) + if plaintext is null: + abort("Decryption failed", j) + + s_ji = plaintext[0:scalar_size] + received_payloads[j] = plaintext[scalar_size:] + + if not VerifyShare(s_ji, i, C_j, cs.Group.G, t): + abort("Invalid share", j) + received_shares.append(s_ji) + + x_i = sum(received_shares) + Y = sum(all_msg1s[j].C[0] for j in 1..n) + Y_i = IdentityPoint() + for k from 0 to t-1: + C_agg_k = sum(all_msg1s[j].C[k] for j in 1..n) + Y_i = Y_i + (power(i, k) * C_agg_k) + + if (x_i * cs.Group.G) != Y_i: + abort("Final check failed") + + transcript_data = new TranscriptData(all_msg1s, context, AllPublicKeys) + return (x_i, Y, Y_i, received_payloads, transcript_data) +``` + +### Algorithm 6: COCKTAIL-DKG Round 3 (Participant `i`) + +**Input:** + +- `i`: The index of the current participant. +- `d_i`: The static private key of participant `i`. +- `P_j`: The static public key of every other participant `j`. +- `transcript_data`: The public data from Round 2. + The transcript includes: + - len(context) as uint64_le, context bytes + - n as uint32_le, t as uint32_le + - All static public keys P_j + - All VSS commitments C_j + - All PoP signatures PoP_j + - All ephemeral public keys E_j +- `extension`: (Optional) Application-specific extension bytes (defaults to empty). + +**Output:** + +- `success`: A boolean indicating the protocol completed successfully. + +**Steps:** + +1. Construct Transcript: + 1. T = CanonicalEncode(transcript_data, extension) +2. Sign Transcript: + 1. sig_i = Sign(private_key=d_i, message=T) +3. Broadcast and Receive Signatures: + 1. Send sig_i to the coordinator. + 2. Receive all_signatures from the coordinator. +4. Verify All Signatures: + 1. For j from 1 to n: + 1. Let sig_j be the signature from participant j. + 2. valid_sig = Verify(public_key=P_j, signature=sig_j, message=T) + 3. If valid_sig is false, abort and blame participant j. +5. Success: + 1. success = true +6. Return success. + +**Pseudocode:** + +```python +function Round3(i, d_i, AllPublicKeys, transcript_data, extension=empty_bytes): + T = CanonicalEncode(transcript_data, extension) + sig_i = Sign(private_key=d_i, message=T) + all_signatures = broadcast_and_receive(sig_i) + + for j from 1 to n: + if not Verify(public_key=AllPublicKeys[j], signature=all_signatures[j], message=T): + abort("Invalid transcript signature", j) + + return true + + +function CanonicalEncode(transcript_data, extension): + T = empty_bytes + T = T || uint64_le(len(transcript_data.context)) + T = T || transcript_data.context + T = T || uint32_le(transcript_data.n) + T = T || uint32_le(transcript_data.t) + for j from 1 to n: + T = T || transcript_data.static_public_keys[j] + for j from 1 to n: + T = T || transcript_data.vss_commitments[j] + for j from 1 to n: + T = T || transcript_data.pop_signatures[j] + for j from 1 to n: + T = T || transcript_data.ephemeral_public_keys[j] + T = T || uint64_le(len(extension)) + T = T || extension + return T +``` + +## Appendix B: Test Vectors + +This section provides test vectors for various threshold configurations (2-of-3, 3-of-5, and 7-of-14) across all +supported ciphersuites. The vectors were generated deterministically using a seed derived from the authors' names: + +``` +seed = SHA256("Daniel Bourdrez,Soatok Dreamseeker,Tjaden Hess") + = b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68 +``` + +### Transparent Derivation Scheme + +All secret values are derived using a labeled hash with ciphersuite and threshold domain separation: + +```python +derived_bytes = H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label) +``` + +Where: + +- `H` is the ciphersuite's hash function (e.g., SHA-512 for Ristretto255, SHA-256 for P-256) +- `ciphersuite_id` is the ciphersuite identifier string (e.g., "COCKTAIL(Ristretto255, SHA-512)") +- `t` is the threshold, encoded as a little-endian 32-bit unsigned integer +- `n` is the number of participants, encoded as a little-endian 32-bit unsigned integer +- `label` is a human-readable ASCII string identifying the value being derived + +#### Labels + +| Value | Label Format | Example | +|-------|-------------|---------| +| Static secret key for participant i | `static_secret_key_{i}` | `static_secret_key_1` | +| Round 1 RNG stream for participant i | `round1_participant_{i}` | `round1_participant_1` | +| Payload for participant i | `payload_{i}` | `payload_1` | + +#### Scalar Reduction + +For ciphersuites with 32-byte scalars and SHA-256 hash (P-256, secp256k1): + +- The 32-byte hash output is reduced modulo the group order + +For ciphersuites with 64-byte hash output (SHA-512, SHAKE256, BLAKE2b-512): + +- Wide reduction is used (64 bytes reduced modulo the group order) + +This allows any developer to independently reproduce the test vectors by: + +1. Computing `H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label)` for each value +2. Reducing the hash output to a scalar using the appropriate method + +#### Context String Format + +The context string for test vectors follows the pattern: +``` +"COCKTAIL-DKG-TEST-VECTOR-{t}-OF-{n}" +``` + +For example: + +- 2-of-3: `"COCKTAIL-DKG-TEST-VECTOR-2-OF-3"` (hex: `434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33`) +- 3-of-5: `"COCKTAIL-DKG-TEST-VECTOR-3-OF-5"` (hex: `434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35`) +- 7-of-14: `"COCKTAIL-DKG-TEST-VECTOR-7-OF-14"` (hex: `434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134`) + +### Test Vector Types + +Each ciphersuite includes the following test vector types: + +1. **Basic vectors** (2-of-3, 3-of-5, 7-of-14): Standard DKG execution with empty extension. +2. **Payload extension vector** (2-of-3): Each participant includes a seed-derived payload with their encrypted shares. + The extension is computed as a hash of the participant-ordered payloads: + + ```text + ext = H(uint64_le(n) || uint64_le(len(payload_1)) || payload_1 || ... || uint64_le(len(payload_n)) || payload_n) + ``` + +3. **Recovery vectors** (2-of-3): Each 2-of-3 configuration includes recovery test data for participant 1. + The recovery data contains: + - The ciphertexts $c_{j,1}$ from each participant $j$ to participant 1 + - The expected recovered secret share $x_1$ + - The expected recovered verification share $Y_1$ + + These values enable implementers to verify their recovery implementation produces correct outputs when + decrypting ciphertexts using participant 1's static secret key and the transcript from the DKG session. + +Full test vectors in JSON format are also available in [CCTV](https://github.com/C2SP/CCTV/tree/main/cocktail-dkg). + +The following sections provide test vectors for 2-of-3, 3-of-5, and 7-of-14 threshold configurations for each +ciphersuite. + +### COCKTAIL(Ristretto255, SHA-512) + +#### 2-of-3 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `8232337dffa583f214e2ead7f19c37b482f77171194ed6984a715353e086d20e` | `e86e416c45160b32c774ebac802906548d94b3327517178c3c743226dd594d32` | +| 2 | `f7b358f26668f0733363b309c435bc16f7670ec5850e4860c5d25e049e7d060d` | `c003305ceb27d887d9391f85138fc34edae9c963951a4e9c950bed8509ba2b5e` | +| 3 | `fc2df6b164cac912a8c2d294b528f5e3261f1724d510f9fd1c2bae5e76308d0b` | `e4dad4d96d6e507ac59aa539a42c8185618b51941f4497af246cfaa9d1912b18` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304` | `5e130c137d31a445d1b8df391b41db0dbf6a9e13649abb40d68d3fa955eca22d` | +| 2 | `7db7ccef4df8fb157766082728cd2f072c0ec3af6d352a3d0af49919daf9950b` | `2c9a0c7d2a8e3c37c7b1ebb5d40bad2e9127151ad160a8b7d0782482fd790007` | +| 3 | `04e3c4216570bdbdf8f4006a6f5b279cdefea07997f862e3eb71320ebaccf802` | `b434b345762decb04e5d9937cc5aee03b828808ea8d5500ea7c06c684712e143` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `688801fc10825c8c317a69bf7720f5a1e9deda663658dcd8d49c75fae3c8ff24d0e8cbbee95e3b9d85a48c512863a3d2f484c572ff2229c1e9bb70ab9aea6609` + +#### Final Output + +- **Group Public Key**: `0a1592f555f20d3a3b3c7bc032ebe4b46cb2870da141404873e5fc8d4136120f` + +#### Recovery (Participant 1) + +| Field | Value | +|-------|-------| +| Ciphertext from P1 | `9123460b09df36e1e8b23c5ab8716568874481343bb647109941484c4a0b77243e9057ea3e6e39b394f3e97abd09e407` | +| Ciphertext from P2 | `5f4432d0349118d57dd893d08094fe9732574887ae1f6ad0c723c5ec95a5a25973b7e974f221667f86547833f62abfe4` | +| Ciphertext from P3 | `7c72d167a3a1ae7a7d1afb3970a16e7433af7a9a9d17e7ba1f1dae334889b989dcb9fae5dd17d70952953d03858f1b98` | +| Recovered Secret Share | `09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304` | +| Recovered Verification Share | `5e130c137d31a445d1b8df391b41db0dbf6a9e13649abb40d68d3fa955eca22d` | + +#### 3-of-5 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `0532c882c5e72dc374dd3bf221e641b5634ec4316a5c96a7eb168510d2379a08` | `fc8ff6d9a852fbc3f4b673be37e52d65beb4afbbf86d217572bc2d55dc82c37a` | +| 2 | `33531cd0046f315ba42e9c451c130bb934773852b5a3227e516f34aaf99d780a` | `4c40c03b25a8029931c33a11d965df4494a6adc126b04f937e1243dde572877e` | +| 3 | `2628761a926ec29d7b593ccea04cc799a5066d746b07a025436300b580931a07` | `64490433b5b6d3217311bc99d01b84a158f31232fae5545f1058a77632776a4f` | +| 4 | `c2355a62f365346e9577fd32e436b3fffa22a917a188f576919e86ac65236a09` | `ee106ab40ff4e2cae74a1d0a12b8bcae46b8f85a2285cbcf93357519fc060e44` | +| 5 | `82eacb16d6b34573e3836b214481e0fc4e885ea8bbbfb6bf80d6d4e37ad9630d` | `a4ebab43a8b6baa1842d7afd5e2354401b7c4caef9a7edab8ad5b4d9ffdb8813` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `653535bf967662ac857d654764a1b9550abe0809f415b378ab7ada025b4c2802` | `be53f58edb38e3ad67964229124f804350ef7b1665a1b2dd6a20eb2b04829160` | +| 2 | `5d69230ed12c9e7d43e62b58540fff1a951e5a0dfdb119190f86339f3dae6b0c` | `dc3f9543e44f2b1db3ea4506cd5e0bc54162cb9f4e1144e7beaa89f499b3a93e` | +| 3 | `0f3a902905dfa28f9a303b21ca3729b0c3f533850e8ee4e4848cc411018a5d01` | `d27e7ca67ff733af3048c939cc008841a3ec0c761d415ac842fce072f0cd3126` | +| 4 | `554f67cb67539592379682e8820ef63e9643967028aa13dc0c8e8d5aa5dffd00` | `de380d0925d9b53277d69e3307053745a7d972ad62a7d76ef6219475053d7f52` | +| 5 | `2fa9a8f3f88975861a1702ae7e9365c70c0881cf4a06a7fea68a8e792aaf4c0b` | `0e0be364b5ed7e1b454b28ef38be3c8c2de44324df78f764247d4c599584514e` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `c80f280bf75822900ae0db5fa3a5a6802d6d3378f5bd931f1c320d2de2cbac6214e2ed9450c2b4090eca486c369cfd9490d7a184f756dc85fb3cc433f21bb23d` + +#### Final Output + +- **Group Public Key**: `08ee9bb0fc75a34dabe96f9f808d89234a7456d0563bc0887404fc9c0bb7b406` + +#### 7-of-14 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `730091092abcd19d49aa1c3277dd36ff2d8bb4e6b91963e467dc9b5429e48401` | `9c75faa367177d035128f26e8953b9ce5cf68bb189edbd6d58f1db2c8dad676b` | +| 2 | `7952975e46574ee2772d67896829e022332d360cf4966c17b895968b332ca505` | `c46adec5d82f467c8ee56872c75ce12f7ac240a65d50c3fff8c85310634fb32b` | +| 3 | `50789dbe3bcb2a8cbe41d5f535abfc56a609e6453f5736f66a33bc031864d80f` | `2cae87df6ab209f4c3bfd25cf303aed05944184571de8ac81aa987483d4f8062` | +| 4 | `50fbcd2cdf1f2998a9b0419bdf7197fd962d3e91e879546acd4241bc369e330d` | `2eebf6f81abbd598e49297f2210e0d2b6133a61ae5fd2f40f0da0e54b146491d` | +| 5 | `af2a5f2917da0feb73154a7f87cf608ae50b35083d2853ff10ba26e133db180b` | `f2b623ce85be496517df79c447d54dc26a45bbfd2622552c73cf108d8c68786b` | +| 6 | `d5a659c9640847799436aa51503f31a70319a006b9eea946cf1fe32e99c8bd0c` | `9e5522df34c631caac8e30a4fba13d608420598b02394da9ff7646586e5fb240` | +| 7 | `778db0ae1a01759bc947d48b0ede7fa805c3bbd51fc2845cf4a9f3a309078a08` | `2a077c782fdcfadcfd569ad965d317cd733c72feaaa3da996ccefac5c4b94b1f` | +| 8 | `4224093484db587c8e28c372343a1dcfd2b528dc36690211d059b5d67491a908` | `e6204385f19b7f1d2f69feabc033cb416299bab36eba32abf9fc13a54bce6a7b` | +| 9 | `950d4e827b4155528b4d473baf8543f1a932c0c28e6fc901e14a6287fcb94e06` | `dcc3518ecd3b596c99d849c7670b708b1e7a5601539312fb7625af408a5b2729` | +| 10 | `233abff49c6f626d63645e0b7e158928a20256e4dbb8c3b00ce0fb1129ead00c` | `ba0d0c4030c2baba4ca96512bce0317d135b3118fa68b43f55bc30ddcc75b602` | +| 11 | `15452dce3d48fec02cb2edef3f070719cfcd907767bcc63132d1813830e8000b` | `eaf74ed6300e8fdcf04c32ede1cfbc7cd1caaa9243da90a463f3841114dcca4e` | +| 12 | `70faec6c97ba6e919269bc3cbd296053e2678b246cd6608d2b435ba91d766f09` | `34a1222b4d714f514dcb50ff9a145e961a29462c33f2f04c42fe37bcae90b660` | +| 13 | `841952d79b7c9e7cf26430ca840dd508620e44efd48f42ad31224c51df246e0c` | `b4afc08660a033b2036b2a0d480fce0f03278b4a74351af6bb6e41b2a06d2363` | +| 14 | `d63e9f455f758b7946d888402a9790a66b3fe4fce7db3dd04de5c4dc4b9ac903` | `b25ac7ad672ae828780b229ebe0a9ef97626cf5d9f975693ab3aedb5db54846f` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `7fd318c7a71d543ed87e2b8df70d434f3bd4406a0e754069d4317327a02d430a` | `9a8493d78c60dc0caaa2aa294777d9f4db157e4b002de4f1d5e5fdba7750b24b` | +| 2 | `302e7de8da8bafd705aa75a1dd830603fcf72c0f28e8e6be16cdc7adfc4bf304` | `9aa8f5385334269aca711a4e71f0592483aa2360c3a348cd082b79115739507a` | +| 3 | `3105eeb75e94d6b40a61a734864367a4bae92d3a61442aec086da74d2fd31e0c` | `b893029dcba9b6613f04a2ad54e526b1e229862bd73ae49c741b1a4e5f232b2a` | +| 4 | `53b15dad58d84400a99f358b930494dd6169d9023f38c3289b7f4921b638c40c` | `10491f9a381145194bb1c08cb751d4ff83b6af889ec3614c76c99fd4868d8a6c` | +| 5 | `0e0472f3a660a898a43501fa72fc7f35d9a9a54d489399d0646a98eb9d021e05` | `f0c445435f26fb3ae44196056f8c764cf14f7c4d0a332b0ba2d07c5fdbc8df6e` | +| 6 | `0b7fd92a2a2f819a672e81d62794a3934e60b30ba4b5b478a86d8b0c25b6cb0d` | `3243e6ad68e9e1eba8225d08736319419d758658127c4e3679cf939018836f00` | +| 7 | `3106d473ce3ab2485942391420b74a60167b0c1fa5585ed8f568e98c43980d08` | `12ba2e8f7f2606d88eb9067e00b3856ec4402c24da72848d64e2880cfe491e68` | +| 8 | `f21e42ea136b3c2d23bced61db523fa4238057e343b077866981744118401301` | `f2b087c15d8443e6697d4b5da85ecf8d536c266355dd0aee17a8d3a4ec779173` | +| 9 | `542e065107d5b39025913c0b008264861693ff5a85e5008b8aa97e053bfb5c0a` | `480451e16cad12724b533d3189323a6d496adb3727396625d424fd66ffecb90b` | +| 10 | `1e5566d47d520209ce9358b6d2313acee122d100d0e9d2c4c50ae70cf4033007` | `ded3e9b85023d366ad0ba39562a0bf62fe0443c7c574c646435722bab8a2a745` | +| 11 | `6b3109859b522f902fe0925bc304ff3b083f0b3e2ea38b238750804d58891d0f` | `8cd5e93754f4f7ec37b19e3e8ec0d6a98b4c615a2abf0c20ab9845e2bc56622f` | +| 12 | `454f6d8e605f989170086b75edf846eb6f94e5847e71acb5f0d4dfff4a899c05` | `084cf1aef59d65efe562275be46805314a9d0820d670fbf425f4130949d71423` | +| 13 | `5aced299ea6878dfd3ee4bf62733acdecd118b0f910ceb8a2faf9537647cb606` | `600f2bca29f1032979928a8f51062fed90350cb74ff896db952b1767c5e83923` | +| 14 | `b9b69fecbcc5df9e975fcf76088ef495a733894333bbb46a6ea3cd92bcd3c608` | `6a35d79048f6d9759da160dde1f6597ccdb3f9230a649eca0b07801fa2e33e7e` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `c14900732438c02af052e6e5d4f25b445f45576ae4dd014a4e43e3ca9218fc04bf3d29d54be73ae00799c46d02cf06736819d96853373b7d04b51eb614e58666` + +#### Final Output + +- **Group Public Key**: `5056c3b4570be4c8afa7301347edea1de395810df72afccf576cc076a46d6a07` + +### COCKTAIL(Ed25519, SHA-512) + +#### 2-of-3 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `976f8781ac89edb9b14f00b42915f36add6fb01f795ad7048e88a7246ab35304` | `2f35ea108d2b43a27d2dd17f3f0d0e44422514d91d667af850fa206a85cde4f3` | +| 2 | `b00aff74021d100b0eb587ca406fd4c1af2ffef9146454a4c35f547f709e8403` | `d34665a229edcb3a8b822179868138c097bbf51316cbea636e6626b152742812` | +| 3 | `5d3df9bdd5e6ff1e43f07d2d81791cda76e44e6fdbba980b1231a9ff39e1ee02` | `e4f58f6834e2315cc79cbb142ffa2ae0700f835ddb581818e10553679c32fafa` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c` | `8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2` | +| 2 | `6723b951f1a81f143f11eea4ec31413e76669d049b962b8946a78a35cf97cf0c` | `0c37616b618d49bc5ce2db1cc0ec4177890bbefa2caed8aeb2cc20aa5e872ecb` | +| 3 | `0d2809d5c126e019a3bbadc2cc132013eb6141f7f6d1f062408ef58b89ad180d` | `9b992f1e668431df2531c8a29defe7d7a5897862648c8efc92bfd9464dbed5c9` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `c271c24bac1aef846815a8c43fc6618bb6d4367edece0c0937be417c3948ed69671629784f0950e43d63b0c2af66a5259ec2fd0b27e70b1d0cf49a127fca1970` + +#### Final Output + +- **Group Public Key**: `ec21f5ee46aa6e11ddc8d3f42af51e6636b86de0243229d848da48c3b604964d` + +#### Recovery (Participant 1) + +| Field | Value | +|-------|-------| +| Ciphertext from P1 | `c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152` | +| Ciphertext from P2 | `b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418` | +| Ciphertext from P3 | `edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d` | +| Recovered Secret Share | `c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c` | +| Recovered Verification Share | `8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2` | + +#### 3-of-5 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `72553463294cecf2b05391d0b4697c7e5dd42e6fd8e3e779ab8dbcd762a1c701` | `e38cc6776d91cce01937aa23469caf8c019298136055e2c8f4002f2e0d4b1d30` | +| 2 | `784418850a415959dcd16f114e96b7e300865107391bc737f39d2e1c3f70420f` | `b89c8543454c361cf07cbb8fb62d29186b2d82b716f642e61e42f45e3fc603d8` | +| 3 | `82893224a1af1dcf0e1884a15885937af1018ef07b9d70ec6a14dfef21d97203` | `5f3e9f0f8deb3160261d5534431375ff66d5c305aa734801d6ea3c78a393af31` | +| 4 | `2e102fbfe8593ae24446eca8635a81f91e16a53d8deedb73ec8b1e473f6f8f0b` | `6c4ce9698663429e3327c203937d509f00ebd8cf889f5af090d7a4762bcd31c9` | +| 5 | `37bb7ef244c9f1d5ccac85fd9a01c881b44b50049652a7f50082e6c59aa80c0f` | `1535febfa522cc03fc9c2d67cd731263b93fe0d0795cbb6c599f922e9bf0319c` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `089205ddc8931a7778eb588b836756bc5f10a650bb9c3c6f23646c6303426f05` | `279636be807557633c8acd8161d452e8a9542f280463a643703184ef0bc88c22` | +| 2 | `e8d9ed60a8df0d5f99459a1fe71ace6bc84c81773b25f84da8e6743816ad040f` | `20381dd73762ae08cce6f825178ad70a08636426c4caa4e797d06eec28f8c821` | +| 3 | `b4d8f5ab9fa5ab1ff885e83885f37ffa59a540a3c09b1be8a6fb011736a77603` | `fa64620863ba443af3ac17968b550e221b7914b11892f831824839c036960925` | +| 4 | `46360978e3ab186941e6321d1be52992141ae4d34a00a73d1fa313ff6230c502` | `42a70b7244644cd6acff8a2ccd9c105767dae4fc5a69f93ac588dabf2cf82e77` | +| 5 | `9ef227c573f2543b756679cca8efcb32f8aa6b09da529a4e11dda9f09c48f00c` | `bb3e7a3a1a08d17197d41cbb3fb247380c5e6b2c85d92208d281896c1cc958e8` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `f8309b2d74d773466af7263f6341e05993171e7a05a405fed9d4bf890199a881805641a89396da1f868f14b4e73b5952ff854b8a5c5c7c45061c77e5ac77f2cf` + +#### Final Output + +- **Group Public Key**: `334d3d0229f6c32ae6b77e9bfd13bb72f565a1fead8aab11e06ecc55f0c4d4a4` + +#### 7-of-14 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `b6090806188eb1cd2222c9f180561e3b8bac09fb672f5b0de705170929048b09` | `421a26a59527dcc8db396279fea139514903d6632872c6bd25592c94ae5eb191` | +| 2 | `a1128fa24af9852c08790928825ab0845892a9b2d3133f7058e9d7706d70100d` | `164d1d596b00488600758f2d591d6682ebbc548d6c0ac91cd5ca6810afcb50a6` | +| 3 | `6dafbb3e7cad284a0f8510c6736dc0b0aede00ebad9f265eaad2837dfe4d2c03` | `9f5a2c1959d25a72fe2275b8a8d9ddb4232e31bf81f99073241dd739cdbbdb5f` | +| 4 | `a4396d6729b6e19331d4e58e43e278907858c7c7f2cd9fcb1bb84495b95d2f04` | `95b2ca39493be7974327815009509820f88323250ae5206735d35dec1626c8dc` | +| 5 | `a606911a4a0de0376efa44fd072a6fad150d056dde32ba4115a2804e5077440e` | `e0a805b8cc81e67002acbc41046b1e069a9143c64f7d4bd77cf5845a6c3fe81d` | +| 6 | `56d529262e1d6fa4e6a7db8bb9f61bcea14833cc88040b5fea23a7cd6fba6404` | `dce5dfc8c734a2edae38c4c2e6fda4e096eb3d544ec8d6619a895f9fd3ca9b61` | +| 7 | `f4e3554295a31835c68f81479877c90cf4c1340961ce1f3d3f07ab4ec5737404` | `60177138f0d98f7e7083b718339daeab4fc44c370bba05cb946bb2de62ce2f13` | +| 8 | `97559b3d6c9a433e9bcbc29b6c747b170d1e50865a875913f514ea96f77d050e` | `a18e2c39bed98bfbe05eb5ef8a629b48ecf45eaabda7e55501b7c3c4966fff77` | +| 9 | `b67bcab764b7900ad51c912ef6e6ffe8799fec6032a045401c15102eda158d06` | `24c2f04cf1a9e81e0ea3f5701c3dc76df93ce872fd04aa1b1293c368bbddee6b` | +| 10 | `55ed81fa6989d8b8c36edad9ff6c86166ec156c1cbcf9edc739ff9367599ff0e` | `2656186197fa97728aba52c27e9ed50384e996ed9c8e491906ed2ab64db456a9` | +| 11 | `738a92c61738eff1c6657144213655448d4ed176bcdc898a89422189c932580c` | `08ea6307aafb5ef6b20f023eb4edf2a5fb912661855e3b6dde327dc58bad5049` | +| 12 | `a48375bdd1e9fada7f72648458dbf46c2c9b4f885c072203c25f52c8f371dd02` | `f69dbdee18af719ac59dff612e28043a19476b164574d24bb908ba201a8ebe90` | +| 13 | `fdbcc18d4bde352980ae363ee736f014d54dafbf8b63fa95fd0e9df673fe180a` | `4fa1de61f77b0a1a796506680fd14a1d25d9890a56a34e164af8fc102e71ee1d` | +| 14 | `d9947c89c8a60154e690f679a17037ae7529e00557061dcbd20d04f9a3615604` | `d31f8c2e0d22455a40cfe819737605223f1add340a442fde18e4c2071a9b5d4d` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `5ae8e4e94395ba0838c4ba4a8849130645206e71aee6c9bdc12fb56edbfcfe0c` | `fa590716e0023453938b48e08717ba09446c3619431c69c777c20988fcacc619` | +| 2 | `c69d4ac4d26e43318de29812ca720a5140e3bb7469105ef4e4d841ac987e3202` | `3889ff3155acdd6d481605ddd4ee63e1b080956186c055b19534ca97c8d42405` | +| 3 | `52d315dcd6af952d6859db1bd796f90ad21117a4fc0c775d30810d2ef9ef9300` | `722e79c780637a20bfa188c09dab21ac2495c78927b768aa08e57557b3b708f4` | +| 4 | `900b3bb6eef0c1b9a21196153b93431fcf4154a24c7fbafcf766eee40782de00` | `3b41c48d577cd28a2953ea1c1933c63e91f05317f15d21d21b2b19df84142f8f` | +| 5 | `5aedb52a15bf785ba6b7b3c8cea04614162f1b1c2460c7d8e003986628d7de0b` | `205c0151dcd7d9bf04c75938ed0cd1342ab1f3ad35e61e81d62e5740c112a4ed` | +| 6 | `4473e33ddb76fa45376158f2c6d28763a8ee43ffa75bfabd38c5639fef67b902` | `07d279f5bb2427088e56ca772e155c9f81e68e81a4d598756b73ce876f059717` | +| 7 | `db1e9d5f393aea86ac4535ee3596b774c9b958525ec4b14d8632aad83e347c0a` | `28f08574232f539352bb1fbddcc667531b3792621ac32f34e9f5eaf25839a208` | +| 8 | `8c7d13fc645338e2a6379f4642cbc83121513cacc71b115a5182ac13a1c0fb0a` | `b498cd2daff4fd916e84526bc308dbf0e5d248bae30ae72543c880d7e40aa28f` | +| 9 | `1f2d4b898cdb26ffb7077dfd6bcc7d7ce4f7f44b8b30448e239d0eb9ea5ffb00` | `35231bef16e2991f532a42bd50f50e237be8c58ad4f0b25e704a43d26425d058` | +| 10 | `1c79f3879fad1db5e7c8a41839d2bd0d02079cd035d24163c18ee19c1bc9a003` | `939c672f7382b03ce0826d6fecbfc8abe0e540a72b51aecbc5c8d5e1bd93a8d2` | +| 11 | `07658cd43c0860d0ed939f1428ad91d3531872918a1a0e619b653e5783f9320d` | `022583f552659100e1b7bad7cc8aba80227a1b73d3fb646a83004275376fe37f` | +| 12 | `dbc28a309af7360fd3af9055dda4bf74d5c91796674c7cac778071f127632407` | `b9ed1bfb7844a158685780659e2c018884b76a35387289914f849acb8750114b` | +| 13 | `d78184a64a247eff228348f3ac8227e5df18eb2e3c4870e1534ab6e76e676809` | `cf098dad4e88dae95a64c6b3a2cc057134df15251d6ad09783bd68fcfafc419f` | +| 14 | `8146df6da761b69ba2f3e73c11116b106955892d12969f397f64837f081e140d` | `058b5bdeb82562287d086a103007a7524cd778613d1fcf574b9970d45f6cfada` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `42d65bfd93ad920dfcb048b90ff5a4b45d7e4d48e559c7aa89573d18d50758ad24bf3242bd87f445623aea08aee37edff4b45d2ddf2e6431d170b8a80caeb7c7` + +#### Final Output + +- **Group Public Key**: `d3bd4888ca21d85a346d97ff7a95f07a22f2060f8566ce4228e61f214de7730d` + +### COCKTAIL(P-256, SHA-256) + +#### 2-of-3 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `fd69cd069d3ececc5e003e20ce25dd968c7da87e017bdf6afeffbae9a3b3f943` | `0312a3ddd4c2f5d497e0ef6865495e6ee0076a1afc367b6a8f66ce889d8ecbfb8d` | +| 2 | `6d29dd621960b35d24d0091634fae965c424acd714907dbbcb26d7f4515bd3bf` | `0311dea5e8bff958621b81640579565e19cf457ae4d4dfcc4f22d1273f7f482de6` | +| 3 | `56fbd9a1e45d2a3563a97f3618b1d8f71d5bf4974a44a49da41f13080c006ee0` | `0312236aa188f8c9f51f58cf70c2add13d9fce8f8bddcc8f330eadcb3ec48e7373` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `112ffc75c88657968c290f46bea1573996cd4825c79d1422b2a430dcde0863af` | `0314bd10010bd552adee76a83db3042a17021244f0871cb2abdd1648686f55f662` | +| 2 | `2a3da9df516e7993acf0e14b2174e4eb88a6b7c7f0e2ee700905462d7f3b6629` | `02ccce2880c58feebbbb42ab5a665402854792a59c5e38989c14277c621dd40d52` | +| 3 | `434b5748da569b90cdb8b34f8448729d7a80276a1a28c8bd5f665b7e206e68a3` | `03b58d6f976b6481b808674b1ff6e424d38d74f6e37d8654a7c8847b0406fce7c8` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `9f20db533b5adefda4da156725577441ed2b5f51f8ebce23b5558e79012cde69` + +#### Final Output + +- **Group Public Key**: `02a8b67f71bffd8c6c2e529027aad586c1f544ad42f7ea7048b0eaebf233c4352a` + +#### Recovery (Participant 1) + +| Field | Value | +|-------|-------| +| Ciphertext from P1 | `7e8cb8ef817b78873a7eeb00fba8bbced71124951500ccdb2a287ac8c27e9619cb3e3e5957811dda27dcd6d463d5b54b` | +| Ciphertext from P2 | `5d7d7fa5304ca522ce93970dcedb630a9034afc1b06ac864dee3f0ab0661d824b13fe694cc8a6e462bb8472a2236f833` | +| Ciphertext from P3 | `0793cbe598727514b55731e9410bde1a302cdcf675b69bf44e720b9cef8e2be5274cdd7ce33d227f1752d9a1c8a00809` | +| Recovered Secret Share | `112ffc75c88657968c290f46bea1573996cd4825c79d1422b2a430dcde0863af` | +| Recovered Verification Share | `0314bd10010bd552adee76a83db3042a17021244f0871cb2abdd1648686f55f662` | + +#### 3-of-5 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `ff3a16d8079a4c5d7b7c268dbf918587b90aaa0074fbec26d042edde12c3ef67` | `0244cca0af554f634808afeda2fdd375edda81d81d4b3e43c016da72516fed41bb` | +| 2 | `ff174ec7b2df3e78c93bbcb3ec926d7e5b4d824b08c2d2278dfff476218f0d1a` | `02a831ce1345699bc92f0e3bb250dfdee4657099bf523da3174ca2477665a34b3e` | +| 3 | `78eae1231856e7fd3e869ac2b1a9dc69f265c6b65d7a5399ee4cfd27a8e15d0f` | `03b4d14158d498a0f33d6b7802ff22c9d2a14aa9333cca62f0b40bba6af8a3ca55` | +| 4 | `a2f97ccb15ebf279044192add4089b036fdd33e518c65a2f7878faa2bf7a5090` | `035b542715e257ff2aacee6690a48dcf9906ed3d2db09cc6f928da3bd326a430fc` | +| 5 | `c76e9f4fd52c3e7861efd3c265128c0cc4c46549c1dcfe8cdd9c29397e15a998` | `035bea0735d839da9f31b7b7649d1acac8d48de90761c2066339aa1d28ad23111e` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `4c6edebc35fd4aa03539772a17da1ad68f5d06b8bbba01f83e07b64c9c95e459` | `02406a1e0295b29540fdf7b396644cbcc8a7657d71bc4d7f3be5f397c932f250fd` | +| 2 | `0f638f2789fa3b213fc791be45149594c088c85224bc44480fdcb14b760bfc3a` | `03a22d5a5e78f9bdadeaa752efd1ae6d7202e61df71a17759fc3fe2ff46c2d8784` | +| 3 | `72772b3e270cf1b8a6b9289fe63f045f47ddd563181dc659b29491c479d09243` | `03352939ce70ee57b46a3ecf84a0e202ddaf3b1f71ea028b00b5afcf3f386d8ed2` | +| 4 | `75a9b3010d356e656a0e3bcefb5967366875333deec6e9a832758cf4ab808123` | `02aaebd062bc2459c8d0528decc284afb7cf39e3ae3e62f6dd41a1c5e17f79def5` | +| 5 | `18fb26703c73b12789c6cb4b8463be1a224ee1e2a8b7ae338f7fa2dc0b1bc8da` | `028915eb785b5c2029df6b8e3e12ae41f608ecb47c92fdcdf3e5ced34cbe72d0c3` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `e07bc2dd3667865e862ebe9534174f6f33af5dee113e1dd835185cdae66aaa70` + +#### Final Output + +- **Group Public Key**: `0323686a5185b926ffcdb4e90f51687749950aa6f8af76af4141a7a479e0ae9aa7` + +#### 7-of-14 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `df48ddb52302967fcf09be676f4bbf2bcaada6e4fc1a841bb63314257a04aebb` | `03aa807eb96d36c62ca0a8a0cf97e6ae58902c2a6fce7710881437b8640c6e7907` | +| 2 | `b2988923fe64d4a74bc5c7cb730027209d3d7e6ee373a770515ff6ebc3ca3d8d` | `0390edb86b74ccc4ac605f823b30402bfb56ec10f27e5d48f6b9a731bc2da31750` | +| 3 | `b2e73e2da7393c0d96617d9e8bc5d89218370cfd401f7847e01d842aa28214f1` | `0291e3c19583945b7ffa6b73c625ce09d735a59b28381cba5bdf00fa70108406a4` | +| 4 | `67f60bedac58c66f05af7446dea7a4caf07e6c6c6a30155977fd8782c795717b` | `0267c9ee0cafb6bf7a9f8c12d6e82c0aef07ce1521ea171e3c4dd5e907be62a849` | +| 5 | `8fa2d058c720b7384d63ac9e6b98092e557f3112ed96b765c05b68dd784b99eb` | `034d15886c597fdddb828705d46d759312f6fcf9eed94fa48c356c5f8032e00243` | +| 6 | `67c5dd6768f647cfe3424011d6f5e7ac606de3cb5090100c2e3b7cd07ed6e496` | `033c1b886d18143fd8d7192c3e195c31d467ee452fd4b9a02356a7d79d37e53a8a` | +| 7 | `1fb31a964290539a99761e9f8c3e2e08286b5d256276165927b472bb908cb0cc` | `03bd658ec0a51bf89a2a3784d0a0311d27671cbc4c351570c41ac9a0e8c1f2aa5f` | +| 8 | `f8685bd161b207d2c530a7617142d6bbcca46678cbcb377e5cdc99b09a0ad5a0` | `02b716027e710c060569e51e03a26cc763aca86a3aaf984fd5a6e6178e98da9622` | +| 9 | `35cc8256fdabf74599f4f561a71f28b66f06b090584fb290935f39ca3646c66a` | `021cb3fcfe812ba265863244de1edcb7a617ac09ed6efee5c281d5b9833b9823d6` | +| 10 | `fe3ab4deb2b950d5160dc8aa7d2eb3b017278c6cb7ec860875a602c4b5edd22a` | `022b2cb52b89d45bb2a51d2171114f460a9aa7f17689f6ff99a44511935abd0156` | +| 11 | `e186e254cb5050d4feeaa3dadcde6ec1f4f2c6fe55a86db21fb78d4e44619b29` | `021b4e3652f13cea01fc1d62ca2b107f1426ca34cdb888facc8c98a40e1dc788a9` | +| 12 | `7700ce7190c7e11a503c61a12b9e5a654a80bfc06e1833f6189b494dc374fccb` | `022e2c1907f6d02414dacd44dab319784f885ba81708c90dd2e5b6b590f8c9cc13` | +| 13 | `3ccfbd93113b6ede8ac364365b9a473536ca8044b09c7ea48ec0e8316dc09d2f` | `033e91c0980404de321e8f808122306f963379f3d2ed521ebf4d4ccbca2bc16625` | +| 14 | `1d0a65973e579e1f9b6a2c480a7d1051ed17565762cd64f64d8c5782621bd38f` | `02ff683668d034da255ff562cbb28b513ccf54f6df4f28c0ab412979ce95467cf4` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `31c11e7b3303511ae5b70236717ee6c996a7d36e32a07e5c7adeca6fb836ed27` | `025b18b60bcb8458af427fe61b52f1dd41a6f22fb1ace7aa5a1c3e22b2a80aa81a` | +| 2 | `1b8b4d0aa4228283dfa14d07ffefc24a2764f83a69b1cfc7bec04aef7047b791` | `0311fd0213d232f3547188694dbb24793cdfc45da5dfcb19549bad97bd3c69b455` | +| 3 | `5d7049854b0ec0b266a89d8477d2ce4e189fbeab01304e41d4684b13c027e21b` | `034b45d16c9a72d80f9505fb73b65ba8f4411f4430a21c5b5a5f8f0fba87da05cf` | +| 4 | `093a2e063c3781459f9ba763bf2da8a338ef0ffc5f9ccb971c97c2e4fdd1bc45` | `02884c654b4f6d19df7c76e5d405d3e028522f7fb1ab35bdde13e2997acf31e113` | +| 5 | `bffadeef6bdf4af4a78c3407e4f2be2a6466c1f2244ed5a27edf50abb561a92e` | `022e153ba09111011e3339abcd241f32501016a80bc02255a2fb3952c4c5e697e3` | +| 6 | `4f6f1b2bdbacdad1d0af87ae2b073a4d9cb11bbffdd513827a6a7df8eaa588b3` | `03e4dcb617f646309a202619320639218a62c945cd5d1971955237ff02f0144ca9` | +| 7 | `1ba7edf31d41da1d968cb1ab914869be47a3b994ca7d9da4f076ee96388a4a65` | `03efaac5e6e29b0ec212dafc12122b45e4bf77ece89483b3c9d75dc5ec656e00ce` | +| 8 | `54fa822829d7248f4978c7b4e190908264da59250aa03728e798e1902c55e01c` | `02d7ab84edccfc432a43e0876dd86e0f3f8830220c478339c77b3336f0f8c8b6a0` | +| 9 | `fa3657418ede9f2571610c323cbb334c02952f6a64538def6add46109ba62fd9` | `03988c658d2c966e685b357489654120dc1a6375f0d3eb2ac7f47c306f4444face` | +| 10 | `a721d7c2efaa9f75e7e2ff9e28a8d41d0aa2f22affd08d33e6fb0df1121bda6f` | `02d1e05274bc9e97100b83806e4a2d7e6a54de0ad10ead869754e03c1580cb6fd3` | +| 11 | `2f3d5140dc1ae384a9b25cf01f42223591a770084e29184eafa8495a3d66dc2a` | `02e8480ddf1b43092188b4e12c36f9003bdb278ac6dd07f81f1c869d743a4cd81e` | +| 12 | `04cc4df9fc4f1a165f4d01129e7a9d4f8ad1f19f0c4e5deb3417550f7f726cf9` | `038c041ad40b98aa5ddeb30e7f0c8e88a7c7a5a614c53f3bbed39d7efb79fd6ddc` | +| 13 | `6c254ffc915efb879cfcbd64b952ac25842233d3623b565e74243c41862c6ff4` | `03915d3038e25f2c08e367b120f3120548a616d0217bad578a459af68968e653ec` | +| 14 | `7b47eddc4b17f324da27154729d9264577a0109281e4f309e74b22dbf75bdcfa` | `0361dc5bf691cf59bc00db0cd2801d740b8e00cba4404b8daee4ecc6ba3b142282` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `dac02f58675a0646e6d72c46683231f30fb49eb44739b829bbc1c18f70f72b8e` + +#### Final Output + +- **Group Public Key**: `030354ea2ae5e1eda262283b474f553683dba47f9060275452cd137d2a2c2d4992` + +### COCKTAIL(secp256k1, SHA-256) + +#### 2-of-3 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `b6d8938c60ba5cfbf0ba97ae1c3f99c7a58485344ed7d6f387dc35bc76cacea1` | `02610897b193f5d9ae8c6b6527dfb89481aa9440577b24a96a9378a756542ae20a` | +| 2 | `ad371a449f8f2734c1d98f4f92dabeab6189953e7f9258a2657743adf4b49fde` | `0325c9e642a8967b6069db110ddb5588d701b89ccebea4b15c277acab087c59129` | +| 3 | `344ae0d3d664507f90d5cb534c77af20d61e83dfaaa500bc8d27428af3ac1573` | `02fe2400b831d7dc120d4f1f49ede75956782e77ca92aa24f7d1cb88bc584dd1f6` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26` | `02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11` | +| 2 | `8e18ea88b0dae913f89c42b21be5f87ebeb801fff8f62a1cdd420d5725b5d7e0` | `0309e433bbcd6cf70a7c3dfdc5e3d44ab629f79568ac8bfa51c4dc118f4507ea20` | +| 3 | `a3f1b10cb341e7a05b8fd606d7ea264f22fe58248f372864fc5c80a86c08f49a` | `02a91306f8390af207d697260df455bbe89328b1488ad5338271cc2a2019a394cd` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `0d785c00ecb6bde350ea1800ca69121c82be87ace2d7b691cb3d4c91566994b2` + +#### Final Output + +- **Group Public Key**: `0317763ca657a4d5e1c661b395aa9454ee2d9bdbbe8f2ea57ea0ec5cc0723ed9d9` + +#### Recovery (Participant 1) + +| Field | Value | +|-------|-------| +| Ciphertext from P1 | `2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba` | +| Ciphertext from P2 | `a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636` | +| Ciphertext from P3 | `f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a` | +| Recovered Secret Share | `78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26` | +| Recovered Verification Share | `02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11` | + +#### 3-of-5 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `97b9f7468d461d768bfc89ffff0c41efa43d63e915db3b1e9558d0e7d0120b7c` | `021bd81630d7864d25fba41cc05a5e635c7a08e8b190d996a554691ae246062764` | +| 2 | `917ea30b036b92edd821e7cab12e2d80fdbfaceb994dbf7d864aa4448f54c6b3` | `02d2796cc622bc6cf3a720c78934b9b38d18a3ee5458c499f85d940606413673b8` | +| 3 | `3fbede422d6df3631340b208e2653c1cbbdab0312745c3f4ad68c387175eaf5b` | `02401aa2db05d19149dd680c4c1638be7b1a2f25b8f990d24029b9b8ef4eaa069f` | +| 4 | `f06789105aa658a8f8d774242d748e805d429f07e4ba096ffa491ad2b3bd7c62` | `034dd29d0db956fd5330fd68e951f063e42a85dcc0e78c4fd0c5752c3e5154eec8` | +| 5 | `d3a9721ec87abdc04903dcce30cc56132118a773cc326afff752ed406f3cdc17` | `024f80b54f11083d0462753f835ecb38e34cdb6d695f9213459f54af60bd9bcc1d` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `2aa84b0e28cf945fab50a04b0493026be4a8aac17bdd980915a50830a897cbe7` | `03ffd0727fdb797a7ede721674aeec6080d67dd5667d0b7f11635bd27411eb8955` | +| 2 | `ff866e4b77f019362eba9b7a7fe51b8fbd89f7c840acd54bfc102340c4dbbdaa` | `02642eb38167a3fb5db09fa1147bacaed15385a1d5288288f3f8300e19676e2235` | +| 3 | `e8c1b142dcf6f97b12366fcb260179c8564f9938659dc92857afae56ef7d214c` | `03682119ba6fff3195d441ae3a615973bccaae35002319a030c6be0edc56e7d08f` | +| 4 | `e65a13f457e4352e55c41d3cf6e81d1469a86bf899f913d9e85607fff8b2380e` | `02fea0e231fc509f7984cb568acabee1f489498889b4a7c32f30abf9dfae9ef922` | +| 5 | `f84f965fe8b7cc4ff963a3cff2990573f7947008ddbeb560ae03303be07b01f0` | `029bb02d4434208c458b2968c0457993403bcbb7c23581831b3386f79639508989` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `7dba0528c2bf18da7afe4a1de2e9283f70f4812569711f18eba3af92dab2469d` + +#### Final Output + +- **Group Public Key**: `02c4d6153a66c590f2bc546d51cf411b2522ee6b447ed0b0e51275dac238e666f1` + +#### 7-of-14 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `8f26fe486e7d36a291970961906a799433633e3fbae1ebc0d4f9a07ff6be6539` | `022141199b4c48c897927b0c0fcb4067b4ab33a6fc8f7397a0279293a49440857b` | +| 2 | `4b256597fee2e04590612eb7d249251a5b75606d503586cae0da143f5ca1fff6` | `033011dcdaf5a066952c31a17816735788ff11f6ddbeedcda7fc70b4eae293f534` | +| 3 | `c5c499d28c2d66d7cf856cf03bafa15744284f4f11b353ee180a3c0a44eeda22` | `03360bd6cab9f15eba62f9dfe9445c159c7dc84e2b26b0be032de03de9601d0542` | +| 4 | `326dfe8d3872834414cb082e41e0fd1d6c8baea7eb486c4054451e9f088ae020` | `03f6ec749ca5414704b72d898cf4e86ae272dd8e85070762218f3980df33b878eb` | +| 5 | `faf07fc615242d7ec53cf92761adf7d5623765ddbe7b62a1a0b43933f41fc309` | `03bca7e4af0c86c440fea15781c50047619d47c24865d9d486428d55152742bfd0` | +| 6 | `e67645b5eb4394cee403a5a96ff3690f3470cb319590be5bd57bf593e2ad4b3e` | `03d99c3d44fe456d45acf50142ff7f944adbe15b5fa91cf5117663ac9824b849f7` | +| 7 | `8d7a1d95687dddf48d5d0293d849f6ae4d7d2f9069df47a1c9caf72a4b30ec89` | `0393c4a4f48427921fee93746d8b3179b9597f0aab53d5a7f3a6913c87ca9e4627` | +| 8 | `49d7506273ba41dd097000aa72a0b16812e2577e00f69f6a5f43ff54699eaa63` | `023ad713c160f31debb869fbc42e5131906e2cae0182bcf2e5d48a7dc963af4852` | +| 9 | `9bf7cf72481d1ca181f1e75a3f3d672a2382a218070e33e57f5b8b43bdfefff0` | `037aea9a5051b033abda7236a2fd0f95e1c5fe1911b48d134a64f06faf8bcf7493` | +| 10 | `05055c065e84f445c62351b13b91942a0c25487c1a6b458da56e56a1bb8693ea` | `02dd920888f6d1e32484533926301c3a2f663b84a219bee92069a3dc90b77c6096` | +| 11 | `ac37617850deb54aa05e83e54c14b6623f222318f340efb5f811f71e34a19128` | `03fa2f35b6360c71b3ccc6963b4e58607ee300b936119c492c58fc24c281cd7c81` | +| 12 | `d068df395240d2661a52a55f172fb6c28d3ef611a7683e62e4e434842a43fcbb` | `03aa2cceeb92c4f6913e7de89daae148ebda6e89a988f34c548419be16157632f6` | +| 13 | `d3f38a4e9cffc9a9f3d6298fbc2680e60f7a058392d0c95de5bbfa2a6b2a9f97` | `03a0fd661277b103b25ad0cc38c58dd3e8a990209f854a62831994504ff97efdd4` | +| 14 | `a1c677dc760dd5161eb9f27c8b02a5e23bf522a0c4483b1244c65b7938b0e256` | `02612f2d257488980286424bef8bf17ecb609651e436a97de7b86a9b2faaf38bc3` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `6a230a7c1d0d83e59c6e26fbcc4be24c4a691b5f2f14a049154f88883faade9a` | `0201e0c204e450fa1025f793493a1f79260b5956cd73edd47883d8b15782e47ef6` | +| 2 | `f434eae0441f2811fba757573e6fa501f30ab7bf41f053738dabe687b2e8e0bb` | `03e8959c4848cdb2334d3e2b55193426cd5cbfbbccea83c2191b2e0514ae3e3f9e` | +| 3 | `9d07cd0257aa43f68bfe0bb4349cf4242c89aeb9740eae6455b871f1ba25645f` | `021f3ccd0152c2a8303182de160765c6b79e4fb1e3a14d8c163462b01ae6007cfa` | +| 4 | `029c60851c9c6dd97ed01d0891f0cd7f3bd2b3af3b4b3aef3f7031836572b7be` | `032923d3bef3794e465103cf2767e48e8fb963efd28aaa7df250339ac24c6baf42` | +| 5 | `6b1433204335301fd445350114a3fd80dd66ed6470f8be8157389cb5f2a828c1` | `036f8bd525ca06d851e583882a64ee145abec9283101aedb24a228ec9e4aff62e3` | +| 6 | `d18fae79826e3ca7bb0430f2e7af084490f71edfdbd205861937848457e2a205` | `027d5fc00c377d577eda447c6fb8c137b72f2c39d79a4c5becaa40c1263c8c7a92` | +| 7 | `9ffaf3b0425d77995329688056636e854eed32db738698c3b14fdd77f60ba4de` | `02892867c93d10b3585724fe178c98adf2e4a1dbf39a0bd1240300c56bac17356c` | +| 8 | `15c9949bd590d9add47dd7f0a1fa4e7ed26d428ee39e5ad047327695f1b49652` | `0205baaf66a14e7aea3cb4820885c0abc88b8956a8ae7a5778a031e637a03494ba` | +| 9 | `5ba12abc416429ed17ef2e3af91860bbed2bd1a1ac454e17d6275a46d2b2e18e` | `02fb1323b9354783c75316603042ee5b6d721a01eaae1d151cc4ce57f74919ece4` | +| 10 | `43f2cbdd95508ee18448bec4914750d5b50ca890d325a2bf5118bd91f9da2c12` | `03ce0d8ed6c0321301d9f33e1b4e80eb9c8e3ac59f7d245b98b7440681ac0aae78` | +| 11 | `b8835c6dd135f7425e2d56d1e2647215910dcb71ac6eeef650e98db9df29695f` | `026932e96c0da497f90430740aaaa9a99631cd15849c8a669b34bc313404204123` | +| 12 | `d4e2bf855a9e5a147b51f6ab0404d00e7a90bea6c7808dfb4ff1b36c1506ba17` | `03419ef7927e8e6dc2df9b21b99bd5ad413c1b917dd9bd9b491fc543b1509406ae` | +| 13 | `add1e4a200face4158f96e732cce9b1a63410b0b44788952aff395c543b7e95e` | `0290953b5eead2cb548ebbb0bee6cdc6af6a889d08b7cdc1c871f60662acb06597` | +| 14 | `c597b31490da79a495b0deb353c7f0c874c36091b9d0c9db0c532ba8faf8fbf2` | `02b5a7cdd2e6e9dcb68645244a9319ed946fe600a22ec5242a6f8950c4ba363178` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `87196836c538f03a5c1528134793a916da9adad6c03003d39b062b38597616fe` + +#### Final Output + +- **Group Public Key**: `0359d5d1ab443cda953b002b6dc12a11ba96e6f3aca7b8fe8d3e159ae1d56cde4b` + +### COCKTAIL(Ed448, SHAKE256) + +#### 2-of-3 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `8f9a9270561d0dbaafbc08828f30d41c342a8d4fcc5c364d7768ba75b168e4460e0a353d8fd189a3c4a6b22ece601173026a888cd4c46c28` | `9950bc0b58b1933452f595b8eb6de04a7d4dd7fc2301bbdb05c0ff440d38928153df7d7c400e19378b11571b4e1bf96c769e35d3866ac32c00` | +| 2 | `e0354d9c7ae7016aa2de07c9eb0b6075205ce553ecdb01d3c1d89e7ec38642dfa2fa60159d76cfba79b3027f56b21a72dd082a37fa7a3a0d` | `cf1a179b82836ecd0d4d5c539128cc2cf5db9b3bd2a519a5524a522cee47ff454881ba5db9d4047857b0de096e83dc22b8132833a4edf5da00` | +| 3 | `b6ff6734be4d67532c34aaad94cae9b6451cb45130a5240c66d5261ac322de02e41397eeb05011793e5a97a43eee6ba767b453725fa90a16` | `a8f4d91d754e65a13cb2ac8fb824647d04c4b8fb644455d1aef16fe81ebb7d1f0a3d85ae60ddb1dcdb04c37feb2fddcc400803eed7ee4fa780` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `692d92730a66096b0a971bfe712cde3dfacb726f94894c68841f8daec6cbb3c91df1be4a811aabd0a314d2b152156485b12fba9657637a14` | `7dcdc0aac7e24ad54a206a03f93d086f3aaaa0a999207ca5ed1798b522f7600c8136021ccf2844eb69459390b579bb13f2c285648bc0afe780` | +| 2 | `05103b16d59fde2d062f2c2995b847c813728d981bb125181fb8240456efddcdc19187d1b62c54906f5365c64fb2f6c96d7fa7d4aaceba32` | `89fa9c64c4f86d958be5a05c3e26d2aa0dbd44f8ac087a72c88d228e085dbec18682e891b15f6c640c25701d85a80f97fc6ab2a5365effa080` | +| 3 | `aead8b0d0d173bcdac3777c6458244319de1d11259fdaf03d02cf2dce51208d265325058ec3efd4f3b92f8da4c4f890e2acf9412fe39fb10` | `e4850a66863a281ed2529a1287c8634907629f1de66eec4c87257acf383a4b407628d3eeca24cbd2c8bb9f4d4252c4ff8157832f8412603680` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `a1310fa41f9763c1470173e93c1b6bfadbe5ff5aba7eeb2954f103850c41dc6d62b782b48fa24605e2ecdbb7b879d1f8e962a70197f7b545dcc5ccd4cce86331` + +#### Final Output + +- **Group Public Key**: `c9aa58f7c8007343ba47079ab1f8ccc67b7bedcf17114a27421a9891450007fbedb5faeb4a1586e105cca5cd4cf99f6aa1966c829fd762e080` + +#### Recovery (Participant 1) + +| Field | Value | +|-------|-------| +| Ciphertext from P1 | `4fd7af4723dba2d8764084938c8c84415816e20a51c1132446aa6e6edfe2e4702167513b1d328a7090b6c6dfbe247151b2a583cf14e701ce1ff495cab56fb1c39b6782fd13faade0` | +| Ciphertext from P2 | `4ba50472a8d1a23146504939e7536275b56407a3366ee20742d34eedd301ce76503a32b4b4c6986e4ff2f068951c78085bf9da7f944c06e866d551a735031c4da80a5e7b72749960` | +| Ciphertext from P3 | `f17f9ccc4b6f1b1100abbf1ebdd79eae0eb19640ecb02961858cc1b75a6426536885806044891a6fd98e88ba7cacaea8bb39ee4b91b86cf0e5424c4498405a73735447f4d5d7e7c3` | +| Recovered Secret Share | `692d92730a66096b0a971bfe712cde3dfacb726f94894c68841f8daec6cbb3c91df1be4a811aabd0a314d2b152156485b12fba9657637a14` | +| Recovered Verification Share | `7dcdc0aac7e24ad54a206a03f93d086f3aaaa0a999207ca5ed1798b522f7600c8136021ccf2844eb69459390b579bb13f2c285648bc0afe780` | + +#### 3-of-5 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `28ad10f793c78f91c4ff81fcc14baab7e4acbbfb5831601377a83a80e138f1babc022025e6f478dc120c72fff31318f101654d31ca760439` | `7bc21ed1ddc9084bb76737df4341e9662024e44732f92e699a766b5aebcc7887253cbcab01521ea45e2569ff70e472a4363b122259f1238380` | +| 2 | `0cb2dd92e19c593fe23bce1be0dc904ae2b54d222ccb30f9843852e1400f8fec0ccdc948d0a25869d6f9f3354635b40d8f5268e828827d1f` | `3a6b5c18161e72aa161462288373dcf69d8375b62780f4317ae0feab9ce68efcc853e8f5678587de630694446297bcc296593dda6ab0eb9780` | +| 3 | `edce3a511e913bfc7e3f6cab89774a22f7e7cdadf9a1e8e0b2e01edc775a61d292fe4be136c558e829419c9829eac395ad86e4137cb5dc1e` | `31c900c00f9b41acdfb045b8a09341bbc100e448c410d0c5a44928040fb1ee062e0f61cd43028ac4970d7c784f20e81c62356b9f3b4cbc7a00` | +| 4 | `3c7ed560932a84f03f785094b772fff9bcfc2cf7d1f579ec3b8e78c69cd2393320d3a7ca4778b31018dfc0b2dbc53fb1592e3b25ca9a481c` | `3b7de8170e210c6b87bd6a6974009d0e3f5a859bf98df073dec5aae7b001965d5063c5606885e62b13b9c0a2bb717cbd5d3a7ba490c1ea8800` | +| 5 | `6b366edc00b1655eacb298ee3d6920710b7f71ae60b1f381403a526fd3a1684cf5c76cf391c1bbc0389faa68533176e53727fc999b6ecf36` | `9c3f3a2b5fe19c2a4d9bd25ed99f7011c8edc56a0aafaefb6c7e524d280daf372bbef938507983d60bd154d8667458a9fa4ba803c6dfdc5800` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `74e66247b81e130ca8077e234e721ca80c69f5edcad0cebf3e75f0ca4c9ad3b532778ca0911ea317ba616a825c0f842d66a65c216e98841f` | `2ac240fd19889d93dde270a8faed2daf7fdfbbea5cc09c9b982e532183efe803d8ac0480707b3e6c1b211dc63c26dee2e06699a80d8dba9c00` | +| 2 | `ab0ed263fd9325ea453b65eacae73dd4f52275f60a58b543a71a5a4dfe72332544dbc18f36e5b83afdd6b426b54fc61eaf27151bfd2c9c04` | `e5dccb90f1c336a9a32dcc5780e575234def28862b104eee0599cabac19f584f93774cc91a1c27798f87a75488e13ebf261fa6eaea6ca54f80` | +| 3 | `7afbb7fae999a02ea72629747d16e356832297c0ff32e92bac93397b244ce1da3e49dd9be7e0dd7f69e7a13b8980267dd0aa2ae1aac9d83c` | `0bd2835fb8dd8f379f1cdc7e7815307578fd099019d886f057f02e1c552b78dd4e0c44b3bd231ec95b3c415f0de0ebfe7a51c35575c0a4ca00` | +| 4 | `08de0b0ac6e8196fcc1b79170eb7c5cb04c4d83fcccf7d2b907430dec025ddd622c1dec4a41112e7fe9231c1d8a1a448ca2f9d73776e3a08` | `599010b500ec99576e1cfd0a2e0200f4890dc36c7ce9911c69459a353847fd4efa5c39846f05b0a4e75ed3bfa0545cea1ba1e304109a8a8680` | +| 5 | `2e85d69349c8fb15b5c8a57dd4102c972aabbc804dc05f8f10299decd1ff2619f042c60a6e775570bdd963b7a3b340819cb66cd2621bc126` | `178cbde51f0dd2db75337f1603b9c81e36965d161ecc2e116b793fef04b43c2a38972c8800fa9ddd057eb992fb9144bd58c4d8a21924f80c00` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `329e5fb3820eb9bb01b5cf947df31df2f11f4a354beabeeced40eef52c80303f5e08958d7fb7df119bca33f329c499fbe4c9ee0425e59bb368ad034a4b2df8c3` + +#### Final Output + +- **Group Public Key**: `c7f0192c26da753dd3875fea28957843195e95e2624ed9064c3e96bc45d54002338eb48018180193b11f94dac4ef1ffc6623a6b8e762a18180` + +#### 7-of-14 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `2e49741700240512141761f0c9bb8a72a06ee832d3ca21086b0284769a127e05bb0e6e316705c52a38aa23c2fa5c7f5c200804e4d8fe6937` | `26beedd270a1804e1c1c3afaeda6dff964f1f736bf896ef06317e50c3ba60dd944861f41976f4c6ff5d50cfd5985dd1e40ded261aac41c6180` | +| 2 | `20bfda80a16b8a1465170831b9429f17d39c844920f6ab0549b1bf4f3bec095b68e10df0fb790f7a6bc42f224e700b77f411cc7144d6f704` | `85fe44016c3ebae0343f933d875103b545ec191b3b81d8e40ba542a56615b668f7ea609e3602e673e31cdd41ccd5a88fd1a776aa2ee2ac1d00` | +| 3 | `6b13ab64bf5a32ce2ea651582203d232a353dabb8e10a58fad2e71c4a34d7c36d91ac34cdf8f1fe0b84691b60a0664e75dfdf5751b78f50b` | `ffac62d10f742369ce24c40caa0f7230ede54ce9a8dbfb9335a229976578a734de73208db2204cc5078f8dba60e92cb8c250743ac75af5bc00` | +| 4 | `4baeef01465f0b88f0f971aadcc16b62a21284eef58c61234f20e0c72004184034dab5e60494838560b475a638d3c6ac36c9fda843a63634` | `ca975dc0ab94079efbc007446526fc543cad9fbda6c114a6ebd6a40e270ec46a32ef4332f4129837f013e923e8ba27ac6a1559b35468977e00` | +| 5 | `e28ee2b0f7cec248dd167d249b3a55f4fdc95d0018ca1dba3df4484077e1a364dc13e8e77a54619234e95fe405b15dc6a7bdf07ca777d232` | `7dbdd88ff13f88fcd938b2fdb2c60e22d75b0dfe746aa7addc418ec507199031ee883b734e6940164bc9edbf213f2799bdbadc5960d3a64b80` | +| 6 | `b7bfa4c9d1380b63e53f04ae7064244cdd8a50aeee932fc76b0b8ff12b055ddfb31a5c2b1c4b6d2e210e088627bdc739ec5124d9c9b9f312` | `7c81e8e44857f1b67102408758a036e5d7c2040d2337847f77c2f49f5de7c10ff54a8125db2f5f5ffb659011f7e1aefaf9f8aeb3ff4cbdc880` | +| 7 | `dda33e41bc8043a7126c71f92caeb483a4dccef7a75b55ce2828bcdf5459de1d16cceb2cbc478acbd5ef8062c6b832fcdd7700d9c442ec3c` | `4e569326ddfe7b9ebb691f92bc37d942a48458bbc7e94d77754ec559f754f9cb7565217d46300f80bbbf680ae2de160a0b18b89c75a2ba9a80` | +| 8 | `6cb1996ae72d300760297aa4868864c13e6f67915cd9d3424453a189735269bb77b757be2805d099e74d26e6154f5f3af98e9af31aebd22e` | `6c26cdde7354c7bc38f5f6743ec5d87f4af87ba27656d4f55076362f5b9f3db1e168048a6604ea27f6b1b7c9c131d4d69d04117e71833f0e80` | +| 9 | `5ed04adc9d0914cc9bfacc187dab34446e28d049713d81d76948a09fa67be7751c9bdb21796b2b2962330cda92be004784ebecaa526d450d` | `270f1a229acf30f51fe44085b16d083cc1e4babcedec5516f40343f6aedb5b714d1940929264f6dc292a93341927173ba0def1f9ab1b173100` | +| 10 | `c8c33fe001de1648b036c78a0d4c7e7d4c61772f0c3bbcbb60d4499ab8a439d53094a75e04e8f84775fd736b457076a5652d40bcc599a517` | `f4752efa4e2bdcff22aeb8af3a3108de74d288fdabbd464bf0a80a7669ce74d23dfe40b6de911779178dae65b6ee1941d80759bd1662a95800` | +| 11 | `cbc062d53c85f4a6b46f23aea28af71f18268286d9111e9d80fbe5b23e1efa6cf25c90e7d3a5d60de389c006151ace5ff6215012234ec532` | `83e6c870c990bd7e109836a946731255a21a0b811e4361cc30b173bf7d7fd2857a9728d024499a329a954caceb04531f58a734a57ffa7aed00` | +| 12 | `8b95eabd2ce4125d4f5d832690e0e5612db9769865cca605c54c24d73a74ace968a8941070a146613e65019c506b87bed0d9ff0b92915f25` | `0e1027091c5ce5df6185a4e36334948130924b90c3063f24ec7d51ff02d6af24b1f53cbe09f80b7bda98331c11fb7bdbbcb56424d477ef9380` | +| 13 | `96b2536f046f0ee057d40f0541a08b3c3239278a2aed7c870b309f64795451fdb44a53aef5817c878dd323bf42121695aa415764ff70ad11` | `9a42ea4137eb4952bcd77550cf69377ce5f8f23ae6e411397563deb254d43666581e42f35eb1f5c30ab5a31bc8ceaea0bc99fb69c98e95b980` | +| 14 | `a6adbdf328f290f06c04a2607a4d92419b17ad3f600faf8b7e1f7b4c0fda5e742ad237600293d5e7d569b8936945dd83cd9bf95e211c5112` | `d9f60738374cc85b4e089ec6876ccb322f18a49b4b4df74e1a53cf741112762bcf99f49f323fe686e5ad07a4387ad8d08ebd8a479f4e7b8e80` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `59e3b1728224e5f9ae7e1ce2cd84fc9ee17bfcaaf41a27e076a49ae9a514ed3a2cdd78492d61004b86ee0e380d3e990d8f740a9da3ea0325` | `99c1ee621559234627fa395eb2706284bce1422fef9fd72486b0dcb046f9fb813cc5362b1174476f81e7c9e2a2fb6108cf7a6a3d6f97333700` | +| 2 | `ea42417e465f64293c8237bbd680f35240033443961e39f6addb94cb4c9e6c4e59c07db267f0b13b4db63fc708deeee1292d05d674ce5707` | `b3d16d8c5815adc525363175960aaeef7daa17baf2be1239c740e4b3f2c1f060aab2006f6302cdf35b8619340908101ad54e6c2e9e30b12880` | +| 3 | `9c4e5c7cdca3218334f86497bbe44f3daceb3a530b1e4fc9d7741fb24162f9b7e6bc92b1f76a4b54aa39656047c14e4f39cbde2cfb9a5f1c` | `39624b24ac85b0dd2b67aa7e731f7e51717d8398549fac6a902dc19e9c3b7bb7f19dc1fbba1c1fc509a65de63aac049bc39dde8a02f504b800` | +| 4 | `5743105fa015ebb8c3f0cdfb5e1f6c66a04c2ae2c954fa8a12c781b374f0b3abf9cd71ce8175c1ed86e1dee4f5b7fb151e5062945f58b11b` | `61167639b5657f968c0ceb5e988634b2fc2f7ef6acee7cd5485d5d228f4b5f5e3adf7ff70024be1812aaebda829d12b3ab4ddfaefeb7ccd080` | +| 5 | `2e86cdb94b8da9259ae2e44fd587c3a57bb329032ac908855dea60ef91386eb74a035bf89315caf363cb978f2d09b01cef9ff639cbce8603` | `5c0f8abf2cea2f9ee779f9bcba0049a8c12615cd9d7d578f28fb26bc0151a1a7f2670e19ddc4bdffaf51df68e1f87ffeb3ac0c0a1778efaa80` | +| 6 | `d8b45f019f23baf444354863f99dce063ceec008708c0faaea8b110ce835eccdfed6ff29e9dc7f08d88449287008d3c95236c00f2ac0c21f` | `462009b88fa935678f3a29376a8efc7f6bb2d0057adbacb404b086101a556659221efae9770d6d7c6da8382bb3b0308ec167514232d2496b00` | +| 7 | `d1cf5dfd5d55759b91c93e2980a6cf94d73343ecfa1f1f145c04a330859661d8d03ab1f126381606b7ea46a379ef0c130f571a626025a02b` | `5f6db290c2015aaf50e996c641110c6dad10068c0b570aee77681708f33395a4f8c12d3dc9edae4ed6d0f8e3c01e0b001a73e962bc95e2ac00` | +| 8 | `a12f851c5a5a9b0750198633053bcfdbd3cbb1bd7790b61c0f17895b855d2cce8b5cd0dd14e19edee22bcf2d67fc384350ba6778f36e0b0e` | `77f4b53239b514384290549c6138b6241f2f02fc39d3b6f1c23947efbcd7195e5d46286cfcf5cee09ee1647d48528616661db47a1a3f4fb480` | +| 9 | `b11d3d51f59adf66ca73457e7bba62139b8064a5cc6c7eeb263b932f9680cc52d52182cd4d74e0d9c5efe8a633d4b576a6b43a4125c9a530` | `bfd8165db47487561c9276938bf8ad03834315eff64512fb563674d94cc9fbf4809d9da5aa1a2c2adff3f15cfa191e404e08076d2fb72a0580` | +| 10 | `efb7891d407737d6488a4ac8c5cd1c4cbecb480d4b5041a6c5ba3ec7b28018da485ba5256b2a3e3176a0c584892914ceb9dad40983637231` | `ba271a20d2126bae422020f0f16753a0acd722d9017d5342beb669a3bee93d63f468b7d11e6a8c8d45642910a27c70efaf41bd5149546d4980` | +| 11 | `64b34a2f704bf15348d1ade111eae0d7b65bf18d0d905e4bfa0ad0d70efeae52e3ae0beaa9b4b00983d8ac26eaa72357b520fe40e7bb2d2f` | `ffa4aa5f48587895c23a984cebf9909fcfafbdd2af4bc2a48ab551c6d76e48e4431b898fd5a251863be5ffb0d6b49aa93aa3f9a342ec2c9c80` | +| 12 | `a62491805f03167668a2faf8e8247493041d665453a02b69f3d5fc5d3a47a556bf39f5ba093dd0cb6af46f932a235eac68753345eeec4e30` | `7c5adfb3d18d9067756808696208d102527d0cfa5d48e14525b781760973f04f7456a5e9cb3e74ee3db45206e3d58a8e0e992c7579e9f44780` | +| 13 | `a4ff7eadced6cc4763b892706ef28a5f4ae812d5b9c2585d981e0cb478e372e221e9ceb6e589efd9bac765a4450bb14a20d92c3edeffb224` | `f1b96e31dd8b632371c9984037f2d673bac2aa7e8e09afae28b65c786414e15c4e91b8e2c9ef138ad50e552ee9ac941a119202d4fd06230f00` | +| 14 | `e6c4ff2845a9cf0665e6c120e8487a864868286ec146bb93b535d8174c181a92d78a3340074548a4d875ee9c8324a59d34f0ba010242f201` | `2da67651edd8eb18da5cd76084a93a90c26aaa1b8e515d81a3bdfa77e5b2d9057b58ada93ebf6066a19878046782c0dc445272daf181443680` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `6d23b915f67d0da68c5606996b2f2cc267adfe4f43e5a3feb0c1518c397bbf0a58613a729d1d06dd0e6fcf114045190e33bfb5c38cfc75e9a669a4eeb84d12bd` + +#### Final Output + +- **Group Public Key**: `5d2925ebae890f415b3d7e4de139a278c03b42155240a5279cdecbd79683caa95c75efb94beeaeb1ee1ac17b56762aab98a07cbbe8b1ea2880` + +### COCKTAIL(JubJub, BLAKE2b-512) + +#### 2-of-3 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `11d2989adac4cd7d0affd18498410683b65faa55d37f55aa29985a2a60c10203` | `481898de652d5b6256de15b84b0769e7facddacb76d7a57fc24955715a5c2666` | +| 2 | `4824d871017c9d26915aca64fa086bbbd4baed78448cb29ef25f704b8e1f1608` | `e20e5582a702cf241f7ba514b7d9fedd41e65e954b2cdc9c0457ffcfcc3989af` | +| 3 | `25c54cf8332afa4f315a31c004da3340ffbd82e700d85a1a6dde532bb0b9170e` | `d6f44b9f141ff339b5d8623cba82bed6e9f3f97da81e67920302b4cc8c1d0884` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `51b3c5c002ed5659445453fb2ce8c791e51cfdd6d448bda5e80078ee6646dc0a` | `3318a3309ab0caeed3138a14e3be1fa761f62c9635bd5afdb16bc0533e96e856` | +| 2 | `75bec8e2a889ee65e32cbc84e013b8c43195d157b285cbfce2ff50a38bfba10c` | `09392a7ddd5dbbcc1b7bb42fb7d3315049b9e4e20eaeeba2177a19f6d64a5d05` | +| 3 | `99c9cb044f2686728205250e943fa8f77d0da6d88fc2d953ddfe2958b0b0670e` | `af6abe42f8adadf30a61ee5e88b80f70ccc3089606589c77bb7911b6fa92462b` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `05bb3a8d9cfb4669dab7030558580d769eec6712f5cd514f335eb39a79777acd904c2321252bb20fd25961ce9a0f286ac63dba1619c660033a4e4be5c820b686` + +#### Final Output + +- **Group Public Key**: `6e48837cacc2cf38377fd9248baf43ac2ba91d641c5b3eab0827b2c0f12ad7d6` + +#### Recovery (Participant 1) + +| Field | Value | +|-------|-------| +| Ciphertext from P1 | `32edacd4da8afd0380f7e577a965bfcbadd8a086f9c9be596eadb10216c05a2a3162cbd24eb339dba2c942de18d61b71` | +| Ciphertext from P2 | `891d5baa9845ae997b69e63a8e7c70865f79c21c369cdea71695ceb16356375879470ec456ed336bef29b4a710ef7cce` | +| Ciphertext from P3 | `2a8c326eb385f811bda008a79aff1f9fc0b141c47607df14a7af282a8b1919662578a21f46ad03b4432213679ed4dfe1` | +| Recovered Secret Share | `51b3c5c002ed5659445453fb2ce8c791e51cfdd6d448bda5e80078ee6646dc0a` | +| Recovered Verification Share | `3318a3309ab0caeed3138a14e3be1fa761f62c9635bd5afdb16bc0533e96e856` | + +#### 3-of-5 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `8a6d09f226a24ab14e12d4cf7939681758b571b78a81844d6b78c3d7034d6d0b` | `3251d5c596b4763fabf7da22c5e33fa80b4666d84bdf486077e5276f9fb89e84` | +| 2 | `10cfbb1c024a9ed6162569eea190521e0b59c8aa720fe35a3519d2dd2e2d1a06` | `daf29360afef36c7a816e5979b313bdad5368a92d9336c05c3e5089f8ffc62be` | +| 3 | `8ca247a17a2bae026617f2a284ea573f18d106e61ac294be5016384b6664a705` | `285656f8d3c9ae6ec97b33892f83a51887b16952a108bd2134b8468803e4968a` | +| 4 | `5acbff5d41ec61ad8a92854f939476fdb9968795ebf19aabc914d4d65de6690d` | `e07e52c7545ebe51504ba6dd2c1c76ff3e7aee4fec8fa83bdeb91918c58787e3` | +| 5 | `36b83d2ed77362108f91e8d40509750024c2707502ac7cfdce6ba844ed6aa206` | `7cab434cef12f07b04da81bfaf71de5a6b387ef1a603cc522dcb5115ba62e683` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `d192123cb3952a7be75c7048c4cda67ccaf99d2ce83579430809739305a93705` | `99eca94fc3af346d5fbef1ac5bf6fb59843723c22bda8a03132caddf61a4c1b9` | +| 2 | `cac23979a4ff10c15d88dd5bb8cd731f7a56fe9315dfd8ffc7b102af7ee67706` | `7419e57ae943b925185f27e05d2a8ed91eea42f255e27504dea0d32a981d8654` | +| 3 | `9f9424130b11f8e5065f114e5a8948d840c571dcdfef52823432652f2b489400` | `6926acd26b2e9d240624cff2ee2f89eec4e863008a838786cd1149324a68ff2c` | +| 4 | `0735cae045d876ba65f1d3eb3d218d4d1f812c0748a34ed1f639ce79f5820a02` | `8c1b0f38cd5de9bb9f3f9ea326901b573d28a7421add8315e3d6a2091c3cb15e` | +| 5 | `02a42ae254558d3e7a3f25356395417f158a2e144ef9cbec0ec93d8edd96da0a` | `29f6b2b1eea0275311e800642cea5ca8ce2200d7243ab50dbc2e1799d1146253` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `ace2e5f05fab9d8369a1e79e516d3c4d68632c89f10284b67c64a72634331c7fb186676f70abb59f0b2f401b91f24c2ec42cab01069760cbfe485971526895a1` + +#### Final Output + +- **Group Public Key**: `4ccf463f718689c226fd714367c4fb51ad4e6fc4911cc9b262852bf8aff4af50` + +#### 7-of-14 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `42fa1bced9d44eaa91c7130b00d655369a57217ac7b9a80d4e7ce217f1cf4e03` | `5af4180913d87c2220280a9c4c493f612c5c18010d32bca57689c786b2b63e72` | +| 2 | `62dd2648e35c9fe597e4b895b7bcb13398ce4c31175fc42284abd4ce91a13603` | `a510091418157ef5f96058991026df8a8cc7399a72b4ef9a3c79d1fd52162d08` | +| 3 | `75ebb5adb727d2d9f2d86c429cdf0e9cb67051fddbcda2d2ae73a8820ac92603` | `454592d9b11e8fd4da9cbb75acdad08dd8bc74fd284e27d9a3f714423aaad8a2` | +| 4 | `f22c3ce17d20852089b760c96a8271f6b687dd860aeaf14b0b89cfca39c57f01` | `fa645ab3c9a901294eb759ba34cc450362f334c93a318fccde9a2aedfaaa4c47` | +| 5 | `95a0baa924993a740af56268c64f4e341360da4c624c3d688c9c60438db1fe0c` | `f239e2fe35250abdb8e6046177f3949e5e3dcfb0ff62ce66eea7169e78ee7fa3` | +| 6 | `69acd10ddbd23fe3be0cf2308bef8df0ddaf9d68cca0fc2100e96bcd8b8c8009` | `a4dbfa6a3acb3af65f0eba94ee9c8278e19d8758d8ec8fe57f89dd86f0c737c9` | +| 7 | `f143c80cc033974df36f03a05f6c39020dbe9c7027176bbc695d9b0329be1e0c` | `c612b4080d07d9b9743e19b6263a7f54b2ee6bd0a90f01705af7b5072ed80b70` | +| 8 | `dfcd2b66be3f61404fa3168294d6f529638425db4b6f56ef9e5a4dd770a22500` | `5d510ea3ee3aa2be2435ef996990350693e4477d1b2ab855dee6dc22da727231` | +| 9 | `b009a7f2ffa853be9fe5896014ebc50efae58275667e139b5afcd337dcfef00d` | `16345d02d6163fb45071a8e060e93e0a153f6ffa4604c90b67ccdcf060011b5b` | +| 10 | `460c639864f66a3b0dd52a8aa1bfa49826fcd7df02ad8de2a590a1f00d37bb01` | `a13ed26059fac029dced05f1e823edf9504e174bbeebe073e5a00aa1f6547d4c` | +| 11 | `00dec2a49175f48f43f2bc12e8619e61cfb3688c6b9e41a9264dddfb7d8c0802` | `84c2c49ef0a8d5833ec15becea091315bdc89f697c97b8fd8ca521466c9ee168` | +| 12 | `bb58ee98116c739dd03652b7bc6e027bc33f1f775f2e496d04df106fd9256e09` | `1704cb469de5717b0a734573bf6140049848958766c65c6d98b0197b60924c59` | +| 13 | `3aed697eabd74db9376e49675d25adefa691ebd3150c77e84e2c4b91960e7901` | `f52450a7ed19ce4451ac146def563db000ab1f0571da8ca30d09534ddc3606ab` | +| 14 | `d0470dc53552b03529ceabe4e4f14a6cd1763cc667f26ab7b9ae44ec0929ce01` | `6df8004a1249b30ec5dff1ec931320068517c1f5c250330b6cfa62cb24b40ee6` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `22c0303a41b67951f7daeba907f360497defa6ce77a255605e468532fc15bf0a` | `bf5b892eae59a3485978639cf171ae6458bf4cf39575d3de647bc678afcd95e4` | +| 2 | `80fa94b5d82dd8fdf6d1055de086aace960c413cb90d6d437da2449d379b1f08` | `53a3f41215d735688aacd74f4b9582a070c8c2d4b28a2286328ab18bbdc42cec` | +| 3 | `348fbe7e1d6d05d5135d471beee77eb254350d92a7db5144cb736eeb98643305` | `c29136290f45fe1738e8a3a6c8fafe425e6e51e1e7d7f2dc3779d98b2d25a626` | +| 4 | `4cc0dee20c4799d110ec3ab623114c2bed36de76c4140e6939dbda5a0244d307` | `77b86875cb32fef8090d338099f9cc8479b7ceea27f1b57d8ce5c90abfb5ac69` | +| 5 | `f9a93f085906442c885b822721ab65cc704700931885805268485f3ebee31b0e` | `6c230b5dcf336a12903dee15ea00996e3e96555e5ad1dd043822e090414d7758` | +| 6 | `4eaf8bbe8580b4c8495d1a4afb4283c591e87993291fde080596ccf14a737102` | `39740b467c86700cd45c758338eb5c51c709bdc49988aa3d7134ca9ea084829a` | +| 7 | `95314dbf880f7b72c3090980e8a3123aafa63cc656210892d4d53d23969d2307` | `d5f57b8d118c62364f29db73bafb826d55f248f95736e73cc73f02a153992d6a` | +| 8 | `a5404e6ae360b36ebd609e11dae8a35618536538899c0dd8e2c2e1ee415b5d06` | `ab98a06af6201692eaa54411cf74b978454820cebc34b70f59e419524597d799` | +| 9 | `86fbe9a9369e6362377760df98b56ab198f20d775295bb8ca860b279acb5a20d` | `fe2c9ed6dede80814f8cc7df4d9a63ada02b88e93f4c2777edb0f7c85cced56f` | +| 10 | `84432c010e88d02e9fb51967f668a9b53d9d97d460fc266aa69f0e29d6cf950a` | `c5cb250c683c01fbf80bd6bf01aaeb89183f6f15b675a167899184ea1c605e69` | +| 11 | `fd3f0f8f4aa2930f9a70aa1b9ed3281a62eb804a5d1a4150aac03f5f7657d50a` | `a6eee8a48649a3343816b8a321bdd513bb15b0531ee7a0611133088e45a92539` | +| 12 | `c3ba6cc0e17d6b20b0c35476b649d255f40451e321849bd284cc7b04ae5a9b08` | `ce0fc6d1e7d6da72550de7e28c33733a8b40612095135c6afd72e207bc6c1ad6` | +| 13 | `5d9a309bc0da71e27e84ab27d3b6b58500523ebc55969989c40b05003fb27e00` | `3175fa9e2fcf656db482fa727b5c2d340b114f69e88c8b82de7d06dcf6db5da3` | +| 14 | `949af86ff959c4ade4fb3b68551173847aa58b9869510b072a1064a7b477e207` | `22b698df1caac6f4d59cf04dbe88e6b09c7c75c1904a722eb12f1e62a9292c5b` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `329835b6f4f45c96ed006408bc96a839e814d73329e977657303ca8594f0942efc4de223ff024f3f3d64bd5f4d5496304f5318409a250af00e518b5c10d93245` + +#### Final Output + +- **Group Public Key**: `c572f3aa75fd20c31332a354fe23cb12e1a97cc0821d36f47c4690b4786efc0b` + +### COCKTAIL(Pallas, BLAKE2b-512) + +#### 2-of-3 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `dce7e285e962eb4e696c1100cde1f7b6ebf52c3a2ca21261e4664a2a9d939e1c` | `510e2e035daee4a76c500d3c0a7556c2c8067ffd26849e68341f81e502d6039a` | +| 2 | `ccb5469af32146ca72647d34a6a97c228fe45e8e9720e42aafdc3932c63a1a1d` | `eed2c4cda74c1db2aaf31fd83bc097b2f8cc5b1a079c8c90e73572608486811e` | +| 3 | `a40391568417f3fcfde831017c8c4af5c91287ac492addeb55735e6b63c31b14` | `39eb0f3a427636d256add1e57065e4dceb863240ad9fdcbbd961ab2e4b5fc2b0` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `c908dbcd035b1aa944385396307f8a1159351d59f84f2f4f6c0400db22f8b923` | `5761eadbb27999c49a5f1dbea3a85caa9be94355e689739a28a88b17267b77aa` | +| 2 | `cb8697561f597fe9c4d0cf60966366fb871bbce43d451acde4728ee2dc849f2d` | `fd29aa1a33095e42950980154ac5f915ad6b187d591839da122edf040b2b1b3e` | +| 3 | `cd0454df3a57e42945694c2bfc4742e5b6015b70833a054b5de11cea96118537` | `8a2231f605ee105fb22e51fe1593a8cbb660901179db64b6dad8460a3c68d582` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `e76d93978d0853e17c8850556e08456efb9b80799bbcd06babde17deeadfafcaa0eb28f3a5e7d94db8b9663387e0fc9d0c08bc89dbf205b09701d1c893e38209` + +#### Final Output + +- **Group Public Key**: `1b79857a381a900f055bc241f2435e601192730d17df7e20c18f8e525fe16f12` + +#### Recovery (Participant 1) + +| Field | Value | +|-------|-------| +| Ciphertext from P1 | `874f3f77c95bb8ad202d3acdf0aec2842effbbe7cc8eb8474fddf3f1ff6bc829d6593ee0cc0f50956a0fcc4174e5e43b` | +| Ciphertext from P2 | `92ce5450df413f6c9934beb0803e1fb605c0ace3d405dfed7d9b2850ccbacf8e057aa33b0a27ff1496591219d5733d55` | +| Ciphertext from P3 | `5785bcc613ffdbfcb201820c839071a82099592f004452cbdb3a9a24d9998a81272f724caa2ce6c5add8689f0cd96614` | +| Recovered Secret Share | `c908dbcd035b1aa944385396307f8a1159351d59f84f2f4f6c0400db22f8b923` | +| Recovered Verification Share | `5761eadbb27999c49a5f1dbea3a85caa9be94355e689739a28a88b17267b77aa` | + +#### 3-of-5 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `eea0877b8c311d7be72275ead14c203f0295e727dcdf3ec32bc7947f15920327` | `614232db54489f18cf281d7e989180dd0fa465f0aaa60efdf6d8dfad5d8b5aa9` | +| 2 | `9c4f7ba4c99f68301674374fcc95c765b0dbc0f08df839559e3dcd34d6141a24` | `ced2c3cf62260694c46cacc236c46914c411f59439395e6e2811425e26c0668f` | +| 3 | `781b5fa53c3a0dd79ceca9be323e6e4f857638bbd9d164c6cdaca584b6799729` | `a9d031584c1a4dd180724315f9b65b6fc753821a58c11ba7b3877766bda3db1c` | +| 4 | `694b3227391db91004590958787132faa7204b56f3f69ee8ff097f8fb442d021` | `19f8413ada8dc86d2faece0a0b4f7ef9c0d14a933d905a589f485a5df0516830` | +| 5 | `9689e8ae557073761bc9b97265690f06021ebbff72df424845b69839a867eb00` | `617ae7f1c95b3fcab4fba02c5f4f3961f83123169cde6e162d60f98b35faa492` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `60ab53256591d90b710aca515a320cb51b48bbbb6d3e7b0b0f621ed1da592f26` | `1518c141ee1c93967cf10900cb7d2531ad6ffc6c96c52d339b81387fa4b06600` | +| 2 | `2fe168edec2b0ba2f0fcf758d287e68edab9159f66d1c8e78868da6dc2fa4d33` | `e0e04aa51ded03d2aa40bcb48febc5568be82665cd2414373ffa4cff941623a4` | +| 3 | `7b2bc3b7dfc5308be143665e7cd42980d7693ed0924c343dd5a7e6bdd5373636` | `1fcc43ae084a4940ec4f5b6c74b0b44c426447eecb98f165ac118951bf73e731` | +| 4 | `448a62843d5f4ac743df14625818d6881258354ff2afbd0bf41f43c11411e82e` | `5115582d310a9832e7f86b8d7c883ac450a92035df95bb0123fade1bd1129eb0` | +| 5 | `8afd465306f8575617cf03646653eba88b84fa1b85fb6453e5d0ef777f86631d` | `c7493a78608370152fec1b31fa5c3affb5a4106bea8bada4cd191aaf8356d11b` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `77adba7a0d552f83f48e5637a2ba387d51aee5a288f71c9408d01e76251f38682f005f07992813c69de3d82d92bfeec31aafee275eadf845c62e522bd7d8ce5e` + +#### Final Output + +- **Group Public Key**: `3f1730e474eace6453afd08478d6fd87265b80de4d9e9d2fbf532fcd2b4f583b` + +#### 7-of-14 Configuration + +| Participant | Static Secret Key | Static Public Key | +|-------------|-------------------|-------------------| +| 1 | `08cb5f7c1d314d69662f575308143b9e1079efd8a40e66847185c496956ae61f` | `b3dd1f82c0ac45ab49c84ff6b87e5ac6c1769ba28d99a893571fd1f338e49b2b` | +| 2 | `5201d3204930a047710c72d04d887c775d4a4974b38278e30649ab2b29e8a014` | `a09f2e8bbb2a6ecb1f755bdbfc9af44f79014a115a75acdbb70fbf41e944cd02` | +| 3 | `b2412fb777b0d886b7d2918d1985e4b11923c0e94eaaaddff9eac64429af022d` | `bb44e645efc65742f25bbff8c170fa39e494ba0a40225959abd2e084eb3793ac` | +| 4 | `c9449b4f3e2efabf8f9e636b482908171d28b61b67060c8195e55acb1304782e` | `935a770ef15e24cb69542555bd55f14d6cc819ea557cd381b86b9239c242fea8` | +| 5 | `6dc8e6da546e45acec2d472e3379d5d6fa06992307d3cb5a2f27460074319513` | `a118c4e268c9f6fc4d4ad58d17753c8b2d948d65db2c363ecc0137d0a03ac1a3` | +| 6 | `a5bcc4ac86ad1e6574d10d978b9539d3c98c2ba26b646a0a2e8ce89b4a96db02` | `65dde1876203d96318a3a9f167398870ac5d16b10f5c9762114beb2f3d0c410e` | +| 7 | `648cd331852802cb3985675aabc69d00e47ea3c8922a6a789d8b40736aae8331` | `bdc648337adf58d83b89f22973cfec12aaf958a1edf7317e3f45526cc3a5da8e` | +| 8 | `3189581d1c0f906a0a3618bf52aba812363aede5a646ba23974b81be0a532d01` | `e4556b51f09e08f8013dff7da92ff9ad6dd3cf45db1e53f70163e9268762ce05` | +| 9 | `140ac48c030cd4b843843640ccbf8f1706d9f8d55419befef5c89766e458dd08` | `04a45ffc97e5b4f91f7e6d1a94a7862226958970c9c3092d0991bdcce3133eba` | +| 10 | `6b3cbcdae0d4805ecfdfb961d191ec7a55c66f23cee7cee6be3732d8f6295004` | `afdd1b36f09fc6c4398f6d19a3e6533ba00378c93f68e5263e245f7d1330d9bb` | +| 11 | `61778ade90bf65db59820d1a5f12d1850812a45f5b6b5546fcecc01614a00932` | `a400592285002667fe4b05927de6409376b0e3762622d81be49e9b55c992c38d` | +| 12 | `f8f70b07bf46f48d6a9832b7da52f739b2ab3972219f2e2d89d0148cb3173607` | `e134370a598f51a8fd9d544fd2724819c95c740a749b979955273e22488556a2` | +| 13 | `094b810cb4fd203d45d81c3cf9ef2edd4d2509c8b67680f3c56e37fad3a85124` | `8b79bfb62b66f79cfeb3104764317adf0018039745a4dedfc776624c4377c834` | +| 14 | `e8f9024cdfa308d87e267643b6dd321e79864f5b99bb1d94ea37ab16f4e69103` | `2bcf96d64b641f1914cd9e56d5564f89524f9b9fcaa648555cc68c2d3eae2526` | + +#### Round 2 Outputs + +| Participant | Secret Share | Verification Share | +|-------------|--------------|-------------------| +| 1 | `d79fbf226240b029a278ba8cff5c3bb6cf79d8bbc7e5ca8b4347e930bb967b3c` | `d013779e5806291be27bc99943593c4905594724ffaa9bada7ae94e73410b78b` | +| 2 | `8ae7b1b6a7c1430e5058da4d2f935e9af67385569a52f2006ed5089e86438b32` | `16dc962b2bb17c21163a033a36a182ee899925f59ebd06c50b984e9ce295b380` | +| 3 | `106dff7c0f9242a1c3b0b173f87ecbc05958d5a86ddcfbfe054a8a8fd186b820` | `44ce84c68959a3cc08db1a7af5b107ab0b34f7baa2b59a44c67269b84a904e2f` | +| 4 | `8d30ec51599fe1e3bb84607aef68d9cec511183c5bc75126e29b484054319514` | `ed560f4eaf3cdda8f83c3c449ac8e3705036fd5f8223241933d8612127cda42d` | +| 5 | `9448759197c871837591d759cbe83871f65a445a01852f45cfbb9dc1d5f43623` | `53739c87446a7666eb59934f4df07d4ba7c8951398024a616a973e7388afaeb0` | +| 6 | `31b270aa00b3533a62cde158e478b2bbc30044c03087073df24f85c826121d15` | `d16e3974d8cd3f4d04e16957f1c053e4e147af2c992081020a992e268c620d36` | +| 7 | `08864c3503d5198769e2268dba513fd0f9eb7e048b3452f7f1c7719d580ccc01` | `e70440fe2879c3d786393dcd48e22cfd43e20a54ee08fb2b5bedb4c37163969f` | +| 8 | `82926d8eb549e8e3a30516c59f5e8eddd9f2a4b111ffc569e9c9d32e30611f1b` | `f84367503cda809630cf988150c47b8420e86f85c669b9b92163d989de87d3a9` | +| 9 | `0a5b2df4e242a0964b7ee2ee7c7d82b94472b615a69cf8a921f85346d5465128` | `2fbe8ba96eea7698f825eecdfdcab9eaaaa828a17ed2064ff7db82451b5afd18` | +| 10 | `607c77287c9c806314d10d369b9f51e58fae4bc579616910940fbfe0bd6eb830` | `3fcdeccb1f186cd8b38174b1b1d3ec1a281620c9bf09752f7d9923139fe85a17` | +| 11 | `f9750696424dbd3320a04581946ac9c603fc1ad36fbcf46a345fa4a8d5cd3b16` | `ee686e963e305c36e6a0ec8276aadfcaa5cd712bcf996c229b7983f999b313af` | +| 12 | `74d83ff9b50d45127d863a9d4b21ee2804afbdbb6ed5b03e0398a693e1697c1f` | `676b6362a8c65ec04f4b5d88c8e49796639e241c4379c96882ac2ff3c7d45294` | +| 13 | `1bd9af8c1bf1369062ff35be0f7478cfe1d3b305a34d3319e8f57ea21f2cb531` | `9a4e6ccbe4375b224c4ebb5aa71330b379c028f9e20af0b94ed2e820f8de1e8c` | +| 14 | `7a4a24b9e81fcd0bd6f13db8c331f47356aea695b22140f153c1b2c322b9503a` | `4ab2228f0be38e3d2de6d0f68d258884877e75ca31794e142b9a4ef332ecb7ab` | + +#### Round 3 (Transcript Certification) + +- **Extension**: (empty) +- **Transcript Hash**: `a851f0e21184e631b83c336ada0e80e75fe6615fa931aedb09ea017c154998962eb509a051abcd7eb533232e4158de28ff43554cbdc470df53e45e390d908677` + +#### Final Output + +- **Group Public Key**: `d4a3a30c91ee1197555361749ee9650ad443fd9e7958ec8a0a04d2137b68ea9e` diff --git a/frost-core/src/tests.rs b/frost-core/src/tests.rs index e4855c905..92d05d0b7 100644 --- a/frost-core/src/tests.rs +++ b/frost-core/src/tests.rs @@ -4,6 +4,7 @@ pub mod batch; pub mod ciphersuite_generic; +pub mod cocktail_dkg; pub mod coefficient_commitment; pub mod helpers; pub mod proptests; diff --git a/frost-core/src/tests/ciphersuite_generic.rs b/frost-core/src/tests/ciphersuite_generic.rs index 58b0da74d..e769e32b9 100644 --- a/frost-core/src/tests/ciphersuite_generic.rs +++ b/frost-core/src/tests/ciphersuite_generic.rs @@ -6,9 +6,8 @@ use alloc::{borrow::ToOwned, collections::BTreeMap, vec::Vec}; use rand_core::{CryptoRng, RngCore}; use crate as frost; -use crate::keys::cocktail_dkg::CocktailCiphersuite; use crate::keys::dkg::{round1, round2}; -use crate::keys::{KeyPackage, SecretShare, SigningShare, VerifyingShare}; +use crate::keys::{SecretShare, SigningShare}; use crate::round1::SigningNonces; use crate::round2::SignatureShare; use crate::{ @@ -1174,605 +1173,3 @@ pub async fn async_check_sign( - mut rng: R, -) -> (Vec, Signature, VerifyingKey) -where - C::Group: core::cmp::PartialEq, -{ - let max_signers: u16 = 3; - let min_signers: u16 = 2; - - // Generate static signing keys for all participants. - let mut static_keys: BTreeMap, SigningKey> = BTreeMap::new(); - let mut participants: BTreeMap, VerifyingKey> = BTreeMap::new(); - for i in 1..=max_signers { - let id = Identifier::::try_from(i).expect("should be nonzero"); - let sk = SigningKey::::new(&mut rng); - let vk = VerifyingKey::from(&sk); - static_keys.insert(id, sk); - participants.insert(id, vk); - } - - let context = b"test-cocktail-dkg"; - let extension = b""; - - //////////////////////////////////////////////////////////////////////////// - // COCKTAIL-DKG Round 1 - //////////////////////////////////////////////////////////////////////////// - - let mut round1_secret_packages: BTreeMap< - Identifier, - frost::keys::cocktail_dkg::round1::SecretPackage, - > = BTreeMap::new(); - let mut received_round1_packages: BTreeMap< - Identifier, - BTreeMap, frost::keys::cocktail_dkg::round1::Package>, - > = BTreeMap::new(); - - for (&id, sk) in &static_keys { - let (secret_pkg, pkg) = frost::keys::cocktail_dkg::part1( - id, - max_signers, - min_signers, - sk, - &participants, - context, - &BTreeMap::new(), - &mut rng, - ) - .unwrap(); - round1_secret_packages.insert(id, secret_pkg); - for &receiver_id in participants.keys() { - if receiver_id != id { - received_round1_packages - .entry(receiver_id) - .or_default() - .insert(id, pkg.clone()); - } - } - } - - //////////////////////////////////////////////////////////////////////////// - // COCKTAIL-DKG Round 2 - //////////////////////////////////////////////////////////////////////////// - - let mut round2_secret_packages: BTreeMap< - Identifier, - frost::keys::cocktail_dkg::round2::SecretPackage, - > = BTreeMap::new(); - let mut received_round2_packages: BTreeMap< - Identifier, - BTreeMap, frost::keys::cocktail_dkg::round2::Package>, - > = BTreeMap::new(); - - for (&id, sk) in &static_keys { - let secret_pkg = round1_secret_packages.remove(&id).unwrap(); - let round1_packages = &received_round1_packages[&id]; - let (r2_secret, r2_pkg, _received_payloads) = frost::keys::cocktail_dkg::part2( - secret_pkg, - round1_packages, - sk, - &participants, - context, - extension, - &mut rng, - ) - .unwrap(); - round2_secret_packages.insert(id, r2_secret); - for &receiver_id in participants.keys() { - received_round2_packages - .entry(receiver_id) - .or_default() - .insert(id, r2_pkg.clone()); - } - } - - //////////////////////////////////////////////////////////////////////////// - // COCKTAIL-DKG Round 3 (CertEq) - //////////////////////////////////////////////////////////////////////////// - - let mut key_packages = BTreeMap::new(); - let mut pubkey_packages = BTreeMap::new(); - - for &id in static_keys.keys() { - let r2_secret = &round2_secret_packages[&id]; - let round2_packages = &received_round2_packages[&id]; - let (key_pkg, pubkey_pkg, _transcript, _cert) = - frost::keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); - key_packages.insert(id, key_pkg); - pubkey_packages.insert(id, pubkey_pkg); - } - - // All participants must agree on the same group public key. - let first_pubkey = pubkey_packages.values().next().unwrap().clone(); - for pubkey_pkg in pubkey_packages.values() { - assert_eq!(first_pubkey.verifying_key(), pubkey_pkg.verifying_key()); - } - - // Use the DKG-derived key packages to run a FROST signing session. - check_sign(min_signers, key_packages, rng, first_pubkey).unwrap() -} - -/// Counter-based deterministic RNG for COCKTAIL-DKG test vectors. -/// -/// Each block is: `hash_fn(seed || cs_id || uint32_le(t) || uint32_le(n) || label || uint64_le(counter))` -struct CounterDrng<'a> { - seed: Vec, - cs_id: Vec, - t: u32, - n: u32, - label: Vec, - counter: u64, - hash_fn: &'a dyn Fn(&[u8]) -> Vec, - buf: Vec, - buf_pos: usize, -} - -impl<'a> CounterDrng<'a> { - fn new( - seed: &[u8], - cs_id: &[u8], - t: u32, - n: u32, - participant: u32, - hash_fn: &'a dyn Fn(&[u8]) -> Vec, - ) -> Self { - Self { - seed: seed.to_vec(), - cs_id: cs_id.to_vec(), - t, - n, - label: format!("round1_participant_{}", participant).into_bytes(), - counter: 0, - hash_fn, - buf: Vec::new(), - buf_pos: 0, - } - } - - fn refill(&mut self) { - let mut input = Vec::new(); - input.extend_from_slice(&self.seed); - input.extend_from_slice(&self.cs_id); - input.extend_from_slice(&self.t.to_le_bytes()); - input.extend_from_slice(&self.n.to_le_bytes()); - input.extend_from_slice(&self.label); - input.extend_from_slice(&self.counter.to_le_bytes()); - self.buf = (self.hash_fn)(&input); - self.buf_pos = 0; - self.counter += 1; - } -} - -impl RngCore for CounterDrng<'_> { - fn fill_bytes(&mut self, dest: &mut [u8]) { - let mut pos = 0; - while pos < dest.len() { - if self.buf_pos == self.buf.len() { - self.refill(); - } - let available = self.buf.len() - self.buf_pos; - let needed = dest.len() - pos; - let to_copy = available.min(needed); - dest[pos..pos + to_copy] - .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); - self.buf_pos += to_copy; - pos += to_copy; - } - } - - fn next_u32(&mut self) -> u32 { - let mut buf = [0u8; 4]; - self.fill_bytes(&mut buf); - u32::from_le_bytes(buf) - } - - fn next_u64(&mut self) -> u64 { - let mut buf = [0u8; 8]; - self.fill_bytes(&mut buf); - u64::from_le_bytes(buf) - } - - fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { - self.fill_bytes(dest); - Ok(()) - } -} - -impl CryptoRng for CounterDrng<'_> {} - -/// Test COCKTAIL-DKG protocol against JSON test vectors. -/// -/// - `json`: JSON test vector content (use `include_str!` in the caller). -/// - `hash_fn`: Hash/XOF function used as a counter-based RNG for test vectors. -/// E.g. `|data| Sha256::digest(data).to_vec()`. -/// - `compare_encrypted_shares`: Whether to compare encrypted shares against the vectors. -/// Set `false` when the ciphersuite AEAD differs from the reference -/// (e.g. P-256/secp256k1 spec requires XAES-256-GCM, not XChaCha20Poly1305). -/// - `check_recovery`: Whether to test the `recovery` section of the vector. -/// Set `false` when the encrypted share format is incompatible with the reference. -pub fn check_cocktail_dkg_test_vectors( - json: &str, - hash_fn: H, - compare_encrypted_shares: bool, - check_recovery: bool, -) where - C: CocktailCiphersuite, - H: Fn(&[u8]) -> Vec, -{ - let file: serde_json::Value = serde_json::from_str(json.trim()).unwrap(); - let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); - let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); - let hash_fn_ref: &dyn Fn(&[u8]) -> Vec = &hash_fn; - - for vector in file["vectors"].as_array().unwrap().iter() { - let n = vector["n"].as_u64().unwrap() as u32; - let t = vector["t"].as_u64().unwrap() as u32; - let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); - - let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - - let expected_ephemeral_pubs: Vec> = vector["round1"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_group_public_key = - hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); - - let expected_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) - .collect(); - - let expected_verification_shares: Vec> = vector["round2"] - .as_array() - .unwrap() - .iter() - .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) - .collect(); - - let identifiers: Vec> = (1..=n as u16) - .map(|i| i.try_into().unwrap()) - .collect(); - - let mut static_keys: BTreeMap, SigningKey> = BTreeMap::new(); - let mut participants: BTreeMap, VerifyingKey> = BTreeMap::new(); - for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { - // Try direct deserialization first; if it fails (wrong length), append one zero - // byte and retry. This handles ed448 where JSON stores 56-byte raw scalars but - // the ciphersuite uses 57-byte RFC 8032 format (trailing 0x00). - let sk = SigningKey::::deserialize(key_bytes).unwrap_or_else(|_| { - let mut padded = key_bytes.clone(); - padded.push(0); - SigningKey::::deserialize(&padded).unwrap() - }); - let vk = VerifyingKey::from(&sk); - static_keys.insert(*id, sk); - participants.insert(*id, vk); - } - - let extension = b""; - - // Round 1 - let mut round1_secret_packages: BTreeMap< - Identifier, - frost::keys::cocktail_dkg::round1::SecretPackage, - > = BTreeMap::new(); - let mut received_round1_packages: BTreeMap< - Identifier, - BTreeMap, frost::keys::cocktail_dkg::round1::Package>, - > = BTreeMap::new(); - - for (idx, (&id, sk)) in static_keys.iter().enumerate() { - let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32, hash_fn_ref); - let (secret_pkg, pkg) = frost::keys::cocktail_dkg::part1( - id, - n as u16, - t as u16, - sk, - &participants, - &context, - &BTreeMap::new(), - &mut rng, - ) - .unwrap(); - - let round1_tv = &vector["round1"][idx]; - - assert_eq!( - <::Group>::serialize(pkg.ephemeral_pub()) - .unwrap() - .as_ref(), - expected_ephemeral_pubs[idx].as_slice(), - "participant {} ephemeral public key mismatch", - idx + 1 - ); - - let expected_commitment: Vec> = round1_tv["vss_commitment"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - assert_eq!( - pkg.commitment().serialize().unwrap(), - expected_commitment, - "participant {} VSS commitment mismatch", - idx + 1 - ); - - if compare_encrypted_shares { - let expected_enc_shares: Vec> = round1_tv["encrypted_shares"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - for (j, &receiver_id) in identifiers.iter().enumerate() { - let actual = &pkg.encrypted_shares()[&receiver_id]; - assert_eq!( - actual.as_slice(), - expected_enc_shares[j].as_slice(), - "participant {} encrypted share for receiver {} mismatch", - idx + 1, - j + 1 - ); - } - } - - round1_secret_packages.insert(id, secret_pkg); - for &receiver_id in participants.keys() { - if receiver_id != id { - received_round1_packages - .entry(receiver_id) - .or_default() - .insert(id, pkg.clone()); - } - } - } - - // Round 2 - let mut round2_secret_packages: BTreeMap< - Identifier, - frost::keys::cocktail_dkg::round2::SecretPackage, - > = BTreeMap::new(); - let mut received_round2_packages: BTreeMap< - Identifier, - BTreeMap, frost::keys::cocktail_dkg::round2::Package>, - > = BTreeMap::new(); - - for (&id, sk) in static_keys.iter() { - let secret_pkg = round1_secret_packages.remove(&id).unwrap(); - let round1_packages = &received_round1_packages[&id]; - // Use participant 0 as a sentinel RNG for part2 (transcript Schnorr signing). - // This randomness is not verified against test vectors. - let mut rng2 = CounterDrng::new(&seed, &cs_id, t, n, 0, hash_fn_ref); - let (r2_secret, r2_pkg, _received_payloads) = frost::keys::cocktail_dkg::part2( - secret_pkg, - round1_packages, - sk, - &participants, - &context, - extension, - &mut rng2, - ) - .unwrap(); - - round2_secret_packages.insert(id, r2_secret); - for &receiver_id in participants.keys() { - received_round2_packages - .entry(receiver_id) - .or_default() - .insert(id, r2_pkg.clone()); - } - } - - // Round 3 - let mut transcript_for_recovery: Vec = Vec::new(); - let mut cert_for_recovery: BTreeMap, Signature> = BTreeMap::new(); - - // Build expected packages from test vector data and apply post_dkg. - // Some ciphersuites (e.g. secp256k1-tr) apply transformations in post_dkg - // (like a taproot tweak) that are not reflected in the test vectors. - let expected_vk = VerifyingKey::::deserialize(&expected_group_public_key).unwrap(); - let expected_vshares_map: BTreeMap, VerifyingShare> = identifiers - .iter() - .zip(expected_verification_shares.iter()) - .map(|(id, bytes)| (*id, VerifyingShare::::deserialize(bytes).unwrap())) - .collect(); - let expected_signing_shares_parsed: Vec> = expected_shares - .iter() - .map(|bytes| { - SigningShare::::deserialize(bytes).unwrap_or_else(|_| { - let mut padded = bytes.clone(); - padded.push(0); - SigningShare::::deserialize(&padded).unwrap() - }) - }) - .collect(); - // Compute the tweaked pubkey package (same for all participants). - let expected_tweaked_pubkey_pkg = { - let pkp_raw = PublicKeyPackage::::new( - expected_vshares_map.clone(), - expected_vk, - Some(t as u16), - ); - let id0 = identifiers[0]; - let kp0 = KeyPackage::::new( - id0, - expected_signing_shares_parsed[0], - *expected_vshares_map.get(&id0).unwrap(), - expected_vk, - t as u16, - ); - let (_, tweaked_pkp) = C::post_dkg(kp0, pkp_raw).unwrap(); - tweaked_pkp - }; - // Compute per-participant tweaked key packages. - let expected_tweaked_key_pkgs: Vec> = identifiers - .iter() - .zip(expected_signing_shares_parsed.iter()) - .map(|(id, ss)| { - let pkp = PublicKeyPackage::::new( - expected_vshares_map.clone(), - expected_vk, - Some(t as u16), - ); - let kp = KeyPackage::::new( - *id, - *ss, - *expected_vshares_map.get(id).unwrap(), - expected_vk, - t as u16, - ); - let (tweaked_kp, _) = C::post_dkg(kp, pkp).unwrap(); - tweaked_kp - }) - .collect(); - - for (idx, (&id, _)) in static_keys.iter().enumerate() { - let r2_secret = &round2_secret_packages[&id]; - let round2_packages = &received_round2_packages[&id]; - let (key_pkg, pubkey_pkg, transcript, cert) = - frost::keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); - - if idx == 0 && check_recovery { - transcript_for_recovery = transcript; - cert_for_recovery = cert; - } - - assert_eq!( - pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), - expected_tweaked_pubkey_pkg - .verifying_key() - .serialize() - .unwrap() - .as_slice(), - "participant {} group public key mismatch", - idx + 1 - ); - - // Compare only the prefix when JSON bytes are fewer than the serialized length. - // Handles ed448 (56-byte JSON raw scalar vs 57-byte RFC 8032 format). - let serialized_share = key_pkg.signing_share().serialize(); - let expected = expected_tweaked_key_pkgs[idx].signing_share().serialize(); - let cmp_len = expected.len().min(serialized_share.len()); - assert_eq!( - &serialized_share[..cmp_len], - &expected[..cmp_len], - "participant {} secret share mismatch", - idx + 1 - ); - - assert_eq!( - pubkey_pkg - .verifying_shares() - .get(&id) - .unwrap() - .serialize() - .unwrap() - .as_slice(), - expected_tweaked_pubkey_pkg - .verifying_shares() - .get(&id) - .unwrap() - .serialize() - .unwrap() - .as_slice(), - "participant {} verification share mismatch", - idx + 1 - ); - } - - // Recovery - if check_recovery { - if let Some(recovery) = vector.get("recovery") { - let recovery_id = recovery["participant_id"].as_u64().unwrap() as u16; - let recovery_identifier = Identifier::::try_from(recovery_id).unwrap(); - let recovery_sk = static_keys.get(&recovery_identifier).unwrap(); - - let ciphertexts_json = recovery["ciphertexts"].as_array().unwrap(); - let mut recovery_ciphertexts: BTreeMap, Vec> = BTreeMap::new(); - for (j_idx, ct) in ciphertexts_json.iter().enumerate() { - let sender_id = Identifier::::try_from((j_idx + 1) as u16).unwrap(); - recovery_ciphertexts - .insert(sender_id, hex::decode(ct.as_str().unwrap()).unwrap()); - } - - let expected_recovered_share = - hex::decode(recovery["recovered_secret_share"].as_str().unwrap()).unwrap(); - let expected_recovered_vshare = hex::decode( - recovery["recovered_verification_share"].as_str().unwrap(), - ) - .unwrap(); - - // Apply post_dkg to the expected recovered key package. - let expected_tweaked_recovery_kp = { - let recovered_ss = - SigningShare::::deserialize(&expected_recovered_share).unwrap(); - let recovered_vs = - VerifyingShare::::deserialize(&expected_recovered_vshare).unwrap(); - let kp = KeyPackage::::new( - recovery_identifier, - recovered_ss, - recovered_vs, - expected_vk, - t as u16, - ); - let pkp = PublicKeyPackage::::new( - expected_vshares_map.clone(), - expected_vk, - Some(t as u16), - ); - let (tweaked_kp, _) = C::post_dkg(kp, pkp).unwrap(); - tweaked_kp - }; - - let (recovered_key_pkg, recovered_pubkey_pkg) = - frost::keys::cocktail_dkg::recover( - recovery_sk, - &transcript_for_recovery, - &cert_for_recovery, - &recovery_ciphertexts, - ) - .unwrap(); - - assert_eq!( - recovered_key_pkg.signing_share().serialize().as_slice(), - expected_tweaked_recovery_kp.signing_share().serialize().as_slice(), - "recovered secret share mismatch" - ); - assert_eq!( - recovered_pubkey_pkg - .verifying_shares() - .get(&recovery_identifier) - .unwrap() - .serialize() - .unwrap() - .as_slice(), - expected_tweaked_pubkey_pkg - .verifying_shares() - .get(&recovery_identifier) - .unwrap() - .serialize() - .unwrap() - .as_slice(), - "recovered verification share mismatch" - ); - } - } - } -} diff --git a/frost-core/src/tests/cocktail_dkg.rs b/frost-core/src/tests/cocktail_dkg.rs new file mode 100644 index 000000000..812b012ea --- /dev/null +++ b/frost-core/src/tests/cocktail_dkg.rs @@ -0,0 +1,617 @@ +//! COCKTAIL-DKG test functions. +#![allow(clippy::type_complexity)] +#![cfg(feature = "serialization")] + +use alloc::{collections::BTreeMap, vec::Vec}; +use rand_core::{CryptoRng, RngCore}; + +use crate as frost; +use crate::keys::cocktail_dkg::CocktailCiphersuite; +use crate::keys::{KeyPackage, SigningShare, VerifyingShare}; +use crate::{ + keys::PublicKeyPackage, Ciphersuite, Group, Identifier, Signature, SigningKey, VerifyingKey, +}; + +use super::ciphersuite_generic::check_sign; + +/// Test FROST signing using COCKTAIL-DKG for key generation with a Ciphersuite. +pub fn check_sign_with_cocktail_dkg( + mut rng: R, +) -> (Vec, Signature, VerifyingKey) +where + C::Group: core::cmp::PartialEq, +{ + let max_signers: u16 = 3; + let min_signers: u16 = 2; + + // Generate static signing keys for all participants. + let mut static_keys: BTreeMap, SigningKey> = BTreeMap::new(); + let mut participants: BTreeMap, VerifyingKey> = BTreeMap::new(); + for i in 1..=max_signers { + let id = Identifier::::try_from(i).expect("should be nonzero"); + let sk = SigningKey::::new(&mut rng); + let vk = VerifyingKey::from(&sk); + static_keys.insert(id, sk); + participants.insert(id, vk); + } + + let context = b"test-cocktail-dkg"; + let extension = b""; + + //////////////////////////////////////////////////////////////////////////// + // COCKTAIL-DKG Round 1 + //////////////////////////////////////////////////////////////////////////// + + let mut round1_secret_packages: BTreeMap< + Identifier, + frost::keys::cocktail_dkg::round1::SecretPackage, + > = BTreeMap::new(); + let mut received_round1_packages: BTreeMap< + Identifier, + BTreeMap, frost::keys::cocktail_dkg::round1::Package>, + > = BTreeMap::new(); + + for (&id, sk) in &static_keys { + let (secret_pkg, pkg) = frost::keys::cocktail_dkg::part1( + id, + max_signers, + min_signers, + sk, + &participants, + context, + &BTreeMap::new(), + &mut rng, + ) + .unwrap(); + round1_secret_packages.insert(id, secret_pkg); + for &receiver_id in participants.keys() { + if receiver_id != id { + received_round1_packages + .entry(receiver_id) + .or_default() + .insert(id, pkg.clone()); + } + } + } + + //////////////////////////////////////////////////////////////////////////// + // COCKTAIL-DKG Round 2 + //////////////////////////////////////////////////////////////////////////// + + let mut round2_secret_packages: BTreeMap< + Identifier, + frost::keys::cocktail_dkg::round2::SecretPackage, + > = BTreeMap::new(); + let mut received_round2_packages: BTreeMap< + Identifier, + BTreeMap, frost::keys::cocktail_dkg::round2::Package>, + > = BTreeMap::new(); + + for (&id, sk) in &static_keys { + let secret_pkg = round1_secret_packages.remove(&id).unwrap(); + let round1_packages = &received_round1_packages[&id]; + let (r2_secret, r2_pkg, _received_payloads) = frost::keys::cocktail_dkg::part2( + secret_pkg, + round1_packages, + sk, + &participants, + context, + extension, + &mut rng, + ) + .unwrap(); + round2_secret_packages.insert(id, r2_secret); + for &receiver_id in participants.keys() { + received_round2_packages + .entry(receiver_id) + .or_default() + .insert(id, r2_pkg.clone()); + } + } + + //////////////////////////////////////////////////////////////////////////// + // COCKTAIL-DKG Round 3 (CertEq) + //////////////////////////////////////////////////////////////////////////// + + let mut key_packages = BTreeMap::new(); + let mut pubkey_packages = BTreeMap::new(); + + for &id in static_keys.keys() { + let r2_secret = &round2_secret_packages[&id]; + let round2_packages = &received_round2_packages[&id]; + let (key_pkg, pubkey_pkg, _transcript, _cert) = + frost::keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); + key_packages.insert(id, key_pkg); + pubkey_packages.insert(id, pubkey_pkg); + } + + // All participants must agree on the same group public key. + let first_pubkey = pubkey_packages.values().next().unwrap().clone(); + for pubkey_pkg in pubkey_packages.values() { + assert_eq!(first_pubkey.verifying_key(), pubkey_pkg.verifying_key()); + } + + // Use the DKG-derived key packages to run a FROST signing session. + check_sign(min_signers, key_packages, rng, first_pubkey).unwrap() +} + +/// Counter-based deterministic RNG for COCKTAIL-DKG test vectors. +/// +/// Each block is: `hash_fn(seed || cs_id || uint32_le(t) || uint32_le(n) || label || uint64_le(counter))` +struct CounterDrng<'a> { + seed: Vec, + cs_id: Vec, + t: u32, + n: u32, + label: Vec, + counter: u64, + hash_fn: &'a dyn Fn(&[u8]) -> Vec, + buf: Vec, + buf_pos: usize, +} + +impl<'a> CounterDrng<'a> { + fn new( + seed: &[u8], + cs_id: &[u8], + t: u32, + n: u32, + participant: u32, + hash_fn: &'a dyn Fn(&[u8]) -> Vec, + ) -> Self { + Self { + seed: seed.to_vec(), + cs_id: cs_id.to_vec(), + t, + n, + label: format!("round1_participant_{}", participant).into_bytes(), + counter: 0, + hash_fn, + buf: Vec::new(), + buf_pos: 0, + } + } + + fn refill(&mut self) { + let mut input = Vec::new(); + input.extend_from_slice(&self.seed); + input.extend_from_slice(&self.cs_id); + input.extend_from_slice(&self.t.to_le_bytes()); + input.extend_from_slice(&self.n.to_le_bytes()); + input.extend_from_slice(&self.label); + input.extend_from_slice(&self.counter.to_le_bytes()); + self.buf = (self.hash_fn)(&input); + self.buf_pos = 0; + self.counter += 1; + } +} + +impl RngCore for CounterDrng<'_> { + fn fill_bytes(&mut self, dest: &mut [u8]) { + let mut pos = 0; + while pos < dest.len() { + if self.buf_pos == self.buf.len() { + self.refill(); + } + let available = self.buf.len() - self.buf_pos; + let needed = dest.len() - pos; + let to_copy = available.min(needed); + dest[pos..pos + to_copy] + .copy_from_slice(&self.buf[self.buf_pos..self.buf_pos + to_copy]); + self.buf_pos += to_copy; + pos += to_copy; + } + } + + fn next_u32(&mut self) -> u32 { + let mut buf = [0u8; 4]; + self.fill_bytes(&mut buf); + u32::from_le_bytes(buf) + } + + fn next_u64(&mut self) -> u64 { + let mut buf = [0u8; 8]; + self.fill_bytes(&mut buf); + u64::from_le_bytes(buf) + } + + fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core::Error> { + self.fill_bytes(dest); + Ok(()) + } +} + +impl CryptoRng for CounterDrng<'_> {} + +/// Test COCKTAIL-DKG protocol against JSON test vectors. +/// +/// - `json`: JSON test vector content (use `include_str!` in the caller). +/// - `hash_fn`: Hash/XOF function used as a counter-based RNG for test vectors. +/// E.g. `|data| Sha256::digest(data).to_vec()`. +/// - `compare_encrypted_shares`: Whether to compare encrypted shares against the vectors. +/// Set `false` when the ciphersuite AEAD differs from the reference +/// (e.g. P-256/secp256k1 spec requires XAES-256-GCM, not XChaCha20Poly1305). +/// - `check_recovery`: Whether to test the `recovery` section of the vector. +/// Set `false` when the encrypted share format is incompatible with the reference. +pub fn check_cocktail_dkg_test_vectors( + json: &str, + hash_fn: H, + compare_encrypted_shares: bool, + check_recovery: bool, +) where + C: CocktailCiphersuite, + H: Fn(&[u8]) -> Vec, +{ + let file: serde_json::Value = serde_json::from_str(json.trim()).unwrap(); + let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); + let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + let hash_fn_ref: &dyn Fn(&[u8]) -> Vec = &hash_fn; + + for vector in file["vectors"].as_array().unwrap().iter() { + let n = vector["n"].as_u64().unwrap() as u32; + let t = vector["t"].as_u64().unwrap() as u32; + let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); + + let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + + let expected_ephemeral_pubs: Vec> = vector["round1"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["ephemeral_public_key"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_group_public_key = + hex::decode(vector["group_public_key"].as_str().unwrap()).unwrap(); + + let expected_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["secret_share"].as_str().unwrap()).unwrap()) + .collect(); + + let expected_verification_shares: Vec> = vector["round2"] + .as_array() + .unwrap() + .iter() + .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) + .collect(); + + let identifiers: Vec> = (1..=n as u16) + .map(|i| i.try_into().unwrap()) + .collect(); + + let mut static_keys: BTreeMap, SigningKey> = BTreeMap::new(); + let mut participants: BTreeMap, VerifyingKey> = BTreeMap::new(); + for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { + // Try direct deserialization first; if it fails (wrong length), append one zero + // byte and retry. This handles ed448 where JSON stores 56-byte raw scalars but + // the ciphersuite uses 57-byte RFC 8032 format (trailing 0x00). + let sk = SigningKey::::deserialize(key_bytes).unwrap_or_else(|_| { + let mut padded = key_bytes.clone(); + padded.push(0); + SigningKey::::deserialize(&padded).unwrap() + }); + let vk = VerifyingKey::from(&sk); + static_keys.insert(*id, sk); + participants.insert(*id, vk); + } + + let extension = b""; + + // Round 1 + let mut round1_secret_packages: BTreeMap< + Identifier, + frost::keys::cocktail_dkg::round1::SecretPackage, + > = BTreeMap::new(); + let mut received_round1_packages: BTreeMap< + Identifier, + BTreeMap, frost::keys::cocktail_dkg::round1::Package>, + > = BTreeMap::new(); + + for (idx, (&id, sk)) in static_keys.iter().enumerate() { + let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32, hash_fn_ref); + let (secret_pkg, pkg) = frost::keys::cocktail_dkg::part1( + id, + n as u16, + t as u16, + sk, + &participants, + &context, + &BTreeMap::new(), + &mut rng, + ) + .unwrap(); + + let round1_tv = &vector["round1"][idx]; + + assert_eq!( + <::Group>::serialize(pkg.ephemeral_pub()) + .unwrap() + .as_ref(), + expected_ephemeral_pubs[idx].as_slice(), + "participant {} ephemeral public key mismatch", + idx + 1 + ); + + let expected_commitment: Vec> = round1_tv["vss_commitment"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + assert_eq!( + pkg.commitment().serialize().unwrap(), + expected_commitment, + "participant {} VSS commitment mismatch", + idx + 1 + ); + + if compare_encrypted_shares { + let expected_enc_shares: Vec> = round1_tv["encrypted_shares"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + for (j, &receiver_id) in identifiers.iter().enumerate() { + let actual = &pkg.encrypted_shares()[&receiver_id]; + assert_eq!( + actual.as_slice(), + expected_enc_shares[j].as_slice(), + "participant {} encrypted share for receiver {} mismatch", + idx + 1, + j + 1 + ); + } + } + + round1_secret_packages.insert(id, secret_pkg); + for &receiver_id in participants.keys() { + if receiver_id != id { + received_round1_packages + .entry(receiver_id) + .or_default() + .insert(id, pkg.clone()); + } + } + } + + // Round 2 + let mut round2_secret_packages: BTreeMap< + Identifier, + frost::keys::cocktail_dkg::round2::SecretPackage, + > = BTreeMap::new(); + let mut received_round2_packages: BTreeMap< + Identifier, + BTreeMap, frost::keys::cocktail_dkg::round2::Package>, + > = BTreeMap::new(); + + for (&id, sk) in static_keys.iter() { + let secret_pkg = round1_secret_packages.remove(&id).unwrap(); + let round1_packages = &received_round1_packages[&id]; + // Use participant 0 as a sentinel RNG for part2 (transcript Schnorr signing). + // This randomness is not verified against test vectors. + let mut rng2 = CounterDrng::new(&seed, &cs_id, t, n, 0, hash_fn_ref); + let (r2_secret, r2_pkg, _received_payloads) = frost::keys::cocktail_dkg::part2( + secret_pkg, + round1_packages, + sk, + &participants, + &context, + extension, + &mut rng2, + ) + .unwrap(); + + round2_secret_packages.insert(id, r2_secret); + for &receiver_id in participants.keys() { + received_round2_packages + .entry(receiver_id) + .or_default() + .insert(id, r2_pkg.clone()); + } + } + + // Round 3 + let mut transcript_for_recovery: Vec = Vec::new(); + let mut cert_for_recovery: BTreeMap, Signature> = BTreeMap::new(); + + // Build expected packages from test vector data and apply post_dkg. + // Some ciphersuites (e.g. secp256k1-tr) apply transformations in post_dkg + // (like a taproot tweak) that are not reflected in the test vectors. + let expected_vk = VerifyingKey::::deserialize(&expected_group_public_key).unwrap(); + let expected_vshares_map: BTreeMap, VerifyingShare> = identifiers + .iter() + .zip(expected_verification_shares.iter()) + .map(|(id, bytes)| (*id, VerifyingShare::::deserialize(bytes).unwrap())) + .collect(); + let expected_signing_shares_parsed: Vec> = expected_shares + .iter() + .map(|bytes| { + SigningShare::::deserialize(bytes).unwrap_or_else(|_| { + let mut padded = bytes.clone(); + padded.push(0); + SigningShare::::deserialize(&padded).unwrap() + }) + }) + .collect(); + // Compute the tweaked pubkey package (same for all participants). + let expected_tweaked_pubkey_pkg = { + let pkp_raw = PublicKeyPackage::::new( + expected_vshares_map.clone(), + expected_vk, + Some(t as u16), + ); + let id0 = identifiers[0]; + let kp0 = KeyPackage::::new( + id0, + expected_signing_shares_parsed[0], + *expected_vshares_map.get(&id0).unwrap(), + expected_vk, + t as u16, + ); + let (_, tweaked_pkp) = C::post_dkg(kp0, pkp_raw).unwrap(); + tweaked_pkp + }; + // Compute per-participant tweaked key packages. + let expected_tweaked_key_pkgs: Vec> = identifiers + .iter() + .zip(expected_signing_shares_parsed.iter()) + .map(|(id, ss)| { + let pkp = PublicKeyPackage::::new( + expected_vshares_map.clone(), + expected_vk, + Some(t as u16), + ); + let kp = KeyPackage::::new( + *id, + *ss, + *expected_vshares_map.get(id).unwrap(), + expected_vk, + t as u16, + ); + let (tweaked_kp, _) = C::post_dkg(kp, pkp).unwrap(); + tweaked_kp + }) + .collect(); + + for (idx, (&id, _)) in static_keys.iter().enumerate() { + let r2_secret = &round2_secret_packages[&id]; + let round2_packages = &received_round2_packages[&id]; + let (key_pkg, pubkey_pkg, transcript, cert) = + frost::keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); + + if idx == 0 && check_recovery { + transcript_for_recovery = transcript; + cert_for_recovery = cert; + } + + assert_eq!( + pubkey_pkg.verifying_key().serialize().unwrap().as_slice(), + expected_tweaked_pubkey_pkg + .verifying_key() + .serialize() + .unwrap() + .as_slice(), + "participant {} group public key mismatch", + idx + 1 + ); + + // Compare only the prefix when JSON bytes are fewer than the serialized length. + // Handles ed448 (56-byte JSON raw scalar vs 57-byte RFC 8032 format). + let serialized_share = key_pkg.signing_share().serialize(); + let expected = expected_tweaked_key_pkgs[idx].signing_share().serialize(); + let cmp_len = expected.len().min(serialized_share.len()); + assert_eq!( + &serialized_share[..cmp_len], + &expected[..cmp_len], + "participant {} secret share mismatch", + idx + 1 + ); + + assert_eq!( + pubkey_pkg + .verifying_shares() + .get(&id) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + expected_tweaked_pubkey_pkg + .verifying_shares() + .get(&id) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + "participant {} verification share mismatch", + idx + 1 + ); + } + + // Recovery + if check_recovery { + if let Some(recovery) = vector.get("recovery") { + let recovery_id = recovery["participant_id"].as_u64().unwrap() as u16; + let recovery_identifier = Identifier::::try_from(recovery_id).unwrap(); + let recovery_sk = static_keys.get(&recovery_identifier).unwrap(); + + let ciphertexts_json = recovery["ciphertexts"].as_array().unwrap(); + let mut recovery_ciphertexts: BTreeMap, Vec> = BTreeMap::new(); + for (j_idx, ct) in ciphertexts_json.iter().enumerate() { + let sender_id = Identifier::::try_from((j_idx + 1) as u16).unwrap(); + recovery_ciphertexts + .insert(sender_id, hex::decode(ct.as_str().unwrap()).unwrap()); + } + + let expected_recovered_share = + hex::decode(recovery["recovered_secret_share"].as_str().unwrap()).unwrap(); + let expected_recovered_vshare = hex::decode( + recovery["recovered_verification_share"].as_str().unwrap(), + ) + .unwrap(); + + // Apply post_dkg to the expected recovered key package. + let expected_tweaked_recovery_kp = { + let recovered_ss = + SigningShare::::deserialize(&expected_recovered_share).unwrap(); + let recovered_vs = + VerifyingShare::::deserialize(&expected_recovered_vshare).unwrap(); + let kp = KeyPackage::::new( + recovery_identifier, + recovered_ss, + recovered_vs, + expected_vk, + t as u16, + ); + let pkp = PublicKeyPackage::::new( + expected_vshares_map.clone(), + expected_vk, + Some(t as u16), + ); + let (tweaked_kp, _) = C::post_dkg(kp, pkp).unwrap(); + tweaked_kp + }; + + let (recovered_key_pkg, recovered_pubkey_pkg) = + frost::keys::cocktail_dkg::recover( + recovery_sk, + &transcript_for_recovery, + &cert_for_recovery, + &recovery_ciphertexts, + ) + .unwrap(); + + assert_eq!( + recovered_key_pkg.signing_share().serialize().as_slice(), + expected_tweaked_recovery_kp.signing_share().serialize().as_slice(), + "recovered secret share mismatch" + ); + assert_eq!( + recovered_pubkey_pkg + .verifying_shares() + .get(&recovery_identifier) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + expected_tweaked_pubkey_pkg + .verifying_shares() + .get(&recovery_identifier) + .unwrap() + .serialize() + .unwrap() + .as_slice(), + "recovered verification share mismatch" + ); + } + } + } +} diff --git a/frost-ed25519/tests/integration_tests.rs b/frost-ed25519/tests/integration_tests.rs index 8a7dc5c85..27c09b1fa 100644 --- a/frost-ed25519/tests/integration_tests.rs +++ b/frost-ed25519/tests/integration_tests.rs @@ -18,7 +18,7 @@ fn check_sign_with_dkg() { fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; - frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::(rng); + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::(rng); } #[test] @@ -320,7 +320,7 @@ fn check_cocktail_dkg_test_vectors() { let json_str = include_str!("helpers/cocktail-dkg-ed25519-sha512.json"); - frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::( + frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( json_str, |data| Sha512::digest(data).to_vec(), true, // encrypted shares match (XChaCha20Poly1305) diff --git a/frost-ed448/tests/integration_tests.rs b/frost-ed448/tests/integration_tests.rs index 48bdee38d..5a882d23d 100644 --- a/frost-ed448/tests/integration_tests.rs +++ b/frost-ed448/tests/integration_tests.rs @@ -18,7 +18,7 @@ fn check_sign_with_dkg() { fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; - frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::(rng); + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::(rng); } #[test] @@ -323,7 +323,7 @@ fn check_cocktail_dkg_test_vectors() { let json_str = include_str!("helpers/cocktail-dkg-ed448-shake256.json"); - frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::( + frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( json_str, |data| { let mut h = Shake256::default(); diff --git a/frost-p256/tests/integration_tests.rs b/frost-p256/tests/integration_tests.rs index 9eeffaafe..3b4cf3152 100644 --- a/frost-p256/tests/integration_tests.rs +++ b/frost-p256/tests/integration_tests.rs @@ -18,7 +18,7 @@ fn check_sign_with_dkg() { fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; - frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::(rng); + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::(rng); } #[test] @@ -317,7 +317,7 @@ fn check_cocktail_dkg_test_vectors() { let json_str = include_str!("helpers/cocktail-dkg-p256-sha256.json"); - frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::( + frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( json_str, |data| Sha256::digest(data).to_vec(), true, // encrypted shares match (XAES-256-GCM) diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index 026d83dd9..5afab44c7 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -18,7 +18,7 @@ fn check_sign_with_dkg() { fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; - frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::( + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::( rng, ); } @@ -327,7 +327,7 @@ fn check_cocktail_dkg_test_vectors() { let json_str = include_str!("helpers/cocktail-dkg-ristretto255-sha512.json"); - frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::< + frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::< Ristretto255Sha512, _, >( diff --git a/frost-secp256k1-tr/tests/integration_tests.rs b/frost-secp256k1-tr/tests/integration_tests.rs index 585c8f979..ff25fe414 100644 --- a/frost-secp256k1-tr/tests/integration_tests.rs +++ b/frost-secp256k1-tr/tests/integration_tests.rs @@ -18,7 +18,7 @@ fn check_sign_with_dkg() { fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; - frost_core::tests::ciphersuite_generic::check_sign_with_cocktail_dkg::( + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::( rng, ); } @@ -29,7 +29,7 @@ fn check_cocktail_dkg_test_vectors() { let json_str = include_str!("helpers/cocktail-dkg-secp256k1-sha256.json"); - frost_core::tests::ciphersuite_generic::check_cocktail_dkg_test_vectors::( + frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( json_str, |data| Sha256::digest(data).to_vec(), true, // encrypted shares match (XAES-256-GCM) From 647d19a7f6874259ba144590d8a366b5e25b9726 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Fri, 20 Mar 2026 13:30:09 -0300 Subject: [PATCH 23/30] gate cocktail-dkg under feature --- frost-core/Cargo.toml | 2 ++ frost-core/src/error.rs | 4 ++++ frost-core/src/keys.rs | 2 ++ frost-core/src/tests.rs | 1 + frost-ed25519/Cargo.toml | 4 +++- frost-ed25519/src/lib.rs | 3 +++ frost-ed25519/tests/integration_tests.rs | 2 ++ frost-ed448/Cargo.toml | 4 +++- frost-ed448/src/lib.rs | 3 +++ frost-ed448/tests/integration_tests.rs | 2 ++ frost-p256/Cargo.toml | 4 +++- frost-p256/src/lib.rs | 4 ++++ frost-p256/tests/integration_tests.rs | 2 ++ frost-ristretto255/Cargo.toml | 4 +++- frost-ristretto255/src/lib.rs | 3 +++ frost-ristretto255/tests/integration_tests.rs | 2 ++ frost-secp256k1-tr/Cargo.toml | 6 ++++-- frost-secp256k1-tr/src/lib.rs | 4 ++++ frost-secp256k1-tr/tests/integration_tests.rs | 2 ++ 19 files changed, 52 insertions(+), 6 deletions(-) diff --git a/frost-core/Cargo.toml b/frost-core/Cargo.toml index 399ac2b7a..45aa79a1a 100644 --- a/frost-core/Cargo.toml +++ b/frost-core/Cargo.toml @@ -64,6 +64,8 @@ internals = [] ## `serde` (e.g. JSON with `serde_json`). serde = ["dep:serde", "dep:serdect"] serialization = ["serde", "dep:postcard"] +## Enable the COCKTAIL-DKG distributed key generation protocol. +cocktail-dkg = [] # Exposes ciphersuite-generic tests for other crates to use test-impl = ["dep:proptest", "dep:serde_json", "dep:criterion", "dep:tokio", "dep:debugless-unwrap"] diff --git a/frost-core/src/error.rs b/frost-core/src/error.rs index ae0686e65..a0b37df38 100644 --- a/frost-core/src/error.rs +++ b/frost-core/src/error.rs @@ -91,12 +91,14 @@ pub enum Error { culprit: Identifier, }, /// Decryption of an encrypted share failed. + #[cfg(feature = "cocktail-dkg")] #[error("Decryption of an encrypted share failed.")] DecryptionFailed { /// The identifier of the participant who sent the invalid ciphertext. culprit: Identifier, }, /// A transcript signature is not valid. + #[cfg(feature = "cocktail-dkg")] #[error("Invalid transcript signature.")] InvalidTranscriptSignature { /// The identifier of the participant whose transcript signature was invalid. @@ -138,7 +140,9 @@ where Error::InvalidSignatureShare { culprits } => culprits.clone(), Error::InvalidProofOfKnowledge { culprit } => vec![*culprit], Error::InvalidSecretShare { culprit } => culprit.map(|i| vec![i]).unwrap_or_default(), + #[cfg(feature = "cocktail-dkg")] Error::DecryptionFailed { culprit } => vec![*culprit], + #[cfg(feature = "cocktail-dkg")] Error::InvalidTranscriptSignature { culprit } => vec![*culprit], Error::InvalidMinSigners | Error::InvalidMaxSigners diff --git a/frost-core/src/keys.rs b/frost-core/src/keys.rs index 32e8d37c7..a124903be 100644 --- a/frost-core/src/keys.rs +++ b/frost-core/src/keys.rs @@ -30,6 +30,8 @@ use crate::serialization::{Deserialize, Serialize}; use super::compute_lagrange_coefficient; +#[cfg(feature = "cocktail-dkg")] +#[cfg_attr(docsrs, doc(cfg(feature = "cocktail-dkg")))] pub mod cocktail_dkg; pub mod dkg; pub mod refresh; diff --git a/frost-core/src/tests.rs b/frost-core/src/tests.rs index 92d05d0b7..12f06e628 100644 --- a/frost-core/src/tests.rs +++ b/frost-core/src/tests.rs @@ -4,6 +4,7 @@ pub mod batch; pub mod ciphersuite_generic; +#[cfg(feature = "cocktail-dkg")] pub mod cocktail_dkg; pub mod coefficient_commitment; pub mod helpers; diff --git a/frost-ed25519/Cargo.toml b/frost-ed25519/Cargo.toml index 45c6c59b8..9e514662c 100644 --- a/frost-ed25519/Cargo.toml +++ b/frost-ed25519/Cargo.toml @@ -16,7 +16,7 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] -chacha20poly1305.workspace = true +chacha20poly1305 = { workspace = true, optional = true } curve25519-dalek = { version = "=4.1.3", features = ["rand_core"] } document-features.workspace = true frost-core.workspace = true @@ -47,6 +47,8 @@ default = ["serialization"] serde = ["frost-core/serde"] ## Enable a default serialization format. Enables `serde`. serialization = ["serde", "frost-core/serialization", "frost-rerandomized/serialization"] +## Enable the COCKTAIL-DKG distributed key generation protocol. +cocktail-dkg = ["dep:chacha20poly1305", "frost-core/cocktail-dkg"] [lib] # Disables non-criterion benchmark which is not used; prevents errors diff --git a/frost-ed25519/src/lib.rs b/frost-ed25519/src/lib.rs index 861e5d75f..59ad9281d 100644 --- a/frost-ed25519/src/lib.rs +++ b/frost-ed25519/src/lib.rs @@ -227,6 +227,7 @@ impl RandomizedCiphersuite for Ed25519Sha512 { } } +#[cfg(feature = "cocktail-dkg")] #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed25519Sha512 { fn HPOP(data: &[u8]) -> Scalar { @@ -377,6 +378,8 @@ pub mod keys { pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment; /// COCKTAIL-DKG protocol for distributed key generation. + #[cfg(feature = "cocktail-dkg")] + #[cfg_attr(docsrs, doc(cfg(feature = "cocktail-dkg")))] pub mod cocktail_dkg; pub mod dkg; pub mod refresh; diff --git a/frost-ed25519/tests/integration_tests.rs b/frost-ed25519/tests/integration_tests.rs index 27c09b1fa..00a618220 100644 --- a/frost-ed25519/tests/integration_tests.rs +++ b/frost-ed25519/tests/integration_tests.rs @@ -14,6 +14,7 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } +#[cfg(feature = "cocktail-dkg")] #[test] fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; @@ -314,6 +315,7 @@ async fn check_async_sign_with_dealer() { .unwrap(); } +#[cfg(feature = "cocktail-dkg")] #[test] fn check_cocktail_dkg_test_vectors() { use sha2::{Digest, Sha512}; diff --git a/frost-ed448/Cargo.toml b/frost-ed448/Cargo.toml index 128f702d0..6fbb31477 100644 --- a/frost-ed448/Cargo.toml +++ b/frost-ed448/Cargo.toml @@ -16,7 +16,7 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] -chacha20poly1305.workspace = true +chacha20poly1305 = { workspace = true, optional = true } document-features.workspace = true ed448-goldilocks = { version = "0.9.0" } frost-core.workspace = true @@ -46,6 +46,8 @@ default = ["serialization"] serde = ["frost-core/serde"] ## Enable a default serialization format. Enables `serde`. serialization = ["serde", "frost-core/serialization", "frost-rerandomized/serialization"] +## Enable the COCKTAIL-DKG distributed key generation protocol. +cocktail-dkg = ["dep:chacha20poly1305", "frost-core/cocktail-dkg"] [lib] # Disables non-criterion benchmark which is not used; prevents errors diff --git a/frost-ed448/src/lib.rs b/frost-ed448/src/lib.rs index 4d6430a9c..a784a165b 100644 --- a/frost-ed448/src/lib.rs +++ b/frost-ed448/src/lib.rs @@ -221,6 +221,7 @@ impl RandomizedCiphersuite for Ed448Shake256 { } } +#[cfg(feature = "cocktail-dkg")] #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed448Shake256 { fn HPOP(data: &[u8]) -> Scalar { @@ -371,6 +372,8 @@ pub mod keys { pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment; /// COCKTAIL-DKG key generation protocol. + #[cfg(feature = "cocktail-dkg")] + #[cfg_attr(docsrs, doc(cfg(feature = "cocktail-dkg")))] pub mod cocktail_dkg; pub mod dkg; pub mod refresh; diff --git a/frost-ed448/tests/integration_tests.rs b/frost-ed448/tests/integration_tests.rs index 5a882d23d..859d7f13b 100644 --- a/frost-ed448/tests/integration_tests.rs +++ b/frost-ed448/tests/integration_tests.rs @@ -14,6 +14,7 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } +#[cfg(feature = "cocktail-dkg")] #[test] fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; @@ -314,6 +315,7 @@ async fn check_async_sign_with_dealer() { .unwrap(); } +#[cfg(feature = "cocktail-dkg")] #[test] fn check_cocktail_dkg_test_vectors() { use sha3::{ diff --git a/frost-p256/Cargo.toml b/frost-p256/Cargo.toml index 6339a560c..5e481058f 100644 --- a/frost-p256/Cargo.toml +++ b/frost-p256/Cargo.toml @@ -22,7 +22,7 @@ frost-core.workspace = true frost-rerandomized.workspace = true rand_core.workspace = true sha2 = { version = "0.10.2", default-features = false } -xaes-256-gcm.workspace = true +xaes-256-gcm = { workspace = true, optional = true } [dev-dependencies] criterion.workspace = true @@ -46,6 +46,8 @@ default = ["serialization"] serde = ["frost-core/serde"] ## Enable a default serialization format. Enables `serde`. serialization = ["serde", "frost-core/serialization", "frost-rerandomized/serialization"] +## Enable the COCKTAIL-DKG distributed key generation protocol. +cocktail-dkg = ["dep:xaes-256-gcm", "frost-core/cocktail-dkg"] [lib] # Disables non-criterion benchmark which is not used; prevents errors diff --git a/frost-p256/src/lib.rs b/frost-p256/src/lib.rs index 9fcda5368..b08756796 100644 --- a/frost-p256/src/lib.rs +++ b/frost-p256/src/lib.rs @@ -22,6 +22,7 @@ use p256::{ }; use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha256}; +#[cfg(feature = "cocktail-dkg")] use xaes_256_gcm::{ aead::{Aead, Key, KeyInit}, Nonce, Xaes256Gcm, @@ -241,6 +242,7 @@ impl RandomizedCiphersuite for P256Sha256 { } } +#[cfg(feature = "cocktail-dkg")] #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for P256Sha256 { fn HPOP(data: &[u8]) -> Scalar { @@ -393,6 +395,8 @@ pub mod keys { pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment

; /// COCKTAIL-DKG key generation protocol. + #[cfg(feature = "cocktail-dkg")] + #[cfg_attr(docsrs, doc(cfg(feature = "cocktail-dkg")))] pub mod cocktail_dkg; pub mod dkg; pub mod refresh; diff --git a/frost-p256/tests/integration_tests.rs b/frost-p256/tests/integration_tests.rs index 3b4cf3152..5e488f2cc 100644 --- a/frost-p256/tests/integration_tests.rs +++ b/frost-p256/tests/integration_tests.rs @@ -14,6 +14,7 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } +#[cfg(feature = "cocktail-dkg")] #[test] fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; @@ -311,6 +312,7 @@ async fn check_async_sign_with_dealer() { .unwrap(); } +#[cfg(feature = "cocktail-dkg")] #[test] fn check_cocktail_dkg_test_vectors() { use sha2::{Digest, Sha256}; diff --git a/frost-ristretto255/Cargo.toml b/frost-ristretto255/Cargo.toml index 9dcddf1b1..01f4734a2 100644 --- a/frost-ristretto255/Cargo.toml +++ b/frost-ristretto255/Cargo.toml @@ -16,7 +16,7 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] -chacha20poly1305.workspace = true +chacha20poly1305 = { workspace = true, optional = true } curve25519-dalek = { version = "=4.1.3", features = ["rand_core"] } document-features.workspace = true frost-core.workspace = true @@ -47,6 +47,8 @@ default = ["serialization"] serde = ["frost-core/serde", "curve25519-dalek/serde"] ## Enable a default serialization format. Enables `serde`. serialization = ["serde", "frost-core/serialization", "frost-rerandomized/serialization"] +## Enable the COCKTAIL-DKG distributed key generation protocol. +cocktail-dkg = ["dep:chacha20poly1305", "frost-core/cocktail-dkg"] [lib] # Disables non-criterion benchmark which is not used; prevents errors diff --git a/frost-ristretto255/src/lib.rs b/frost-ristretto255/src/lib.rs index 9d4c73612..834f6123d 100644 --- a/frost-ristretto255/src/lib.rs +++ b/frost-ristretto255/src/lib.rs @@ -216,6 +216,7 @@ impl RandomizedCiphersuite for Ristretto255Sha512 { } } +#[cfg(feature = "cocktail-dkg")] #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ristretto255Sha512 { fn HPOP(data: &[u8]) -> Scalar { @@ -367,6 +368,8 @@ pub mod keys { pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment; /// COCKTAIL-DKG protocol for distributed key generation. + #[cfg(feature = "cocktail-dkg")] + #[cfg_attr(docsrs, doc(cfg(feature = "cocktail-dkg")))] pub mod cocktail_dkg; pub mod dkg; pub mod refresh; diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index 5afab44c7..6177c5841 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -14,6 +14,7 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } +#[cfg(feature = "cocktail-dkg")] #[test] fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; @@ -321,6 +322,7 @@ async fn check_async_sign_with_dealer() { .unwrap(); } +#[cfg(feature = "cocktail-dkg")] #[test] fn check_cocktail_dkg_test_vectors() { use sha2::{Digest, Sha512}; diff --git a/frost-secp256k1-tr/Cargo.toml b/frost-secp256k1-tr/Cargo.toml index c04f8a60d..682fa107c 100644 --- a/frost-secp256k1-tr/Cargo.toml +++ b/frost-secp256k1-tr/Cargo.toml @@ -16,14 +16,14 @@ features = ["serde"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] -chacha20poly1305.workspace = true +chacha20poly1305 = { workspace = true, optional = true } document-features.workspace = true frost-core.workspace = true frost-rerandomized.workspace = true k256 = { version = "0.13.0", features = ["arithmetic", "expose-field", "hash2curve"], default-features = false } rand_core.workspace = true sha2 = { version = "0.10.2", default-features = false } -xaes-256-gcm.workspace = true +xaes-256-gcm = { workspace = true, optional = true } [dev-dependencies] criterion.workspace = true @@ -48,6 +48,8 @@ default = ["serialization"] serde = ["frost-core/serde"] ## Enable a default serialization format. Enables `serde`. serialization = ["serde", "frost-core/serialization", "frost-rerandomized/serialization"] +## Enable the COCKTAIL-DKG distributed key generation protocol. +cocktail-dkg = ["dep:chacha20poly1305", "dep:xaes-256-gcm", "frost-core/cocktail-dkg"] [lib] # Disables non-criterion benchmark which is not used; prevents errors diff --git a/frost-secp256k1-tr/src/lib.rs b/frost-secp256k1-tr/src/lib.rs index a9136e8b9..c4fe2c22d 100644 --- a/frost-secp256k1-tr/src/lib.rs +++ b/frost-secp256k1-tr/src/lib.rs @@ -25,6 +25,7 @@ use k256::{ }; use rand_core::{CryptoRng, RngCore}; use sha2::{Digest, Sha256}; +#[cfg(feature = "cocktail-dkg")] use xaes_256_gcm::{ aead::{Aead, Key, KeyInit}, Nonce, Xaes256Gcm, @@ -504,6 +505,7 @@ impl RandomizedCiphersuite for Secp256K1Sha256TR { } } +#[cfg(feature = "cocktail-dkg")] #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Secp256K1Sha256TR { fn HPOP(data: &[u8]) -> Scalar { @@ -848,6 +850,8 @@ pub mod keys { } /// COCKTAIL-DKG key generation protocol. + #[cfg(feature = "cocktail-dkg")] + #[cfg_attr(docsrs, doc(cfg(feature = "cocktail-dkg")))] pub mod cocktail_dkg; pub mod dkg; pub mod refresh; diff --git a/frost-secp256k1-tr/tests/integration_tests.rs b/frost-secp256k1-tr/tests/integration_tests.rs index ff25fe414..db7cb5b32 100644 --- a/frost-secp256k1-tr/tests/integration_tests.rs +++ b/frost-secp256k1-tr/tests/integration_tests.rs @@ -14,6 +14,7 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } +#[cfg(feature = "cocktail-dkg")] #[test] fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; @@ -23,6 +24,7 @@ fn check_sign_with_cocktail_dkg() { ); } +#[cfg(feature = "cocktail-dkg")] #[test] fn check_cocktail_dkg_test_vectors() { use sha2::{Digest, Sha256}; From 4424ac6c07110b462ed504a93eb9bcb829732f2d Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Fri, 20 Mar 2026 13:33:51 -0300 Subject: [PATCH 24/30] remove spec file --- cocktail-dkg.md | 2143 ----------------------------------------------- 1 file changed, 2143 deletions(-) delete mode 100644 cocktail-dkg.md diff --git a/cocktail-dkg.md b/cocktail-dkg.md deleted file mode 100644 index d2203dcb9..000000000 --- a/cocktail-dkg.md +++ /dev/null @@ -1,2143 +0,0 @@ -# COCKTAIL Distributed Key Generation - -[c2sp.org/cocktail-dkg](https://c2sp.org/cocktail-dkg) - -- **Version**: v0.2.0 -- **Authors**: - - [Daniel Bourdrez](https://github.com/bytemare) - - [Soatok Dreamseeker](https://github.com/soatok) - - [Tjaden Hess](https://github.com/tjade273), *[Trail of Bits](https://trailofbits.com)* - - COCKTAIL is an independent derivative of [ChillDKG](https://github.com/BlockstreamResearch/bip-frost-dkg/tree/master), - which was made by: - - [Tim Ruffing](https://github.com/real-or-random), *Blockstream Research* - - [Jonas Nick](https://github.com/jonasnick), *Blockstream Research* - -## Introduction - -Threshold signature schemes (i.e., [FROST (RFC 9591)](https://www.rfc-editor.org/rfc/rfc9591.html)) allow a secret key -be shared among $n$ parties such that any $t$ of the $n$ parties can cooperate to generate a digital signature for the -group public key. - -Initializing a $t$-of-$n$ threshold requires a key generation protocol. This can be a **Distributed Key Generation** -(DKG) protocol or a Trusted Dealer approach. RFC 9591 specifies a Trusted Dealer approach and leaves DKG specification -out of scope. - -However, [the original FROST paper](https://eprint.iacr.org/2020/852) did specify a DKG protocol based on Verifiable -Secret Sharing, Pedersen commitments, and Proofs of Possession. This protocol is secure only if communications are -performed over a secure channel, with the following requirements: - -- Messages are authenticated and encrypted in transit, to prevent man-in-the-middle attacks -- All participants have some consensus mechanism (e.g., a transparency log) so everyone has a consistent view of the - protocol messages - -To satisfy these requirements in a standalone protocol, Nick and Ruffing proposed [ChillDKG](https://github.com/BlockstreamResearch/bip-frost-dkg) -as a Bitcoin Improvement Proposal. Because of its tight coupling to the Bitcoin project, ChillDKG was only specified and -implemented over the secp256k1 elliptic curve group. - -> COCKTAIL is a recursive acronym that stands for: "COCKTAIL Orchestrates Cryptographic Key Threshold Agreement for -> Interoperable Libraries." - -COCKTAIL is an independent derivative of ChillDKG intended to be used with any FROST ciphersuite. - -## Abstract - -COCKTAIL-DKG is a standalone, three-round distributed key generation protocol for threshold signature schemes like -FROST. - -COCKTAIL-DKG allows a group of $n$ participants to securely generate a shared group public key and individual secret -shares for a $t$-of-$n$ threshold, without a trusted dealer. The protocol is built on Feldman's Verifiable Secret -Sharing (VSS), uses pairwise ECDH to encrypt shares for transport over insecure channels, and includes a final -certification round to ensure all participants agree on the outcome. It is designed to be ciphersuite-agile, with -specific recommendations for curves like secp256k1, Ed25519 (via Ristretto255), and Ed448 (via Decaf448). - -## Design Overview - -COCKTAIL-DKG, like ChillDKG before it, starts off with a simplified variant of a Pedersen Commitment with Proof of -Possession protocol, referred to as "SimplPedPop". If SimplPedPop were a standalone protocol, it would depend on an -external *equality check protocol* to ensure all participants received the same messages. - -An encryption layer, called "EncPedPop", wraps SimplPedPop with pairwise ECDH to encrypt secret shares. - -Finally, an equality check protocol called "CertEq" is built atop EncPedPop to create a standalone protocol. - -A **coordinator** is assumed to facilitate message passing between participants. The coordinator is a trusted third -party that is responsible for receiving messages from all participants, aggregating them where necessary, and -broadcasting them to all participants. The coordinator does not have access to any secret information. The role of the -coordinator can be fulfilled by a simple broadcast channel, a peer-to-peer network, or a dedicated server application. - -## Supporting Definitions - -This section provides detailed definitions for the notation, message formats, and cryptographic primitives used -throughout the COCKTAIL-DKG protocol. - -### Notation - -- $X \parallel Y$: The concatenation of X followed by Y. -- $n$: The total number of participants in the DKG ceremony. -- $t$: The threshold, i.e., the minimum number of participants required to generate a signature. -- $i, j$: Indices representing participants, where $1 <= i, j <= n$. -- $B$: The generator point of the elliptic curve group. -- $q$: The order of the elliptic curve group. -- $f_i(x)$: The secret polynomial of degree $t-1$ generated by participant $i$. -- $a_{i,k}$: The $k$-th coefficient of $f_i(x)$, which is a scalar. $a_{i,0}$ is the primary secret of participant $i$. -- $C_{i,k}$: The public commitment to the coefficient $a_{i,k}$, where $C_{i,k} = a_{i,k} * B$. -- $C_i$: The VSS commitment for participant $i$, which is the vector of all $C_{i,k}$. -- $s_{i,j}$: The secret share of participant $i$'s polynomial evaluated at $j$, i.e., $s_{i,j} = f_i(j)$. -- $d_i$: The long-term static private key for participant $i$, a scalar. -- $P_i$: The long-term static public key for participant $i$, where $P_i = d_i * B$. -- $e_i$: The ephemeral private key for participant $i$ for a single DKG session, a scalar. -- $E_i$: The ephemeral public key for participant $i$, where $E_i = e_i * B$. -- $PoP_i$: A Proof of Possession signature from participant $i$. -- $x_i$: The final, long-lived secret share for participant $i$, where $x_i = \sum_{j=1}^{n} s_{j,i}$. -- $Y_i$: The public verification share for participant $i$. -- $Y$: The final group public key, where $Y = \sum_{j=1}^{n} C_{j,0}$. -- $payload_{i,j}$: An optional application-defined payload from participant $i$ to participant $j$, which may be empty. -- $S^{(e)}_{i,j}$: The ephemeral-to-static ECDH shared secret, where $S^{(e)}_{i,j} = e_i * P_j$. -- $S^{(d)}_{i,j}$: The static-to-static ECDH shared secret, where $S^{(d)}_{i,j} = d_i * P_j$. - -### Operations - -- $Add(P1, P2)$: Elliptic curve point addition. -- $RandomScalar()$: Generates a uniform cryptographically secure random scalar in the range $[0, q-1]$. -- $H6()$: A ciphersuite-specific key derivation function. -- $Enc()$/$Dec()$: Ciphersuite-specific AEAD encryption/decryption functions. -- $Sign()$/$Verify()$: Ciphersuite-specific digital signature functions for the Proof of Possession. - -### Message Formats - -All messages exchanged between participants are encoded as byte arrays. The specific encoding of protocol elements is -defined below. Implementations **MUST** adhere to these formats to ensure interoperability. - -#### Primitive Types - -Let $G$ be an elliptic curve group with a standardized name (e.g., "P-256", "Ed25519", "secp256k1"). - -- **Scalar**: A scalar is an integer in the range $[0, q-1]$, where $q$ is the order of the group $G$. A scalar is - encoded as a fixed-size, big-endian byte array. The size is determined by the curve (e.g., 32 bytes for P-256, - secp256k1, and Ed25519/Ristretto255). Implementations **MUST** reject any decoded scalar value $s$ where $s \geq q$. -- **Elliptic Curve Point**: An elliptic curve point is encoded in its compressed form, as a fixed-size byte array. The - size and format are determined by the curve (e.g., 33 bytes for P-256 and secp256k1, 32 bytes for - Ed25519/Ristretto255). Implementations **MUST** validate that decoded points are valid curve points. -- **The Point at Infinity**: The point at infinity, which is the identity element of the group, is represented by a byte - array of the same length as a standard point encoding, but filled with all zero bytes. The point at infinity **MUST** - be rejected when parsing VSS commitment points $C_{i,k}$, ephemeral public keys $E_i$, and static public keys $P_i$. - Accepting identity elements in these positions would compromise protocol security. - -#### Protocol Messages - -The following messages are exchanged during the COCKTAIL-DKG protocol. They are constructed by concatenating the byte -representations of their constituent parts in the specified order. - -**1. $msg_{1|i}$ (Participant -> Coordinator, Round 1)** - -This message contains the participant's VSS commitment, their Proof-of-Possession, their ephemeral public key, and the -encrypted shares for all other participants. - -- $C_i$: The VSS commitment, which is a list of **exactly** $t$ elliptic curve points. Implementations **MUST** verify - that the commitment contains exactly $t$ points; any other length indicates a malformed message or an attempted - [threshold elevation attack](https://blog.trailofbits.com/2024/02/20/breaking-the-shared-key-in-threshold-signature-schemes/). - - Format: $C_{i,0} \parallel C_{i,1} \parallel \cdots \parallel C_{i,t-1}$ -- $PoP_i$: The Proof of Possession, which is a signature. The size depends on the signature scheme used by the - ciphersuite. -- $E_i$: The ephemeral public key, an elliptic curve point. - - It does not refer to isogenies. Here, E stands for "ephemeral". -- $c_{i,j}$: An encrypted ciphertext containing the secret share $s_{i,j}$ and an optional application-defined payload - $payload_{i,j}$. The plaintext format is $s_{i,j} \parallel payload_{i,j}$, where $payload_{i,j}$ may be empty. - The ciphertext size depends on the AEAD scheme and the payload size. The minimum ciphertext size is the scalar - encoding size plus the AEAD authentication tag size (e.g., 32 + 16 = 48 bytes for most ciphersuites). - Implementations **SHOULD** enforce a maximum ciphertext size to prevent resource exhaustion attacks. - -The full message is the concatenation of these elements: - -```math -msg_{1|i} = C_i \parallel PoP_i \parallel E_i \parallel c_{i,1} \parallel c_{i,2} \parallel \cdots \parallel c_{i,n} -``` - -**2. $msg2$ (Coordinator -> All Participants, Round 2)** - -This message aggregates the public information from all participants. - -- $C_{j,0}$: The zero-coefficient commitment from participant $j$, an elliptic curve point. -- $PoP_j$: The Proof of Possession from participant $j$. -- $C_{agg}$: The aggregated commitment for non-zero coefficients. This is a list of $t-1$ points. - - Format: $C_{agg,1} \parallel \cdots \parallel C_{agg,t-1}$ -- $E_j$: The ephemeral public key from participant $j$. -- $c_{j,i}$: The ciphertext from participant $j$ intended for participant $i$. - -The message broadcast to participant $i$ is structured as: - -```math -msg_{2|i} = (C_{1,0} \parallel PoP_1) \parallel \cdots \parallel (C_{n,0} \parallel PoP_n) \parallel C_{agg} \parallel E_1 \parallel \cdots \parallel E_n \parallel c_{1,i} \parallel \cdots \parallel c_{n,i} -``` - -**3. $sig_i$ (Participant -> Coordinator, CertEq Phase)** - -This message contains the participant's signature over the protocol transcript. - -- $sig_i$: The signature, created using the participant's static private key $d_i$. The size depends on the signature - scheme. - -**4. Aggregated Signatures (Coordinator -> All Participants, CertEq Phase)** - -This is the final message, containing all signatures on the transcript. - -- $sig_j$: The signature from participant $j$. - -The message is structured as: - -```math -aggregated_sigs = sig_1 \parallel sig_2 \parallel \cdots \parallel sig_n -``` - -### Cryptographic Primitives - -As COCKTAIL-DKG is intended to be used in conjunction with [RFC 9591](https://www.rfc-editor.org/rfc/rfc9591.html), we -begin our enumeration of named hash functions with "H6". - -## Protocol Definition - -This section describes the COCKTAIL-DKG protocol in detail. - -### Setup - -Each participant $i$ is assumed to have: - -- A unique identifier $i$ from $1$ to $n$. Identifiers **MUST NOT** be $0$ or congruent to $0$ modulo the group order - $q$, as this would allow a [zero share attack](https://www.zkdocs.com/docs/zkdocs/protocol-primitives/verifiable-secret-sharing/). -- The parameters $n$ (total participants) and $t$ (threshold). -- A long-term static key pair $(d_i, P_i)$. -- A list of the static public keys of all other participants, ${P_1, ..., P_n}$. -- A ciphersuite defining the elliptic curve group, hash function, and AEAD scheme. -- A `context` string, which **MUST** be unique to the DKG session to prevent replay attacks. It is RECOMMENDED that this - string be constructed by hashing a domain separation tag, the session ID, and the list of participant public keys, - for example: `context = H("COCKTAIL-DKG-CONTEXT" || session_id || P_1 || P_2 || ... || P_n)`. The `session_id` should - be a value that is unique to the session, such as a high-entropy random byte string or a timestamp. All participants - **MUST** validate that they agree on the `context` string before proceeding. - -### Round 1: Commitment and Encryption - -1. **Generate Polynomial:** Participant $i$ generates a secret polynomial $f_i(x)$ of degree $t-1$: - $f_i(x) = a_{i,0} + a_{i,1}x + \cdots + a_{i,t-1}x^{t-1}$. - The coefficients $a_{i,k}$ are chosen as random scalars. $a_{i,0}$ is the participant's primary secret share. -2. **Compute VSS Commitment:** Participant $i$ computes a VSS commitment $C_i$ to their polynomial by creating a public - commitment for each coefficient: - $C_i = (C_{i,0}, C_{i,1}, \cdots, C_{i,t-1})$, where $C_{i,k} = a_{i,k} * B$. -3. **Generate Ephemeral Key:** Participant $i$ generates a fresh ephemeral key pair $(e_i, E_i)$ for this session. -4. **Compute Proof of Possession (PoP):** Participant $i$ computes a digital signature $PoP_i$ over a concatenation of - the `context` string, their VSS commitment $C_i$, and their ephemeral public key $E_i$. The signature is created - using the secret $a_{i,0}$ as the private key and $C_{i,0}$ as the public key. The message to be signed is - `context || C_i || E_i`. The specific signature algorithm is defined by the ciphersuite. -5. **Compute and Encrypt Shares:** For each participant $j$ from $1$ to $n$ (including $j = i$, the self-share): - 1. **Compute Share:** Participant $i$ computes the secret share $s_{i,j} = f_i(j)$. - 2. **Derive Key:** Participant $i$ computes two ECDH shared secrets: one with their ephemeral key and the - recipient's static public key, and one with their static key and the recipient's static public key: - $S^{(e)}_{i,j} = e_i * P_j$ and $S^{(d)}_{i,j} = d_i * P_j$. It then derives a symmetric key and nonce for the AEAD. - - If the hash function has an output length at least 480 bits long: - - $tmp = H6(S^{(e)}_{i,j} \parallel S^{(d)}_{i,j}, E_i, P_i, P_j, context)$. - - $k_{i,j} = tmp[0:32]$ - - $iv_{i,j} = tmp[32:56]$ - - Otherwise: - - $ikm = H6(S^{(e)}_{i,j} \parallel S^{(d)}_{i,j}, E_i, P_i, P_j, context)$. - - $k_{i,j} = H("COCKTAIL-derive-key" \parallel ikm)$ - - $iv_{i,j} = H("COCKTAIL-derive-nonce" \parallel ikm)[0:24]$ - - Here, $H(x)$ is the underlying hash function (e.g., SHA-256). - 3. **Prepare Plaintext:** Participant $i$ prepares the plaintext to encrypt. This consists of the secret share - $s_{i,j}$ followed by an optional application-defined payload $payload_{i,j}$: - $plaintext_{i,j} = s_{i,j} \parallel payload_{i,j}$. - If no application payload is used, $payload_{i,j}$ is empty. - 4. **Encrypt Share:** Participant $i$ encrypts the plaintext for participant $j$: - $c_{i,j} = Enc(plaintext_{i,j}, k_{i,j}, iv_{i,j})$. -6. **Broadcast:** Participant $i$ sends their $msg_{1|i}$ to the coordinator. - -### Round 2: Share Decryption and Verification - -The coordinator waits to receive $msg_{1|i}$ from all $n$ participants. It then broadcasts a list of all received messages -to every participant. Upon receiving the list of all $msg_{1|i}$ messages, each participant $i$ performs the following -steps: - -1. **Validate Commitments:** For each participant $j$ from $1$ to $n$: - - Participant $i$ verifies that the VSS commitment $C_j$ contains **exactly** $t$ points. If $|C_j| \neq t$, - participant $i$ **MUST** abort, identifying participant $j$ as malicious. This check prevents - [threshold elevation attacks](https://blog.trailofbits.com/2024/02/20/breaking-the-shared-key-in-threshold-signature-schemes/). -2. **Verify All PoPs:** For each participant $j$ from $1$ to $n$: - - Participant $i$ verifies the proof of possession $PoP_j$. The signature is checked against the message - `context || C_j || E_j`, using participant $j$'s public commitment $C_{j,0}$ as the public key. - - If any $PoP_j$ is invalid, participant $i$ **MUST** abort, identifying participant $j$ as malicious. -3. **Decrypt and Verify Shares:** For each participant $j$ from $1$ to $n$ (including the self-share $j = i$): - 1. **Derive Key:** Participant $i$ computes two ECDH shared secrets: one with the sender's ephemeral public key - and their static key, and one with the sender's static public key and their static key: - $S^{(e)}_{j,i} = d_i * E_j$ and $S^{(d)}_{j,i} = d_i * P_j$. They then derive the symmetric key and nonce: - - If the hash function has an output length at least 480 bits long: - - $tmp = H6(S^{(e)}_{j,i} \parallel S^{(d)}_{j,i}, E_j, P_j, P_i, context)$. - - $k_{j,i} = tmp[0:32]$ - - $iv_{j,i} = tmp[32:56]$ - - Otherwise: - - $ikm = H6(S^{(e)}_{j,i} \parallel S^{(d)}_{j,i}, E_j, P_j, P_i, context)$. - - $k_{j,i} = H("COCKTAIL-derive-key" \parallel ikm)$ - - $iv_{j,i} = H("COCKTAIL-derive-nonce" \parallel ikm)[0:24]$ - - Here, $H(x)$ is the underlying hash function (e.g., SHA-256). - 2. **Decrypt Plaintext:** Participant $i$ decrypts the ciphertext sent to them from participant $j$: - $plaintext_{j,i} = Dec(c_{j,i}, k_{j,i}, iv_{j,i})$. - If decryption fails, participant $i$ **MUST** abort, identifying $j$ as malicious. - 3. **Parse Plaintext:** Participant $i$ parses the plaintext to extract the secret share $s_{j,i}$ (the first - scalar-sized portion) and any optional application payload $payload_{j,i}$ (the remainder). - 4. **Verify Share:** Participant $i$ verifies the decrypted share $s_{j,i}$ against $j$'s VSS commitment: - $s_{j,i} * B = \sum_{k=0}^{t-1} i^k * C_{j,k}$ - If the check fails, participant $i$ **MUST** abort, identifying $j$ as malicious. -4. **Compute Final Keys:** If all shares are successfully decrypted and verified: - 1. **Secret Share:** Participant $i$ computes their final long-lived secret share by summing all received shares: - $x_i = \sum_{j=1}^{n} s_{j,i}$. - 2. **Group Public Key:** Participant $i$ computes the group public key: - $Y = \sum_{j=1}^n C_{j,0}$. - 3. **Verification Share:** Participant $i$ computes their public verification share $Y_i$. This is done by first - computing the aggregated commitment for each coefficient $k$: - $C_{agg,k} = \sum_{j=1}^{n} C_{j,k}$. - Then, $Y_i = \sum_{k=0}^{t-1} i^k * C_{agg,k}$. - 4. **Final Check:** Participant $i$ performs a final self-consistency check: - $x_i * B = Y_i$. If this check fails, the participant must abort. Note: This check is mathematically - guaranteed to pass if all VSS share verifications in step 3.4 succeeded. It serves as a defense-in-depth - measure to catch implementation bugs in the share summation or verification share computation. - -### Round 3: Certification - -This round ensures that all honest participants have arrived at the same public state. - -1. **Construct Transcript:** Each participant $i$ constructs a canonical byte representation of the final public - transcript, $T$. The transcript **MUST** be constructed by concatenating the following elements in this exact order: - 1. $len(context)$: The length of the context string as a little-endian 64-bit unsigned integer. - 2. $context$: The context string bytes. - 3. $n$: The number of participants as a little-endian 32-bit unsigned integer. - 4. $t$: The threshold as a little-endian 32-bit unsigned integer. - 5. For $j$ from $1$ to $n$: $P_j$ (the static public key of participant $j$, in its standard encoding). - 6. For $j$ from $1$ to $n$: $C_j$ (the full VSS commitment of participant $j$: $C_{j,0} \parallel \cdots \parallel C_{j,t-1}$). - 7. For $j$ from $1$ to $n$: $PoP_j$ (the Proof of Possession signature from participant $j$). - 8. For $j$ from $1$ to $n$: $E_j$ (the ephemeral public key from participant $j$). - 9. $len(ext)$: The length of the application-specific extension as a little-endian 64-bit unsigned integer. - 10. $ext$: The application-specific extension bytes (may be empty). - - All participants **MUST** produce identical transcripts. Any difference indicates a split-view attack or implementation bug. -2. **Sign Transcript:** Participant $i$ signs the transcript $T$ with their long-term static private key $d_i$, - producing a signature $sig_i$. -3. **Broadcast Signature:** Participant $i$ sends $sig_i$ to the coordinator. -4. **Verify Certificate:** The coordinator broadcasts the set of all signatures ${sig_1, \cdots, sig_n}$ to everyone. - Each participant $i$ verifies every signature $sig_j$ on the transcript $T$ against the public key $P_j$. -5. **Success:** If all signatures are valid, the DKG is successful. The participant stores their secret share $x_i$ and - the group public key $Y$. The collection of $T$ and all $n$ signatures on it is called a "success certificate" and - can be stored for auditing. - -### Application-Specific Extensions - -COCKTAIL-DKG supports an optional application-specific extension that is appended to the transcript before signing. -This allows protocols that build atop COCKTAIL-DKG to ensure all parties agree on some application-defined value. - -**Extension Format:** - -The extension is appended to the transcript as: - -- $len(ext)$: The length of the extension as a little-endian 64-bit unsigned integer. -- $ext$: The extension bytes (may be empty; when empty, $len(ext) = 0$). - -**Recommended Use Cases:** - -Applications **MAY** use the extension field for different purposes. Two common patterns are: - -1. **Consensus on External State:** Ensure all parties commit to some agreed-upon value (e.g., a Merkle tree root, - a configuration hash, or a session identifier). The protocol only succeeds if everyone provides the same extension - value. This is useful when the DKG must be bound to external application state. - -2. **Collective Randomness Derivation:** All participants hash together independently-contributed random data via the - extension. If the transcript hashes all match, the participants can derive a shared random value that no single - party could have predicted or biased. This is useful for protocols that need distributed randomness as a byproduct - of the DKG. - -These use cases are not compatible with each other—an application must choose one approach. The extension semantics -are entirely application-defined; COCKTAIL-DKG simply ensures that all participants agreed on the extension value -before the protocol completes. - -**Deriving Extensions from Payloads:** - -When applications use the optional payloads in the encryption step (see [Optional Application Payloads](#optional-application-payloads)), -they **MAY** derive the extension from those payloads to ensure all participants agree on the exchanged data. A recommended -approach is to compute a hash of the participant-ordered payloads: - -1. For each participant $j$ from $1$ to $n$, collect their payload contributions. -2. Compute the extension as: - $ext = H(n \parallel len(payload_1) \parallel payload_1 \parallel \cdots \parallel len(payload_n) \parallel payload_n)$ - Where $n$ is encoded as a little-endian 64-bit unsigned integer and each $len(payload_j)$ is a little-endian 64-bit unsigned integer. - -This ensures that any disagreement about the payloads will result in different transcripts and failed signature verification. - -**Security Note:** - -The extension is included in the transcript and thus covered by all participants' signatures. This provides the same -consensus guarantee as the rest of the transcript: if any participant has a different extension value, the signatures -will not verify and the protocol will abort safely. - -## Error Handling - -A robust implementation of COCKTAIL-DKG **MUST** handle a variety of error conditions. Errors can arise from malformed -messages, invalid cryptographic values, or protocol violations. The ability to distinguish between these cases is -crucial for security and usability. - -### Error Categories - -We recommend that implementations define distinct error types to represent different failure modes. This allows -applications to react appropriately, whether by retrying an operation, aborting the protocol, or initiating a -blame-finding procedure. - -The following categories cover the most common errors: - -1. **Parsing and Deserialization Errors**: - - **Description**: These errors occur when a received message does not conform to the byte-based format specified in - the `Message Formats` section. This could be due to an incorrect length, an invalid point or scalar encoding, or - other structural defects. - - **Action**: An honest participant should never produce a malformed message. If a participant receives such a - message, it should be treated as evidence of a bug in the sender's implementation or a deliberate protocol - violation. The protocol **MUST** be aborted. If the sender can be identified (e.g., in $msg_{1|i}$), they should - be flagged as faulty. -2. **Cryptographic Verification Failures**: - - **Description**: These errors occur when a cryptographic check fails. This category includes: - - An invalid Proof-of-Possession ($PoP_j$). - - A VSS share verification failure ($s_{j,i}G \ne \sum_{i}^{k} C_{j,k}$). - - A failed decryption of an encrypted share ($c_{j,i}$). - - An invalid signature on the final transcript ($sig_j$). - - **Action**: A cryptographic failure is a clear indication that a participant is behaving maliciously or has a - serious bug. The protocol **MUST** be aborted immediately. The participant who sent the invalid data **MUST** be - identified and blamed. For example, if $PoP_j$ is invalid, participant $j$ is at fault. -3. **Protocol Logic Errors**: - - **Description**: These errors relate to violations of the protocol's state machine or rules, such as: - - A participant sending a message at the wrong time. - - The coordinator broadcasting an inconsistent `msg2` (e.g., omitting a participant's data). - - **Action**: These errors indicate a faulty participant or coordinator. The protocol **MUST** be aborted. - If the error can be traced to a specific participant, they should be blamed. - -### Blame-Finding and Reporting - -A key feature of a secure DKG protocol is the ability to identify malicious participants. When an error occurs, the -protocol **MUST** not only terminate but also output information about who caused the failure. This is crucial for -accountability in decentralized systems. - -- **Coordinator's Role**: The coordinator is in a unique position to detect errors in $msg_{1|i}$ messages. If the - coordinator receives a malformed message or one with an invalid PoP from participant $i$, it **MUST** immediately abort - the protocol and broadcast a blame message identifying participant $i$ as faulty, including the malformed message as - evidence. -- **Participant's Role and Public Proofs**: Participants **MUST** validate all data they receive. - - If participant $i$ fails to verify a share $s_{j,i}$ from participant $j$, it **MUST** abort. To prove that $j$ - is cheating, participant $i$ can broadcast a blame message containing $j$'s index and the invalid share $s_{j,i}$. - Any third party can then verify this claim by checking the VSS equation - ($s_{j,i} \cdot B = \sum_{k=0}^{t-1} i^k \cdot C_{j,k}$) - using the public commitment $C_j$. A failure of this equation is a public and undeniable proof of $j$'s misbehavior. - - Similarly, if a PoP from participant $j$ is invalid, this is also a publicly verifiable proof of misbehavior, - since the PoP, the message it signs, and the public key $C_{j,0}$ are all public. -- **Resolving Disputes and Coordinator Malice**: The final certification round is essential for detecting a malicious - coordinator and resolving disputes. - - **Split-View Attack**: If a coordinator sends different messages to different participants, their final - transcripts $T$ will differ. In Round 3, when participants exchange signatures, these signatures will not verify - on the inconsistent transcripts. - An honest participant $i$ who fails to verify $sig_j$ can initiate a dispute by broadcasting their $T_i$ and $sig_i$. - - If participant $j$ responds with a different $T_j$ and a valid $sig_j$ over it, the discrepancy between $T_i$ and - $T_j$ serves as undeniable proof of a split-view attack by the coordinator. - - **Framing a Participant**: If a coordinator attempts to frame participant $j$ by modifying their $msg_{1|j}$ before - broadcasting it, the PoP will fail for all other participants, who will blame $j$. However, in Round 3, - participant $j$ will construct a transcript based on their *original*, valid $msg_{1|j}$. Their signature $sig_j$ - will be valid for their transcript but not for the altered transcript held by others. When this signature - mismatch is detected, participant $j$ can reveal their original $msg_{1|j}$ (with its valid PoP) and their - transcript signature. This evidence proves their honesty and definitively identifies the coordinator as malicious. - -## Ciphersuites - -This section describes the ciphersuites that are specified for use with COCKTAIL. The current scope includes both -[RFC 9591](https://www.rfc-editor.org/rfc/rfc9591.html#name-ciphersuites) and [ZIP-0312](https://zips.z.cash/zip-0312#ciphersuites). - -Each ciphersuite defines a key derivation function $H6(x, pk1, pk2, extra)$, an encryption method $Enc(plain, key, iv)$, -and a decryption method $Dec(cipher, key, iv)$. Ciphersuites **SHOULD** use an AEAD mode for $Enc()$ and $Dec()$. - -The choice of AEAD is guided by the principle of preventing nonce reuse. For ciphersuites where the underlying hash -function provides a large enough output (at least 480 bits; e.g., SHA-512), we can derive both the 256-bit key and a -24-byte (192-bit) nonce (which is long enough to be generated randomly with a negligible chance of collision). - -For ciphersuites based on SHA-256, where the output is smaller than 480 bits, we use $H6()$ to derive an Input Keying -Material (IKM), which is then used with the underlying hash function with two different prefixes. For the key, we use -$Sha256("COCKTAIL-derive-key" \parallel ikm)$. For the nonce, we use the most significant 192 bits of -$Sha256("COCKTAIL-derive-nonce" \parallel ikm)$. The AEAD of choice for the SHA-256 based ciphersuites we specify here is -[XAES-256-GCM](https://github.com/C2SP/C2SP/blob/main/XAES-256-GCM.md). - -The $H6$ function is used to derive a symmetric key and nonce from ECDH shared secrets. Unless otherwise specified, -it is defined as: - -$H6(x, E, P_s, P_r, extra) = CH(prefix \parallel x \parallel E \parallel P_s \parallel P_r \parallel len(extra) \parallel extra)$ - -- $CH$: The specified cryptographic hash function (e.g., SHA-512, BLAKE2b-512). -- $prefix$: A ciphersuite-specific byte string (e.g., `COCKTAIL-DKG-Ed25519-SHA512-H6`). -- $x$: The concatenation of two ECDH shared secrets: $S^{(e)}$ (ephemeral-to-static) and $S^{(d)}$ (static-to-static). -- $E$: The sender's ephemeral public key. -- $P_s$: The sender's static public key. -- $P_r$: The recipient's static public key. -- $len(extra)$: The length of the `extra` data, encoded as a little-endian 64-bit integer. -- $extra$: Additional context-specific data. - -The output of $H6$ is used to derive the key and nonce for the AEAD. - -### Ciphersuite Definitions - -- **COCKTAIL(Ed25519, SHA-512)** - - **`H6` Hash**: SHA-512 - - **`H6` Prefix**: `COCKTAIL-DKG-Ed25519-SHA512-H6` - - **Key/Nonce**: The first 32 bytes of the `H6` output are the key, and the next 24 bytes are the nonce. - - **AEAD**: XChaCha20-Poly1305 - -- **COCKTAIL(Ristretto255, SHA-512)** - - **`H6` Hash**: SHA-512 - - **`H6` Prefix**: `COCKTAIL-DKG-Ristretto255-SHA512-H6` - - **Key/Nonce**: The first 32 bytes of the `H6` output are the key, and the next 24 bytes are the nonce. - - **AEAD**: XChaCha20-Poly1305 - -- **COCKTAIL(Ed448, SHAKE256)** - - **`H6` Hash**: SHAKE256 (with a 56-byte output) - - **`H6` Prefix**: `COCKTAIL-DKG-Ed448-SHAKE256-H6` - - **Key/Nonce**: The first 32 bytes of the `H6` output are the key, and the next 24 bytes are the nonce. - - **AEAD**: XChaCha20-Poly1305 - -- **COCKTAIL(P-256, SHA-256)** - - **`H6` Hash**: SHA-256 - - **`H6` Prefix**: `COCKTAIL-DKG-P256-SHA256-H6` - - **Key/Nonce**: The output of `H6` is used as an input key material. - - The key shall the SHA256 of the string `COCKTAIL-derive-key` followed by the IKM. - - The nonce shall the first 24 bytes SHA256 of the string `COCKTAIL-derive-nonce` followed by the IKM. - - **AEAD**: [XAES-256-GCM](https://github.com/C2SP/C2SP/blob/main/XAES-256-GCM.md) - -- **COCKTAIL(secp256k1, SHA-256)** - - **Note**: This ciphersuite is **NOT** backwards-compatible with ChillDKG due to our key derivation including both - ephemeral-static and static-static ECDH, instead of just ephemeral-static (see - [Differences from ChillDKG](#differences-from-chilldkg) below). - - **`H6` Definition**: A BIP-340-style tagged hash with the tag `COCKTAIL-DKG/H6`. - The message is $x \parallel E \parallel P_s \parallel P_r \parallel extra$. - - **Key/Nonce**: The output of `H6` is used as an input key material. - - The key shall the SHA256 of the string `COCKTAIL-derive-key` followed by the IKM. - - The nonce shall the first 24 bytes SHA256 of the string `COCKTAIL-derive-nonce` followed by the IKM. - - **AEAD**: [XAES-256-GCM](https://github.com/C2SP/C2SP/blob/main/XAES-256-GCM.md) - - **Bitcoin Taproot Warning**: When using this ciphersuite for Bitcoin Taproot outputs, applications **MUST** be aware - that a malicious participant could attempt to embed a hidden Taproot script path commitment in the threshold public - key. Applications intending to use the group public key $Y$ as a Taproot output **SHOULD** apply an additional - unspendable script path tweak (as described in ChillDKG) or use the key only for key-path spending with appropriate - safeguards. This consideration is specific to Bitcoin Taproot and does not apply to other uses of this ciphersuite. - -- **COCKTAIL(JubJub, BLAKE2b-512)** - - **Note**: Compatible with [ZIP-0312](https://zips.z.cash/zip-0312#ciphersuites). - - **`H6` Hash**: BLAKE2b-512 (with a 56-byte output) - - **`H6` Prefix**: `COCKTAIL-DKG-JubJub-BLAKE2b-H6` - - **Key/Nonce**: The first 32 bytes of the `H6` output are the key, and the next 24 bytes are the nonce. - - **AEAD**: XChaCha20-Poly1305 - -- **COCKTAIL(Pallas, BLAKE2b-512)** - - **Note**: Compatible with [ZIP-0312](https://zips.z.cash/zip-0312#ciphersuites). - - **`H6` Hash**: BLAKE2b-512 (with a 56-byte output) - - **`H6` Prefix**: `COCKTAIL-DKG-Pallas-BLAKE2b-H6` - - **Key/Nonce**: The first 32 bytes of the `H6` output are the key, and the next 24 bytes are the nonce. - - **AEAD**: XChaCha20-Poly1305 - -### Schnorr Signature Scheme - -COCKTAIL-DKG uses a simple Schnorr signature scheme for both the Proof of Possession (PoP) and the transcript -certification in Round 3. The signature scheme is defined as follows: - -#### Schnorr Signature Format - -A signature consists of two components: - -- $R$: A compressed elliptic curve point (the commitment) -- $z$: A scalar (the response) - -The signature is encoded as the concatenation of the compressed point encoding of $R$ followed by the scalar encoding -of $z$. The total signature size is the point size plus the scalar size (e.g., 64 bytes for Ristretto255/Ed25519, 65 -bytes for P-256/secp256k1). - -#### Schnorr Sign Algorithm (Prove Possession) - -Given a secret key $sk$ (a scalar) and a message $m$ (a byte string): - -1. Compute the public key: $pk = sk * B$ -2. Compute a deterministic nonce: $k = H(sk \parallel m)$ reduced to a scalar -3. Compute the commitment: $R = k * B$ -4. Compute the challenge: $c = H(R \parallel pk \parallel m)$ reduced to a scalar -5. Compute the response: $z = k + c * sk$ -6. Return the signature $(R, z)$ - -Where: - -- $H$ is the ciphersuite's hash function (SHA-512 for Ed25519/Ristretto255, SHA-256 for P-256/secp256k1) -- The hash output is reduced to a scalar using wide reduction (mod $q$) for 64-byte hashes, or direct reduction for 32-byte hashes -- $B$ is the generator point of the elliptic curve group - -#### Schnorr Verify Algorithm (Verify Proof of Possession) - -Given a signature $(R, z)$, a public key $pk$, and a message $m$: - -1. Compute the challenge: $c = H(R \parallel pk \parallel m)$ reduced to a scalar -2. Compute the left-hand side: $lhs = z * B$ -3. Compute the right-hand side: $rhs = R + c * pk$ -4. Return `true` if $lhs = rhs$, otherwise return `false` - -#### Schnorr Hash-to-Scalar Reduction - -For ciphersuites using SHA-512 (Ed25519, Ristretto255), the 64-byte hash output is reduced to a scalar using -wide modular reduction (reducing a 512-bit integer modulo the group order $q$). - -For ciphersuites using SHA-256 (P-256, secp256k1), the 32-byte hash output is reduced to a scalar by interpreting -the hash as a big-endian integer and reducing modulo the group order $q$. - -#### Schnorr Security Notes - -- The deterministic nonce generation ($k = H(sk \parallel m)$) prevents nonce-reuse attacks that would leak the - secret key. -- The challenge includes $R$, $pk$, and the full message, binding the signature to all inputs. -- This signature scheme is NOT the same as EdDSA (RFC 8032), ECDSA, or BIP-340. Implementations **MUST** use the - scheme specified here to ensure interoperability with COCKTAIL-DKG. - -## Security Considerations - -- **Coordinator Role**: The coordinator is trusted for availability and to correctly broadcast messages, but is not - trusted with the confidentiality of any secret data. A malicious coordinator can disrupt the protocol by refusing to - broadcast messages or by sending different messages to different participants, but it cannot learn the secret shares - or the final group secret key. The final certification round (Round 3) is designed to detect such split-view attacks. -- **Proof of Possession (PoP)**: The PoP in Round 1 prevents a malicious participant from performing a rogue key attack. - By signing their commitment $C_{i,0}$ with the corresponding secret $a_{i,0}$, each participant proves they actually - know the secret key they are contributing. Without this, an attacker could contribute a public key for which they - don't know the private key, leading to an unusable group key. The PoP message includes the context string (which - contains all participant public keys), the full VSS commitment $C_i$, and the ephemeral key $E_i$. The participant - index $i$ is not explicitly included in the PoP message because it is implicitly bound through the context string - (which includes all $P_j$) and through the position of the message in the broadcast. -- **Verifiable Secret Sharing (VSS)**: Feldman's VSS scheme ensures that even if a participant is malicious and sends - incorrect shares, they will be caught. The VSS verification check in Round 2 (step 3.4) allows each participant to - verify that the share they received is consistent with the public commitment. This prevents a malicious participant - from corrupting the final key. - - Participant IDs ($i$, $j$, etc.) **MUST NOT** be equal to 0 or a multiple of the elliptic curve group order. - Respecting this requirement prevents a [zero share attack](https://www.zkdocs.com/docs/zkdocs/protocol-primitives/verifiable-secret-sharing/). -- **Encryption of Shares**: The use of an AEAD to encrypt the secret shares $s_{i,j}$ is crucial. It provides - confidentiality against an eavesdropper on the communication channel and authenticity to prevent a man-in-the-middle - from tampering with the shares. The encryption key is derived using two ECDH shared secrets: one from the sender's - ephemeral key with the recipient's static key ($S^{(e)}_{i,j} = e_i * P_j$), and one from the sender's static key - with the recipient's static key ($S^{(d)}_{i,j} = d_i * P_j$). This approach provides: - - **Forward secrecy**: Compromise of long-term keys does not reveal past session secrets, due to the ephemeral - component. - - **Robust blame-finding**: If decryption fails, the recipient can prove the sender misbehaved using only public - information. Since both parties can independently compute both ECDH shared secrets (the recipient computes - $d_i * E_j$ and $d_i * P_j$), a third party with access to the sender's public keys $E_j$ and $P_j$ can verify - blame claims without requiring the recipient to reveal their private key. - - **Sender authentication**: The inclusion of the static-to-static ECDH binds the ciphertext to the sender's identity, - preventing an attacker from replaying or modifying ciphertexts without detection. -- **Cofactor Security**: As noted in the [working with curves with small subgroups](#working-with-curves-with-small-subgroups) - section, curves like Ed25519 and Ed448 have small cofactors. It is critical that implementations use prime-order group - abstractions like Ristretto255 and Decaf448 to prevent small subgroup attacks, where an attacker could submit a - low-order point to leak information. -- **Participant Authentication**: Throughout the protocol, participants are authenticated to each other via their - long-term static key pairs. The pairwise ECDH key agreement used to encrypt shares in Round 1 provides deniable - authentication; only the owner of the corresponding static private key can derive the correct symmetric key to decrypt - and verify the secret share. This ensures that participants are communicating with the intended parties. The final - signature on the transcript in Round 3 provides explicit, non-repudiable authentication of each participant's agreement - on the final public state. -- **Transcript Certification**: The final round where all participants sign the public transcript is vital. It ensures - that all honest participants have a consistent view of the entire public state of the DKG. If a malicious coordinator - tried to give different participants different sets of messages, the transcript signatures would not match, and the - protocol would fail safely. This provides a guarantee of explicit consensus. Notably, COCKTAIL-DKG does not require - an honest majority for security: even a single honest participant will detect a split-view attack. The success - certificate (transcript plus all signatures) serves as cryptographic proof that all participants agreed on the same - public state at protocol completion. - -### Working with curves with small subgroups - -Certain elliptic curves used in cryptography are in the so-called Montgomery or Edwards model, picked for particularly -efficient arithmetic. The downside to these curves is that they have an order which factors as $n = [h] * q$ for some -small value $h$ and large prime $q$. If an attacker can select a point $P$ of order $h$ they can potentially leak -partial information about the secret scalars from the output of $[s] P$. (They specifically learn $s \bmod h$). - -Two curves in these families we consider are ed25519 with $h = 8$ and edwards448 with $h = 4$. When these curves are -required, use the safe abstractions (Ristretto255 and Decaf448 respectively) which internally handle cofactor clearing. - -However, for some use cases, ed25519 and edwards448 might be used directly. Here, users MUST ensure all points are in -the prime order subgroup q through proper cofactor clearing. - -In the case that a protocol requires both the abstractions (Ristretto255 and Decaf448) as well as points on the curves -themselves, then the lifted points must have their potential cofactors cleared. This should be done by computing -$P^{\prime} = [1/h] [h] P$ where $P$ is a point in the group abstraction. The point $P^{\prime}$ can then be safely -used on the curve itself as it will either be a point of order q or when P is the point at infinity, then $P^{\prime}$ -will be too. - -### Optional Application Payloads - -COCKTAIL-DKG supports an optional application-defined payload that can be included alongside each secret share in the -encrypted ciphertext. This feature enables applications to derive additional shared secrets during the DKG without -running a separate protocol. - -**Use Cases:** - -- **Backup encryption keys**: Participants can exchange random contributions to derive a shared backup key. -- **Session keys**: Applications can establish pairwise or group session keys for subsequent communication. -- **Application-specific data**: Any data that needs to be securely exchanged between participants during key generation. - -**Payload Format:** - -The plaintext encrypted in each ciphertext $c_{i,j}$ has the format: -$plaintext_{i,j} = s_{i,j} \parallel payload_{i,j}$ - -Where $s_{i,j}$ is the fixed-size secret share (determined by the scalar size of the ciphersuite) and $payload_{i,j}$ -is the variable-length application payload (which may be empty). - -**Payload Commitments:** - -If applications use payloads and need to ensure all participants agree on the payloads exchanged, they **SHOULD** -include commitments to the payloads in the transcript or in application-specific extension data. A recommended -commitment format is: -$commitment = H(len(payload) \parallel payload)$ - -Where $len(payload)$ is the length of the payload encoded as a little-endian 64-bit integer. This format ensures -domain separation between payloads of different lengths. - -**Security Note:** - -The optional payload is encrypted and authenticated by the same AEAD that protects the secret share. However, the -payload is NOT verified against the VSS commitments (only the share portion is). Applications using payloads **MUST** -implement their own verification logic if payload integrity beyond AEAD authentication is required. - -### Differences from ChillDKG - -COCKTAIL-DKG is derived from [ChillDKG](https://github.com/BlockstreamResearch/bip-frost-dkg) but introduces several -important changes that break backwards compatibility: - -#### 1. Key Derivation Uses Both Static and Ephemeral ECDH - -ChillDKG derives encryption keys using only an ephemeral-to-static ECDH: - -$S_{i,j} = e_i * P_j$ - -COCKTAIL-DKG uses both ephemeral-to-static AND static-to-static ECDH: - -$S^{(e)}_{i,j} = e_i * P_j$ and $S^{(d)}_{i,j} = d_i * P_j$ - -**Why this matters:** - -Our approach significantly improves blame-finding when decryption fails. - -With ChillDKG's ephemeral-only approach, if participant $i$ claims that participant $j$'s ciphertext failed to decrypt, -proving this claim requires $i$ to demonstrate they correctly computed the ECDH shared secret. However, since only $j$ -knows the ephemeral secret $e_j$, participant $i$ cannot prove to a third party that they used the correct shared secret -without revealing their own long-term private key $d_i$. - -With COCKTAIL-DKG's approach, the encryption key depends on both parties' long-term public keys, which are -publicly known. A third party can verify that participant $i$ correctly derived the key by checking that: - -- The ephemeral component matches: $d_i * E_j$ (verifiable if $i$ reveals the result) -- The static component matches: This is deterministic from public keys $P_i$ and $P_j$ - -This enables more robust blame attribution without requiring participants to reveal their long-term secrets. - -#### 2. Extended H6 Function - -The H6 key derivation function now includes the sender's static public key $P_s$ in addition to the recipient's -public key $P_r$: $H6(x, E, P_s, P_r, extra)$ instead of $H6(x, E, P_r, extra)$. - -#### 3. Optional Application Payloads - -COCKTAIL-DKG allows optional application-defined data to be included in the encrypted share ciphertexts, which -ChillDKG does not support. - -### Share Recovery - -COCKTAIL-DKG inherits a key feature from ChillDKG: the ability to recover DKG outputs from minimal backup material. -This eliminates the need for participants to store session-specific secrets and simplifies backup procedures. - -#### Recovery Data - -The **recovery data** for a successful DKG session consists of: - -1. **Transcript ($T$):** The canonical byte representation of the protocol transcript, as constructed in Round 3. -2. **Success Certificate:** The collection of all $n$ signatures on the transcript: $sig_1, sig_2, \ldots, sig_n$. - -The recovery data is identical for all participants and contains no confidential information. It can be safely: - -- Stored with untrusted backup providers -- Obtained from any cooperative participant or the coordinator -- Shared publicly without compromising security - -#### Backup Requirements - -A complete backup for any participant $i$ consists of only two components: - -1. **Static Secret Key ($d_i$):** The participant's long-term static private key. -2. **Recovery Data:** The transcript and success certificate from each DKG session the participant joined. - -This is a significant simplification compared to traditional DKG backup schemes, which typically require storing -session-specific secrets for each key generation ceremony. - -#### Recovery Algorithm - -Given the static secret key $d_i$ and the recovery data, a participant can deterministically reconstruct all DKG outputs: - -**Input:** - -- $d_i$: The participant's static secret key. -- $T$: The transcript from a successful DKG session. -- $\{sig_1, \ldots, sig_n\}$: The success certificate. - -**Output:** - -- $x_i$: The participant's secret share. -- $Y$: The group public key. -- $Y_1, \ldots, Y_n$: The public verification shares. - -**Steps:** - -1. **Validate Certificate:** Verify each signature $sig_j$ on the transcript $T$ against the public key $P_j$ extracted - from the transcript. If any signature is invalid, abort with an error. -2. **Extract Parameters:** Parse the transcript to obtain: - - The context string and its length - - The number of participants $n$ and threshold $t$ - - All static public keys $P_1, \ldots, P_n$ - - All VSS commitments $C_1, \ldots, C_n$ - - All Proofs of Possession $PoP_1, \ldots, PoP_n$ - - All ephemeral public keys $E_1, \ldots, E_n$ - - The application-specific extension (if any) -3. **Determine Participant Index:** Find the index $i$ such that $P_i = d_i * B$. If no such index exists, abort. -4. **Reconstruct Encryption Keys:** For each participant $j$ from $1$ to $n$: - 1. Compute the ECDH shared secrets: - - $S^{(e)}_{j,i} = d_i * E_j$ (using the sender's ephemeral key) - - $S^{(d)}_{j,i} = d_i * P_j$ (using the sender's static key) - 2. Derive the symmetric key $k_{j,i}$ and nonce $iv_{j,i}$ using H6, following the same derivation as Round 1. -5. **Obtain Ciphertexts:** The recovering participant must request the ciphertexts $c_{j,i}$ from other participants - or the coordinator. This cooperative step ensures that recovery requires active participation from the group, - preventing unilateral recovery from backup alone. -6. **Decrypt and Verify Shares:** For each participant $j$, decrypt $c_{j,i}$ using $k_{j,i}$ and $iv_{j,i}$ to obtain - $s_{j,i}$. Verify each share against the VSS commitment: $s_{j,i} * B = \sum_{k=0}^{t-1} i^k \cdot C_{j,k}$. -7. **Compute Final Share:** $x_i = \sum_{j=1}^{n} s_{j,i}$. -8. **Compute Public Outputs:** - - Group public key: $Y = \sum_{j=1}^{n} C_{j,0}$. - - Public verification shares: For each participant $m$, $Y_m = \sum_{j=1}^{n} \sum_{k=0}^{t-1} m^k \cdot C_{j,k}$. - -#### Privacy Considerations - -Users should be aware that recovery data reveals: - -- Session parameters (threshold $t$ and number of participants $n$) -- All participants' static public keys ($P_1, \ldots, P_n$) -- The group public key ($Y$) and public verification shares -- The application-specific extension (if used) - -This information may create correlations between participants and their threshold setup. For privacy-sensitive -applications, the recovery data **SHOULD** be encrypted before storage with untrusted providers. A recommended approach -is to derive an encryption key from the static secret key using the ciphersuite's hash function: - -$$k_{backup} = H(\text{"COCKTAIL-BACKUP-KEY"} \parallel d_i)$$ - -#### Security Considerations for Recovery - -1. **Timing of Key Usage:** Participants **MUST NOT** use the group public key $Y$ until they have confirmed that all - participants possess the recovery data. A catastrophic scenario could otherwise occur: one participant deems the - session successful and begins using the threshold key, but they are the only one with recovery data. If that - participant's storage fails, the key becomes unrecoverable and any data or operations depending on it are lost. - -2. **Explicit Confirmations:** Before using a threshold public key, applications **SHOULD** obtain explicit confirmations - from all participants that they have successfully stored the recovery data. - -3. **Recovery Without Confirmations:** If a participant receives recovery data after a session but cannot verify other - participants' completion, they **MAY** still recover their outputs for future signing participation. However, they - **SHOULD NOT** rely on that threshold key for critical operations until all participants have confirmed storage. - -## Alternatives - -- **Trusted Dealer**: Simpler but introduces a single point of failure. COCKTAIL-DKG is for scenarios where a trusted - dealer is unavailable or undesirable. -- **Original FROST DKG**: Requires pre-established secure channels between all participant pairs. COCKTAIL-DKG builds - in its own encryption layer (EncPedPop), making it usable over insecure channels. - -## Appendix A: Pseudocode - -This appendix provides a series of algorithms that describe the COCKTAIL-DKG protocol in a high-level, -implementation-agnostic manner. The notation is meant to be illustrative rather than strictly formal. - -### Algorithm 1: Polynomial Generation and VSS Commitment - -**Input:** - -- `t`: The threshold parameter. -- `G`: The generator point of the elliptic curve group. -- `q`: The order of the elliptic curve group. - -**Output:** - -- `f`: A secret polynomial of degree `t-1`. -- `C`: A vector of public commitments to the polynomial coefficients. - -**Steps:** - -1. Initialize an empty polynomial f. -2. Initialize an empty list of commitments C. -3. For k from 0 to t-1: - 1. Generate a random scalar a_k in the range [0, q-1]. - 2. Add the term a_k * x^k to the polynomial f. - 3. Compute the commitment C_k = a_k * B. - 4. Append C_k to the list C. -4. Return (f, C). - -**Pseudocode:** - -```python -function GeneratePolynomial(t, G, q): - f = new Polynomial() - C = new List() - - for k from 0 to t-1: - a_k = RandomScalar(q) - f.add_coefficient(a_k) - - C_k = a_k * B - C.append(C_k) - - return (f, C) -``` - ---- - -### Algorithm 2: Secret Share Evaluation - -**Input:** - -- `f`: A secret polynomial. -- `j`: The index of the recipient participant. - -**Output:** - -- `s_j`: The secret share for participant `j`. - -**Steps:** - -1. Evaluate the polynomial f at the point x = j. -2. Let the result be s_j = f(j). -3. Return s_j. - -**Pseudocode:** - -```python -function EvaluatePolynomial(f, j): - result = 0 - # iterate from highest degree to lowest - for a in reverse(f.coefficients): - result = result * j + a - return result -``` - ---- - -### Algorithm 3: Secret Share Verification - -**Input:** - -- `s_j`: A secret share received from another participant. -- `j`: The index of the recipient participant (i.e., self). -- `C`: The list of VSS commitments from the sender. -- `G`: The generator point of the elliptic curve group. -- `t`: The threshold parameter. - -**Output:** - -- `valid`: A boolean indicating if the share is valid. - -**Steps:** - -1. Compute the public verification point from the share: V = s_j * B. -2. Compute the expected verification point from the commitments: - 1. Initialize an identity point R. - 2. For k from 0 to t-1: - 1. Compute term = (j^k) * C_k. - 2. Add term to R: R = R + term. -3. Compare the points: valid = (V == R). -4. Return valid. - -**Pseudocode:** - -```python -function VerifyShare(s_ji, i, C_j, G, t): - # V = s_{j,i} * B - V = s_ji * B - - # R = sum_{k=0}^{t-1} (i^k * C_{j,k}) - R = IdentityPoint() - for k from 0 to t-1: - i_k = power(i, k) - C_jk = C_j[k] - term = i_k * C_jk - R = R + term - - return V == R -``` - -### Helper: Key and Nonce Derivation - -This helper abstracts the ciphersuite-dependent key derivation logic used in Rounds 1 and 2. - -```python -function DeriveKeyAndNonce(cs, ecdh_secret, E, P_sender, P_recipient, context): - if cs.HashFunction.OutputSizeInBytes() >= 56: - tmp = H6(ecdh_secret, E, P_sender, P_recipient, context) - return (tmp[0:32], tmp[32:56]) - else: - ikm = H6(ecdh_secret, E, P_sender, P_recipient, context) - key = H("COCKTAIL-derive-key" || ikm) - nonce = H("COCKTAIL-derive-nonce" || ikm)[0:24] - return (key, nonce) -``` - -### Algorithm 4: COCKTAIL-DKG Round 1 (Participant `i`) - -**Input:** - -- `i`: The index of the current participant. -- `t`: The threshold parameter. -- `n`: The total number of participants. -- `cs`: The ciphersuite (providing Group, Hash, AEAD). -- `context`: A session-specific context string. -- `d_i`: The static private key of participant `i`. -- `P_i`: The static public key of participant `i`. -- `P_j`: The static public key of every other participant `j`. -- `payloads`: (Optional) A map from participant index `j` to application-defined payload bytes. - -**Output:** - -- `msg1_i`: The Round 1 message to be broadcast. -- `internal_state`: Values to be stored for the next round (e.g., polynomial, ephemeral key). - -**Steps:** - -1. Generate Polynomial and VSS Commitment: - 1. (f_i, C_i) = Algorithm1(t, cs.Group.G, cs.Group.q) -2. Generate Ephemeral Key: - 1. e_i = cs.Group.RandomScalar() - 2. E_i = e_i * cs.Group.G -3. Compute Proof of Possession (PoP): - 1. Let a_i_0 be the constant term of f_i. - 2. Let C_i_0 be the first commitment in C_i. - 3. PoP_i = Sign(private_key=a_i_0, message=context || C_i || E_i) (using a scheme compatible with C_i_0). -4. Compute and Encrypt Shares: - 1. Initialize an empty list encrypted_shares. - 2. For j from 1 to n: - 1. s_i_j = Algorithm2(f_i, j). - 2. Derive ECDH key using both ephemeral and static secrets: - - ecdh_ephemeral = e_i * P_j - - ecdh_static = d_i * P_j - - ecdh_secret = ecdh_ephemeral || ecdh_static - - If the hash function used has an output size fewer than 480 bits, use the output - of H6 as an Input Keying Material to two more hash function calls, which will be used - to derive a nonce and key. (Here, H() refers to, e.g., sha256): - - ikm = H6(ecdh_secret, E_i, P_i, P_j, context) - - key = H("COCKTAIL-derive-key" || ikm) - - nonce = H("COCKTAIL-derive-nonce" || ikm)\[0:24] - - If the hash function used has an output size greater than equal to 480 bits, just split them: - - tmp = H6(ecdh_secret, E_i, P_i, P_j, context) - - key = tmp[0:32] (32 bytes) - - nonce = tmp[32:56] (24 bytes) - 3. Prepare plaintext with optional payload: - - payload_i_j = payloads[j] if j in payloads else empty bytes - - plaintext = s_i_j || payload_i_j - 4. Encrypt plaintext: - - c_i_j = Encrypt(key, nonce, plaintext) - 5. Append c_i_j to encrypted_shares. -5. Construct Message: - 1. msg1_i = (C_i, PoP_i, E_i, encrypted_shares) -6. Store State: - 1. internal_state = (f_i, e_i) -7. Return (msg1_i, internal_state). - -**Pseudocode:** - -```python -function Round1(i, t, n, cs, context, d_i, P_i, AllPublicKeys, payloads={}): - (f_i, C_i) = GeneratePolynomial(t, cs.Group.G, cs.Group.q) - a_i0 = f_i.coefficient(0) - e_i = cs.Group.RandomScalar() - E_i = e_i * cs.Group.G - PoP_i = Sign(private_key=a_i0, message=context || C_i || E_i) - - encrypted_shares = new List() - for j from 1 to n: - s_ij = EvaluatePolynomial(f_i, j) - P_j = AllPublicKeys[j] - ecdh_secret = (e_i * P_j) || (d_i * P_j) - (key, nonce) = DeriveKeyAndNonce(cs, ecdh_secret, E_i, P_i, P_j, context) - payload_ij = payloads.get(j, empty_bytes) - c_ij = Encrypt(key, nonce, s_ij || payload_ij) - encrypted_shares.append(c_ij) - - msg1_i = new Round1Message(C_i, PoP_i, E_i, encrypted_shares) - internal_state = new State(f_i, e_i) - return (msg1_i, internal_state) -``` - -### Algorithm 5: COCKTAIL-DKG Round 2 (Participant `i`) - -**Input:** - -- `i`: The index of the current participant. -- `all_msg1s`: A list of all Round 1 messages from all participants. -- `internal_state`: The state saved from Round 1 (`f_i`, `e_i`). -- `d_i`: The static private key of participant `i`. -- `P_i`: The static public key of participant `i`. -- `AllPublicKeys`: The static public keys of all participants. -- `cs`: The ciphersuite. -- `context`: The session-specific context string. - -**Output:** - -- `x_i`: The final secret share for participant `i`. -- `Y`: The group public key. -- `Y_i`: The public verification share for participant `i`. -- `received_payloads`: A map from participant index `j` to the received payload bytes (may be empty). -- `transcript_data`: Public data needed for Round 3. - -**Steps:** - -1. Initialize an empty list received_shares. -2. Initialize an empty map received_payloads. -3. Process messages from each participant j: - 1. For j from 1 to n: - 1. Parse (C_j, PoP_j, E_j, encrypted_shares_j) from msg1_j. - 2. Verify PoP: - - valid_pop = Verify(public_key=C_j_0, signature=PoP_j, message=context || C_j || E_j) - - If valid_pop is false, abort and blame participant j. - 3. Decrypt Plaintext: - - Let c_j_i be the encrypted ciphertext from j for i. - - Let P_j = AllPublicKeys\[j\]. - - Derive ECDH key using both ephemeral and static secrets: - - ecdh_ephemeral = d_i * E_j - - ecdh_static = d_i * P_j - - ecdh_secret = ecdh_ephemeral || ecdh_static - - If the hash function used has an output size fewer than 480 bits, use the output - of H6 as an Input Keying Material to two more hash function calls, which will be used - to derive a nonce and key. (Here, H() refers to, e.g., sha256): - - ikm = H6(ecdh_secret, E_j, P_j, P_i, context) - - key = H("COCKTAIL-derive-key" || ikm) - - nonce = H("COCKTAIL-derive-nonce" || ikm)\[0:24] - - If the hash function used has an output size greater than equal to 480 bits, just split them: - - tmp = H6(ecdh_secret, E_j, P_j, P_i, context) - - key = tmp\[0:32\] (32 bytes) - - nonce = tmp\[32:56\] (24 bytes) - - Decrypt: - - plaintext = Decrypt(key, nonce, ciphertext=c_j_i) - - If decryption fails, abort and blame participant j. - 4. Parse Plaintext: - - s_j_i = plaintext\[0:scalar_size\] (the secret share) - - payload_j_i = plaintext\[scalar_size:\] (any remaining bytes are the optional payload) - - received_payloads\[j\] = payload_j_i - 5. Verify Share: - - valid_share = Algorithm3(s_j_i, i, C_j, cs.Group.G, t) - - If valid_share is false, abort and blame participant j. - 6. Add s_j_i to received_shares. -4. Compute Final Keys: - 1. x_i = sum(received_shares) (scalar addition). - 2. Y = sum(C_j_0 for all j) (point addition). - 3. Compute Verification Share Y_i: - 1. Initialize Y_i to the identity point. - 2. For k from 0 to t-1: - - C_agg_k = sum(C_j_k for all j) (point addition). - - term = (i^k) * C_agg_k - - Y_i = Y_i + term - 4. Final Check: - - If x_i * cs.Group.G != Y_i, abort (protocol failure). -5. Prepare for Round 3: - 1. transcript_data = (all_msg1s, context, all_static_public_keys) -6. Return (x_i, Y, Y_i, received_payloads, transcript_data). - -**Pseudocode:** - -```python -function Round2(i, all_msg1s, internal_state, d_i, P_i, AllPublicKeys, cs, context): - received_shares = new List() - received_payloads = new Map() - - for j from 1 to n: - msg1_j = all_msg1s[j] - C_j, PoP_j, E_j = msg1_j.C, msg1_j.PoP, msg1_j.E - P_j = AllPublicKeys[j] - - if len(C_j) != t: - abort("Invalid commitment length", j) - if not Verify(public_key=C_j[0], signature=PoP_j, message=context || C_j || E_j): - abort("Invalid PoP", j) - - c_ji = msg1_j.encrypted_shares[i] - ecdh_secret = (d_i * E_j) || (d_i * P_j) - (key, nonce) = DeriveKeyAndNonce(cs, ecdh_secret, E_j, P_j, P_i, context) - plaintext = Decrypt(key, nonce, ciphertext=c_ji) - if plaintext is null: - abort("Decryption failed", j) - - s_ji = plaintext[0:scalar_size] - received_payloads[j] = plaintext[scalar_size:] - - if not VerifyShare(s_ji, i, C_j, cs.Group.G, t): - abort("Invalid share", j) - received_shares.append(s_ji) - - x_i = sum(received_shares) - Y = sum(all_msg1s[j].C[0] for j in 1..n) - Y_i = IdentityPoint() - for k from 0 to t-1: - C_agg_k = sum(all_msg1s[j].C[k] for j in 1..n) - Y_i = Y_i + (power(i, k) * C_agg_k) - - if (x_i * cs.Group.G) != Y_i: - abort("Final check failed") - - transcript_data = new TranscriptData(all_msg1s, context, AllPublicKeys) - return (x_i, Y, Y_i, received_payloads, transcript_data) -``` - -### Algorithm 6: COCKTAIL-DKG Round 3 (Participant `i`) - -**Input:** - -- `i`: The index of the current participant. -- `d_i`: The static private key of participant `i`. -- `P_j`: The static public key of every other participant `j`. -- `transcript_data`: The public data from Round 2. - The transcript includes: - - len(context) as uint64_le, context bytes - - n as uint32_le, t as uint32_le - - All static public keys P_j - - All VSS commitments C_j - - All PoP signatures PoP_j - - All ephemeral public keys E_j -- `extension`: (Optional) Application-specific extension bytes (defaults to empty). - -**Output:** - -- `success`: A boolean indicating the protocol completed successfully. - -**Steps:** - -1. Construct Transcript: - 1. T = CanonicalEncode(transcript_data, extension) -2. Sign Transcript: - 1. sig_i = Sign(private_key=d_i, message=T) -3. Broadcast and Receive Signatures: - 1. Send sig_i to the coordinator. - 2. Receive all_signatures from the coordinator. -4. Verify All Signatures: - 1. For j from 1 to n: - 1. Let sig_j be the signature from participant j. - 2. valid_sig = Verify(public_key=P_j, signature=sig_j, message=T) - 3. If valid_sig is false, abort and blame participant j. -5. Success: - 1. success = true -6. Return success. - -**Pseudocode:** - -```python -function Round3(i, d_i, AllPublicKeys, transcript_data, extension=empty_bytes): - T = CanonicalEncode(transcript_data, extension) - sig_i = Sign(private_key=d_i, message=T) - all_signatures = broadcast_and_receive(sig_i) - - for j from 1 to n: - if not Verify(public_key=AllPublicKeys[j], signature=all_signatures[j], message=T): - abort("Invalid transcript signature", j) - - return true - - -function CanonicalEncode(transcript_data, extension): - T = empty_bytes - T = T || uint64_le(len(transcript_data.context)) - T = T || transcript_data.context - T = T || uint32_le(transcript_data.n) - T = T || uint32_le(transcript_data.t) - for j from 1 to n: - T = T || transcript_data.static_public_keys[j] - for j from 1 to n: - T = T || transcript_data.vss_commitments[j] - for j from 1 to n: - T = T || transcript_data.pop_signatures[j] - for j from 1 to n: - T = T || transcript_data.ephemeral_public_keys[j] - T = T || uint64_le(len(extension)) - T = T || extension - return T -``` - -## Appendix B: Test Vectors - -This section provides test vectors for various threshold configurations (2-of-3, 3-of-5, and 7-of-14) across all -supported ciphersuites. The vectors were generated deterministically using a seed derived from the authors' names: - -``` -seed = SHA256("Daniel Bourdrez,Soatok Dreamseeker,Tjaden Hess") - = b171b6992cc6db1f40b18dd8b1361d642f013e4b1208a735259a516af60dcb68 -``` - -### Transparent Derivation Scheme - -All secret values are derived using a labeled hash with ciphersuite and threshold domain separation: - -```python -derived_bytes = H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label) -``` - -Where: - -- `H` is the ciphersuite's hash function (e.g., SHA-512 for Ristretto255, SHA-256 for P-256) -- `ciphersuite_id` is the ciphersuite identifier string (e.g., "COCKTAIL(Ristretto255, SHA-512)") -- `t` is the threshold, encoded as a little-endian 32-bit unsigned integer -- `n` is the number of participants, encoded as a little-endian 32-bit unsigned integer -- `label` is a human-readable ASCII string identifying the value being derived - -#### Labels - -| Value | Label Format | Example | -|-------|-------------|---------| -| Static secret key for participant i | `static_secret_key_{i}` | `static_secret_key_1` | -| Round 1 RNG stream for participant i | `round1_participant_{i}` | `round1_participant_1` | -| Payload for participant i | `payload_{i}` | `payload_1` | - -#### Scalar Reduction - -For ciphersuites with 32-byte scalars and SHA-256 hash (P-256, secp256k1): - -- The 32-byte hash output is reduced modulo the group order - -For ciphersuites with 64-byte hash output (SHA-512, SHAKE256, BLAKE2b-512): - -- Wide reduction is used (64 bytes reduced modulo the group order) - -This allows any developer to independently reproduce the test vectors by: - -1. Computing `H(seed || ciphersuite_id || uint32_le(t) || uint32_le(n) || label)` for each value -2. Reducing the hash output to a scalar using the appropriate method - -#### Context String Format - -The context string for test vectors follows the pattern: -``` -"COCKTAIL-DKG-TEST-VECTOR-{t}-OF-{n}" -``` - -For example: - -- 2-of-3: `"COCKTAIL-DKG-TEST-VECTOR-2-OF-3"` (hex: `434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33`) -- 3-of-5: `"COCKTAIL-DKG-TEST-VECTOR-3-OF-5"` (hex: `434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35`) -- 7-of-14: `"COCKTAIL-DKG-TEST-VECTOR-7-OF-14"` (hex: `434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134`) - -### Test Vector Types - -Each ciphersuite includes the following test vector types: - -1. **Basic vectors** (2-of-3, 3-of-5, 7-of-14): Standard DKG execution with empty extension. -2. **Payload extension vector** (2-of-3): Each participant includes a seed-derived payload with their encrypted shares. - The extension is computed as a hash of the participant-ordered payloads: - - ```text - ext = H(uint64_le(n) || uint64_le(len(payload_1)) || payload_1 || ... || uint64_le(len(payload_n)) || payload_n) - ``` - -3. **Recovery vectors** (2-of-3): Each 2-of-3 configuration includes recovery test data for participant 1. - The recovery data contains: - - The ciphertexts $c_{j,1}$ from each participant $j$ to participant 1 - - The expected recovered secret share $x_1$ - - The expected recovered verification share $Y_1$ - - These values enable implementers to verify their recovery implementation produces correct outputs when - decrypting ciphertexts using participant 1's static secret key and the transcript from the DKG session. - -Full test vectors in JSON format are also available in [CCTV](https://github.com/C2SP/CCTV/tree/main/cocktail-dkg). - -The following sections provide test vectors for 2-of-3, 3-of-5, and 7-of-14 threshold configurations for each -ciphersuite. - -### COCKTAIL(Ristretto255, SHA-512) - -#### 2-of-3 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `8232337dffa583f214e2ead7f19c37b482f77171194ed6984a715353e086d20e` | `e86e416c45160b32c774ebac802906548d94b3327517178c3c743226dd594d32` | -| 2 | `f7b358f26668f0733363b309c435bc16f7670ec5850e4860c5d25e049e7d060d` | `c003305ceb27d887d9391f85138fc34edae9c963951a4e9c950bed8509ba2b5e` | -| 3 | `fc2df6b164cac912a8c2d294b528f5e3261f1724d510f9fd1c2bae5e76308d0b` | `e4dad4d96d6e507ac59aa539a42c8185618b51941f4497af246cfaa9d1912b18` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304` | `5e130c137d31a445d1b8df391b41db0dbf6a9e13649abb40d68d3fa955eca22d` | -| 2 | `7db7ccef4df8fb157766082728cd2f072c0ec3af6d352a3d0af49919daf9950b` | `2c9a0c7d2a8e3c37c7b1ebb5d40bad2e9127151ad160a8b7d0782482fd790007` | -| 3 | `04e3c4216570bdbdf8f4006a6f5b279cdefea07997f862e3eb71320ebaccf802` | `b434b345762decb04e5d9937cc5aee03b828808ea8d5500ea7c06c684712e143` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `688801fc10825c8c317a69bf7720f5a1e9deda663658dcd8d49c75fae3c8ff24d0e8cbbee95e3b9d85a48c512863a3d2f484c572ff2229c1e9bb70ab9aea6609` - -#### Final Output - -- **Group Public Key**: `0a1592f555f20d3a3b3c7bc032ebe4b46cb2870da141404873e5fc8d4136120f` - -#### Recovery (Participant 1) - -| Field | Value | -|-------|-------| -| Ciphertext from P1 | `9123460b09df36e1e8b23c5ab8716568874481343bb647109941484c4a0b77243e9057ea3e6e39b394f3e97abd09e407` | -| Ciphertext from P2 | `5f4432d0349118d57dd893d08094fe9732574887ae1f6ad0c723c5ec95a5a25973b7e974f221667f86547833f62abfe4` | -| Ciphertext from P3 | `7c72d167a3a1ae7a7d1afb3970a16e7433af7a9a9d17e7ba1f1dae334889b989dcb9fae5dd17d70952953d03858f1b98` | -| Recovered Secret Share | `09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304` | -| Recovered Verification Share | `5e130c137d31a445d1b8df391b41db0dbf6a9e13649abb40d68d3fa955eca22d` | - -#### 3-of-5 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `0532c882c5e72dc374dd3bf221e641b5634ec4316a5c96a7eb168510d2379a08` | `fc8ff6d9a852fbc3f4b673be37e52d65beb4afbbf86d217572bc2d55dc82c37a` | -| 2 | `33531cd0046f315ba42e9c451c130bb934773852b5a3227e516f34aaf99d780a` | `4c40c03b25a8029931c33a11d965df4494a6adc126b04f937e1243dde572877e` | -| 3 | `2628761a926ec29d7b593ccea04cc799a5066d746b07a025436300b580931a07` | `64490433b5b6d3217311bc99d01b84a158f31232fae5545f1058a77632776a4f` | -| 4 | `c2355a62f365346e9577fd32e436b3fffa22a917a188f576919e86ac65236a09` | `ee106ab40ff4e2cae74a1d0a12b8bcae46b8f85a2285cbcf93357519fc060e44` | -| 5 | `82eacb16d6b34573e3836b214481e0fc4e885ea8bbbfb6bf80d6d4e37ad9630d` | `a4ebab43a8b6baa1842d7afd5e2354401b7c4caef9a7edab8ad5b4d9ffdb8813` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `653535bf967662ac857d654764a1b9550abe0809f415b378ab7ada025b4c2802` | `be53f58edb38e3ad67964229124f804350ef7b1665a1b2dd6a20eb2b04829160` | -| 2 | `5d69230ed12c9e7d43e62b58540fff1a951e5a0dfdb119190f86339f3dae6b0c` | `dc3f9543e44f2b1db3ea4506cd5e0bc54162cb9f4e1144e7beaa89f499b3a93e` | -| 3 | `0f3a902905dfa28f9a303b21ca3729b0c3f533850e8ee4e4848cc411018a5d01` | `d27e7ca67ff733af3048c939cc008841a3ec0c761d415ac842fce072f0cd3126` | -| 4 | `554f67cb67539592379682e8820ef63e9643967028aa13dc0c8e8d5aa5dffd00` | `de380d0925d9b53277d69e3307053745a7d972ad62a7d76ef6219475053d7f52` | -| 5 | `2fa9a8f3f88975861a1702ae7e9365c70c0881cf4a06a7fea68a8e792aaf4c0b` | `0e0be364b5ed7e1b454b28ef38be3c8c2de44324df78f764247d4c599584514e` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `c80f280bf75822900ae0db5fa3a5a6802d6d3378f5bd931f1c320d2de2cbac6214e2ed9450c2b4090eca486c369cfd9490d7a184f756dc85fb3cc433f21bb23d` - -#### Final Output - -- **Group Public Key**: `08ee9bb0fc75a34dabe96f9f808d89234a7456d0563bc0887404fc9c0bb7b406` - -#### 7-of-14 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `730091092abcd19d49aa1c3277dd36ff2d8bb4e6b91963e467dc9b5429e48401` | `9c75faa367177d035128f26e8953b9ce5cf68bb189edbd6d58f1db2c8dad676b` | -| 2 | `7952975e46574ee2772d67896829e022332d360cf4966c17b895968b332ca505` | `c46adec5d82f467c8ee56872c75ce12f7ac240a65d50c3fff8c85310634fb32b` | -| 3 | `50789dbe3bcb2a8cbe41d5f535abfc56a609e6453f5736f66a33bc031864d80f` | `2cae87df6ab209f4c3bfd25cf303aed05944184571de8ac81aa987483d4f8062` | -| 4 | `50fbcd2cdf1f2998a9b0419bdf7197fd962d3e91e879546acd4241bc369e330d` | `2eebf6f81abbd598e49297f2210e0d2b6133a61ae5fd2f40f0da0e54b146491d` | -| 5 | `af2a5f2917da0feb73154a7f87cf608ae50b35083d2853ff10ba26e133db180b` | `f2b623ce85be496517df79c447d54dc26a45bbfd2622552c73cf108d8c68786b` | -| 6 | `d5a659c9640847799436aa51503f31a70319a006b9eea946cf1fe32e99c8bd0c` | `9e5522df34c631caac8e30a4fba13d608420598b02394da9ff7646586e5fb240` | -| 7 | `778db0ae1a01759bc947d48b0ede7fa805c3bbd51fc2845cf4a9f3a309078a08` | `2a077c782fdcfadcfd569ad965d317cd733c72feaaa3da996ccefac5c4b94b1f` | -| 8 | `4224093484db587c8e28c372343a1dcfd2b528dc36690211d059b5d67491a908` | `e6204385f19b7f1d2f69feabc033cb416299bab36eba32abf9fc13a54bce6a7b` | -| 9 | `950d4e827b4155528b4d473baf8543f1a932c0c28e6fc901e14a6287fcb94e06` | `dcc3518ecd3b596c99d849c7670b708b1e7a5601539312fb7625af408a5b2729` | -| 10 | `233abff49c6f626d63645e0b7e158928a20256e4dbb8c3b00ce0fb1129ead00c` | `ba0d0c4030c2baba4ca96512bce0317d135b3118fa68b43f55bc30ddcc75b602` | -| 11 | `15452dce3d48fec02cb2edef3f070719cfcd907767bcc63132d1813830e8000b` | `eaf74ed6300e8fdcf04c32ede1cfbc7cd1caaa9243da90a463f3841114dcca4e` | -| 12 | `70faec6c97ba6e919269bc3cbd296053e2678b246cd6608d2b435ba91d766f09` | `34a1222b4d714f514dcb50ff9a145e961a29462c33f2f04c42fe37bcae90b660` | -| 13 | `841952d79b7c9e7cf26430ca840dd508620e44efd48f42ad31224c51df246e0c` | `b4afc08660a033b2036b2a0d480fce0f03278b4a74351af6bb6e41b2a06d2363` | -| 14 | `d63e9f455f758b7946d888402a9790a66b3fe4fce7db3dd04de5c4dc4b9ac903` | `b25ac7ad672ae828780b229ebe0a9ef97626cf5d9f975693ab3aedb5db54846f` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `7fd318c7a71d543ed87e2b8df70d434f3bd4406a0e754069d4317327a02d430a` | `9a8493d78c60dc0caaa2aa294777d9f4db157e4b002de4f1d5e5fdba7750b24b` | -| 2 | `302e7de8da8bafd705aa75a1dd830603fcf72c0f28e8e6be16cdc7adfc4bf304` | `9aa8f5385334269aca711a4e71f0592483aa2360c3a348cd082b79115739507a` | -| 3 | `3105eeb75e94d6b40a61a734864367a4bae92d3a61442aec086da74d2fd31e0c` | `b893029dcba9b6613f04a2ad54e526b1e229862bd73ae49c741b1a4e5f232b2a` | -| 4 | `53b15dad58d84400a99f358b930494dd6169d9023f38c3289b7f4921b638c40c` | `10491f9a381145194bb1c08cb751d4ff83b6af889ec3614c76c99fd4868d8a6c` | -| 5 | `0e0472f3a660a898a43501fa72fc7f35d9a9a54d489399d0646a98eb9d021e05` | `f0c445435f26fb3ae44196056f8c764cf14f7c4d0a332b0ba2d07c5fdbc8df6e` | -| 6 | `0b7fd92a2a2f819a672e81d62794a3934e60b30ba4b5b478a86d8b0c25b6cb0d` | `3243e6ad68e9e1eba8225d08736319419d758658127c4e3679cf939018836f00` | -| 7 | `3106d473ce3ab2485942391420b74a60167b0c1fa5585ed8f568e98c43980d08` | `12ba2e8f7f2606d88eb9067e00b3856ec4402c24da72848d64e2880cfe491e68` | -| 8 | `f21e42ea136b3c2d23bced61db523fa4238057e343b077866981744118401301` | `f2b087c15d8443e6697d4b5da85ecf8d536c266355dd0aee17a8d3a4ec779173` | -| 9 | `542e065107d5b39025913c0b008264861693ff5a85e5008b8aa97e053bfb5c0a` | `480451e16cad12724b533d3189323a6d496adb3727396625d424fd66ffecb90b` | -| 10 | `1e5566d47d520209ce9358b6d2313acee122d100d0e9d2c4c50ae70cf4033007` | `ded3e9b85023d366ad0ba39562a0bf62fe0443c7c574c646435722bab8a2a745` | -| 11 | `6b3109859b522f902fe0925bc304ff3b083f0b3e2ea38b238750804d58891d0f` | `8cd5e93754f4f7ec37b19e3e8ec0d6a98b4c615a2abf0c20ab9845e2bc56622f` | -| 12 | `454f6d8e605f989170086b75edf846eb6f94e5847e71acb5f0d4dfff4a899c05` | `084cf1aef59d65efe562275be46805314a9d0820d670fbf425f4130949d71423` | -| 13 | `5aced299ea6878dfd3ee4bf62733acdecd118b0f910ceb8a2faf9537647cb606` | `600f2bca29f1032979928a8f51062fed90350cb74ff896db952b1767c5e83923` | -| 14 | `b9b69fecbcc5df9e975fcf76088ef495a733894333bbb46a6ea3cd92bcd3c608` | `6a35d79048f6d9759da160dde1f6597ccdb3f9230a649eca0b07801fa2e33e7e` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `c14900732438c02af052e6e5d4f25b445f45576ae4dd014a4e43e3ca9218fc04bf3d29d54be73ae00799c46d02cf06736819d96853373b7d04b51eb614e58666` - -#### Final Output - -- **Group Public Key**: `5056c3b4570be4c8afa7301347edea1de395810df72afccf576cc076a46d6a07` - -### COCKTAIL(Ed25519, SHA-512) - -#### 2-of-3 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `976f8781ac89edb9b14f00b42915f36add6fb01f795ad7048e88a7246ab35304` | `2f35ea108d2b43a27d2dd17f3f0d0e44422514d91d667af850fa206a85cde4f3` | -| 2 | `b00aff74021d100b0eb587ca406fd4c1af2ffef9146454a4c35f547f709e8403` | `d34665a229edcb3a8b822179868138c097bbf51316cbea636e6626b152742812` | -| 3 | `5d3df9bdd5e6ff1e43f07d2d81791cda76e44e6fdbba980b1231a9ff39e1ee02` | `e4f58f6834e2315cc79cbb142ffa2ae0700f835ddb581818e10553679c32fafa` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c` | `8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2` | -| 2 | `6723b951f1a81f143f11eea4ec31413e76669d049b962b8946a78a35cf97cf0c` | `0c37616b618d49bc5ce2db1cc0ec4177890bbefa2caed8aeb2cc20aa5e872ecb` | -| 3 | `0d2809d5c126e019a3bbadc2cc132013eb6141f7f6d1f062408ef58b89ad180d` | `9b992f1e668431df2531c8a29defe7d7a5897862648c8efc92bfd9464dbed5c9` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `c271c24bac1aef846815a8c43fc6618bb6d4367edece0c0937be417c3948ed69671629784f0950e43d63b0c2af66a5259ec2fd0b27e70b1d0cf49a127fca1970` - -#### Final Output - -- **Group Public Key**: `ec21f5ee46aa6e11ddc8d3f42af51e6636b86de0243229d848da48c3b604964d` - -#### Recovery (Participant 1) - -| Field | Value | -|-------|-------| -| Ciphertext from P1 | `c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152` | -| Ciphertext from P2 | `b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418` | -| Ciphertext from P3 | `edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d` | -| Recovered Secret Share | `c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c` | -| Recovered Verification Share | `8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2` | - -#### 3-of-5 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `72553463294cecf2b05391d0b4697c7e5dd42e6fd8e3e779ab8dbcd762a1c701` | `e38cc6776d91cce01937aa23469caf8c019298136055e2c8f4002f2e0d4b1d30` | -| 2 | `784418850a415959dcd16f114e96b7e300865107391bc737f39d2e1c3f70420f` | `b89c8543454c361cf07cbb8fb62d29186b2d82b716f642e61e42f45e3fc603d8` | -| 3 | `82893224a1af1dcf0e1884a15885937af1018ef07b9d70ec6a14dfef21d97203` | `5f3e9f0f8deb3160261d5534431375ff66d5c305aa734801d6ea3c78a393af31` | -| 4 | `2e102fbfe8593ae24446eca8635a81f91e16a53d8deedb73ec8b1e473f6f8f0b` | `6c4ce9698663429e3327c203937d509f00ebd8cf889f5af090d7a4762bcd31c9` | -| 5 | `37bb7ef244c9f1d5ccac85fd9a01c881b44b50049652a7f50082e6c59aa80c0f` | `1535febfa522cc03fc9c2d67cd731263b93fe0d0795cbb6c599f922e9bf0319c` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `089205ddc8931a7778eb588b836756bc5f10a650bb9c3c6f23646c6303426f05` | `279636be807557633c8acd8161d452e8a9542f280463a643703184ef0bc88c22` | -| 2 | `e8d9ed60a8df0d5f99459a1fe71ace6bc84c81773b25f84da8e6743816ad040f` | `20381dd73762ae08cce6f825178ad70a08636426c4caa4e797d06eec28f8c821` | -| 3 | `b4d8f5ab9fa5ab1ff885e83885f37ffa59a540a3c09b1be8a6fb011736a77603` | `fa64620863ba443af3ac17968b550e221b7914b11892f831824839c036960925` | -| 4 | `46360978e3ab186941e6321d1be52992141ae4d34a00a73d1fa313ff6230c502` | `42a70b7244644cd6acff8a2ccd9c105767dae4fc5a69f93ac588dabf2cf82e77` | -| 5 | `9ef227c573f2543b756679cca8efcb32f8aa6b09da529a4e11dda9f09c48f00c` | `bb3e7a3a1a08d17197d41cbb3fb247380c5e6b2c85d92208d281896c1cc958e8` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `f8309b2d74d773466af7263f6341e05993171e7a05a405fed9d4bf890199a881805641a89396da1f868f14b4e73b5952ff854b8a5c5c7c45061c77e5ac77f2cf` - -#### Final Output - -- **Group Public Key**: `334d3d0229f6c32ae6b77e9bfd13bb72f565a1fead8aab11e06ecc55f0c4d4a4` - -#### 7-of-14 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `b6090806188eb1cd2222c9f180561e3b8bac09fb672f5b0de705170929048b09` | `421a26a59527dcc8db396279fea139514903d6632872c6bd25592c94ae5eb191` | -| 2 | `a1128fa24af9852c08790928825ab0845892a9b2d3133f7058e9d7706d70100d` | `164d1d596b00488600758f2d591d6682ebbc548d6c0ac91cd5ca6810afcb50a6` | -| 3 | `6dafbb3e7cad284a0f8510c6736dc0b0aede00ebad9f265eaad2837dfe4d2c03` | `9f5a2c1959d25a72fe2275b8a8d9ddb4232e31bf81f99073241dd739cdbbdb5f` | -| 4 | `a4396d6729b6e19331d4e58e43e278907858c7c7f2cd9fcb1bb84495b95d2f04` | `95b2ca39493be7974327815009509820f88323250ae5206735d35dec1626c8dc` | -| 5 | `a606911a4a0de0376efa44fd072a6fad150d056dde32ba4115a2804e5077440e` | `e0a805b8cc81e67002acbc41046b1e069a9143c64f7d4bd77cf5845a6c3fe81d` | -| 6 | `56d529262e1d6fa4e6a7db8bb9f61bcea14833cc88040b5fea23a7cd6fba6404` | `dce5dfc8c734a2edae38c4c2e6fda4e096eb3d544ec8d6619a895f9fd3ca9b61` | -| 7 | `f4e3554295a31835c68f81479877c90cf4c1340961ce1f3d3f07ab4ec5737404` | `60177138f0d98f7e7083b718339daeab4fc44c370bba05cb946bb2de62ce2f13` | -| 8 | `97559b3d6c9a433e9bcbc29b6c747b170d1e50865a875913f514ea96f77d050e` | `a18e2c39bed98bfbe05eb5ef8a629b48ecf45eaabda7e55501b7c3c4966fff77` | -| 9 | `b67bcab764b7900ad51c912ef6e6ffe8799fec6032a045401c15102eda158d06` | `24c2f04cf1a9e81e0ea3f5701c3dc76df93ce872fd04aa1b1293c368bbddee6b` | -| 10 | `55ed81fa6989d8b8c36edad9ff6c86166ec156c1cbcf9edc739ff9367599ff0e` | `2656186197fa97728aba52c27e9ed50384e996ed9c8e491906ed2ab64db456a9` | -| 11 | `738a92c61738eff1c6657144213655448d4ed176bcdc898a89422189c932580c` | `08ea6307aafb5ef6b20f023eb4edf2a5fb912661855e3b6dde327dc58bad5049` | -| 12 | `a48375bdd1e9fada7f72648458dbf46c2c9b4f885c072203c25f52c8f371dd02` | `f69dbdee18af719ac59dff612e28043a19476b164574d24bb908ba201a8ebe90` | -| 13 | `fdbcc18d4bde352980ae363ee736f014d54dafbf8b63fa95fd0e9df673fe180a` | `4fa1de61f77b0a1a796506680fd14a1d25d9890a56a34e164af8fc102e71ee1d` | -| 14 | `d9947c89c8a60154e690f679a17037ae7529e00557061dcbd20d04f9a3615604` | `d31f8c2e0d22455a40cfe819737605223f1add340a442fde18e4c2071a9b5d4d` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `5ae8e4e94395ba0838c4ba4a8849130645206e71aee6c9bdc12fb56edbfcfe0c` | `fa590716e0023453938b48e08717ba09446c3619431c69c777c20988fcacc619` | -| 2 | `c69d4ac4d26e43318de29812ca720a5140e3bb7469105ef4e4d841ac987e3202` | `3889ff3155acdd6d481605ddd4ee63e1b080956186c055b19534ca97c8d42405` | -| 3 | `52d315dcd6af952d6859db1bd796f90ad21117a4fc0c775d30810d2ef9ef9300` | `722e79c780637a20bfa188c09dab21ac2495c78927b768aa08e57557b3b708f4` | -| 4 | `900b3bb6eef0c1b9a21196153b93431fcf4154a24c7fbafcf766eee40782de00` | `3b41c48d577cd28a2953ea1c1933c63e91f05317f15d21d21b2b19df84142f8f` | -| 5 | `5aedb52a15bf785ba6b7b3c8cea04614162f1b1c2460c7d8e003986628d7de0b` | `205c0151dcd7d9bf04c75938ed0cd1342ab1f3ad35e61e81d62e5740c112a4ed` | -| 6 | `4473e33ddb76fa45376158f2c6d28763a8ee43ffa75bfabd38c5639fef67b902` | `07d279f5bb2427088e56ca772e155c9f81e68e81a4d598756b73ce876f059717` | -| 7 | `db1e9d5f393aea86ac4535ee3596b774c9b958525ec4b14d8632aad83e347c0a` | `28f08574232f539352bb1fbddcc667531b3792621ac32f34e9f5eaf25839a208` | -| 8 | `8c7d13fc645338e2a6379f4642cbc83121513cacc71b115a5182ac13a1c0fb0a` | `b498cd2daff4fd916e84526bc308dbf0e5d248bae30ae72543c880d7e40aa28f` | -| 9 | `1f2d4b898cdb26ffb7077dfd6bcc7d7ce4f7f44b8b30448e239d0eb9ea5ffb00` | `35231bef16e2991f532a42bd50f50e237be8c58ad4f0b25e704a43d26425d058` | -| 10 | `1c79f3879fad1db5e7c8a41839d2bd0d02079cd035d24163c18ee19c1bc9a003` | `939c672f7382b03ce0826d6fecbfc8abe0e540a72b51aecbc5c8d5e1bd93a8d2` | -| 11 | `07658cd43c0860d0ed939f1428ad91d3531872918a1a0e619b653e5783f9320d` | `022583f552659100e1b7bad7cc8aba80227a1b73d3fb646a83004275376fe37f` | -| 12 | `dbc28a309af7360fd3af9055dda4bf74d5c91796674c7cac778071f127632407` | `b9ed1bfb7844a158685780659e2c018884b76a35387289914f849acb8750114b` | -| 13 | `d78184a64a247eff228348f3ac8227e5df18eb2e3c4870e1534ab6e76e676809` | `cf098dad4e88dae95a64c6b3a2cc057134df15251d6ad09783bd68fcfafc419f` | -| 14 | `8146df6da761b69ba2f3e73c11116b106955892d12969f397f64837f081e140d` | `058b5bdeb82562287d086a103007a7524cd778613d1fcf574b9970d45f6cfada` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `42d65bfd93ad920dfcb048b90ff5a4b45d7e4d48e559c7aa89573d18d50758ad24bf3242bd87f445623aea08aee37edff4b45d2ddf2e6431d170b8a80caeb7c7` - -#### Final Output - -- **Group Public Key**: `d3bd4888ca21d85a346d97ff7a95f07a22f2060f8566ce4228e61f214de7730d` - -### COCKTAIL(P-256, SHA-256) - -#### 2-of-3 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `fd69cd069d3ececc5e003e20ce25dd968c7da87e017bdf6afeffbae9a3b3f943` | `0312a3ddd4c2f5d497e0ef6865495e6ee0076a1afc367b6a8f66ce889d8ecbfb8d` | -| 2 | `6d29dd621960b35d24d0091634fae965c424acd714907dbbcb26d7f4515bd3bf` | `0311dea5e8bff958621b81640579565e19cf457ae4d4dfcc4f22d1273f7f482de6` | -| 3 | `56fbd9a1e45d2a3563a97f3618b1d8f71d5bf4974a44a49da41f13080c006ee0` | `0312236aa188f8c9f51f58cf70c2add13d9fce8f8bddcc8f330eadcb3ec48e7373` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `112ffc75c88657968c290f46bea1573996cd4825c79d1422b2a430dcde0863af` | `0314bd10010bd552adee76a83db3042a17021244f0871cb2abdd1648686f55f662` | -| 2 | `2a3da9df516e7993acf0e14b2174e4eb88a6b7c7f0e2ee700905462d7f3b6629` | `02ccce2880c58feebbbb42ab5a665402854792a59c5e38989c14277c621dd40d52` | -| 3 | `434b5748da569b90cdb8b34f8448729d7a80276a1a28c8bd5f665b7e206e68a3` | `03b58d6f976b6481b808674b1ff6e424d38d74f6e37d8654a7c8847b0406fce7c8` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `9f20db533b5adefda4da156725577441ed2b5f51f8ebce23b5558e79012cde69` - -#### Final Output - -- **Group Public Key**: `02a8b67f71bffd8c6c2e529027aad586c1f544ad42f7ea7048b0eaebf233c4352a` - -#### Recovery (Participant 1) - -| Field | Value | -|-------|-------| -| Ciphertext from P1 | `7e8cb8ef817b78873a7eeb00fba8bbced71124951500ccdb2a287ac8c27e9619cb3e3e5957811dda27dcd6d463d5b54b` | -| Ciphertext from P2 | `5d7d7fa5304ca522ce93970dcedb630a9034afc1b06ac864dee3f0ab0661d824b13fe694cc8a6e462bb8472a2236f833` | -| Ciphertext from P3 | `0793cbe598727514b55731e9410bde1a302cdcf675b69bf44e720b9cef8e2be5274cdd7ce33d227f1752d9a1c8a00809` | -| Recovered Secret Share | `112ffc75c88657968c290f46bea1573996cd4825c79d1422b2a430dcde0863af` | -| Recovered Verification Share | `0314bd10010bd552adee76a83db3042a17021244f0871cb2abdd1648686f55f662` | - -#### 3-of-5 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `ff3a16d8079a4c5d7b7c268dbf918587b90aaa0074fbec26d042edde12c3ef67` | `0244cca0af554f634808afeda2fdd375edda81d81d4b3e43c016da72516fed41bb` | -| 2 | `ff174ec7b2df3e78c93bbcb3ec926d7e5b4d824b08c2d2278dfff476218f0d1a` | `02a831ce1345699bc92f0e3bb250dfdee4657099bf523da3174ca2477665a34b3e` | -| 3 | `78eae1231856e7fd3e869ac2b1a9dc69f265c6b65d7a5399ee4cfd27a8e15d0f` | `03b4d14158d498a0f33d6b7802ff22c9d2a14aa9333cca62f0b40bba6af8a3ca55` | -| 4 | `a2f97ccb15ebf279044192add4089b036fdd33e518c65a2f7878faa2bf7a5090` | `035b542715e257ff2aacee6690a48dcf9906ed3d2db09cc6f928da3bd326a430fc` | -| 5 | `c76e9f4fd52c3e7861efd3c265128c0cc4c46549c1dcfe8cdd9c29397e15a998` | `035bea0735d839da9f31b7b7649d1acac8d48de90761c2066339aa1d28ad23111e` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `4c6edebc35fd4aa03539772a17da1ad68f5d06b8bbba01f83e07b64c9c95e459` | `02406a1e0295b29540fdf7b396644cbcc8a7657d71bc4d7f3be5f397c932f250fd` | -| 2 | `0f638f2789fa3b213fc791be45149594c088c85224bc44480fdcb14b760bfc3a` | `03a22d5a5e78f9bdadeaa752efd1ae6d7202e61df71a17759fc3fe2ff46c2d8784` | -| 3 | `72772b3e270cf1b8a6b9289fe63f045f47ddd563181dc659b29491c479d09243` | `03352939ce70ee57b46a3ecf84a0e202ddaf3b1f71ea028b00b5afcf3f386d8ed2` | -| 4 | `75a9b3010d356e656a0e3bcefb5967366875333deec6e9a832758cf4ab808123` | `02aaebd062bc2459c8d0528decc284afb7cf39e3ae3e62f6dd41a1c5e17f79def5` | -| 5 | `18fb26703c73b12789c6cb4b8463be1a224ee1e2a8b7ae338f7fa2dc0b1bc8da` | `028915eb785b5c2029df6b8e3e12ae41f608ecb47c92fdcdf3e5ced34cbe72d0c3` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `e07bc2dd3667865e862ebe9534174f6f33af5dee113e1dd835185cdae66aaa70` - -#### Final Output - -- **Group Public Key**: `0323686a5185b926ffcdb4e90f51687749950aa6f8af76af4141a7a479e0ae9aa7` - -#### 7-of-14 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `df48ddb52302967fcf09be676f4bbf2bcaada6e4fc1a841bb63314257a04aebb` | `03aa807eb96d36c62ca0a8a0cf97e6ae58902c2a6fce7710881437b8640c6e7907` | -| 2 | `b2988923fe64d4a74bc5c7cb730027209d3d7e6ee373a770515ff6ebc3ca3d8d` | `0390edb86b74ccc4ac605f823b30402bfb56ec10f27e5d48f6b9a731bc2da31750` | -| 3 | `b2e73e2da7393c0d96617d9e8bc5d89218370cfd401f7847e01d842aa28214f1` | `0291e3c19583945b7ffa6b73c625ce09d735a59b28381cba5bdf00fa70108406a4` | -| 4 | `67f60bedac58c66f05af7446dea7a4caf07e6c6c6a30155977fd8782c795717b` | `0267c9ee0cafb6bf7a9f8c12d6e82c0aef07ce1521ea171e3c4dd5e907be62a849` | -| 5 | `8fa2d058c720b7384d63ac9e6b98092e557f3112ed96b765c05b68dd784b99eb` | `034d15886c597fdddb828705d46d759312f6fcf9eed94fa48c356c5f8032e00243` | -| 6 | `67c5dd6768f647cfe3424011d6f5e7ac606de3cb5090100c2e3b7cd07ed6e496` | `033c1b886d18143fd8d7192c3e195c31d467ee452fd4b9a02356a7d79d37e53a8a` | -| 7 | `1fb31a964290539a99761e9f8c3e2e08286b5d256276165927b472bb908cb0cc` | `03bd658ec0a51bf89a2a3784d0a0311d27671cbc4c351570c41ac9a0e8c1f2aa5f` | -| 8 | `f8685bd161b207d2c530a7617142d6bbcca46678cbcb377e5cdc99b09a0ad5a0` | `02b716027e710c060569e51e03a26cc763aca86a3aaf984fd5a6e6178e98da9622` | -| 9 | `35cc8256fdabf74599f4f561a71f28b66f06b090584fb290935f39ca3646c66a` | `021cb3fcfe812ba265863244de1edcb7a617ac09ed6efee5c281d5b9833b9823d6` | -| 10 | `fe3ab4deb2b950d5160dc8aa7d2eb3b017278c6cb7ec860875a602c4b5edd22a` | `022b2cb52b89d45bb2a51d2171114f460a9aa7f17689f6ff99a44511935abd0156` | -| 11 | `e186e254cb5050d4feeaa3dadcde6ec1f4f2c6fe55a86db21fb78d4e44619b29` | `021b4e3652f13cea01fc1d62ca2b107f1426ca34cdb888facc8c98a40e1dc788a9` | -| 12 | `7700ce7190c7e11a503c61a12b9e5a654a80bfc06e1833f6189b494dc374fccb` | `022e2c1907f6d02414dacd44dab319784f885ba81708c90dd2e5b6b590f8c9cc13` | -| 13 | `3ccfbd93113b6ede8ac364365b9a473536ca8044b09c7ea48ec0e8316dc09d2f` | `033e91c0980404de321e8f808122306f963379f3d2ed521ebf4d4ccbca2bc16625` | -| 14 | `1d0a65973e579e1f9b6a2c480a7d1051ed17565762cd64f64d8c5782621bd38f` | `02ff683668d034da255ff562cbb28b513ccf54f6df4f28c0ab412979ce95467cf4` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `31c11e7b3303511ae5b70236717ee6c996a7d36e32a07e5c7adeca6fb836ed27` | `025b18b60bcb8458af427fe61b52f1dd41a6f22fb1ace7aa5a1c3e22b2a80aa81a` | -| 2 | `1b8b4d0aa4228283dfa14d07ffefc24a2764f83a69b1cfc7bec04aef7047b791` | `0311fd0213d232f3547188694dbb24793cdfc45da5dfcb19549bad97bd3c69b455` | -| 3 | `5d7049854b0ec0b266a89d8477d2ce4e189fbeab01304e41d4684b13c027e21b` | `034b45d16c9a72d80f9505fb73b65ba8f4411f4430a21c5b5a5f8f0fba87da05cf` | -| 4 | `093a2e063c3781459f9ba763bf2da8a338ef0ffc5f9ccb971c97c2e4fdd1bc45` | `02884c654b4f6d19df7c76e5d405d3e028522f7fb1ab35bdde13e2997acf31e113` | -| 5 | `bffadeef6bdf4af4a78c3407e4f2be2a6466c1f2244ed5a27edf50abb561a92e` | `022e153ba09111011e3339abcd241f32501016a80bc02255a2fb3952c4c5e697e3` | -| 6 | `4f6f1b2bdbacdad1d0af87ae2b073a4d9cb11bbffdd513827a6a7df8eaa588b3` | `03e4dcb617f646309a202619320639218a62c945cd5d1971955237ff02f0144ca9` | -| 7 | `1ba7edf31d41da1d968cb1ab914869be47a3b994ca7d9da4f076ee96388a4a65` | `03efaac5e6e29b0ec212dafc12122b45e4bf77ece89483b3c9d75dc5ec656e00ce` | -| 8 | `54fa822829d7248f4978c7b4e190908264da59250aa03728e798e1902c55e01c` | `02d7ab84edccfc432a43e0876dd86e0f3f8830220c478339c77b3336f0f8c8b6a0` | -| 9 | `fa3657418ede9f2571610c323cbb334c02952f6a64538def6add46109ba62fd9` | `03988c658d2c966e685b357489654120dc1a6375f0d3eb2ac7f47c306f4444face` | -| 10 | `a721d7c2efaa9f75e7e2ff9e28a8d41d0aa2f22affd08d33e6fb0df1121bda6f` | `02d1e05274bc9e97100b83806e4a2d7e6a54de0ad10ead869754e03c1580cb6fd3` | -| 11 | `2f3d5140dc1ae384a9b25cf01f42223591a770084e29184eafa8495a3d66dc2a` | `02e8480ddf1b43092188b4e12c36f9003bdb278ac6dd07f81f1c869d743a4cd81e` | -| 12 | `04cc4df9fc4f1a165f4d01129e7a9d4f8ad1f19f0c4e5deb3417550f7f726cf9` | `038c041ad40b98aa5ddeb30e7f0c8e88a7c7a5a614c53f3bbed39d7efb79fd6ddc` | -| 13 | `6c254ffc915efb879cfcbd64b952ac25842233d3623b565e74243c41862c6ff4` | `03915d3038e25f2c08e367b120f3120548a616d0217bad578a459af68968e653ec` | -| 14 | `7b47eddc4b17f324da27154729d9264577a0109281e4f309e74b22dbf75bdcfa` | `0361dc5bf691cf59bc00db0cd2801d740b8e00cba4404b8daee4ecc6ba3b142282` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `dac02f58675a0646e6d72c46683231f30fb49eb44739b829bbc1c18f70f72b8e` - -#### Final Output - -- **Group Public Key**: `030354ea2ae5e1eda262283b474f553683dba47f9060275452cd137d2a2c2d4992` - -### COCKTAIL(secp256k1, SHA-256) - -#### 2-of-3 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `b6d8938c60ba5cfbf0ba97ae1c3f99c7a58485344ed7d6f387dc35bc76cacea1` | `02610897b193f5d9ae8c6b6527dfb89481aa9440577b24a96a9378a756542ae20a` | -| 2 | `ad371a449f8f2734c1d98f4f92dabeab6189953e7f9258a2657743adf4b49fde` | `0325c9e642a8967b6069db110ddb5588d701b89ccebea4b15c277acab087c59129` | -| 3 | `344ae0d3d664507f90d5cb534c77af20d61e83dfaaa500bc8d27428af3ac1573` | `02fe2400b831d7dc120d4f1f49ede75956782e77ca92aa24f7d1cb88bc584dd1f6` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26` | `02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11` | -| 2 | `8e18ea88b0dae913f89c42b21be5f87ebeb801fff8f62a1cdd420d5725b5d7e0` | `0309e433bbcd6cf70a7c3dfdc5e3d44ab629f79568ac8bfa51c4dc118f4507ea20` | -| 3 | `a3f1b10cb341e7a05b8fd606d7ea264f22fe58248f372864fc5c80a86c08f49a` | `02a91306f8390af207d697260df455bbe89328b1488ad5338271cc2a2019a394cd` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `0d785c00ecb6bde350ea1800ca69121c82be87ace2d7b691cb3d4c91566994b2` - -#### Final Output - -- **Group Public Key**: `0317763ca657a4d5e1c661b395aa9454ee2d9bdbbe8f2ea57ea0ec5cc0723ed9d9` - -#### Recovery (Participant 1) - -| Field | Value | -|-------|-------| -| Ciphertext from P1 | `2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba` | -| Ciphertext from P2 | `a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636` | -| Ciphertext from P3 | `f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a` | -| Recovered Secret Share | `78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26` | -| Recovered Verification Share | `02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11` | - -#### 3-of-5 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `97b9f7468d461d768bfc89ffff0c41efa43d63e915db3b1e9558d0e7d0120b7c` | `021bd81630d7864d25fba41cc05a5e635c7a08e8b190d996a554691ae246062764` | -| 2 | `917ea30b036b92edd821e7cab12e2d80fdbfaceb994dbf7d864aa4448f54c6b3` | `02d2796cc622bc6cf3a720c78934b9b38d18a3ee5458c499f85d940606413673b8` | -| 3 | `3fbede422d6df3631340b208e2653c1cbbdab0312745c3f4ad68c387175eaf5b` | `02401aa2db05d19149dd680c4c1638be7b1a2f25b8f990d24029b9b8ef4eaa069f` | -| 4 | `f06789105aa658a8f8d774242d748e805d429f07e4ba096ffa491ad2b3bd7c62` | `034dd29d0db956fd5330fd68e951f063e42a85dcc0e78c4fd0c5752c3e5154eec8` | -| 5 | `d3a9721ec87abdc04903dcce30cc56132118a773cc326afff752ed406f3cdc17` | `024f80b54f11083d0462753f835ecb38e34cdb6d695f9213459f54af60bd9bcc1d` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `2aa84b0e28cf945fab50a04b0493026be4a8aac17bdd980915a50830a897cbe7` | `03ffd0727fdb797a7ede721674aeec6080d67dd5667d0b7f11635bd27411eb8955` | -| 2 | `ff866e4b77f019362eba9b7a7fe51b8fbd89f7c840acd54bfc102340c4dbbdaa` | `02642eb38167a3fb5db09fa1147bacaed15385a1d5288288f3f8300e19676e2235` | -| 3 | `e8c1b142dcf6f97b12366fcb260179c8564f9938659dc92857afae56ef7d214c` | `03682119ba6fff3195d441ae3a615973bccaae35002319a030c6be0edc56e7d08f` | -| 4 | `e65a13f457e4352e55c41d3cf6e81d1469a86bf899f913d9e85607fff8b2380e` | `02fea0e231fc509f7984cb568acabee1f489498889b4a7c32f30abf9dfae9ef922` | -| 5 | `f84f965fe8b7cc4ff963a3cff2990573f7947008ddbeb560ae03303be07b01f0` | `029bb02d4434208c458b2968c0457993403bcbb7c23581831b3386f79639508989` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `7dba0528c2bf18da7afe4a1de2e9283f70f4812569711f18eba3af92dab2469d` - -#### Final Output - -- **Group Public Key**: `02c4d6153a66c590f2bc546d51cf411b2522ee6b447ed0b0e51275dac238e666f1` - -#### 7-of-14 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `8f26fe486e7d36a291970961906a799433633e3fbae1ebc0d4f9a07ff6be6539` | `022141199b4c48c897927b0c0fcb4067b4ab33a6fc8f7397a0279293a49440857b` | -| 2 | `4b256597fee2e04590612eb7d249251a5b75606d503586cae0da143f5ca1fff6` | `033011dcdaf5a066952c31a17816735788ff11f6ddbeedcda7fc70b4eae293f534` | -| 3 | `c5c499d28c2d66d7cf856cf03bafa15744284f4f11b353ee180a3c0a44eeda22` | `03360bd6cab9f15eba62f9dfe9445c159c7dc84e2b26b0be032de03de9601d0542` | -| 4 | `326dfe8d3872834414cb082e41e0fd1d6c8baea7eb486c4054451e9f088ae020` | `03f6ec749ca5414704b72d898cf4e86ae272dd8e85070762218f3980df33b878eb` | -| 5 | `faf07fc615242d7ec53cf92761adf7d5623765ddbe7b62a1a0b43933f41fc309` | `03bca7e4af0c86c440fea15781c50047619d47c24865d9d486428d55152742bfd0` | -| 6 | `e67645b5eb4394cee403a5a96ff3690f3470cb319590be5bd57bf593e2ad4b3e` | `03d99c3d44fe456d45acf50142ff7f944adbe15b5fa91cf5117663ac9824b849f7` | -| 7 | `8d7a1d95687dddf48d5d0293d849f6ae4d7d2f9069df47a1c9caf72a4b30ec89` | `0393c4a4f48427921fee93746d8b3179b9597f0aab53d5a7f3a6913c87ca9e4627` | -| 8 | `49d7506273ba41dd097000aa72a0b16812e2577e00f69f6a5f43ff54699eaa63` | `023ad713c160f31debb869fbc42e5131906e2cae0182bcf2e5d48a7dc963af4852` | -| 9 | `9bf7cf72481d1ca181f1e75a3f3d672a2382a218070e33e57f5b8b43bdfefff0` | `037aea9a5051b033abda7236a2fd0f95e1c5fe1911b48d134a64f06faf8bcf7493` | -| 10 | `05055c065e84f445c62351b13b91942a0c25487c1a6b458da56e56a1bb8693ea` | `02dd920888f6d1e32484533926301c3a2f663b84a219bee92069a3dc90b77c6096` | -| 11 | `ac37617850deb54aa05e83e54c14b6623f222318f340efb5f811f71e34a19128` | `03fa2f35b6360c71b3ccc6963b4e58607ee300b936119c492c58fc24c281cd7c81` | -| 12 | `d068df395240d2661a52a55f172fb6c28d3ef611a7683e62e4e434842a43fcbb` | `03aa2cceeb92c4f6913e7de89daae148ebda6e89a988f34c548419be16157632f6` | -| 13 | `d3f38a4e9cffc9a9f3d6298fbc2680e60f7a058392d0c95de5bbfa2a6b2a9f97` | `03a0fd661277b103b25ad0cc38c58dd3e8a990209f854a62831994504ff97efdd4` | -| 14 | `a1c677dc760dd5161eb9f27c8b02a5e23bf522a0c4483b1244c65b7938b0e256` | `02612f2d257488980286424bef8bf17ecb609651e436a97de7b86a9b2faaf38bc3` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `6a230a7c1d0d83e59c6e26fbcc4be24c4a691b5f2f14a049154f88883faade9a` | `0201e0c204e450fa1025f793493a1f79260b5956cd73edd47883d8b15782e47ef6` | -| 2 | `f434eae0441f2811fba757573e6fa501f30ab7bf41f053738dabe687b2e8e0bb` | `03e8959c4848cdb2334d3e2b55193426cd5cbfbbccea83c2191b2e0514ae3e3f9e` | -| 3 | `9d07cd0257aa43f68bfe0bb4349cf4242c89aeb9740eae6455b871f1ba25645f` | `021f3ccd0152c2a8303182de160765c6b79e4fb1e3a14d8c163462b01ae6007cfa` | -| 4 | `029c60851c9c6dd97ed01d0891f0cd7f3bd2b3af3b4b3aef3f7031836572b7be` | `032923d3bef3794e465103cf2767e48e8fb963efd28aaa7df250339ac24c6baf42` | -| 5 | `6b1433204335301fd445350114a3fd80dd66ed6470f8be8157389cb5f2a828c1` | `036f8bd525ca06d851e583882a64ee145abec9283101aedb24a228ec9e4aff62e3` | -| 6 | `d18fae79826e3ca7bb0430f2e7af084490f71edfdbd205861937848457e2a205` | `027d5fc00c377d577eda447c6fb8c137b72f2c39d79a4c5becaa40c1263c8c7a92` | -| 7 | `9ffaf3b0425d77995329688056636e854eed32db738698c3b14fdd77f60ba4de` | `02892867c93d10b3585724fe178c98adf2e4a1dbf39a0bd1240300c56bac17356c` | -| 8 | `15c9949bd590d9add47dd7f0a1fa4e7ed26d428ee39e5ad047327695f1b49652` | `0205baaf66a14e7aea3cb4820885c0abc88b8956a8ae7a5778a031e637a03494ba` | -| 9 | `5ba12abc416429ed17ef2e3af91860bbed2bd1a1ac454e17d6275a46d2b2e18e` | `02fb1323b9354783c75316603042ee5b6d721a01eaae1d151cc4ce57f74919ece4` | -| 10 | `43f2cbdd95508ee18448bec4914750d5b50ca890d325a2bf5118bd91f9da2c12` | `03ce0d8ed6c0321301d9f33e1b4e80eb9c8e3ac59f7d245b98b7440681ac0aae78` | -| 11 | `b8835c6dd135f7425e2d56d1e2647215910dcb71ac6eeef650e98db9df29695f` | `026932e96c0da497f90430740aaaa9a99631cd15849c8a669b34bc313404204123` | -| 12 | `d4e2bf855a9e5a147b51f6ab0404d00e7a90bea6c7808dfb4ff1b36c1506ba17` | `03419ef7927e8e6dc2df9b21b99bd5ad413c1b917dd9bd9b491fc543b1509406ae` | -| 13 | `add1e4a200face4158f96e732cce9b1a63410b0b44788952aff395c543b7e95e` | `0290953b5eead2cb548ebbb0bee6cdc6af6a889d08b7cdc1c871f60662acb06597` | -| 14 | `c597b31490da79a495b0deb353c7f0c874c36091b9d0c9db0c532ba8faf8fbf2` | `02b5a7cdd2e6e9dcb68645244a9319ed946fe600a22ec5242a6f8950c4ba363178` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `87196836c538f03a5c1528134793a916da9adad6c03003d39b062b38597616fe` - -#### Final Output - -- **Group Public Key**: `0359d5d1ab443cda953b002b6dc12a11ba96e6f3aca7b8fe8d3e159ae1d56cde4b` - -### COCKTAIL(Ed448, SHAKE256) - -#### 2-of-3 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `8f9a9270561d0dbaafbc08828f30d41c342a8d4fcc5c364d7768ba75b168e4460e0a353d8fd189a3c4a6b22ece601173026a888cd4c46c28` | `9950bc0b58b1933452f595b8eb6de04a7d4dd7fc2301bbdb05c0ff440d38928153df7d7c400e19378b11571b4e1bf96c769e35d3866ac32c00` | -| 2 | `e0354d9c7ae7016aa2de07c9eb0b6075205ce553ecdb01d3c1d89e7ec38642dfa2fa60159d76cfba79b3027f56b21a72dd082a37fa7a3a0d` | `cf1a179b82836ecd0d4d5c539128cc2cf5db9b3bd2a519a5524a522cee47ff454881ba5db9d4047857b0de096e83dc22b8132833a4edf5da00` | -| 3 | `b6ff6734be4d67532c34aaad94cae9b6451cb45130a5240c66d5261ac322de02e41397eeb05011793e5a97a43eee6ba767b453725fa90a16` | `a8f4d91d754e65a13cb2ac8fb824647d04c4b8fb644455d1aef16fe81ebb7d1f0a3d85ae60ddb1dcdb04c37feb2fddcc400803eed7ee4fa780` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `692d92730a66096b0a971bfe712cde3dfacb726f94894c68841f8daec6cbb3c91df1be4a811aabd0a314d2b152156485b12fba9657637a14` | `7dcdc0aac7e24ad54a206a03f93d086f3aaaa0a999207ca5ed1798b522f7600c8136021ccf2844eb69459390b579bb13f2c285648bc0afe780` | -| 2 | `05103b16d59fde2d062f2c2995b847c813728d981bb125181fb8240456efddcdc19187d1b62c54906f5365c64fb2f6c96d7fa7d4aaceba32` | `89fa9c64c4f86d958be5a05c3e26d2aa0dbd44f8ac087a72c88d228e085dbec18682e891b15f6c640c25701d85a80f97fc6ab2a5365effa080` | -| 3 | `aead8b0d0d173bcdac3777c6458244319de1d11259fdaf03d02cf2dce51208d265325058ec3efd4f3b92f8da4c4f890e2acf9412fe39fb10` | `e4850a66863a281ed2529a1287c8634907629f1de66eec4c87257acf383a4b407628d3eeca24cbd2c8bb9f4d4252c4ff8157832f8412603680` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `a1310fa41f9763c1470173e93c1b6bfadbe5ff5aba7eeb2954f103850c41dc6d62b782b48fa24605e2ecdbb7b879d1f8e962a70197f7b545dcc5ccd4cce86331` - -#### Final Output - -- **Group Public Key**: `c9aa58f7c8007343ba47079ab1f8ccc67b7bedcf17114a27421a9891450007fbedb5faeb4a1586e105cca5cd4cf99f6aa1966c829fd762e080` - -#### Recovery (Participant 1) - -| Field | Value | -|-------|-------| -| Ciphertext from P1 | `4fd7af4723dba2d8764084938c8c84415816e20a51c1132446aa6e6edfe2e4702167513b1d328a7090b6c6dfbe247151b2a583cf14e701ce1ff495cab56fb1c39b6782fd13faade0` | -| Ciphertext from P2 | `4ba50472a8d1a23146504939e7536275b56407a3366ee20742d34eedd301ce76503a32b4b4c6986e4ff2f068951c78085bf9da7f944c06e866d551a735031c4da80a5e7b72749960` | -| Ciphertext from P3 | `f17f9ccc4b6f1b1100abbf1ebdd79eae0eb19640ecb02961858cc1b75a6426536885806044891a6fd98e88ba7cacaea8bb39ee4b91b86cf0e5424c4498405a73735447f4d5d7e7c3` | -| Recovered Secret Share | `692d92730a66096b0a971bfe712cde3dfacb726f94894c68841f8daec6cbb3c91df1be4a811aabd0a314d2b152156485b12fba9657637a14` | -| Recovered Verification Share | `7dcdc0aac7e24ad54a206a03f93d086f3aaaa0a999207ca5ed1798b522f7600c8136021ccf2844eb69459390b579bb13f2c285648bc0afe780` | - -#### 3-of-5 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `28ad10f793c78f91c4ff81fcc14baab7e4acbbfb5831601377a83a80e138f1babc022025e6f478dc120c72fff31318f101654d31ca760439` | `7bc21ed1ddc9084bb76737df4341e9662024e44732f92e699a766b5aebcc7887253cbcab01521ea45e2569ff70e472a4363b122259f1238380` | -| 2 | `0cb2dd92e19c593fe23bce1be0dc904ae2b54d222ccb30f9843852e1400f8fec0ccdc948d0a25869d6f9f3354635b40d8f5268e828827d1f` | `3a6b5c18161e72aa161462288373dcf69d8375b62780f4317ae0feab9ce68efcc853e8f5678587de630694446297bcc296593dda6ab0eb9780` | -| 3 | `edce3a511e913bfc7e3f6cab89774a22f7e7cdadf9a1e8e0b2e01edc775a61d292fe4be136c558e829419c9829eac395ad86e4137cb5dc1e` | `31c900c00f9b41acdfb045b8a09341bbc100e448c410d0c5a44928040fb1ee062e0f61cd43028ac4970d7c784f20e81c62356b9f3b4cbc7a00` | -| 4 | `3c7ed560932a84f03f785094b772fff9bcfc2cf7d1f579ec3b8e78c69cd2393320d3a7ca4778b31018dfc0b2dbc53fb1592e3b25ca9a481c` | `3b7de8170e210c6b87bd6a6974009d0e3f5a859bf98df073dec5aae7b001965d5063c5606885e62b13b9c0a2bb717cbd5d3a7ba490c1ea8800` | -| 5 | `6b366edc00b1655eacb298ee3d6920710b7f71ae60b1f381403a526fd3a1684cf5c76cf391c1bbc0389faa68533176e53727fc999b6ecf36` | `9c3f3a2b5fe19c2a4d9bd25ed99f7011c8edc56a0aafaefb6c7e524d280daf372bbef938507983d60bd154d8667458a9fa4ba803c6dfdc5800` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `74e66247b81e130ca8077e234e721ca80c69f5edcad0cebf3e75f0ca4c9ad3b532778ca0911ea317ba616a825c0f842d66a65c216e98841f` | `2ac240fd19889d93dde270a8faed2daf7fdfbbea5cc09c9b982e532183efe803d8ac0480707b3e6c1b211dc63c26dee2e06699a80d8dba9c00` | -| 2 | `ab0ed263fd9325ea453b65eacae73dd4f52275f60a58b543a71a5a4dfe72332544dbc18f36e5b83afdd6b426b54fc61eaf27151bfd2c9c04` | `e5dccb90f1c336a9a32dcc5780e575234def28862b104eee0599cabac19f584f93774cc91a1c27798f87a75488e13ebf261fa6eaea6ca54f80` | -| 3 | `7afbb7fae999a02ea72629747d16e356832297c0ff32e92bac93397b244ce1da3e49dd9be7e0dd7f69e7a13b8980267dd0aa2ae1aac9d83c` | `0bd2835fb8dd8f379f1cdc7e7815307578fd099019d886f057f02e1c552b78dd4e0c44b3bd231ec95b3c415f0de0ebfe7a51c35575c0a4ca00` | -| 4 | `08de0b0ac6e8196fcc1b79170eb7c5cb04c4d83fcccf7d2b907430dec025ddd622c1dec4a41112e7fe9231c1d8a1a448ca2f9d73776e3a08` | `599010b500ec99576e1cfd0a2e0200f4890dc36c7ce9911c69459a353847fd4efa5c39846f05b0a4e75ed3bfa0545cea1ba1e304109a8a8680` | -| 5 | `2e85d69349c8fb15b5c8a57dd4102c972aabbc804dc05f8f10299decd1ff2619f042c60a6e775570bdd963b7a3b340819cb66cd2621bc126` | `178cbde51f0dd2db75337f1603b9c81e36965d161ecc2e116b793fef04b43c2a38972c8800fa9ddd057eb992fb9144bd58c4d8a21924f80c00` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `329e5fb3820eb9bb01b5cf947df31df2f11f4a354beabeeced40eef52c80303f5e08958d7fb7df119bca33f329c499fbe4c9ee0425e59bb368ad034a4b2df8c3` - -#### Final Output - -- **Group Public Key**: `c7f0192c26da753dd3875fea28957843195e95e2624ed9064c3e96bc45d54002338eb48018180193b11f94dac4ef1ffc6623a6b8e762a18180` - -#### 7-of-14 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `2e49741700240512141761f0c9bb8a72a06ee832d3ca21086b0284769a127e05bb0e6e316705c52a38aa23c2fa5c7f5c200804e4d8fe6937` | `26beedd270a1804e1c1c3afaeda6dff964f1f736bf896ef06317e50c3ba60dd944861f41976f4c6ff5d50cfd5985dd1e40ded261aac41c6180` | -| 2 | `20bfda80a16b8a1465170831b9429f17d39c844920f6ab0549b1bf4f3bec095b68e10df0fb790f7a6bc42f224e700b77f411cc7144d6f704` | `85fe44016c3ebae0343f933d875103b545ec191b3b81d8e40ba542a56615b668f7ea609e3602e673e31cdd41ccd5a88fd1a776aa2ee2ac1d00` | -| 3 | `6b13ab64bf5a32ce2ea651582203d232a353dabb8e10a58fad2e71c4a34d7c36d91ac34cdf8f1fe0b84691b60a0664e75dfdf5751b78f50b` | `ffac62d10f742369ce24c40caa0f7230ede54ce9a8dbfb9335a229976578a734de73208db2204cc5078f8dba60e92cb8c250743ac75af5bc00` | -| 4 | `4baeef01465f0b88f0f971aadcc16b62a21284eef58c61234f20e0c72004184034dab5e60494838560b475a638d3c6ac36c9fda843a63634` | `ca975dc0ab94079efbc007446526fc543cad9fbda6c114a6ebd6a40e270ec46a32ef4332f4129837f013e923e8ba27ac6a1559b35468977e00` | -| 5 | `e28ee2b0f7cec248dd167d249b3a55f4fdc95d0018ca1dba3df4484077e1a364dc13e8e77a54619234e95fe405b15dc6a7bdf07ca777d232` | `7dbdd88ff13f88fcd938b2fdb2c60e22d75b0dfe746aa7addc418ec507199031ee883b734e6940164bc9edbf213f2799bdbadc5960d3a64b80` | -| 6 | `b7bfa4c9d1380b63e53f04ae7064244cdd8a50aeee932fc76b0b8ff12b055ddfb31a5c2b1c4b6d2e210e088627bdc739ec5124d9c9b9f312` | `7c81e8e44857f1b67102408758a036e5d7c2040d2337847f77c2f49f5de7c10ff54a8125db2f5f5ffb659011f7e1aefaf9f8aeb3ff4cbdc880` | -| 7 | `dda33e41bc8043a7126c71f92caeb483a4dccef7a75b55ce2828bcdf5459de1d16cceb2cbc478acbd5ef8062c6b832fcdd7700d9c442ec3c` | `4e569326ddfe7b9ebb691f92bc37d942a48458bbc7e94d77754ec559f754f9cb7565217d46300f80bbbf680ae2de160a0b18b89c75a2ba9a80` | -| 8 | `6cb1996ae72d300760297aa4868864c13e6f67915cd9d3424453a189735269bb77b757be2805d099e74d26e6154f5f3af98e9af31aebd22e` | `6c26cdde7354c7bc38f5f6743ec5d87f4af87ba27656d4f55076362f5b9f3db1e168048a6604ea27f6b1b7c9c131d4d69d04117e71833f0e80` | -| 9 | `5ed04adc9d0914cc9bfacc187dab34446e28d049713d81d76948a09fa67be7751c9bdb21796b2b2962330cda92be004784ebecaa526d450d` | `270f1a229acf30f51fe44085b16d083cc1e4babcedec5516f40343f6aedb5b714d1940929264f6dc292a93341927173ba0def1f9ab1b173100` | -| 10 | `c8c33fe001de1648b036c78a0d4c7e7d4c61772f0c3bbcbb60d4499ab8a439d53094a75e04e8f84775fd736b457076a5652d40bcc599a517` | `f4752efa4e2bdcff22aeb8af3a3108de74d288fdabbd464bf0a80a7669ce74d23dfe40b6de911779178dae65b6ee1941d80759bd1662a95800` | -| 11 | `cbc062d53c85f4a6b46f23aea28af71f18268286d9111e9d80fbe5b23e1efa6cf25c90e7d3a5d60de389c006151ace5ff6215012234ec532` | `83e6c870c990bd7e109836a946731255a21a0b811e4361cc30b173bf7d7fd2857a9728d024499a329a954caceb04531f58a734a57ffa7aed00` | -| 12 | `8b95eabd2ce4125d4f5d832690e0e5612db9769865cca605c54c24d73a74ace968a8941070a146613e65019c506b87bed0d9ff0b92915f25` | `0e1027091c5ce5df6185a4e36334948130924b90c3063f24ec7d51ff02d6af24b1f53cbe09f80b7bda98331c11fb7bdbbcb56424d477ef9380` | -| 13 | `96b2536f046f0ee057d40f0541a08b3c3239278a2aed7c870b309f64795451fdb44a53aef5817c878dd323bf42121695aa415764ff70ad11` | `9a42ea4137eb4952bcd77550cf69377ce5f8f23ae6e411397563deb254d43666581e42f35eb1f5c30ab5a31bc8ceaea0bc99fb69c98e95b980` | -| 14 | `a6adbdf328f290f06c04a2607a4d92419b17ad3f600faf8b7e1f7b4c0fda5e742ad237600293d5e7d569b8936945dd83cd9bf95e211c5112` | `d9f60738374cc85b4e089ec6876ccb322f18a49b4b4df74e1a53cf741112762bcf99f49f323fe686e5ad07a4387ad8d08ebd8a479f4e7b8e80` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `59e3b1728224e5f9ae7e1ce2cd84fc9ee17bfcaaf41a27e076a49ae9a514ed3a2cdd78492d61004b86ee0e380d3e990d8f740a9da3ea0325` | `99c1ee621559234627fa395eb2706284bce1422fef9fd72486b0dcb046f9fb813cc5362b1174476f81e7c9e2a2fb6108cf7a6a3d6f97333700` | -| 2 | `ea42417e465f64293c8237bbd680f35240033443961e39f6addb94cb4c9e6c4e59c07db267f0b13b4db63fc708deeee1292d05d674ce5707` | `b3d16d8c5815adc525363175960aaeef7daa17baf2be1239c740e4b3f2c1f060aab2006f6302cdf35b8619340908101ad54e6c2e9e30b12880` | -| 3 | `9c4e5c7cdca3218334f86497bbe44f3daceb3a530b1e4fc9d7741fb24162f9b7e6bc92b1f76a4b54aa39656047c14e4f39cbde2cfb9a5f1c` | `39624b24ac85b0dd2b67aa7e731f7e51717d8398549fac6a902dc19e9c3b7bb7f19dc1fbba1c1fc509a65de63aac049bc39dde8a02f504b800` | -| 4 | `5743105fa015ebb8c3f0cdfb5e1f6c66a04c2ae2c954fa8a12c781b374f0b3abf9cd71ce8175c1ed86e1dee4f5b7fb151e5062945f58b11b` | `61167639b5657f968c0ceb5e988634b2fc2f7ef6acee7cd5485d5d228f4b5f5e3adf7ff70024be1812aaebda829d12b3ab4ddfaefeb7ccd080` | -| 5 | `2e86cdb94b8da9259ae2e44fd587c3a57bb329032ac908855dea60ef91386eb74a035bf89315caf363cb978f2d09b01cef9ff639cbce8603` | `5c0f8abf2cea2f9ee779f9bcba0049a8c12615cd9d7d578f28fb26bc0151a1a7f2670e19ddc4bdffaf51df68e1f87ffeb3ac0c0a1778efaa80` | -| 6 | `d8b45f019f23baf444354863f99dce063ceec008708c0faaea8b110ce835eccdfed6ff29e9dc7f08d88449287008d3c95236c00f2ac0c21f` | `462009b88fa935678f3a29376a8efc7f6bb2d0057adbacb404b086101a556659221efae9770d6d7c6da8382bb3b0308ec167514232d2496b00` | -| 7 | `d1cf5dfd5d55759b91c93e2980a6cf94d73343ecfa1f1f145c04a330859661d8d03ab1f126381606b7ea46a379ef0c130f571a626025a02b` | `5f6db290c2015aaf50e996c641110c6dad10068c0b570aee77681708f33395a4f8c12d3dc9edae4ed6d0f8e3c01e0b001a73e962bc95e2ac00` | -| 8 | `a12f851c5a5a9b0750198633053bcfdbd3cbb1bd7790b61c0f17895b855d2cce8b5cd0dd14e19edee22bcf2d67fc384350ba6778f36e0b0e` | `77f4b53239b514384290549c6138b6241f2f02fc39d3b6f1c23947efbcd7195e5d46286cfcf5cee09ee1647d48528616661db47a1a3f4fb480` | -| 9 | `b11d3d51f59adf66ca73457e7bba62139b8064a5cc6c7eeb263b932f9680cc52d52182cd4d74e0d9c5efe8a633d4b576a6b43a4125c9a530` | `bfd8165db47487561c9276938bf8ad03834315eff64512fb563674d94cc9fbf4809d9da5aa1a2c2adff3f15cfa191e404e08076d2fb72a0580` | -| 10 | `efb7891d407737d6488a4ac8c5cd1c4cbecb480d4b5041a6c5ba3ec7b28018da485ba5256b2a3e3176a0c584892914ceb9dad40983637231` | `ba271a20d2126bae422020f0f16753a0acd722d9017d5342beb669a3bee93d63f468b7d11e6a8c8d45642910a27c70efaf41bd5149546d4980` | -| 11 | `64b34a2f704bf15348d1ade111eae0d7b65bf18d0d905e4bfa0ad0d70efeae52e3ae0beaa9b4b00983d8ac26eaa72357b520fe40e7bb2d2f` | `ffa4aa5f48587895c23a984cebf9909fcfafbdd2af4bc2a48ab551c6d76e48e4431b898fd5a251863be5ffb0d6b49aa93aa3f9a342ec2c9c80` | -| 12 | `a62491805f03167668a2faf8e8247493041d665453a02b69f3d5fc5d3a47a556bf39f5ba093dd0cb6af46f932a235eac68753345eeec4e30` | `7c5adfb3d18d9067756808696208d102527d0cfa5d48e14525b781760973f04f7456a5e9cb3e74ee3db45206e3d58a8e0e992c7579e9f44780` | -| 13 | `a4ff7eadced6cc4763b892706ef28a5f4ae812d5b9c2585d981e0cb478e372e221e9ceb6e589efd9bac765a4450bb14a20d92c3edeffb224` | `f1b96e31dd8b632371c9984037f2d673bac2aa7e8e09afae28b65c786414e15c4e91b8e2c9ef138ad50e552ee9ac941a119202d4fd06230f00` | -| 14 | `e6c4ff2845a9cf0665e6c120e8487a864868286ec146bb93b535d8174c181a92d78a3340074548a4d875ee9c8324a59d34f0ba010242f201` | `2da67651edd8eb18da5cd76084a93a90c26aaa1b8e515d81a3bdfa77e5b2d9057b58ada93ebf6066a19878046782c0dc445272daf181443680` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `6d23b915f67d0da68c5606996b2f2cc267adfe4f43e5a3feb0c1518c397bbf0a58613a729d1d06dd0e6fcf114045190e33bfb5c38cfc75e9a669a4eeb84d12bd` - -#### Final Output - -- **Group Public Key**: `5d2925ebae890f415b3d7e4de139a278c03b42155240a5279cdecbd79683caa95c75efb94beeaeb1ee1ac17b56762aab98a07cbbe8b1ea2880` - -### COCKTAIL(JubJub, BLAKE2b-512) - -#### 2-of-3 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `11d2989adac4cd7d0affd18498410683b65faa55d37f55aa29985a2a60c10203` | `481898de652d5b6256de15b84b0769e7facddacb76d7a57fc24955715a5c2666` | -| 2 | `4824d871017c9d26915aca64fa086bbbd4baed78448cb29ef25f704b8e1f1608` | `e20e5582a702cf241f7ba514b7d9fedd41e65e954b2cdc9c0457ffcfcc3989af` | -| 3 | `25c54cf8332afa4f315a31c004da3340ffbd82e700d85a1a6dde532bb0b9170e` | `d6f44b9f141ff339b5d8623cba82bed6e9f3f97da81e67920302b4cc8c1d0884` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `51b3c5c002ed5659445453fb2ce8c791e51cfdd6d448bda5e80078ee6646dc0a` | `3318a3309ab0caeed3138a14e3be1fa761f62c9635bd5afdb16bc0533e96e856` | -| 2 | `75bec8e2a889ee65e32cbc84e013b8c43195d157b285cbfce2ff50a38bfba10c` | `09392a7ddd5dbbcc1b7bb42fb7d3315049b9e4e20eaeeba2177a19f6d64a5d05` | -| 3 | `99c9cb044f2686728205250e943fa8f77d0da6d88fc2d953ddfe2958b0b0670e` | `af6abe42f8adadf30a61ee5e88b80f70ccc3089606589c77bb7911b6fa92462b` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `05bb3a8d9cfb4669dab7030558580d769eec6712f5cd514f335eb39a79777acd904c2321252bb20fd25961ce9a0f286ac63dba1619c660033a4e4be5c820b686` - -#### Final Output - -- **Group Public Key**: `6e48837cacc2cf38377fd9248baf43ac2ba91d641c5b3eab0827b2c0f12ad7d6` - -#### Recovery (Participant 1) - -| Field | Value | -|-------|-------| -| Ciphertext from P1 | `32edacd4da8afd0380f7e577a965bfcbadd8a086f9c9be596eadb10216c05a2a3162cbd24eb339dba2c942de18d61b71` | -| Ciphertext from P2 | `891d5baa9845ae997b69e63a8e7c70865f79c21c369cdea71695ceb16356375879470ec456ed336bef29b4a710ef7cce` | -| Ciphertext from P3 | `2a8c326eb385f811bda008a79aff1f9fc0b141c47607df14a7af282a8b1919662578a21f46ad03b4432213679ed4dfe1` | -| Recovered Secret Share | `51b3c5c002ed5659445453fb2ce8c791e51cfdd6d448bda5e80078ee6646dc0a` | -| Recovered Verification Share | `3318a3309ab0caeed3138a14e3be1fa761f62c9635bd5afdb16bc0533e96e856` | - -#### 3-of-5 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `8a6d09f226a24ab14e12d4cf7939681758b571b78a81844d6b78c3d7034d6d0b` | `3251d5c596b4763fabf7da22c5e33fa80b4666d84bdf486077e5276f9fb89e84` | -| 2 | `10cfbb1c024a9ed6162569eea190521e0b59c8aa720fe35a3519d2dd2e2d1a06` | `daf29360afef36c7a816e5979b313bdad5368a92d9336c05c3e5089f8ffc62be` | -| 3 | `8ca247a17a2bae026617f2a284ea573f18d106e61ac294be5016384b6664a705` | `285656f8d3c9ae6ec97b33892f83a51887b16952a108bd2134b8468803e4968a` | -| 4 | `5acbff5d41ec61ad8a92854f939476fdb9968795ebf19aabc914d4d65de6690d` | `e07e52c7545ebe51504ba6dd2c1c76ff3e7aee4fec8fa83bdeb91918c58787e3` | -| 5 | `36b83d2ed77362108f91e8d40509750024c2707502ac7cfdce6ba844ed6aa206` | `7cab434cef12f07b04da81bfaf71de5a6b387ef1a603cc522dcb5115ba62e683` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `d192123cb3952a7be75c7048c4cda67ccaf99d2ce83579430809739305a93705` | `99eca94fc3af346d5fbef1ac5bf6fb59843723c22bda8a03132caddf61a4c1b9` | -| 2 | `cac23979a4ff10c15d88dd5bb8cd731f7a56fe9315dfd8ffc7b102af7ee67706` | `7419e57ae943b925185f27e05d2a8ed91eea42f255e27504dea0d32a981d8654` | -| 3 | `9f9424130b11f8e5065f114e5a8948d840c571dcdfef52823432652f2b489400` | `6926acd26b2e9d240624cff2ee2f89eec4e863008a838786cd1149324a68ff2c` | -| 4 | `0735cae045d876ba65f1d3eb3d218d4d1f812c0748a34ed1f639ce79f5820a02` | `8c1b0f38cd5de9bb9f3f9ea326901b573d28a7421add8315e3d6a2091c3cb15e` | -| 5 | `02a42ae254558d3e7a3f25356395417f158a2e144ef9cbec0ec93d8edd96da0a` | `29f6b2b1eea0275311e800642cea5ca8ce2200d7243ab50dbc2e1799d1146253` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `ace2e5f05fab9d8369a1e79e516d3c4d68632c89f10284b67c64a72634331c7fb186676f70abb59f0b2f401b91f24c2ec42cab01069760cbfe485971526895a1` - -#### Final Output - -- **Group Public Key**: `4ccf463f718689c226fd714367c4fb51ad4e6fc4911cc9b262852bf8aff4af50` - -#### 7-of-14 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `42fa1bced9d44eaa91c7130b00d655369a57217ac7b9a80d4e7ce217f1cf4e03` | `5af4180913d87c2220280a9c4c493f612c5c18010d32bca57689c786b2b63e72` | -| 2 | `62dd2648e35c9fe597e4b895b7bcb13398ce4c31175fc42284abd4ce91a13603` | `a510091418157ef5f96058991026df8a8cc7399a72b4ef9a3c79d1fd52162d08` | -| 3 | `75ebb5adb727d2d9f2d86c429cdf0e9cb67051fddbcda2d2ae73a8820ac92603` | `454592d9b11e8fd4da9cbb75acdad08dd8bc74fd284e27d9a3f714423aaad8a2` | -| 4 | `f22c3ce17d20852089b760c96a8271f6b687dd860aeaf14b0b89cfca39c57f01` | `fa645ab3c9a901294eb759ba34cc450362f334c93a318fccde9a2aedfaaa4c47` | -| 5 | `95a0baa924993a740af56268c64f4e341360da4c624c3d688c9c60438db1fe0c` | `f239e2fe35250abdb8e6046177f3949e5e3dcfb0ff62ce66eea7169e78ee7fa3` | -| 6 | `69acd10ddbd23fe3be0cf2308bef8df0ddaf9d68cca0fc2100e96bcd8b8c8009` | `a4dbfa6a3acb3af65f0eba94ee9c8278e19d8758d8ec8fe57f89dd86f0c737c9` | -| 7 | `f143c80cc033974df36f03a05f6c39020dbe9c7027176bbc695d9b0329be1e0c` | `c612b4080d07d9b9743e19b6263a7f54b2ee6bd0a90f01705af7b5072ed80b70` | -| 8 | `dfcd2b66be3f61404fa3168294d6f529638425db4b6f56ef9e5a4dd770a22500` | `5d510ea3ee3aa2be2435ef996990350693e4477d1b2ab855dee6dc22da727231` | -| 9 | `b009a7f2ffa853be9fe5896014ebc50efae58275667e139b5afcd337dcfef00d` | `16345d02d6163fb45071a8e060e93e0a153f6ffa4604c90b67ccdcf060011b5b` | -| 10 | `460c639864f66a3b0dd52a8aa1bfa49826fcd7df02ad8de2a590a1f00d37bb01` | `a13ed26059fac029dced05f1e823edf9504e174bbeebe073e5a00aa1f6547d4c` | -| 11 | `00dec2a49175f48f43f2bc12e8619e61cfb3688c6b9e41a9264dddfb7d8c0802` | `84c2c49ef0a8d5833ec15becea091315bdc89f697c97b8fd8ca521466c9ee168` | -| 12 | `bb58ee98116c739dd03652b7bc6e027bc33f1f775f2e496d04df106fd9256e09` | `1704cb469de5717b0a734573bf6140049848958766c65c6d98b0197b60924c59` | -| 13 | `3aed697eabd74db9376e49675d25adefa691ebd3150c77e84e2c4b91960e7901` | `f52450a7ed19ce4451ac146def563db000ab1f0571da8ca30d09534ddc3606ab` | -| 14 | `d0470dc53552b03529ceabe4e4f14a6cd1763cc667f26ab7b9ae44ec0929ce01` | `6df8004a1249b30ec5dff1ec931320068517c1f5c250330b6cfa62cb24b40ee6` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `22c0303a41b67951f7daeba907f360497defa6ce77a255605e468532fc15bf0a` | `bf5b892eae59a3485978639cf171ae6458bf4cf39575d3de647bc678afcd95e4` | -| 2 | `80fa94b5d82dd8fdf6d1055de086aace960c413cb90d6d437da2449d379b1f08` | `53a3f41215d735688aacd74f4b9582a070c8c2d4b28a2286328ab18bbdc42cec` | -| 3 | `348fbe7e1d6d05d5135d471beee77eb254350d92a7db5144cb736eeb98643305` | `c29136290f45fe1738e8a3a6c8fafe425e6e51e1e7d7f2dc3779d98b2d25a626` | -| 4 | `4cc0dee20c4799d110ec3ab623114c2bed36de76c4140e6939dbda5a0244d307` | `77b86875cb32fef8090d338099f9cc8479b7ceea27f1b57d8ce5c90abfb5ac69` | -| 5 | `f9a93f085906442c885b822721ab65cc704700931885805268485f3ebee31b0e` | `6c230b5dcf336a12903dee15ea00996e3e96555e5ad1dd043822e090414d7758` | -| 6 | `4eaf8bbe8580b4c8495d1a4afb4283c591e87993291fde080596ccf14a737102` | `39740b467c86700cd45c758338eb5c51c709bdc49988aa3d7134ca9ea084829a` | -| 7 | `95314dbf880f7b72c3090980e8a3123aafa63cc656210892d4d53d23969d2307` | `d5f57b8d118c62364f29db73bafb826d55f248f95736e73cc73f02a153992d6a` | -| 8 | `a5404e6ae360b36ebd609e11dae8a35618536538899c0dd8e2c2e1ee415b5d06` | `ab98a06af6201692eaa54411cf74b978454820cebc34b70f59e419524597d799` | -| 9 | `86fbe9a9369e6362377760df98b56ab198f20d775295bb8ca860b279acb5a20d` | `fe2c9ed6dede80814f8cc7df4d9a63ada02b88e93f4c2777edb0f7c85cced56f` | -| 10 | `84432c010e88d02e9fb51967f668a9b53d9d97d460fc266aa69f0e29d6cf950a` | `c5cb250c683c01fbf80bd6bf01aaeb89183f6f15b675a167899184ea1c605e69` | -| 11 | `fd3f0f8f4aa2930f9a70aa1b9ed3281a62eb804a5d1a4150aac03f5f7657d50a` | `a6eee8a48649a3343816b8a321bdd513bb15b0531ee7a0611133088e45a92539` | -| 12 | `c3ba6cc0e17d6b20b0c35476b649d255f40451e321849bd284cc7b04ae5a9b08` | `ce0fc6d1e7d6da72550de7e28c33733a8b40612095135c6afd72e207bc6c1ad6` | -| 13 | `5d9a309bc0da71e27e84ab27d3b6b58500523ebc55969989c40b05003fb27e00` | `3175fa9e2fcf656db482fa727b5c2d340b114f69e88c8b82de7d06dcf6db5da3` | -| 14 | `949af86ff959c4ade4fb3b68551173847aa58b9869510b072a1064a7b477e207` | `22b698df1caac6f4d59cf04dbe88e6b09c7c75c1904a722eb12f1e62a9292c5b` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `329835b6f4f45c96ed006408bc96a839e814d73329e977657303ca8594f0942efc4de223ff024f3f3d64bd5f4d5496304f5318409a250af00e518b5c10d93245` - -#### Final Output - -- **Group Public Key**: `c572f3aa75fd20c31332a354fe23cb12e1a97cc0821d36f47c4690b4786efc0b` - -### COCKTAIL(Pallas, BLAKE2b-512) - -#### 2-of-3 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `dce7e285e962eb4e696c1100cde1f7b6ebf52c3a2ca21261e4664a2a9d939e1c` | `510e2e035daee4a76c500d3c0a7556c2c8067ffd26849e68341f81e502d6039a` | -| 2 | `ccb5469af32146ca72647d34a6a97c228fe45e8e9720e42aafdc3932c63a1a1d` | `eed2c4cda74c1db2aaf31fd83bc097b2f8cc5b1a079c8c90e73572608486811e` | -| 3 | `a40391568417f3fcfde831017c8c4af5c91287ac492addeb55735e6b63c31b14` | `39eb0f3a427636d256add1e57065e4dceb863240ad9fdcbbd961ab2e4b5fc2b0` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `c908dbcd035b1aa944385396307f8a1159351d59f84f2f4f6c0400db22f8b923` | `5761eadbb27999c49a5f1dbea3a85caa9be94355e689739a28a88b17267b77aa` | -| 2 | `cb8697561f597fe9c4d0cf60966366fb871bbce43d451acde4728ee2dc849f2d` | `fd29aa1a33095e42950980154ac5f915ad6b187d591839da122edf040b2b1b3e` | -| 3 | `cd0454df3a57e42945694c2bfc4742e5b6015b70833a054b5de11cea96118537` | `8a2231f605ee105fb22e51fe1593a8cbb660901179db64b6dad8460a3c68d582` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `e76d93978d0853e17c8850556e08456efb9b80799bbcd06babde17deeadfafcaa0eb28f3a5e7d94db8b9663387e0fc9d0c08bc89dbf205b09701d1c893e38209` - -#### Final Output - -- **Group Public Key**: `1b79857a381a900f055bc241f2435e601192730d17df7e20c18f8e525fe16f12` - -#### Recovery (Participant 1) - -| Field | Value | -|-------|-------| -| Ciphertext from P1 | `874f3f77c95bb8ad202d3acdf0aec2842effbbe7cc8eb8474fddf3f1ff6bc829d6593ee0cc0f50956a0fcc4174e5e43b` | -| Ciphertext from P2 | `92ce5450df413f6c9934beb0803e1fb605c0ace3d405dfed7d9b2850ccbacf8e057aa33b0a27ff1496591219d5733d55` | -| Ciphertext from P3 | `5785bcc613ffdbfcb201820c839071a82099592f004452cbdb3a9a24d9998a81272f724caa2ce6c5add8689f0cd96614` | -| Recovered Secret Share | `c908dbcd035b1aa944385396307f8a1159351d59f84f2f4f6c0400db22f8b923` | -| Recovered Verification Share | `5761eadbb27999c49a5f1dbea3a85caa9be94355e689739a28a88b17267b77aa` | - -#### 3-of-5 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `eea0877b8c311d7be72275ead14c203f0295e727dcdf3ec32bc7947f15920327` | `614232db54489f18cf281d7e989180dd0fa465f0aaa60efdf6d8dfad5d8b5aa9` | -| 2 | `9c4f7ba4c99f68301674374fcc95c765b0dbc0f08df839559e3dcd34d6141a24` | `ced2c3cf62260694c46cacc236c46914c411f59439395e6e2811425e26c0668f` | -| 3 | `781b5fa53c3a0dd79ceca9be323e6e4f857638bbd9d164c6cdaca584b6799729` | `a9d031584c1a4dd180724315f9b65b6fc753821a58c11ba7b3877766bda3db1c` | -| 4 | `694b3227391db91004590958787132faa7204b56f3f69ee8ff097f8fb442d021` | `19f8413ada8dc86d2faece0a0b4f7ef9c0d14a933d905a589f485a5df0516830` | -| 5 | `9689e8ae557073761bc9b97265690f06021ebbff72df424845b69839a867eb00` | `617ae7f1c95b3fcab4fba02c5f4f3961f83123169cde6e162d60f98b35faa492` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `60ab53256591d90b710aca515a320cb51b48bbbb6d3e7b0b0f621ed1da592f26` | `1518c141ee1c93967cf10900cb7d2531ad6ffc6c96c52d339b81387fa4b06600` | -| 2 | `2fe168edec2b0ba2f0fcf758d287e68edab9159f66d1c8e78868da6dc2fa4d33` | `e0e04aa51ded03d2aa40bcb48febc5568be82665cd2414373ffa4cff941623a4` | -| 3 | `7b2bc3b7dfc5308be143665e7cd42980d7693ed0924c343dd5a7e6bdd5373636` | `1fcc43ae084a4940ec4f5b6c74b0b44c426447eecb98f165ac118951bf73e731` | -| 4 | `448a62843d5f4ac743df14625818d6881258354ff2afbd0bf41f43c11411e82e` | `5115582d310a9832e7f86b8d7c883ac450a92035df95bb0123fade1bd1129eb0` | -| 5 | `8afd465306f8575617cf03646653eba88b84fa1b85fb6453e5d0ef777f86631d` | `c7493a78608370152fec1b31fa5c3affb5a4106bea8bada4cd191aaf8356d11b` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `77adba7a0d552f83f48e5637a2ba387d51aee5a288f71c9408d01e76251f38682f005f07992813c69de3d82d92bfeec31aafee275eadf845c62e522bd7d8ce5e` - -#### Final Output - -- **Group Public Key**: `3f1730e474eace6453afd08478d6fd87265b80de4d9e9d2fbf532fcd2b4f583b` - -#### 7-of-14 Configuration - -| Participant | Static Secret Key | Static Public Key | -|-------------|-------------------|-------------------| -| 1 | `08cb5f7c1d314d69662f575308143b9e1079efd8a40e66847185c496956ae61f` | `b3dd1f82c0ac45ab49c84ff6b87e5ac6c1769ba28d99a893571fd1f338e49b2b` | -| 2 | `5201d3204930a047710c72d04d887c775d4a4974b38278e30649ab2b29e8a014` | `a09f2e8bbb2a6ecb1f755bdbfc9af44f79014a115a75acdbb70fbf41e944cd02` | -| 3 | `b2412fb777b0d886b7d2918d1985e4b11923c0e94eaaaddff9eac64429af022d` | `bb44e645efc65742f25bbff8c170fa39e494ba0a40225959abd2e084eb3793ac` | -| 4 | `c9449b4f3e2efabf8f9e636b482908171d28b61b67060c8195e55acb1304782e` | `935a770ef15e24cb69542555bd55f14d6cc819ea557cd381b86b9239c242fea8` | -| 5 | `6dc8e6da546e45acec2d472e3379d5d6fa06992307d3cb5a2f27460074319513` | `a118c4e268c9f6fc4d4ad58d17753c8b2d948d65db2c363ecc0137d0a03ac1a3` | -| 6 | `a5bcc4ac86ad1e6574d10d978b9539d3c98c2ba26b646a0a2e8ce89b4a96db02` | `65dde1876203d96318a3a9f167398870ac5d16b10f5c9762114beb2f3d0c410e` | -| 7 | `648cd331852802cb3985675aabc69d00e47ea3c8922a6a789d8b40736aae8331` | `bdc648337adf58d83b89f22973cfec12aaf958a1edf7317e3f45526cc3a5da8e` | -| 8 | `3189581d1c0f906a0a3618bf52aba812363aede5a646ba23974b81be0a532d01` | `e4556b51f09e08f8013dff7da92ff9ad6dd3cf45db1e53f70163e9268762ce05` | -| 9 | `140ac48c030cd4b843843640ccbf8f1706d9f8d55419befef5c89766e458dd08` | `04a45ffc97e5b4f91f7e6d1a94a7862226958970c9c3092d0991bdcce3133eba` | -| 10 | `6b3cbcdae0d4805ecfdfb961d191ec7a55c66f23cee7cee6be3732d8f6295004` | `afdd1b36f09fc6c4398f6d19a3e6533ba00378c93f68e5263e245f7d1330d9bb` | -| 11 | `61778ade90bf65db59820d1a5f12d1850812a45f5b6b5546fcecc01614a00932` | `a400592285002667fe4b05927de6409376b0e3762622d81be49e9b55c992c38d` | -| 12 | `f8f70b07bf46f48d6a9832b7da52f739b2ab3972219f2e2d89d0148cb3173607` | `e134370a598f51a8fd9d544fd2724819c95c740a749b979955273e22488556a2` | -| 13 | `094b810cb4fd203d45d81c3cf9ef2edd4d2509c8b67680f3c56e37fad3a85124` | `8b79bfb62b66f79cfeb3104764317adf0018039745a4dedfc776624c4377c834` | -| 14 | `e8f9024cdfa308d87e267643b6dd321e79864f5b99bb1d94ea37ab16f4e69103` | `2bcf96d64b641f1914cd9e56d5564f89524f9b9fcaa648555cc68c2d3eae2526` | - -#### Round 2 Outputs - -| Participant | Secret Share | Verification Share | -|-------------|--------------|-------------------| -| 1 | `d79fbf226240b029a278ba8cff5c3bb6cf79d8bbc7e5ca8b4347e930bb967b3c` | `d013779e5806291be27bc99943593c4905594724ffaa9bada7ae94e73410b78b` | -| 2 | `8ae7b1b6a7c1430e5058da4d2f935e9af67385569a52f2006ed5089e86438b32` | `16dc962b2bb17c21163a033a36a182ee899925f59ebd06c50b984e9ce295b380` | -| 3 | `106dff7c0f9242a1c3b0b173f87ecbc05958d5a86ddcfbfe054a8a8fd186b820` | `44ce84c68959a3cc08db1a7af5b107ab0b34f7baa2b59a44c67269b84a904e2f` | -| 4 | `8d30ec51599fe1e3bb84607aef68d9cec511183c5bc75126e29b484054319514` | `ed560f4eaf3cdda8f83c3c449ac8e3705036fd5f8223241933d8612127cda42d` | -| 5 | `9448759197c871837591d759cbe83871f65a445a01852f45cfbb9dc1d5f43623` | `53739c87446a7666eb59934f4df07d4ba7c8951398024a616a973e7388afaeb0` | -| 6 | `31b270aa00b3533a62cde158e478b2bbc30044c03087073df24f85c826121d15` | `d16e3974d8cd3f4d04e16957f1c053e4e147af2c992081020a992e268c620d36` | -| 7 | `08864c3503d5198769e2268dba513fd0f9eb7e048b3452f7f1c7719d580ccc01` | `e70440fe2879c3d786393dcd48e22cfd43e20a54ee08fb2b5bedb4c37163969f` | -| 8 | `82926d8eb549e8e3a30516c59f5e8eddd9f2a4b111ffc569e9c9d32e30611f1b` | `f84367503cda809630cf988150c47b8420e86f85c669b9b92163d989de87d3a9` | -| 9 | `0a5b2df4e242a0964b7ee2ee7c7d82b94472b615a69cf8a921f85346d5465128` | `2fbe8ba96eea7698f825eecdfdcab9eaaaa828a17ed2064ff7db82451b5afd18` | -| 10 | `607c77287c9c806314d10d369b9f51e58fae4bc579616910940fbfe0bd6eb830` | `3fcdeccb1f186cd8b38174b1b1d3ec1a281620c9bf09752f7d9923139fe85a17` | -| 11 | `f9750696424dbd3320a04581946ac9c603fc1ad36fbcf46a345fa4a8d5cd3b16` | `ee686e963e305c36e6a0ec8276aadfcaa5cd712bcf996c229b7983f999b313af` | -| 12 | `74d83ff9b50d45127d863a9d4b21ee2804afbdbb6ed5b03e0398a693e1697c1f` | `676b6362a8c65ec04f4b5d88c8e49796639e241c4379c96882ac2ff3c7d45294` | -| 13 | `1bd9af8c1bf1369062ff35be0f7478cfe1d3b305a34d3319e8f57ea21f2cb531` | `9a4e6ccbe4375b224c4ebb5aa71330b379c028f9e20af0b94ed2e820f8de1e8c` | -| 14 | `7a4a24b9e81fcd0bd6f13db8c331f47356aea695b22140f153c1b2c322b9503a` | `4ab2228f0be38e3d2de6d0f68d258884877e75ca31794e142b9a4ef332ecb7ab` | - -#### Round 3 (Transcript Certification) - -- **Extension**: (empty) -- **Transcript Hash**: `a851f0e21184e631b83c336ada0e80e75fe6615fa931aedb09ea017c154998962eb509a051abcd7eb533232e4158de28ff43554cbdc470df53e45e390d908677` - -#### Final Output - -- **Group Public Key**: `d4a3a30c91ee1197555361749ee9650ad443fd9e7958ec8a0a04d2137b68ea9e` From 84e99f8bd897e7d87ec06ae5aa33a51315b0e40c Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Fri, 20 Mar 2026 14:06:35 -0300 Subject: [PATCH 25/30] also move cocktail-dkg ciphersuite tests to separate file; to be compatible with gencode --- frost-ed25519/tests/cocktail_dkg_tests.rs | 24 ++++++++++++++ frost-ed25519/tests/integration_tests.rs | 21 ------------ frost-ed448/tests/cocktail_dkg_tests.rs | 33 +++++++++++++++++++ frost-ed448/tests/integration_tests.rs | 30 ----------------- frost-p256/tests/cocktail_dkg_tests.rs | 24 ++++++++++++++ frost-p256/tests/integration_tests.rs | 21 ------------ .../tests/cocktail_dkg_tests.rs | 29 ++++++++++++++++ frost-ristretto255/tests/integration_tests.rs | 26 --------------- .../tests/cocktail_dkg_tests.rs | 26 +++++++++++++++ frost-secp256k1-tr/tests/integration_tests.rs | 23 ------------- 10 files changed, 136 insertions(+), 121 deletions(-) create mode 100644 frost-ed25519/tests/cocktail_dkg_tests.rs create mode 100644 frost-ed448/tests/cocktail_dkg_tests.rs create mode 100644 frost-p256/tests/cocktail_dkg_tests.rs create mode 100644 frost-ristretto255/tests/cocktail_dkg_tests.rs create mode 100644 frost-secp256k1-tr/tests/cocktail_dkg_tests.rs diff --git a/frost-ed25519/tests/cocktail_dkg_tests.rs b/frost-ed25519/tests/cocktail_dkg_tests.rs new file mode 100644 index 000000000..2cfd69ff0 --- /dev/null +++ b/frost-ed25519/tests/cocktail_dkg_tests.rs @@ -0,0 +1,24 @@ +use frost_ed25519::*; + +#[cfg(feature = "cocktail-dkg")] +#[test] +fn check_sign_with_cocktail_dkg() { + let rng = rand::rngs::OsRng; + + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::(rng); +} + +#[cfg(feature = "cocktail-dkg")] +#[test] +fn check_cocktail_dkg_test_vectors() { + use sha2::{Digest, Sha512}; + + let json_str = include_str!("helpers/cocktail-dkg-ed25519-sha512.json"); + + frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( + json_str, + |data| Sha512::digest(data).to_vec(), + true, // encrypted shares match (XChaCha20Poly1305) + true, // recovery is tested + ); +} diff --git a/frost-ed25519/tests/integration_tests.rs b/frost-ed25519/tests/integration_tests.rs index 00a618220..f2cc83610 100644 --- a/frost-ed25519/tests/integration_tests.rs +++ b/frost-ed25519/tests/integration_tests.rs @@ -14,13 +14,6 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } -#[cfg(feature = "cocktail-dkg")] -#[test] -fn check_sign_with_cocktail_dkg() { - let rng = rand::rngs::OsRng; - - frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::(rng); -} #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { @@ -315,17 +308,3 @@ async fn check_async_sign_with_dealer() { .unwrap(); } -#[cfg(feature = "cocktail-dkg")] -#[test] -fn check_cocktail_dkg_test_vectors() { - use sha2::{Digest, Sha512}; - - let json_str = include_str!("helpers/cocktail-dkg-ed25519-sha512.json"); - - frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( - json_str, - |data| Sha512::digest(data).to_vec(), - true, // encrypted shares match (XChaCha20Poly1305) - true, // recovery is tested - ); -} diff --git a/frost-ed448/tests/cocktail_dkg_tests.rs b/frost-ed448/tests/cocktail_dkg_tests.rs new file mode 100644 index 000000000..4d73af584 --- /dev/null +++ b/frost-ed448/tests/cocktail_dkg_tests.rs @@ -0,0 +1,33 @@ +use frost_ed448::*; + +#[cfg(feature = "cocktail-dkg")] +#[test] +fn check_sign_with_cocktail_dkg() { + let rng = rand::rngs::OsRng; + + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::(rng); +} + +#[cfg(feature = "cocktail-dkg")] +#[test] +fn check_cocktail_dkg_test_vectors() { + use sha3::{ + digest::{ExtendableOutput, Update, XofReader}, + Shake256, + }; + + let json_str = include_str!("helpers/cocktail-dkg-ed448-shake256.json"); + + frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( + json_str, + |data| { + let mut h = Shake256::default(); + h.update(data); + let mut out = vec![0u8; 64]; + h.finalize_xof().read(&mut out); + out + }, + false, // encrypted shares: 73 vs 72 byte format mismatch + false, // recovery: ciphertext format incompatible + ); +} diff --git a/frost-ed448/tests/integration_tests.rs b/frost-ed448/tests/integration_tests.rs index 859d7f13b..ec786cd8b 100644 --- a/frost-ed448/tests/integration_tests.rs +++ b/frost-ed448/tests/integration_tests.rs @@ -14,13 +14,6 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } -#[cfg(feature = "cocktail-dkg")] -#[test] -fn check_sign_with_cocktail_dkg() { - let rng = rand::rngs::OsRng; - - frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::(rng); -} #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { @@ -315,26 +308,3 @@ async fn check_async_sign_with_dealer() { .unwrap(); } -#[cfg(feature = "cocktail-dkg")] -#[test] -fn check_cocktail_dkg_test_vectors() { - use sha3::{ - digest::{ExtendableOutput, Update, XofReader}, - Shake256, - }; - - let json_str = include_str!("helpers/cocktail-dkg-ed448-shake256.json"); - - frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( - json_str, - |data| { - let mut h = Shake256::default(); - h.update(data); - let mut out = vec![0u8; 64]; - h.finalize_xof().read(&mut out); - out - }, - false, // encrypted shares: 73 vs 72 byte format mismatch - false, // recovery: ciphertext format incompatible - ); -} diff --git a/frost-p256/tests/cocktail_dkg_tests.rs b/frost-p256/tests/cocktail_dkg_tests.rs new file mode 100644 index 000000000..30f76cc34 --- /dev/null +++ b/frost-p256/tests/cocktail_dkg_tests.rs @@ -0,0 +1,24 @@ +use frost_p256::*; + +#[cfg(feature = "cocktail-dkg")] +#[test] +fn check_sign_with_cocktail_dkg() { + let rng = rand::rngs::OsRng; + + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::(rng); +} + +#[cfg(feature = "cocktail-dkg")] +#[test] +fn check_cocktail_dkg_test_vectors() { + use sha2::{Digest, Sha256}; + + let json_str = include_str!("helpers/cocktail-dkg-p256-sha256.json"); + + frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( + json_str, + |data| Sha256::digest(data).to_vec(), + true, // encrypted shares match (XAES-256-GCM) + true, // recovery is tested + ); +} diff --git a/frost-p256/tests/integration_tests.rs b/frost-p256/tests/integration_tests.rs index 5e488f2cc..938aa9829 100644 --- a/frost-p256/tests/integration_tests.rs +++ b/frost-p256/tests/integration_tests.rs @@ -14,13 +14,6 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } -#[cfg(feature = "cocktail-dkg")] -#[test] -fn check_sign_with_cocktail_dkg() { - let rng = rand::rngs::OsRng; - - frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::(rng); -} #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { @@ -312,17 +305,3 @@ async fn check_async_sign_with_dealer() { .unwrap(); } -#[cfg(feature = "cocktail-dkg")] -#[test] -fn check_cocktail_dkg_test_vectors() { - use sha2::{Digest, Sha256}; - - let json_str = include_str!("helpers/cocktail-dkg-p256-sha256.json"); - - frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( - json_str, - |data| Sha256::digest(data).to_vec(), - true, // encrypted shares match (XAES-256-GCM) - true, // recovery is tested - ); -} diff --git a/frost-ristretto255/tests/cocktail_dkg_tests.rs b/frost-ristretto255/tests/cocktail_dkg_tests.rs new file mode 100644 index 000000000..88e9c5184 --- /dev/null +++ b/frost-ristretto255/tests/cocktail_dkg_tests.rs @@ -0,0 +1,29 @@ +use frost_ristretto255::*; + +#[cfg(feature = "cocktail-dkg")] +#[test] +fn check_sign_with_cocktail_dkg() { + let rng = rand::rngs::OsRng; + + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::( + rng, + ); +} + +#[cfg(feature = "cocktail-dkg")] +#[test] +fn check_cocktail_dkg_test_vectors() { + use sha2::{Digest, Sha512}; + + let json_str = include_str!("helpers/cocktail-dkg-ristretto255-sha512.json"); + + frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::< + Ristretto255Sha512, + _, + >( + json_str, + |data| Sha512::digest(data).to_vec(), + true, // encrypted shares match (XChaCha20Poly1305) + true, // recovery is tested + ); +} diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index 6177c5841..b0f59a1c5 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -14,15 +14,6 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } -#[cfg(feature = "cocktail-dkg")] -#[test] -fn check_sign_with_cocktail_dkg() { - let rng = rand::rngs::OsRng; - - frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::( - rng, - ); -} #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { @@ -322,20 +313,3 @@ async fn check_async_sign_with_dealer() { .unwrap(); } -#[cfg(feature = "cocktail-dkg")] -#[test] -fn check_cocktail_dkg_test_vectors() { - use sha2::{Digest, Sha512}; - - let json_str = include_str!("helpers/cocktail-dkg-ristretto255-sha512.json"); - - frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::< - Ristretto255Sha512, - _, - >( - json_str, - |data| Sha512::digest(data).to_vec(), - true, // encrypted shares match (XChaCha20Poly1305) - true, // recovery is tested - ); -} diff --git a/frost-secp256k1-tr/tests/cocktail_dkg_tests.rs b/frost-secp256k1-tr/tests/cocktail_dkg_tests.rs new file mode 100644 index 000000000..38dfbf058 --- /dev/null +++ b/frost-secp256k1-tr/tests/cocktail_dkg_tests.rs @@ -0,0 +1,26 @@ +use frost_secp256k1_tr::*; + +#[cfg(feature = "cocktail-dkg")] +#[test] +fn check_sign_with_cocktail_dkg() { + let rng = rand::rngs::OsRng; + + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::( + rng, + ); +} + +#[cfg(feature = "cocktail-dkg")] +#[test] +fn check_cocktail_dkg_test_vectors() { + use sha2::{Digest, Sha256}; + + let json_str = include_str!("helpers/cocktail-dkg-secp256k1-sha256.json"); + + frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( + json_str, + |data| Sha256::digest(data).to_vec(), + true, // encrypted shares match (XAES-256-GCM) + true, // recovery is tested + ); +} diff --git a/frost-secp256k1-tr/tests/integration_tests.rs b/frost-secp256k1-tr/tests/integration_tests.rs index db7cb5b32..7f707ce98 100644 --- a/frost-secp256k1-tr/tests/integration_tests.rs +++ b/frost-secp256k1-tr/tests/integration_tests.rs @@ -14,30 +14,7 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } -#[cfg(feature = "cocktail-dkg")] -#[test] -fn check_sign_with_cocktail_dkg() { - let rng = rand::rngs::OsRng; - - frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::( - rng, - ); -} -#[cfg(feature = "cocktail-dkg")] -#[test] -fn check_cocktail_dkg_test_vectors() { - use sha2::{Digest, Sha256}; - - let json_str = include_str!("helpers/cocktail-dkg-secp256k1-sha256.json"); - - frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( - json_str, - |data| Sha256::digest(data).to_vec(), - true, // encrypted shares match (XAES-256-GCM) - true, // recovery is tested - ); -} #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { From e0778ed0a05f21f6d5146b6347d554f1929ceed6 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Fri, 20 Mar 2026 14:14:48 -0300 Subject: [PATCH 26/30] gencode --- frost-ed25519/tests/integration_tests.rs | 2 -- frost-ed448/src/lib.rs | 2 +- frost-ed448/tests/integration_tests.rs | 2 -- frost-p256/src/lib.rs | 2 +- frost-p256/tests/integration_tests.rs | 2 -- frost-secp256k1-tr/src/lib.rs | 2 +- frost-secp256k1-tr/tests/integration_tests.rs | 2 -- 7 files changed, 3 insertions(+), 11 deletions(-) diff --git a/frost-ed25519/tests/integration_tests.rs b/frost-ed25519/tests/integration_tests.rs index f2cc83610..2cc6620a6 100644 --- a/frost-ed25519/tests/integration_tests.rs +++ b/frost-ed25519/tests/integration_tests.rs @@ -14,7 +14,6 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } - #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; @@ -307,4 +306,3 @@ async fn check_async_sign_with_dealer() { .await .unwrap(); } - diff --git a/frost-ed448/src/lib.rs b/frost-ed448/src/lib.rs index a784a165b..d411d49f8 100644 --- a/frost-ed448/src/lib.rs +++ b/frost-ed448/src/lib.rs @@ -371,7 +371,7 @@ pub mod keys { /// ensure that they received the correct (and same) value. pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment; - /// COCKTAIL-DKG key generation protocol. + /// COCKTAIL-DKG protocol for distributed key generation. #[cfg(feature = "cocktail-dkg")] #[cfg_attr(docsrs, doc(cfg(feature = "cocktail-dkg")))] pub mod cocktail_dkg; diff --git a/frost-ed448/tests/integration_tests.rs b/frost-ed448/tests/integration_tests.rs index ec786cd8b..28bd22ad2 100644 --- a/frost-ed448/tests/integration_tests.rs +++ b/frost-ed448/tests/integration_tests.rs @@ -14,7 +14,6 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } - #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; @@ -307,4 +306,3 @@ async fn check_async_sign_with_dealer() { .await .unwrap(); } - diff --git a/frost-p256/src/lib.rs b/frost-p256/src/lib.rs index b08756796..0b3afd7b3 100644 --- a/frost-p256/src/lib.rs +++ b/frost-p256/src/lib.rs @@ -394,7 +394,7 @@ pub mod keys { /// ensure that they received the correct (and same) value. pub type VerifiableSecretSharingCommitment = frost::keys::VerifiableSecretSharingCommitment

; - /// COCKTAIL-DKG key generation protocol. + /// COCKTAIL-DKG protocol for distributed key generation. #[cfg(feature = "cocktail-dkg")] #[cfg_attr(docsrs, doc(cfg(feature = "cocktail-dkg")))] pub mod cocktail_dkg; diff --git a/frost-p256/tests/integration_tests.rs b/frost-p256/tests/integration_tests.rs index 938aa9829..d1d27f440 100644 --- a/frost-p256/tests/integration_tests.rs +++ b/frost-p256/tests/integration_tests.rs @@ -14,7 +14,6 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } - #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; @@ -304,4 +303,3 @@ async fn check_async_sign_with_dealer() { .await .unwrap(); } - diff --git a/frost-secp256k1-tr/src/lib.rs b/frost-secp256k1-tr/src/lib.rs index c4fe2c22d..075d31576 100644 --- a/frost-secp256k1-tr/src/lib.rs +++ b/frost-secp256k1-tr/src/lib.rs @@ -849,7 +849,7 @@ pub mod keys { } } - /// COCKTAIL-DKG key generation protocol. + /// COCKTAIL-DKG protocol for distributed key generation. #[cfg(feature = "cocktail-dkg")] #[cfg_attr(docsrs, doc(cfg(feature = "cocktail-dkg")))] pub mod cocktail_dkg; diff --git a/frost-secp256k1-tr/tests/integration_tests.rs b/frost-secp256k1-tr/tests/integration_tests.rs index 7f707ce98..682db377d 100644 --- a/frost-secp256k1-tr/tests/integration_tests.rs +++ b/frost-secp256k1-tr/tests/integration_tests.rs @@ -14,8 +14,6 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } - - #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; From a97b03caab30c7358930f6c53ce588b5dfdea381 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Fri, 20 Mar 2026 14:21:18 -0300 Subject: [PATCH 27/30] cargo fmt --- frost-core/src/keys/cocktail_dkg.rs | 12 +++++-- frost-core/src/tests/cocktail_dkg.rs | 32 +++++++++---------- .../tests/cocktail_dkg_tests.rs | 9 ++---- frost-ristretto255/tests/integration_tests.rs | 2 -- .../tests/cocktail_dkg_tests.rs | 4 +-- 5 files changed, 28 insertions(+), 31 deletions(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index 5d7517950..2997d94f2 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -145,7 +145,6 @@ fn derive_key_and_nonce( Ok((key, nonce)) } - /// Build the PoP message: `context || serialize(C_i) || serialize(E_i)`. fn pop_message( commitment: &VerifiableSecretSharingCommitment, @@ -920,7 +919,12 @@ pub fn part2( })?; // Collect optional payload (remainder after the share bytes) - let payload = plaintext.get(scalar_len..).ok_or(Error::DecryptionFailed { culprit: *sender_id })?.to_vec(); + let payload = plaintext + .get(scalar_len..) + .ok_or(Error::DecryptionFailed { + culprit: *sender_id, + })? + .to_vec(); received_payloads.insert(*sender_id, payload); // Verify share against sender's VSS commitment @@ -1167,7 +1171,9 @@ pub fn recover( } let share_ser = <<::Field as Field>::Serialization>::try_from( - plaintext.get(..scalar_len).ok_or(Error::DecryptionFailed { culprit: sender_id })?, + plaintext + .get(..scalar_len) + .ok_or(Error::DecryptionFailed { culprit: sender_id })?, ) .map_err(|_| Error::DecryptionFailed { culprit: sender_id })?; let s_j_i = <::Field>::deserialize(&share_ser) diff --git a/frost-core/src/tests/cocktail_dkg.rs b/frost-core/src/tests/cocktail_dkg.rs index 812b012ea..ca74d404c 100644 --- a/frost-core/src/tests/cocktail_dkg.rs +++ b/frost-core/src/tests/cocktail_dkg.rs @@ -283,9 +283,8 @@ pub fn check_cocktail_dkg_test_vectors( .map(|p| hex::decode(p["verification_share"].as_str().unwrap()).unwrap()) .collect(); - let identifiers: Vec> = (1..=n as u16) - .map(|i| i.try_into().unwrap()) - .collect(); + let identifiers: Vec> = + (1..=n as u16).map(|i| i.try_into().unwrap()).collect(); let mut static_keys: BTreeMap, SigningKey> = BTreeMap::new(); let mut participants: BTreeMap, VerifyingKey> = BTreeMap::new(); @@ -553,10 +552,9 @@ pub fn check_cocktail_dkg_test_vectors( let expected_recovered_share = hex::decode(recovery["recovered_secret_share"].as_str().unwrap()).unwrap(); - let expected_recovered_vshare = hex::decode( - recovery["recovered_verification_share"].as_str().unwrap(), - ) - .unwrap(); + let expected_recovered_vshare = + hex::decode(recovery["recovered_verification_share"].as_str().unwrap()) + .unwrap(); // Apply post_dkg to the expected recovered key package. let expected_tweaked_recovery_kp = { @@ -580,18 +578,20 @@ pub fn check_cocktail_dkg_test_vectors( tweaked_kp }; - let (recovered_key_pkg, recovered_pubkey_pkg) = - frost::keys::cocktail_dkg::recover( - recovery_sk, - &transcript_for_recovery, - &cert_for_recovery, - &recovery_ciphertexts, - ) - .unwrap(); + let (recovered_key_pkg, recovered_pubkey_pkg) = frost::keys::cocktail_dkg::recover( + recovery_sk, + &transcript_for_recovery, + &cert_for_recovery, + &recovery_ciphertexts, + ) + .unwrap(); assert_eq!( recovered_key_pkg.signing_share().serialize().as_slice(), - expected_tweaked_recovery_kp.signing_share().serialize().as_slice(), + expected_tweaked_recovery_kp + .signing_share() + .serialize() + .as_slice(), "recovered secret share mismatch" ); assert_eq!( diff --git a/frost-ristretto255/tests/cocktail_dkg_tests.rs b/frost-ristretto255/tests/cocktail_dkg_tests.rs index 88e9c5184..8de9cc855 100644 --- a/frost-ristretto255/tests/cocktail_dkg_tests.rs +++ b/frost-ristretto255/tests/cocktail_dkg_tests.rs @@ -5,9 +5,7 @@ use frost_ristretto255::*; fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; - frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::( - rng, - ); + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::(rng); } #[cfg(feature = "cocktail-dkg")] @@ -17,10 +15,7 @@ fn check_cocktail_dkg_test_vectors() { let json_str = include_str!("helpers/cocktail-dkg-ristretto255-sha512.json"); - frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::< - Ristretto255Sha512, - _, - >( + frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( json_str, |data| Sha512::digest(data).to_vec(), true, // encrypted shares match (XChaCha20Poly1305) diff --git a/frost-ristretto255/tests/integration_tests.rs b/frost-ristretto255/tests/integration_tests.rs index b0f59a1c5..c4ef3be0e 100644 --- a/frost-ristretto255/tests/integration_tests.rs +++ b/frost-ristretto255/tests/integration_tests.rs @@ -14,7 +14,6 @@ fn check_sign_with_dkg() { frost_core::tests::ciphersuite_generic::check_sign_with_dkg::(rng); } - #[test] fn check_dkg_part1_fails_with_invalid_signers_min_signers() { let rng = rand::rngs::OsRng; @@ -312,4 +311,3 @@ async fn check_async_sign_with_dealer() { .await .unwrap(); } - diff --git a/frost-secp256k1-tr/tests/cocktail_dkg_tests.rs b/frost-secp256k1-tr/tests/cocktail_dkg_tests.rs index 38dfbf058..cadb1efaf 100644 --- a/frost-secp256k1-tr/tests/cocktail_dkg_tests.rs +++ b/frost-secp256k1-tr/tests/cocktail_dkg_tests.rs @@ -5,9 +5,7 @@ use frost_secp256k1_tr::*; fn check_sign_with_cocktail_dkg() { let rng = rand::rngs::OsRng; - frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::( - rng, - ); + frost_core::tests::cocktail_dkg::check_sign_with_cocktail_dkg::(rng); } #[cfg(feature = "cocktail-dkg")] From a9041a94011179dcb6faac45d07dc0274dca2583 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Fri, 20 Mar 2026 14:27:15 -0300 Subject: [PATCH 28/30] add cocktail_dkg.rs to gencode --- gencode/src/main.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/gencode/src/main.rs b/gencode/src/main.rs index 9dee2d5da..7abd00346 100644 --- a/gencode/src/main.rs +++ b/gencode/src/main.rs @@ -358,6 +358,7 @@ fn main() -> ExitCode { "dkg.md", "src/rerandomized.rs", "src/keys/dkg.rs", + "src/keys/cocktail_dkg.rs", "src/keys/refresh.rs", "src/keys/repairable.rs", "src/tests/batch.rs", From eb5711806ca78a32b56cbe04f6cc32b655961aec Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Thu, 26 Mar 2026 18:27:09 -0300 Subject: [PATCH 29/30] cleaned up docs --- frost-core/src/keys/cocktail_dkg.rs | 33 +++++++++++------------------ 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index 2997d94f2..1f4a5f1bb 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -16,27 +16,24 @@ //! //! ## Protocol Overview //! -//! 1. **Round 1 ([`part1`])**: Each participant generates their polynomial, +//! 1. **Part 1 ([`part1`])**: Each participant generates their polynomial, //! ephemeral key, proof of possession, and encrypts shares for all other -//! participants. +//! participants. Participants can send the generate packages to the other +//! participants directly, or via a "coordinator" which aggregates messages. //! -//! 2. **Round 2 ([`part2`])**: The coordinator aggregates Round 1 messages and -//! sends them to all participants. Each participant decrypts and verifies -//! received shares, computes their final key share and signs the public -//! transcript. +//! 2. **Part 2 ([`part2`])**: Each participant decrypts and verifies received +//! shares, computes their final key share and signs the public transcript. +//! Again, participants can send their transcript signatures directly to each +//! other, or via the coordinator. //! -//! 3. **Round 3 ([`part3`])**: The coordinator broadcasts all transcript -//! signatures. Each participant verifies them and, if all are valid, outputs +//! 3. **Part 3 ([`part3`])**: Each participant verifies the transcript +//! signatures from all other participants and, if all are valid, outputs //! their [`KeyPackage`] and [`PublicKeyPackage`]. //! //! ## Trait Requirement //! //! Ciphersuites must implement [`CocktailCiphersuite`] in addition to -//! [`Ciphersuite`] to use this module. The additional methods provide: -//! - A hash-to-scalar function for the COCKTAIL Schnorr signature scheme -//! - A combined H6 key derivation + AEAD key/nonce derivation function -//! - AEAD encrypt/decrypt operations - +//! [`Ciphersuite`] to use this module. use alloc::{collections::BTreeMap, vec::Vec}; use rand_core::{CryptoRng, RngCore}; @@ -53,12 +50,6 @@ use super::{ }; /// Extension trait for ciphersuites that support the COCKTAIL-DKG protocol. -/// -/// Implementors must provide: -/// - The H6 hash function for AEAD key/nonce derivation -/// - AEAD encrypt/decrypt operations -/// -/// See the [COCKTAIL-DKG specification](https://c2sp.org/cocktail-dkg) for details. pub trait CocktailCiphersuite: Ciphersuite { /// Hash-to-scalar function for the COCKTAIL Schnorr PoP scheme. fn HPOP(data: &[u8]) -> Scalar; @@ -158,7 +149,7 @@ fn pop_message( Ok(msg) } -/// COCKTAIL deterministic Schnorr sign for Proof of Possession. +/// Deterministic Schnorr sign for Proof of Possession. /// /// `k = H(sk || m)`, `R = k·B`, `c = H(R || pk || m)`, `z = k + c·sk` fn pop_sign( @@ -184,7 +175,7 @@ fn pop_sign( Ok(Signature { R, z }) } -/// COCKTAIL deterministic Schnorr verify for Proof of Possession. +/// Deterministic Schnorr verify for Proof of Possession. /// /// `c = H(R || pk || m)`, check `z·B == R + c·pk` fn pop_verify( From a8ab5f8ba7adcd2ea4a98ceb606ccacfb4525731 Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Mon, 13 Jul 2026 14:25:53 -0300 Subject: [PATCH 30/30] udpdate to 0.2.0 spec --- frost-core/src/error.rs | 6 + frost-core/src/keys/cocktail_dkg.rs | 582 ++++++++---- frost-core/src/tests/cocktail_dkg.rs | 195 ++-- frost-ed25519/src/keys/cocktail_dkg.rs | 4 +- frost-ed25519/src/lib.rs | 27 +- frost-ed25519/tests/cocktail_dkg_tests.rs | 2 - .../helpers/cocktail-dkg-ed25519-sha512.json | 856 +++++++++++------- frost-ed448/src/keys/cocktail_dkg.rs | 4 +- frost-ed448/src/lib.rs | 50 +- frost-ed448/tests/cocktail_dkg_tests.rs | 2 - .../helpers/cocktail-dkg-ed448-shake256.json | 856 +++++++++++------- frost-p256/src/keys/cocktail_dkg.rs | 4 +- frost-p256/src/lib.rs | 50 +- frost-p256/tests/cocktail_dkg_tests.rs | 2 - .../helpers/cocktail-dkg-p256-sha256.json | 856 +++++++++++------- frost-ristretto255/src/keys/cocktail_dkg.rs | 4 +- frost-ristretto255/src/lib.rs | 33 +- .../tests/cocktail_dkg_tests.rs | 2 - .../cocktail-dkg-ristretto255-sha512.json | 856 +++++++++++------- frost-secp256k1-tr/src/keys/cocktail_dkg.rs | 4 +- frost-secp256k1-tr/src/lib.rs | 31 +- .../tests/cocktail_dkg_tests.rs | 2 - .../cocktail-dkg-secp256k1-sha256.json | 856 +++++++++++------- frost-secp256k1/src/keys/cocktail_dkg.rs | 4 +- .../cocktail-dkg-secp256k1-sha256.json | 856 +++++++++++------- 25 files changed, 3813 insertions(+), 2331 deletions(-) diff --git a/frost-core/src/error.rs b/frost-core/src/error.rs index a0b37df38..6e10bec52 100644 --- a/frost-core/src/error.rs +++ b/frost-core/src/error.rs @@ -104,6 +104,10 @@ pub enum Error { /// The identifier of the participant whose transcript signature was invalid. culprit: Identifier, }, + /// Duplicated static public keys were provided. + #[cfg(feature = "cocktail-dkg")] + #[error("Duplicated static public keys provided.")] + DuplicatedVerifyingKeys, /// Error in scalar Field. #[error("Error in scalar Field.")] FieldError(#[from] FieldError), @@ -144,6 +148,8 @@ where Error::DecryptionFailed { culprit } => vec![*culprit], #[cfg(feature = "cocktail-dkg")] Error::InvalidTranscriptSignature { culprit } => vec![*culprit], + #[cfg(feature = "cocktail-dkg")] + Error::DuplicatedVerifyingKeys => vec![], Error::InvalidMinSigners | Error::InvalidMaxSigners | Error::InvalidCoefficients diff --git a/frost-core/src/keys/cocktail_dkg.rs b/frost-core/src/keys/cocktail_dkg.rs index 1f4a5f1bb..081d164f1 100644 --- a/frost-core/src/keys/cocktail_dkg.rs +++ b/frost-core/src/keys/cocktail_dkg.rs @@ -34,47 +34,77 @@ //! //! Ciphersuites must implement [`CocktailCiphersuite`] in addition to //! [`Ciphersuite`] to use this module. -use alloc::{collections::BTreeMap, vec::Vec}; +use alloc::{ + collections::{BTreeMap, BTreeSet}, + vec::Vec, +}; use rand_core::{CryptoRng, RngCore}; use crate::{ - Ciphersuite, Element, Error, Field, Group, Identifier, Scalar, Signature, SigningKey, - VerifyingKey, + random_nonzero, Ciphersuite, Element, Error, Field, Group, Identifier, Scalar, Signature, + SigningKey, VerifyingKey, }; use super::{ - evaluate_polynomial, generate_coefficients, generate_secret_polynomial, - validate_num_of_signers, KeyPackage, PublicKeyPackage, SecretShare, SigningShare, - VerifiableSecretSharingCommitment, + evaluate_polynomial, generate_secret_polynomial, validate_num_of_signers, KeyPackage, + PublicKeyPackage, SecretShare, SigningShare, VerifiableSecretSharingCommitment, }; /// Extension trait for ciphersuites that support the COCKTAIL-DKG protocol. pub trait CocktailCiphersuite: Ciphersuite { - /// Hash-to-scalar function for the COCKTAIL Schnorr PoP scheme. - fn HPOP(data: &[u8]) -> Scalar; + /// The canonical `ciphersuite_id` string from the COCKTAIL-DKG + /// specification, e.g. `COCKTAIL(Ristretto255, SHA-512)`. + /// + /// It is bound into the canonical transcript and (under the recommended + /// construction) into the session `context`. + const COCKTAIL_ID: &'static str; + + /// The output size of the [`H6`](Self::H6) hash function in bytes. + /// + /// If this is at least 56, the AEAD key and nonce are derived from a + /// single `H6` output; otherwise two domain-separated `H6` invocations + /// (with `derive_extra(context, "key")` and `derive_extra(context, "nonce")` + /// as the `extra` input) are used. + const H6_OUTPUT_SIZE: usize; + + /// The AEAD authentication tag size in bytes. + const AEAD_TAG_SIZE: usize = 16; + + /// Nonce derivation for the COCKTAIL Schnorr scheme: + /// `k = HashToScalar(prefix_nonce || secret_key || message)`, where + /// `prefix_nonce` is the ciphersuite-specific nonce prefix (e.g. + /// `COCKTAIL-DKG-Ristretto255-SHA512-NONCE`) and `HashToScalar` is the + /// ciphersuite's Schnorr hash-to-scalar reduction. + /// + /// For secp256k1, this is the BIP-340 tagged hash with tag + /// `COCKTAIL-DKG/NONCE` instead. + fn HNONCE(secret_key: &[u8], message: &[u8]) -> Scalar; + + /// Challenge derivation for the COCKTAIL Schnorr scheme: + /// `c = HashToScalar(prefix_H7 || R || pk || message)`, where `prefix_H7` + /// is the ciphersuite-specific challenge prefix (e.g. + /// `COCKTAIL-DKG-Ristretto255-SHA512-H7`). + /// + /// For secp256k1, this is the BIP-340 tagged hash with tag + /// `COCKTAIL-DKG/H7` instead. + fn H7(commitment: &[u8], public_key: &[u8], message: &[u8]) -> Scalar; /// Hash function H6 for AEAD key/nonce derivation. /// /// Defined in the COCKTAIL-DKG specification as: - /// `H6(Se, Sd, E, Pi, Pj, context) = Hash(domain || Se || Sd || E || Pi || Pj || len(context) || context)` + /// `H6(Se || Sd, E, Ps, Pr, extra) = Hash(prefix || Se || Sd || E || Ps || Pr || len(extra) || extra)` + /// where `len(extra)` is a little-endian 64-bit integer. (The secp256k1 + /// ciphersuite instead uses a BIP-340 tagged hash and omits `len(extra)`.) fn H6( shared_secret_ephem: &[u8], shared_secret_static: &[u8], ephemeral_pub: &[u8], sender_pub: &[u8], recipient_pub: &[u8], - context: &[u8], + extra: &[u8], ) -> Vec; - /// The ciphersuite's base hash function, used for KDF purposes when the H6 - /// output is shorter than 56 bytes. - /// - /// Called as `HKDF(label || ikm)` where label is either - /// `"COCKTAIL-derive-key"` or `"COCKTAIL-derive-nonce"` and ikm is the - /// H6 output. - fn HKDF(data: &[u8]) -> Vec; - /// Encrypt a plaintext using an AEAD scheme. fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> Vec; @@ -85,6 +115,43 @@ pub trait CocktailCiphersuite: Ciphersuite { ciphertext: &[u8], ) -> Result, Error>; + /// The size in bytes of the COCKTAIL scalar encoding for this ciphersuite. + /// + /// Defaults to the size of the ciphersuite's scalar field encoding. + /// Ed448 overrides this to 56 (bare little-endian scalars without the + /// trailing zero byte of the 57-byte RFC 8032 encoding), matching the + /// COCKTAIL-DKG test vectors. + fn scalar_size() -> usize { + <::Field as Field>::serialize( + &<::Field as Field>::zero(), + ) + .as_ref() + .len() + } + + /// Serialize a scalar in the COCKTAIL wire encoding. + /// + /// This encoding is used for the secret shares inside AEAD plaintexts, + /// the signing key input of [`HNONCE`](Self::HNONCE), and the `z` + /// component of COCKTAIL Schnorr signatures. + fn serialize_scalar(scalar: &Scalar) -> Vec { + <::Field as Field>::serialize(scalar) + .as_ref() + .to_vec() + } + + /// Deserialize a scalar from the COCKTAIL wire encoding, rejecting + /// non-canonical encodings (values greater than or equal to the group + /// order). + fn deserialize_scalar(bytes: &[u8]) -> Result, Error> { + let serialization = + <<::Field as Field>::Serialization>::try_from(bytes) + .map_err(|_| Error::::from(crate::FieldError::MalformedScalar))?; + Ok(<::Field as Field>::deserialize( + &serialization, + )?) + } + /// Optionally derive or update the extension from the payloads received in Round 2. /// /// Called in [`part2`] after all shares have been decrypted, before the transcript @@ -109,29 +176,80 @@ pub trait CocktailCiphersuite: Ciphersuite { } } -/// Derives a 256-bit key and 192-bit nonce from an H6 output, following the -/// `DeriveKeyAndNonce` helper in the COCKTAIL-DKG specification. +/// The maximum accepted size in bytes of a single encrypted share ciphertext. +/// +/// The COCKTAIL-DKG specification requires implementations to enforce an +/// upper bound on individual ciphertexts as a resource-exhaustion mitigation, +/// and recommends a bound of at least 64 KiB for general-purpose +/// implementations. +pub const MAX_CIPHERTEXT_SIZE: usize = 65536; + +/// Builds the `extra` input for the domain-separated H6 invocations used to +/// derive the AEAD key and nonce when the H6 output is smaller than 56 bytes: +/// +/// `derive_extra(context, label) = len(context) || context || len(label) || label` +/// +/// where both lengths are little-endian 64-bit integers and `label` is `"key"` +/// or `"nonce"`. +fn derive_extra(context: &[u8], label: &[u8]) -> Vec { + let mut extra = Vec::with_capacity(16 + context.len() + label.len()); + extra.extend_from_slice(&(context.len() as u64).to_le_bytes()); + extra.extend_from_slice(context); + extra.extend_from_slice(&(label.len() as u64).to_le_bytes()); + extra.extend_from_slice(label); + extra +} + +/// Derives a 256-bit key and 192-bit nonce from the pairwise ECDH shared +/// secrets, following the `DeriveKeyAndNonce` helper in the COCKTAIL-DKG +/// specification. /// -/// - If the H6 output is at least 56 bytes: `key = output[..32]`, `nonce = output[32..56]`. -/// - Otherwise: `key = H_kdf("COCKTAIL-derive-key" || ikm)`, `nonce = H_kdf("COCKTAIL-derive-nonce" || ikm)[..24]`. +/// - If the H6 output is at least 56 bytes: a single `H6` call with +/// `extra = context`; `key = output[..32]`, `nonce = output[32..56]`. +/// - Otherwise: two domain-separated `H6` calls; +/// `key = H6(x, E, Ps, Pr, derive_extra(context, "key"))` and +/// `nonce = H6(x, E, Ps, Pr, derive_extra(context, "nonce"))[..24]`. +#[allow(clippy::too_many_arguments)] fn derive_key_and_nonce( - h6: &[u8], + shared_secret_ephem: &[u8], + shared_secret_static: &[u8], + ephemeral_pub: &[u8], + sender_pub: &[u8], + recipient_pub: &[u8], + context: &[u8], ) -> Result<([u8; 32], [u8; 24]), Error> { let mut key = [0u8; 32]; let mut nonce = [0u8; 24]; - if let (Some(k), Some(n)) = (h6.get(..32), h6.get(32..56)) { - key.copy_from_slice(k); - nonce.copy_from_slice(n); + if C::H6_OUTPUT_SIZE >= 56 { + let h6 = C::H6( + shared_secret_ephem, + shared_secret_static, + ephemeral_pub, + sender_pub, + recipient_pub, + context, + ); + key.copy_from_slice(h6.get(..32).ok_or(Error::SerializationError)?); + nonce.copy_from_slice(h6.get(32..56).ok_or(Error::SerializationError)?); } else { - let mut key_input = b"COCKTAIL-derive-key".to_vec(); - key_input.extend_from_slice(h6); - let key_hash = C::HKDF(&key_input); - key.copy_from_slice(key_hash.get(..32).ok_or(Error::InvalidSignature)?); - - let mut nonce_input = b"COCKTAIL-derive-nonce".to_vec(); - nonce_input.extend_from_slice(h6); - let nonce_hash = C::HKDF(&nonce_input); - nonce.copy_from_slice(nonce_hash.get(..24).ok_or(Error::InvalidSignature)?); + let key_h6 = C::H6( + shared_secret_ephem, + shared_secret_static, + ephemeral_pub, + sender_pub, + recipient_pub, + &derive_extra(context, b"key"), + ); + key.copy_from_slice(key_h6.get(..32).ok_or(Error::SerializationError)?); + let nonce_h6 = C::H6( + shared_secret_ephem, + shared_secret_static, + ephemeral_pub, + sender_pub, + recipient_pub, + &derive_extra(context, b"nonce"), + ); + nonce.copy_from_slice(nonce_h6.get(..24).ok_or(Error::SerializationError)?); } Ok((key, nonce)) } @@ -149,46 +267,51 @@ fn pop_message( Ok(msg) } -/// Deterministic Schnorr sign for Proof of Possession. +/// Deterministic COCKTAIL Schnorr sign, used for both the Proof of Possession +/// and the Round 3 (CertEq) transcript certification. /// -/// `k = H(sk || m)`, `R = k·B`, `c = H(R || pk || m)`, `z = k + c·sk` -fn pop_sign( +/// `k = HNONCE(encode(sk), m)`, `R = k·B`, `c = H7(R, pk, m)`, `z = k + c·sk` +/// +/// Per the specification, signing aborts if the deterministic nonce `k` is +/// zero (negligible probability); retrying with the same inputs would derive +/// the same `k`, so this is an unrecoverable signing failure for this +/// `(sk, m)` pair. +fn cocktail_sign( sk: Scalar, message: &[u8], ) -> Result, Error> { - let sk_bytes = <::Field as Field>::serialize(&sk); - let mut nonce_input = sk_bytes.as_ref().to_vec(); - nonce_input.extend_from_slice(message); - let k = C::HPOP(&nonce_input); + let sk_bytes = C::serialize_scalar(&sk); + let k = C::HNONCE(&sk_bytes, message); + if k == <::Field as Field>::zero() { + return Err(crate::FieldError::InvalidZeroScalar.into()); + } let R = ::generator() * k; let pk = ::generator() * sk; - let R_bytes = ::serialize(&R)?.as_ref().to_vec(); - let pk_bytes = ::serialize(&pk)?.as_ref().to_vec(); - let mut challenge_input = R_bytes; - challenge_input.extend_from_slice(&pk_bytes); - challenge_input.extend_from_slice(message); - let c = C::HPOP(&challenge_input); + let R_bytes = ::serialize(&R)?; + let pk_bytes = ::serialize(&pk)?; + let c = C::H7(R_bytes.as_ref(), pk_bytes.as_ref(), message); let z = k + c * sk; Ok(Signature { R, z }) } -/// Deterministic Schnorr verify for Proof of Possession. +/// Deterministic COCKTAIL Schnorr verify. /// -/// `c = H(R || pk || m)`, check `z·B == R + c·pk` -fn pop_verify( +/// `c = H7(R, pk, m)`, check `z·B == R + c·pk` +fn cocktail_verify( pk: Element, sig: &Signature, message: &[u8], ) -> Result<(), Error> { - let R_bytes = ::serialize(&sig.R)?.as_ref().to_vec(); - let pk_bytes = ::serialize(&pk)?.as_ref().to_vec(); - let mut challenge_input = R_bytes; - challenge_input.extend_from_slice(&pk_bytes); - challenge_input.extend_from_slice(message); - let c = C::HPOP(&challenge_input); + if sig.R == ::identity() { + return Err(Error::InvalidSignature); + } + + let R_bytes = ::serialize(&sig.R)?; + let pk_bytes = ::serialize(&pk)?; + let c = C::H7(R_bytes.as_ref(), pk_bytes.as_ref(), message); let lhs = ::generator() * sig.z; let rhs = sig.R + pk * c; @@ -200,6 +323,42 @@ fn pop_verify( } } +/// Serialize a COCKTAIL Schnorr signature (a Proof of Possession or a +/// transcript signature) as `R || z`, with `z` in the COCKTAIL scalar +/// encoding of the ciphersuite. +/// +/// Note that for most ciphersuites this matches the ciphersuite's default +/// signature serialization, but e.g. Ed448 uses 56-byte scalars (113-byte +/// signatures) in COCKTAIL-DKG. +pub fn serialize_signature( + sig: &Signature, +) -> Result, Error> { + let mut bytes = ::serialize(&sig.R)?.as_ref().to_vec(); + bytes.extend_from_slice(&C::serialize_scalar(&sig.z)); + Ok(bytes) +} + +/// Deserialize a COCKTAIL Schnorr signature serialized with +/// [`serialize_signature`]. +pub fn deserialize_signature( + bytes: &[u8], +) -> Result, Error> { + let elem_size = ::serialize(&::generator()) + .expect("generator serialization always succeeds") + .as_ref() + .len(); + if bytes.len() != elem_size + C::scalar_size() { + return Err(Error::MalformedSignature); + } + let R_serialization = <::Serialization>::try_from( + bytes.get(..elem_size).ok_or(Error::MalformedSignature)?, + ) + .map_err(|_| Error::MalformedSignature)?; + let R = ::deserialize(&R_serialization)?; + let z = C::deserialize_scalar(bytes.get(elem_size..).ok_or(Error::MalformedSignature)?)?; + Ok(Signature { R, z }) +} + /// Parsed representation of a COCKTAIL-DKG transcript. struct Transcript { context: Vec, @@ -213,18 +372,19 @@ struct Transcript { impl Transcript { /// Parse a canonical transcript byte string into its constituent fields. /// + /// The `ciphersuite_id` at the head of the transcript is validated + /// against [`CocktailCiphersuite::COCKTAIL_ID`] before anything else is + /// interpreted; a mismatch indicates the wrong recovery codepath and is + /// rejected. + /// /// Identifiers are reconstructed as the standard 1-based sequence `1..=n`. - /// Returns `Err(Error::InvalidSignature)` if the bytes are malformed or truncated. + /// Returns `Err(Error::DeserializationError)` if the bytes are malformed or truncated. fn deserialize(bytes: &[u8]) -> Result> { let elem_size = ::serialize(&::generator()) .expect("generator serialization always succeeds") .as_ref() .len(); - let scalar_size = - <::Field>::serialize(&<::Field>::zero()) - .as_ref() - .len(); - let sig_size = elem_size + scalar_size; + let sig_size = elem_size + C::scalar_size(); let mut pos = 0usize; @@ -236,23 +396,34 @@ impl Transcript { Some(slice) }; + let id_len = u64::from_le_bytes( + take(8) + .ok_or(Error::DeserializationError)? + .try_into() + .expect("slice is 8 bytes"), + ) as usize; + let ciphersuite_id = take(id_len).ok_or(Error::DeserializationError)?; + if ciphersuite_id != C::COCKTAIL_ID.as_bytes() { + return Err(Error::DeserializationError); + } + let ctx_len = u64::from_le_bytes( take(8) - .ok_or(Error::InvalidSignature)? + .ok_or(Error::DeserializationError)? .try_into() .expect("slice is 8 bytes"), ) as usize; - let context = take(ctx_len).ok_or(Error::InvalidSignature)?.to_vec(); + let context = take(ctx_len).ok_or(Error::DeserializationError)?.to_vec(); let n = u32::from_le_bytes( take(4) - .ok_or(Error::InvalidSignature)? + .ok_or(Error::DeserializationError)? .try_into() .expect("slice is 4 bytes"), ) as u16; let t = u32::from_le_bytes( take(4) - .ok_or(Error::InvalidSignature)? + .ok_or(Error::DeserializationError)? .try_into() .expect("slice is 4 bytes"), ) as u16; @@ -263,7 +434,8 @@ impl Transcript { let mut participants = BTreeMap::new(); for &id in &identifiers { - let pk = VerifyingKey::deserialize(take(elem_size).ok_or(Error::InvalidSignature)?)?; + let pk = + VerifyingKey::deserialize(take(elem_size).ok_or(Error::DeserializationError)?)?; participants.insert(id, pk); } @@ -271,32 +443,31 @@ impl Transcript { let mut commitments = BTreeMap::new(); for &id in &identifiers { let c = VerifiableSecretSharingCommitment::deserialize_whole( - take(commitment_size).ok_or(Error::InvalidSignature)?, + take(commitment_size).ok_or(Error::DeserializationError)?, )?; commitments.insert(id, c); } - // Parse PoPs to advance pos; they are not needed for recovery. - for _ in 0..n { - let _ = Signature::default_deserialize(take(sig_size).ok_or(Error::InvalidSignature)?)?; - } + // Skip the PoPs; they are not needed for recovery. + take(sig_size * n as usize).ok_or(Error::DeserializationError)?; let mut ephemeral_pubs = BTreeMap::new(); for &id in &identifiers { - let pk = VerifyingKey::deserialize(take(elem_size).ok_or(Error::InvalidSignature)?)?; + let pk = + VerifyingKey::deserialize(take(elem_size).ok_or(Error::DeserializationError)?)?; ephemeral_pubs.insert(id, pk.to_element()); } let ext_len = u64::from_le_bytes( take(8) - .ok_or(Error::InvalidSignature)? + .ok_or(Error::DeserializationError)? .try_into() .expect("slice is 8 bytes"), ) as usize; - take(ext_len).ok_or(Error::InvalidSignature)?; // extension (not needed for recovery) + take(ext_len).ok_or(Error::DeserializationError)?; // extension (not needed for recovery) if pos != bytes.len() { - return Err(Error::InvalidSignature); + return Err(Error::DeserializationError); } Ok(Self { @@ -312,16 +483,18 @@ impl Transcript { /// Build the canonical public transcript `T` for Round 3 certification. /// /// Structure (exact order from the specification): - /// 1. `len(context)` as little-endian u64 - /// 2. `context` - /// 3. `n` as little-endian u32 - /// 4. `t` as little-endian u32 - /// 5. `P_j` for each participant in identifier-sorted order - /// 6. `C_j` (full VSS commitment) for each participant in identifier-sorted order - /// 7. `PoP_j` for each participant in identifier-sorted order - /// 8. `E_j` for each participant in identifier-sorted order - /// 9. `len(ext)` as little-endian u64 - /// 10. `ext` + /// 1. `len(ciphersuite_id)` as little-endian u64 + /// 2. `ciphersuite_id` (UTF-8 bytes) + /// 3. `len(context)` as little-endian u64 + /// 4. `context` + /// 5. `n` as little-endian u32 + /// 6. `t` as little-endian u32 + /// 7. `P_j` for each participant in identifier-sorted order + /// 8. `C_j` (full VSS commitment) for each participant in identifier-sorted order + /// 9. `PoP_j` for each participant in identifier-sorted order + /// 10. `E_j` for each participant in identifier-sorted order + /// 11. `len(ext)` as little-endian u64 + /// 12. `ext` fn serialize( &self, pops: &BTreeMap, Signature>, @@ -329,6 +502,8 @@ impl Transcript { ) -> Result, Error> { let mut t_bytes = Vec::new(); + t_bytes.extend_from_slice(&(C::COCKTAIL_ID.len() as u64).to_le_bytes()); + t_bytes.extend_from_slice(C::COCKTAIL_ID.as_bytes()); t_bytes.extend_from_slice(&(self.context.len() as u64).to_le_bytes()); t_bytes.extend_from_slice(&self.context); t_bytes.extend_from_slice(&(self.n as u32).to_le_bytes()); @@ -343,7 +518,7 @@ impl Transcript { } for id in self.participants.keys() { let pop = pops.get(id).ok_or(Error::PackageNotFound)?; - t_bytes.extend_from_slice(&pop.default_serialize()?); + t_bytes.extend_from_slice(&serialize_signature(pop)?); } for id in self.participants.keys() { let e = self.ephemeral_pubs.get(id).ok_or(Error::PackageNotFound)?; @@ -618,6 +793,34 @@ pub mod round2 { } } +/// Validates the participant map used in the COCKTAIL-DKG setup. +/// +/// Per the specification, the identifiers must be the contiguous sequence +/// `1..=max_signers` (in the canonical, agreed-upon participant ordering) and +/// all static public keys must be distinct valid points; disagreement is a +/// setup failure. +fn validate_participants( + participants: &BTreeMap, VerifyingKey>, + max_signers: u16, +) -> Result<(), Error> { + if participants.len() != max_signers as usize { + return Err(Error::IncorrectNumberOfIdentifiers); + } + for (i, id) in participants.keys().enumerate() { + if *id != Identifier::::try_from(i as u16 + 1)? { + return Err(Error::MalformedIdentifier); + } + } + let distinct_keys: BTreeSet> = participants + .values() + .map(|pk| pk.serialize()) + .collect::>()?; + if distinct_keys.len() != participants.len() { + return Err(Error::DuplicatedVerifyingKeys); + } + Ok(()) +} + /// Performs the first part of the COCKTAIL-DKG protocol for the given participant. /// /// The participant generates: @@ -634,9 +837,13 @@ pub mod round2 { /// - `min_signers`: The threshold $t$ (minimum signers required to produce a signature). /// - `static_signing_key`: The participant's long-term static private key $d_i$. /// - `participants`: All participants' static public keys $P_j$, keyed by identifier. -/// Must include the calling participant's own key and have exactly `max_signers` entries. +/// Must include the calling participant's own key, have exactly `max_signers` entries +/// with the contiguous identifiers `1..=max_signers`, and contain no duplicate keys. /// - `context`: A session-unique context string. It is **RECOMMENDED** to construct this as -/// `H("COCKTAIL-DKG-CONTEXT" || session_id || P_1 || ... || P_n)`. +/// `H("COCKTAIL-DKG-CONTEXT" || uint64_be(len(session_id)) || session_id || +/// uint64_be(len(ciphersuite_id)) || ciphersuite_id || uint32_le(n) || P_1 || ... || P_n)`, +/// which binds the session, the ciphersuite, and the ordered participant set as +/// required by the specification. /// - `payloads`: Optional application-defined payloads to encrypt alongside each share. /// `payloads[j]` is encrypted together with the share for participant `j` as /// `plaintext = s_{i,j} || payload_{i,j}`. Missing entries are treated as empty. @@ -659,32 +866,35 @@ pub fn part1( mut rng: R, ) -> Result<(round1::SecretPackage, round1::Package), Error> { validate_num_of_signers::(min_signers, max_signers)?; + validate_participants(participants, max_signers)?; - if participants.len() != max_signers as usize { - return Err(Error::IncorrectNumberOfIdentifiers); - } if !participants.contains_key(&identifier) { return Err(Error::UnknownIdentifier); } - // Steps 1 & 3: Generate secret polynomial and VSS commitment + // Steps 1 & 3: Generate secret polynomial and VSS commitment. + // All coefficients are sampled nonzero per the specification, so that + // every commitment point is a non-identity point. let secret: SigningKey = SigningKey::new(&mut rng); - let coefficients = generate_coefficients::(min_signers as usize - 1, &mut rng); + let coefficients: Vec> = (0..min_signers as usize - 1) + .map(|_| random_nonzero::(&mut rng)) + .collect(); let (coefficients, commitment) = generate_secret_polynomial(&secret, max_signers, min_signers, coefficients)?; - // Step 3: Generate ephemeral key pair (e_i, E_i) - let ephemeral_privkey = <::Field>::random(&mut rng); + // Step 3: Generate ephemeral key pair (e_i, E_i); e_i is sampled nonzero + // so that E_i is a non-identity point. + let ephemeral_privkey = random_nonzero::(&mut rng); let ephemeral_pubkey = ::generator() * ephemeral_privkey; - // Step 4: Compute proof of possession using COCKTAIL deterministic Schnorr. - // Sign `context || C_i || E_i` using a_{i,0} as the signing key. - // The nonce is derived deterministically as k = H(a_{i,0} || message). + // Step 4: Compute proof of possession using the COCKTAIL deterministic + // Schnorr scheme. Sign `context || C_i || E_i` using a_{i,0} as the + // signing key. let a_i0 = *coefficients .first() .expect("coefficients has at least one element"); let pop_msg = pop_message::(&commitment, &ephemeral_pubkey, context)?; - let proof_of_possession = pop_sign::(a_i0, &pop_msg)?; + let proof_of_possession = cocktail_sign::(a_i0, &pop_msg)?; // Step 5: Compute and encrypt shares for each participant (including self) let static_pubkey = VerifyingKey::from(static_privkey); @@ -702,23 +912,26 @@ pub fn part1( let s_ephem = recipient_element * ephemeral_privkey; let s_static = recipient_element * d_i; - let h6 = C::H6( + let (key, nonce) = derive_key_and_nonce::( ::serialize(&s_ephem)?.as_ref(), ::serialize(&s_static)?.as_ref(), &ephemeral_pubkey_bytes, &sender_pubkey_bytes, &recipient_pubkey.serialize()?, context, - ); - let (key, nonce) = derive_key_and_nonce::(&h6)?; + )?; // Plaintext = share bytes || optional application payload - let share_bytes = <::Field>::serialize(&share); - let mut plaintext = share_bytes.as_ref().to_vec(); + let mut plaintext = C::serialize_scalar(&share); if let Some(payload) = payloads.get(recipient_id) { plaintext.extend_from_slice(payload); } let ciphertext = C::aead_encrypt(&key, &nonce, &plaintext); + if ciphertext.len() > MAX_CIPHERTEXT_SIZE { + // Recipients enforce the same bound and would reject this + // ciphertext, so fail fast on the sender side. + return Err(Error::SerializationError); + } encrypted_shares.insert(*recipient_id, ciphertext); } @@ -770,14 +983,13 @@ pub fn part1( /// A tuple of: /// - [`round2::SecretPackage`]: kept secret by the participant until [`part3`]. /// - [`round2::Package`]: the transcript signature, sent to the coordinator. -pub fn part2( +pub fn part2( secret_package: round1::SecretPackage, round1_packages: &BTreeMap, round1::Package>, static_signing_key: &SigningKey, participants: &BTreeMap, VerifyingKey>, context: &[u8], extension: &[u8], - mut rng: R, ) -> Result< ( round2::SecretPackage, @@ -789,6 +1001,7 @@ pub fn part2( if round1_packages.len() != (secret_package.max_signers - 1) as usize { return Err(Error::IncorrectNumberOfPackages); } + validate_participants(participants, secret_package.max_signers)?; let my_id = secret_package.identifier; let d_i = static_signing_key.to_scalar(); @@ -805,7 +1018,7 @@ pub fn part2( } let pop_msg = pop_message::(&package.commitment, &package.ephemeral_pub, context)?; let pop_pubkey = package.commitment.verifying_key()?; - pop_verify::( + cocktail_verify::( pop_pubkey.to_element(), &package.proof_of_possession, &pop_msg, @@ -862,58 +1075,54 @@ pub fn part2( let s_ephemeral = package.ephemeral_pub * d_i; let s_static = sender_pubkey.to_element() * d_i; - let h6 = C::H6( + let (key, nonce) = derive_key_and_nonce::( ::serialize(&s_ephemeral)?.as_ref(), ::serialize(&s_static)?.as_ref(), ::serialize(&package.ephemeral_pub)?.as_ref(), &sender_pubkey.serialize()?, &my_pub_bytes, context, - ); - let (key, nonce) = derive_key_and_nonce::(&h6)?; + )?; let ciphertext = package .encrypted_shares .get(&my_id) .ok_or(Error::PackageNotFound)?; - let plaintext = - C::aead_decrypt(&key, &nonce, ciphertext).map_err(|_| Error::DecryptionFailed { - culprit: *sender_id, - })?; - - // Parse: first scalar_len bytes are s_{j,i}; rest is optional payload - let scalar_len = - <::Field>::serialize(&<::Field>::zero()) - .as_ref() - .len(); - - if plaintext.len() < scalar_len { + // Enforce the ciphertext size bounds from the specification: at least + // the size of a zero-payload encrypted share, at most the + // resource-exhaustion cap. + let scalar_len = C::scalar_size(); + if ciphertext.len() < scalar_len + C::AEAD_TAG_SIZE + || ciphertext.len() > MAX_CIPHERTEXT_SIZE + { return Err(Error::DecryptionFailed { culprit: *sender_id, }); } - let share_bytes = plaintext.get(..scalar_len).ok_or(Error::DecryptionFailed { - culprit: *sender_id, - })?; - let share_ser = <<::Field as Field>::Serialization>::try_from( - share_bytes, - ) - .map_err(|_| Error::DecryptionFailed { - culprit: *sender_id, - })?; - let s_j_i = <::Field>::deserialize(&share_ser).map_err(|_| { - Error::DecryptionFailed { + let plaintext = + C::aead_decrypt(&key, &nonce, ciphertext).map_err(|_| Error::DecryptionFailed { culprit: *sender_id, - } + })?; + + // Parse: first scalar_len bytes are s_{j,i}; rest is optional payload. + // A plaintext that is too short or whose leading portion is not a + // canonical scalar identifies the sender as malicious. + let share_bytes = plaintext + .get(..scalar_len) + .ok_or(Error::InvalidSecretShare { + culprit: Some(*sender_id), + })?; + let s_j_i = C::deserialize_scalar(share_bytes).map_err(|_| Error::InvalidSecretShare { + culprit: Some(*sender_id), })?; // Collect optional payload (remainder after the share bytes) let payload = plaintext .get(scalar_len..) - .ok_or(Error::DecryptionFailed { - culprit: *sender_id, + .ok_or(Error::InvalidSecretShare { + culprit: Some(*sender_id), })? .to_vec(); received_payloads.insert(*sender_id, payload); @@ -949,7 +1158,8 @@ pub fn part2( // Allow the ciphersuite to derive or update the extension from received payloads let effective_extension = C::derive_extension(extension, &received_payloads); - // Build transcript and sign it with d_i + // Build transcript and sign it with d_i using the deterministic COCKTAIL + // Schnorr scheme (the same scheme used for the PoP). let transcript_data = Transcript { context: context.to_vec(), n: secret_package.max_signers, @@ -959,7 +1169,7 @@ pub fn part2( ephemeral_pubs: all_ephemeral_pubs, }; let transcript = transcript_data.serialize(&all_pops, &effective_extension)?; - let transcript_signature = static_signing_key.sign(&mut rng, &transcript); + let transcript_signature = cocktail_sign::(d_i, &transcript)?; let round2_secret = round2::SecretPackage::new( my_id, @@ -1019,18 +1229,21 @@ pub fn part3( return Err(Error::IncorrectNumberOfPackages); } - // Verify all n transcript signatures + // Verify all n transcript signatures using the COCKTAIL Schnorr scheme for (signer_id, package) in round2_packages.iter() { let signer_pubkey = secret_package .participants .get(signer_id) .ok_or(Error::UnknownIdentifier)?; - signer_pubkey - .verify(&secret_package.transcript, &package.transcript_signature) - .map_err(|_| Error::InvalidTranscriptSignature { - culprit: *signer_id, - })?; + cocktail_verify::( + signer_pubkey.to_element(), + &package.transcript_signature, + &secret_package.transcript, + ) + .map_err(|_| Error::InvalidTranscriptSignature { + culprit: *signer_id, + })?; } // Collect the success certificate @@ -1082,9 +1295,10 @@ pub fn part3( /// as returned by [`part3`]. /// - `success_certificate`: All $n$ participants' signatures on $T$, as returned by /// [`part3`]. -/// - `ciphertexts`: The encrypted shares $c_{j,i}$ from each sender $j$ to the recovering -/// participant $i$. Keys are sender identifiers. These are the per-recipient ciphertexts -/// from each sender's [`round1::Package`]. +/// - `ciphertexts`: The participant-specific encrypted share bundle: the encrypted +/// shares $c_{j,i}$ from each sender $j$ to the recovering participant $i$, keyed +/// by sender identifier, with exactly one entry per participant. These are the +/// per-recipient (unframed) ciphertexts from each sender's [`round1::Package`]. /// /// # Returns /// @@ -1097,9 +1311,12 @@ pub fn recover( success_certificate: &BTreeMap, Signature>, ciphertexts: &BTreeMap, Vec>, ) -> Result<(KeyPackage, PublicKeyPackage), Error> { + // Step 1: Extract parameters. This validates the ciphersuite identifier + // at the head of the transcript before any signature is checked, since + // the signature scheme itself is ciphersuite-dependent. let parsed = Transcript::::deserialize(transcript)?; - // Step 1: Validate the success certificate. + // Step 2: Validate the success certificate using the COCKTAIL Schnorr scheme. if success_certificate.len() != parsed.n as usize { return Err(Error::IncorrectNumberOfPackages); } @@ -1108,27 +1325,32 @@ pub fn recover( .participants .get(signer_id) .ok_or(Error::UnknownIdentifier)?; - pk.verify(transcript, sig) - .map_err(|_| Error::InvalidTranscriptSignature { + cocktail_verify::(pk.to_element(), sig, transcript).map_err(|_| { + Error::InvalidTranscriptSignature { culprit: *signer_id, - })?; + } + })?; } - // Step 3: Find our identifier by matching d_i * B against the participant list. + // Step 3: Find the unique identifier matching d_i * B in the participant + // list. Zero or more than one match aborts. let my_pub = VerifyingKey::from(static_signing_key); - let my_id = parsed - .participants - .iter() - .find(|(_, pk)| **pk == my_pub) - .map(|(id, _)| *id) - .ok_or(Error::UnknownIdentifier)?; + let mut matches = parsed.participants.iter().filter(|(_, pk)| **pk == my_pub); + let my_id = *matches.next().ok_or(Error::UnknownIdentifier)?.0; + if matches.next().is_some() { + return Err(Error::DuplicatedVerifyingKeys); + } let my_pub_bytes = my_pub.serialize()?; let d_i = static_signing_key.to_scalar(); - let scalar_len = <::Field>::serialize(&<::Field>::zero()) - .as_ref() - .len(); + let scalar_len = C::scalar_size(); + + // The encrypted share bundle must contain exactly one ciphertext per + // participant, with no extra entries. + if ciphertexts.len() != parsed.n as usize { + return Err(Error::IncorrectNumberOfPackages); + } // Steps 4–7: For each sender j, derive decryption key, decrypt, verify, and accumulate. let mut signing_share_scalar = <::Field>::zero(); @@ -1140,35 +1362,39 @@ pub fn recover( .ok_or(Error::PackageNotFound)?; let ciphertext = ciphertexts.get(&sender_id).ok_or(Error::PackageNotFound)?; + // Enforce the ciphertext size bounds from the specification. + if ciphertext.len() < scalar_len + C::AEAD_TAG_SIZE + || ciphertext.len() > MAX_CIPHERTEXT_SIZE + { + return Err(Error::DecryptionFailed { culprit: sender_id }); + } + // S^(e)_{j,i} = d_i * E_j and S^(d)_{j,i} = d_i * P_j let s_ephem = *ephemeral_pub * d_i; let s_static = sender_pub.to_element() * d_i; - let h6 = C::H6( + let (key, nonce) = derive_key_and_nonce::( ::serialize(&s_ephem)?.as_ref(), ::serialize(&s_static)?.as_ref(), ::serialize(ephemeral_pub)?.as_ref(), &sender_pub.serialize()?, &my_pub_bytes, &parsed.context, - ); - let (key, nonce) = derive_key_and_nonce::(&h6)?; + )?; let plaintext = C::aead_decrypt(&key, &nonce, ciphertext) .map_err(|_| Error::DecryptionFailed { culprit: sender_id })?; - if plaintext.len() < scalar_len { - return Err(Error::DecryptionFailed { culprit: sender_id }); - } - - let share_ser = <<::Field as Field>::Serialization>::try_from( - plaintext - .get(..scalar_len) - .ok_or(Error::DecryptionFailed { culprit: sender_id })?, - ) - .map_err(|_| Error::DecryptionFailed { culprit: sender_id })?; - let s_j_i = <::Field>::deserialize(&share_ser) - .map_err(|_| Error::DecryptionFailed { culprit: sender_id })?; + // A plaintext that is too short or whose leading portion is not a + // canonical scalar aborts the recovery. + let share_bytes = plaintext + .get(..scalar_len) + .ok_or(Error::InvalidSecretShare { + culprit: Some(sender_id), + })?; + let s_j_i = C::deserialize_scalar(share_bytes).map_err(|_| Error::InvalidSecretShare { + culprit: Some(sender_id), + })?; // Verify the decrypted share against the sender's VSS commitment. let commitment = parsed diff --git a/frost-core/src/tests/cocktail_dkg.rs b/frost-core/src/tests/cocktail_dkg.rs index ca74d404c..a9b88676d 100644 --- a/frost-core/src/tests/cocktail_dkg.rs +++ b/frost-core/src/tests/cocktail_dkg.rs @@ -97,7 +97,6 @@ where &participants, context, extension, - &mut rng, ) .unwrap(); round2_secret_packages.insert(id, r2_secret); @@ -226,31 +225,29 @@ impl CryptoRng for CounterDrng<'_> {} /// Test COCKTAIL-DKG protocol against JSON test vectors. /// /// - `json`: JSON test vector content (use `include_str!` in the caller). -/// - `hash_fn`: Hash/XOF function used as a counter-based RNG for test vectors. -/// E.g. `|data| Sha256::digest(data).to_vec()`. -/// - `compare_encrypted_shares`: Whether to compare encrypted shares against the vectors. -/// Set `false` when the ciphersuite AEAD differs from the reference -/// (e.g. P-256/secp256k1 spec requires XAES-256-GCM, not XChaCha20Poly1305). -/// - `check_recovery`: Whether to test the `recovery` section of the vector. -/// Set `false` when the encrypted share format is incompatible with the reference. -pub fn check_cocktail_dkg_test_vectors( - json: &str, - hash_fn: H, - compare_encrypted_shares: bool, - check_recovery: bool, -) where +/// - `hash_fn`: The ciphersuite's hash function `H`, also used as a +/// counter-based RNG for test vectors. E.g. `|data| Sha256::digest(data).to_vec()`. +pub fn check_cocktail_dkg_test_vectors(json: &str, hash_fn: H) +where C: CocktailCiphersuite, H: Fn(&[u8]) -> Vec, { let file: serde_json::Value = serde_json::from_str(json.trim()).unwrap(); let seed = hex::decode(file["seed"].as_str().unwrap()).unwrap(); let cs_id = file["ciphersuite"].as_str().unwrap().as_bytes().to_vec(); + assert_eq!( + cs_id, + C::COCKTAIL_ID.as_bytes(), + "test vector ciphersuite mismatch" + ); let hash_fn_ref: &dyn Fn(&[u8]) -> Vec = &hash_fn; for vector in file["vectors"].as_array().unwrap().iter() { let n = vector["n"].as_u64().unwrap() as u32; let t = vector["t"].as_u64().unwrap() as u32; let context = hex::decode(vector["context"].as_str().unwrap()).unwrap(); + let session_tag = hex::decode(vector["session_tag"].as_str().unwrap()).unwrap(); + let extension = hex::decode(vector["extension"].as_str().unwrap()).unwrap(); let static_secret_key_bytes: Vec> = vector["config"]["static_secret_keys"] .as_array() @@ -259,6 +256,25 @@ pub fn check_cocktail_dkg_test_vectors( .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) .collect(); + let static_public_key_bytes: Vec> = vector["config"]["static_public_keys"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + + // Per-participant broadcast payloads (present in the payload-extension + // vector variant only). + let payloads: Vec> = vector + .get("payloads") + .and_then(|p| p.as_array()) + .map(|arr| { + arr.iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect() + }) + .unwrap_or_default(); + let expected_ephemeral_pubs: Vec> = vector["round1"] .as_array() .unwrap() @@ -288,7 +304,11 @@ pub fn check_cocktail_dkg_test_vectors( let mut static_keys: BTreeMap, SigningKey> = BTreeMap::new(); let mut participants: BTreeMap, VerifyingKey> = BTreeMap::new(); - for (id, key_bytes) in identifiers.iter().zip(static_secret_key_bytes.iter()) { + for (idx, (id, key_bytes)) in identifiers + .iter() + .zip(static_secret_key_bytes.iter()) + .enumerate() + { // Try direct deserialization first; if it fails (wrong length), append one zero // byte and retry. This handles ed448 where JSON stores 56-byte raw scalars but // the ciphersuite uses 57-byte RFC 8032 format (trailing 0x00). @@ -298,11 +318,42 @@ pub fn check_cocktail_dkg_test_vectors( SigningKey::::deserialize(&padded).unwrap() }); let vk = VerifyingKey::from(&sk); + assert_eq!( + vk.serialize().unwrap(), + static_public_key_bytes[idx], + "participant {} static public key mismatch", + idx + 1 + ); static_keys.insert(*id, sk); participants.insert(*id, vk); } - let extension = b""; + // Check that the vector's context follows the recommended construction: + // H("COCKTAIL-DKG-CONTEXT" || uint64_be(len(session_tag)) || session_tag + // || uint64_be(len(ciphersuite_id)) || ciphersuite_id || uint32_le(n) + // || P_1 || ... || P_n) + let mut context_preimage = b"COCKTAIL-DKG-CONTEXT".to_vec(); + context_preimage.extend_from_slice(&(session_tag.len() as u64).to_be_bytes()); + context_preimage.extend_from_slice(&session_tag); + context_preimage.extend_from_slice(&(cs_id.len() as u64).to_be_bytes()); + context_preimage.extend_from_slice(&cs_id); + context_preimage.extend_from_slice(&n.to_le_bytes()); + for pk in participants.values() { + context_preimage.extend_from_slice(&pk.serialize().unwrap()); + } + assert_eq!(hash_fn(&context_preimage), context, "context mismatch"); + + // Check that the vector's extension follows the recommended payload + // commitment construction when payloads are present: + // H(uint64_le(n) || uint64_le(len(payload_1)) || payload_1 || ...) + if !payloads.is_empty() { + let mut ext_preimage = (n as u64).to_le_bytes().to_vec(); + for payload in &payloads { + ext_preimage.extend_from_slice(&(payload.len() as u64).to_le_bytes()); + ext_preimage.extend_from_slice(payload); + } + assert_eq!(hash_fn(&ext_preimage), extension, "extension mismatch"); + } // Round 1 let mut round1_secret_packages: BTreeMap< @@ -316,6 +367,15 @@ pub fn check_cocktail_dkg_test_vectors( for (idx, (&id, sk)) in static_keys.iter().enumerate() { let mut rng = CounterDrng::new(&seed, &cs_id, t, n, (idx + 1) as u32, hash_fn_ref); + // Each participant broadcasts the same payload to every recipient. + let sender_payloads: BTreeMap, Vec> = if payloads.is_empty() { + BTreeMap::new() + } else { + identifiers + .iter() + .map(|&receiver_id| (receiver_id, payloads[idx].clone())) + .collect() + }; let (secret_pkg, pkg) = frost::keys::cocktail_dkg::part1( id, n as u16, @@ -323,7 +383,7 @@ pub fn check_cocktail_dkg_test_vectors( sk, &participants, &context, - &BTreeMap::new(), + &sender_payloads, &mut rng, ) .unwrap(); @@ -352,23 +412,29 @@ pub fn check_cocktail_dkg_test_vectors( idx + 1 ); - if compare_encrypted_shares { - let expected_enc_shares: Vec> = round1_tv["encrypted_shares"] - .as_array() - .unwrap() - .iter() - .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) - .collect(); - for (j, &receiver_id) in identifiers.iter().enumerate() { - let actual = &pkg.encrypted_shares()[&receiver_id]; - assert_eq!( - actual.as_slice(), - expected_enc_shares[j].as_slice(), - "participant {} encrypted share for receiver {} mismatch", - idx + 1, - j + 1 - ); - } + let expected_pop = hex::decode(round1_tv["pop"].as_str().unwrap()).unwrap(); + assert_eq!( + frost::keys::cocktail_dkg::serialize_signature(pkg.proof_of_possession()).unwrap(), + expected_pop, + "participant {} PoP mismatch", + idx + 1 + ); + + let expected_enc_shares: Vec> = round1_tv["encrypted_shares"] + .as_array() + .unwrap() + .iter() + .map(|v| hex::decode(v.as_str().unwrap()).unwrap()) + .collect(); + for (j, &receiver_id) in identifiers.iter().enumerate() { + let actual = &pkg.encrypted_shares()[&receiver_id]; + assert_eq!( + actual.as_slice(), + expected_enc_shares[j].as_slice(), + "participant {} encrypted share for receiver {} mismatch", + idx + 1, + j + 1 + ); } round1_secret_packages.insert(id, secret_pkg); @@ -395,20 +461,26 @@ pub fn check_cocktail_dkg_test_vectors( for (&id, sk) in static_keys.iter() { let secret_pkg = round1_secret_packages.remove(&id).unwrap(); let round1_packages = &received_round1_packages[&id]; - // Use participant 0 as a sentinel RNG for part2 (transcript Schnorr signing). - // This randomness is not verified against test vectors. - let mut rng2 = CounterDrng::new(&seed, &cs_id, t, n, 0, hash_fn_ref); - let (r2_secret, r2_pkg, _received_payloads) = frost::keys::cocktail_dkg::part2( + let (r2_secret, r2_pkg, received_payloads) = frost::keys::cocktail_dkg::part2( secret_pkg, round1_packages, sk, &participants, &context, - extension, - &mut rng2, + &extension, ) .unwrap(); + // Each decrypted payload must round-trip to the sender's payload. + for (sender_id, payload) in &received_payloads { + let sender_idx = identifiers.iter().position(|i| i == sender_id).unwrap(); + let expected: &[u8] = payloads + .get(sender_idx) + .map(|p| p.as_slice()) + .unwrap_or(&[]); + assert_eq!(payload.as_slice(), expected, "payload mismatch"); + } + round2_secret_packages.insert(id, r2_secret); for &receiver_id in participants.keys() { received_round2_packages @@ -487,7 +559,28 @@ pub fn check_cocktail_dkg_test_vectors( let (key_pkg, pubkey_pkg, transcript, cert) = frost::keys::cocktail_dkg::part3(r2_secret, round2_packages).unwrap(); - if idx == 0 && check_recovery { + if idx == 0 { + // The canonical transcript and the success certificate are + // identical for all participants; compare them against the + // vector once. + assert_eq!( + hash_fn(&transcript), + hex::decode(vector["round3"]["transcript_hash"].as_str().unwrap()).unwrap(), + "transcript hash mismatch" + ); + for sig_tv in vector["round3"]["signatures"].as_array().unwrap() { + let signer_id = + Identifier::::try_from(sig_tv["signer_id"].as_u64().unwrap() as u16) + .unwrap(); + let expected_sig = hex::decode(sig_tv["signature"].as_str().unwrap()).unwrap(); + assert_eq!( + frost::keys::cocktail_dkg::serialize_signature(&cert[&signer_id]).unwrap(), + expected_sig, + "round 3 signature mismatch for signer {:?}", + sig_tv["signer_id"] + ); + } + transcript_for_recovery = transcript; cert_for_recovery = cert; } @@ -503,14 +596,9 @@ pub fn check_cocktail_dkg_test_vectors( idx + 1 ); - // Compare only the prefix when JSON bytes are fewer than the serialized length. - // Handles ed448 (56-byte JSON raw scalar vs 57-byte RFC 8032 format). - let serialized_share = key_pkg.signing_share().serialize(); - let expected = expected_tweaked_key_pkgs[idx].signing_share().serialize(); - let cmp_len = expected.len().min(serialized_share.len()); assert_eq!( - &serialized_share[..cmp_len], - &expected[..cmp_len], + key_pkg.signing_share().serialize(), + expected_tweaked_key_pkgs[idx].signing_share().serialize(), "participant {} secret share mismatch", idx + 1 ); @@ -536,7 +624,7 @@ pub fn check_cocktail_dkg_test_vectors( } // Recovery - if check_recovery { + { if let Some(recovery) = vector.get("recovery") { let recovery_id = recovery["participant_id"].as_u64().unwrap() as u16; let recovery_identifier = Identifier::::try_from(recovery_id).unwrap(); @@ -558,8 +646,13 @@ pub fn check_cocktail_dkg_test_vectors( // Apply post_dkg to the expected recovered key package. let expected_tweaked_recovery_kp = { - let recovered_ss = - SigningShare::::deserialize(&expected_recovered_share).unwrap(); + let recovered_ss = SigningShare::::deserialize(&expected_recovered_share) + .unwrap_or_else(|_| { + // ed448: 56-byte JSON scalar vs 57-byte RFC 8032 format. + let mut padded = expected_recovered_share.clone(); + padded.push(0); + SigningShare::::deserialize(&padded).unwrap() + }); let recovered_vs = VerifyingShare::::deserialize(&expected_recovered_vshare).unwrap(); let kp = KeyPackage::::new( diff --git a/frost-ed25519/src/keys/cocktail_dkg.rs b/frost-ed25519/src/keys/cocktail_dkg.rs index c1f412f81..011de66e7 100644 --- a/frost-ed25519/src/keys/cocktail_dkg.rs +++ b/frost-ed25519/src/keys/cocktail_dkg.rs @@ -63,14 +63,13 @@ pub fn part1( /// Performs Round 2 of the COCKTAIL-DKG protocol. #[allow(clippy::type_complexity)] -pub fn part2( +pub fn part2( secret_package: round1::SecretPackage, round1_packages: &BTreeMap, static_signing_key: &SigningKey, participants: &BTreeMap, context: &[u8], extension: &[u8], - rng: RNG, ) -> Result< ( round2::SecretPackage, @@ -86,7 +85,6 @@ pub fn part2( participants, context, extension, - rng, ) } diff --git a/frost-ed25519/src/lib.rs b/frost-ed25519/src/lib.rs index 59ad9281d..3727236af 100644 --- a/frost-ed25519/src/lib.rs +++ b/frost-ed25519/src/lib.rs @@ -230,8 +230,21 @@ impl RandomizedCiphersuite for Ed25519Sha512 { #[cfg(feature = "cocktail-dkg")] #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed25519Sha512 { - fn HPOP(data: &[u8]) -> Scalar { - hash_to_scalar(&[data]) + const COCKTAIL_ID: &'static str = "COCKTAIL(Ed25519, SHA-512)"; + + const H6_OUTPUT_SIZE: usize = 64; + + fn HNONCE(secret_key: &[u8], message: &[u8]) -> Scalar { + hash_to_scalar(&[b"COCKTAIL-DKG-Ed25519-SHA512-NONCE", secret_key, message]) + } + + fn H7(commitment: &[u8], public_key: &[u8], message: &[u8]) -> Scalar { + hash_to_scalar(&[ + b"COCKTAIL-DKG-Ed25519-SHA512-H7", + commitment, + public_key, + message, + ]) } fn H6( @@ -240,7 +253,7 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed25519Sha512 { ephemeral_pub: &[u8], sender_pub: &[u8], recipient_pub: &[u8], - context: &[u8], + extra: &[u8], ) -> alloc::vec::Vec { hash_to_array(&[ b"COCKTAIL-DKG-Ed25519-SHA512-H6", @@ -249,16 +262,12 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed25519Sha512 { ephemeral_pub, sender_pub, recipient_pub, - &(context.len() as u64).to_le_bytes(), - context, + &(extra.len() as u64).to_le_bytes(), + extra, ]) .to_vec() } - fn HKDF(data: &[u8]) -> alloc::vec::Vec { - hash_to_array(&[data]).to_vec() - } - fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { use chacha20poly1305::{aead::Aead, KeyInit, XChaCha20Poly1305, XNonce}; let cipher = XChaCha20Poly1305::new(key.into()); diff --git a/frost-ed25519/tests/cocktail_dkg_tests.rs b/frost-ed25519/tests/cocktail_dkg_tests.rs index 2cfd69ff0..ce3afeacb 100644 --- a/frost-ed25519/tests/cocktail_dkg_tests.rs +++ b/frost-ed25519/tests/cocktail_dkg_tests.rs @@ -18,7 +18,5 @@ fn check_cocktail_dkg_test_vectors() { frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( json_str, |data| Sha512::digest(data).to_vec(), - true, // encrypted shares match (XChaCha20Poly1305) - true, // recovery is tested ); } diff --git a/frost-ed25519/tests/helpers/cocktail-dkg-ed25519-sha512.json b/frost-ed25519/tests/helpers/cocktail-dkg-ed25519-sha512.json index cbe88095f..61e440f54 100644 --- a/frost-ed25519/tests/helpers/cocktail-dkg-ed25519-sha512.json +++ b/frost-ed25519/tests/helpers/cocktail-dkg-ed25519-sha512.json @@ -13,7 +13,9 @@ { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d", + "extension": "", "config": { "static_secret_keys": [ "976f8781ac89edb9b14f00b42915f36add6fb01f795ad7048e88a7246ab35304", @@ -34,11 +36,19 @@ "2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941", "590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1" ], - "pop": "a7abfa107e2ac05ad11a71fd494f3f2baa177253ef9c7594a37da917f2a84333bd7a61ae269c5624b8eb49d10e28a78f07718728f59b2bc626f9d07e653faf09", + "pop": "9cd0251b5bde0300655f9cf928f5ebe9c9d7fab6ea180301d7191aa24b4a3931e68ab475fd840958bd6464a5d3e31f0b5b4a0026448d8f1ab1e9b81fcf349209", + "pop_intermediate": { + "message": "af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e43450b395f6c13e8985609f2b2e1acbcff8a70cc8e89f43aae1b3e8a7548052c590caf4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", + "nonce": "ed649b9ea7cbc1f3838ec80a4de651a5d605719cf4b54e414c510ed726e58804", + "nonce_commitment": "9cd0251b5bde0300655f9cf928f5ebe9c9d7fab6ea180301d7191aa24b4a3931", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d48379cd0251b5bde0300655f9cf928f5ebe9c9d7fab6ea180301d7191aa24b4a39312217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", + "challenge": "b7972e8e7f8e662135d4af20bd4542924e0d7e27da97b664c3f2666f4bb28e03" + }, "encrypted_shares": [ - "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", - "156d49dae0cb8917f47e70e75d7eaaf3251d160eefc294f9b5eba5f918ac453a05ee5351918384d62a43e888659e880a", - "a90c87b8b6cf42cc308e488f50662f0988d4229d68eb00e70916079bccb8df591ac2732b174e86a57bd292fbf485cb94" + "de650ddfa42b58510091a9feb061a609b3023d67fc5d5cd1d9b84941cc9dfb188db36ff74907c8f8e4d64c35aec05f15", + "fe1052b163b019d8f4a1e71cc9a91deec7acaf4c8ee8b35c1c3d2208c54b44945cc45c92c5681b2417a861a28b1bbc56", + "01708e47a02e25adf1509b84f5a0c73b17c8b3d0f66df03549809bd2ee4365726ea7c0a7859fbfe47fa925b058737210" ] }, { @@ -48,11 +58,19 @@ "3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d", "5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd" ], - "pop": "2b8520cf63b7e857d02c47367dd20c54c27dc2d96a6dcff3918bd4b8616bb3d01ed4c7d2e3189955c3fb4f18988f56e3053fb2a62d3d0cac49a860a22da90700", + "pop": "de65c8d2ea984c6cbbc61f92c7bcef4cc41470434f78dbdfa84944038deca2a579d566c1795ac684d8acdb2eee09e4e726c3be58c036f28cb55ecfc36f73d303", + "pop_intermediate": { + "message": "af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e434519805566c5d90d29faaca62b1c384989c675c95e995a229ae2dd6cd257b83703af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", + "nonce": "d03a61f5d564e84147e4363e6cd2ae180f5ce66de4d2adca37972cf74d0e6a0a", + "nonce_commitment": "de65c8d2ea984c6cbbc61f92c7bcef4cc41470434f78dbdfa84944038deca2a5", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837de65c8d2ea984c6cbbc61f92c7bcef4cc41470434f78dbdfa84944038deca2a53a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925daf4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", + "challenge": "f7086090747de8e6213de89053fbd0e0290f87c48bf4acd5c5eb2e0d2e508e05" + }, "encrypted_shares": [ - "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", - "cfc83a3f386eeec4789ba05cfe565a3240b6c1801e80a4aef8771a23c389b526f7b2b601020d576e2f72c39a4b2c26c0", - "fb6cec9a16d2f536457c96afedea704a5228c42365b34377c04f7c9e953a45d09ce4a40f5ea62b63fbfcae9a452b56de" + "68cb488dcc55ac5df84fe6959852ec4e1a32172138d08dcab3e5b0a8f5955a919cd3f042935c3e97c312ec889da19345", + "6da258ea490162af834a41a82696d11fe1254484ea4b89ae81dc63c2736832a4c341dd3aa5f0d0a27a7cedd9951a6fc9", + "4bb9cc548cc7f1d7a7221222f8956cb715fab906e07bcfb70a3cc5de507e1c9ddb3711adcac2cc4a2c9bcb263997d9e8" ] }, { @@ -62,11 +80,19 @@ "74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8", "ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d" ], - "pop": "af79a5ff31a6536b2d0b333452c13ff0089192aafc9b10323e017923ef8e45c9d5a4cea1a5f14c86eccdf8b3c0ea25c9d7b9ba6b071c0cee0a5374f95285d003", + "pop": "6496bfc769ef92890a107135104ecb618c03b7da9bf30be35c5e3ee82572785a3534d5a43e17fa99e77bd24481c5cd3e6565cccd80057629b1222be6ffe3b409", + "pop_intermediate": { + "message": "af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e4345e4345ad5914e0ae149ba0cff41731995552dfd36558ad01f3271d26dfd87ac0caf4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", + "nonce": "f0e1677e83fa5352d0f3763ad6a3a216128ddde95eecd38e80c17575d6c03401", + "nonce_commitment": "6496bfc769ef92890a107135104ecb618c03b7da9bf30be35c5e3ee82572785a", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d48376496bfc769ef92890a107135104ecb618c03b7da9bf30be35c5e3ee82572785a74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", + "challenge": "85ae1efbf3506d149131a1ad31ddb6b953c281d09686c3e4568e7f9ef4cb1603" + }, "encrypted_shares": [ - "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d", - "b151386d9e5316c52cc67897c65231c753a0036d974909403220f5168c55aaea336acf361b273cb81d06a5117c144ef8", - "a9fd00d94fd411354947c995c054c9d842aec6ca351450256e28198ea3d7b7fb6a939626e0a99c6f456bae3aa243fcb3" + "47380ff5c166d4c264ad866554b4c8d7bd29bfa0d5842b665be0acc56d7811722ce3d737198994bb78a924245b7804dd", + "a0c50af91cd335b5c67c3ee5acdfac90777505f09c351e8edc7535399d98b37609fb4c62117044b536d7405871b3acbc", + "67ce8c366f0fd7a755d820ae5f5b9925c140123116e83235eceebdc7c33895f3376e383b698d833e8f88aa1b2a1d073e" ] } ], @@ -88,19 +114,19 @@ } ], "round3": { - "transcript_hash": "c271c24bac1aef846815a8c43fc6618bb6d4367edece0c0937be417c3948ed69671629784f0950e43d63b0c2af66a5259ec2fd0b27e70b1d0cf49a127fca1970", + "transcript_hash": "d99fb2fd0fe11ac40c202b7f511ef7d1a79923aa51007cc83389244bb9bdc9cc58e9ddb5769b2e74226e02448ba1d2aa2a002a5a6bec230ebc6207d0cd95f35b", "signatures": [ { "signer_id": 1, - "signature": "cd0c7695346ad9b5be3a51652c12dfa4aeab9e52ae15994a4d44b06683fbc390677f619be7eb8abffdc6172f8acf4aca9ef062a80a0e7663c2c19ab5e2848d01" + "signature": "ba0db2d0c12aacba2fbf0c5edd6616bdb665d1b8a91ddf96ded851cb09a9edeb179714e45d757967c2bc5f1cac300598d2317ec4eac175c8b58a7f116e67450a" }, { "signer_id": 2, - "signature": "e9caf69275d884494d4730d5dbd20fab0bb242edf0771d2e0b9ea9cbc74a0e1b2a5c389dfc19d69c62cf622a073346e0111664e4e65e4d0b695a3e3968a72503" + "signature": "c2487dd4c9f141c4527b72e8590d10bc0012214dcbd4f64b275b8d866015d03ea7d619c830a73e2d38bd25bc00dfe9d0a554147ea29e77317445dc5a72f53f08" }, { "signer_id": 3, - "signature": "3a50cb19fc6bf1bf82d58fda0e02ebd535c549f1dae01f579efe010250876a6410dda05c773ec8dd1d414a6a9bb8be0a4693b08c59a32c20d60e51cb59698405" + "signature": "9c018d77dbbd3e9f21c4154af9c18f5c1d67a3e29d0bc4560d9c4492edce85ea8efe47bd7bba4d3e6f25d759bbf4c5e75f163f41b5374349149184704089210b" } ] }, @@ -108,9 +134,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", - "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", - "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d" + "de650ddfa42b58510091a9feb061a609b3023d67fc5d5cd1d9b84941cc9dfb188db36ff74907c8f8e4d64c35aec05f15", + "68cb488dcc55ac5df84fe6959852ec4e1a32172138d08dcab3e5b0a8f5955a919cd3f042935c3e97c312ec889da19345", + "47380ff5c166d4c264ad866554b4c8d7bd29bfa0d5842b665be0acc56d7811722ce3d737198994bb78a924245b7804dd" ], "recovered_secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", "recovered_verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" @@ -119,7 +145,9 @@ { "n": 5, "t": 3, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "context": "3b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd97", + "extension": "", "config": { "static_secret_keys": [ "72553463294cecf2b05391d0b4697c7e5dd42e6fd8e3e779ab8dbcd762a1c701", @@ -145,13 +173,21 @@ "2382e6025db8a26cbe45cd54c1561b949acdd93717949de37434a9bd52459d6a", "2c6e92a470150a647f29b1b83d619ae68c713dcf5764a8325afb9fe8a383a67e" ], - "pop": "72c99e9124e2009927d71aef5a080fba3df02f16c4cc47e87ee426d8adc5debb1f7a1d81073ef62d7407c3edde7e9502c08a68e9f55e455fd10d369d0df2220a", + "pop": "c6d999eb9e41af6fdb261dff3f4a42d256eb517e3278feb2281b97ffc269f00626138c9ab9a19078adfb3a6e1c05c1cd548bffa5994d66e4564b84befc06c907", + "pop_intermediate": { + "message": "3b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd97577de5fe8c5a012f61bd7f1a87fe731088cfb21344c0a7162a369691d8f8c1aa2382e6025db8a26cbe45cd54c1561b949acdd93717949de37434a9bd52459d6a2c6e92a470150a647f29b1b83d619ae68c713dcf5764a8325afb9fe8a383a67e373fc3c1b4fdab7bdc428bbab77a9a7650d72f8a05eebf9ec7a43cd1460fadff", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e434525f61708790f1d630cd04bf292f8d3acd5ee9803203eb4072128289f3b6a6a033b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd97577de5fe8c5a012f61bd7f1a87fe731088cfb21344c0a7162a369691d8f8c1aa2382e6025db8a26cbe45cd54c1561b949acdd93717949de37434a9bd52459d6a2c6e92a470150a647f29b1b83d619ae68c713dcf5764a8325afb9fe8a383a67e373fc3c1b4fdab7bdc428bbab77a9a7650d72f8a05eebf9ec7a43cd1460fadff", + "nonce": "0bbf21f051cdb01c657f16ba21202df3efc1f26df88635068906a5b72527550b", + "nonce_commitment": "c6d999eb9e41af6fdb261dff3f4a42d256eb517e3278feb2281b97ffc269f006", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837c6d999eb9e41af6fdb261dff3f4a42d256eb517e3278feb2281b97ffc269f006577de5fe8c5a012f61bd7f1a87fe731088cfb21344c0a7162a369691d8f8c1aa3b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd97577de5fe8c5a012f61bd7f1a87fe731088cfb21344c0a7162a369691d8f8c1aa2382e6025db8a26cbe45cd54c1561b949acdd93717949de37434a9bd52459d6a2c6e92a470150a647f29b1b83d619ae68c713dcf5764a8325afb9fe8a383a67e373fc3c1b4fdab7bdc428bbab77a9a7650d72f8a05eebf9ec7a43cd1460fadff", + "challenge": "d292f5346cb494a9cfe006ddbade7ac0f5c3d34c3756291e3a8da931c53bec05" + }, "encrypted_shares": [ - "01aed684aa8999740e7d7254184dedd6b19186813f5f761e70286bd27a26711835b47dcc28190fe97192dd1e0b669f66", - "af0d6aa7b34ed6989ea0dc5b9a1d7a60eed10dc3e098959858f5ebe5090232bd8413dc6a00d803b03dc843f224e9e22f", - "236a44cd2cee60a6cb4c77271e6c0a2fa001c3f5384d9a286b3a504b16d97cdd22cdf77b782ca94560b95d97b185ac48", - "582bdae6519fe23ff88a2b6a6507b8e14a7665096da7a2dfc4f5fffeacd821508f1b382a7e6afe4aa4bdfc5119c0c449", - "8a2f022e2591d20032b6a1415f38e96e5c142ba99a36422dcecccfc74031e1264695a90701aa650c51f13997263b630f" + "63325a85e657ff60a94422863212be5a5ff9e7a40d3bba82708392d11f1a7c597384873d549eac08df7e41cecaeeb254", + "a10ac6d6390ed44099636cd41ab724b810f86db93e2dc89e3541cfa522f8fce81894c92adefe0025928d0600ba16f0ef", + "50c2837c9a8bed96d7259899f95b05d19d94f6cb1dddc4e2993cfd31dd25795b28bd0f3f7f248ec139712336979991d0", + "8217543f0e1fa3302163e58fcdca517b4dd5317cecc7e38d57093539ab8f9d9275a6163f19da4cfccc771072bbf42505", + "094cb2f81f1b914512a4cd5ca744e4fd5fced1b358a3a24662aef30ad21fdac8afeb7c7d971219862571144f90bbdd6a" ] }, { @@ -162,13 +198,21 @@ "537d5757b4f71162233db01a81bf1408adec803b52d1d67aa60db7feba998a74", "e1fe1de4bd969bceba1566396240485c78343ff765a7c5b5428d24e8b862317d" ], - "pop": "a387c502db19055b300516fcf7e8a4bd1419bd6c41c8b38f2b787758713752dfb9a1d01cf0e32a0472133285ec4ff2caeb95d9794ae022f9bcd1108eabba0808", + "pop": "a0ed1ccb1b86de740700208c82d39721a8fc93d5df05a0009b48b53f97d6c5b0a307a4bae569bf1eb0b0cc6a16c42a621c83bc252a574552dc25412c65c06a08", + "pop_intermediate": { + "message": "3b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd97933356e4b8a99c7c543b3b89148f14c5587ab33ede20e7672050d4d89ec1da51537d5757b4f71162233db01a81bf1408adec803b52d1d67aa60db7feba998a74e1fe1de4bd969bceba1566396240485c78343ff765a7c5b5428d24e8b862317d84ecfedb2426e10a370d2ed4e4c1ee8b42b1592fe491c9eed76000c241d234a0", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e4345ddce39bcceec051f596132faac17668462f11411af4ff29e9ad601d092b4fc0d3b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd97933356e4b8a99c7c543b3b89148f14c5587ab33ede20e7672050d4d89ec1da51537d5757b4f71162233db01a81bf1408adec803b52d1d67aa60db7feba998a74e1fe1de4bd969bceba1566396240485c78343ff765a7c5b5428d24e8b862317d84ecfedb2426e10a370d2ed4e4c1ee8b42b1592fe491c9eed76000c241d234a0", + "nonce": "a1152c1b73321c1a5bcf60fa76f5c3a7f36a85a8b218e060da5ffac2f3a4f00c", + "nonce_commitment": "a0ed1ccb1b86de740700208c82d39721a8fc93d5df05a0009b48b53f97d6c5b0", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837a0ed1ccb1b86de740700208c82d39721a8fc93d5df05a0009b48b53f97d6c5b0933356e4b8a99c7c543b3b89148f14c5587ab33ede20e7672050d4d89ec1da513b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd97933356e4b8a99c7c543b3b89148f14c5587ab33ede20e7672050d4d89ec1da51537d5757b4f71162233db01a81bf1408adec803b52d1d67aa60db7feba998a74e1fe1de4bd969bceba1566396240485c78343ff765a7c5b5428d24e8b862317d84ecfedb2426e10a370d2ed4e4c1ee8b42b1592fe491c9eed76000c241d234a0", + "challenge": "7d60da9732626defa55765573565d66ee17455ff1620f7233f6de29d0772a70f" + }, "encrypted_shares": [ - "cbfe45298edc61ca5e76734488d0bfccb000eaa380c829996f9a38f273e34ccf499e356e62216cef197a384012399b12", - "47bbbee166be8a2cde7eb33f256e75acc5d70a10c0bf26157c6b58cce78aa8c69d0d1535c6b36959cee980c5b5fb419f", - "03c3d530eda54867119383100b4e5b6cd885b786c9d9b960e904363d832a03be6ec87ca774117d32972a8f66952e441c", - "133ebeef97d79fd7457659e4aa6d7dbfc3d06a4bbc454058e72b736440ab3c033c1195e8deaa394ca86df2004664df32", - "97c33474da0e562c2d9909263099242fe6bc71845fb225e0dd68068fcd07fd6e280f1f622ce842c43e35491be9322d46" + "4d03cf94807d2fd6c90f6fdaacd46eb306b7baf506bc91fc4bff41031a0aa5a5b835fe0c26f47c7a42171e89893e57ed", + "869bc157567e17c80e2de706107aa3420d6c1fb5d1985ab255c28aabe6d90442e4525b22ea41bc70615793000bcf209d", + "c885b2e9fba80cce6a99895ec029701dc1ce1e4b0e48715a6f34d7f9608ab5a2d21f27f9c24082488d0f486660ec9268", + "40bc8d65fd77733eb36087418d9ac62943888e5bb6be11db13b8db3b6fb5d558c5eb22a75e1f9cae78fe561fef18d409", + "35544797280f0878cd64934439ecdd751df9d8727825e211430f0d77cfeb2b4cb8b80eb4c14edd1651e875bb8a7dc81d" ] }, { @@ -179,13 +223,21 @@ "3c876fcc8317b8b27e80b5f7cd997e5dc217b910d808f507a32657d2a6b8d68c", "1efdc51b210892679174616fca77eb58fe62713ad641d4e9a85349eec7bbe831" ], - "pop": "e101f1de26c378b9a4f6fd430b31607d6219fcc86a3468385a6d9e9717345dc99690b4e5cf0c9ce7e2e377a1aecdba1b3f085e02a8e20c8c2d599395a6a96f0a", + "pop": "e8cfe70d325452e50bc04b92eb23a733425ae50b2f6f1686ffc84ead5777364783cb364b70fc64fc7ddd56f179a10381fa7ba17a47fb87d3e192a936fdd02d04", + "pop_intermediate": { + "message": "3b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd9774f1fc2c8d94fa6f972fe04643daa4652d465bb75799163a26f7cb51fe7fad5e3c876fcc8317b8b27e80b5f7cd997e5dc217b910d808f507a32657d2a6b8d68c1efdc51b210892679174616fca77eb58fe62713ad641d4e9a85349eec7bbe831c1be307582a17bbd4100286e5c24e1a149a7696893fad49cc839c0bf832a6d55", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e43452ab9e8b44eb127cd459926022686db9e16015ab3a787ba63d2514745f986af083b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd9774f1fc2c8d94fa6f972fe04643daa4652d465bb75799163a26f7cb51fe7fad5e3c876fcc8317b8b27e80b5f7cd997e5dc217b910d808f507a32657d2a6b8d68c1efdc51b210892679174616fca77eb58fe62713ad641d4e9a85349eec7bbe831c1be307582a17bbd4100286e5c24e1a149a7696893fad49cc839c0bf832a6d55", + "nonce": "24d316c04e942904f52d20d467a1df971136062957bc82a1550d6e392ea77c0d", + "nonce_commitment": "e8cfe70d325452e50bc04b92eb23a733425ae50b2f6f1686ffc84ead57773647", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837e8cfe70d325452e50bc04b92eb23a733425ae50b2f6f1686ffc84ead5777364774f1fc2c8d94fa6f972fe04643daa4652d465bb75799163a26f7cb51fe7fad5e3b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd9774f1fc2c8d94fa6f972fe04643daa4652d465bb75799163a26f7cb51fe7fad5e3c876fcc8317b8b27e80b5f7cd997e5dc217b910d808f507a32657d2a6b8d68c1efdc51b210892679174616fca77eb58fe62713ad641d4e9a85349eec7bbe831c1be307582a17bbd4100286e5c24e1a149a7696893fad49cc839c0bf832a6d55", + "challenge": "8999a05b89855ddc0be68dde8249c5dff6fde5937670e31da5c18e26d895610b" + }, "encrypted_shares": [ - "9ea8eb1b0de6a4e7330733ea0414235f9717555e61a6380ca5c300b25d23e79510797c7304c909ac5cecdb2bad6f1bc9", - "70b90c494e0e6ead27d9acaa887ab6bff7fa633c9a43ebcf464c42bce87e9dded089e82007f8a0391c75b5c3af46e2d0", - "5a1b8962ebeb08bf7f9e31a29d9e46bb83c9905e9cd9f0d0bcd63c55901544464c3d318ed3ff09989c642b659446651f", - "10e7f9ca7c5477bc4c3f07e8d4c876b455ee94274d6b76548c317cc0a0da669f5596a3cb3ab4dab4027ab39599b30748", - "84f125daaf112b126acbff68bd540281c4e2d8286945d1198d7cb57cd81bf254e77cc2a0e1f7c840feeb43dd7c46f66b" + "a548567e2a34c0cd6e7212645aa8dbd40c29f9c4cc55392097091fadb209e100f4f2a7d8814600d978d6e8f0d1d66b5a", + "02d9212c0d9df818f31b23c9305015bd5a95e3a55380927c9457a80f57eb424cb81a18fadda3974dbc91e53a3af677dc", + "857e268cbf367c170601b483a1bf854e4bc90248b612bc45091b11c6631d218a1d9ac3f2dc3a83e326e2bbcf9c16e067", + "faa6b487645213b13baa3a797e6ac9c1c5781055bb813f92ee869bdae9a5b5218533ccf706cf9896e95b5559c57ffed6", + "823d78bfcc9fbdbe0722bcde4c552d998e33feb998225565fdb59e4423740d31bfff52b6517476224d137dd6354744b4" ] }, { @@ -196,13 +248,21 @@ "667b813e8e6f6fa81c06ac57bb4dabc728d3de0a187dc84b13cc45eb783e293b", "8fb3fa58292561c8ca16959881c6a21ab5caf27165f00529743d3697a8661f4f" ], - "pop": "06835ce53daffde198f7483334a00edc813f409225849fdf4551440e9dabe658802040130c523f6b99a98ec7d62fa9b3e4df99abb8b09aee456e17711541ba04", + "pop": "c5bfe76132d3d713e81584ce7ba8f527aaf95535683b97b5267a7bae6d5fb0d80444e0a4c09575f9ccd04613885f61aaacb95e55b5326ef47fe0adc08de75006", + "pop_intermediate": { + "message": "3b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd979f8b65634ac24eefaec60164cb17f690211404bd4fd8fbf834dcbcd14a44aa69667b813e8e6f6fa81c06ac57bb4dabc728d3de0a187dc84b13cc45eb783e293b8fb3fa58292561c8ca16959881c6a21ab5caf27165f00529743d3697a8661f4f3d45212365322ba65c8801cfcd86d396b07fe481b4ad0fcd98c7c373c0209539", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e4345309f7b6e3a6becb6281c73978c4e4d9598d96ea7bf75cfe13922aebaa6e7ca073b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd979f8b65634ac24eefaec60164cb17f690211404bd4fd8fbf834dcbcd14a44aa69667b813e8e6f6fa81c06ac57bb4dabc728d3de0a187dc84b13cc45eb783e293b8fb3fa58292561c8ca16959881c6a21ab5caf27165f00529743d3697a8661f4f3d45212365322ba65c8801cfcd86d396b07fe481b4ad0fcd98c7c373c0209539", + "nonce": "2e205d5363b59d27a51293013bb2cc0966807c2e19b2b561cef12ff7b42ca200", + "nonce_commitment": "c5bfe76132d3d713e81584ce7ba8f527aaf95535683b97b5267a7bae6d5fb0d8", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837c5bfe76132d3d713e81584ce7ba8f527aaf95535683b97b5267a7bae6d5fb0d89f8b65634ac24eefaec60164cb17f690211404bd4fd8fbf834dcbcd14a44aa693b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd979f8b65634ac24eefaec60164cb17f690211404bd4fd8fbf834dcbcd14a44aa69667b813e8e6f6fa81c06ac57bb4dabc728d3de0a187dc84b13cc45eb783e293b8fb3fa58292561c8ca16959881c6a21ab5caf27165f00529743d3697a8661f4f3d45212365322ba65c8801cfcd86d396b07fe481b4ad0fcd98c7c373c0209539", + "challenge": "e06522c242af6893f38a4efef7293d65f3273e5a6b824436faa48e35dc7a3b03" + }, "encrypted_shares": [ - "d1eb62ffbd5b3f355ddbf3b9c26e0f9548aa71d8603b8f0d4fbbdf554c80062f20b64c44223b762be4ddad5e5788f01e", - "794a12a09418c2b1bcbd0c5c11ff4821a644c7b19c7a18f1ebfe37280f40d4a07da623159d1c134bd3f6e7028eb1114c", - "2a1ff8f57f072fb0257b6afa1bc2204b0206080ee208d683f3bf055dbae11f75096eff3b0eefcdb7d31dec1364e7d27c", - "0660afde6d35b617b66c939c5f986d7b52ddca1b3f267d04e8eca4bad7b601abe813de2b096a05e3f4e0bbf96a14a7fe", - "8e2bdf782b5bc1c526823ee0514081efe17074321657cb49d9bb8fb9a29b34004b6efc56a9773bcf7675c63d2e173565" + "8b83e78eb10b193a2572f7b3d1a6476152e79a6bcf1f2dce47cdd093d12d225f0917564be017a09cf6114c10a9d697cf", + "649d642325c74974fda68ec4821199d051aea965bbec501c86784539adbd5700e1db464e8b123969a238efb976b2c494", + "a8a33c3a128969cded99e039827a2031b6c1e3a81ea95955bdcefa3e6c4bcfa01702a782827fd3d5ae825e775c189791", + "5f12e7972a3d65d3a3399dde061ddfdd11ab1d1b58ea2099f914497c8a24f5e530892e3aba864fc6061e1b56a9274615", + "cf165d9c8b72831c31985f572bdc93bc505fff79c760f603296c709b8f94c059dd2ca2fa1f82b10734591947cf347ac6" ] }, { @@ -213,13 +273,21 @@ "562f19f3d037fdbfbd247596b1a0a85d40f5c70eb99a55ab0e87d2fc0a88f611", "fdf684c6c5fd9cc91230a913f99301517a0ce38678851ec6648553562670c98b" ], - "pop": "081d44620a1f93f778cc5627f4a46a5683dd6989b7bc4f4f13d99ef11a7c239dcaf32a43cf6ff6ae1ae717d18370c42f0a7ee60e4bc5e8f134eefece8d441f03", + "pop": "f1bf9d9d197a4932b9eb208273cac4284f69a2e9f90f8e17c18465f2c0e83cf5da9230fc0885bd1e640a6653e6b93d51afd18a551a7812b77aec867cf9bffd05", + "pop_intermediate": { + "message": "3b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd977253eeb9941c4912709f44934cc6ba3cb3785081567220984d8ba64b6b4cf1ed562f19f3d037fdbfbd247596b1a0a85d40f5c70eb99a55ab0e87d2fc0a88f611fdf684c6c5fd9cc91230a913f99301517a0ce38678851ec6648553562670c98bb19fdf15c737fc2ebb55749b6e54f95114b673a933a640104f2b92e375e5bf12", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e43456c335eac9935e4c11a04eb81e2db31da383538bf0977b85f5001c9288fd8d4043b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd977253eeb9941c4912709f44934cc6ba3cb3785081567220984d8ba64b6b4cf1ed562f19f3d037fdbfbd247596b1a0a85d40f5c70eb99a55ab0e87d2fc0a88f611fdf684c6c5fd9cc91230a913f99301517a0ce38678851ec6648553562670c98bb19fdf15c737fc2ebb55749b6e54f95114b673a933a640104f2b92e375e5bf12", + "nonce": "292d974f05490c1988fc1f29a3a36d32f3f18698149752a0462aa141b44deb03", + "nonce_commitment": "f1bf9d9d197a4932b9eb208273cac4284f69a2e9f90f8e17c18465f2c0e83cf5", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837f1bf9d9d197a4932b9eb208273cac4284f69a2e9f90f8e17c18465f2c0e83cf57253eeb9941c4912709f44934cc6ba3cb3785081567220984d8ba64b6b4cf1ed3b3ceada575025f8be3e129e79a683b4633aec616fdaf401c75b1fd5d7c636448bf3e24d11ed7ea07521f765d46d436b5f81361aae7ac0b0b8cb2719df11fd977253eeb9941c4912709f44934cc6ba3cb3785081567220984d8ba64b6b4cf1ed562f19f3d037fdbfbd247596b1a0a85d40f5c70eb99a55ab0e87d2fc0a88f611fdf684c6c5fd9cc91230a913f99301517a0ce38678851ec6648553562670c98bb19fdf15c737fc2ebb55749b6e54f95114b673a933a640104f2b92e375e5bf12", + "challenge": "becae7219a73fce2a39df50e80d499e730692c9b11e8591b2ef1bf1ce6bf9b05" + }, "encrypted_shares": [ - "b417ba3c430ff39c282283cfc659fb61017c2a1c0d323a4c90f9cafe860b4665620ff6538ac053b51fff8c186b41675c", - "fe0fa3400de6a1952a4a327884da1d90fe14a22d484edcfdbfe4667a52f24500942c38fb34c6278ffba0829aa48a69f4", - "d0f9ea2acbbc7f8926e351bb97544c2e150a83c296a1c8a2de47c9a5ac031c639edd24954f36c3a685e8f326e8d2b2de", - "f21bff66817dbf12ae2282814c72da218fed21530da481d7b05fbc7f129f224974bd2a51f87a26f76e9b3767551fc2f2", - "6e2fbf6605df0a1b86cde2903b4833ccba42950af21445886588f232dce84fae8b6d0abb3c916af4ba40902f556ee950" + "638e9174035d4b120fd5259928d6897ac5cc9d42268b37ebd1cfb0c8c56c782657d3f1154b6c7c6b206309daa2ef3cfc", + "a2008c6469777912734eecb4821962384bca68069be0aa262a35efb606e22f4670178e4a07da0b798fdb7ccc4ccb9748", + "fb6cf420ec1629ae6e988cf7e23b765293422063686d1c919cfdc642d24e3abab9c106969a809a07db5bc707cdbbbb8a", + "137f1ff897db9e5a34a2a65eaacaef5dc4babef8efa4a5972349ce7b97263887dd366687bfd4db4d6c8b45411ef97e76", + "f68105f44e2001fb1ed6c34d1f719a05fd4c9f65c1951b5b06b76f34d1d8d662375c58ec6801590d15ccf4911a9cc63b" ] } ], @@ -251,48 +319,38 @@ } ], "round3": { - "transcript_hash": "f8309b2d74d773466af7263f6341e05993171e7a05a405fed9d4bf890199a881805641a89396da1f868f14b4e73b5952ff854b8a5c5c7c45061c77e5ac77f2cf", + "transcript_hash": "1a3e0f67b82f9edcdac02e11301cfc7bd1843e558f75d6521c7b2271ba00203b30e6cf7cb2b5ab8de5928bef6d2eaa8c4c02d0580a3ab9be534b7b618fb1b062", "signatures": [ { "signer_id": 1, - "signature": "214f038e882da7449067e2e2b5dfe6f24c110536f58057659a101b2ebde16f913b9718153031420becfcf4ebdfd45f886e8dcaaae237b93a86245ff2955f5f01" + "signature": "c8c55b2ddd84ad0f784aa4db53c20477d1147d957e6c04b235a7cba49d938009af2d7a9865d77c10acf735a35077e13779256ad9671e01af76ec0ce6b3cdde08" }, { "signer_id": 2, - "signature": "e366fcce096b78bf1437a4f7d4442247b509efc2e0a6867b885c9712fa62a0ce31c3edd490e8e50ad22459847dbf1e3560a3f916be7d1cbf923df52cd02a770d" + "signature": "119b400e9fab875874e9db91eb3a8e0e0f5f88f980728d52b2a5f3264f23318820035e8f7ee0b61e08293b928da0f93a4f352b0baecfe36b870cf63a0f795e0e" }, { "signer_id": 3, - "signature": "815a76a53c5ac6308e03b1e9f7d3d97c21651ef99dad1e322c1f5d26964677cdad9035f681cbe0f9a949ffbdff4103d285311aa2907cd189e3ab98431adb6a08" + "signature": "e3172ac2fd909c0fe60afd36f94d8a41360ddd8d2b6ccc9eefe740fe4b4e8d39b431475503032fda78fefc68823b0e11c7fc6004d49187defab0f65cabb39806" }, { "signer_id": 4, - "signature": "2b6214d85588efb7d9298d37fe53321be610918451ebb192004c2756fa988a0c50dcaa5df273d1254a4c3b146484bb5911728b622849806fb1a694b36a84ba01" + "signature": "459110cc18fcc3dff5c5e92292b0ebe7b9f4aaa21094c55fc9c89c9c6159f3079476e24f9a74cdcec83acf55cd3fdd69b3626ca45d3512ad368e3bbd7fc26402" }, { "signer_id": 5, - "signature": "3df81aad1752f4090e02bf59b7b81510d89f794ebe0db04bfc4004c79a5b53170081434be72a9ac82358044a01974132d54dac9894b02eb1e893b1d203401d01" + "signature": "5bc87095b4ae0519d2fcc926fd4852a740d288935fc4258e20a9e10b3776ecaca49997955a2c36627d7103bda9490b4653aa70fb41a02ddde1cf9af0831e5305" } ] }, - "group_public_key": "334d3d0229f6c32ae6b77e9bfd13bb72f565a1fead8aab11e06ecc55f0c4d4a4", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "01aed684aa8999740e7d7254184dedd6b19186813f5f761e70286bd27a26711835b47dcc28190fe97192dd1e0b669f66", - "cbfe45298edc61ca5e76734488d0bfccb000eaa380c829996f9a38f273e34ccf499e356e62216cef197a384012399b12", - "9ea8eb1b0de6a4e7330733ea0414235f9717555e61a6380ca5c300b25d23e79510797c7304c909ac5cecdb2bad6f1bc9", - "d1eb62ffbd5b3f355ddbf3b9c26e0f9548aa71d8603b8f0d4fbbdf554c80062f20b64c44223b762be4ddad5e5788f01e", - "b417ba3c430ff39c282283cfc659fb61017c2a1c0d323a4c90f9cafe860b4665620ff6538ac053b51fff8c186b41675c" - ], - "recovered_secret_share": "089205ddc8931a7778eb588b836756bc5f10a650bb9c3c6f23646c6303426f05", - "recovered_verification_share": "279636be807557633c8acd8161d452e8a9542f280463a643703184ef0bc88c22" - } + "group_public_key": "334d3d0229f6c32ae6b77e9bfd13bb72f565a1fead8aab11e06ecc55f0c4d4a4" }, { "n": 14, "t": 7, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "context": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c", + "extension": "", "config": { "static_secret_keys": [ "b6090806188eb1cd2222c9f180561e3b8bac09fb672f5b0de705170929048b09", @@ -340,22 +398,30 @@ "db642261749e71ea50706061eb8725ccba05f69774ccf05af9d7d0182c7cd422", "8fdd74119499cb19238afddb4aa363ab3c74f08b34db6fd91d63d6ed43f57923" ], - "pop": "dc1f5f176a123d6cea565e0004d147475c3367606bf7520644ecef2e6d6e777eeb08fd2fbaf714db4221da096101f1bcc0302a76224e64ae624c038d09bda604", + "pop": "0969322ead6dbddf222cc1d3b090555b62112481a04989c0821d4796f095dc18256d8985bab3fb6e153cea17bde792530434fc64e27bda370cd96f6d3001320c", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678ce20adc22c979794477c704e291cc11e49021a64da54a1854be0ff5c15ceef143621fedbd9621488b50191f9724c55c329d37554c78012c0809a8d29129e23a17211343dd4a42fd5c5a6c352cec172bdf2fb192d57edb21d53599463277076fe9f3cf65e57e82de4a8ea1ec40636fc322323f6f091c941a380a57ace257078671d201f2d656f4a6d4d721c9137faa6a24df8d832255bbee8672cfb7bfacd57af6db642261749e71ea50706061eb8725ccba05f69774ccf05af9d7d0182c7cd4228fdd74119499cb19238afddb4aa363ab3c74f08b34db6fd91d63d6ed43f57923ec9a1e742c0f07e099216acdaf01777759f32a0d6a8cc091dcd223e36565c03e", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e4345f46bced2b14cf44a5780dbaf919eeb8e9cbeed67dcf29a9cdf9660003d50580ecd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678ce20adc22c979794477c704e291cc11e49021a64da54a1854be0ff5c15ceef143621fedbd9621488b50191f9724c55c329d37554c78012c0809a8d29129e23a17211343dd4a42fd5c5a6c352cec172bdf2fb192d57edb21d53599463277076fe9f3cf65e57e82de4a8ea1ec40636fc322323f6f091c941a380a57ace257078671d201f2d656f4a6d4d721c9137faa6a24df8d832255bbee8672cfb7bfacd57af6db642261749e71ea50706061eb8725ccba05f69774ccf05af9d7d0182c7cd4228fdd74119499cb19238afddb4aa363ab3c74f08b34db6fd91d63d6ed43f57923ec9a1e742c0f07e099216acdaf01777759f32a0d6a8cc091dcd223e36565c03e", + "nonce": "b668b5ca00e3a07f80e569a8ee7c436c236650b78099f799d4e277ad4e3c4b00", + "nonce_commitment": "0969322ead6dbddf222cc1d3b090555b62112481a04989c0821d4796f095dc18", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d48370969322ead6dbddf222cc1d3b090555b62112481a04989c0821d4796f095dc18e20adc22c979794477c704e291cc11e49021a64da54a1854be0ff5c15ceef143cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678ce20adc22c979794477c704e291cc11e49021a64da54a1854be0ff5c15ceef143621fedbd9621488b50191f9724c55c329d37554c78012c0809a8d29129e23a17211343dd4a42fd5c5a6c352cec172bdf2fb192d57edb21d53599463277076fe9f3cf65e57e82de4a8ea1ec40636fc322323f6f091c941a380a57ace257078671d201f2d656f4a6d4d721c9137faa6a24df8d832255bbee8672cfb7bfacd57af6db642261749e71ea50706061eb8725ccba05f69774ccf05af9d7d0182c7cd4228fdd74119499cb19238afddb4aa363ab3c74f08b34db6fd91d63d6ed43f57923ec9a1e742c0f07e099216acdaf01777759f32a0d6a8cc091dcd223e36565c03e", + "challenge": "85b82108ecb9755a7403ffc65f3f2acb316e5593f3172e6cb5200f57924bd302" + }, "encrypted_shares": [ - "31aa6638fb9526fe734101a432cfd8a02db6967bfc9eeea5f18281c5f11761e57acab35201c7fb0857bb94e897af538a", - "7356840010a4c43728092fdf5364c33259393c6835ae45a52925be40f36c5f6f7751a39cff0a068ce53aa93531dcc1b5", - "cc41aa2f8efb9238d4a682e5af425dbd7e0bca54fd5a3b5e60799b9b19c366deb90060f6982eb358372dd55d87db187a", - "109c33c243ee8222fe819c43d65d664d8ca22d1d69a884b3fea5518bf43271e892e10f329a21019127730399f52a1cfa", - "52d4351cbe12035eeefc9dfb589328b343359341309f6d98db3a4dd9acf6c396e68af6fc84522ac812f71b4b4c92f36f", - "29fb40fc1bb9b1981ef88b1b0ed702dc37ce63f5c6f5f52c4b54574af4eaa34dffdf38eaf34f25cc407d39e0c8ca4bb1", - "b1b6d7dd6c331454f4a501e67e20331574103d7ad1e04e78adce5543284e773036aa131e9559f852a51c5ef2531532b8", - "2ef7a2120a33974af5810051803dfa2a86fddf6fb4379200c6a45f485a64c779652e4dda542437dd3f1f3acbf5ca24e2", - "03f65c6d4e6552d79fcaa9e9e240e80313f014cdca2a7e666bfb9f570fa00dbec31ee9833a610ca5c0cb8ceda857f3d5", - "7b17e86a0dc86294ce3762865aa8df72b31238bb73ea4fd19a7e512317f20f4d208be0b9ba21aed1d63c707f4d8dbdd0", - "ccaf2c722b03261e7e1616c39f927d466be399e77a3f675a4bb767238484ef5afcac60252a19cc80feb328acbab0bff9", - "35af8225a7ea93a9bb25c16079ec0c2b51e15a39d6ba7560ce5d970cf0ba627afb954c1611bc3bf1dae6c9adaf21f057", - "f3cf55dcd2df1a602dc5222f17d833afb5dfceac631f89250bee4b4f5ca8f2c5f0bb2e93eeb8e331c48ee34e414e5573", - "0041011ea00d529a90db805e798b599cb00c11270f8aee9e0f3ce43a5b382884ad85522b54e16aac19672268d9454ded" + "3262376151c36ec2159e7f4f3dde9621011b5832a2e86e6399e9fe207065a5981c999418fd8fc8f5179b5615828aab59", + "3a6861de92e26d200e0cb867922459af14e4b6c09002dd0571b49e0e6910e20caa27ad4528d42a96bbd9e42d3bc74406", + "a031b88e5d6e2fd59b2cba91ab788f6b18ab34473673c64a3a52e5e33d18f32b09990759771cfc378ee4c980f7ae2e70", + "21343e9c55eab6f4b8c837af850d02b64cabe0886036393fa60dee7a5db4da920abad4148cf88d91d097d2a081d2119f", + "e0ae042c2291782861ae1efde6d8c19be27f40f47f8ed5d9a18fb5c477b4bfc984c3f44df9452ded11f71db5a0930674", + "11676253a44856e4ea527de7f83d24ec6c8d682407954c29e9e5cfbc05d017c833cb8efa5a28cf31dadca26bec52ae61", + "588465a53e7de10211012cf8259ddb120bad9d2d273f3b725dfcf57f1f95212c47d2c17e729f92a359cd3fd6a106fc5b", + "45efbabd19bdcf69396e769a227af8b937673a296658d074cd3608f44559f4a478a7438004a84e31e67cabb088d68e12", + "2d2be9b14ce5e444aa11d0ae99fd9bf75d42e161e7966704d76f34a0536af3297216c9e468650c8d9c29196ad753d42a", + "7293d909e0db5675322593fc07005efe4c4ba5f471b4d63c3c5db9bf4458d9d7c09cda2eaacc8816bfdfaabaf279fc5d", + "581d605f232ea619fe356fd0f5563efec4193072f6bf1130be5a0f2347c9d050f781ffea4c44f109e54fd7016f0c1f0d", + "b2bbac2059881737e0fab125e9da2ab8cab270436a15699a5f7565a26a491468d3448d2d5da49405d366e7af47150a89", + "86c8da70e467ce82aef97a7374ff7c7fcb8d00e12be85d7b612704e0c17b12e1bd485abba7f2416b78d23c4c94f68c04", + "c70ed1e4521899163402ba0fa57139289aedef11d39871d44dde57be9be894fa277aa983629ef893688d8fcc871a291d" ] }, { @@ -370,22 +436,30 @@ "497de82dfd1630944bd60c4f637bc516c483ebcf9c416a42518d6b98915fa145", "fed87acccc7656341afa36fbdbe446b18e0f9e4875752c4ddfc0f8f243c0b543" ], - "pop": "f43acabe4644f6f7839370da7dc1494e3b9ddd3578489d027962d20191ec1b5207a7118326f22675068289d196b7f65d330bbb9b93bda0b89abb7a4c74748d00", + "pop": "a3ece66329c7c35e49dad468ebd6801667c101772bcb24ae1e5c669b044c1dbf6a66a17bfc4e43bd9a8af6f4b367a592d920139ad2143013b871c22ba47eef00", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c420d43331f1db58c418449278cb62b569313006250a819cadedbce1146d4ada01dc96af65e28f1d86bc523f567b74363912130a5b62476af4fb805034a3c0c2073b658e2c160414f874df5e649b36a6ccc98520727e8dc763f93e1cb292f685d1b4a4a12e80e2a89289dfa96160e1230b67e95dfdc71b9c4fb122e578a4d577c8151a2571a5e789e1c4ee1e36e506f0401a5d66a32769a69e867e06574867392497de82dfd1630944bd60c4f637bc516c483ebcf9c416a42518d6b98915fa145fed87acccc7656341afa36fbdbe446b18e0f9e4875752c4ddfc0f8f243c0b543a6395b51c8510a76c878d0b4a690e9eab335e156e7d473b9cda1ecd4ca2e48bd", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e4345615a6d94856fba5a10aa535c885c28f31f82aade6030b7870c57d2c388615502cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c420d43331f1db58c418449278cb62b569313006250a819cadedbce1146d4ada01dc96af65e28f1d86bc523f567b74363912130a5b62476af4fb805034a3c0c2073b658e2c160414f874df5e649b36a6ccc98520727e8dc763f93e1cb292f685d1b4a4a12e80e2a89289dfa96160e1230b67e95dfdc71b9c4fb122e578a4d577c8151a2571a5e789e1c4ee1e36e506f0401a5d66a32769a69e867e06574867392497de82dfd1630944bd60c4f637bc516c483ebcf9c416a42518d6b98915fa145fed87acccc7656341afa36fbdbe446b18e0f9e4875752c4ddfc0f8f243c0b543a6395b51c8510a76c878d0b4a690e9eab335e156e7d473b9cda1ecd4ca2e48bd", + "nonce": "797887742e3d2353d994bd019736a1eddd44b29671cff5028d935995e935df0b", + "nonce_commitment": "a3ece66329c7c35e49dad468ebd6801667c101772bcb24ae1e5c669b044c1dbf", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837a3ece66329c7c35e49dad468ebd6801667c101772bcb24ae1e5c669b044c1dbf420d43331f1db58c418449278cb62b569313006250a819cadedbce1146d4ada0cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c420d43331f1db58c418449278cb62b569313006250a819cadedbce1146d4ada01dc96af65e28f1d86bc523f567b74363912130a5b62476af4fb805034a3c0c2073b658e2c160414f874df5e649b36a6ccc98520727e8dc763f93e1cb292f685d1b4a4a12e80e2a89289dfa96160e1230b67e95dfdc71b9c4fb122e578a4d577c8151a2571a5e789e1c4ee1e36e506f0401a5d66a32769a69e867e06574867392497de82dfd1630944bd60c4f637bc516c483ebcf9c416a42518d6b98915fa145fed87acccc7656341afa36fbdbe446b18e0f9e4875752c4ddfc0f8f243c0b543a6395b51c8510a76c878d0b4a690e9eab335e156e7d473b9cda1ecd4ca2e48bd", + "challenge": "aaac9fd70de12c3d5f57934728ab0120ebe4a3be4278b26e0e12fbde247dd504" + }, "encrypted_shares": [ - "25bf5df8189cbdb175cab533b438c3a8302ba442dea605771e235684fb5183e03812b08d994020ae7ae7134ffe080d42", - "6ec361aaf8b40466011be9ad47d2e6c1a9b921bbf625c394c57e3232ab2b74ec8e7a88449182cc882ecbb16fdb5c7023", - "1441b39ec7319b11a13d3857286d49b52f6702c6f649581d89941a5ecf31cb2d3d1c035a429cb2e9a11fef6546f2baa7", - "037878da1f50706d8901344b159c3b954212bcc1a11544f16b8c2468c969b4889a40bdcaeb196261ddb35a124d4ffed4", - "1c44211cd36c79835d29623928dd5aafdbcb6c6b2269eec14946bfb7a6cd5f26ad81680406e6fa30ae804847030732bf", - "bb24e9d432d50f30a74dd8381d5d9e413b8a90cf1536f9a8bdc484ab1827510602908d7a06fd80eea04e47168e3f8bc6", - "4d26e20998aa4f2aecf999fec9acab27f1934659c15ea9beba58de2d4f5e1b270c00d94a56e21ec2ffb7973ab728a66e", - "8168cdb30107d41539f754097769e26e75fecabacdee9568dd418ca5cfde4beb25ed4d6189140dafdb153b7facd4bb09", - "9a574a27010c0d3a2438308089924d58addb1ad377ee76b7cb983001ede64a474c184716e75fd75b3c0494986894c2a6", - "4693d7d45809b5fbeaad7ae0c58fe7c71ef10e6ff98537692c30fbf20a09c075de568c55314e71bfe7777d7e49779277", - "631d8fce0972b0c9e2a433d721b9287c436f0fb1c22a9f1f80616a72d7b9d787cc8743cfb7197de206f8bf63db4ee6f6", - "485ecf567df4e2453b8639179baad965f34cdf19bf3ed2d93c857bcdb60fbf33ee933dd3513b9c2087f4959a1fe9a285", - "9977d24502c5a3da327d661f87fd7aad43fdd5e541b35e0242695caac84a6b377312801c6b0d2fecef4e2b43c27160f9", - "bd6003c1d34065d16e4f8a6c87b028bb5fd9599d27b954a10c0bf88850c3144769a0dc8a6248889d912e93e4ba1fc558" + "a03b8bf0334849a064ec863e3953d51c3b48db8be9c440d6198cd6fa0ba8e1a6e4dc2ef4b240e2bf2117feac9f35b454", + "f2f72ef8971c379c5a410fcd3c97407af9531161f387ecf70fc79461b189c792dddfc5770381666554ef3bcff7bed075", + "fbae6a6fd63b8e8163a6f0d9ff1d0d19b3bee7e5189f63d4bfcd5c48071fc34195f07e06da85317782d0606b00428e43", + "bb5fda6b4ed5b9ce18b0f37161da89bfb7847372f377c8bc9bdaaa3221e39a5e313bad844038abd914b80147c6405273", + "88fdf19d5a0ac4fcaefa5afa41213ef290b2c4fa3668eee2ee326464d6734c4ad5df5b977cb8b80bcb8709b12603a383", + "36847415426ed7dba697f8db665b39706dcf409cfdaf09a68a11411de59244acd93dc3937f71e3478d0cbe3853bdab8f", + "d3238c7ff84e26567015c7aab17b6225ae5c09b03839f67175f865b4887f07aa786f782ef5fc4285e0da6cd8faa033e1", + "6ebf6f30b1df505a688c86d4a5921c72e7374e737a656ccd778b5c7560e2bd1b7ae9a4742dd9ca7a03e8d7b505d7b06f", + "9686655fc60449f254ffdf290ea5b7fc383921f4858019276cdc6ebb869060bb656c569c1079c276d895f2a11fe4b87e", + "4bd7b3629e87143bf02626c83eacb89c805c3ee7dcc4d63fe2d74f9de63edf15875a87841d1f4dc481c8ebdadf70fdc0", + "dd09dd2bc9b02b4f03d8f744f49edbe5c189611811fe71510424e1c01e1cf4f0b306c9486c5014e1329ab49dc0c67b12", + "02edfb1f02340a031132b53497fdf495f9c3472dde782edfc6fee2e0b775f2c160b8edb2a7d1d0371059896c05fa3af4", + "550079b687b8d5085bc888686fd3ae8c073bc2ba6205db1b3b3c102cabbd295eb19c460cc9166a31eadd787f4618fb24", + "f4a50ef475da0f3878da40fa29098269dfd610003edaf6040e8c7be6f0c60d27df346bce09028d6e83218414a9b24a07" ] }, { @@ -400,22 +474,30 @@ "119c3c153964acd48ff60007678be201640bff1cd54ed2e7a267fedc440d4b52", "144993764ac91e823e43b9a30cadfff865c0a39e8fae1cb42cc4fc1b612f12bc" ], - "pop": "4cdb3ac17bc52773871d8a814f466b52f2020b1ceecbe16db3ff5d2fd983562b33f432dbd64f9e501a094b8b23ef25d9ff5223416c2373a48859909b96759a0f", + "pop": "ea00d31e4b997e854fd01acdbeeaea40c6f8da3e56ffee0855401b002ced2bd23f857178a0b2d7f998303f77f89c2ef08653a7b259ab1003918458e44a634e0a", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678cc0717eac65ae7a3091646c0a58576dab11faebc83e1957da5d2bc3791e7f644a0eae88f151a123f51d40f268ff3047cac6114df59b73780b1d1116e1e3bbf6e7d902a286c5e28ca7e86791c834170b039563ef992b3f2d0251ea22d90cad479d4a3b85f1bf7dd3e75f3830007d7315e00126f14276fcf0e388a29527b69bb8cef2d62135516a481569b887e466f7435b27d604814eaa88dd1cbf1c368a5c9214119c3c153964acd48ff60007678be201640bff1cd54ed2e7a267fedc440d4b52144993764ac91e823e43b9a30cadfff865c0a39e8fae1cb42cc4fc1b612f12bc92633fa0eb676210937de058ff08e7286d5d50e10313d9efb7c66b90f3912940", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e43450fa929ed30e6de99c6403a8482d2951fb87188ab1aff86f6d8de4128982cd90fcd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678cc0717eac65ae7a3091646c0a58576dab11faebc83e1957da5d2bc3791e7f644a0eae88f151a123f51d40f268ff3047cac6114df59b73780b1d1116e1e3bbf6e7d902a286c5e28ca7e86791c834170b039563ef992b3f2d0251ea22d90cad479d4a3b85f1bf7dd3e75f3830007d7315e00126f14276fcf0e388a29527b69bb8cef2d62135516a481569b887e466f7435b27d604814eaa88dd1cbf1c368a5c9214119c3c153964acd48ff60007678be201640bff1cd54ed2e7a267fedc440d4b52144993764ac91e823e43b9a30cadfff865c0a39e8fae1cb42cc4fc1b612f12bc92633fa0eb676210937de058ff08e7286d5d50e10313d9efb7c66b90f3912940", + "nonce": "b4c6f9a42438e95870e253cbd87b9c9579952bae3a6fad6428350c4a1203f30c", + "nonce_commitment": "ea00d31e4b997e854fd01acdbeeaea40c6f8da3e56ffee0855401b002ced2bd2", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837ea00d31e4b997e854fd01acdbeeaea40c6f8da3e56ffee0855401b002ced2bd2c0717eac65ae7a3091646c0a58576dab11faebc83e1957da5d2bc3791e7f644acd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678cc0717eac65ae7a3091646c0a58576dab11faebc83e1957da5d2bc3791e7f644a0eae88f151a123f51d40f268ff3047cac6114df59b73780b1d1116e1e3bbf6e7d902a286c5e28ca7e86791c834170b039563ef992b3f2d0251ea22d90cad479d4a3b85f1bf7dd3e75f3830007d7315e00126f14276fcf0e388a29527b69bb8cef2d62135516a481569b887e466f7435b27d604814eaa88dd1cbf1c368a5c9214119c3c153964acd48ff60007678be201640bff1cd54ed2e7a267fedc440d4b52144993764ac91e823e43b9a30cadfff865c0a39e8fae1cb42cc4fc1b612f12bc92633fa0eb676210937de058ff08e7286d5d50e10313d9efb7c66b90f3912940", + "challenge": "a21331390d7afa9cc22fa20eb824f26527e3427ab9fefe43c167458ec823b109" + }, "encrypted_shares": [ - "7ff806ef14fc0fe79badd46918dcdb6acddc2de6080b4ee847586564d58d9723b3c876b3777dc38a41bfe8a000c8b7df", - "738f3496435c3037048269e2b51eb7a7eb95ff5c68c1f0aae9a703efccd68c098e892470dab15718070c2a0b0edb25be", - "0628f96e45e6184ef81233918231fe51cec58de6bc24d38329ee750fbb9741b8b7233a5b176fe12a81b3c49907312207", - "8f990d87f06270019e980616cc52eee4d2fae4b1b3faffe5ad70fb66910b3951d6b7ef7261fff1bffa26ae1abd3f40d6", - "3d4bd800ede6dc24859a5f15a481c34bc90446ea8740aa1d85aab9e9aa2b8b58b6198bbd9e236dccf3e47f00af03259f", - "48fc8c03a1aafb4c6bdccec4ad5e968a2466293d181af907c52361636fac95b2c4cef6d1ef823cddb60eb4c73b95ea4a", - "2c267942feff661dade23ceb230214e3f89df550380040c12de96071910975125e950983edfbb992866c6b3f7c061ee2", - "4bceb341af1830d545133f1b9c5227cdc9aaed47dc4f307355af48ed197e2d678fba0452861b0af5c28935a96cf95e82", - "7f8d6c7c6e9d10ed6fc44a01bdd0b9c12d226e781886f51d72c7728749b3fa89f804ebaf7bc7d30ae75a9583417d31b4", - "198fc4a37d93869fbac1c9e20fe6d16a115dca7a40b99454e0557121790dd032d96a071329e526e08b649f72fa1d6d5c", - "c51840d31d241d25e2f3adf3249ce237f00df3a09c96048f2925538999a2687ceb8d6c2c5f916e9d83cbd2243f2841db", - "1384ffdc437791b0379232e49589364dac8e695500d9d1f7d49948e9554081a348d08eb9b8d745758fefd48d35674ec5", - "7275ec9c2f68e5b5664775c82a5d1693fc6667b9b6a285e321ebb738ea0021aee3f9c81da615f49ee1fc50d9f93b271e", - "a2466d14acb533b7d73152e77037de149b3742db482b789459a7000a14efa1ec8c27a7d29eae82287ac2b7d41e42a060" + "72bd12830736e8a7b15ca3177baf1733071ce4c4d6b8e0c397454a3b0f8d4657e7d6acadb4e2c4c9e40996f31ee6193b", + "ed04ef15a4d7e7fe786116f42d421ef55c51ea4bf36249c0d08ef729030a93bb936a94d46207af8910c5fb5811d5fe9f", + "d7d074248f084dfedaafb1668338e5cf713d295c80784ac32b0019305ac7a261ac03e944b822e1d240b64149b7ef61a8", + "8f6ba0a1b73be054235b30a210c380a37df432989eee4205676357f8245b17b9c9fe656b81fac63251c435a02448943f", + "04eb531ba3f2a2a9194b867ebf1a4e3a5502413bda0b81dadf8a6bf4d909e23c13ec6cff47f86837c1899d471fa73d1e", + "4f8d57d29856ebe25c2c6a6a7c360bb8939922bb6123f2ff5ccc1ccd53d09a8ca4379ddc435013a787091255bd6900a6", + "8c8a87f62b001d4caaa79d5067c1b8b2ad181757b14aa3b9065874976d94d4a96d417d9619bff61155161486c0f9370d", + "ca6d8a2e232631a97c43bba2ccc7b73ef75081c84dcc24be20c86cbf24dd9b44456fbd468bb90cc25545f2067532b0ea", + "7c7bd421c0bc76d4cb76fb2e0e08c30c9e4207e83a4fb54f4366ba368c8cc66983ec20bd4580407b4113def32424d422", + "9a5601a54d2801ea70f5cc22bb1e7386be2a371314e890190b559c3ee04b26a6f5f6340c9cb1508c8ec6bf4f828ce1a3", + "67752166f15b48ed3fdbd3b5d288c12023fdc05aedab2c8e86e45c9dd1717a863a01f89c4cd7d5fe60f1ceff444cce24", + "0290866462532941d24bafbc7123208afeda82eaf47ab9f9dac78aab31a0da5e31d6fc8124a7eb1d1465c9b6f34ca251", + "fda5616853224757e0c288fefdb38c0ed1375c59521ad15cc3417b6afec2db4c131c7cb4aaf3db619388d19ffd55db25", + "f79899fafe396d7557fe78ae16321e70deeed3f3c035a69d71a2f1d5896d0a47095d074de17b23bdc1ca74e1a63458aa" ] }, { @@ -430,22 +512,30 @@ "b12920cf2afb4122387625474e7d128c945e070bc4a397ff8e53ffd9dffac610", "0ea39bb6668dc3159094174825a9a54bb02f798f3454fac3db3c414bd7d87aeb" ], - "pop": "0ef18e582e88cf5cff659d592f7690424e822230d98d075b0773afcbf37cab435cfb9bccccbaa6d01b8f650ad15b950c722c63a402fef012fdf0255fa40b2f0b", + "pop": "09edd9becddc3916fb73cec8276b1e27cfdd184d96ee5b8d8a67b26526773749e6e88e39f11571d5c67622fc3d8c5d916b48774449af69dee0e75ef2e26a430a", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c00c5bd007074940e99b7ba59be5d46461616e1d304c0bebffd67e49ab5db1c385a2310b15f9457af7f90f109c8fbf9ab29e7f2a1d7850bf59fc971b1011b4cea6702600d0c060f3a6527f1c2030b8096bf97f65eca31dfe4e9a5e35686bac048813c74e5ea76b066908297fefb79df996c1197760b8ecd9f019cb842b0290adaaf05944e3650b4e2c7e06ba2b070dbfd12f503f8832113205a37134ebb987a4ab12920cf2afb4122387625474e7d128c945e070bc4a397ff8e53ffd9dffac6100ea39bb6668dc3159094174825a9a54bb02f798f3454fac3db3c414bd7d87aebde83e49ee163cda52e518af7932d369bba1cb20010414fe2a22a1f81c4ab91ee", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e43451d9728083b5e449d17ac4677e8c7bdbab23d629bab245915f7a90e520607ce09cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c00c5bd007074940e99b7ba59be5d46461616e1d304c0bebffd67e49ab5db1c385a2310b15f9457af7f90f109c8fbf9ab29e7f2a1d7850bf59fc971b1011b4cea6702600d0c060f3a6527f1c2030b8096bf97f65eca31dfe4e9a5e35686bac048813c74e5ea76b066908297fefb79df996c1197760b8ecd9f019cb842b0290adaaf05944e3650b4e2c7e06ba2b070dbfd12f503f8832113205a37134ebb987a4ab12920cf2afb4122387625474e7d128c945e070bc4a397ff8e53ffd9dffac6100ea39bb6668dc3159094174825a9a54bb02f798f3454fac3db3c414bd7d87aebde83e49ee163cda52e518af7932d369bba1cb20010414fe2a22a1f81c4ab91ee", + "nonce": "27fba460bc2cff13b9efc8f558e2192c20a09c39f85146f5168618d156a1910d", + "nonce_commitment": "09edd9becddc3916fb73cec8276b1e27cfdd184d96ee5b8d8a67b26526773749", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d483709edd9becddc3916fb73cec8276b1e27cfdd184d96ee5b8d8a67b2652677374900c5bd007074940e99b7ba59be5d46461616e1d304c0bebffd67e49ab5db1c38cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c00c5bd007074940e99b7ba59be5d46461616e1d304c0bebffd67e49ab5db1c385a2310b15f9457af7f90f109c8fbf9ab29e7f2a1d7850bf59fc971b1011b4cea6702600d0c060f3a6527f1c2030b8096bf97f65eca31dfe4e9a5e35686bac048813c74e5ea76b066908297fefb79df996c1197760b8ecd9f019cb842b0290adaaf05944e3650b4e2c7e06ba2b070dbfd12f503f8832113205a37134ebb987a4ab12920cf2afb4122387625474e7d128c945e070bc4a397ff8e53ffd9dffac6100ea39bb6668dc3159094174825a9a54bb02f798f3454fac3db3c414bd7d87aebde83e49ee163cda52e518af7932d369bba1cb20010414fe2a22a1f81c4ab91ee", + "challenge": "a636097860125ea3bc1167ba112a7b3f8ec88885a7682c9df3a90fb4701e630c" + }, "encrypted_shares": [ - "8ea087b8ad7c163085d16d5efc03bdb4c0ff1892686a8d5dd2a2265259e46b77555457fae4f4da72f3f3b523323018b2", - "f6e06bf4312c5b45b2f75ab5d31633bd78d5254163ea556972f5662856f34956bd8364894d57672ec159b3492c2ae38d", - "967bde47183fd1e84699fcd0e94768c57689c9bd0fd9d8e246ae86ffe51213bd5980267a54a7b924d630e59193d67dde", - "dd33ae9fff8bb4e468e506dfa992d360991c4226605cbf1ac7f5a3e5d7ba19df8f631da1bad367d7545eb70755d0798e", - "42488bf8e99b5082b7124d8f400f4649bafb9e86b505a0a53709ccf6321019c6898567365a1eaaacac713685c561a0e2", - "de3fe149ef628c2c49441f16536107053630c4a7883f76721a84730b83e7d1d0244e621542c7b69dfc6946b47c890d68", - "7a19997ba41a97230fd74acdc79bea27eb41e27b0163d03a6bc4d566e3ceee55f64cba565a6d2a232ec299f090030bd2", - "f96f620707a43177d56eb3cb400f6c86a79b2e3352e7aee0939f6e54ce42f71a35a416637b54de40c701d1d762bc0586", - "f2f0ecf1a6b32998bd5824514789564de0970529dc457b512a02d27d3e68c8962b6375fe7527f363e35ce54c18285698", - "6b6243585bda39544287acd9d45c57a3004c3f21560faafa10a2822bb7db5d490bd3f578cb1611ef6fd2092d7c17457a", - "598252e9f7dc7ce6bc6e74c7b9c266b194585fd927b9639997ae32b7a9a1b0467d4e473a9fa3b0f193e47021d413fc76", - "83a3191f75da4083f94001104daf21e15d4a26fad631b63c0d5beb7dc59af73df922e185826e0cc8e0dc68e742665fe7", - "5791bd36d9e4b7ffbfab2eb6e6a31037a9444d48ab387ec16312a4823b4f6f4847bebab74d1c6b78fda56cc60d98a027", - "91090ab6af987082ede3800bbe280ecd571662f5f6e73c8cb4218c226ea6870627a54ae4914f1b12a6719e49be2678e4" + "73fbd5eb7ccef56cffef306dc0a777df7d77aa6a15b6f7db452dd7fa93b49acf065b455926e8c83a5c1d61180b9787b5", + "5ebd1e5054c47f7d6886d5de2dfc70f8e7e32151e233b05e9df674f5afb8ae88cbf1a9b95e3362c3a9c76a90ccbce913", + "0d0dbb39f3e9aab43e5107c53c93a6606c87e2023ca62bfbcb99631f12fa61ead58528d920a0505254cf0cc1dcba4bf2", + "5abe91e9622124594d672239debc078bee6bcbe707fe41a05c9c4f097cd3c7b59b885835d409dcc651f4f516b3eaf2f8", + "943acf166d674b21bb6a0988d686446e6f38b8c062fac5e171a833b4fc27e51ad71034dd9176cb2619ba6c725447c6de", + "f9992ffab9bc9f82bfcfbdfbfabfa2cf32284d637b749b8cc7a9584f4030c62dfeb764f84d6af159249eea71695f20f8", + "cd95565b0683c5a432add099e2bb350a51219042a0986b67e289e3c9a7ee7b08a3bed1b2fcac60b1e5ed2d2fd380e3dc", + "10a017d95ec50168722d08a0d39bfbb1443a93778d2e5dd5c4d90608cf1bb66c079e8a468f8f9a57c36919e9f77c283f", + "9bffbaf26b8f2be92fef99de6dbb9510f111e4f7a543f7766c1ab36eae074febea7c01688f36f8e711d13818773921fa", + "9b1d6b864d47d1672f8426878b518676bee08a95e7aaed852266ca0bc989ba9ce2bde522beeb8e77b2a636950af680de", + "48c5ce89803759908e3827c4eb021c3ab3315e6f6dcd00da74c2bb769d0280993540e64da1d97d649429f63ef2162cde", + "984298d8588e8709d8bf9dce0c77f4b76b8bc4a36a7124f2cf6a8522743f24fe279576d0b89a67dd427145cb2e816518", + "358b2756e78f9ffda005059b2b92cb61820cb8822df3d42ab630dd63905337bbc36710f55532939b782977c5fc87377a", + "6772704fcb00a1c4f97fa2e8225420ce31c39aa7ff9f9dc83f3fad463af79ca721e8d6d94ad6641ddeb0f30fb03ad29e" ] }, { @@ -460,22 +550,30 @@ "5babc6627c45b3d97225ab9c6b179972146a48abdf61919a3421f66ba7d542d3", "007462465d30433039c3d7071d38acb67593221f040fae991ecf4e49de5969d3" ], - "pop": "39cedb6aade53ba3fd13a19100b096be7f0d8c797936d047cfa1cf1825d6cdde5fdbc8b75520485197c2b649ded5ef59fc3fae12c241e30bcf50ae54399a5b02", + "pop": "8a9be0868d238a2d1cc54144281ebdcc176b01d613ceca8f5cc400140f461d1e348be652a01908a4a21a1b17c59d5d015b5c0e62471c862d8ac01196214f8f02", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c41345c19975153d5961b06ff5dabcf4b60d7e93e75efca4b0782c42176d6db7518a18f76755442f4a24d9d03c83d0b40c83024cbdd14a986dafbd2fab13726864d6f17bad6ab2285be9a6d95889e07efcdbc584bd0e75025a17b48d2e628b01e8486d3bd93cfb628d4505c414d99428c02b673ef22f8c14903470af2c69c7bc18bad8a53afc6aac05fee4e78226c7dfcf1410a5e098c6907516aca0afc77e91b5babc6627c45b3d97225ab9c6b179972146a48abdf61919a3421f66ba7d542d3007462465d30433039c3d7071d38acb67593221f040fae991ecf4e49de5969d39e497409331c8cc930c6881c388c11da647b3a6849d04825e2e94f8e9c6a294d", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e4345c0bbbfd5638e5632d61b6e8c082bc58c5525399d6354824b2558e9d2274b700fcd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c41345c19975153d5961b06ff5dabcf4b60d7e93e75efca4b0782c42176d6db7518a18f76755442f4a24d9d03c83d0b40c83024cbdd14a986dafbd2fab13726864d6f17bad6ab2285be9a6d95889e07efcdbc584bd0e75025a17b48d2e628b01e8486d3bd93cfb628d4505c414d99428c02b673ef22f8c14903470af2c69c7bc18bad8a53afc6aac05fee4e78226c7dfcf1410a5e098c6907516aca0afc77e91b5babc6627c45b3d97225ab9c6b179972146a48abdf61919a3421f66ba7d542d3007462465d30433039c3d7071d38acb67593221f040fae991ecf4e49de5969d39e497409331c8cc930c6881c388c11da647b3a6849d04825e2e94f8e9c6a294d", + "nonce": "0659924d5eecf0e7da876370bacf82e6c99ec937122b54832ed7748869a7600c", + "nonce_commitment": "8a9be0868d238a2d1cc54144281ebdcc176b01d613ceca8f5cc400140f461d1e", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d48378a9be0868d238a2d1cc54144281ebdcc176b01d613ceca8f5cc400140f461d1e41345c19975153d5961b06ff5dabcf4b60d7e93e75efca4b0782c42176d6db75cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c41345c19975153d5961b06ff5dabcf4b60d7e93e75efca4b0782c42176d6db7518a18f76755442f4a24d9d03c83d0b40c83024cbdd14a986dafbd2fab13726864d6f17bad6ab2285be9a6d95889e07efcdbc584bd0e75025a17b48d2e628b01e8486d3bd93cfb628d4505c414d99428c02b673ef22f8c14903470af2c69c7bc18bad8a53afc6aac05fee4e78226c7dfcf1410a5e098c6907516aca0afc77e91b5babc6627c45b3d97225ab9c6b179972146a48abdf61919a3421f66ba7d542d3007462465d30433039c3d7071d38acb67593221f040fae991ecf4e49de5969d39e497409331c8cc930c6881c388c11da647b3a6849d04825e2e94f8e9c6a294d", + "challenge": "880cd9b25014964af9de02cdf06bfdb6aa7345885c723ce39ce69c53cd355b0d" + }, "encrypted_shares": [ - "a57ba6db32bc68c0d3d5672774a106031ebee2e3f64d18c4655d91d4628a10c5203593f62340a8cb3361d36038026696", - "c170445bd700659c71abb4d3be28a568a0abe342dd5daf7ee33cb1a1baf519523e87c311598ae74a83577ffe388a6666", - "dc7851edccfcb7c8ad371c4cdb77f5a07e01a64612bcf5969dffe08e94b1912bed414eb34054d15c4c4ce9a4c1713a60", - "66dc53e46e3efa19b493318d30cdf4f25e1960d8fa97ac73f7ccf107c0fa16d18360881cce525e32c0bdb66e360e7273", - "25b2b8edee1d73b60a024ead57881d3e1e06bf0d0b27c3bb4dd848e7ca16c9d7c11ae19e5f752373d46bc8805b35b65c", - "17c59fdf354c849d3d806cf52bfc899890a394eabfea9de90cd65d8f9b477865cc83710de57cfbc041cf3cf523727519", - "7336a52e1d2a5499a773cb7d205a19ac900f03aaacab11e84591681e9d1b93d55d9707fc425979789db8ae74d660a126", - "094c55cd0f3d06c24240fdd78d3aeb5e94b1347c4a19627fb043dda18ffed8c19fb18599d5740eaeb5af78a87f8c45e4", - "b9e27f4c368d88ec1d082c11f2384d6c5caea3741de561effbaa602b09a382c1da1c13198c2e25037e7a75800a12e27a", - "bcef98ea19f4cef543f46801d7cd87fd8f672f4e2dc5c3ce5e0b41fb3b5dfd6a863593214e017ccdd7d4e7caac900f99", - "d8a7b547efaccc6a64e93b8f4a7f0db0d43690c400b68ceeebdf62bb3523bc9a0284fb06b9fbdb2b54392735420b8626", - "e58beb57936f01f049f30a864c2ea9f5a26555a6747e7da01b1f75f3b3838466d406c142744fb821e8d554c671aad9aa", - "026f951d25afc4148811ebe764ef502437e4cdb59f499494aedfc6590bd84c4619d9c0e1bd8cbcb9f08b46212b498446", - "73dd935a33796b540675569a2d7bc55f2a2197b9f9b8131f8354cc4c71e7a8b4ef1e245a3c0c04d15ea18b16066a0f70" + "3d83afcea3c4db320d553eebab1f828029b0b76a283352121a75b6efb26a439c389b78c7153073b28136cac74686d50b", + "67b42904b1e86342026ea3abc72e8a89395c5b2ba8e65a05c8bad7bd00ce2bc2252d93d2c4f099672409eeecbee7a444", + "4c17fc5dcb980b30154ab31415e6a01a5f3775bd762e5df3fae2c8b6c31f783ea565c205f9568ff7a1dac6d05693f727", + "0407516f36351b2245347c297fb39c89cb25c7ab757ff366a218dbf3beec15b0b205a125c3828ebc2e5b6f682cd644de", + "5fb9e480eb55364cef1139a42fbb6a4cafd2ed98216d8374617688307b5ce4411276459ba24a894282816d01f0645833", + "19e1bb2d360ee548e8f018d1e4e7fb6af4246741218e51f253d6d416239ea212fa137457940a199f436cf7c727220bba", + "4512584eb0ad31316473f6277a018ac2669017b947f5ccc18f606bc7c3abfe218c18ae23f53852ac4bea57643d6425a1", + "c1c1b8cb9e29378d033cc9414e1dccd5b4f02ab042e9b4309d64f226f27028877e85918e5c7f20a78ed74d0ad3a94ee9", + "d8e5a50a24956b2743451177fca386f133e082411df3a288f0c34d5d3a7cc56d381fd1856196ea46590697a162b6d8af", + "7bba6dd388fbad8025e2641e9f0d7fc624be3e18a05d885517ee2f91b291e999867ba6524e8397c2b20db7dce24c8c73", + "c4328a9e39da324b5110fcd0c705fc876f808a8fc857261c6e85694ecca969a11697147185044b03e45c8b3ab3b798c7", + "41477b3c44512e4aa515d3aafde687f56bab43b160907f488c714c17caa04fd4378261be3ed0963e6fac98def7508295", + "a2acb136a9aeeba5d79f525d889d14dfaa7b0838d38ad03b0cfd6cab4423caad577698ab2bf3a0ef55253301cb41bae4", + "3f83b3e4cc00c6907374baaf5acaf870b1e3c32e3d5b7e0a277b06f20e0e45f085e4fd6703e07004f74762b05dd0b98d" ] }, { @@ -490,22 +588,30 @@ "4f4deb4e9509da4815b064ae9ddbf3b7f884c253bd45b063c7561e2cd9a2b441", "07b75e7787fea8471bf90b240b625b9bf037f0d442c5dfa1b9653bda4daf6132" ], - "pop": "616ba047d0851d91f9e0500986cce1743011869d08dce06a5d21735813a4c5b3e65966054954bfac5b77215e2133f3005df08bf9460784d05a9784cd79550c02", + "pop": "040b84ccee59a215d6984ee3f797d0f4c88b35cb811eee75e68b9d77c12be83c1db3b4d4b72e27b450bc0e8b049b467d218d1d011511ea46a5885a766d90af07", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c01562a03fef123fc44ec8df875a6d280a35ec131b155d9a0ad267b9e244b972c3e2fc03bc56e6eee6dfaf3c4a32a756e181954256b7aa05a1aa00370f0d254de326483528c23b4965a3a94c52e1927ce3961629310a1993361f767a6900ff350c8c71cd4e5984fc43f65e3a5c9dea94d4a29f86075d8782b639ce28ad2a31ab3b7dc36dc1942e39845156a7c6324720db30ea373a515765d153ea43f5a61cfa14f4deb4e9509da4815b064ae9ddbf3b7f884c253bd45b063c7561e2cd9a2b44107b75e7787fea8471bf90b240b625b9bf037f0d442c5dfa1b9653bda4daf61329927571d81fedb4b56db270d4815f61b4ad379bd78f5ded818d8793cb9791177", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e43459a06862ec96b8df104af38096be957d9c5d6d6fe579889844ae8ab392a124505cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c01562a03fef123fc44ec8df875a6d280a35ec131b155d9a0ad267b9e244b972c3e2fc03bc56e6eee6dfaf3c4a32a756e181954256b7aa05a1aa00370f0d254de326483528c23b4965a3a94c52e1927ce3961629310a1993361f767a6900ff350c8c71cd4e5984fc43f65e3a5c9dea94d4a29f86075d8782b639ce28ad2a31ab3b7dc36dc1942e39845156a7c6324720db30ea373a515765d153ea43f5a61cfa14f4deb4e9509da4815b064ae9ddbf3b7f884c253bd45b063c7561e2cd9a2b44107b75e7787fea8471bf90b240b625b9bf037f0d442c5dfa1b9653bda4daf61329927571d81fedb4b56db270d4815f61b4ad379bd78f5ded818d8793cb9791177", + "nonce": "74dca03f864e30eb582af962ac97550a12f82f1f00d1526a659c5b426aeb0d01", + "nonce_commitment": "040b84ccee59a215d6984ee3f797d0f4c88b35cb811eee75e68b9d77c12be83c", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837040b84ccee59a215d6984ee3f797d0f4c88b35cb811eee75e68b9d77c12be83c01562a03fef123fc44ec8df875a6d280a35ec131b155d9a0ad267b9e244b972ccd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c01562a03fef123fc44ec8df875a6d280a35ec131b155d9a0ad267b9e244b972c3e2fc03bc56e6eee6dfaf3c4a32a756e181954256b7aa05a1aa00370f0d254de326483528c23b4965a3a94c52e1927ce3961629310a1993361f767a6900ff350c8c71cd4e5984fc43f65e3a5c9dea94d4a29f86075d8782b639ce28ad2a31ab3b7dc36dc1942e39845156a7c6324720db30ea373a515765d153ea43f5a61cfa14f4deb4e9509da4815b064ae9ddbf3b7f884c253bd45b063c7561e2cd9a2b44107b75e7787fea8471bf90b240b625b9bf037f0d442c5dfa1b9653bda4daf61329927571d81fedb4b56db270d4815f61b4ad379bd78f5ded818d8793cb9791177", + "challenge": "9d936933a0a019b48a91a234ccd1d294b0297157069c376cef02c67167ffea01" + }, "encrypted_shares": [ - "1295490279cdd0c22d4cb078d037de263357b9217be5bc3614f2b06986432938edbc49bb328af74e38eb7f19d419b0e1", - "e77b26621dd0c6b900050efcf24c7cf15938f5f656462d3d68c84cf1087ba2a3539515b69fb0017e285ea4b769b1971e", - "393a42c6bd01ff112b7ba6cd4e6cc96e26266cab650948eb230fa62297260953657000cd0d0e5fb2f2cab7417e4b15a1", - "03dc48fc8572f6b896fafd694e167e104320aafa9b524c97c4a3ae820c7924d0608235b410967cd10230cdcc58c49d68", - "a0325605fb8fc4ff68c1d80d5e82c2f0923a63e7580823678e4127494f7d518bf8a67460c01da0d7f61c99cf8756d565", - "cb75cc67318ee692364d497f68e02e4ea0b8fd809f87a02fc0470e395674218800ec9118fad92dfcff583a5d40c4aa63", - "8a55bc6e54ac3f83b4279f8c6eb42fe0e27e68bfa5c8d4c3e7c42cccbb411300af29210fb82a98bc4a0d46938ca3e4d1", - "0f84281ecb11ae3bfcfc0d01ff933d261ea166ecbaa813fac76a1b6da7bf2f0ac799976f43fc11a03f998c55c30f4b28", - "10905c5369db527b0d11029f2ab3a4285c7d03b3dc999c4a59faa3d302043373fffebf277be86eb9a4358ab1dd7fee20", - "2b3959c27355e9f3d122ea265d69c639188c4a4514b984a29490aadc61cddb5bea9fb0507ecdfd6c1d06c9e43289c263", - "df08ed10e3fadec43bb63b34c98675d900ceca5ae4a26bbf60de8b070196ed9a5ee7d229fd0092c036f3a2130eb55db9", - "502953693190fb90977a4eae0cff05031f6ace6316a3576f492c2b1a2c500700f07912b2280197ade63d76a7185a5079", - "6fd33b932fa7ac041e47b70624ca84025074e862238f4eb66f33babbe7f3180d0645674974fd89244b0bd895960867de", - "fe195562db5882d1fef094d40378da1a5e1e304e4be2c645694d20b613648812023219a7faaa15251c19ec7fc6d031a4" + "1dbd2c074dc6d1ebec1021b45c559f76cf9f164ee6d8771d0c9a5228dacb0ff24efd3c0eb6b2e005db6bd58f8307fee6", + "2fe1d6bbfd5210ff99f2cf0f68f987084c1fd2b9d693304a0525179366fb55962a4b88485f7d460426fe9108e81a9ef5", + "b60ce7f8e187587e860a47ad02c9721cfafc9ad9914fbd65dd44f3df964bd7b3c789c9dbeebc2e87082ce3910e169e21", + "43da228baa5c94affe1168f1ac0cc01ce1f00dfd353d4ef6df3a55cba45e7f01761bec6608ec31f4d68f314573190c1f", + "fd6e73b0c2f09231c2c8c9932137846969c9b8ce4039582085cd5e19edecfd7b89858701098b3b98fc55c40a35411789", + "eacd808385ae31df4e301eac03251ae7fd9a20bf42dce8f7f48a34512bce4a6f5a561c753192522bdaaa362ddc6b7e05", + "a260a22239df0d2e8a2ef8d1bcd731a910616e9340837ab6bfc1088f6e3e7007a6e6cd4557be2b6a81458d92e3e1ca72", + "02e976c7b8f03c6c75458cd3fd351807ec3739d69f12be04b6ea91fd48d4c69223f06b2580f81862982953ade4b02069", + "36249541a508c41d7695ec33cfe3718898ac1dcd19cefd47243c5df8c2278c0119c567b7f08388b11e33fe0b1d123dc1", + "d92e791225888a17e1fd24eab53af6e044bb2b3653675fc34bf9711aee5c0ad269e5c503c80a46f3f4b44fbae9d90d15", + "bca028a262b847ec9fa842f2b270401ce6b4f32832f207940db24885a09419b00087ee2aefb63a0f8d972189d566b718", + "c127e53669c6bcccc87941b05a41903e0ff56126392033d8e143d6a25e1eb0f7c42600ddeb9825c85b5a191ee58f8ce7", + "5989d43491de61a577cd48ffe4294b31daaf8ffc89d02bbfb4501bd2f331dbf2c36a06577d1916dc489ff9aa22a7548b", + "3dc60c276e5cd33a867cf2705ee600dd63585fc1a73bbd6e1ee08514578a7142488d1ff2da262848e5b13672bb8c70a4" ] }, { @@ -520,22 +626,30 @@ "fe178255b74e32558e0bc0c056848f193d4dd5ea98bf1c4c04502b19865d9212", "1a937ecc3604b3936f18f716434c8fabd1dcb7520482ed4c6a38fb5a408b07f0" ], - "pop": "19781296b8ccc0a51281af8b06409e3a08ff58e27e142c19538c375802aa33df1a9376ddfca182a09904acd801e7cc5453d99e9b1bfebbb3bde25d71634f1705", + "pop": "3cfd285180a62f41e00a941f057e4dd3f98890f6bbad273bc1debf5bc9e2fcc8907a269b01808133c2339b7bc9b18ded10ab4b35a7f9c855d647a696a4b93504", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c1631fdf734bdc56ac76e5ea18d4249372548866eee6bc4b921ce2ec34f63d2dca501c55a41c46ed2979f1aaad73c709da1b59f1fe9dd9d8ee5ffefecdb400ba5f275d88f82795d54413fece420d2bd716c3ebef508ab576ecd831a73f7c2be0e2dbe0fb91c435a62d13cc2486d8d1cb3bb37b3df8a2b8e7eac3943303b55e81a2cbb2a69bdbcb0f2db5df5e5a30d37350dc14bcbb8246b78ff6089948ab5d26cfe178255b74e32558e0bc0c056848f193d4dd5ea98bf1c4c04502b19865d92121a937ecc3604b3936f18f716434c8fabd1dcb7520482ed4c6a38fb5a408b07f0383ce11f0a72af6f87a8eced6ca2be63f8d8fe1a7e6e3ff60dcef527a981e13d", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e4345fd06bc09850e05f801c8ebb1e20f668b6b579e208a4856ee5ba8b9e837af7408cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c1631fdf734bdc56ac76e5ea18d4249372548866eee6bc4b921ce2ec34f63d2dca501c55a41c46ed2979f1aaad73c709da1b59f1fe9dd9d8ee5ffefecdb400ba5f275d88f82795d54413fece420d2bd716c3ebef508ab576ecd831a73f7c2be0e2dbe0fb91c435a62d13cc2486d8d1cb3bb37b3df8a2b8e7eac3943303b55e81a2cbb2a69bdbcb0f2db5df5e5a30d37350dc14bcbb8246b78ff6089948ab5d26cfe178255b74e32558e0bc0c056848f193d4dd5ea98bf1c4c04502b19865d92121a937ecc3604b3936f18f716434c8fabd1dcb7520482ed4c6a38fb5a408b07f0383ce11f0a72af6f87a8eced6ca2be63f8d8fe1a7e6e3ff60dcef527a981e13d", + "nonce": "f61b2f4dff9d80c7a53e705d2c6c4cbb59734c3593fbe8a976f88ab2cf646b09", + "nonce_commitment": "3cfd285180a62f41e00a941f057e4dd3f98890f6bbad273bc1debf5bc9e2fcc8", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d48373cfd285180a62f41e00a941f057e4dd3f98890f6bbad273bc1debf5bc9e2fcc81631fdf734bdc56ac76e5ea18d4249372548866eee6bc4b921ce2ec34f63d2dccd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c1631fdf734bdc56ac76e5ea18d4249372548866eee6bc4b921ce2ec34f63d2dca501c55a41c46ed2979f1aaad73c709da1b59f1fe9dd9d8ee5ffefecdb400ba5f275d88f82795d54413fece420d2bd716c3ebef508ab576ecd831a73f7c2be0e2dbe0fb91c435a62d13cc2486d8d1cb3bb37b3df8a2b8e7eac3943303b55e81a2cbb2a69bdbcb0f2db5df5e5a30d37350dc14bcbb8246b78ff6089948ab5d26cfe178255b74e32558e0bc0c056848f193d4dd5ea98bf1c4c04502b19865d92121a937ecc3604b3936f18f716434c8fabd1dcb7520482ed4c6a38fb5a408b07f0383ce11f0a72af6f87a8eced6ca2be63f8d8fe1a7e6e3ff60dcef527a981e13d", + "challenge": "c3584022b9e1790bd65ba23f1248cb91d71dfeb172595bfb347d1f8a3a6cf701" + }, "encrypted_shares": [ - "b2c363c2a0a2fb73002a34ebef38ed49ecf07babaf04daeab561d3294c0d71cf2d432f75f030b89fc9c5b995ca1020f3", - "ee4d2c6e2aea605043a3a879fcf5d8280587ae5da556023be53151779bdb8d5c054ad35519a89284f37b48f711c2dbfd", - "b1848c831e794a1688d8e7ee4896762ee4d713989acd357b7da98466886fffade030a9eda20bcd955b8554641fdc61b9", - "6378c2fbafec101382b87f6839c551c983a1a5e9bab6fa71eb93ce44c8fe30081e56f5fb9f2ade193c39ce371be72e60", - "cc024216f06b98971a12262bb68a309fd304353bb2cf2a983ab4f4d61431a6556e925f51543be89510ab7b7c6f4f6d21", - "4a1170057461653ff45008ae105f0d5311ea55aa5d4a720eeaaa96a3a3b7b9ab640de138f2adffacff8ec525ea21eb64", - "7c9d22362e02339db8604c3aadc309255c9e43583e6d8f0a1b37e53be387e6b24b070afc759576d56b83949350ed67d8", - "20d2478d317e3047e43dbc08a4eac5c3a3eed9229549dc0021fed28792212f4c648110db5f597497006f364c745ee792", - "e062f6cac8bca877f47c98b5575bfaf5207f2385f3f530b46a34c3778e3c6066943ea9d74d2b1971874d437db933b04c", - "2bb36da2791b80ae1cf3871ab1e1bba75d1d1b3423b272b4fc250fccc9254ccfca50c106e5598a59a0cb4443a0a7b2c7", - "462fe9d1b1a1ad05ae3a80476b16a58edc992ee6f6292ba3d02ff84ed71ee9529c8b3c70b31cfddee7a516b7ab3792c6", - "e922696998f70bf7d9e62fb9c5686b250bc6a39fda33d21321f3a18f04d36b6ca100f2909bf4f3d0d30ab016470dd358", - "20dbdb9ca66b9b025b79e35d921b078c95fa7c62f6905fdf2c6840d7e41323e0f9bcc21727a7f614c535d4b45d9baf0c", - "4eb13643fbc1707d15bcbdc54f8f4df23429a587c878b9dfef22a0a88692e6229728bf9e984898f11a491b7eb1957204" + "705cf5a8afa5abf9bf706ab8fa402decdec192e39d10e132213fe716fee9ed86c513149a269f1421a48789e7b30f6fc8", + "6826cf63f65fefc84c5b16e7ee3ece0abdbb31c8464cae9338d6f2941c51526bc3d3b46d0d98a0140b3e9f09d3e03c8e", + "cdb1a4f20b162afee163f35d5ca925daa3eb5f2afbe34b805ad2ec1a3863614790481f24190b3b825dd5abc8e47854af", + "94bb34c230bc1306562429a443d64190dda2b8074e6a668f092d3a74580b12e5bbd01388b4077e0fd02de0a569bf1fb2", + "e24ad131ba7905e0521ff959774099d79e25bcb4391261a31c75996d2f5b0162b02a95a73f26143623846a83c9e4f11c", + "4d1b21d6669e58f439d047b9b4e0f8fe1a2065b5181920aa96dc92a9118a51703d68ff7d79553de593f8f424eab05e5d", + "caa54a88d06c4f224fa99b06e1d7d37569ee9953ace36a639550974c59430c54ba893be5b78dde39e20c80029f833796", + "873b5e70e0bb7127988a56d75e588548a6d5b86a1de84dc7b9384c7a478b11994551958922c2f3d409811d307631b54a", + "11a37ae6699fed698ab125242c5eeb6e3c926f74fe0aaa6c0eca3b4ac245f0d8ba74ef3b2b761b780b8b2c1e439a1fc3", + "da30419ce2182732e7515523754cd9bfa49a0ee16aa001d06ecd49fe9d255b14f6b4a6d04c1e6773e4e5e4b9fcae61ba", + "6c763ffbf1919e048c6da83e5a2be44eed365bf09a6fb0a5f77c2a65b4714ef7232b7748841ac000fbbd214061173b1c", + "4c1f71670596e6c6c7379ee4c6c2e1aa4bb588baa7ad8e5b22821d00dc039d116694d4ef92115b5da0732fbeab05d19c", + "5cae1610902ad84e850d193277298f1c972908ef6da6553828f7d28ab91eb000c6144c989be8c05ad487025f5af55da5", + "02dd39d731bcc6a9d2af3ca04605312f62ca944b81f40401810b224297ec8ee3725ae27833391e1d8871c344b09dd8cd" ] }, { @@ -550,22 +664,30 @@ "9baa4cb447d021ac8ba59f6588d63a0841e75afef5cb385a92afaf4f07c7f769", "a28d99e40af6d79a4e8100465cce70f5095d7a0842cb3f50801d37a037baef49" ], - "pop": "1033258069dffd6ac1524aea28a7a8c02f04ff11f20f5f21e30ef7b48c3b69561ed18bc423122244fb96a3d5aa42b2f2286c637679f8375472121ac60eba930e", + "pop": "11e2015ef9b71d40dee9ad416bdfd0552dde8470ad985ab8ff5cbc29bdec3101bb995c588da1044650fd9735e64db402330bb733e3b7a792052a11a409d33808", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678cbdae4e963ee31ca9568847258d852b7f3a9c2b60e9ba1822ec5b763b86da5e13a46509672dfec6565badaf935779c94eea7204d3d5f728e32f296ca77673fc88542bc5a5df72e29bc7672d64915922a8a92f8ba217b0b17aac58d1bc9b47bd9081dacd05ed7c4ec034827b239356fdebb83163fe21b08e53b283a1827234eb733b2cfa57d898141156d0cf9d153f947549fa68edd792880f80ffcdfd0817110e9baa4cb447d021ac8ba59f6588d63a0841e75afef5cb385a92afaf4f07c7f769a28d99e40af6d79a4e8100465cce70f5095d7a0842cb3f50801d37a037baef49484705f96389c19faf1061f11903a5fcc5844eb0b8a585010012bb996dcaad5c", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e43452f0b86dbd9251197e09d45ee683c73d4f5de3b726cbb2c1547ad3b4b2a32930ccd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678cbdae4e963ee31ca9568847258d852b7f3a9c2b60e9ba1822ec5b763b86da5e13a46509672dfec6565badaf935779c94eea7204d3d5f728e32f296ca77673fc88542bc5a5df72e29bc7672d64915922a8a92f8ba217b0b17aac58d1bc9b47bd9081dacd05ed7c4ec034827b239356fdebb83163fe21b08e53b283a1827234eb733b2cfa57d898141156d0cf9d153f947549fa68edd792880f80ffcdfd0817110e9baa4cb447d021ac8ba59f6588d63a0841e75afef5cb385a92afaf4f07c7f769a28d99e40af6d79a4e8100465cce70f5095d7a0842cb3f50801d37a037baef49484705f96389c19faf1061f11903a5fcc5844eb0b8a585010012bb996dcaad5c", + "nonce": "3ebac715804da336529fded26df4168dbf431c0a715ee1c3ac2bcfbccae07a0f", + "nonce_commitment": "11e2015ef9b71d40dee9ad416bdfd0552dde8470ad985ab8ff5cbc29bdec3101", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d483711e2015ef9b71d40dee9ad416bdfd0552dde8470ad985ab8ff5cbc29bdec3101bdae4e963ee31ca9568847258d852b7f3a9c2b60e9ba1822ec5b763b86da5e13cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678cbdae4e963ee31ca9568847258d852b7f3a9c2b60e9ba1822ec5b763b86da5e13a46509672dfec6565badaf935779c94eea7204d3d5f728e32f296ca77673fc88542bc5a5df72e29bc7672d64915922a8a92f8ba217b0b17aac58d1bc9b47bd9081dacd05ed7c4ec034827b239356fdebb83163fe21b08e53b283a1827234eb733b2cfa57d898141156d0cf9d153f947549fa68edd792880f80ffcdfd0817110e9baa4cb447d021ac8ba59f6588d63a0841e75afef5cb385a92afaf4f07c7f769a28d99e40af6d79a4e8100465cce70f5095d7a0842cb3f50801d37a037baef49484705f96389c19faf1061f11903a5fcc5844eb0b8a585010012bb996dcaad5c", + "challenge": "fc6b0f90b4bca44c867ea1b3f3842e5ae1c6940eb3178d1f463806210eb68705" + }, "encrypted_shares": [ - "c63a8cb52cdd625574a2f7c116b922c79a1da9f6acfe4bb2ff0a2e3d08e600e7624b3d54109dec201001643452b570dc", - "a83c0cad53e0c0a802d4dc331977dd56a99b2022143b69bae3faffbdff3dfca9e497ea3bb792364210c8b8b567179212", - "6654be93868d0ab275ede1d98f45920f0717f3348433ef8c97fedd58882b254802f0580f977f033df6b6aab31cef6c9d", - "0ea2351dd4751ecdb33f8fb31eb5521b3ad5cdd10c0122ffe3effdb08a8d3f6641cc45e2ee6b9ffbd47083e40ce97a4d", - "21682154be22781a5e117b93123a023b4746fd24c4404bacb0f5dfb5240ebc45187a3646bfae132bb9c7d6de6c746eab", - "9fc303e955847e1c274f01ac3cb8432c4c2b6a150a7a107fab28892f2a1dcf53b54844f60c5a553dc677fb0813c403f6", - "c5c016762422ac1d5ad5b35b18f42da43f4374cf800507ae5b251b10d17facf83584dafaa64de981964b744932978ec4", - "5e524ae2a1d7709f8cbbc06e6d318d8fbabe514579995b2d3bcc84bf83af78a5468b84738a812e755d72741632d8e47a", - "140fff910fc947b23502bf25fcbc23d82f65fccce07ea77c7e9502336c48bfa82286e05f4794257b4e3facb18f524191", - "552d62b34fcd773bdd659c2b9217fed91829de4f18fde2ae3807ec720b4fe9b2997e6098567c078fe55392d7e2327b02", - "d86e584dfe9843ba9135dad563962312d7526c5472c8928a121c9be2612c8d78e54dc8993fd23ae806252178f67e621d", - "935fc4926e1e5be523e9c82456bc9ce4341a1662fa2cb4a18696691f94e322ae79b59aca2dda611e6ecb4b128beac7a5", - "e852571a2cfa668ba8439b8baaeed493fffd41985ccd13164fed4ed1d599f74b4e6b8740bda6b2be55c202f34be38c33", - "7cf7aa5e43e5d103c5ede92b72a13c4b61cade63050efa2a1e5297832462466e6ad189ad2750adaabe79ee07ef6cb4a9" + "2167e5ccaf0b890ef6b01e4bffba9e44569218b4ec5dab019a4c4495d400b25b86363a90679edfdf01a465f7b6479a13", + "740d10898808ae8cb7d5ee7c2b6b077cadef5bba248809404035a16f37647b4a858689dc0201b0a23b54c9d3b84176d0", + "f737d0126b257dbc6dab0aa7373031bc31cc97dc153384d72d408f0633a1ff731b4b0bdc4a13d7c82f6eae3f99f755c2", + "26e6684cb9e1848e515d6e20ad5db9cfe5c218d88e6207f33558550a325655ec7fadfd6ae0a9418f5a8ed9e87334f036", + "e1fbe2a5fc6b1789a59e6b00db1996c852ec9c559de93fb065eb42e61bac9dace435e9d2da724bbe6ed3092cc4cbc227", + "2cdaa1447411040553259e9ad7f88ac30f426e4fb764f66014c7f7be2a329bc805ea45996292260b2a9fa65cea47750b", + "24ed7c40f6a5e2479c37bc723f711bd34edb7e2f7be56f944e7109c3f4a95856b431b3cf342b17800943251bd388f1ab", + "4410230e450fcf13342a9338ad631a30ec30683149af77aec24140f08f17ca3a639c35d7db3c70d9c9a25c2a9080bf71", + "10ff047e268d252e866ad93e71049ddc14a738f5bf13aeee6f200bb37b098e3090f8ba304084ca211c26ae647f3b9e8e", + "fb7570261819bbc57150bc85419c577ce5053e7880b6931cbba4281309922ebee4d39df169dcc4772f031dc5f0b2607a", + "47e400eff9b7ea81d4f7cb560bec58be7890b55c0fe0055244caa179ca55e1fce3ad14464da3a4e62379f3a2f151f381", + "ffa6951743ad11eab9a302881348facdf861aa7a00aeaf7f737d1666b7cf14f024ae86ef57a55a6544ac3440074a722b", + "10af995ff6c7b84818396afaf52077c6a1baa68e58391611ebfc588b1aee4131793e5c993112d44f66d1c728e2d7a0f6", + "5978d47c0dc6eede3f03b4ac01f9fc2b65d66a74d5155e2ad17bcbfbbd6b2a787d41382b799791ac94cf8ea4392096d7" ] }, { @@ -580,22 +702,30 @@ "bd88388e2b4b13cdd8a5dde0a53a4462f5a5e8503d9e052f50c152ac7601074f", "5834bc33ce6f5219f5d759fef541286daf1576249ae74dadede45b12b73a541c" ], - "pop": "c1608e4e28ff3078f3f4d920a6f946be04c3aba0311c4f5991b8e8b2888d55d32ba301f065fcad7a17b04f388788557fef86d4fe033b18825db32940dec6d809", + "pop": "aa4eb18ae4d5d0c48b63f56079dffe1114128b1f67932bbb15ae857fb33c37d7f539ddb68da87bda6ca179dcf827e9c8718e30adf468802ba89d47573feb8c09", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678ce25bdc4d0553e9df680ff6a68e99fc57bc0996abc6efdc5df27d2a93ddfaa537231b7bcf4b9e85df4be0b459474b3da7e0be54bf6216de54c95ea07ed426584929ac9239d300994b6708db3e50d231b1a921859ba7e49981caf8afcb34dce45ac62c976a81ff9b637eeeae20a58a62467202343ccaa35472a48135c13927851996f4e362273c2cd302ed9d80a73675b040b6abe79d8146706cd03c3d8244201abd88388e2b4b13cdd8a5dde0a53a4462f5a5e8503d9e052f50c152ac7601074f5834bc33ce6f5219f5d759fef541286daf1576249ae74dadede45b12b73a541c6346ab5612264768d79a7ad16fd49a1b2247e0faa51a9884d0bbc2e943f6c25e", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e434572cfcbfe4c32e5cf727544dbe2eeeaf0ce1d06224bdbba57610e060c8c2d6404cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678ce25bdc4d0553e9df680ff6a68e99fc57bc0996abc6efdc5df27d2a93ddfaa537231b7bcf4b9e85df4be0b459474b3da7e0be54bf6216de54c95ea07ed426584929ac9239d300994b6708db3e50d231b1a921859ba7e49981caf8afcb34dce45ac62c976a81ff9b637eeeae20a58a62467202343ccaa35472a48135c13927851996f4e362273c2cd302ed9d80a73675b040b6abe79d8146706cd03c3d8244201abd88388e2b4b13cdd8a5dde0a53a4462f5a5e8503d9e052f50c152ac7601074f5834bc33ce6f5219f5d759fef541286daf1576249ae74dadede45b12b73a541c6346ab5612264768d79a7ad16fd49a1b2247e0faa51a9884d0bbc2e943f6c25e", + "nonce": "7aa54277060736a12d433679053a7068a374bdfed0b75421cf87085c1b14af03", + "nonce_commitment": "aa4eb18ae4d5d0c48b63f56079dffe1114128b1f67932bbb15ae857fb33c37d7", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837aa4eb18ae4d5d0c48b63f56079dffe1114128b1f67932bbb15ae857fb33c37d7e25bdc4d0553e9df680ff6a68e99fc57bc0996abc6efdc5df27d2a93ddfaa537cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678ce25bdc4d0553e9df680ff6a68e99fc57bc0996abc6efdc5df27d2a93ddfaa537231b7bcf4b9e85df4be0b459474b3da7e0be54bf6216de54c95ea07ed426584929ac9239d300994b6708db3e50d231b1a921859ba7e49981caf8afcb34dce45ac62c976a81ff9b637eeeae20a58a62467202343ccaa35472a48135c13927851996f4e362273c2cd302ed9d80a73675b040b6abe79d8146706cd03c3d8244201abd88388e2b4b13cdd8a5dde0a53a4462f5a5e8503d9e052f50c152ac7601074f5834bc33ce6f5219f5d759fef541286daf1576249ae74dadede45b12b73a541c6346ab5612264768d79a7ad16fd49a1b2247e0faa51a9884d0bbc2e943f6c25e", + "challenge": "71780b80f1c332e18de108ebb740bf673e91f8bc1e6797dfd768a6980ea93a01" + }, "encrypted_shares": [ - "61c293eb9ce2ab514dbd8f76402763c73c514a646d3405b577fd633eff6d83b0ef6f7d90d13dd8cfc9c2676225afb104", - "5f344358d69157a40888ddbb3908a2c53b154ca1366c323107d89bae9efab3292d7be83fa2a126c6945f85a662d6b487", - "e128e21dfb6196fe50bdaa24254395edad362f275bd653add426b78a1bbe008a9a02ef044bab06e7e0991ff65562ad21", - "4a04a1dd97dc5f9babab013333ae9e1c18b23eca17501605fedeaf326ecc8f212789e0143e1b68f89b1aa9c88cc3fafd", - "052efb884a3cd42f8cc8faecb35506e850a1a49f75d42379079a58e50388525fe4215952ab6ea19e3f3aef72b83c5cc6", - "2f1e1f3661204fc9f5cb880e66994a4cdb031e1190d9b5dfccbb2df9240ab0568d0749c5eb993c314d3c9c2e4d67af5f", - "14ff85f13b442cab2d301a650a66df2c88273ed10e4066b61a08436263009879b5cef1c39c40d5cee91ea9856a48c91d", - "aa00cb750bb8a0aabe600248a31fdde681e59afad82225522437e8966692127722ae26271d280dc3c7555d5144395ff7", - "cfbbcfdc0f2c1187ddee831993d230c8385f487580ab7a151c4d90e24f340ed421ef50311712e65d546f2d15186ed6ac", - "bd377a37cafb39d64d1554405cfe2c518939b09d4e18d2d4df448c4190f101cb2b0d36e7013ce2c2924217bceea48fd0", - "9c602d07928047d5aa81e3f2221ca9d7ff2d03001c1a2954b32e1668d85c1e05c58dc1bc15a6c21ea0707d764bcbd176", - "2b746d69c5ba3d7d877f92282dd5a93d8a604c26eae87b5fd0733911f0a7617c4428b210e2dd1c6586e79167e9113e47", - "4ced74574c94849c3ae2411f702987ec48522313d6fe970bf7b549dae1550a68b256a1ef3d697734163724e2fd1a29cd", - "2cab6bd2d2927e2095b22d7b04a34c252176f5c0234d3b67575a81df12b94832e05bdb9b8efe74c43e59b7d42e4514a7" + "5eeefe3f23f9802ddc94223ac39d10d1fef85c929b077ff98d941a9add06b1a562418419ab1070201a1932fa6e7ff2ff", + "fbabe15ebac68b262b3cf8653244dafb7d69f0dbbfc5ef559b41c0ba525229999813ccb19663640e1a18f5fd3548a1da", + "9b4359cbee93bb47f6922250ecfca55e02ced88c64e90a3fffd2c0ed2618dbeb2b1f15767978af6739e822e5c7b95cb4", + "2234e362f7ffd1ee7f5b776e1bda68c9ddbdd7fde6e7324ce9bd2c583c670ab6065244ea4a2146c0bdd1e3269c391cca", + "97bb963e7e48360cbcbbde3085742baa9cb724f13b99c4d683097f809e3f499a62f6ffc34c1f4982bfb2b94a6c1712f7", + "ca46eeb67924c8d557a45aaa3bc3c4e03607fa40b94479d90bc5d1dd31bb711a7cdea4a93b4f12c289f39304b5807918", + "9da88228d4b19177af2902777f9063a679eb8631cd34729d9bb5006f78e84d5874486cd980f62cd9509b66002f3ac237", + "6c5b2d9a104e061f0f0189746cc8814c094bef9943946cad7f8310a1cec28ae9564607d1e0bafb5bfe03cbb6589cf24d", + "208a5d816635c73c171e6aefdbcc8ec5bb1689704d492bba65e60702cc368571fed187aa09354ab7832687e7ef793d4a", + "b96f3516b678b028ea90e9a3a12746351ba1ad9de93fe7cac25113b242312c3b2638ef043da8814dd51b0941f3c996d1", + "9b9d1a9a7cba5d9b2e66f9325018ef51aeae9ffbd34133b99674bfc7058f7f45d381e79f0a08944a70fbaf2a6f995f1c", + "1a13cca870635be97c68b2227f137597cd542e159ebdd0c459ba79c4122f1eb1144dfe02982aa7fe02ef485549070522", + "645e642b2711fe3a1e00487b3e2c36a01f8d5990fd265b6cc159ba9789890c3118ae214681c9c8f7703cb05a791433be", + "3041516b009fa07b13ed0706a8de71135e0a13f312f682b8ea359cabb876149a2ef2d499776689a9d2dca4b207dda52b" ] }, { @@ -610,22 +740,30 @@ "b46a06b89f15bf3708926422a655bd351a206c36c50b665f1feb5115dda34c7b", "4c606cb5a24e7db824366cece763b0e648cef83adcd809f65ff647a3c947d0f8" ], - "pop": "af65b861d4b00fe55420f43aa4a2f6c395f6578eb9078755e77fd2a703ff9663c3da40b329beb9180f1375e6bba4f1e3c1df96520fa4f9f1b8fd2e9590552806", + "pop": "f5de91eec70037119e2fef4341efc78606852babdf9690382891b1310a6d873874626249c5a03d4f03ef3e2f33b4bfa6a75cdd603af3b32ec32ae974cff10c0c", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c50ed6094879b72b1f0fa664c3567f8286256ff66490d5ab7ea1a855cd462ed27c6bd58b6a980274eaad1ac983b508ebfacfeeefaf0711b017f18c4b53ae9bc27aefcda47b58ae756debb4ee5d2d788dc28520e20acd4bccfa8672fd5ea760924adfe712418b7195a85a6bbd73ab6eaae0836bc85d286280ab94f7ebb1449c42cc24ed11efd7af32656f9cfa916268e6353dd2f83420611cf9408fa49de3a67eab46a06b89f15bf3708926422a655bd351a206c36c50b665f1feb5115dda34c7b4c606cb5a24e7db824366cece763b0e648cef83adcd809f65ff647a3c947d0f8046d776b7355111941425f2e69fd9059139c4168f322ec299a798a30a0b35c66", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e43453b5faaa4cf9647e68adca09c608c554e57416f4d08d9a7c4e9f136c66c941306cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c50ed6094879b72b1f0fa664c3567f8286256ff66490d5ab7ea1a855cd462ed27c6bd58b6a980274eaad1ac983b508ebfacfeeefaf0711b017f18c4b53ae9bc27aefcda47b58ae756debb4ee5d2d788dc28520e20acd4bccfa8672fd5ea760924adfe712418b7195a85a6bbd73ab6eaae0836bc85d286280ab94f7ebb1449c42cc24ed11efd7af32656f9cfa916268e6353dd2f83420611cf9408fa49de3a67eab46a06b89f15bf3708926422a655bd351a206c36c50b665f1feb5115dda34c7b4c606cb5a24e7db824366cece763b0e648cef83adcd809f65ff647a3c947d0f8046d776b7355111941425f2e69fd9059139c4168f322ec299a798a30a0b35c66", + "nonce": "7d7f541d33adf57666deee5217e925887b6efba8e4eff47ae45d31c41a15bf04", + "nonce_commitment": "f5de91eec70037119e2fef4341efc78606852babdf9690382891b1310a6d8738", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837f5de91eec70037119e2fef4341efc78606852babdf9690382891b1310a6d873850ed6094879b72b1f0fa664c3567f8286256ff66490d5ab7ea1a855cd462ed27cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c50ed6094879b72b1f0fa664c3567f8286256ff66490d5ab7ea1a855cd462ed27c6bd58b6a980274eaad1ac983b508ebfacfeeefaf0711b017f18c4b53ae9bc27aefcda47b58ae756debb4ee5d2d788dc28520e20acd4bccfa8672fd5ea760924adfe712418b7195a85a6bbd73ab6eaae0836bc85d286280ab94f7ebb1449c42cc24ed11efd7af32656f9cfa916268e6353dd2f83420611cf9408fa49de3a67eab46a06b89f15bf3708926422a655bd351a206c36c50b665f1feb5115dda34c7b4c606cb5a24e7db824366cece763b0e648cef83adcd809f65ff647a3c947d0f8046d776b7355111941425f2e69fd9059139c4168f322ec299a798a30a0b35c66", + "challenge": "d4b82ba8539a230fff5bfc6b076e7c62f27546de7a4072f0ad05a02c08923308" + }, "encrypted_shares": [ - "776dd600ffb97f314ed4b740f30dd7d23ba83a29a5ad6729e85e9463264806b0c53ca265f4b457e36b1e99ca00136809", - "f4b5a510a7ba3acddb7e5af6cbc1d80d605c49b17e5c82dd5469301b9252dbdf86d02b6a78f5ccd7051c09d8b6497b62", - "f7955c99c52adab77ccc869c3413c7aef87ae3e32b95199fd651bb3f944724486ce56b73fe8c397bc50f1983f7547ac3", - "75a35476cf54d5e510e379dcba9a79f5021443def9a4a923d41f04c7284b48af60d2c29345556dbd0ab6144c24ca1512", - "dcb496435f9395597f22ff577d72b316a1f59eab3a2ef08c86c2f16c245ef92c1cc87633b00f8e125fa82d28f6a9918d", - "a8c544edbdd7ce9d86baaeaa025274095edfca7046834836780269790a375d86b89c9925839f01493d56203e06ce5e56", - "47b532e0293ae0635c342758ef916572418de506f7bbf5797f3e9120dd051f2da3269613f2a9be77f286ab3e5384a4a8", - "d743e2fb22a2221621301bc700487090f3ff0674dbd3cb34a31f20a6c8526ff6eff1258c257d68ce45f9c98c62b3769c", - "c8d5643c5dec331313e46a1334212c20d166a1eb553a59b2d63ce17912e71aa77b65e8ba2a077cee685b79c9f5ce09e3", - "910027bbc68f54473a4a8810e5cae922a9d3f03b250f23a18bfdcf25c1831d02fc66dd425feff6fb22cce8fe49845784", - "ef0ce7493ac9308bb1dc7b22a94798ab9c757cd22657b3d73ed763c5d65a2ce81e77d2f9bb95520dc2ae6c93cc2936dd", - "f6d80a12324c3a50cbe9717e546f4a5ef579ccc36bd6bb3e41178398c3dfc1903f8e173a9d3bf7a2463c15788a6926cf", - "fc3da8ac491f9e74c8ac84c1f3ecd70514f7166a2015888ad87b0396c857b06544ef74470c50ebaf0295bf90bd1cf697", - "fc06a1e4c88e2272348552691d8c7f79723b90b08be01788b14e04b7ee16a7e94cff03794f1bef7f5e7cfbab2acfb007" + "bcfc67670271ee30853938c3dc24c19ee206e9dddee4e48a235ee29dcf4ea471324e7c4396c95303779b4b693b550479", + "17632b4ef200f1259b5085dc48b529cdf56dcf8a728432862c5cb7741e920eaf2695df34d21da9247f21af2dae3024c8", + "b8eb58d3423843cda498e27efcdbe0aa37da3b950bf62881601c59693648f9f4274ce04cc0bc6b93bb35681460cb2e7c", + "f650f7b98b53bd8cd7073f89ddb1ed13d9e000c43e9f8fb66a5a17d5ec124463d0ac40840372163219d141b2cb0ea411", + "ff1702f9fa9c64f36e49e3cbc239f0280403e154c5877d5e4530f7355934b11570f3c3b797a8e92b106ff73898624473", + "3fbac93243a2eeb73c7e2fdac5380eaee7166d6e2f00a008991af2a75e68f43e65b297ae37f83c90a8bc83db5843b4b1", + "65c2e23e7e60e28fcc854c99b5f5d3d7352f5ea5ff248717f5ef218a5017b4feea024634b98666dce4190f092bb546c0", + "918de4709cdd5ee944e77c9616381d106dadff43ac01191d8267da8b0b8944df24da8cd90a810153be4f27a882aa3db7", + "17803bb2717681996513dfab2fc17d4d390c151d75ca2593891c3eeac6d80f7ce4e83a46055ea11b8652b946a9e652d2", + "324db16821249334580a9a3341c5461440a696d7df18d8c3a032154a1393a55ca8688acb63e93c203061c2d5e065abf3", + "dcaf64ad701c3e4a7a1cd47991251eb8c9cd18477c341e3648e05486ae22a7153a85adb86513aea741799097f46e2b64", + "df71d52abdb09739cb6fe33ae347c5687acc47ad3a80f2386c1b94d5dec81439333f41fbd7eb6dda24eb27623af6fe90", + "9ed657297335eecd43fe3fbae0faa7beb2887c6d94bbacaf5c97431f0ddbcf3dc5bb7f1a6cd2a404b92a9f4489ab1bcd", + "24b41938e502c211e946d1341513cee6f6aa237103e9b1d541c3bfca2c42f2aad5147923898ba77cf3f847d7a3ea923b" ] }, { @@ -640,22 +778,30 @@ "b8150ef51101b630a405737ef38a8e7b4e0d4ff437b389b167562e25022a284a", "3103fd0db65d60047062f2bda799d1dd3af103babe07cc015d337f908abfea7e" ], - "pop": "a28d02bb9ea5529eacfd34e1f502d63e5a0d786fde4c840ade0aa9163ab86868ff3c5964cf55a65e799a32a5dd2779eb74242fa155d7ba59bed76259ff6c3f0c", + "pop": "4645f512b53d4fdbcd77430db82d5f86fb34166743ff656ef74bef27ca68fb2f246b37118ef6d88b3d0e378aedada533807ff5905836a283a3936681b29f670a", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678cb7d488e5abc933f36cba7c5b0fb11cd13d9446a24067716a2848b1ed36c955ec0b6f1ee40385c09e03773e6061ae8bacb14e8e57df661ee6a88546a0f4629749b2a99bec353262f120eed04546182b430c8441646f725ee2fa1d75ab2d4b586f137ae83a1a7ee33abe1635e96d6ee2ff7c52f86e37721017fe9ab4e4199982010b2178e228d5085a59cb436ba86399d28fac25971f380477ced7849f63985879b8150ef51101b630a405737ef38a8e7b4e0d4ff437b389b167562e25022a284a3103fd0db65d60047062f2bda799d1dd3af103babe07cc015d337f908abfea7ec7c637f3322e21b93a61d7f08df232c276bb4291bdf21601a6701ef7d882f3c3", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e4345d9f075ef59b1b35a97ca6e3a993bcf829a1b0462506a89529bd123afac36c109cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678cb7d488e5abc933f36cba7c5b0fb11cd13d9446a24067716a2848b1ed36c955ec0b6f1ee40385c09e03773e6061ae8bacb14e8e57df661ee6a88546a0f4629749b2a99bec353262f120eed04546182b430c8441646f725ee2fa1d75ab2d4b586f137ae83a1a7ee33abe1635e96d6ee2ff7c52f86e37721017fe9ab4e4199982010b2178e228d5085a59cb436ba86399d28fac25971f380477ced7849f63985879b8150ef51101b630a405737ef38a8e7b4e0d4ff437b389b167562e25022a284a3103fd0db65d60047062f2bda799d1dd3af103babe07cc015d337f908abfea7ec7c637f3322e21b93a61d7f08df232c276bb4291bdf21601a6701ef7d882f3c3", + "nonce": "f6a5a61f997cfc8893a2fd20a4b73a8673b1a994f151efa67555c996a3609600", + "nonce_commitment": "4645f512b53d4fdbcd77430db82d5f86fb34166743ff656ef74bef27ca68fb2f", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d48374645f512b53d4fdbcd77430db82d5f86fb34166743ff656ef74bef27ca68fb2fb7d488e5abc933f36cba7c5b0fb11cd13d9446a24067716a2848b1ed36c955eccd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678cb7d488e5abc933f36cba7c5b0fb11cd13d9446a24067716a2848b1ed36c955ec0b6f1ee40385c09e03773e6061ae8bacb14e8e57df661ee6a88546a0f4629749b2a99bec353262f120eed04546182b430c8441646f725ee2fa1d75ab2d4b586f137ae83a1a7ee33abe1635e96d6ee2ff7c52f86e37721017fe9ab4e4199982010b2178e228d5085a59cb436ba86399d28fac25971f380477ced7849f63985879b8150ef51101b630a405737ef38a8e7b4e0d4ff437b389b167562e25022a284a3103fd0db65d60047062f2bda799d1dd3af103babe07cc015d337f908abfea7ec7c637f3322e21b93a61d7f08df232c276bb4291bdf21601a6701ef7d882f3c3", + "challenge": "7af55137175a9ce2904e2cccb6f30fbddbc2bf1db3cc1aae6f1096d89854e909" + }, "encrypted_shares": [ - "0e6e7ffb5df7e9e2b2f58d3d371c5431cfb5953ed180bdde2c9d7d1c130a6e31f9cff1ad84294e2530ec79c3a0a02fe0", - "97801309a0f1000d856ee0214d492eaf949bb42a53f931aa1ea72d005bc7a375c80e21bcaea1a275d6706ad9155d41c0", - "6c0d93f91a12f2b1f79a86cb12cdcc3aad11b40847561c326838693def41bb9bc58bc37a340e0d8cc76b87465f14142f", - "56ccf959a6be369f9bc0a22de3c15388dd05f86a3635e0939717fc1e20e49b81b1b7630d8e47f38011acdd9d9b22c488", - "bb3930ae717d8a37c6215f3b3dbf01b4b780f2fc222e4609e29cf10a9a259a313046d9fbd4fefc18f85670f6f9186a81", - "496261c02769750dbb71d9064c87400099f6cc1db379470f173fdd25434960c602741c81336d1448b62f5df9a2050742", - "7bfadd2e5f35f0ef0eba410323a413fbc4c3fea6748d032d3599820acb5520fda562aa7f7b99bc5a4b1b28fa43e054a0", - "0afb71f3a9f6b71bb5522b92dcd5c86e32ab534aa5a52f59ec8d8efc90c3e83358b1c99f4276f590a3fda5c7da873760", - "11d00688d12231cc1e455253327e58bd9030c1a503d1f3253d42ce327fd5a0f9ba4eec38425f7b56556966aac48f0cb3", - "b441b4fbf8098175b33203f1859f8b1b26314069516a35f4e4f28b13d845568310004389706f5561f86aaf39473929fc", - "6565d40221095e01075db0a2aabaed424178fffd57e1e4a633d26ac6f8d8fe9aac480fe7728f03d1d971a19ab4c4eca5", - "3d9fa91cef6589f0ea4e0aab01635718cd899190cf9955e974ef071d3ee0f2b658415e6768a713fdcd365bd7d7ecae23", - "4aba04bb764f483876cbd6b289b40dc68bbe0ab3abf7871f84c34698196702b1ace6c6ba461b08bdbe07546906c18c03", - "54567a41c0db163c6317d4b23dce5e9259353fcb22e42f9d75b5a05f359d895ff9526555537c1a8d7796a329d596b76f" + "e32f9ba0156477337173ac809d1857aa9b3811fb0f4cbd8a7995a7a1339b2f45b8a91cd7738770e7062ecd708372b7f1", + "08abddd10619834a03a9f613a3df29b05edd732cf16187af8510c98c5f4e4310fc2ddbf1e5c6b6057976afd711f39270", + "4d479d115ec27be161ed76ee0dc05e4d2829b93572b1c19dc9fd06711e95d1415b4a242030db850df8a8008416462bc3", + "d20975ee29735c9a30866ee247b4bc167056a20d5912c760852391f6d1767ded346b39a9a28fbb7fe56b156222b160ae", + "3df717460e999b9be1dd3af177389415e1cde07c11424272d48dcf2d5a1708f98f1423d52e905d80d826817c22b253a8", + "b1c48308be30bc5d85b3629d9a2377f1a12d63fa242bb51c9803d9b06e2eeb6157ac4984906c80157ec51bf7a7d0af52", + "a9b0c82ef2749e07f40ea667f4747dba8f7d5a6b6eecdd1fcf80c2919e92251d16d37c029a82ec5e9b78951189180a15", + "952676c0130998cd8d5ff4bba29be572cc78efe68d409db54f32f040c780d50d418ecc151bfa4a5d7e13670021a156f9", + "7ab7ebdd4ce2fccab8d4b2c91228c7f8084483d1e15fab831879efaa91fcd42b2e6524f72310fe5178e9771425276819", + "c06f7a3fb5af88cb84a36a2dfd2919b9289f58363b1b6fb11c7d7309aeb1d992ee8a8c9398840f646138808ca3120344", + "10c83dbadc00f45c9e72619a9a86b56dafc41a9ddbcaede801b887268272cb5bf1b9cbfa94a368e03d10fde385d536e6", + "5c210f4011eaf683b0cf678d482f00aaa6d68b075608e6899546910f059142b7d36cafcc4437555b3b38880a43e5f6f8", + "4f3d2649df83b138785cf615a050d47f7ba52f6fed695e64e62fe1b23f3aab0fd1122916e156315e5a5a36ba47bf0543", + "eb87f26ef9b8a97a4f83d2b929f2b43af8f8819a99c23a4c5b1861ec9ca941dc94f3f44ed512b080be17102e9f8ad7d7" ] }, { @@ -670,22 +816,30 @@ "d49d8e123cfbc7114722c91b25128c7e0db78207584e7eb1da1136059d1e2d89", "adf0c75b8edcd09827ba888a1bced3d88bca1b0ca9adf7718943f64ed788155a" ], - "pop": "5b04ddb6095fb762e1a9e41cc7ad072b3bc29c38a6c80527c01a0c251af021e57ed76b2ab914625ad33e168fe2004714c82080f26b3e4d69610382a1e0fb6a07", + "pop": "e694550cf853715a2bd1edb3258a36848c6c4d58b72f6750045a5bc6bb0f65dcbe806d796f44c45ff3b624cb8984d52f2de74f21bd34d5ca59a23288233e9901", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c170c09025b04e53ec0e866f0c071583adce509f5026ed4e58a8f78f8d143e248b9246fa3339cb000445f04ae3f0a38dd07f3e6238153e87e15f8c90a944823f022fae575938a481ebf5b84323adc56ab70953d38cdbf49def1ab0b63c609639a9e37660b5de64b7d99039f57b7bef9624060f7331844fe0a5adad760f302cd1ddae217a58c573a562543283c4d067b379b165c26d435e746adea8180624ba6e4d49d8e123cfbc7114722c91b25128c7e0db78207584e7eb1da1136059d1e2d89adf0c75b8edcd09827ba888a1bced3d88bca1b0ca9adf7718943f64ed788155a28ffa165a337a6fe8fd74d63a094784299ceca4a6c489a04a9d996b64438881a", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e43452f8ef369d05e556a4c2661ca9c59ab149ffb5d8bc14999666a2c8ce77bbbf307cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c170c09025b04e53ec0e866f0c071583adce509f5026ed4e58a8f78f8d143e248b9246fa3339cb000445f04ae3f0a38dd07f3e6238153e87e15f8c90a944823f022fae575938a481ebf5b84323adc56ab70953d38cdbf49def1ab0b63c609639a9e37660b5de64b7d99039f57b7bef9624060f7331844fe0a5adad760f302cd1ddae217a58c573a562543283c4d067b379b165c26d435e746adea8180624ba6e4d49d8e123cfbc7114722c91b25128c7e0db78207584e7eb1da1136059d1e2d89adf0c75b8edcd09827ba888a1bced3d88bca1b0ca9adf7718943f64ed788155a28ffa165a337a6fe8fd74d63a094784299ceca4a6c489a04a9d996b64438881a", + "nonce": "ac66c51d838f9562a52b6bcf13bea12a1a028baddb97cf74a383738c8fc0a40f", + "nonce_commitment": "e694550cf853715a2bd1edb3258a36848c6c4d58b72f6750045a5bc6bb0f65dc", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837e694550cf853715a2bd1edb3258a36848c6c4d58b72f6750045a5bc6bb0f65dc170c09025b04e53ec0e866f0c071583adce509f5026ed4e58a8f78f8d143e248cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c170c09025b04e53ec0e866f0c071583adce509f5026ed4e58a8f78f8d143e248b9246fa3339cb000445f04ae3f0a38dd07f3e6238153e87e15f8c90a944823f022fae575938a481ebf5b84323adc56ab70953d38cdbf49def1ab0b63c609639a9e37660b5de64b7d99039f57b7bef9624060f7331844fe0a5adad760f302cd1ddae217a58c573a562543283c4d067b379b165c26d435e746adea8180624ba6e4d49d8e123cfbc7114722c91b25128c7e0db78207584e7eb1da1136059d1e2d89adf0c75b8edcd09827ba888a1bced3d88bca1b0ca9adf7718943f64ed788155a28ffa165a337a6fe8fd74d63a094784299ceca4a6c489a04a9d996b64438881a", + "challenge": "374d118ecd4692d68264e42056e77c40d8bb60ee3526bcfca3ac09e1d6633f0e" + }, "encrypted_shares": [ - "7d873e3e309f798994887b992563f18510326af0a040d632b343e45dafec1c79d905d040116b2446fd8d428d1bc200d3", - "11aaab8862f75a2362ce7a62c4a3dcba633cd2ec23b4d7753b3f50e2cb059a9ee39feb758c850de8332474cee341c5ec", - "aab7b1faa74c3c40b78dc8c8fed7c20d75cc418bedb6890b0826bfaedbbfaf54cdcf6d62be03184dc47f0c324fe5cfe5", - "39ccaa60fe7b8c717eebbb4f3f4a214bb32b4845a0d5fb42e8f36727d9c98d041a8681f62b6adb8810442e45719450c2", - "d4e9e27596e22b915171cc0320217c3aa814df1cfc796cdf42defdac09e8dcbf6f996f79d2e377ca97637c0b1f91e00a", - "b607c069c1acfcf15fac9963fb9a0844f8c8a5b426c7ccdfc84e9230ee87b89c1ae6e99e436faca77e950d18b79a775d", - "70f4d50e5b9f5ee0d25767b957af58ca2320984e50489ce2c38a150c37814a56df13476c01317c9732131a0a598ce319", - "1509f71256e8dc7641a7d51a90ab242709fbc22fe73ba3e88d22db8d2564ff97957c91fbe0a98be2547aac50b5f6a245", - "bed5ac4982d0798a0165c123d9b778fc913b1aa9c2660c54b92d90143e8dd6b920c484269be987b3f5c2a1d6c051e752", - "7eb93d3977ead48f3d9e2d52039728a1b464c0f5d2090df8dd38f5b54564c442824a351f6701dcacd605e740e0d7e19c", - "05117bbd6c237a1ef31990f1adf7f47cf1410b4d08dc267eba4f8041f1b5f93a4da595371076d8bcdb6948238d7d9fd4", - "5b49f4d6ea1399f5ad4d4572e8d8ecc063025c3618cdf3cab827da50059d963734143857003644558d9e85ac256f0243", - "4d2939154aa8ab77ca9922caae650269c3dc9d5c63b1712be9f5acfbd9323bb29c2a466ebc6ac801c69be150d724c298", - "cfe69b94f54c1a6981a0011c0586a40963c78a3da0e592e70f685b67aee1ba72a420b8fae201e6ce5c51bcad3526382c" + "22aab7e7242c143c8dbba6b9db36738d4e9eaf3a68a14d72788cbcc2d72e892fcd73fe3b4730fbb02f0e20b1b96799b3", + "f8e3057d03047aed7aa9dc34dc75cfc3490bf0bed826259ca31a67e1acfd0d599ee38649e506ce99b7ed092931553e13", + "d99219c4575eab3b0bba71667d6a65590856d84253596f58a46884d94547a2656e2b13f00bab93ff79a28c261ce86f45", + "d8741f7df9aacc5567d90ea63ad4de23440a2006f05fc180284f77703672468e24907bc0fcd01fe21972faa6b3a22fb4", + "87a33a1176141cb0de3c479b636b9c50ecb2bb183f0631f01bb00b3b45735f17ee8face5f75198577b3f66c0cc1bfd3f", + "54be6929fbe94468fd1d1ebb2d39bb8c9f7f32cf206d76fa23e4e74acf3e99cbd7ac651328270261c0140dd3acf77422", + "158df753f4eced6f06b8353bb4b4c0229708f1fd94458a63acb2448b6a04f3b64decb498bfdefb19047bcb5547bb770c", + "a2398a0685819498d2b1d5cb5e020c42517dd489513b73a8ea718b860a331d8f7adc8d24bdaad1ad612dcabee3d8fc91", + "003a8acc80e51e02b7899158522d13df1bac72a1e063500a31e6edcb8ca5a8425039b6e91d5bc008dd8bac1ef241036b", + "e07763306bbc12c7c66cd6bf931098449c2e97e20e98b2779274c50eed6724644bb3b054ece14aed00670a676aa59c4b", + "ec8f90265d5b8840c2f5edadc982d28e553d4b2b1ab0ef795f1871a58e7b0602fa06e307e73a6f77ad3d571abc76db78", + "9fae47592f9c45a78585af45b8f2f87521e32f70aa3d87b0fc63c36d308dc907e91942a1db077ea55ff92f02e91510aa", + "dff549ffe80d77833b2138b8553943f5b1512e75196b6dc9f02cad9b36979bd1c400cc37bc88f35c07e5734e6d18607a", + "6d167cc77dabc188e7593e7a49eed3ef0ec6e1039e12bef4e29105061eedfe582c16f110654602b64fb713d57edfc523" ] }, { @@ -700,22 +854,30 @@ "56fe89800e07db8007553047d7f8dd3121080e34cda00e546b64ef254ac20cd3", "396bd279026a38d1798cc2aafb46f86684ec84066cb7048343c6b4ed22e03772" ], - "pop": "1cdfba449defc45cbc73093c49d18887fc0bb4044ebb22b901c47c7f33634977c208aafe5267857b5fae687cd89add6dc81175d7bb6c74ae8f1253d29706a50b", + "pop": "8cec7a4b2a386e1fa14f86e239ee982f9c2066c5f913cbc3e6fe940f178f79a43bcb8f91ae5b25b16dd9062338ffc0cd760c75074bcb215146f0b326203a8808", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c66952760f7acd6b3e91ca4886a80f0743a13fd68e2cf132f6bbd3d66b8e9c78e0a5f2e38fc3c2b29154936f98507571d451efd763ebe4abd79f18a8397ad7703ebb94efcb4f3f7f8d11347c5d0198db175bee6b20088c6d87e9400eede637349ed62766da9eecc81eb91e294a0c3ca6b24617be617e029988859ece191961102e388d21f0b0815e8677533482fb2f1a4aa9dd6c880eb95292ece52f04c2af63256fe89800e07db8007553047d7f8dd3121080e34cda00e546b64ef254ac20cd3396bd279026a38d1798cc2aafb46f86684ec84066cb7048343c6b4ed22e037721902b9fa56012a0f1ec6a81fc92cb231bd344e0e026dcb3ef64308c06a113165", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e4345c1be838454df1ab502f550065b0114521c294705ce4c03c9d3c9db1a4268ee01cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c66952760f7acd6b3e91ca4886a80f0743a13fd68e2cf132f6bbd3d66b8e9c78e0a5f2e38fc3c2b29154936f98507571d451efd763ebe4abd79f18a8397ad7703ebb94efcb4f3f7f8d11347c5d0198db175bee6b20088c6d87e9400eede637349ed62766da9eecc81eb91e294a0c3ca6b24617be617e029988859ece191961102e388d21f0b0815e8677533482fb2f1a4aa9dd6c880eb95292ece52f04c2af63256fe89800e07db8007553047d7f8dd3121080e34cda00e546b64ef254ac20cd3396bd279026a38d1798cc2aafb46f86684ec84066cb7048343c6b4ed22e037721902b9fa56012a0f1ec6a81fc92cb231bd344e0e026dcb3ef64308c06a113165", + "nonce": "edf2573147c350301bd4f5e2ae5dcec63324384f760f7a5a1222740e21d6ea0d", + "nonce_commitment": "8cec7a4b2a386e1fa14f86e239ee982f9c2066c5f913cbc3e6fe940f178f79a4", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d48378cec7a4b2a386e1fa14f86e239ee982f9c2066c5f913cbc3e6fe940f178f79a466952760f7acd6b3e91ca4886a80f0743a13fd68e2cf132f6bbd3d66b8e9c78ecd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c66952760f7acd6b3e91ca4886a80f0743a13fd68e2cf132f6bbd3d66b8e9c78e0a5f2e38fc3c2b29154936f98507571d451efd763ebe4abd79f18a8397ad7703ebb94efcb4f3f7f8d11347c5d0198db175bee6b20088c6d87e9400eede637349ed62766da9eecc81eb91e294a0c3ca6b24617be617e029988859ece191961102e388d21f0b0815e8677533482fb2f1a4aa9dd6c880eb95292ece52f04c2af63256fe89800e07db8007553047d7f8dd3121080e34cda00e546b64ef254ac20cd3396bd279026a38d1798cc2aafb46f86684ec84066cb7048343c6b4ed22e037721902b9fa56012a0f1ec6a81fc92cb231bd344e0e026dcb3ef64308c06a113165", + "challenge": "3413a6b8ac1802d67482963659633bbcf0f72b6f3ddf795709aeb0a055c2830d" + }, "encrypted_shares": [ - "456b2c3aed159f290db5020362c87ff850ac00b8b0fb2a68dabb5c9fe8a16ba236daa3a8595afe9b01b63357d7ef31b7", - "5e32795f9d9295b7a08d1c5b0da55dedc4f7529e65100f3d922da04eadb80e7659f5f07dd132d24b392328c95c220313", - "d5c205bc9bd512128fafb2178c41e4d6f8827d1f53e8eb87f311673578a2cfebe67a95f231026a188b3c970bc1ee3b50", - "1b26be6193e02d2faea7380b77c2dbb8fef5c9d01a340e5ea49119b3bb360f99e3e954031586ab4120c7e49435b6f11c", - "6d50513d775bf531272167601628df79499ae1bb79d4146f4a57c24d50f87b985cb18ce5e1ab553cb01c4a59efeff9a6", - "84fbb5dacd4717505ce92e8656b023197a0859d2abd3dc88967934d6dedc698fd352c9b53724a3f3c410ac4a647f861d", - "1d091fcb8e50cf21413126594b65aa9660c9e2bcebbf05880ad2d137f2026a50e83ab571fc4e4d6675596190f3e7fe9c", - "cf6745f9342f2d1b03d6626b774fd131e0eb1daea9097dd30813e52d491ab338ccc9a7ce910c7697c7b0546810cf8fb5", - "96ed6df53f39764eeaf9b153b3dbd780885b3d557161f7d887ff7abcff8d7e7fc6457543d9877ae0ddb026337ae68d2f", - "6386e0051ce1bd5ee3a68b9d621554933b6621b696154855d924ea11bf0427092987bf1584fcc95cad03c795655b2075", - "75303d657a6a8217e7c115a614707eebf67c39c9b56727473500554664aaab5b76d865a655ae7db5a0b21a42d3c8822a", - "ea3670dc26da123ace13ea0c3940549f03706d55048ef6bcf9b34b21d1044ebc765ef53116447dfe6519969a03a211b4", - "e9dd1c5b8f65ced0fbbbb56d0e6aca19ffe01ef4769b6b5585ad018935d830ccc250bccb1e2ec21fd1dc0f4313a0f38c", - "87aa51b4758fe82e71d13fc3cd711bc7e83a001baae749e32c313cb30f3f43ba07191bbcbceab372b88ddff11cf043eb" + "b47f4641f5739edfd1f97cf27ea32213c7665e251e396f3b7d1ab420a776004c88502de14b1829c3a2a229f0c291ec0c", + "818f9af0c2815709f32db2e5e37931f6c6cd3bf391f921f7bc67ad43d22a60d87d9c670342a567f299846925ec701e13", + "b63a8d702091e59a2c68bd2e458f75e556e834cf8a3209a3037f0a1957f6377150def563a5d42d11e012db2e6550bf76", + "d10113794ec8439391c2aa4e9208a1b2c972011721494f8e7296a4babdd8a1ea4d80140e1f5a002c44fe84b9ddfed4be", + "324025ebb7ae2327fecf7a5486579c51ee94bbe1174ae7a94c684a334413caa761d369ad7646810a9b5a7eee3fdc3067", + "bb952e8855837ddef9c421ffda47125118bc17a6a84a124c69990b51a9e9a8ad58b298b143ac8c66f7f43c0b19121c12", + "6f37d622ad883f5f7c1c3919f33c7b7d555c3cabc9e44ec3c9b857c42fcb8b5d02a3b50545607b321fa2b576539bce48", + "c06e8a2ad67ab8349d0d1c514fb2899dc3c1cfe9cadee29e9b553f0e1ebb1cf2d65071ce3010e17a816c1a358cd63050", + "965ee6ebe5346bc2c8d3b08d4bc9253d579bfe018213e8cc501649962d5f0b0162d474af5c9d724c49f5174585bdaa47", + "7770223e7ef4108731e450a37cabc9f093561e387dcb23ae669db195a0dd003efaab1e63d532818cc2d36d3ee7ec237f", + "7605495ca2eb5ed6700a0f7a044534c45af94858abea04d64ed02eff79b3adae66dc236cf6f5b1dc61fdda4783bb829f", + "33cf9d862f2398bfa4c5613385ca63aefdc741619b505b5fd18b2ccc169f0d5b5506b4da912c3903fc8c7f5d5779198a", + "897017fd082e65378039473bf6b49a6623691e7a1be9055b9f104827aa4c915841ecac65f4a7a78660e2304924c97258", + "8bdbd961434b28e9fc762c639ff2d7e439d6f6d255da6069ab60f5b999214af84ee51ee5ffa3b1ebe076cd41e78689f3" ] }, { @@ -730,22 +892,30 @@ "4a34153f93828c0e11bd12ee5354983c0702443a200509c08b3c5b03f6914a25", "cf86e9af5d9346cfa85d3f0ed4a2f5caafc3eddb1e4bdfb2aa47ac556b940d0c" ], - "pop": "a86a7e6789780852dbaf27b4774e992f34324e3bbf720909db73ab60948bc97a2d60000c4f962218a3faff9805e402f83ec9bef9d5cb8457489a2ec5a6f1c30f", + "pop": "a2e3f9de8a4244cd96571490073be117d4fffa810477a056180622628850dce761209d20060cfd2b5b193af57f8c32aa6d9b2d6bbc82f09130143dee2058a509", + "pop_intermediate": { + "message": "cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c41e386a282fa8130686b6daca702a454fc49aa6b58d8f25c0fdb35556a4e507625e4c2c64fdfbe3e95ba3dc721901584316c20bdc7042e5131ee67f97984dc8283c6d42db01e6305afbcc32ee22876a6ef9d3ef72f6e80996460b21be43b076a15bfac3955c11453e9cd7866df965d7cab2f3ffd328d79ef118a606cc159997e507e3aeb3cda6d20dee7f300f56204033f9ca6803ecda929c4e1b1135a5e02ec4a34153f93828c0e11bd12ee5354983c0702443a200509c08b3c5b03f6914a25cf86e9af5d9346cfa85d3f0ed4a2f5caafc3eddb1e4bdfb2aa47ac556b940d0c7a96b83ebb29c73c5dd728e2d90ca82a73fe4b6e4eb3551aff4985e83acc5d09", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e4345609a4a3e73f7a8f579a557066c4f7708e0fb674b028e7fa0b0635fc9fc512701cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c41e386a282fa8130686b6daca702a454fc49aa6b58d8f25c0fdb35556a4e507625e4c2c64fdfbe3e95ba3dc721901584316c20bdc7042e5131ee67f97984dc8283c6d42db01e6305afbcc32ee22876a6ef9d3ef72f6e80996460b21be43b076a15bfac3955c11453e9cd7866df965d7cab2f3ffd328d79ef118a606cc159997e507e3aeb3cda6d20dee7f300f56204033f9ca6803ecda929c4e1b1135a5e02ec4a34153f93828c0e11bd12ee5354983c0702443a200509c08b3c5b03f6914a25cf86e9af5d9346cfa85d3f0ed4a2f5caafc3eddb1e4bdfb2aa47ac556b940d0c7a96b83ebb29c73c5dd728e2d90ca82a73fe4b6e4eb3551aff4985e83acc5d09", + "nonce": "f647e360ea3bf3b22acbad1c185fdb1669edaf1ac8c0a60e522cbc22caa94e01", + "nonce_commitment": "a2e3f9de8a4244cd96571490073be117d4fffa810477a056180622628850dce7", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837a2e3f9de8a4244cd96571490073be117d4fffa810477a056180622628850dce741e386a282fa8130686b6daca702a454fc49aa6b58d8f25c0fdb35556a4e5076cd81f66a14159b3802b485c90c703d32a9f2a00b567e222760bf768ea1f5cb6b2a4f8a4e0975e4ab3f0a0f525f09e4a204ab473de3f71d558f79ece354ae678c41e386a282fa8130686b6daca702a454fc49aa6b58d8f25c0fdb35556a4e507625e4c2c64fdfbe3e95ba3dc721901584316c20bdc7042e5131ee67f97984dc8283c6d42db01e6305afbcc32ee22876a6ef9d3ef72f6e80996460b21be43b076a15bfac3955c11453e9cd7866df965d7cab2f3ffd328d79ef118a606cc159997e507e3aeb3cda6d20dee7f300f56204033f9ca6803ecda929c4e1b1135a5e02ec4a34153f93828c0e11bd12ee5354983c0702443a200509c08b3c5b03f6914a25cf86e9af5d9346cfa85d3f0ed4a2f5caafc3eddb1e4bdfb2aa47ac556b940d0c7a96b83ebb29c73c5dd728e2d90ca82a73fe4b6e4eb3551aff4985e83acc5d09", + "challenge": "d8f04353f4f5d69a785d0e13329ddf86e76a8351f634d6d42e62ea3a3f51c20a" + }, "encrypted_shares": [ - "5c3651ec6ce24ca39e9762f14ef2f0bc3005c9a9249dc9ae2ff766047837f9870e86ce93507f4cfb986dc082a4335561", - "6b7d57767b1e19d0a2fb47168651f134763c148b8759d238e20c2a466cb2d53960c0c3c04f3fd57853a8c2c967c62657", - "6674a2c7077fe97c00c541065052cff81326d17c8665192e4450bcff087405d41cd2ee3409eb2f172900a9ce7a3a49a7", - "bc1c2fc3b8f76eb1825d3581707eddfdfaafd27bf47f9a23c5a19803c77a717c4d1239e0af2a0bb978a19f5e8084eaa7", - "1a3d7edc3849e399ef828b3e0642890d687c9f1c45955c9fd49b772cc652aa2b23a39e38334df487845e5f33ae86be46", - "a74caf41cabf5ab2dabdad91031b75990bd9d650b9affde09a2713dbcc866255fb154aca9211121d14bd622bb5867338", - "5349a1e8a61e3b3ebed7275132fff77f27eb21fcc63235fe01ad3055a6f98ea481c7faf5d2a82835ee6c55cfadc49532", - "f2fcfb3f8bcf55b84e12a15198faf3e089fcbc9af53ad358dc243ec5c17a35f94e4331bf6d442389be71f0ffa0af03f2", - "f2555d4e1aa8bfd94cdeed14b49687e0ef515b414cec830edffd6c32a1db6b2f4e8cc2811a5706f70fae9a8bbda96339", - "9d2b8c9d31800ae633e5e06f119c4b74e0cfa4c11493dccb0f21c77255fa03de2464dd24c3bcd5773c758674f9442298", - "b853fa24dbf3c29000ff4c513069943731409686a1d4967dc1c9c95563313a584c40c6a5ed8fb53f72679176ca246663", - "91f67305d0d4df7cf48a0a85d365163df7ce97bea5eee8dcb03e8b65d8e663334d4c7882731548794280a953e96cb3af", - "1956457f7d8cc80393631ea12ab64073f19314d0b68a7c263428ffade35070a15a5ac2f4ce4a09ac7d16f068487cab96", - "e2caf932169e8486dd990ab71a9e03af4ff2161853b4373919dc633c0bbf6dcf50d59ff81fc8d5f499264e0ea9d48939" + "850926974406166e106cb8ef8b0b4b7b300e58ba64cfcea5e1b00d4fbbc235738844505588d82c32bac75ebc8ccf2b9c", + "4aa484ee9de72336cd8824ce416f8dec6054a40518410d92c1fbd2153daf1a6ebc7e326c70edf3858a45a4665183fe82", + "c682ad850327e0a3b7c17a2af12cdac920caf253f546db4bf32f0c85f0f3871199a9e4fbf1ae70028fc025e0eb220d87", + "1b1b81394ed55fa942d4f994aed4a5c0e079891c922c90989057e603338488f0c15b3c18b1a1965e08d3f7a751e4866b", + "5339217d80c6de9048df1d31040b4a92f3f4a59f7b119a390cb2fad7ac364e9204b452b2c2eeeeec7d7240f71cd02659", + "f2e168a4a9d57fc66a3ff58ca85ac5afdeedc504a0446e26f3ad26c90815180a636cae4056da2eb4dc5d8cdbce46a81d", + "fae2595ad0f4207e1bc676d65b771a22d377d5df11d553d192e984bf89eb0ec4117b730cdad1d98d9a82b86a633e065b", + "ca950d54ff854389c8e830c58447ac9901a5059f940828b988e0345ff60c0d33d106008a5cf87002981e19ece460a33c", + "0fd152761aa7fb7098dfabc899e7fcc5766b5dd09ad961612da0dfa20e5eafbac9f15c6532b38e2334c103736a20e33a", + "eaaa8029e2c094553c936ac4e4187ecd3ee83bbdf6fe6ea89d79a05a399fc16f5bab3ed3edc77715755e1636189225fd", + "65e1857324c9bd1c9bb4003a1fd0e4fa4b4854a3e0f7fe363f17fb7a949d109a09f6827c37808bcc21700faa7e934646", + "d7492a29b7074d90b6c62d627449d4db8ae37943ba6de6e0387fb69da45c46478961fab26850d11afcf27b6e9ad087d9", + "bb34fafe3ba30bf0fdfdb336b641e183d9fb9dfb6b45d4b0e16e4e08dc1273672f0723a6be2981335b6aeb97fac379b6", + "95a7f74691fea2d735334ce61cff21f35e073f0be36cf2317c6d3b8923326843f359d329ab89aa1a442ffe546475829b" ] } ], @@ -822,93 +992,74 @@ } ], "round3": { - "transcript_hash": "42d65bfd93ad920dfcb048b90ff5a4b45d7e4d48e559c7aa89573d18d50758ad24bf3242bd87f445623aea08aee37edff4b45d2ddf2e6431d170b8a80caeb7c7", + "transcript_hash": "950df70596efca7164832ff48b6f29b8d2ef83cda76663824f452a33baa2019b3ce488d1fb8128b8bcece812af3ac02caba2712ccfa2a69814858ad5ea423e09", "signatures": [ { "signer_id": 1, - "signature": "3b1367290e890f881abc9030b9c655f58c1ec10fbb905e3e1488d122ca41d7c8def539dd230a9b0daac62443d463011621ce2bf74ea5e235a56c1a550ba6f90b" + "signature": "b97bbf55f64551b6cff43a75674f46f30e62c1bda250d3e6f8277cefc028a9706397e93d9596cc1dd314cbbbe17c0683ae012ec542348f98fd6730bb8c1aac0c" }, { "signer_id": 2, - "signature": "ce6a61cbcf33dbf2235d471c99fd044107c77cf06b2a4fa11e8f1fdd5e429b69a41304271d23ba1a21af6c1e0dc3d1847ebb630aeac19f3bcf074f4289d1ea04" + "signature": "1e92943c97a9076cd3f91ccf63ac4eab2f8b7c05379c25d33ef08f89f0cf088d1d80663404ee9a863db61fb886c64d8a1f028f3eb870598faf256b5897d76203" }, { "signer_id": 3, - "signature": "7c86105ad43b7f45b5403e77bde44a4325165127fec30f6e739f05eaf11e077c9b6af73d5bdc103e42beb253bc71e921c054a564391ba9aca98e750d890c750b" + "signature": "4e3a8b1cd3f9a47bf868dd8cf1b5e1fc7cb90792b5170f028afaed639eab08c37faa4fa3e89eadf4394549f011aab34ca2c32c99ee07eda48bbebe76c9bb390c" }, { "signer_id": 4, - "signature": "4b694069c6302e73f22db4b640a6aa6447003334d9c5adf2d6e20ecd01a581a4069247f9297abe3526ca17efcbb75bf1b074b3a873b98f78686623179f77c50e" + "signature": "4b1042050f4021c80a0a3db86f62563b154c743bcdbebbf499c92c87e1239b4257637db05a067157234565f11256d8e57e968d06aa089e3740e713d5f14bf706" }, { "signer_id": 5, - "signature": "0a6b303c24f0728da8bb25c3447e9d13d17496bfcaa91a91c05fca2aaf26236f9338866d83be74e79536162f05e4052fb56436a2181060c3af78189ed21d230f" + "signature": "b7425d9b1ad694d4fb237c0787fc5ffeeacab8217a262eb5da12e1ccd56a0f32ee006f14ab697dd2b5a3246b3209750eb44bb8ad078ddd8d1358a7a90620b106" }, { "signer_id": 6, - "signature": "1b59b2ee70888d59667b8ab5fb2b2951d0905c83cd7bf8284d691f93f1c985e2d450c0e857e3eb606c70aa4753ec7213c573bc4f6b5e7f72adddbdab6d9b8f0c" + "signature": "4abfcff75ea4cfaea0233db2ba1e12b2aa2cb09ed16381174a62b2f519895dda79cff088b2e183e58626c747e7b8bcb1cecdf23e0c234547209af4ce7dec3203" }, { "signer_id": 7, - "signature": "9cf0900dc7cb64e0e1a778fab17265a54e24495d1baae4023c0eef22dc8ae8e3e0f75a24306ca124e99b7f36f296ae24921f018b49b97f46944a34d4a78f780c" + "signature": "5be950e9f67709d7f4843fb57f94bf1f350148bf07e795f047aa058396aae3b97a482a4391eef722ea7d713ae2475a0e4ef959cbceb8c8e8e10ebfa972e8d30c" }, { "signer_id": 8, - "signature": "ad80f1cae8f35461f5771a7b01f71ac6c21dccb1c3059839ec1b966cec669dbfa7ae6953167d61bbc93060e4694259d76a492ebc0c09e826bba34e18d4fa1401" + "signature": "3a28323c83f0be21369670c4873b692cc6f96379745d3c34b5e7330ecb1c28d24034f57f03af00f7fdc1170c44b55b0bd5e9318ca1f3d19cacdcca37b123aa09" }, { "signer_id": 9, - "signature": "700c13cb118fb25edba791dac2c01ff8d45b40989ef5956a8f09953af732a82069b20cab9b4cff1c3fb0aae295c1772ddaff0138018cd0d32598354990855302" + "signature": "e42f0f8cafb41c837ef85ed3c3f54389bf641ca0602dd16dd7ec1da8d08f44ce2fadbaa85f476a12bbf8199435ad4aaeb9243913f59e0129782d89af0508090e" }, { "signer_id": 10, - "signature": "5ec0fa59e9e8e7d7d9301d145f21e36c71f949d539481e03f98ecf02aca290c0f768477d4e25653d0f2db0081192f03f174042c902cfd6403600becc9e7dc705" + "signature": "b127c5b27079d3faaf5cda541f36f9e010216d2f21bea5ff7369fa1f82acd2c7c1a1ae39e576f983da3c7fb36d3825411abab0ebff27eb1035657e76c2b13501" }, { "signer_id": 11, - "signature": "a7b0ae91a47dbabe7197d420da07d00618065b03b97bb6b0b2f9d60027fac152bbd8edbda81895cee6e988ffada5d5784b5a5fa678fdaf63e5b064bb50d7020c" + "signature": "f97f6196ca34ea7f31b9100de0ab11eb530ad24fa85cf15f2e9ff00058f91f40548ebe760a020d48715299e16601b825a5eac710154c7b797e7fc82a55739d0b" }, { "signer_id": 12, - "signature": "c53ad1c1087bbf76745ba542d1b46108a8175a93483309d0fc4e928a74099d517f7bdfe708641fe8207335aa3336237f14eb93acc0065a55d4e195153d8f7b09" + "signature": "697c804bc911377b34174617519025560d1be0dcd8e1e1b24267f2ab268f5a7df4edec071924e251fdf52087d428059b1a06865fb93314acfde62dfb6b1d990e" }, { "signer_id": 13, - "signature": "7fabcd96d266e30736e99336b0238ff18f7cf98d2d591edcda75616f7183e6648c7f14701c1adf7965806015f3b740ce4e9b49b83710f46d82d58c7c778af706" + "signature": "8bb29f93ca4183c35621d6237017abb7f217635b6461366a5f14cdf268e5b866e2e424dd348eef86f5c22b739a4963cb2c80b648ca6a701447028c7061f6c809" }, { "signer_id": 14, - "signature": "52779e41e7bdfa5aa5769d705b56404926bf8808f3db4cd264e56a04aed8f08fab2771723a982f6139861bd66d32446dae20726882d1fed841d1676488669b0f" + "signature": "9b43f186a1ee4c42721ddc4d1b4135bd8930e18972b7b633ea2f1aa5b803c16ac7a848c4a5bbadd51907687ce3c1812988bdf45ab76124d909ff454ddaa33c00" } ] }, - "group_public_key": "d3bd4888ca21d85a346d97ff7a95f07a22f2060f8566ce4228e61f214de7730d", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "31aa6638fb9526fe734101a432cfd8a02db6967bfc9eeea5f18281c5f11761e57acab35201c7fb0857bb94e897af538a", - "25bf5df8189cbdb175cab533b438c3a8302ba442dea605771e235684fb5183e03812b08d994020ae7ae7134ffe080d42", - "7ff806ef14fc0fe79badd46918dcdb6acddc2de6080b4ee847586564d58d9723b3c876b3777dc38a41bfe8a000c8b7df", - "8ea087b8ad7c163085d16d5efc03bdb4c0ff1892686a8d5dd2a2265259e46b77555457fae4f4da72f3f3b523323018b2", - "a57ba6db32bc68c0d3d5672774a106031ebee2e3f64d18c4655d91d4628a10c5203593f62340a8cb3361d36038026696", - "1295490279cdd0c22d4cb078d037de263357b9217be5bc3614f2b06986432938edbc49bb328af74e38eb7f19d419b0e1", - "b2c363c2a0a2fb73002a34ebef38ed49ecf07babaf04daeab561d3294c0d71cf2d432f75f030b89fc9c5b995ca1020f3", - "c63a8cb52cdd625574a2f7c116b922c79a1da9f6acfe4bb2ff0a2e3d08e600e7624b3d54109dec201001643452b570dc", - "61c293eb9ce2ab514dbd8f76402763c73c514a646d3405b577fd633eff6d83b0ef6f7d90d13dd8cfc9c2676225afb104", - "776dd600ffb97f314ed4b740f30dd7d23ba83a29a5ad6729e85e9463264806b0c53ca265f4b457e36b1e99ca00136809", - "0e6e7ffb5df7e9e2b2f58d3d371c5431cfb5953ed180bdde2c9d7d1c130a6e31f9cff1ad84294e2530ec79c3a0a02fe0", - "7d873e3e309f798994887b992563f18510326af0a040d632b343e45dafec1c79d905d040116b2446fd8d428d1bc200d3", - "456b2c3aed159f290db5020362c87ff850ac00b8b0fb2a68dabb5c9fe8a16ba236daa3a8595afe9b01b63357d7ef31b7", - "5c3651ec6ce24ca39e9762f14ef2f0bc3005c9a9249dc9ae2ff766047837f9870e86ce93507f4cfb986dc082a4335561" - ], - "recovered_secret_share": "5ae8e4e94395ba0838c4ba4a8849130645206e71aee6c9bdc12fb56edbfcfe0c", - "recovered_verification_share": "fa590716e0023453938b48e08717ba09446c3619431c69c777c20988fcacc619" - } + "group_public_key": "d3bd4888ca21d85a346d97ff7a95f07a22f2060f8566ce4228e61f214de7730d" }, { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d", + "extension": "d5103fd4c05874d7ad3be54c25d2f05896796a393da540d3cb686e4af29d9a8b00834e4f732bdffd2f1d9902a04e008e726eb49075adfc67cafa0710749138b3", "config": { "static_secret_keys": [ "976f8781ac89edb9b14f00b42915f36add6fb01f795ad7048e88a7246ab35304", @@ -921,6 +1072,11 @@ "e4f58f6834e2315cc79cbb142ffa2ae0700f835ddb581818e10553679c32fafa" ] }, + "payloads": [ + "ef0988a24c8babeb78a98cdfbe4945e55864dd6c2166519aef598c306ed8006682b30b911e02f86ed5d7b5bdaecf5402dccbe7fdbae95e3dc0732384aafd4873", + "4e458971b8f195d575b4cb980d6a40ee27c0fbc834d93afd81309b5f2c8f78c78bb5417c2ed71e56a11f460ea383e8e88eab7d414410bbe7614efcb72e7d5a21", + "dcbd9b51797392dcb76b1db863a1687d286c481702ed0d8b28b4cf736d37cff07ccd2f0ef3029629eeb0a598bbf746205538787456346c02614ea36b651b4d0d" + ], "round1": [ { "participant_id": 1, @@ -929,11 +1085,19 @@ "2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941", "590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1" ], - "pop": "a7abfa107e2ac05ad11a71fd494f3f2baa177253ef9c7594a37da917f2a84333bd7a61ae269c5624b8eb49d10e28a78f07718728f59b2bc626f9d07e653faf09", + "pop": "9cd0251b5bde0300655f9cf928f5ebe9c9d7fab6ea180301d7191aa24b4a3931e68ab475fd840958bd6464a5d3e31f0b5b4a0026448d8f1ab1e9b81fcf349209", + "pop_intermediate": { + "message": "af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e43450b395f6c13e8985609f2b2e1acbcff8a70cc8e89f43aae1b3e8a7548052c590caf4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", + "nonce": "ed649b9ea7cbc1f3838ec80a4de651a5d605719cf4b54e414c510ed726e58804", + "nonce_commitment": "9cd0251b5bde0300655f9cf928f5ebe9c9d7fab6ea180301d7191aa24b4a3931", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d48379cd0251b5bde0300655f9cf928f5ebe9c9d7fab6ea180301d7191aa24b4a39312217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d2217b681606a456c42535666ca40bc050b34e08985a40963887e0a24ac5d9941590494f7824ce54c66ffff3427b84ee5571283418bdfd0bae9bed11797e750f1f5f57f2f0084681a9065ada60968c0f8476d8fa5a5d7ffe152adcfc15dafcca9", + "challenge": "b7972e8e7f8e662135d4af20bd4542924e0d7e27da97b664c3f2666f4bb28e03" + }, "encrypted_shares": [ - "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", - "156d49dae0cb8917f47e70e75d7eaaf3251d160eefc294f9b5eba5f918ac453a05ee5351918384d62a43e888659e880a", - "a90c87b8b6cf42cc308e488f50662f0988d4229d68eb00e70916079bccb8df591ac2732b174e86a57bd292fbf485cb94" + "de650ddfa42b58510091a9feb061a609b3023d67fc5d5cd1d9b84941cc9dfb188d1a5e5f1db6c74559845357dcaa0a36a4148144c3c0f6a62e5bab2278ba222c0ee8995159f6433ee339bf0528e6d59c5a513b390a66e850d414e0922ffa97f39b589459c581edc274d04928b020feec", + "fe1052b163b019d8f4a1e71cc9a91deec7acaf4c8ee8b35c1c3d2208c54b4494c6bcf0405a5d4676392b208d0cccc07480f55540ef446fce53093821f0b720924554491cf3dc1587373cd5ce7cf2ad147f9257c584d861ee3e39cbe04023374b6ecc1179ca4401b16ee2673c6d6c9302", + "01708e47a02e25adf1509b84f5a0c73b17c8b3d0f66df03549809bd2ee436572cfac5d9234b427957d5cba456f285b9ebb39b7c045d93e4780f9dc3098fe64acdcf92af7975f9d1b7545fe94814cfd12aa73bad35078d5c52395d5052e1061cf22eec3063b0b68b2139542318518c65e" ] }, { @@ -943,11 +1107,19 @@ "3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d", "5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd" ], - "pop": "2b8520cf63b7e857d02c47367dd20c54c27dc2d96a6dcff3918bd4b8616bb3d01ed4c7d2e3189955c3fb4f18988f56e3053fb2a62d3d0cac49a860a22da90700", + "pop": "de65c8d2ea984c6cbbc61f92c7bcef4cc41470434f78dbdfa84944038deca2a579d566c1795ac684d8acdb2eee09e4e726c3be58c036f28cb55ecfc36f73d303", + "pop_intermediate": { + "message": "af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e434519805566c5d90d29faaca62b1c384989c675c95e995a229ae2dd6cd257b83703af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", + "nonce": "d03a61f5d564e84147e4363e6cd2ae180f5ce66de4d2adca37972cf74d0e6a0a", + "nonce_commitment": "de65c8d2ea984c6cbbc61f92c7bcef4cc41470434f78dbdfa84944038deca2a5", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4837de65c8d2ea984c6cbbc61f92c7bcef4cc41470434f78dbdfa84944038deca2a53a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925daf4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d3a35d24865ce57b7ba3dd2d9a5b0edca24be1ec9a1ac2c6e6d92987e416c925d5291ff58fd340b621163a9ab7e18e4784271496e333f31be22f6173e2eb299bd1cbc94e6d907f225c31010a022759ea25fa816de8bb03795c761608beec59e65", + "challenge": "f7086090747de8e6213de89053fbd0e0290f87c48bf4acd5c5eb2e0d2e508e05" + }, "encrypted_shares": [ - "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", - "cfc83a3f386eeec4789ba05cfe565a3240b6c1801e80a4aef8771a23c389b526f7b2b601020d576e2f72c39a4b2c26c0", - "fb6cec9a16d2f536457c96afedea704a5228c42365b34377c04f7c9e953a45d09ce4a40f5ea62b63fbfcae9a452b56de" + "68cb488dcc55ac5df84fe6959852ec4e1a32172138d08dcab3e5b0a8f5955a91fe8d0509606eeb85dbb81f3731727ff0924e2538c7b949447628f611a1a2cd3e08f2dca10808e4e2c04de1314046626083be9ba7d3c23c7b445698fd9ee14d2649734ad9ab8acdb77b29922bdb8bd85f", + "6da258ea490162af834a41a82696d11fe1254484ea4b89ae81dc63c2736832a4397c0ed6e46f8685d8d97374ac08520060d6aa0d931fe08498226ba470af7bd6ec3863d8c4ab0f472d84f7049185e24a1b2a1404f95251343966db0b388136846662c49fd4fc775c437d5f32ce70b92f", + "4bb9cc548cc7f1d7a7221222f8956cb715fab906e07bcfb70a3cc5de507e1c9d148508b7016d23858441657787388541c9cdf83e12cc23d5521dadb6eeadc7b46c1ad7f78a5a96d45b2d75ebcf99859b898e0e8ab4379cc0ac8ed65f6abe1b16a05f3372f98aae12f575816f3ce3ed8d" ] }, { @@ -957,11 +1129,19 @@ "74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8", "ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d" ], - "pop": "af79a5ff31a6536b2d0b333452c13ff0089192aafc9b10323e017923ef8e45c9d5a4cea1a5f14c86eccdf8b3c0ea25c9d7b9ba6b071c0cee0a5374f95285d003", + "pop": "6496bfc769ef92890a107135104ecb618c03b7da9bf30be35c5e3ee82572785a3534d5a43e17fa99e77bd24481c5cd3e6565cccd80057629b1222be6ffe3b409", + "pop_intermediate": { + "message": "af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", + "nonce_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d4e4f4e4345e4345ad5914e0ae149ba0cff41731995552dfd36558ad01f3271d26dfd87ac0caf4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", + "nonce": "f0e1677e83fa5352d0f3763ad6a3a216128ddde95eecd38e80c17575d6c03401", + "nonce_commitment": "6496bfc769ef92890a107135104ecb618c03b7da9bf30be35c5e3ee82572785a", + "challenge_input": "434f434b5441494c2d444b472d456432353531392d5348413531322d48376496bfc769ef92890a107135104ecb618c03b7da9bf30be35c5e3ee82572785a74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8af4eee2b88a2e576f3b621cf8df10a5f1b0f2132f889a36fd5626ee63b78d7b66bffabc2579b61128fe60d51baa220fd09789af643f652f61c7dffe7aaadb00d74d249ddcd25a34e6ba37482024ff871d56eda470ecca36bf1a42658ee9631f8ecce23b7e766ce17687dc307107fcffbb76f954ecadd47899dc7af424a320c4d53409ca884d1e20dfcc5cdb10bb25656dd7cd2faf3a8e3e7bda3e3c89c309308", + "challenge": "85ae1efbf3506d149131a1ad31ddb6b953c281d09686c3e4568e7f9ef4cb1603" + }, "encrypted_shares": [ - "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d", - "b151386d9e5316c52cc67897c65231c753a0036d974909403220f5168c55aaea336acf361b273cb81d06a5117c144ef8", - "a9fd00d94fd411354947c995c054c9d842aec6ca351450256e28198ea3d7b7fb6a939626e0a99c6f456bae3aa243fcb3" + "47380ff5c166d4c264ad866554b4c8d7bd29bfa0d5842b665be0acc56d7811726161d82083e4a92f6e87e0172634548e09d5c109dae3495e8f0a458845e133254718326f69a99507fb9c22cdf3ba0e832554663ca0188b7bfbed94bea677a606811d48281612f06af4f9b483baac5451", + "a0c50af91cd335b5c67c3ee5acdfac90777505f09c351e8edc7535399d98b376ae18a95b74dcda82aa9a8d0e5e5bafca25ddbb3f0732bf29cbd949905b99a38c6d83b9f584563acd307a9232ef41e881d83ae648f021afe63f3750c0a51ffcd0f3ea086678f9534a60641ae27aa52bc2", + "67ce8c366f0fd7a755d820ae5f5b9925c140123116e83235eceebdc7c33895f39cd730b8c6b81b792970e18a4b3d32c2bdbe8febc2fe1addec412bdd83db20e9e0d61da744af131e4b363857aea67cdc57e4e75789e4976a2beafc8ff401998264fcce3955aae1e472ad3aa9905c0c8c" ] } ], @@ -983,19 +1163,19 @@ } ], "round3": { - "transcript_hash": "c271c24bac1aef846815a8c43fc6618bb6d4367edece0c0937be417c3948ed69671629784f0950e43d63b0c2af66a5259ec2fd0b27e70b1d0cf49a127fca1970", + "transcript_hash": "bf5dc5673565f52b9315edf17f1b389ccf7533a001d8cb5c6a1dc4dd6178c1385fe817b76a9c8d346213bc661c4452670ea072c4157503adcee4932a9527a1f5", "signatures": [ { "signer_id": 1, - "signature": "cd0c7695346ad9b5be3a51652c12dfa4aeab9e52ae15994a4d44b06683fbc390677f619be7eb8abffdc6172f8acf4aca9ef062a80a0e7663c2c19ab5e2848d01" + "signature": "734195c298f80b67b2be2f1ec5cf839d4054cb855c34082493968b447d5e08fe1906bb0ee050fc7051aaf927f2081f706a256505a8989fc37ded8f7e72c5240c" }, { "signer_id": 2, - "signature": "e9caf69275d884494d4730d5dbd20fab0bb242edf0771d2e0b9ea9cbc74a0e1b2a5c389dfc19d69c62cf622a073346e0111664e4e65e4d0b695a3e3968a72503" + "signature": "dd2c8a61ddd2f27b7f18792fc41f159598debbcf236cb8993ec7dda3e1529fc57b0255a087fb97698f9ebeed145045eedcae67081f4cb071776e562de2071306" }, { "signer_id": 3, - "signature": "3a50cb19fc6bf1bf82d58fda0e02ebd535c549f1dae01f579efe010250876a6410dda05c773ec8dd1d414a6a9bb8be0a4693b08c59a32c20d60e51cb59698405" + "signature": "31262c13a0cbfc115a2817a4efed41f6b95902c4a2971be14cd3c5f1877d049ede0b0f8780afc6ab4c3861363fe626a6d81dd813110550cbcf24bae8ccb89f0d" } ] }, @@ -1003,9 +1183,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "c4d2fe0e35aabb3b681fa607b2f317327d84f59e55e778c11cd84bf1c822d0d82d2892ef746f3c01f1912de0a5343152", - "b628bd68a7e39dd414e99d2926868537cd9f54d3cd26cf789a70a5c03ec8c8b55b936a12042ae97979e33803a7008418", - "edb0c868a4f15eda0dfe55e1af46a5567f942d72fabf8fc43d45daea676ed725bb1c0e5f16cc6e336d8b45af967b8e0d" + "de650ddfa42b58510091a9feb061a609b3023d67fc5d5cd1d9b84941cc9dfb188d1a5e5f1db6c74559845357dcaa0a36a4148144c3c0f6a62e5bab2278ba222c0ee8995159f6433ee339bf0528e6d59c5a513b390a66e850d414e0922ffa97f39b589459c581edc274d04928b020feec", + "68cb488dcc55ac5df84fe6959852ec4e1a32172138d08dcab3e5b0a8f5955a91fe8d0509606eeb85dbb81f3731727ff0924e2538c7b949447628f611a1a2cd3e08f2dca10808e4e2c04de1314046626083be9ba7d3c23c7b445698fd9ee14d2649734ad9ab8acdb77b29922bdb8bd85f", + "47380ff5c166d4c264ad866554b4c8d7bd29bfa0d5842b665be0acc56d7811726161d82083e4a92f6e87e0172634548e09d5c109dae3495e8f0a458845e133254718326f69a99507fb9c22cdf3ba0e832554663ca0188b7bfbed94bea677a606811d48281612f06af4f9b483baac5451" ], "recovered_secret_share": "c11e69ce202b5f0edb662e870c506269016bf9113f5b66af4cc01fdf1482860c", "recovered_verification_share": "8a45d3e10b89c0937e323c8456b9eae9bf939c3277a653f2c800df70a03fccc2" diff --git a/frost-ed448/src/keys/cocktail_dkg.rs b/frost-ed448/src/keys/cocktail_dkg.rs index c1f412f81..011de66e7 100644 --- a/frost-ed448/src/keys/cocktail_dkg.rs +++ b/frost-ed448/src/keys/cocktail_dkg.rs @@ -63,14 +63,13 @@ pub fn part1( /// Performs Round 2 of the COCKTAIL-DKG protocol. #[allow(clippy::type_complexity)] -pub fn part2( +pub fn part2( secret_package: round1::SecretPackage, round1_packages: &BTreeMap, static_signing_key: &SigningKey, participants: &BTreeMap, context: &[u8], extension: &[u8], - rng: RNG, ) -> Result< ( round2::SecretPackage, @@ -86,7 +85,6 @@ pub fn part2( participants, context, extension, - rng, ) } diff --git a/frost-ed448/src/lib.rs b/frost-ed448/src/lib.rs index d411d49f8..a4b6dda08 100644 --- a/frost-ed448/src/lib.rs +++ b/frost-ed448/src/lib.rs @@ -224,8 +224,21 @@ impl RandomizedCiphersuite for Ed448Shake256 { #[cfg(feature = "cocktail-dkg")] #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed448Shake256 { - fn HPOP(data: &[u8]) -> Scalar { - hash_to_scalar(&[data]) + const COCKTAIL_ID: &'static str = "COCKTAIL(Ed448, SHAKE256)"; + + const H6_OUTPUT_SIZE: usize = 56; + + fn HNONCE(secret_key: &[u8], message: &[u8]) -> Scalar { + hash_to_scalar(&[b"COCKTAIL-DKG-Ed448-SHAKE256-NONCE", secret_key, message]) + } + + fn H7(commitment: &[u8], public_key: &[u8], message: &[u8]) -> Scalar { + hash_to_scalar(&[ + b"COCKTAIL-DKG-Ed448-SHAKE256-H7", + commitment, + public_key, + message, + ]) } fn H6( @@ -234,8 +247,10 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed448Shake256 { ephemeral_pub: &[u8], sender_pub: &[u8], recipient_pub: &[u8], - context: &[u8], + extra: &[u8], ) -> alloc::vec::Vec { + // SHAKE256 invoked at a 56-byte output; taking the prefix of the + // 114-byte XOF output is equivalent. hash_to_array(&[ b"COCKTAIL-DKG-Ed448-SHAKE256-H6", shared_secret_ephem, @@ -243,14 +258,31 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ed448Shake256 { ephemeral_pub, sender_pub, recipient_pub, - &(context.len() as u64).to_le_bytes(), - context, - ]) - .to_vec() + &(extra.len() as u64).to_le_bytes(), + extra, + ])[..56] + .to_vec() } - fn HKDF(data: &[u8]) -> alloc::vec::Vec { - hash_to_array(&[data]).to_vec() + // COCKTAIL-DKG uses bare 56-byte little-endian Ed448 scalars on the wire + // (dropping the trailing zero byte of the 57-byte RFC 8032 encoding), + // matching the COCKTAIL-DKG test vectors. + + fn scalar_size() -> usize { + 56 + } + + fn serialize_scalar(scalar: &Scalar) -> alloc::vec::Vec { + ::serialize(scalar)[..56].to_vec() + } + + fn deserialize_scalar(bytes: &[u8]) -> Result { + if bytes.len() != 56 { + return Err(FieldError::MalformedScalar.into()); + } + let mut buf = [0u8; 57]; + buf[..56].copy_from_slice(bytes); + Ok(::deserialize(&buf)?) } fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { diff --git a/frost-ed448/tests/cocktail_dkg_tests.rs b/frost-ed448/tests/cocktail_dkg_tests.rs index 4d73af584..ad1aa6e65 100644 --- a/frost-ed448/tests/cocktail_dkg_tests.rs +++ b/frost-ed448/tests/cocktail_dkg_tests.rs @@ -27,7 +27,5 @@ fn check_cocktail_dkg_test_vectors() { h.finalize_xof().read(&mut out); out }, - false, // encrypted shares: 73 vs 72 byte format mismatch - false, // recovery: ciphertext format incompatible ); } diff --git a/frost-ed448/tests/helpers/cocktail-dkg-ed448-shake256.json b/frost-ed448/tests/helpers/cocktail-dkg-ed448-shake256.json index b39118b59..c304009a3 100644 --- a/frost-ed448/tests/helpers/cocktail-dkg-ed448-shake256.json +++ b/frost-ed448/tests/helpers/cocktail-dkg-ed448-shake256.json @@ -13,7 +13,9 @@ { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b", + "extension": "", "config": { "static_secret_keys": [ "8f9a9270561d0dbaafbc08828f30d41c342a8d4fcc5c364d7768ba75b168e4460e0a353d8fd189a3c4a6b22ece601173026a888cd4c46c28", @@ -34,11 +36,19 @@ "15e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a980", "4c13a6f8080c3f08c36664400a3b960159d37193b3ee17e720411060670230e2c9c5e65f73cc2b7df3963c2e94903bb0694d2b088889f81b80" ], - "pop": "87183bfa98556a7c5cc69c82267a7679f17e800bdd13bba015cfe732319e4f30ba6cdc128779d6d642ac4a718dcb0786747da65e1c56e10080f3b3fb3a37fc2e8e5c4da38a8562572c9359bc4e9c3c456a6b73da6d3bad322029061f3834fc10acc65115c4444e1ba42424112716ef5f36", + "pop": "62b40669ae7665b03589a38b4a5d8632ddf518fabb9d93c2f10c2706a2367304c226cda52b52a28cf953859147ccbb37d4841202e222b06480f50aaa8c0759f28d76c6e7484040f820fa47c9e46635413d038f371fee9be7d3b6faec626977aae430a45043a14e3ce7b6e466ed07c87b3e", + "pop_intermediate": { + "message": "a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b15e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a9804c13a6f8080c3f08c36664400a3b960159d37193b3ee17e720411060670230e2c9c5e65f73cc2b7df3963c2e94903bb0694d2b088889f81b805cb00e361b4fb9899e697c9119954ee6653db626d871477d5709a32cb090c168ddb84f04fbeff4da8af843db873155d0a00aeef285ebd8cf00", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e434525bf8323b7fe34a283af79ab873baf2c0b3c01db5b5b6ead507a665681dfd9e69d7f9fa19d5d4a603a264936537ec65865dc4cfba890882ba0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b15e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a9804c13a6f8080c3f08c36664400a3b960159d37193b3ee17e720411060670230e2c9c5e65f73cc2b7df3963c2e94903bb0694d2b088889f81b805cb00e361b4fb9899e697c9119954ee6653db626d871477d5709a32cb090c168ddb84f04fbeff4da8af843db873155d0a00aeef285ebd8cf00", + "nonce": "9e743a7b865de69953e757281d800c9c5f68b6dcf47df2faf87992b85a79ee74de66db32f600fda53e7c874dbf52c50504492ae9325a4128", + "nonce_commitment": "62b40669ae7665b03589a38b4a5d8632ddf518fabb9d93c2f10c2706a2367304c226cda52b52a28cf953859147ccbb37d4841202e222b06480", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d483762b40669ae7665b03589a38b4a5d8632ddf518fabb9d93c2f10c2706a2367304c226cda52b52a28cf953859147ccbb37d4841202e222b0648015e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a980a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b15e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a9804c13a6f8080c3f08c36664400a3b960159d37193b3ee17e720411060670230e2c9c5e65f73cc2b7df3963c2e94903bb0694d2b088889f81b805cb00e361b4fb9899e697c9119954ee6653db626d871477d5709a32cb090c168ddb84f04fbeff4da8af843db873155d0a00aeef285ebd8cf00", + "challenge": "53db84bbfc58754edf0f3549997fc95b795f22dfbe6cab226d451da685a35663005eb2c0cbe1781ed727ce9f58cc00869e545ffdcd65ce21" + }, "encrypted_shares": [ - "4fd7af4723dba2d8764084938c8c84415816e20a51c1132446aa6e6edfe2e4702167513b1d328a7090b6c6dfbe247151b2a583cf14e701ce1ff495cab56fb1c39b6782fd13faade0", - "7080e0795eb4bbaf1042248c665d6117d1d39d1fd86d1376c3663a3813443815e0ab5b43202b1e9b3dbf00209388697200afc38126ef818395232326240ae096211f2c7f98f6c455", - "36c30714468f58256584af5281532783802f4efc286abf5548d97e0689df89b4f95e8e4ddd1bb2db9a53e7daf9d34285f976e4d2078c9f93a223fe39ebdb805e9a9c046e8dbda1c8" + "1c502c21f0648647fa8f638f7c2d4bb6cbe528df1182dd0887623194cd3e8e9c52a75b1f730380abecb26687993103fe8a54cd29fc07080f451a50c4ebe0eb499261db038d9d957d", + "3d708cad502e403ad59d802f40d782f6f0006d58f85fbe7aae21e1f228a892813be0b0cd4447cbf756d33b16bb26916340425a36de404942bf5238c14d8b60f9dc4189df3ea9fb85", + "bd4eb02a6ea99fc7b1ba6c1e62e8961384f9399a849a15c896b5621a703047066a99280e9e0334803f63407f444781a3f2ea136cb1dc7aa667a439c43809c4219c724d9e42a2db6d" ] }, { @@ -48,11 +58,19 @@ "2d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a80", "90c87d53ef1ced055c12de84efbac946ca2db0c34cf84189f9ff659ffa7c728dbbe94f7a53ddb3ae778fc3daffdd63919d7cb636787950a880" ], - "pop": "bb042f76395f458209ac2ba947ec861fbb012a55657a94cac2effd743932964aa6a8ac27a368edf67b6c7c85457161805fac3ae74fee104200e71aba46fc3ab8f0cdff2da308ad912405895f2cd2080758a6f0a2bbeddd17c3263edc8d86b61bdda0fd3a413348b5930b7baba2c9c7df06", + "pop": "6d700d6b16b0be86f21605116d93e748d2067557e42851863e42c80986267087c415b1115dd6b3f246c15fd623df39763c3906a61ced473100ec3f52bedda4b4dd8626899af0b0e01187cb34ecad7bba44cda598b80417743736e9971d147f434d657424cff2d37f054edbfc142c794015", + "pop_intermediate": { + "message": "a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b2d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a8090c87d53ef1ced055c12de84efbac946ca2db0c34cf84189f9ff659ffa7c728dbbe94f7a53ddb3ae778fc3daffdd63919d7cb636787950a880eda1980924ec258c7bf874af55dcd61267229bf0ebdeadf7b933a278b8c555896dca83c73aa00900393f53dd6a445212e2ea967a6e3deca400", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345255c46345242e841bdae1d00b196677f2caa70cb318f597a9635b269df5252785c88ae6a0547458f1f211ca74ebfb5f314163c556ba3710ea0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b2d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a8090c87d53ef1ced055c12de84efbac946ca2db0c34cf84189f9ff659ffa7c728dbbe94f7a53ddb3ae778fc3daffdd63919d7cb636787950a880eda1980924ec258c7bf874af55dcd61267229bf0ebdeadf7b933a278b8c555896dca83c73aa00900393f53dd6a445212e2ea967a6e3deca400", + "nonce": "49c41a2ed85d228e2c23a0668b4cfa301b1740f6aa5054427f4eb6096a07227ecf4d64b4056f39c82a71db6294c152988af985c2c628e136", + "nonce_commitment": "6d700d6b16b0be86f21605116d93e748d2067557e42851863e42c80986267087c415b1115dd6b3f246c15fd623df39763c3906a61ced473100", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d48376d700d6b16b0be86f21605116d93e748d2067557e42851863e42c80986267087c415b1115dd6b3f246c15fd623df39763c3906a61ced4731002d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a80a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b2d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a8090c87d53ef1ced055c12de84efbac946ca2db0c34cf84189f9ff659ffa7c728dbbe94f7a53ddb3ae778fc3daffdd63919d7cb636787950a880eda1980924ec258c7bf874af55dcd61267229bf0ebdeadf7b933a278b8c555896dca83c73aa00900393f53dd6a445212e2ea967a6e3deca400", + "challenge": "006b50b06c73c7dce8fceb74471f21fa563c9a918329108e76401c9c281739617de78529aeec807948efaed42dabf2970a2644af3eb93a26" + }, "encrypted_shares": [ - "4ba50472a8d1a23146504939e7536275b56407a3366ee20742d34eedd301ce76503a32b4b4c6986e4ff2f068951c78085bf9da7f944c06e866d551a735031c4da80a5e7b72749960", - "1f57fc10f6b00c12cf7617ca48d48f4741837208cd733e14f2b9a1195db5eb694134d70448414d0b00ca894cabde49b448f665612c07955a8a2f3e3b1df2634185df46d32a83b128", - "1a951747fbc3b3568d393a5ae6ca0c5224713b7233f3079bba562a45386582c6ac9087c2b6c80d5e4b1fd8f72f6eb9de1bf0b1fed762b76fa1901cc8953247c46c298b43df323f56" + "6b644860a7cd08a0d44344334535c3b35be87f3027c903e31d81bcb76711d49de691f22dfe21563ce0ccb23d96e246f5a66c83761dc953461f41a4a91a9744714c613292ec401f19", + "d21f423a0d3bf07958d516191730f030a39913357ca27b371b472cd1b5afca281644fefb7a940014c0299c43240a01f355f26c448e87b59c420da2f4c68b5a92723a85f9f5b75af3", + "4dfb15a741684afef67fa11731880f2fec0c1bba298bde93321680c8c63cdf9353646b23a5175828a3187f5009ec0aad18883cb306e8820d7a6601ac443c326ce05598e82c5fa1be" ] }, { @@ -62,11 +80,19 @@ "aa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800", "f61d56f5ad99f6da91d9839d22ac1db8fbf1174dad541eeaf0683f7e0e2e2d01af6eca2dc274d5e5d36393b16495ea7a2498978440548e0480" ], - "pop": "c56929d3c647547a0743fddf840c5d8363b3b91772a40a19c33a2341a1c2ad6158d6ae7537ffb5e76dc35c93abd276c7526bcaf90c413d77003c98f93f4df09d8cc22523fd1e7524cc134ba9bc25114368ff803e2e108a98d76f1bf2bcf5974442325ca5939c09fb8226e9de86d703fd38", + "pop": "4f61052474da6086b091abef530eae062d46114e579d55fc786d5b4006b2a9625e7b0726ffef8069c56f9560dbdecccc14957c35d0efaadc80a8934bf9dc29bc76d774392ccbf223650c22e27bea1aa01a5f59fdb617029360cab9b9960391cb7daae71a89ffb8d1255e90f56522203c38", + "pop_intermediate": { + "message": "a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819baa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800f61d56f5ad99f6da91d9839d22ac1db8fbf1174dad541eeaf0683f7e0e2e2d01af6eca2dc274d5e5d36393b16495ea7a2498978440548e0480c834a23189953612c35719f8241c93724cf636022bca8cc24087bc384fc8d00a37cf0e11bd6e9ba55808cdfe00df98987d7b10993b1430ed00", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e434569b9cfcf5b70080b78bffe42fb52374ac9ac92fd122e4919d61e7192d5755d667f48a8b7a86372217e8ed9bfb33a55f47aed4308f0c33f3ca0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819baa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800f61d56f5ad99f6da91d9839d22ac1db8fbf1174dad541eeaf0683f7e0e2e2d01af6eca2dc274d5e5d36393b16495ea7a2498978440548e0480c834a23189953612c35719f8241c93724cf636022bca8cc24087bc384fc8d00a37cf0e11bd6e9ba55808cdfe00df98987d7b10993b1430ed00", + "nonce": "dd719be27466d3902a2e7266f7008c8271c659e200efd22b03f0b8f2565537337d8b7e982ac740de7330ae4d505ebd7dac472c19aa3de63e", + "nonce_commitment": "4f61052474da6086b091abef530eae062d46114e579d55fc786d5b4006b2a9625e7b0726ffef8069c56f9560dbdecccc14957c35d0efaadc80", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d48374f61052474da6086b091abef530eae062d46114e579d55fc786d5b4006b2a9625e7b0726ffef8069c56f9560dbdecccc14957c35d0efaadc80aa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819baa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800f61d56f5ad99f6da91d9839d22ac1db8fbf1174dad541eeaf0683f7e0e2e2d01af6eca2dc274d5e5d36393b16495ea7a2498978440548e0480c834a23189953612c35719f8241c93724cf636022bca8cc24087bc384fc8d00a37cf0e11bd6e9ba55808cdfe00df98987d7b10993b1430ed00", + "challenge": "b5418395ebf69ad4d83b24dc8d657a8b6c85495d573141d7728a0cab00bb898cd020aa08b005ad257687f9e2786b059b8855a85cd66e9526" + }, "encrypted_shares": [ - "f17f9ccc4b6f1b1100abbf1ebdd79eae0eb19640ecb02961858cc1b75a6426536885806044891a6fd98e88ba7cacaea8bb39ee4b91b86cf0e5424c4498405a73735447f4d5d7e7c3", - "09078ebb9856a0b83b6f73cb6faca06b3bd0c399871b95c666414e56ef091f83d6bf5e6761ba7972973d782c4d92e8f4f67f233003a29750411c6516cc5744a081e477b90c1a7e8f", - "6739b2f76690198325f2b98d7c9f8be991ccd270fc439b0818506c29c0c55757a95dd20f2e88df993f3a4804d2d1fd652b2f2015e18c1085814ed255d968835728a0da8820dc979c" + "7e62c26b5a37977adbd34aca1fa31c8ebfa6e503100452fbb7566c3441fc74d500dfb9265cd2899d56ae3fe6a05c4cd5a331adf3aaf77e2a6d9246a41844d462b139d656d4a4c14c", + "324ec6d10d388107909e6b99db18a1f7250c902636fae7e2c833da9e0b7b50e4e54d71f5121ae7f900964f501e8cd38feb52279d743beb1b5440ccc9dd1e9a2a4a3564dbf0b85b78", + "044ebd7c59cdd2818b13f45d5fea042208a62c83917fa6e4b8240d0060027d2b2c84ce1889fe1907b9807d89985fb211009e529de43ecdc21219a02a6efaacd0b8ac4b30ec1c12ed" ] } ], @@ -88,19 +114,19 @@ } ], "round3": { - "transcript_hash": "a1310fa41f9763c1470173e93c1b6bfadbe5ff5aba7eeb2954f103850c41dc6d62b782b48fa24605e2ecdbb7b879d1f8e962a70197f7b545dcc5ccd4cce86331", + "transcript_hash": "665a8d55a8a769d8104f20962a2d1c5b9102021622abfdd9e1d6b35a8d2d1b23670372e9d6f6b744e3a78b01083e6ac0dc27322cb36fba61a68706cdd6189a2f", "signatures": [ { "signer_id": 1, - "signature": "0db443d6e798485d5fd200ee44af9823326082b624f80f3ef9e26f966a559244a17775a9323938684ef394b82659d30f5e4cb5fab2094a7980dc6707614faffe173bec7f1bdaefe69559cbc11bd0361bdd03c2166a22d4ac50637d04b18b1b4ff5f81a459a98e541f29dd387ffad56922e" + "signature": "ed4891d85ea28e354a1f069e8021e440d3ae1e17b37753a37536e74b42206a39af0877f75913689c6bdf70748e75b30ebd1379212fdfdb8b80dfd86d83428a14da44f454139f7c8a621efa61563e0dcef99db5cfed976443d13a51d68674292945c6bd8a1f24e346298b7582ee3f14740d" }, { "signer_id": 2, - "signature": "b6255b5a79cb16740802b742e04b0a287d86186bb511c37db7a55f5adea5d0d2f3eaf69d0461bfc854a9c528b5ed678948026fadcdbba20780bb08e2d44f4efa6e063eb18af34e29bc0f7370d1f637b735ad3499da32138286e13f744d7b527610ca99345ddd8a463649e768c1001be831" + "signature": "e5f3331c60dcd60c501a4322f221117626cdecd58d32cde30f345afb7e9df0b1d67dda1be2bdc3c02766db578211b090f9bfb60a63889f3e809e1ae84943b6930a8e7d510164080f8ddeb89bcfdba8fba47543a9fb4d4fb3fd2030f6d58782b0207a47141a7639be7e3c07316f89816032" }, { "signer_id": 3, - "signature": "ecb2359670cb1f6194929a84d462ed3569b5471914137f7f5d372a9dd60be8768e16a9dd64b8fede5c92ffde1ba2bca605e3ea9b1c1eefdf009797dbc8beb812daa52b6c0d5d43fdacd5f812de0e2b2dd74fb9fb48f53cd772a11ffd5cfe794badbef5d78a5a5155d8e3d531de02c10005" + "signature": "8522b3126d0198098b33540a4126281f7c46348eba4dd2bc7ceb585d4c195b1f6d416b5ab0d7b4d2a0199ff5bb42a7c4e0d36d8714f4d97b80af27bf9d4f162d4529bf4a746b63595a6160f6f033d891f1641d6d99d396b66201682a38ba7cbb734d814f0415fa043fedf7419c20908920" } ] }, @@ -108,9 +134,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "4fd7af4723dba2d8764084938c8c84415816e20a51c1132446aa6e6edfe2e4702167513b1d328a7090b6c6dfbe247151b2a583cf14e701ce1ff495cab56fb1c39b6782fd13faade0", - "4ba50472a8d1a23146504939e7536275b56407a3366ee20742d34eedd301ce76503a32b4b4c6986e4ff2f068951c78085bf9da7f944c06e866d551a735031c4da80a5e7b72749960", - "f17f9ccc4b6f1b1100abbf1ebdd79eae0eb19640ecb02961858cc1b75a6426536885806044891a6fd98e88ba7cacaea8bb39ee4b91b86cf0e5424c4498405a73735447f4d5d7e7c3" + "1c502c21f0648647fa8f638f7c2d4bb6cbe528df1182dd0887623194cd3e8e9c52a75b1f730380abecb26687993103fe8a54cd29fc07080f451a50c4ebe0eb499261db038d9d957d", + "6b644860a7cd08a0d44344334535c3b35be87f3027c903e31d81bcb76711d49de691f22dfe21563ce0ccb23d96e246f5a66c83761dc953461f41a4a91a9744714c613292ec401f19", + "7e62c26b5a37977adbd34aca1fa31c8ebfa6e503100452fbb7566c3441fc74d500dfb9265cd2899d56ae3fe6a05c4cd5a331adf3aaf77e2a6d9246a41844d462b139d656d4a4c14c" ], "recovered_secret_share": "692d92730a66096b0a971bfe712cde3dfacb726f94894c68841f8daec6cbb3c91df1be4a811aabd0a314d2b152156485b12fba9657637a14", "recovered_verification_share": "7dcdc0aac7e24ad54a206a03f93d086f3aaaa0a999207ca5ed1798b522f7600c8136021ccf2844eb69459390b579bb13f2c285648bc0afe780" @@ -119,7 +145,9 @@ { "n": 5, "t": 3, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "context": "c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb1", + "extension": "", "config": { "static_secret_keys": [ "28ad10f793c78f91c4ff81fcc14baab7e4acbbfb5831601377a83a80e138f1babc022025e6f478dc120c72fff31318f101654d31ca760439", @@ -145,13 +173,21 @@ "b2513806b0061a22cb322e82abe8c79e82bb6f9bde0767a2043cecfe5a433664337af6ca666757292054ef92fec9ba6846807056d0059bdc80", "13eddd437abb265de34e04abf6e7712aead9c735fa9a85c1aeacd36cc6cdd1a987886d23502dbc78c863aab1a790796de8aea46d8427d60100" ], - "pop": "1194065365449a629790b181734a2a18f889712a2c0f4ed20591af5748cc4c679ece3fea4e0da59f8e05c3bc2de651bfe7192648370de82580b915143a1a026d5f55accde0fddb8c20917e0d1534d5a67c966797634018997c1e6ae7541f85e50fba2529cff21c5ef47108e564a914ac1c", + "pop": "f5cd9bf196a85200813c9c3f1a81cb471dc8ccf65d5f6a8192f8bd1747c34abbc2b82e79ea854f56a67008456e3a6c7ee16c6769bbb5180c80672361de18c422bd19eb4bc1971255c4ea5132da9dc17aece1efeca03d2c26c9df300d6fbf9c153f04284dcc7971f3198d1846940989230c", + "pop_intermediate": { + "message": "c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb1eb1f3e1b32f66690bdf6530e4c225e90a7ec477d09144bced797aaced4260eb466d23477bf3bc9970cc76e63401aca3b65cfc0b0e26f4b2200b2513806b0061a22cb322e82abe8c79e82bb6f9bde0767a2043cecfe5a433664337af6ca666757292054ef92fec9ba6846807056d0059bdc8013eddd437abb265de34e04abf6e7712aead9c735fa9a85c1aeacd36cc6cdd1a987886d23502dbc78c863aab1a790796de8aea46d8427d60100fbafaa2b09378b02f37b119c84bbbf475c59497334737588f8cbcbf8155be2b5480c98d569349f1746d19dd7ba9df7cfbccea9fe5638a22a80", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345dab80f4522526e495c2bc06f0829c238fbf06a9b57ec55a8d6cdfea880c90d6f592ed47021488d40f2c583103a7694ffc417503ee32e2b18c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb1eb1f3e1b32f66690bdf6530e4c225e90a7ec477d09144bced797aaced4260eb466d23477bf3bc9970cc76e63401aca3b65cfc0b0e26f4b2200b2513806b0061a22cb322e82abe8c79e82bb6f9bde0767a2043cecfe5a433664337af6ca666757292054ef92fec9ba6846807056d0059bdc8013eddd437abb265de34e04abf6e7712aead9c735fa9a85c1aeacd36cc6cdd1a987886d23502dbc78c863aab1a790796de8aea46d8427d60100fbafaa2b09378b02f37b119c84bbbf475c59497334737588f8cbcbf8155be2b5480c98d569349f1746d19dd7ba9df7cfbccea9fe5638a22a80", + "nonce": "cd55aef6033090b3930729860f994ff868ec4043a19db4990e7774eb600bb88051569bd9ca5cc333c25fd5cc33f41611be53e9196deec206", + "nonce_commitment": "f5cd9bf196a85200813c9c3f1a81cb471dc8ccf65d5f6a8192f8bd1747c34abbc2b82e79ea854f56a67008456e3a6c7ee16c6769bbb5180c80", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4837f5cd9bf196a85200813c9c3f1a81cb471dc8ccf65d5f6a8192f8bd1747c34abbc2b82e79ea854f56a67008456e3a6c7ee16c6769bbb5180c80eb1f3e1b32f66690bdf6530e4c225e90a7ec477d09144bced797aaced4260eb466d23477bf3bc9970cc76e63401aca3b65cfc0b0e26f4b2200c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb1eb1f3e1b32f66690bdf6530e4c225e90a7ec477d09144bced797aaced4260eb466d23477bf3bc9970cc76e63401aca3b65cfc0b0e26f4b2200b2513806b0061a22cb322e82abe8c79e82bb6f9bde0767a2043cecfe5a433664337af6ca666757292054ef92fec9ba6846807056d0059bdc8013eddd437abb265de34e04abf6e7712aead9c735fa9a85c1aeacd36cc6cdd1a987886d23502dbc78c863aab1a790796de8aea46d8427d60100fbafaa2b09378b02f37b119c84bbbf475c59497334737588f8cbcbf8155be2b5480c98d569349f1746d19dd7ba9df7cfbccea9fe5638a22a80", + "challenge": "e44d1a28d2d79639a4ddd0bc25a479671654a737bb7e8eec2453373bd8d5bbfee4a781030562820f846edd33456a456da4f29b05b38ba417" + }, "encrypted_shares": [ - "55adbf574daff15b6a40a67f7280fd1306e6d7a717d5b3c9777b3673740cdda12779e2931ff16c72eb021a824754d50ab6cf19b911cc87f6d08a7e77bdbc5d73e7b72f380415dd50", - "531d07d4dbdf8a5b24c73cf10a88c1b3dac85b91766be98927ef078049e625fd32d4b53c5b7682853647241fe1872ae96a4db9da3c238384eb616e873f48b8364e5d467e451b01a0", - "6d6b3edd2ad165b8f8f121cf2c16a48e7266b4baecc76056ec9a21bfe0717c600e8870c5fe9432d8fce1a9a4362167f7838dba9b9fd13e939b558b6bed5b22cd70b79678794f9468", - "9e7d3fedb9d89509a987b9576aab1191c2a45e6ddbbff0cef7c615a9f0e53be2fb0035bb7e46c0422f56ba527d1c54a63a341d76dc15b3678954c5377d4a4abb8409e1c23c2a9ca2", - "e58294a8314562fc29c9754d90c1e7c3034395eaccfafe7a8434de0a4dff36287d0311ba4c32bd4138c533e2f4ca749fbd4afeeb51e4ddeb839f3987170c2adb006e9a0a12d6f698" + "e8d84f4d8e358026953a6024a0ece7bcdbabe9da47579514e2b2146fba49d1af815fad86f42835b5d8fd44b1df4e83b5f611a42d13bdffc69133cc727840d123862fbfa4cb76d317", + "ba22619153bdb8328363079e2d44b0f5e0e3a64c8d0858f09582a5552e52fadab7ac603230e01866b260919282d0827a154d25ba13797e928e58666b39d2abc062a77f21befbee16", + "6a39348787334b7a9306bc707d6786f91e7c44feb9f974b25f8711b0a5f4c506c6c30813b6486c4c5b91601093bd1fde4b2bc322cc14feddcdc3e809d7b965734628b63c4ddc7790", + "f47f3c191c771505619a56af6bca43fee6eee03bf3adff0acd41fa6634ccc932daaecea41148cc19c1df282d68db41515b3e157c356cd3b833835ec0c21b46028c06c5f5395cfe76", + "214fac8bb8ed0fb5688ca575970f81cd583853554fecdefbb492bd23681c07bff92e50332cc9ad8d79824aad2a57375c1f221ad31307f2c3aaa26a68058387f1a08f991243d413e7" ] }, { @@ -162,13 +198,21 @@ "d295f197a9194a7464fceb542260f72a8a90b3b8d64a5143c1db1b3c5fc2de01a98fc24f30d5a75a264b2c867cce8143cb5bbbde29a6992c80", "563272b31b0724fd50452762345efed88aa1190aba5cac3cfacff29b53918eedfdb9329a842df4b3b0cdb05e7129aea28a5d9c44c9832ba800" ], - "pop": "f40386a7c543d5cb5d9f9d7a2858acc3019836f6c20eebfbb5c4a9e17c740351cf7897fe7e77908eb3758db904cd9b605b5428fc347f1e1580ad5410da448949f318116e9f28a540ca2691515982c4293833687ca21edeee55c874cf64dfbd4ba2818399bda461a0105991dc33db84be30", + "pop": "65df8a1a3abd8c78e6943e4a68b96af3d4498caed05d29921ab84a7a32641f40b5a007e524a5b45090ba036e0d77ef7d58cdcfbf73417489807218608da184b6d3a12ab4c1d10552a79a5100fc7127a889dc365bf1bdff8d1a8cb77a444614c7c5626eb9f7110dea0ebfa12eb15024f91c", + "pop_intermediate": { + "message": "c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb16540f705cebd0b81724808794a82a98fe52f64813b29feb1977d1e9c34169a517698d720936ff075ca92be42ba58ad4805b9ee6fc483856300d295f197a9194a7464fceb542260f72a8a90b3b8d64a5143c1db1b3c5fc2de01a98fc24f30d5a75a264b2c867cce8143cb5bbbde29a6992c80563272b31b0724fd50452762345efed88aa1190aba5cac3cfacff29b53918eedfdb9329a842df4b3b0cdb05e7129aea28a5d9c44c9832ba8004f8d74350f97d027b4a2fc84ebb390dfd3e3be91b4df771c463268c498c343b4b42ddb998cd13a14918d2e8e2db78bac448e04b9af2dc7fd80", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345f21a58ab8131ee4c486568041389761e116b3766f8e668ba5cd9a5767725aaeade93ade35055820a756b6492dc8002373ebdd23e9cce2d05c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb16540f705cebd0b81724808794a82a98fe52f64813b29feb1977d1e9c34169a517698d720936ff075ca92be42ba58ad4805b9ee6fc483856300d295f197a9194a7464fceb542260f72a8a90b3b8d64a5143c1db1b3c5fc2de01a98fc24f30d5a75a264b2c867cce8143cb5bbbde29a6992c80563272b31b0724fd50452762345efed88aa1190aba5cac3cfacff29b53918eedfdb9329a842df4b3b0cdb05e7129aea28a5d9c44c9832ba8004f8d74350f97d027b4a2fc84ebb390dfd3e3be91b4df771c463268c498c343b4b42ddb998cd13a14918d2e8e2db78bac448e04b9af2dc7fd80", + "nonce": "5bf94b0482344687ca8f014966639ed076f4e0f0e0a2154ca98296c203c5a1cbd704ac3634705151e2586b5ee0e6c86c34708040f335a626", + "nonce_commitment": "65df8a1a3abd8c78e6943e4a68b96af3d4498caed05d29921ab84a7a32641f40b5a007e524a5b45090ba036e0d77ef7d58cdcfbf7341748980", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d483765df8a1a3abd8c78e6943e4a68b96af3d4498caed05d29921ab84a7a32641f40b5a007e524a5b45090ba036e0d77ef7d58cdcfbf73417489806540f705cebd0b81724808794a82a98fe52f64813b29feb1977d1e9c34169a517698d720936ff075ca92be42ba58ad4805b9ee6fc483856300c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb16540f705cebd0b81724808794a82a98fe52f64813b29feb1977d1e9c34169a517698d720936ff075ca92be42ba58ad4805b9ee6fc483856300d295f197a9194a7464fceb542260f72a8a90b3b8d64a5143c1db1b3c5fc2de01a98fc24f30d5a75a264b2c867cce8143cb5bbbde29a6992c80563272b31b0724fd50452762345efed88aa1190aba5cac3cfacff29b53918eedfdb9329a842df4b3b0cdb05e7129aea28a5d9c44c9832ba8004f8d74350f97d027b4a2fc84ebb390dfd3e3be91b4df771c463268c498c343b4b42ddb998cd13a14918d2e8e2db78bac448e04b9af2dc7fd80", + "challenge": "f6a679c6cd104143df6e98357292520ce0b043687b2f5266df6a1ad11ef3f75aa7250d51df5cf76f6485dc0c5fa0916f70565f14f5c3f90f" + }, "encrypted_shares": [ - "055b0aef9022b9d4e2cd898b0ad42d6b6c69f5df0c885517ddfd8d563c12d96b7abeb535409124cf9e6ff0b021146adca41b05034c521f0a942393adbee79336f8fb5c7efc51b2cf", - "1c2503ce634bd40aef1385885a5065469272acd208ed6f09aa9641d31693e3bcad99e6d62bcf2872b3bf08da9b1426799c9dfc082508dc111c3414fe386affd8f4a1ad08edec6366", - "f23c78816efd9b751a08202c1e33920da68c585a2436de4d4f61fc5342a22ee7d340c8602e637db87bf98449978d54aa02657f816b7575efa20085e9be72c1f268824bc655905ff6", - "8be2c050a4d3dd92904660ad08fa618db546c0d41f1a8f2202654197d40a1a7be4e43ee26403e71b843db8c2063dc646695876c38b43c239657b9ab6b83b2c4b6aecf18c4d7fb445", - "5c3b6d2bd9f3ca1aa447fe7cd39da53a65cbce4f29ee8dc3be2a756078c895cf8ec2132b6e5ea929e1d0d140f0d74719255e593c37c0d28902f5f4a435cdd6441ecc5de82a65cc56" + "c091d21e52388c9a7e6e697e6450e1d1b6f556dcb051f3f891d90df148239fc5009105f8508adc46af85f896c0124a0b18313ecb78a63b4e5398b9cefd7016744f41a42266e4e5e3", + "42cf012f4f2088bb02ba6cf8fbafa19223f6f5444f68f83528cbadcffbf7a9560b316fafccb1016c26ab852fae2b13ac43f0bed39de8a256e4f2028ae11fd0382a2867c0c4064d03", + "46c83e43b3244155fbc4baa3c86a4bfc441996c54ebd3c072c6f272a1a2a2696d1617ff4e945f7ab5e678c513991047010707c69c47ad03739b016d992ce86fe067a7ebe6dd6b436", + "1e7d2d45ce848ac640f8edb0a41a2e9530c367fed6f714b8c677afe9ecb9aa601e3d8b07c32f551991d98b875e0757c9c28c3101100956dad10be144d26b805534ef43a663c01cdb", + "c19bc207c4f91104bd3b1f2be0f7d344cb0ae68efae92e91d8751d9372b2b0293a299d0da6f1f18c67d3349228e76b0bc1e6a29bac1ea4ee3b74c4f52b65905d24cbd8d2c50ed028" ] }, { @@ -179,13 +223,21 @@ "24f8df25ff4c3314bf6b36303dae3096e1869d92475456ceed3262639fe42964725c3369d905f3b72acd736f43a1e0ccb3d7e4f09b556b1980", "a70cdedb2d641dd4c08283bbc79169202eeffbabb68e35e9acf3218265ab8f0b2e75c59ffe389762e3f075aec8947ae05d48a2ae90a2c4dd00" ], - "pop": "f08238eba4372b6740703544148fff7fe444fa1e06259ad02444b853ee7980d5ab1a336f9c645d65049a26b7a426006e8f79cdf6381f625b00662347952e1c983d2c4ef2287de77acf38d90fae845706679539b2f87e68e9f117813dfe86a6928a72649d38c6b12f6c91e3ea7233cb5f21", + "pop": "a1a4db4985e7ece62c35d043514f0c5d90cdd09d62005840ec78fb7a8887dcffe227af66f790753d9c6474faef4e505dc500aeb6a1f4c4448035b82c44ab624789e50a00dbc693b0ed7ef4a243c9d76bac1a957ffdb2c07cfe0cf10292765a6b4a9e3e7e6b295e34b8e62f465b1a05f318", + "pop_intermediate": { + "message": "c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb184ba7bd4c564ebb091b0b33313721100d5ed8db91f9bc67e76ad9c48a3208f4d254aea06e542fc0f6649d4c5b8926539438acba386a2c1468024f8df25ff4c3314bf6b36303dae3096e1869d92475456ceed3262639fe42964725c3369d905f3b72acd736f43a1e0ccb3d7e4f09b556b1980a70cdedb2d641dd4c08283bbc79169202eeffbabb68e35e9acf3218265ab8f0b2e75c59ffe389762e3f075aec8947ae05d48a2ae90a2c4dd0052e4e866a8636d77802f8a1c5ac771fb0e9cead927a94833ff0db02df7b2d18dcd40f233e7d1f9298dd45c4e9d3d861d7ded9795ba64f71680", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e434542c6b487ef783e500f5d40b63aa12d7d22b39110bae0d43474b0704f7dd3d84d11fd985284b09bbd2488209f2ff2fb58881fc0f307e78135c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb184ba7bd4c564ebb091b0b33313721100d5ed8db91f9bc67e76ad9c48a3208f4d254aea06e542fc0f6649d4c5b8926539438acba386a2c1468024f8df25ff4c3314bf6b36303dae3096e1869d92475456ceed3262639fe42964725c3369d905f3b72acd736f43a1e0ccb3d7e4f09b556b1980a70cdedb2d641dd4c08283bbc79169202eeffbabb68e35e9acf3218265ab8f0b2e75c59ffe389762e3f075aec8947ae05d48a2ae90a2c4dd0052e4e866a8636d77802f8a1c5ac771fb0e9cead927a94833ff0db02df7b2d18dcd40f233e7d1f9298dd45c4e9d3d861d7ded9795ba64f71680", + "nonce": "cb851f6d4998c45d7f5c4e511fb008f240c40e1b6a4413a0018c995ca9363dfa6e8d765e0e7101dd6f8935b0a79f09cd7a8ee74f7d95f818", + "nonce_commitment": "a1a4db4985e7ece62c35d043514f0c5d90cdd09d62005840ec78fb7a8887dcffe227af66f790753d9c6474faef4e505dc500aeb6a1f4c44480", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4837a1a4db4985e7ece62c35d043514f0c5d90cdd09d62005840ec78fb7a8887dcffe227af66f790753d9c6474faef4e505dc500aeb6a1f4c4448084ba7bd4c564ebb091b0b33313721100d5ed8db91f9bc67e76ad9c48a3208f4d254aea06e542fc0f6649d4c5b8926539438acba386a2c14680c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb184ba7bd4c564ebb091b0b33313721100d5ed8db91f9bc67e76ad9c48a3208f4d254aea06e542fc0f6649d4c5b8926539438acba386a2c1468024f8df25ff4c3314bf6b36303dae3096e1869d92475456ceed3262639fe42964725c3369d905f3b72acd736f43a1e0ccb3d7e4f09b556b1980a70cdedb2d641dd4c08283bbc79169202eeffbabb68e35e9acf3218265ab8f0b2e75c59ffe389762e3f075aec8947ae05d48a2ae90a2c4dd0052e4e866a8636d77802f8a1c5ac771fb0e9cead927a94833ff0db02df7b2d18dcd40f233e7d1f9298dd45c4e9d3d861d7ded9795ba64f71680", + "challenge": "49fe43418971a19fc282e4d6414cdc9e8a24fcc3d6a9305739fa15422a189fcf1aee28b3a108d0b620b1a3440dc7570397aaf599f957211a" + }, "encrypted_shares": [ - "38253d7b2e48f641373e0546cc3fcd8ba52b3545252f4d1f3714bcef71c877fe6e2ef77eed3fc313ec4c834a9e85dc259e23c71eb84fe651e7e09ec496dc487e3742a2b70e2d2d52", - "d35e33ac6bf839211c05d68dd658c40f9017a0d0bd65018581eb0d9aae264897f1ccaf4e3deeb2081225a5a58b51435dace9fd5c3f2c203d1eed8eabd130c3dee0e00e7d1091d307", - "19fe09486fbd52712f96344346433e0fd53f165dc3f3f5df5549cf86e6c8de7e37df5bcfae838919b83f97f5a0843a72fd4ed00a1a564d2662249580e4be51232b626f7ca554fc07", - "6dd8a919dc295832fd79bce266d77a827864d4d174b86e2f02ed8f2255f2001785ed7f4af83a7c90eef2d44741a313d3a3ea4048deb0c1ad021dc995ad4f9031ce038fc6989c93c0", - "a0a8856e52365d6e03c137aa9635a94a84f9651d9deccc6a0f3a44f37086c3b8983d1cb3304595b1f1f54e6bd5608481160a062985ee29ea0656acda3aac57cdfe1713893f7be45c" + "d198fec35c8ee9a2bacbd43cf3978ab0793a5235963840731e269ef6f0cf2fbccdca720cf6225ab9fc57a240c6c2ce173a5fc9878ea262e5efa5c8da9dda789f242395edb3add625", + "866a3feea4573e30a593a1d76ad043bde0a3766c5b7bcf090654f2a85048be9392127486eec6da6e17c207645f392edacf0c628b15921655d77296be12aff3bf1563cda3c006a979", + "250450c7fe56c6d5df2f7829dc72f11f7f3efe96e3533f9f87f6de46f72461f95df2df67bd8fd988245444e4a3d2239b9aebd52fa2e3d64ef250b5e87af0b641cec47c13d9a47269", + "eca655f94e9d70fd7fcc51f7464da12a7294c60a4840f24dfca480adf836328e3f923578ec4112dd6970d06c703ac60cbd8e6e634f93f658cfd1d1014715dde984a46d878382d43b", + "336f0669935e4bc3ec8aafaff7ea01dd47076b354636052ef3ae208c4c860ebe70b9b40d8dcbabec125b192c96b6c1caee2abeee84d84af27f0af1f8ed6969d5e69e7f14963d51c5" ] }, { @@ -196,13 +248,21 @@ "fb5be0a1fd21152d614ad3de9d88c28e304ed7b122c47622181fda52572c5bd9b449943a3f24940e973bc30113c8ca69706f0971a8f41b0880", "62868df72a3eddbd6f57ec4eaffa6fbdd09943ce27099b7588fbc554a3e822aaafd2c9bdb1ea80d3217ffed7dd4390f7179513227efcc79a80" ], - "pop": "325986fe26ad9e4228c0bc1028171a5c4eaeca17aebfaf4ed8436a2b54936f713f1547ab1a58a755b0f1a3de017e8c9a070d01418503a2670029a4033cd8d95c2543daae98de405a59d0dd96108cdac4e61e7c265f03729a1b058b369d7da27dfeea0e988c6fc77adbadb160cc16359829", + "pop": "09d2fd83c42bd9d7986156aa00278df59a560faa0b393971e30b0d947ead8b93a8b94023e1f64f4b905f80c9a735409436a1c989304193bc8054473d31ef2a06263c3496903a56c02fb98cfc0693337c8ca34faecc6a020ac4c37caed9e1216ba00635c35cdbc9f1a60fc807ac256f2d03", + "pop_intermediate": { + "message": "c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb1591c7cd12892296ba7e9c53b1b16cf39346161a0277267d59c02d4670936c9d08147ae49f823fd08673bf52b1852bd256adae7d3d14db03f00fb5be0a1fd21152d614ad3de9d88c28e304ed7b122c47622181fda52572c5bd9b449943a3f24940e973bc30113c8ca69706f0971a8f41b088062868df72a3eddbd6f57ec4eaffa6fbdd09943ce27099b7588fbc554a3e822aaafd2c9bdb1ea80d3217ffed7dd4390f7179513227efcc79a80f53445c3addb7cf9dba60d17faddbf89aaff8e4d3be4433f64ef1382fea24cc1db9ed1635e70ebeb8f8d034e8453de8a1db3ac79998c751800", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345f89b04abd820488110b0a8458e9e8ec1fc3b83defcb6b325cc3ca8b3ad2918af249b0060333e1ed47e6d21eceecaa468fb0fda2eb56edc22c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb1591c7cd12892296ba7e9c53b1b16cf39346161a0277267d59c02d4670936c9d08147ae49f823fd08673bf52b1852bd256adae7d3d14db03f00fb5be0a1fd21152d614ad3de9d88c28e304ed7b122c47622181fda52572c5bd9b449943a3f24940e973bc30113c8ca69706f0971a8f41b088062868df72a3eddbd6f57ec4eaffa6fbdd09943ce27099b7588fbc554a3e822aaafd2c9bdb1ea80d3217ffed7dd4390f7179513227efcc79a80f53445c3addb7cf9dba60d17faddbf89aaff8e4d3be4433f64ef1382fea24cc1db9ed1635e70ebeb8f8d034e8453de8a1db3ac79998c751800", + "nonce": "ed52449473b7c92a88354003cbada813245173dbcf2d1b2d97f93a42430383dfd445017af68eb2f469149bf683a2b84d3f570707a7a68e36", + "nonce_commitment": "09d2fd83c42bd9d7986156aa00278df59a560faa0b393971e30b0d947ead8b93a8b94023e1f64f4b905f80c9a735409436a1c989304193bc80", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d483709d2fd83c42bd9d7986156aa00278df59a560faa0b393971e30b0d947ead8b93a8b94023e1f64f4b905f80c9a735409436a1c989304193bc80591c7cd12892296ba7e9c53b1b16cf39346161a0277267d59c02d4670936c9d08147ae49f823fd08673bf52b1852bd256adae7d3d14db03f00c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb1591c7cd12892296ba7e9c53b1b16cf39346161a0277267d59c02d4670936c9d08147ae49f823fd08673bf52b1852bd256adae7d3d14db03f00fb5be0a1fd21152d614ad3de9d88c28e304ed7b122c47622181fda52572c5bd9b449943a3f24940e973bc30113c8ca69706f0971a8f41b088062868df72a3eddbd6f57ec4eaffa6fbdd09943ce27099b7588fbc554a3e822aaafd2c9bdb1ea80d3217ffed7dd4390f7179513227efcc79a80f53445c3addb7cf9dba60d17faddbf89aaff8e4d3be4433f64ef1382fea24cc1db9ed1635e70ebeb8f8d034e8453de8a1db3ac79998c751800", + "challenge": "c2c0ed82f2a6423190f3d6c2c9bc81b73bed78a03b0e8f12606c418a70b7e8017044a240d1a364cf76200c5645145be07854b93813290822" + }, "encrypted_shares": [ - "bfb881e3639c94575bbeaecc94dfe8dfa1496c59c6f84d57a76a02b3d04940ae79046fca90f810b3adfa500ff86f76f4a60f4db38172f265a5c4b799b0565a98f77e78ed167fa1a9", - "c123d9aa75f9eb160bc79fb928be7bdb1fde40b7e9cfffde95c4a6c79084624015276a7474880b8000051b733beae62c1c4a9084f6236094fd0fad31a639383fc41f03715f60739f", - "7d699d3de984b0350abaa177e51762920213f111eaddb59a6736414e0cca8669fb38fdc5c114d22fda881f71a8b65b9c24e2e71535b51094acf523ec53d52d126a2cf8f2954fc140", - "de799bc3e45f75465aa1afc6da6625282e5cf6a595b3b69a67996dd600b757e9be239fac9e472dd4a5602c09b327426bed9fe75b0023c978661db9f126a39b590769903b8e0dd0a2", - "97c88cc5c2c5d7dc75d1b6689c3d8108337e0bd16b681c68db854cbde1ad8d16238f299b2d24969398212fe2207144b08033b67dbe2ee4d38721adb1c4c6acb67e1d92a3443a9f33" + "d81aba0bd83c10ad7e8f869bdb0a941b35b15cab611c99a0290499d96d6e090e4d322584727550e84388cf7e76ee08d81a01d401f99936d804c7920fefeb682e4330ebf6252ef513", + "1c74856779524c5bf0306477174de54e432046e6aaa5e2154af6b3fcb91fad89f00453c2bc2cf13724e29b9902d8a6bf28c77cd05f7d7bd68f9fa921ae5dc4001bd6300b5d0cfe76", + "3d36c33f1c8efd2f58952b54446a01cfa26672d159e1465004ca307e0ea288d52e9a4a3d186e338c8b84cc5fab4bb197792fb3786c2c3c2d91a343d80c304278d26d4f943f35923b", + "1144481aac9052c9feea422a9279a19f34a4951b3734bd195d619ab9f8742ad50c4ee7245ebd2fb80aaa27dbe3ab32d1471f98c173869ee6ba899286a50770f82fc11511d4f8f890", + "9fd19374686a90435f009e1d9362a5bc78eaa51c594ca9b4af59b0fda44efeca7051a2ebb343af99769feb709412f97bfa720607f53ce6924d418ad2b0b40a905d5bd6a2fd0e921e" ] }, { @@ -213,13 +273,21 @@ "a7c96e3b902bf906d110b9a3a3f9f21a337289ebc905cad38012b22decfc82b3a0227aa159e14dee1475e24ee1a2dde85e881b5fd0eb731500", "6cc699592b5b580e9d02e10d9954c004222ed19e21da723fa785930497abf73b7da7049031613af5bd547c84bf185180e7b7d3f70f03385400" ], - "pop": "7a35c17f4afcfaf15cd5903b676059874629975f9299679711a3f806e931d58dd83f9e70262108c354be31470d0ba66b40115172bbbf92f2007c5274671b47da4d2f47106480759556c8cc6e6fa6dbda39513c94ab592875af2c463fd682bb07c8ee939af526507b85a1c6f1a5ee7d5019", + "pop": "26d769f40a73ec9073eca6d39c6f0193d5bee7fa7dbe48df88d82de917669d2c40cee3fe59037278be0dfb4333a2f19f0d99710aeaa4dbd680fdc4dee75649e063105205cad818f66a3d38878b01f88b4affafde71495e8aad39b5115fcc368b5a715966347b5f0672f758c03c8a55943c", + "pop_intermediate": { + "message": "c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb1a31b1ad452725bf4d620caa01291183b0daa36f47ba18aebc66a4103d10261ad03baa379ea76709a462f58fe89af472f4db57aa0d903182580a7c96e3b902bf906d110b9a3a3f9f21a337289ebc905cad38012b22decfc82b3a0227aa159e14dee1475e24ee1a2dde85e881b5fd0eb7315006cc699592b5b580e9d02e10d9954c004222ed19e21da723fa785930497abf73b7da7049031613af5bd547c84bf185180e7b7d3f70f0338540066fa3da62a6cdb3e921e1e6e826d4b56d9d4886c93215e164616820cc93ffa39a4bc87ddde2ed66bc53da875ed88bb6456c318139d6ba28e00", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345cf4c4982ae1c862c09ee61af22c4893c9ca960b63832eee2fe0e3fd1ecd518369cc221c7ce00d339956098204a0b28b16e224454c1b8da17c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb1a31b1ad452725bf4d620caa01291183b0daa36f47ba18aebc66a4103d10261ad03baa379ea76709a462f58fe89af472f4db57aa0d903182580a7c96e3b902bf906d110b9a3a3f9f21a337289ebc905cad38012b22decfc82b3a0227aa159e14dee1475e24ee1a2dde85e881b5fd0eb7315006cc699592b5b580e9d02e10d9954c004222ed19e21da723fa785930497abf73b7da7049031613af5bd547c84bf185180e7b7d3f70f0338540066fa3da62a6cdb3e921e1e6e826d4b56d9d4886c93215e164616820cc93ffa39a4bc87ddde2ed66bc53da875ed88bb6456c318139d6ba28e00", + "nonce": "57407217344f4111c59a7e011a841c8afb41419c8fd421e74007185e7ada4c3f97caa08d5139a214b43f6b62715f0263486d91ec159ffb10", + "nonce_commitment": "26d769f40a73ec9073eca6d39c6f0193d5bee7fa7dbe48df88d82de917669d2c40cee3fe59037278be0dfb4333a2f19f0d99710aeaa4dbd680", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d483726d769f40a73ec9073eca6d39c6f0193d5bee7fa7dbe48df88d82de917669d2c40cee3fe59037278be0dfb4333a2f19f0d99710aeaa4dbd680a31b1ad452725bf4d620caa01291183b0daa36f47ba18aebc66a4103d10261ad03baa379ea76709a462f58fe89af472f4db57aa0d903182580c104dcc2e899e76ceb2f28b887cbb1112e9ce5a4b664df3644c04f3b1e846ccf5b53c00764d047dc7830184be30ec4ab5ffa19992603239a7371196c79e1aeb1a31b1ad452725bf4d620caa01291183b0daa36f47ba18aebc66a4103d10261ad03baa379ea76709a462f58fe89af472f4db57aa0d903182580a7c96e3b902bf906d110b9a3a3f9f21a337289ebc905cad38012b22decfc82b3a0227aa159e14dee1475e24ee1a2dde85e881b5fd0eb7315006cc699592b5b580e9d02e10d9954c004222ed19e21da723fa785930497abf73b7da7049031613af5bd547c84bf185180e7b7d3f70f0338540066fa3da62a6cdb3e921e1e6e826d4b56d9d4886c93215e164616820cc93ffa39a4bc87ddde2ed66bc53da875ed88bb6456c318139d6ba28e00", + "challenge": "3d0c702322b07250a4a6815848f390d306c1e853ffcc8a89bdadc026a0f39c65ff2621a8d235057d18e13fa20892787977007fbe37ad3812" + }, "encrypted_shares": [ - "be444707f4a3563f948dc243b1610ba6c23da64690e9505f9498862619efcbb45222b3740f2eb520d31fc7576ce920d6a1e0cb4311f1a470b04284c1727da08ebab77703e1d1a836", - "f21b85b7a5f2930c5ebcce7dbbcd6a6f3d9900bc0a3cf27d81323445be1f32aad8fe2359c9473e72f46da180111306ce829aad5690504685092bb863aebfcc983b39ce6894c3115a", - "c3a4ca84bf6078628361baada553d866f187efeaf291d6b49b5795533f617eefd6572f66f3480189ac2d9236a155279ed00733a968f4befdabdbdf2951dc99b4c5e37e7ae3a66c51", - "0b95ea9e128520b3ab60b28410dd4964ef6521786c67817b5f43820378669b5589071ae1bdd40a2640d09525bd36006429e58337f39f1b5d23e15671975bef0df05c20325764e50f", - "e987031b35ee3d3c7732d14bfc3171bbb4c3c78cc6f8ce9d173eb5cf29a85caf0b74062aaf23b928837d3e934b0315a80f6cd43231fdc233b7454ce7e8b89e344f53af53cc950d04" + "098dcead550be0c94c2d502d3832e4656dbb2518fbe0996fd9c8c167fcf390de1e29d724b8c047f3b69737e435701d8f70e4d711d1c58f4d66bac516a5ff14c119c552f270868e67", + "1797634dcf95e48a2a0fa13b8991f30a8b96d49601f1b4cebb5831a385c4cac611915cc402ba9baa3bb46bfa7e209197eb6c2a36921fd16b1732e262557477215f8512077dcf3eb6", + "7974609c1d486b3915b241d0d44bfac8efe86cb250e7a00bbf729b54e1312d09146ffcc8a1664d3468aeaca989d8e220d2698895901e3e5aa3d2c1af4adc598bfeceb1a9b3a36ce7", + "749c5b7b2139af389338fa7526ab8c9cf16050ef7fb08c3c6b21c63e1256bfb37a579db5a55204b820281dc31b3310925b716900d8cf159753bf36104b9d3e2453ba572c1e0ac5d1", + "3ed022a0452392b1f5c4e77062a794fdd08365429622c1a6a2457b140e16d9b8b519988fe734d518a695bede83bf1feeabeb0bf3ae7b02b21537a3dedfbdacfca6b5f2bb0aa96c7e" ] } ], @@ -251,48 +319,38 @@ } ], "round3": { - "transcript_hash": "329e5fb3820eb9bb01b5cf947df31df2f11f4a354beabeeced40eef52c80303f5e08958d7fb7df119bca33f329c499fbe4c9ee0425e59bb368ad034a4b2df8c3", + "transcript_hash": "3f8cd108a4f322f17440d922622b88d794e8b07bc7615ac0f57e91d415e02abf84e8393b991fbb8b47430300aeda747ced0c5bee40eb38afb211b5e3e4af044e", "signatures": [ { "signer_id": 1, - "signature": "143c520b2da1e4a6de3642ddc53384a73890cc4fb8cb2e8b0950d0c700e071e65c1b9ef40f88e4a256167e900c24a60ab10f61e85cd071d10049aa8f3f15e06f49d0385ad0268e0eefdb8dabfe69ef1077fe03932e817726ac92daba8d46764059ff1410ff00fe0cd67f55d1fe7ca6b30b" + "signature": "3afcdf8e1cbe1dd6221c64b793a1525577e06698b7741cc156d37569f321df58bd1fec84a069f97de20569d27a153a81866e52bacb8e2cc68072fd930cbcda8dee380802c73d812aea78ec288af34f13bc2270e489c8416023efbe6b6747ff613580d1aa1ce3a4a5f2579abe04fed2963c" }, { "signer_id": 2, - "signature": "d2b1df1096f4ef3a6e38da31afac6b1d9572062a5194a0b00deb9470a6b685e11f7a206c56541bdb69c9d58dad5981d623aca9dc3d46f38b0074084603d7ad91dbcfbf7157c7bf471ec606607027eb514b23c658fd018f9962ba8aa4439aa793a8908cecdfe5340528a45dab93a27d893b" + "signature": "a8776d26d495d83878438ba8031c20111ae0d7b049ea52db985844ffdd5377d59d640dc8e4ca3e0d206cad3d74245f8142eda37cd6a3dc10803f7411e8c6e3431f395e4ad66b5786c865c1fb8134b3edb34109a6ff55427f442513eb01de428ba9302f6ba9ba3efdd3d80d008e16aef73a" }, { "signer_id": 3, - "signature": "3b8b5309d58a1a1e5fc85753df6ce16bbd426c61217115f5941a501ab31c171d4754f99fdd9bed2acf36e07f782dc5f4bf8fa27e565de158009e118ff46e1fff41883d3a3521f82a76c6910426cf2d85688effc0af89a9db4d09ce36c548b986cfd190bab21ae9471b47b9b52b3cae7b0a" + "signature": "8f564fcdad2647c9d3e103e21c0719289917d03d4a9bb6dec3fceda9796928c9d9f48d789521f201a1f6cfd5eaab609c76fcf5a3743e21f580265eb9a6ded2728093ffcda1f9f00af6ce14887c894709447fb7a8c6478276ef81a597b533b48258c574b204d62f4d9f6b0d22bbe94a8417" }, { "signer_id": 4, - "signature": "b4ba26707eaee38bf58363ca0603db28f045d05e159775b4914d12960e697d60a57eea33d3977d7237390db69ffe076b4e7f3c8d24e61f0e009d452b1b051b79c665a7dd3e702f1f6d4f1be98d867d5a745e56b8e6e85be67c92644ec58c543892969bcd9b7121465ea35326d7ee31393b" + "signature": "87e84c2905e2a0ab45095a7e0edb707f519d34e78ff677ca6b3c1859de13d5e31e5692dd395d5a78fe0f1f6e3adffa3f30a7dd54c8d3e9f980dc61cd95e7c5a98c2b7b23fc3c9161d90316c24e92ea41ed473f2fda1d7040c219ebeb7c1b3c68f3f2e9f81c10b6ccb7ca933df501b44e17" }, { "signer_id": 5, - "signature": "607f09eed9bf74099acbd09e34b47997a257673dceb8fc0623b9abe403768f9ceef83a316e3de95bccaf848bcd3ef51ee5a876ec11559d55005c935e4c46f430440461ceb8782f2842f0e41d500b6ad1f8e0be7bd8f7c0b8da2634b6734206a61379e239e5784fed01a23689fb4535c818" + "signature": "204d60467d25ba059274866c6e1a09f9bca4241bf43f75831faa380d52e3f5ee4ada0891714d0152a71316831527f99d351212b5b499a3da805aa7c330c1bbe3e5112660898248d955da84c2390024a104be57dd53267c7401fa2890fb9bde1055def8507fa30482489d05d0dac39e9200" } ] }, - "group_public_key": "c7f0192c26da753dd3875fea28957843195e95e2624ed9064c3e96bc45d54002338eb48018180193b11f94dac4ef1ffc6623a6b8e762a18180", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "55adbf574daff15b6a40a67f7280fd1306e6d7a717d5b3c9777b3673740cdda12779e2931ff16c72eb021a824754d50ab6cf19b911cc87f6d08a7e77bdbc5d73e7b72f380415dd50", - "055b0aef9022b9d4e2cd898b0ad42d6b6c69f5df0c885517ddfd8d563c12d96b7abeb535409124cf9e6ff0b021146adca41b05034c521f0a942393adbee79336f8fb5c7efc51b2cf", - "38253d7b2e48f641373e0546cc3fcd8ba52b3545252f4d1f3714bcef71c877fe6e2ef77eed3fc313ec4c834a9e85dc259e23c71eb84fe651e7e09ec496dc487e3742a2b70e2d2d52", - "bfb881e3639c94575bbeaecc94dfe8dfa1496c59c6f84d57a76a02b3d04940ae79046fca90f810b3adfa500ff86f76f4a60f4db38172f265a5c4b799b0565a98f77e78ed167fa1a9", - "be444707f4a3563f948dc243b1610ba6c23da64690e9505f9498862619efcbb45222b3740f2eb520d31fc7576ce920d6a1e0cb4311f1a470b04284c1727da08ebab77703e1d1a836" - ], - "recovered_secret_share": "74e66247b81e130ca8077e234e721ca80c69f5edcad0cebf3e75f0ca4c9ad3b532778ca0911ea317ba616a825c0f842d66a65c216e98841f", - "recovered_verification_share": "2ac240fd19889d93dde270a8faed2daf7fdfbbea5cc09c9b982e532183efe803d8ac0480707b3e6c1b211dc63c26dee2e06699a80d8dba9c00" - } + "group_public_key": "c7f0192c26da753dd3875fea28957843195e95e2624ed9064c3e96bc45d54002338eb48018180193b11f94dac4ef1ffc6623a6b8e762a18180" }, { "n": 14, "t": 7, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "context": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa", + "extension": "", "config": { "static_secret_keys": [ "2e49741700240512141761f0c9bb8a72a06ee832d3ca21086b0284769a127e05bb0e6e316705c52a38aa23c2fa5c7f5c200804e4d8fe6937", @@ -340,22 +398,30 @@ "b4faa84d6c93c802ce124f013c3b41a4e45ef961f6287b2c933c1716e5e70525436c0adbd29e604605ca17a39e5df6964da708d9588eb32800", "eea617c98ccc468403b83733090b24579eae49bd65ece528c7d0f37f4a219079eabf01fcfadee938f9c58b93fd78c75aee29ee6f8925e6b580" ], - "pop": "220c6e24b5a9c81612f2a418e8c01c7912d860636828c91536d49a707a6f0d4ce670b58e4fa74f70a818b24819662447b1ece821a83c81e2009501bb5ec26cbf8bebe4f3dde524d7ae3c3905b1ae8c8faa66c3169812e28de64407a6ecf552bcaa1965a453df1b00f06029420680820d2d", + "pop": "252fa01baf6197591ac2193913acadcaf41243eadd71aac8d8d32217621944c4f38ada6cce6e9b74427d45eab8269a26885ba150654f6f3b0075057bd30bf38c474d723d3bab055a65121a568319025d0fca6db0b92618220e77a8f618cb84041bd32f7ad93543e906305f403c562bf233", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfaf14db92c0dbddc53e3640509622f019c792774e4685fe4e4e3072fff20d91ae7757160db09ce73433d7d5b666083adeebf7b0dea75a32ae60070f709be3d26746bf21e0cb68af4bbc52258d697b00aa28f1a3858cf9cb6ee894ba44abf98fb97f0206aa707314512a5a10185c646b45d5a008b2d9a3617a2fa10cae2c116ed8d63ef3ee6fc90bf919e0bdf6671e0117db50c70adb96689e27680e2cf2cdf38159d4580a346850929de7e00c69a0bfa5297a1b32934c1115846746b9d7fbc93565867ef009b3e0904bb66aa393669601598f3c83540491f71f1ff9461a1e145e3612b08006beef2c788598002ea818af46a47d90f3b07b25f17713dc6fdcea9d809da89320350faa57b97d66c20db436da47405f10532f42aea23a1c300b4faa84d6c93c802ce124f013c3b41a4e45ef961f6287b2c933c1716e5e70525436c0adbd29e604605ca17a39e5df6964da708d9588eb32800eea617c98ccc468403b83733090b24579eae49bd65ece528c7d0f37f4a219079eabf01fcfadee938f9c58b93fd78c75aee29ee6f8925e6b58025d76e3a7431b312fd3162ff618b6146f1e256297b10d1741583ae463d1ec9261651d65a44de9fffcdb42e520ad24b5b30caf3f457f32a8900", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e434500cd212ed3cfc42ea7cd79f97024d315f6e56abdbae321ae61d27582860375a975e11b530bfcfc02cd2d00d47bcfb5f1226a49846fe8c93363f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfaf14db92c0dbddc53e3640509622f019c792774e4685fe4e4e3072fff20d91ae7757160db09ce73433d7d5b666083adeebf7b0dea75a32ae60070f709be3d26746bf21e0cb68af4bbc52258d697b00aa28f1a3858cf9cb6ee894ba44abf98fb97f0206aa707314512a5a10185c646b45d5a008b2d9a3617a2fa10cae2c116ed8d63ef3ee6fc90bf919e0bdf6671e0117db50c70adb96689e27680e2cf2cdf38159d4580a346850929de7e00c69a0bfa5297a1b32934c1115846746b9d7fbc93565867ef009b3e0904bb66aa393669601598f3c83540491f71f1ff9461a1e145e3612b08006beef2c788598002ea818af46a47d90f3b07b25f17713dc6fdcea9d809da89320350faa57b97d66c20db436da47405f10532f42aea23a1c300b4faa84d6c93c802ce124f013c3b41a4e45ef961f6287b2c933c1716e5e70525436c0adbd29e604605ca17a39e5df6964da708d9588eb32800eea617c98ccc468403b83733090b24579eae49bd65ece528c7d0f37f4a219079eabf01fcfadee938f9c58b93fd78c75aee29ee6f8925e6b58025d76e3a7431b312fd3162ff618b6146f1e256297b10d1741583ae463d1ec9261651d65a44de9fffcdb42e520ad24b5b30caf3f457f32a8900", + "nonce": "f9f17ee027203a844d8b7611466d75ba869f8565a1ca28adde12c8b8a92c1e5536cfe4643bf08c174d4551d87d4801531a57e436b240e307", + "nonce_commitment": "252fa01baf6197591ac2193913acadcaf41243eadd71aac8d8d32217621944c4f38ada6cce6e9b74427d45eab8269a26885ba150654f6f3b00", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4837252fa01baf6197591ac2193913acadcaf41243eadd71aac8d8d32217621944c4f38ada6cce6e9b74427d45eab8269a26885ba150654f6f3b00f14db92c0dbddc53e3640509622f019c792774e4685fe4e4e3072fff20d91ae7757160db09ce73433d7d5b666083adeebf7b0dea75a32ae60063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfaf14db92c0dbddc53e3640509622f019c792774e4685fe4e4e3072fff20d91ae7757160db09ce73433d7d5b666083adeebf7b0dea75a32ae60070f709be3d26746bf21e0cb68af4bbc52258d697b00aa28f1a3858cf9cb6ee894ba44abf98fb97f0206aa707314512a5a10185c646b45d5a008b2d9a3617a2fa10cae2c116ed8d63ef3ee6fc90bf919e0bdf6671e0117db50c70adb96689e27680e2cf2cdf38159d4580a346850929de7e00c69a0bfa5297a1b32934c1115846746b9d7fbc93565867ef009b3e0904bb66aa393669601598f3c83540491f71f1ff9461a1e145e3612b08006beef2c788598002ea818af46a47d90f3b07b25f17713dc6fdcea9d809da89320350faa57b97d66c20db436da47405f10532f42aea23a1c300b4faa84d6c93c802ce124f013c3b41a4e45ef961f6287b2c933c1716e5e70525436c0adbd29e604605ca17a39e5df6964da708d9588eb32800eea617c98ccc468403b83733090b24579eae49bd65ece528c7d0f37f4a219079eabf01fcfadee938f9c58b93fd78c75aee29ee6f8925e6b58025d76e3a7431b312fd3162ff618b6146f1e256297b10d1741583ae463d1ec9261651d65a44de9fffcdb42e520ad24b5b30caf3f457f32a8900", + "challenge": "39b3caf9c7d3b2c8efe8673ad60d0dee53d5f09d20841e054a77413e5a1ca31107f5380248703599debc7898914ec13fd912b3e30229d215" + }, "encrypted_shares": [ - "7d5c24211e850a054f0a2b9aabf5ce1f80aa95e2d2a797d0a184b56be0532b98adcaf3774f3f9614c3d1ce4ec8b96b94ba1d629cd8358cf42701947736c0aff1c4aa85a9226ede32", - "74c0051590f3634ec14b36ddb8914cd5555a9a2a016355b2dceb933a33d9217771f776e887105d2ba9feec5ee8923cb395604f158cb45dc65b002b74682e41e5cfd91f30d94e9290", - "ccd23c388ffb0dd617c5523df17f25c26a0c34a24811e7cbffe4c2faaf9681e9dbdece0cf256965e0c1e6aa237a0469dd7d4a2a8fb51f5f3ed6ed74a76712c2b043948d99adbd3f0", - "287b9106b0dafca69f3f80507c5d169700a226b740f7450dfa9bc6222a6ed0a0d65322f7bef1cbe20cf2cafacd8dc9ea6e043dad57bfc3fd3978b4ab0517e21a373fd7abc8db3385", - "8f71d11d0b74f45f874a935ff1708b7d2e16f70821b7c6eea1225f68965a9e0b81690117ca37fc98f532c8798c9c64dd29047400e7b01dd70bd2de917b120e5cb13bb67a02a0e199", - "80217a8856ddf5666b70c18ee440205320bfa36c1b362604b8d866ddc648bc655c8461fa3ac19f9c4864c27534c401d7c39df8ce88b0076988d2715a6fda3e927fdb4bfb78fb3e57", - "7bb37a4b41971057c530b62474faae23b4a49adcf55b996aaac4abe3544592bb2703d8749a77d44d92ed2e16128dcec5f481c11da51e2ec53de36a2f1f24157090f6a07868b7427a", - "77a6494d037c040cb14ce4727b0629bd810605114c3098c27d77bc36dd9b869cac4a5e1e27b1ed1b6d47f7d3074a4f31e1d7d13be4e0232f38c585a789a46d5884e4da86411dce46", - "6a0693589742f5bf7a7160293b3f0165b71e717e58735228a0efb4c71f66e453454a8723cadb5062deea091e3dd4bb9fc6570fae97b996361aef0b0dcad05b43b885e79675455448", - "ed55be3f36aaf38f814d1d8597b7f17e1d35e17b696cdcb530179bd87582cd7cf7d5391b5d2ed431280ed9a60504da30894c1f5ae0380d40a98ab5a08b7c923c53531585266fbb84", - "de3af5021b84e81d723e31c6c340b8744e2c617bdfc803356cf573438297511673b671eb211b46e6e80ce08eda1bf2db4b2982e2f0ad37b7d87f2d8f262258f11c34f370bd994d00", - "76503e34a93a7adab06b71b3388df909bbdce792ef82cb9c2308b90133fac65584d25113fd9721e0dc32e37c8c50884fd4a570485a46325ce2cd853f2670e685e3c9e321336f590d", - "926884ad85790fe233f58a45adf50331ec3da6992ace6c6d2583430059d67c6b722b82aec57b36aecdfe12e41eed821319285aa7214ef9d38a4501f2362fab09a435db8464dc1fc1", - "ff814d262eeb62e2f8b535dec46918d1eedc5838b7fc93feac74dc864cadc2dcacd36b9943d842738544bd751ec1ab95df889c25b9f66485f359f1a208e184cd0deb5b372ce3ad77" + "6b28e2da9778e5665adaa18aec2faca0fb3e8c71bc098ffa4e3ca85732cd39961d1462b0bfdf172f6671713186841fff51ab4249f56bef797fec6a57239a5209f8e9a8b00ec883ab", + "01235c0e266fd9de01874d6167ea581bb04d8057ffba81706298f591761b1a1388230b49ece4e8f4625203f877281c1d3f998bb5b9cb91f276da754e1a431e3a65af0a9bcd851498", + "46015be208184cf62d5fd549a91ff38a3becbf7141d62469021f63d542169926dfef18c6a7928e4896abeedf5d6738add63a13fb2e71ed8edfa1ab60e227b5de5a82d199e3f9cc1c", + "558409ac1dd6b62bfb9f459c4a16cf15373e2c64c060a5fbe1c9175cc5180bd6f1e2e33462c38699c9c52dd740a93fceb76b98736ca7eab58476e908e2fd8571060eaa676e0dfd3a", + "c96318dbde1ba0342d92f53a7ca9eaaed8268ee81ebaf61cf69950bd17b47d3fb36566cbe3161bde2cf5cd21c8d463fb251d5441f9d568b2253be7ce1448a37ae0771178f4cd0cc1", + "8167fdd0d275708b99125dfdea45468367218541066dd526463b49f6cb41db16d17a02ead6bad4fc5f542559ff308551cf355093c46e7c15eb21ee89b752d82a51210d72445a2b72", + "6c6cf217f95a0d5aec548b9aaa1cb557b45dc219af6778716934e2e274db0261c332ab3f5adad39dd32717be765fde0f90c572b75539a9af36136b4dcda02b9684d4c8f735f61f68", + "0f58e09683af57e5091f6f13810de60698e5e56cbada51672417ef69b12cf93a9ee59f611d2022ef4f188cf2af7b9eb5d9ddfcd1727949840ebd141263cd64c98dedce9eda2ec9ae", + "2307da93ce32645ad27acbd1bb16b86a6f5605bd47835e6ba2e7334f6c982b49533475cf542795eff1f6c7f7def835b6ed0c0f7a68a9873dac89fa3aeb69e0f61b01b97003f68250", + "f5a3ed74d43331f07426901af5e0b3a916b12f3afc4133755c0063e7f1c661ac2da4e9ab46be618514d90bf69483f6e3fa8592c0307e9d9ab38e717b9da23082baf58d2aeaa26bcb", + "1864c59d375a3c956c4122d907ff4404acc8efd86c8540e5d64627847f1ea77943fe00cd67142dd716dfea17db089568be8646f9bdca7d68ad3847d2ee0e4077087f6353f73724ac", + "14bc6734f9bf225113f8318eff9d25bc00ed3da9e243d36fcdeb673b48a87dc774074c1ce86585c5839a2453db42d5949211c83af38e8e11d6aeddd35d7623cf7aa678ed6d9accd4", + "c42ba3c856ba555a42a5c7d8d6007952cf76c33f1ed207755094d9e9a4eeaa03ce5d7b9e647459ade23b3be1fa1c9b2f7b09fae8b20b990d1f02edec3a44695c1a6cf0ab184e73e9", + "39b03a3e5817af99beb56d33b7dd2c6b2fffb63dee672750a0d422d8f5cac1b8c170cb7101c42202d94b82b83ffd0cd4d0a12f92fab9728737996fef43206fd514e7de365b4a2978" ] }, { @@ -370,22 +436,30 @@ "31c27ef4f9248e502cba02d1036ee6f5059642e07b64e938537c5868a6dcc9c7381745731823c34f8118768629899ba0eb3b64758e6c29d800", "bf4d3001f854a1ba0924278e583a9a3a265c87f1b3587252ddfedc56d7dbaf75d9bcf0875336bc2455e7360d4ba7ba4404ebb8c0956f951500" ], - "pop": "8bdce5641c082f01d9c7eed192c922501dd590f393a5b80e42ef1360a66648d6aad932593db5f6e3ee6c2071fcb102db94be94b78ccc9843006520664b7ad2fdbb334dc7ab4e98d4909bb00d37441b78a8192bbc9b30fd9a024e286c27429aaf8f69af2d3ef730e53c76a6cfa0fa43e83e", + "pop": "2b4c749cc3b316131c611a0b3691737afee25a8346c584e2a2e498552de5d64d66899fbbdaae1d7dceee3761aa3889b6d81072a48f21d05a00eb16151280a2224bbd53fbfefe5c6597fa96b963f3bdd28e0f9f226ddb53d09e4ecab0ed7ff94399b3a3cc82718b0772fe09a141675fd516", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa51144a91caa5b1d06824568ed58c746727ee04a17316813e2356c58c1e82fcd6ba295d80dec8fc3b76d54ced11e87b90b3db82b67e8dc72a00068a4753733eee44ebc45bb60c35b542290d40a5b9f63a754487096579f8daf45e153524dbd29025b7c0e4ccd50fc07789372d57ab5aca14808b402710c16d52cc0c9a1164d2d1da149fd850332278485e155a3cbdfe61fcd72cb03b205b5f751f02627ccd1d7510a6bc25843d9b82343e00b2186a8b4f7348fdd10e416608f1692efcdc6295573099b121873809c09a506643a410b6b3b9eed4de119b0ee8aa780ddc5a153130783b0b80db4d43d9c49e93bed902c73e41926727becb048bb9c1821963359a60c6ef3190cdd74953afdba5fd25f64d1dfc4ec64e33fb37541c2f70720031c27ef4f9248e502cba02d1036ee6f5059642e07b64e938537c5868a6dcc9c7381745731823c34f8118768629899ba0eb3b64758e6c29d800bf4d3001f854a1ba0924278e583a9a3a265c87f1b3587252ddfedc56d7dbaf75d9bcf0875336bc2455e7360d4ba7ba4404ebb8c0956f95150066085284b6576ebdbf98042417cbb5d2d5151746af0544d73033fa53def243664065e784d7b5d606c9de4d064cc71210f7f1976a83b045e880", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345c23ce3897a5a8ef1bae5971e64095ece26354f1b28d7f208fcf222a256a13d7732c8c359fd655adccbe7cc311701f48aa6311a4b3672fc1963f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa51144a91caa5b1d06824568ed58c746727ee04a17316813e2356c58c1e82fcd6ba295d80dec8fc3b76d54ced11e87b90b3db82b67e8dc72a00068a4753733eee44ebc45bb60c35b542290d40a5b9f63a754487096579f8daf45e153524dbd29025b7c0e4ccd50fc07789372d57ab5aca14808b402710c16d52cc0c9a1164d2d1da149fd850332278485e155a3cbdfe61fcd72cb03b205b5f751f02627ccd1d7510a6bc25843d9b82343e00b2186a8b4f7348fdd10e416608f1692efcdc6295573099b121873809c09a506643a410b6b3b9eed4de119b0ee8aa780ddc5a153130783b0b80db4d43d9c49e93bed902c73e41926727becb048bb9c1821963359a60c6ef3190cdd74953afdba5fd25f64d1dfc4ec64e33fb37541c2f70720031c27ef4f9248e502cba02d1036ee6f5059642e07b64e938537c5868a6dcc9c7381745731823c34f8118768629899ba0eb3b64758e6c29d800bf4d3001f854a1ba0924278e583a9a3a265c87f1b3587252ddfedc56d7dbaf75d9bcf0875336bc2455e7360d4ba7ba4404ebb8c0956f95150066085284b6576ebdbf98042417cbb5d2d5151746af0544d73033fa53def243664065e784d7b5d606c9de4d064cc71210f7f1976a83b045e880", + "nonce": "094d86a84f05afb1a94db65fa611d4ffc381f589666342c914db7bdf2cb8f93bd926be1e8449ac29cb1b14f5c0c5a982ac45570ff2a7af30", + "nonce_commitment": "2b4c749cc3b316131c611a0b3691737afee25a8346c584e2a2e498552de5d64d66899fbbdaae1d7dceee3761aa3889b6d81072a48f21d05a00", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d48372b4c749cc3b316131c611a0b3691737afee25a8346c584e2a2e498552de5d64d66899fbbdaae1d7dceee3761aa3889b6d81072a48f21d05a0051144a91caa5b1d06824568ed58c746727ee04a17316813e2356c58c1e82fcd6ba295d80dec8fc3b76d54ced11e87b90b3db82b67e8dc72a0063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa51144a91caa5b1d06824568ed58c746727ee04a17316813e2356c58c1e82fcd6ba295d80dec8fc3b76d54ced11e87b90b3db82b67e8dc72a00068a4753733eee44ebc45bb60c35b542290d40a5b9f63a754487096579f8daf45e153524dbd29025b7c0e4ccd50fc07789372d57ab5aca14808b402710c16d52cc0c9a1164d2d1da149fd850332278485e155a3cbdfe61fcd72cb03b205b5f751f02627ccd1d7510a6bc25843d9b82343e00b2186a8b4f7348fdd10e416608f1692efcdc6295573099b121873809c09a506643a410b6b3b9eed4de119b0ee8aa780ddc5a153130783b0b80db4d43d9c49e93bed902c73e41926727becb048bb9c1821963359a60c6ef3190cdd74953afdba5fd25f64d1dfc4ec64e33fb37541c2f70720031c27ef4f9248e502cba02d1036ee6f5059642e07b64e938537c5868a6dcc9c7381745731823c34f8118768629899ba0eb3b64758e6c29d800bf4d3001f854a1ba0924278e583a9a3a265c87f1b3587252ddfedc56d7dbaf75d9bcf0875336bc2455e7360d4ba7ba4404ebb8c0956f95150066085284b6576ebdbf98042417cbb5d2d5151746af0544d73033fa53def243664065e784d7b5d606c9de4d064cc71210f7f1976a83b045e880", + "challenge": "91dec44e71e42ba73461e789ad8d06ec1cd1635ad36607ec1a66e6cf0563fd1c028e6c7e159421ea9afd9de56ef3028b88d53b3ba62c160a" + }, "encrypted_shares": [ - "8f591a73233805516437315798255ecb0ccfd59ec127ae2557b8a88261fbaad60a22ff201aa7d0d6e41f585346f16eba07c804c2b021cb2a9d1f08bb23fbc8a87260e60927720851", - "6a0363cdc15dacca9d1a2719979118916163acc9f6a3229c662dbaa43b95e46d9d635bea7546ca8e21412f13a19ad2006e2fdf71ed1d9d50c91fdd620c73aa08a861c98493daae52", - "a9884393a3fe33ae4c149d3176a88086a9e768e6469859cefbef8da09ee71a138e9687820ec54c0cedc0432387e4b71c6df48096ef3dc672282560f01d8ae0d3cbac5ec3957b22e4", - "5ed6489f9523f242da4c98faf1efabc6998934420e36482bffa70c234ad3cfc38327a68e5f780d98cde9f24d1619a36a3371791dffa7125a29c44882eb0e2e7acd3b10b3c72c97d5", - "337d982a22cebf2cc0c6b2c30936ca136743bebd45e5d8c62337a0138981bfadd999e3f1a162b3763a4cf5eaa71c415f092c29a5bb4f35fb0e01d9e06c4160a426cdb5116d0f3481", - "08c5baf9611c76f94327ff6d578a9727a589ad9dd494b44134b62bf4064b287b11fa47d6706c1f045ce76674be214937b607248d73b1326c23ab846f5c111cf2154d4d00be035576", - "5a43e36d7f98547ec6dcd9b5c6329c05ba0cafc082bda8f73c8a3f0c8570152c90e6e4105dc0bc26ea706459ddcb0eaf5d0c8928895b270ddfb869e391c045fcf373aaa195f4170a", - "20b03ac6e7e33d4bb0c62bb98d58a12fc51206dcaa7f9cc1d20f612ec705a9315eb6c531fbdd7842dadac7108b8113a1036f423ea44235a733705469e882c741e41ccec320141e34", - "42187bb71960bef53d55d47eaec5bfe5426144da70eb929eae77b0aa1d7410b6193943d4a2bd33739d45f6d6e971bc3e9691a1901097b490c69b28cc4fc93d59706931d896d59396", - "c2e76210f531336fc43186fe8b32747d635a1fad9aefec843d7d47e54bcc35e3f737cd4ba55b12ee5fd8d61e928e8e700b64a7a143806f789867c87333e806c711eee59092c1ff4c", - "4680b31860aba09a3cd66a6bdfa1782a2b725e43b317ca7292a6b818c386768ae6a9d18d62d802d3714aff7811caaec37437f37166706ab4df189f69a1009b5a1a2c78cb5a8e8e68", - "7afc9884d30921202f6406daa0430676daa107433341f031c3c1bc9c074959cb77e202a7f0009b1f62fbedce1a92e504fd186102e25762e4c2d5a9d2dd5bb2faa292aa361f4291d7", - "c13101ec9919e19ab7f6cbabe668ed97ccdea686855ee7067f277a1950316be4896fa4ed7bd44de5ca458697beac75cb895ab8dd8515c24dad9e5144d34b13a59aed10b07612a79b", - "8f0d746b146e157362649420679ea3a3914fc58b9174e66ec73f9de00a47977b1ce2e5a10f8b8140999dcade5ff7cf659ac5ef4b99b84255a30ec4d03d84f5a65309789bdc2bb72f" + "f7d4231274a448fbc3509bad5dd44d2b2493a283d930e0873af8e57c6ace781abdae7e229c386b87fea55b198cb8a1cf726b768513c53d6e941b5f56043b88d232ff255c0736d6d8", + "3c7e2ff3d13a42c8ec5857369fa792d23bf0e9d02145e614462cc48184c9a8408e15f10eff13cbfdbc9e8893a200f9c523e91994f9e7b8640a19f5c496388bf75c977daae8b58b85", + "64c50619f4bdf0357f63b4653c9ba9112b617660f408f58fe9301edc9e6bfadca726c850cb623051e43c579d43bff97ed75811d8d983621e3b881760be82d174bd07359f83d16f0b", + "bb37721da7f51a7fc64b778604e75ab2976673c73bfa4dd810117fb530d524047155d6bf141c30baf046fdbbfd0470ac3b80148ce0fb67702d04e8154020c6ae0f8d4cfed68126ab", + "ad1c847f5d661daa82fb7a3616b074ae6385d47d6f622197e4637e417a1219cdd9c165e5efb0d3fd1648da996d90060a388a1cd0a7dc67b41b7f93e94144daeb5c5b513844823bb1", + "e56d3b16f364b51437e0de51fe1270fa12c84704f5a7ddac9d81ab7717e5f720a93d54bb575f189ad1833d701f8bec03561d71c6a5b8dee2b2bda96517a95f92626c69ca7dfbedf2", + "73ecb70b092858d6c109391a177da3e362c8b0b9929561507c4663eac9e57b3bc1a98489401c8447a77b3dceb10c5f80e8c2f81f01666cbf808c88bb04288810dfd54359ee45df4c", + "8fa72ddd543a86aa68b8517098e1c20dd4cc8c9dad2ccb8863ea54fc07bb7a782fba84abc4ebf35e775be6015c2d9b59ee88851878706aac6fd4b4c8f23881ce22ced9556c7e0546", + "bc7a249999e1c07353f59b2152c6da902d4b111860952a51da7d9e2a7f24f624948072dc039d3f7db95524fb849ecdf654b197e6f2eb1fbd8be3f86f9f8836945657a7e1fd677880", + "7125d1084a63bc9fabad7f746a6a634bebe113c33ac01a3a30606f843cf09a7ef222eabde2cdba53d3bf74c119e23bdbd3a1b2f15e46a2ce9d52e7037e410357d0bd07d13431c60f", + "1142ece186c3bd8c84c5fffebf036a09f1be38c14346bb846ffc18aaffcc1c45338a4de6f3121faec1c570837122e5ab0168765cb14eed7a59527ac5852ac1618e0cdee4bf1aafee", + "082cb79719b5d498db21121bc18f5cfeaa2700a42d94d282bde0f0dc511d2438c8f7fd6db3380be740fde7de842bd800d5e0f030199ed219e0715d4d6de66ea4140f7eea6a30ef44", + "ec256469fcafb584f0520e5aa2e0abc65725160d61f6b1ab434463fe5e16ffbed735585451b0bde359e5ce23b3a635be8c272c91c38b2f62be4435a86b57f8d4360b04c665a205e5", + "e3025f459057fc46c35568cfc6a8c7fa111d3cc7df7471af0dd54b9a8ec6d362879f294f940dc9f4a33f32decb6fee11851cd557bf81731a9890b61bdcc81be81ae6fda28e33a1f0" ] }, { @@ -400,22 +474,30 @@ "a9c9fd9138fdf608a56f2a39c2b4f92f4d7e805878134942f0c06ebb52dbc10297b468ae233f7f8a7685912fa6e3d45a5c667eab8e0dbc1c80", "0a16610a3bfa640adced364b7d8efcf4d0d46edf19273d559b463607e8722a719f8757420fcce70417928590f6809a41c19c3287eab2d65400" ], - "pop": "0c589f572913f362fdd8c9a66cc4b8224b8b36e298e08fb17f63d18a29bf0cc8f2988ca6c83bb5d07bfd4712eed264a95f4b8cd2515635c900a80a6843c9782732313e2a69dbf19537a992b1ac1605de75924f0c2338f0dadae467af02cb6f4054c0ba1e1dc51f54131f5e5e4b429cfc17", + "pop": "05ea35e25a20ced6d6163a5aa599806632d946b0067c68b359760c3b698ce33cae37fac3ef5fc99cad35fd4608cf975fafaa9959c14de38d801ef679002332362c30f3b6411fb2cc0641138a79eeeb824acc6bcc110ad790d54411ccdcc5b31ea2f46835ae8e3f402dc0142c3f1cd53e33", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa22e9e57fc5c2476bcda6c21fb8ab179387baaa9b243eb3b568369ef85af1212e5fda2f26715c835f85f898cf304ff5dbe110fd79cec0bf1c005b98535fb57e34b5a659e39a1db3e2bdb9e46ce656f8a51ddd87a69cf4776a68e19a2bc26088172497c16f185d6fa2d1ea039096dc4084e700be453695b3c81ceb06564fba4d4b21fb846167ec0e1b395a0818fa9d361c7838d85cfa229ef4793909acebebdad02cdcfa4fc089d2b4ed420061df9b9d272f13b9b78c37c2767c79e64850581e763dade287de62619d3e60312bf85cbf90fff35a166e05294e46f606082acba86754a99c00f2697dc54ad356e7321d2ce74e44823dbcc25ae6e8121dcdf17c0e01edc032d271a9655c4c0ef64cf9b4d4c4b9611265019ba4142fbff1eb00a9c9fd9138fdf608a56f2a39c2b4f92f4d7e805878134942f0c06ebb52dbc10297b468ae233f7f8a7685912fa6e3d45a5c667eab8e0dbc1c800a16610a3bfa640adced364b7d8efcf4d0d46edf19273d559b463607e8722a719f8757420fcce70417928590f6809a41c19c3287eab2d65400c5374090401ab8f2ed27de8765dee1e9be78efc31e38aa52d28c9e243ea1873e891fbd477b5ea5321192e3f678a046ab5fac07816681169980", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e434518141a17676fe0bb8b518bf17e55e5cc6e1342746346fda1ab2f33510c70a3bd2eb3b9d28575185d108619c0bd38f39ae5d91a6f8f08dc3663f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa22e9e57fc5c2476bcda6c21fb8ab179387baaa9b243eb3b568369ef85af1212e5fda2f26715c835f85f898cf304ff5dbe110fd79cec0bf1c005b98535fb57e34b5a659e39a1db3e2bdb9e46ce656f8a51ddd87a69cf4776a68e19a2bc26088172497c16f185d6fa2d1ea039096dc4084e700be453695b3c81ceb06564fba4d4b21fb846167ec0e1b395a0818fa9d361c7838d85cfa229ef4793909acebebdad02cdcfa4fc089d2b4ed420061df9b9d272f13b9b78c37c2767c79e64850581e763dade287de62619d3e60312bf85cbf90fff35a166e05294e46f606082acba86754a99c00f2697dc54ad356e7321d2ce74e44823dbcc25ae6e8121dcdf17c0e01edc032d271a9655c4c0ef64cf9b4d4c4b9611265019ba4142fbff1eb00a9c9fd9138fdf608a56f2a39c2b4f92f4d7e805878134942f0c06ebb52dbc10297b468ae233f7f8a7685912fa6e3d45a5c667eab8e0dbc1c800a16610a3bfa640adced364b7d8efcf4d0d46edf19273d559b463607e8722a719f8757420fcce70417928590f6809a41c19c3287eab2d65400c5374090401ab8f2ed27de8765dee1e9be78efc31e38aa52d28c9e243ea1873e891fbd477b5ea5321192e3f678a046ab5fac07816681169980", + "nonce": "c4d1f39394de961f7a52983dd0ffbcc9b33b7713f0522a1c0944f1af12de15fe2ed177342e430d2130aa4f059e5240fc88f8c6625b60ac3b", + "nonce_commitment": "05ea35e25a20ced6d6163a5aa599806632d946b0067c68b359760c3b698ce33cae37fac3ef5fc99cad35fd4608cf975fafaa9959c14de38d80", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d483705ea35e25a20ced6d6163a5aa599806632d946b0067c68b359760c3b698ce33cae37fac3ef5fc99cad35fd4608cf975fafaa9959c14de38d8022e9e57fc5c2476bcda6c21fb8ab179387baaa9b243eb3b568369ef85af1212e5fda2f26715c835f85f898cf304ff5dbe110fd79cec0bf1c0063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa22e9e57fc5c2476bcda6c21fb8ab179387baaa9b243eb3b568369ef85af1212e5fda2f26715c835f85f898cf304ff5dbe110fd79cec0bf1c005b98535fb57e34b5a659e39a1db3e2bdb9e46ce656f8a51ddd87a69cf4776a68e19a2bc26088172497c16f185d6fa2d1ea039096dc4084e700be453695b3c81ceb06564fba4d4b21fb846167ec0e1b395a0818fa9d361c7838d85cfa229ef4793909acebebdad02cdcfa4fc089d2b4ed420061df9b9d272f13b9b78c37c2767c79e64850581e763dade287de62619d3e60312bf85cbf90fff35a166e05294e46f606082acba86754a99c00f2697dc54ad356e7321d2ce74e44823dbcc25ae6e8121dcdf17c0e01edc032d271a9655c4c0ef64cf9b4d4c4b9611265019ba4142fbff1eb00a9c9fd9138fdf608a56f2a39c2b4f92f4d7e805878134942f0c06ebb52dbc10297b468ae233f7f8a7685912fa6e3d45a5c667eab8e0dbc1c800a16610a3bfa640adced364b7d8efcf4d0d46edf19273d559b463607e8722a719f8757420fcce70417928590f6809a41c19c3287eab2d65400c5374090401ab8f2ed27de8765dee1e9be78efc31e38aa52d28c9e243ea1873e891fbd477b5ea5321192e3f678a046ab5fac07816681169980", + "challenge": "4bd3d2106eb0ec591235a447fcc671c5218d778a2ed431a46383082aa9504e96dae01934996f312bdc1d008b4b269c3d3a53a6cfa4494424" + }, "encrypted_shares": [ - "47e2461dc99b8c26b4e50c182a30198687661fafac6e3a6fecef11d98adc424c8af217a640f9982ab6ebd4ec5725e7a54ca866fd25b9458a232bf65901ce8df4ef7d3f9368da1fa1", - "0a0f5ae09a86f22c17451ded6ed4e71455674847909c1a0cb71738a06450eab8c558996c433a61b92c6455f07cbc7331aded5faaa46626c2aa99b39c7e1936298160c1eb75018aec", - "bc005d9f7473c47a4995cf91101ad0167eb2983d70519f85deb0b93f589f6b10bf9006e0ed28165016e47996616f512b25eeba5c37950ecb8572bf16e948a0de6b39574d6fdc978c", - "4c82d7e33d50422f387a904d12bea8592d95d11b4324aa9f82d8600de26fa23502929bdfbb2e9df5e1fab9d25c4f55958e798040b3f6a7b5cda2a17008bcc2d7f48c7736579a2366", - "396d39f5f2cc41e23e1eefd1fd153afabbeea40b69c1e5925afd2dc86794518b9efb08228461b928c3739060eb35bdf3127612d028f0df7db93d4c9fbdd6faa1133dc30ded94b617", - "445fbbf734625aa69233282c8cdc8895d607eb8eada3637f9e05e4d524725635cd69d5bb1f6f8706939842eb7df0fed3e4378eb32b88278958866411e5276691829e20a5a9b8e991", - "e1686829a4794c473c50a352424b6163098dc8020d350cbfde3948b26eda60c8e1b1fbb3d5ff8aa072e060d81d629488ada6072e614767cd8042457fa7fe293b1117644b88faa04c", - "0511630ef377c9f97b7664b88e92b04db65c59e15cfdbf13217f3b82777c7e0542283f9ca36678ee5f40db2d11230cfd1f97594e1b0220d8bfb2a36c0525819fba9d69d34039b94d", - "0e88a37feea018706731709ff9dbde8bbdc8eb7af027e24f8cfcea1f2125f6e41bbca9adc1ac6b2dcdfada1136cb4f088e8d71baeb6e7009976e3d2585c5b7e7aed76b7d34648061", - "32eef8a2b7e8fc4a11826f58e679832c01dda3e22af13d0feaf54ec9dea39992d1a0955cc46f5cbee0854fa39d5c348878fe28f3431653e13da4eed3fb11526221a32a639d34dadc", - "b6ed55136f596abf7763c07ca1e918d58db30808edb392ab4ce02bb72be291d2407fc0f5ce617ddfc668d65011b13599d79a4b2abd325320d11daead34147c7092c60576ae20b960", - "ef3997dd8baa57c93d2c1fbcb6a423cd094f02ea8fbb7acb6641530329d751be0fa53d59a2a7c63d90208ad86497382170b242288d8780414380d81b23b3afdc6203ec576bfda555", - "025f179d6e0b6bc9d46f9d31cfcbe02c8237a88fb959a09c2ebb6fa4f83c53b44bd01635d3e2a8c87ab592bb946dabd393b2a81a8fa61ca34583b1262691e4de60c201b450db282c", - "ae5d6d6fe61d05a5ca59237a492d2186d5322fb0d5030cdc333b2bbcbfa394ad82b3517f1e86aae026459d804a945a2982e4fc6f3b389908a3e07dcb7731181826a04873cf8ebade" + "1d588deb59b2bac5f048f8c11b98f23df1691d6bce311ab95127f3903a9122e571523f305d62af14ba9a1a7fb82fc079d9949e9ce7952a8dc73ba1ef050f1511ad49362bc3954c00", + "3079684c106401e40895f61beaad4f8dce7dc067fa64f39d33e88526356c7cbd52a26feb08711ceacd5b6a27af92d4948d52264869b0cafbac53d67673fc883c8547ceb94ecdff0c", + "28bbbd9b0bda8905872b1be59da959ffd831ed575f3b0c149f7d7233c29e57fad35738b4d299825aef1332bcb864ab1887fe0da0a990658b9ed6280c6747147b1a512186a7a2c312", + "7117d0b82249b7e5f2eb3cfb0f0faa6f7529dea28a6fe8375c3cef45fd8bd2768acbbd4ae2e6f3368b0dbf45f1423b6c2e3ed453f938a95f731ab4f70243d99832ce286e0be35a6f", + "ebd761664728ffca9fc9e3babae594c89665d938ecdbed34828f211836043f0c4a4b27d42fc9194ba6d8953c593e479400ce1e7457689884903c94ee246576dc935d5a76c72ef64c", + "35857802ccde5d746d714944ec3bf78805e0f1fc3158519562abaef1993a9932e8680a2ab6be64d266ad7d155ff1859228e6d5d09b5299579288ef2cee153cfb4606655eec4408b3", + "67798f9cc71933cae55e7cf5b16280c8827f8b4e53971f8f7ba1955ee23de1c7b0defbaa7826fad5a96d18b11a71b645868b34e9de70f4659663808981d4ca618f103e91dd7b1993", + "1e0224255f05789447b178b78d3698e242256a793dc1f4b3730d3c4a9427449b4aaf3ce41185664b0b5f3bb058261d02a30d2c6bd5f61311ff2207ed2967a2d71ff44604051de728", + "e1b9a142721941857d7c329889b217e80482afb8e58ff1ceeeca6c17b2169dd66d796c0e53332de31ff85e69a71c5961aa4cf6e4bfab0f5c5e830cd9a18411239c4209426bb88cf7", + "bf13c2658a060eb618521a982da79e442d07f7a19b8e8dd59a8e288a79bc3d078d1668bb2eca810ec009db3f86b78ad87605399e387152173d774406f0de3718652b7afaefbf9e23", + "66eebf937f484f60e494217812ae4b4170a0ac9af8a244534d166b6e493d1d1ff76d4651684f71e6c7a8eed157a5e8facf53d03e90e4f2eea44032bde3b72a6ff973d76e23bcf112", + "0902fde0296968def2f58de1b12ee4c7902b45046fe0c9cb93b63eac7f58486ca1b4af3e368ddb91f8d4b6d93d97e2188dc51fbdc182d57d87ef2584ad65ab0b55065cd9164e7081", + "81dc4af9a22731d35c8460eb1ff5de32e49d7c4389a1be7d5f50030bcc01223ed4b8298d52242c8e74c5057e295315752fb14e4d6b1d632909ff0541e809372a4cb1f69ff10787d6", + "3a26dc0a178f7f7683049d7dd8c93aa832050cef5dec3d09afa7bbf1114cf2e4b9ed666a68a593bd2900948725108b111af3e853001cb0e15afcebc3a817fa475dd0bb1bc99a01c9" ] }, { @@ -430,22 +512,30 @@ "75d2a22f0cd331c5c64b1996d2a946eff82369e3b1b0cf6adef843961338de8746a264a25bf4fa3a7f7bce6a50febc702cf065cf2134f53480", "fdfdc78115e06fd1d9a9ec5770f75b2d28b090e2b14d951488a65cf13964380b8aaeda323b30fc9df0b59706b703454fbdd6294b2eeaa29b80" ], - "pop": "a9aee03f0f79f938859c5156e9aca6d2d40782d06a9d60c6c710b9612ab74e131506c37c7c5771110f235d94bca32b3a1f86d01f2f2d91b98085938dcb56e9ea3747d4bd89ff53f6839d86a0607c5d4302f0b05162621d004a5e5fb4475486fa558c9e2b8c3c3ee68de4ad5aea0e7eff28", + "pop": "f8882559da270a23ab092b3b91fcbb539f121ae0d5991491ab4c66004c3f360dac0f1223600d24076114a069c4a931a282e90c03ba68717a008e802e8cb86b55c4c560fc87186af962bb1cbea243e7935a44e2780095910ca0f191088b43d32cfaf470da9fda5e7a069ead4d2438208027", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa5110971cf4007e425404bcd7589c3b4343e9a1b63501eae8b04dc5dfe928fad4f13553798aabbe809368420cd22f986c85e3f3f682ea892600641a514316f39810c93dbc656065e90bdc1d7ccf23d074a821ee094c5ebbe5d7b9233b0816e41f9ea319a691d40c0be1d2141fafda668c77803c91ce5047ec9c5d9cd1bc7f6bef617ce308d994e4858566e72301c37f1e00d0b2bd0aaf78aba75eed84fc8a48e76fc4e86dc1e6bc4f322680f248c849f1e4477fc8d4248f710a9c406213f9c68d8b6ebe3f6a0a561cc2295a1d3c7109f11e277da8a8a8b58f3bd9550b9df335331558d680a12764135e47df831c61f18f2d924f9efa82b2ba5cc90ba10128c646672ca828ecd3f6aae74c49e1cea0a3e7e627e8b3ba34368c90a6b7fb8075d2a22f0cd331c5c64b1996d2a946eff82369e3b1b0cf6adef843961338de8746a264a25bf4fa3a7f7bce6a50febc702cf065cf2134f53480fdfdc78115e06fd1d9a9ec5770f75b2d28b090e2b14d951488a65cf13964380b8aaeda323b30fc9df0b59706b703454fbdd6294b2eeaa29b80bc94db67debef458d8c8c3bec95558af0167f0a7caa8c8ac2d004beb29b0cf5e18e2d0a1aff565734200f25e15a9877811a6890c5326f31200", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e43456c848ce5a28bfcac018303b3412e809516bf6a7f1d5b7e0d89a14c83dd87cddf083c1570ff5f08b00a12dbce83932543953cc6927273091063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa5110971cf4007e425404bcd7589c3b4343e9a1b63501eae8b04dc5dfe928fad4f13553798aabbe809368420cd22f986c85e3f3f682ea892600641a514316f39810c93dbc656065e90bdc1d7ccf23d074a821ee094c5ebbe5d7b9233b0816e41f9ea319a691d40c0be1d2141fafda668c77803c91ce5047ec9c5d9cd1bc7f6bef617ce308d994e4858566e72301c37f1e00d0b2bd0aaf78aba75eed84fc8a48e76fc4e86dc1e6bc4f322680f248c849f1e4477fc8d4248f710a9c406213f9c68d8b6ebe3f6a0a561cc2295a1d3c7109f11e277da8a8a8b58f3bd9550b9df335331558d680a12764135e47df831c61f18f2d924f9efa82b2ba5cc90ba10128c646672ca828ecd3f6aae74c49e1cea0a3e7e627e8b3ba34368c90a6b7fb8075d2a22f0cd331c5c64b1996d2a946eff82369e3b1b0cf6adef843961338de8746a264a25bf4fa3a7f7bce6a50febc702cf065cf2134f53480fdfdc78115e06fd1d9a9ec5770f75b2d28b090e2b14d951488a65cf13964380b8aaeda323b30fc9df0b59706b703454fbdd6294b2eeaa29b80bc94db67debef458d8c8c3bec95558af0167f0a7caa8c8ac2d004beb29b0cf5e18e2d0a1aff565734200f25e15a9877811a6890c5326f31200", + "nonce": "ff6e98a4c93e46fbb98bd2611277bc886d96d1ac6137c34bf1273c402b9b9e2ba1c9b00ff9cbc6562ac03825725c0ca88fcfd0a5c3bfb11a", + "nonce_commitment": "f8882559da270a23ab092b3b91fcbb539f121ae0d5991491ab4c66004c3f360dac0f1223600d24076114a069c4a931a282e90c03ba68717a00", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4837f8882559da270a23ab092b3b91fcbb539f121ae0d5991491ab4c66004c3f360dac0f1223600d24076114a069c4a931a282e90c03ba68717a005110971cf4007e425404bcd7589c3b4343e9a1b63501eae8b04dc5dfe928fad4f13553798aabbe809368420cd22f986c85e3f3f682ea89260063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa5110971cf4007e425404bcd7589c3b4343e9a1b63501eae8b04dc5dfe928fad4f13553798aabbe809368420cd22f986c85e3f3f682ea892600641a514316f39810c93dbc656065e90bdc1d7ccf23d074a821ee094c5ebbe5d7b9233b0816e41f9ea319a691d40c0be1d2141fafda668c77803c91ce5047ec9c5d9cd1bc7f6bef617ce308d994e4858566e72301c37f1e00d0b2bd0aaf78aba75eed84fc8a48e76fc4e86dc1e6bc4f322680f248c849f1e4477fc8d4248f710a9c406213f9c68d8b6ebe3f6a0a561cc2295a1d3c7109f11e277da8a8a8b58f3bd9550b9df335331558d680a12764135e47df831c61f18f2d924f9efa82b2ba5cc90ba10128c646672ca828ecd3f6aae74c49e1cea0a3e7e627e8b3ba34368c90a6b7fb8075d2a22f0cd331c5c64b1996d2a946eff82369e3b1b0cf6adef843961338de8746a264a25bf4fa3a7f7bce6a50febc702cf065cf2134f53480fdfdc78115e06fd1d9a9ec5770f75b2d28b090e2b14d951488a65cf13964380b8aaeda323b30fc9df0b59706b703454fbdd6294b2eeaa29b80bc94db67debef458d8c8c3bec95558af0167f0a7caa8c8ac2d004beb29b0cf5e18e2d0a1aff565734200f25e15a9877811a6890c5326f31200", + "challenge": "8ed29f422c3987926e024df19322ac831bea6a20323254afb68368086be0075ccc46d0ace143e4de87b970896dd8248a3cfdf0cc5b393307" + }, "encrypted_shares": [ - "4d5faec8f6548aaacb1e383ef74f654654ce7269ae411c2f5c700fa50a2902771ec56ba664cee0a43eccf8ba0e59850a22bea70c64373a91f9617db9e1653174c7cf47f0aae25665", - "dd8ec38193bf7949e84a418a29b31887e8a0abf4d47117550ed8a58751ebd1f3f43eacd196e1b89a215db2ce08bde01f6229837aaacb19d6aae0325cc0a2ccaed06d2062afed5d86", - "baaefb662375fd1558b01d6b802324e76fc873c1f39e63d64534b1cbd4334523dcd9c02cbe5dc8a156a5e9a4d9f11f856e34da68e987f8a0c0a7b716408d4de8a2b7130e8a67cea3", - "2b60fa60cbdb55c4d703cb190e5671d285b7fd5af85fab1873624bf56606f6b616379c8fbc0d909626a0f013bd87af1d49afafefcddd26c32ede8b3cf66365b40da7b11f84c7972f", - "fadad9c59e0a636ecc5c3558bc901da19523df9be44f645e99c531df20b2b72e8a148a9f12df99f5e72af39bd1b84213e91d62d7215af79f7c8872ce01b14b63bed7a16b6bd15615", - "e64cd3528eb3006c5f0d266137d3f3064f45afcd84eae7150746308781884e553f2013f6bf17a5b6c91a659f303fdd1e82c1f6cebfe556deb2276d822c2e00d8f34237cb4cd1948b", - "ffb0249a8333983254c50d392f41542e86fba61ea1bf713e3111c7fa54daea5aafa488a08f239118294f371c987dd23c84fd652bb422c131954adeade8af3286da45e9993ea7ce89", - "1de9eb4446ea64cc627dc0dca3acc116bb7e731d9439b09c46b5abd369c19387f3c78624e9706d9f5176dfb1f90f5d3d7d82768f3f7379b584cd5910b7df278d0a492b7004fc12f1", - "43b914522299c043b6715b324cb208a3fd373e1651c381d0b6ab075f75d3ec189f930b1e86b200c051b24b7d046c9ea8b240331193ca71513b0bab6b2ed1358d1dc2ff10849751bc", - "ad475dfef5b2f5e63f76a46c349db46a2e0b11298ae2d97b8c59b1b37e2ed9db6b3eb20fa5f2ec01e4a7a725180b60e93bee075c9433e19d30a6115b720efe868b78df310518f05d", - "bb969d9ae329e470b3c6b21ed8958f111fb8f70e873b8afb746fee58fb5467b5df6cbd18345d954ece00df3f785d4e1ac78bb28d7c558077abc9f33f07d5419532b6fd93e2b9860d", - "bb3186f16b86add338bf3255bd3992e742cb0dec3b941f571c96801923b426a14f5d09dc09f50edc63b8da03603f91a8513808585aebc9c866fb159f31785fa45673e2829155ea62", - "a7092ee3d535ea1142ec81c274eb95bffab9dee7b3b03656af9543aefd3c5ee4e3e4d30029443ba8e67ccf973c7909691976cfd5e20152959773400fb4db913dc22dc7751ff7ca56", - "00f98b58c1ff13593289ed1fa5939646dc383393f82b09f9500bd7a430466f9380312e5502a8a5c0b423b8d3e9ac4ce70583752b897686c6aacb680a7f535408433b20c2ce05d595" + "72688c2d7463241927a6d5dc8bc030c08e50268963c2cbb408c5943609f59da0db111e44dd6f2004aef4df904e90180be0e86d77724447465911dfca943b051ed16a8fd6b80bd0c4", + "0b1476c903f7fed8927d285e91ad1e89111f8fe7d21acad748084c8cc39d65a6e57d156296fbbc8729dc15168babc2b1d948e1acb2c95f67e6a8f8621ef4426dec33c7dfb8b3255d", + "f08028db9ce38c180da4727c695f21bfc0d33b4ad337f7a148418b020caa958952288e3091043fc4e7e7fbbf79a15c01f2e31737ae3a54298ab0c9ed086d74032c202fd5589d73c1", + "5c8fdbe77ab95f55b2d9faab452f24a301fd88c38736e4cb73ea5d4dd747f17186079b8416a8cc0f972e8f5369d6f0c450efd9df615f8afdf180eb2f0620bfd2d3d598f9a7d7ef4a", + "ff89e500b3166470ecf25b4091c0004905628c94c50d59b14621d14f9c1d42855427634afa03a5c348e7406367a65e1574590ced8d82f8d65686247bf570b768b487e5fc37da1807", + "85de344405ab5ab764e73acaabbf60440fa571f5620a7681ad0b46a1bfb7897f3f6c31962073bd50e5e58123fb25285a5266ea08a8581265d09cfc8b1cabdd85c1f74c3fc4868999", + "200899b09fd4a71ade432cf7561b43f8c1dbd88c9d574d919a4889fb4ed839005989344bc4058697268cc66a3aa396789b1990bb288318d2a88207d9645494fe57952f686e7487b4", + "ffb44de0dac6bc68a0546dcb4b33e691930fb6b08ee161f1e5bc6b4f1c8985a4b90da2a0a657b6206762908552a332a58c3064667c20687c97836f5cc8c48a96e9130e90e29d0ca6", + "0aefd59c351ae98366b32085779cce712655d532fb7b7aa6723b2389173709a0ca6d863a8d43d6f4cf41cfcec729a773f9ec4a335dc72bd2a51c3a546fce66f204466258396a3ede", + "e8b53e7a5b9a1318d12f13d2d7eaacfe8cf9347e655bd496f73f840f1953b3abf7df80e34318064e802a5f65d4cfecf60e7d96e10687542df4b4ec01ac6a6c8ed534f3f737bc1624", + "16f161f6dcd4965397cc96372f9382f4f6eaaf237f07f7bee7a20516b975459b29cc8fd1e86527ee3df29e82c09a5621981af6ead02f55af103ad1b9e300f46d553a54cf322026cb", + "6bd9a6c1e69d4efba47a2248d60779e6b5e376a92ffa0acf361f2fbcd06f93575d5b056879cf48b6b4d35bab49d5c69c1d1bcb2de926f01fac6f6add75ce3f37ebab9f11675d8287", + "330490eaf8f926f28598bb0a4bea613f3fe8ae36efae43835f561cec604302baef0a9c15f1cebb9affe61f7152add389f0de1af085deb1ca1ef2f719739464df402887d7041f1855", + "95ab86afc3aa617a909827c302991d1723dc37114b898849a69b9b505e4d61ca4ee948f9f8fae3468d77f36c39cff8136a72e2d6c42108d8e060563609b9b4811be20b570724ed9e" ] }, { @@ -460,22 +550,30 @@ "801c8d48c056e165bde918f3e9f67ebe90cd67c01413e3d6e2232f92dfa9b9caf270e0eeb3e070d211bb5006a20cdab38766538e0718420700", "9b9a5ce76cacbb09a51a46ba61e68b83ee54261e30ec4f8016932232e8373f976d5f25dccb67cea987a8145caf348230c9ea5b6c4ee0ccb180" ], - "pop": "08c0f55ef17da79ab7daeb0b00c3d0d38d852823783eb781e868c0b22722d385d7ea3a387b25144d01992787ca94f69bd02320e0fe8e67c600d65e539a919d443343236cdf0bf750f94cf62bef7c749c0461f4c1d27be194da2583568f8e95cf69131bf201bad444f0c052c658f6e25a0f", + "pop": "0a55617039ada496a686f0ce92f4d85ba2f9a6cef88357153b24053f25f02dea0d6eac9dd9ddbf8b164dcedd81acafade439d098cec351df80c93246f19abac511e782b59abed05bb2cb0d7e4330144bce1038f8d2b816ff6d748f9f867db6e17db6341d2ff0de4bd2a37d41c1c8c6bb3f", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa3311e79e7327a9d331ef6f1b0adb45af80494f53e8669c367dbc5227d22c35cc2fc744932d29aae569a8ab8e5d9d71dc3dd4624ee308640f000b3f0047f51a46e02ad94a3cb6c0ee129dda676ff09b02c37ddfa20438efd0bb0476a00b345c82aa83bc277b167533efb21b88a03a04060d80b3701c95a3024ef34c80c49f902e596d31c89329a903735355637acf2051d4d92f87c13f74e23e88edb375fa575498aab38f93a31705962b00fa8d157237abcf63fdf517e0ad9dfc0a965c1be8d6def89c2ff64b32483728d2629c8bfe8dc3c42eebe43a4f473c3adb7c3be5260e8e959c80128ada717b902e007efb9c51fb30ce1ee4730bc83092c5a0989347a5fb7f3325094286e2237589410c9c4fd80517caf6f41effd3369830f580801c8d48c056e165bde918f3e9f67ebe90cd67c01413e3d6e2232f92dfa9b9caf270e0eeb3e070d211bb5006a20cdab38766538e07184207009b9a5ce76cacbb09a51a46ba61e68b83ee54261e30ec4f8016932232e8373f976d5f25dccb67cea987a8145caf348230c9ea5b6c4ee0ccb180e3b29157a3b07222ca00a708be0d011b4bb3a088bff9b706b87bfa4276e72613dba81212ffbd694d1a6ed7e7230a40ddafaf961b5de29fd480", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345de44a6173a8b8e9b1e162392a484bea3967e632d5ae8a084fc60efd8938be8e2a5160630cfe8b8954262f1d53b62b6594a4ee4d4b9f82a1e63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa3311e79e7327a9d331ef6f1b0adb45af80494f53e8669c367dbc5227d22c35cc2fc744932d29aae569a8ab8e5d9d71dc3dd4624ee308640f000b3f0047f51a46e02ad94a3cb6c0ee129dda676ff09b02c37ddfa20438efd0bb0476a00b345c82aa83bc277b167533efb21b88a03a04060d80b3701c95a3024ef34c80c49f902e596d31c89329a903735355637acf2051d4d92f87c13f74e23e88edb375fa575498aab38f93a31705962b00fa8d157237abcf63fdf517e0ad9dfc0a965c1be8d6def89c2ff64b32483728d2629c8bfe8dc3c42eebe43a4f473c3adb7c3be5260e8e959c80128ada717b902e007efb9c51fb30ce1ee4730bc83092c5a0989347a5fb7f3325094286e2237589410c9c4fd80517caf6f41effd3369830f580801c8d48c056e165bde918f3e9f67ebe90cd67c01413e3d6e2232f92dfa9b9caf270e0eeb3e070d211bb5006a20cdab38766538e07184207009b9a5ce76cacbb09a51a46ba61e68b83ee54261e30ec4f8016932232e8373f976d5f25dccb67cea987a8145caf348230c9ea5b6c4ee0ccb180e3b29157a3b07222ca00a708be0d011b4bb3a088bff9b706b87bfa4276e72613dba81212ffbd694d1a6ed7e7230a40ddafaf961b5de29fd480", + "nonce": "7edce96cc06491695a142916254ab50555e9fca5773d96e0ffcb88b031d29a40470b56ca05198d8123c966879a32a482c9768d11f27f003d", + "nonce_commitment": "0a55617039ada496a686f0ce92f4d85ba2f9a6cef88357153b24053f25f02dea0d6eac9dd9ddbf8b164dcedd81acafade439d098cec351df80", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d48370a55617039ada496a686f0ce92f4d85ba2f9a6cef88357153b24053f25f02dea0d6eac9dd9ddbf8b164dcedd81acafade439d098cec351df803311e79e7327a9d331ef6f1b0adb45af80494f53e8669c367dbc5227d22c35cc2fc744932d29aae569a8ab8e5d9d71dc3dd4624ee308640f0063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa3311e79e7327a9d331ef6f1b0adb45af80494f53e8669c367dbc5227d22c35cc2fc744932d29aae569a8ab8e5d9d71dc3dd4624ee308640f000b3f0047f51a46e02ad94a3cb6c0ee129dda676ff09b02c37ddfa20438efd0bb0476a00b345c82aa83bc277b167533efb21b88a03a04060d80b3701c95a3024ef34c80c49f902e596d31c89329a903735355637acf2051d4d92f87c13f74e23e88edb375fa575498aab38f93a31705962b00fa8d157237abcf63fdf517e0ad9dfc0a965c1be8d6def89c2ff64b32483728d2629c8bfe8dc3c42eebe43a4f473c3adb7c3be5260e8e959c80128ada717b902e007efb9c51fb30ce1ee4730bc83092c5a0989347a5fb7f3325094286e2237589410c9c4fd80517caf6f41effd3369830f580801c8d48c056e165bde918f3e9f67ebe90cd67c01413e3d6e2232f92dfa9b9caf270e0eeb3e070d211bb5006a20cdab38766538e07184207009b9a5ce76cacbb09a51a46ba61e68b83ee54261e30ec4f8016932232e8373f976d5f25dccb67cea987a8145caf348230c9ea5b6c4ee0ccb180e3b29157a3b07222ca00a708be0d011b4bb3a088bff9b706b87bfa4276e72613dba81212ffbd694d1a6ed7e7230a40ddafaf961b5de29fd480", + "challenge": "ffa1f916bf1fa6c81960f496d834ea5cfaf271fbe761cbe9d89149396573190f27fd9c19287ba3078bfb3c55bcfe339ab6450c2bcb99b938" + }, "encrypted_shares": [ - "38da0c8a47a718b1907bf926859d833598c8827e54c62fc48c8a7490fb85cff68bdebbf36175a899215f06064119e79b41b63c053d6a7a8ca0bd52a5530e6b037f2438aefcf937f3", - "4b8544331adb466a78b8fa66ad9747c1067fc0afb304a069e9f683e69601eafa489b1a6904a460549bdf22e7f6717846ca40424ad2ee594402cf8acbd8b9be7461002fcc6c855084", - "a9fc40b6829138395e51070f52617e667a35b04458720a44c5f6ca0a62450be66c40405e955e2ee0903c3ca9401569ca87d9796e534a42bd2a9cd9cfc32e072b25cf33e1db1fdd28", - "d7d95ec55717ab58b5abf68eb51a06362b009bcb630403c7943a243f80660894885eeb3ea707c64133016c7ea59318cadac436e0e5b4b4ac8b59367f27f414dfb6779603e452a5ba", - "08595bee5a3e659e79177383578fb8bdc504e9e712588776c0aaf3a9a2c778364fa166e944053b3cf515b90181e071a58f019b2bd1d9d7d6835d7d63b87e808f090b053341fb2a0c", - "dd05d2d3c0365d1d5ac70d5577917ddb325eea19db5f865402463ecf969fa4d38aa4dac031122363b745b07ff1196b6e6523134c08b8e87a640901ce4952ec086b5e8a4a63518dea", - "20bfdbd8e870273b7f64c9dc992b94313a5f44eac6912a43f69668ca2445b7426300db93c17aadc381a85092c649da5306c28e7ccfe3fad2293cd29cd642cec3c0fc2b94560b68a4", - "eb2e77e5c84807563e64aec240bfca8675e348b6e2fcf814c256d7088c418196d6a20388e66e161b048ff78b1ef3cbd2d7b5ac1a5e31916e7f4c8a792b194aeaf0342a7662d9724c", - "44bc89b06694f35c90a82ea8299ef040cde0dfb053e1be193c39da44363b1420e4988a88ead29a7acf5463a834daf935d76182386229c8face9cdb983435ec0110cd88d8ba38ee81", - "6035354e400ad9a79f801e5fd68e422a4d5923aacf62638f7575cba0d78b1b134c724ecd0bd783cd15b028e90f8c64de1267bb5deffc00ad5dcd41dd4cbe05c5773ae6928e0a46bd", - "dea8bb39997cd1ff36b98a0afff4258777ce5b4740c27140911ad982a5575f2a3afe8d6260564297803e695f908026c8869a5b588ccc898643c36d66fc92e71bb09c7d102cec533a", - "5b18e45725870fe4b4c2cf97c50c136e092bff6c5f4dca5c8d58e99c720cdc21d7b33e9330fc797ea6c781449a61bdd9167496e9548b2610bb0c023c96133e6e044c8fcf444f37c7", - "1e8c5f8c7c25b103aceb272d61523921697816dba8ec9917a1d2ac00d494f985615114ee7cdba4eff04808fd8234a78912cf0e8e6e1a9d13abd5efd370d20533cda372425fce331e", - "6b927d0aa143f281aa77c54956350689610bd08b2d6c90dafc4fbd280298d82e3c8af0a17f684898cc1d3306e0179e6883403e6364fd6fe49d63c174049cc32ce43e6a50d2dd06c0" + "21df2e9e1cac26e03a3e62b17bccb4fc3c698681a12c16ad3128cfa884e6369a220886bf29d72ed99d7235f2d627a57b627938792954c9f22ed9b6304939e86dcf92c7bf9c860567", + "c578251689b76c1ded201ac8b55e2fcf5bf91c2e88549e822b73373c3505894a77ada7a526a518ca4274ba930e2d96a96ff93ee48adefc7cf541d907588f12041ff3a4f156f26812", + "0e727f08327f03fa707300a91c58d4a3d1d215e9c75a19aecf789c45b20a5bf2a8efd944df17854a1e7ab3c2c3da46110b0a39ec118c83406c7ba1d1feffcb89452187fbb39205a3", + "c9823a9da3ff4b9fdf88a5c7debffb03739c17cf0865391c76a9e058b537a5fad7a556fa2d7069b1088f7d205cc803b1f2b460da22b6d96cd005c6cbd9be8f49c33c7cf4a6fb3afe", + "2e6ff8d75f9a2089ff92233a9d60f9c7f519e5155d32f23965be3079b660710268c43ee45213add1734e35c3392a7dcd9652ff1638550ce2a54bb25fbff8b5301a7da458832a49ab", + "3e3dd509b464e800436048e16933c5ac5ca781d5c3b275a63aa85f0c3f5ab8da0f6ec1c489f9c3cce9e42fa03b2c39eb0f6800af2cded4b976e98c2ce23a69dc147ef690f8a7f004", + "9df8c2eafd09370c45fa60fb99afb8bfab38f2fef9ded278e4dc3462e62ca4c142e98898d42af4e77d000895ba73d2de3025a72b3dbc154d2842d2f974a9447672e398916e138313", + "c66a0e299a00e7b9630913373013c4063c84f42168b551413b09e6af17dc163f7770c5140f202d2d49eb8aec30c55acc5ded333c4949718ca3c7282cac80a681f62df0632de323f1", + "199520b86ca29c0bada6e04880289b3bb20b4f592fce5abad97167a54eb56e8230bf856d6cd1e9d4cd95dc45f667d87bb7e39e03c632c8c2af2449ee9f2d969c6a7ddcb6da1b74a7", + "ea743925de51273aad26452aecfb975624c79de2ab1e94d877b31c11488b0429df75e2603c1ae0601d6315fc0a1ff1fcd56fb06a0436153627f0c102fae83b0afdb3e2a34b3b1bab", + "06407981e6834f1378376b6afc5a9ef7ff6e28658d6c657bc455e40a7a7f907cd49b6255deb2d04725993f1c6896d9a80bb2c66849bbb83933a5042d65b218541b6eac60384d76ad", + "2571b0607975fb9bcb86b64445016f1a2c0679ae8db08f7be4cc2813ef71c04a09d315da3bcf2696cfa30206ba23ee08dbbd7a58c52f05c8de59c4a052128c27354eee79b466c936", + "837fccfe4c29a70861463b01bd12800754cfd26e024bb66ad4a18abb9172672decfeca2fd64e74277fa679e73bcaa20500020d19235df9ccca051156033ff03bbbb0060efd2b08db", + "4ccf02a91460ff45451cfb39c9d7aed12c1ae5999bed53fd4f0f4d4c757358f893ad166a2ba52c9aa1830fb433f2dd43130fd58c62509fcaa6e83361acdbd811a1df9be1f7036331" ] }, { @@ -490,22 +588,30 @@ "aefceea4ca0f1774614b064de7a15ae56041c73bd4da171da911b46468a9c53b3409478f1767b72240a10bf6fa0af50450ce745d1c4808a700", "07128849b063a41eea3ebfdc3091efa2d1631d139b7c5466e670fe38afa0b8575084a94d8f8f35fe230e031c1041b8ab881a1e0ad1f315c800" ], - "pop": "3871cd989aeacc3062db99c2d9a8d683048fbd1ae7fb2b0a9c5c435f3058a5312730ec9c361cad506bc707a763fad99380ecbc7cf4558cdd00e8f86a8f6f0493474faa771382e7ceb5fcbabc7410c8f3e9d50ebc74dfb76824de6ee06ef322843e7af51f47b69f7fdd3f7d5277fadeed2b", + "pop": "a049b56e755e719e96696451cfc1c2d2e078f7d0f786a893599cddc2fd420b30985d17e26b3fdd957f7b504cd0220cbd73d30d58bf6d03bc80b20b91b77805a45a595f2c1966afd71d13b03a5ee3f4990b6aefff5cd084b99d1c06e1c5638bfc8bf321653c319c6f5054808fc2730f2112", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfaff7ef446139cfe3ef9099946e1ff77dee42a95988c47a8c08bd6564f25750c3e863e9b09c5ec76bde1a91a6371cc961300e633d9d7c9b2ca80248796d72660142ff031c60593f300c92e243c7cad07254e6b81873bacb6414fa3f167e9c2c8922986e12d32a6846b2c06c9191d6d6880d1809716f52b6b4466f29db902224b94364ec2d94ecfe2517e2ab7a8a06c34c4c5037c893b0001491c96c06ae2136018325f888083bb04a1279880b1a0a1ed1bd8e1bff29a5602dd8fb5f51aaa51771a3228b2bdc1c08cc71c0cc3944fbdc6c4e596ef5389afe1f3de27fca0993c92434b055c00921ca3fa4cbd740b40dcf0f2cd54f10b17fbf6fec2e146df8d89405135324000afdc55f1fcae618a46e2233f173c40406ba1682c889551eb80aefceea4ca0f1774614b064de7a15ae56041c73bd4da171da911b46468a9c53b3409478f1767b72240a10bf6fa0af50450ce745d1c4808a70007128849b063a41eea3ebfdc3091efa2d1631d139b7c5466e670fe38afa0b8575084a94d8f8f35fe230e031c1041b8ab881a1e0ad1f315c80087441adbaa321f68f47985fec2fc799a03a5bac64eee93fb1f8f1a186f1d86914f20fef244d0fef115aa60778eb1a154e3ebc9e0c483cf4000", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e434537ca6d53bffeba310ea8aa8881bd9e5cf5d1577971efdb98d4993894332da07e760ce3f8baea3bdfaca869d3aa8ac60b037934a15b23dd0063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfaff7ef446139cfe3ef9099946e1ff77dee42a95988c47a8c08bd6564f25750c3e863e9b09c5ec76bde1a91a6371cc961300e633d9d7c9b2ca80248796d72660142ff031c60593f300c92e243c7cad07254e6b81873bacb6414fa3f167e9c2c8922986e12d32a6846b2c06c9191d6d6880d1809716f52b6b4466f29db902224b94364ec2d94ecfe2517e2ab7a8a06c34c4c5037c893b0001491c96c06ae2136018325f888083bb04a1279880b1a0a1ed1bd8e1bff29a5602dd8fb5f51aaa51771a3228b2bdc1c08cc71c0cc3944fbdc6c4e596ef5389afe1f3de27fca0993c92434b055c00921ca3fa4cbd740b40dcf0f2cd54f10b17fbf6fec2e146df8d89405135324000afdc55f1fcae618a46e2233f173c40406ba1682c889551eb80aefceea4ca0f1774614b064de7a15ae56041c73bd4da171da911b46468a9c53b3409478f1767b72240a10bf6fa0af50450ce745d1c4808a70007128849b063a41eea3ebfdc3091efa2d1631d139b7c5466e670fe38afa0b8575084a94d8f8f35fe230e031c1041b8ab881a1e0ad1f315c80087441adbaa321f68f47985fec2fc799a03a5bac64eee93fb1f8f1a186f1d86914f20fef244d0fef115aa60778eb1a154e3ebc9e0c483cf4000", + "nonce": "ebf68cf0d2367861ff1aae249f8f21a889de602d29af0c252d023077dc802035cde1c6c3afbae8384f645475cbe695ad1623e1056040db16", + "nonce_commitment": "a049b56e755e719e96696451cfc1c2d2e078f7d0f786a893599cddc2fd420b30985d17e26b3fdd957f7b504cd0220cbd73d30d58bf6d03bc80", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4837a049b56e755e719e96696451cfc1c2d2e078f7d0f786a893599cddc2fd420b30985d17e26b3fdd957f7b504cd0220cbd73d30d58bf6d03bc80ff7ef446139cfe3ef9099946e1ff77dee42a95988c47a8c08bd6564f25750c3e863e9b09c5ec76bde1a91a6371cc961300e633d9d7c9b2ca8063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfaff7ef446139cfe3ef9099946e1ff77dee42a95988c47a8c08bd6564f25750c3e863e9b09c5ec76bde1a91a6371cc961300e633d9d7c9b2ca80248796d72660142ff031c60593f300c92e243c7cad07254e6b81873bacb6414fa3f167e9c2c8922986e12d32a6846b2c06c9191d6d6880d1809716f52b6b4466f29db902224b94364ec2d94ecfe2517e2ab7a8a06c34c4c5037c893b0001491c96c06ae2136018325f888083bb04a1279880b1a0a1ed1bd8e1bff29a5602dd8fb5f51aaa51771a3228b2bdc1c08cc71c0cc3944fbdc6c4e596ef5389afe1f3de27fca0993c92434b055c00921ca3fa4cbd740b40dcf0f2cd54f10b17fbf6fec2e146df8d89405135324000afdc55f1fcae618a46e2233f173c40406ba1682c889551eb80aefceea4ca0f1774614b064de7a15ae56041c73bd4da171da911b46468a9c53b3409478f1767b72240a10bf6fa0af50450ce745d1c4808a70007128849b063a41eea3ebfdc3091efa2d1631d139b7c5466e670fe38afa0b8575084a94d8f8f35fe230e031c1041b8ab881a1e0ad1f315c80087441adbaa321f68f47985fec2fc799a03a5bac64eee93fb1f8f1a186f1d86914f20fef244d0fef115aa60778eb1a154e3ebc9e0c483cf4000", + "challenge": "4afd4e8b3c17d008da0447aaa732bb61fe4384ec79ad7e17270c3adb3c884051ab02f70938a9f138d0413efabe3cfb9f782740fcba280903" + }, "encrypted_shares": [ - "22c57be1326e9319b37140a1ae0dc40e827f1e3e8615a6dad1d4baac03892a840168116ff163593dc5424bba561b2b65377c32135419660bb1854293553dcd8ffe10a23b402a891a", - "6a73e34404e42392c6b83cb54fc1798578cc81950265a13c18ab329fa0dbea227e3b5e0eb756df7224f1fa750d9c0d1ce1eb2588bd16f949eb6961def31ae382ec7f6528f9f5aa4b", - "43416d0fda689030bf02f059dc5f8c83f8239e0abce3e62cb0ca42862ea2c80999a8c404b596d9e8cce8d734aa69aee55737566ed5f98be23de84aa067248da5d92c1d07b900551b", - "b64e71332abae2e94afc94b10d03d86ac5ab87277aa3565b9ac8476d0df0b7a88f45db273b0661abe7c12baa8b3b24512965557ec5842bf8166195afb31f7bf08b4be67d0d95a496", - "2fe663eb10e2f4a5d3568f3f6834b7758bfae07e54b7670db4a6bc4cd87bc084a88d76b5efa3b7c163ade5b9da2d99c005d69f924b34ce958bf893672ae571643c1e21acbf699fb7", - "ceca6f00a227371d1851f041ae96099ae87190b435a4bcea8ff3cf5b1bc69fc78992c2ff24706c71da6ed724bca5cfbda827ef40b4901fece6938540d3d7e41b27b1ad4a63d69d6e", - "e9bb6ef98d11088817ce11cf92974bbbdec98c6312aeb7f539655157fb74f9b1e41567d54e34b765adf7b7b928666cfc6119c4fc0055b9f271ca6714190bbf0c5fe720ec226fd88c", - "b5d0553be7ec6d6afd02deb6e651a5be581234de05b06aef84ac082e4b1077d367cad2741fd74d0b3dc8edc9612195705ead1267d101f1fafb3d1bfb91fb318e3935fb29ef0f977d", - "ad4f3790ea828391d38683c6e9c30be797acab6a4259bb97499b72717477919ae43094b20d566a022bd89014ed30063fa0c0bd67da257e57a73b80a6b54f61e9442a77bf641c384e", - "d02aadd33314f5d3ff21eeaefed191a42b3bb4f7d4f0ebd357dea1dfcc1c089c26d93528d7bd410d542ee9572bb63ea0293f8cb399abce2d9f7c08915f736331613d319ee7123834", - "16aeac21961a4c6a6cdd25182c4e3f4ea82257ab86d1f78e570fa7fb5fcb74e48e136e3c6b8f03ef4b32b2d101bdc626b0702f1408d79d56f2d585966f5af70bfc68453b3f8993a4", - "424f06cabc6c3e82338f686060cc3a59ae92342a1485b7a23cd4f86e3aef183b4cb0c1dc54b2b9a06ff712715300bd21ed69d48b907a70b8d8d4c885a746a1f25bcb18d25208ff1b", - "11b329e857afcec6ecd4b651adc443e36dd1df0914fc7436722ff8007960af6a44eef2e193bcd8b09615cbb31a1d7ad1da2757ff801a48fb462af78c275cf53ad78292cdf08a3048", - "8cc4852472b22d1dcd5ef875f10249aa4f26f8d11c7b28907501bb231f465c9ebae779702a0c94570d223999fe17ce9a003c11417e8e551fdf808ea1e7ac6573afc185a01286899d" + "c4bf253504c6cedf0049877092bf63f9f75b7715abe46084c4505251e9a5a18a9902d6b2823dd4c2d95041ff5b0f5cbbd1213b4ab1acc8b15ae57d992c8be1b3e2eae7b3369f4b40", + "03f2bdebc70509c95f9ea4ea6c383ee3d722c47a185120cdf4ca14d04571d8f5171df017abc0964566b0016c1cd3973af816925f5554e88081f54823fccec979364e925e9f60143a", + "6db6c8120b017e040b56c028fdbf13e330721f232e493b10106288672c166b8102d59706b7f984516f9cc9bba515789157fa0d253d7e2492cd7aae3e7c225d690ca003a7f6353a7e", + "a33301f10acacb400a5b1936f759969bd85819e000e19579fc9d78257b6e5df89c21c125c0acb11808e5a3a93f66f5c33dba32897d0b0f9ea696b0db7c135f915dc2819e98b43dfd", + "4ee36b339b9c098c88b261c4a714c78c2053a45b5cbcf11cd5950b27ea2c124042233f6416bab7d4380d96ab05e6c329d6369983aa3b0c26daa1e51798ce56808e94beb0b9e90dc2", + "2fe2efe5305d301a04558bba4f6a189524c490e0507beb0378335b21ffdce4b6680646e1f03aeacaae599532b08283d92384daf458ab8190f784cf2902aa2c53fd4bfcb78cc754f8", + "1914453a92985c103aa81d09385161fa46d8395bf5983987c83c1e2650d9baf1f4dae3fa91b3d3831f12c1ab6c354c6a197d0c668af04c22d42116c8c07375d9ed19551832318100", + "324ea796cf86d9bb1bb816ff3ad82a358c3ec551c3126861f5f1fd6d738209354579feb5855dcad6c944e872b573d3e098f2f2d4237cf26efb4bb0c9eedd4c6aaab11b2f6c40dc46", + "c5a36949eca25d4ec51f5887b826b08720fecff9198267792928f8d3ebd00514539e9500a8e1c820c0b0482a7b6ad8c8a9110a9fb196fb4023d38fe5e65fa1383d37c19b94ab7d9a", + "70c98e49dc2bfedbc9be5d869196050d465531f45f1e56caa76981e1842804a0d35e54f08f803356bf30c8c2677318d461b87ecee681bf727c32f8827e2a78ef003fffcdfee93d15", + "826ffc19d92db242cc5e34eb2e0def58f48957dd6824c7f7176b2c1b9387f8e9eaf74d0d1b188cf990d8d0bb65eec8025b16e1fe58c0a965439c428f4dd485386dc028b0bc7263f7", + "34601015ebf81356e098cc38d833ca4ca9c7af2336ee927e15f4f7997b03740ac41d51a896f9800feea5da3f30244e0eebefd61be94f01fc02bf8366eafe66300030d066d1e112fd", + "271f8076a6be2076477c1d77258889f8803d179a52f857d5d2e3a1054704e84ed7fab4ab5ed2ddc4fb6b023113a9a1ad65c123aebee813abed1aa4c613dc39158d2748811ac5f037", + "8ffc3ed9a89c957fe38ce8ae1903dd01dffcfb9b031ca26c090613776bde7617d98eb961be21f73560a25c67c31def75f04d17ddce9c3629465a98432afbb91d56ec8fcef7b94594" ] }, { @@ -520,22 +626,30 @@ "80baa2a9b0ccc7cab9ef6ed9c33f7cfa04262129bee1d52dfa511587874689498f2850824c0aa9dd48ab0514ea0704ab9062a7823e614b4580", "dd32e55c82d043a788249530152ae82394a0f77fd24b00d161e614e98ef97a45ba6529cbca19598b1d6423fd3a0a5c44849a583b4b34f01a80" ], - "pop": "bab87c1c6d1801d3e11fc2e3f0fd72c937dedf1afc0fd28a89a774c1878f8be66b1c431edf1229351d33f182abdd3c59cf5ea8968631dcb500821c3d4df04d6f33d8e9edbefd88fc246ffbb0acd758c1b6d937c861e30af3a66b2d20e2917a2aeb6782d9f1114ed1898c472a2bb98f1717", + "pop": "411e5d2b4e0702aab79011e3bf5850981ae9b951acd89e89237b409e2e7ec67dbc1388e2e0242be530edf73dbb906b97fa27ba398f822b830057adf5ec521d3c1ac48d88fd3e31d66c891cc3d88613b63a713e14557afa14e0cb1c8af788239385b9a69a7b4420b49f13431b9e9735f91d", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa3b61aa6f212a1c0d9b56b1eb0ebcd6316ed441fbb65b5b5b3c1969b0d13a4da2c7057a8ff4ce790a7d98aa2ecdadc36574ba01df0446e034007cad7f88f94e45113367a2f106a0d03b02db689499127abd13b9619d31f868ddea24b4567f3364e5420fcedffb2cb97b1a4924dcd87f0714000f796a65659450039ed2bdffb2ab1c629d2f49a709bf715dd3b7a95a6126a5df06d2467c049226c971edf09c99232cb555ed58e9a3d2757300cc2878a8c0a61704e68a2fcfd334690c467fd40185889279b74dde7aadd977682fdd65f354815c43097618d408a8bf54581675b584b9fb70801d16936fbdfb64caf74a338d51ca12b8e265db583f7cf809131ad0feedbb81ccab4319aa62990a9c4b77111d1d39bb0a9e9bc0f2c28aeb2f0080baa2a9b0ccc7cab9ef6ed9c33f7cfa04262129bee1d52dfa511587874689498f2850824c0aa9dd48ab0514ea0704ab9062a7823e614b4580dd32e55c82d043a788249530152ae82394a0f77fd24b00d161e614e98ef97a45ba6529cbca19598b1d6423fd3a0a5c44849a583b4b34f01a8093e0515339a3a9a955aa9d2c6c9e318781af2fd08f85cfe86033ad75be40253fa192535d30b0aa27dd86ec3afa92d2f0ffd77035752a281500", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e434503e09023b2832723561d87146d641b6f4285d06bd32a8914cab8fdcb54d4dd642b0288516161837452ff5f0ca69d4a4bea4e5af90b755b0c63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa3b61aa6f212a1c0d9b56b1eb0ebcd6316ed441fbb65b5b5b3c1969b0d13a4da2c7057a8ff4ce790a7d98aa2ecdadc36574ba01df0446e034007cad7f88f94e45113367a2f106a0d03b02db689499127abd13b9619d31f868ddea24b4567f3364e5420fcedffb2cb97b1a4924dcd87f0714000f796a65659450039ed2bdffb2ab1c629d2f49a709bf715dd3b7a95a6126a5df06d2467c049226c971edf09c99232cb555ed58e9a3d2757300cc2878a8c0a61704e68a2fcfd334690c467fd40185889279b74dde7aadd977682fdd65f354815c43097618d408a8bf54581675b584b9fb70801d16936fbdfb64caf74a338d51ca12b8e265db583f7cf809131ad0feedbb81ccab4319aa62990a9c4b77111d1d39bb0a9e9bc0f2c28aeb2f0080baa2a9b0ccc7cab9ef6ed9c33f7cfa04262129bee1d52dfa511587874689498f2850824c0aa9dd48ab0514ea0704ab9062a7823e614b4580dd32e55c82d043a788249530152ae82394a0f77fd24b00d161e614e98ef97a45ba6529cbca19598b1d6423fd3a0a5c44849a583b4b34f01a8093e0515339a3a9a955aa9d2c6c9e318781af2fd08f85cfe86033ad75be40253fa192535d30b0aa27dd86ec3afa92d2f0ffd77035752a281500", + "nonce": "6c9b5d42788c568fac06c7adfebd08c08242a354e381c8e21c3531f15767690aa1a594b2d87b285d8ffeba8287a6a091d5d4cbfbcd9dcf14", + "nonce_commitment": "411e5d2b4e0702aab79011e3bf5850981ae9b951acd89e89237b409e2e7ec67dbc1388e2e0242be530edf73dbb906b97fa27ba398f822b8300", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4837411e5d2b4e0702aab79011e3bf5850981ae9b951acd89e89237b409e2e7ec67dbc1388e2e0242be530edf73dbb906b97fa27ba398f822b83003b61aa6f212a1c0d9b56b1eb0ebcd6316ed441fbb65b5b5b3c1969b0d13a4da2c7057a8ff4ce790a7d98aa2ecdadc36574ba01df0446e0340063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa3b61aa6f212a1c0d9b56b1eb0ebcd6316ed441fbb65b5b5b3c1969b0d13a4da2c7057a8ff4ce790a7d98aa2ecdadc36574ba01df0446e034007cad7f88f94e45113367a2f106a0d03b02db689499127abd13b9619d31f868ddea24b4567f3364e5420fcedffb2cb97b1a4924dcd87f0714000f796a65659450039ed2bdffb2ab1c629d2f49a709bf715dd3b7a95a6126a5df06d2467c049226c971edf09c99232cb555ed58e9a3d2757300cc2878a8c0a61704e68a2fcfd334690c467fd40185889279b74dde7aadd977682fdd65f354815c43097618d408a8bf54581675b584b9fb70801d16936fbdfb64caf74a338d51ca12b8e265db583f7cf809131ad0feedbb81ccab4319aa62990a9c4b77111d1d39bb0a9e9bc0f2c28aeb2f0080baa2a9b0ccc7cab9ef6ed9c33f7cfa04262129bee1d52dfa511587874689498f2850824c0aa9dd48ab0514ea0704ab9062a7823e614b4580dd32e55c82d043a788249530152ae82394a0f77fd24b00d161e614e98ef97a45ba6529cbca19598b1d6423fd3a0a5c44849a583b4b34f01a8093e0515339a3a9a955aa9d2c6c9e318781af2fd08f85cfe86033ad75be40253fa192535d30b0aa27dd86ec3afa92d2f0ffd77035752a281500", + "challenge": "7a756427cc1a600f439655487d6a6196dfceaa2159f1934d221b38582e40470df0177fc7419b258a453fca1644166ea374e50fc0125bce22" + }, "encrypted_shares": [ - "23825b68a85df15d5da4e2c406a830dddc0e4fb1fadd6e623fc61b8dd06a396da6566a078499811bc33fbcecf59ae09f508b9dfcbc02001f70f9ec5d5893893373a9235ec3e0d3c0", - "8eea41dd2f1c82db00f17a42c1c04e9766c21312bd87ac24fe5ef299e2544f7ca6f78e2d68c7a73bbd686b26409de5fd9ea479eca11dedd8da6bc4ad0ca46da422b3b13a7de86623", - "67d826d5bea04cf6d169f7541f7b69ea6ee94567cd38d110222777260de8c0a02290d07a9de88305b601155ea588e3ef378e0d38248f624008eeb17e16d76cca0fc2c5399f9b5764", - "81e9c095c423a32549efba0ab0b2b2b09b05738a8a8f7d19bfbb04790049159d2af847ae391ecf547c406ebef89f104c1e916e5a0a97abbb46943caf64f1d153a3d830d283f3b40a", - "09db439454ef383b1072456950d6bfe5c87f3953b17b18ef1d4a5cf5ed39887746ef2bcc3903bede63bf3a65fe1272489afdc167a2787414cffd417480a2981dda90fe20ab59a73b", - "1579e7513434326a854edc56fe3185e87f06f8521ba30a41e383f1d3484e0ce9c4098743c2d6daba24496ea81dd57d4c857e6ba2ee0126257ff955738ca39bf90b095aceaa748e83", - "bb47d05b080adad667641be2676d8c0c844c0b330aa9112a65d51c10a47a93f82904cb5841648f0a3446b629634ef816fc4f23e60c998d9c184c37aca63e0fde7d84b84f6144b52e", - "8f18b4ca9f79901b466d3170878f765f39f3067b3a1822f65411654ba6010a5636c81fef3739539eabf6d7dba968ff142fca3a71d0dcdf6811fd6994c6e47366bd98e720a91fe50f", - "390261a9d1b3824b55758af62b246135209da238de3843985aa75e7701ec833bdba85fe0441851077656f41f6c9b78ad13fb5ab722088ace8ba59830b08f00b28ec2ed5b1e2278fd", - "91739132ecef10d6d45ec576ffe7e4cfdbafc76dde3cae2dcf578e899309ad693878058ccbceaae81f71a61ba42bcafa33abc513bd643eae0b1efa79064340bec1c3bd363eaf4b5e", - "783472ed974299aa9c92b9a32c56646f6891736c3deb6ed3b56a44d84ab8dac26708862427c1602bc0f32b7568b40031bf25f92e44e9b568d97ab4e9bdb75eb6b821aab32491ce51", - "79d97bd4fe9165e64d23a7d17f23c3a29feb3cc8f6eee47bf09e8d3138aba0441babcd588b3dd765de37f47c78de9f0610b427c88c8d6a4b9ae84e4795d85090eeec77df572b5f40", - "d07ece89bfcddfac1ed5b56dfe1e20547ae9985c94d6b5094c04a7793918ad3ffe56d785172ccb514bd5e0c4e24bab1f79cdbe3ecdae50a6d47e93fe316c448dc7dc0049da25fade", - "9e1ba87b4c4f39525e817499f43df5dd61c9e7945e4356d5a76744669f68f376f8930889e6d83c10eda9f31e15cd062f53dc502bed14c64d21c0dfbd2c17854308fb0ffe3c582b99" + "d73bad3e6bb6601d4b4b9eb8b3b64883c2419e8cf5b32d543f243843ac53ce7acfca53be3320e5a4b43cd05e55fd3e37edec475602b5b78477ce3f99e1e2d216e325399c59fc15d1", + "7abb756a29e2dd36e930773c723f0cd356d1dece4e87bd1178e9fc5714866b7668f7dea5758c5bec2d581f5cef300b68844ed853631e08cafea7578213ccf0f2b07a570c8baab8ec", + "8547f62d2192c124f21d6baa4934ddbb98b4c9afc170102c232e897c5f921beb33bd5dd8d316ee11e3e5df69c2b7f23e7044c245f55f5ca70ef3cf47a75a0135d9136201ccc418e4", + "2edcaaea48d810e6fdcd939b9be84b27eca0c456550bda17f7e3702e70078321063a33dfbff0d9cdc6ba477cb54c5f724973e3009a8bcbab65fde54d4654c96a5eb1a65a204df73f", + "cc7568ed8545f34aefcce1c267e352a4c63e3298bc6d28d116d0576aaa45389ba930cca2714c5ec24a7df99b82fce9e1d85d6547c2c341b89333df9c596d1b905902b2aeae8523dc", + "dfa64fb4b1503f854abef5eb2c171bccea5da4670553c41e769f9d3bd1480cbc05273d8308f1249c93f6f820145ea0ac479a9a0146a414a3566774e899b52b1e817e05ba3355b5fd", + "348ec642addbf27e683bd06b5edc9d7cc55a183a0f9e4fd1a157c3d307eb07edda4c766f9ce143138fee0a939b2549f2fd08ee100b503159294c0477b5bb305b35c21c7f6d9a729c", + "9fe32fede18f60c674aa5f598547b2ebcee3697d6974703778036ee55a42c1bffa716accb1a1280745351b3ffec4c2136ca1752be8d040b57d36d1428a08a6b9f69ca514a0d48aa6", + "45dfd211f3ca967b4eb4d9d32271f99ca860c572e9ea32c4cab3112461e7beb5c1f7c21002d0e827b64728d9359115726d13c7df40801a7edaf3e5a96779c1e0ed15f8e7f15f30a2", + "8bf2f81ded549ada72d8377a8edc2db4aa513a8b4a57588014b1be986d6d4bdcf4560d1801f200c364838ff6efa8b450a034c382de2f17b4ed4329eec1cc4101c305676d15660deb", + "c30c0d88c30c7a49cc76dfa892d4f633cd267552dcce1bf9e648935706d397bdae8b7d92a88ef164814b2a4e1cb1a67f21b662f2ca159b71c56ee24ce9b9c4ac60c7ce2051a99693", + "1fc1d85d32f2828ec7ac9b26f10c1f953b045618f232dfa619507956b475025728be40ecc67d8967503add6affb1cf283a6d96af35ba1ab3509c9fd25254af995acd3daf1a389b1e", + "5a5ce3342e1930bece45dd4489022cd84759b4bf496ac73df2a4d2c8d0e26d1e78807c69f388604b537ddc5b4b1effbe5c31e83d83f3d484c8a116c3f8617808cd4a07f6e7b378c4", + "3d4ff94ca89bf6056f8f85d6bc8230fc52b1829c2aa17f96885d7a8916ee250e360c43dcdd9adf23061c0ab56b74b669adb73e1f7c28ac78d902e345d94ad6901561c2f1649475e1" ] }, { @@ -550,22 +664,30 @@ "c2fb4a1d0033e6e8214d30fad99cda4427591474e9b0bf827e47c23572e9cd14eac1373449aca68c68b71b4699a067c508b626f845d4e1d780", "a63e75ac32c79918163315f4d5069be38662212035615ab889eae5a0bb747e121df57470659af132893d1943b9d9f0224fbed150a8121b1880" ], - "pop": "7d3ba19304864aaf8f1043c1333c7d0b81ae109dc485664079b0a4e08bbd9dd92cdf3ba21a44d531f27d44b84cbd3e588be311e1ee565b360011c89d6fb3d74b5ebf905776e849c3d421edcda692ce15746641d8d85623a3c7f663dda14bdfa57ffbffd9f4d3438ff4ba1c466a4773a421", + "pop": "5697079f3501bc3b4b85b85fd38c0809f90909ba436fd3dfbc57543a0cbffd134428d54844581998c8d0eafeaaeb33a3471fa4a7cc43e9a4000203aa77ac9548f9df965cf2cf01231f540d3c41c6e1b59262f714372b9c0b741ba38c28df061e9abfc417447bc9b0e5016565d3a4f4f00f", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfab6f1326ad4edd4970078b3937d0ad79012ed8509bb3e74fe7e1bd26e34f1d3c917ecb0209c63c2895f4fa511e25b18185543efbd2e565da6008ac847a8642d3a2d442c3bc9bee13e95c7de85fc4e4813c577609b5cd6b8c147923d253180c55792e39306ca30cc33176da45bbb9715c1228070bd81bb5e224e9f560fd54bb6c1a39adc5be0f2512d29776e659eb89842852004dfaff49d855085644bd30c4142a86e9357dbd73553dc90002b9ec228e86799443d9c6923ef8a923c4a88d40dfe83196a960dcf61401b5f515c013cd44755b46d0d023ed2e38eae5746db474f5442a34f804acb5b921453f3eb52137f7d0ef5c5c8f7ecb646c786108a28ea33cfd7889b64775866e3e714aca2b41f8e73396ac7efe280c106ea311ab100c2fb4a1d0033e6e8214d30fad99cda4427591474e9b0bf827e47c23572e9cd14eac1373449aca68c68b71b4699a067c508b626f845d4e1d780a63e75ac32c79918163315f4d5069be38662212035615ab889eae5a0bb747e121df57470659af132893d1943b9d9f0224fbed150a8121b1880a002a1ba7e8f962d82c7f607167e918e0d4c81229fc1b0fafa726814262da558729796b4fc3b5cddd00d02bc40d9ef1ac542e6fcb93d961500", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e434532ced85be1be09abfebea81f85c2532df254bb69ab3eef3bd7eab98e836e686d1a1159fcfe420ad939e6b0037f4443b6f9994bd3e3a2a21b63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfab6f1326ad4edd4970078b3937d0ad79012ed8509bb3e74fe7e1bd26e34f1d3c917ecb0209c63c2895f4fa511e25b18185543efbd2e565da6008ac847a8642d3a2d442c3bc9bee13e95c7de85fc4e4813c577609b5cd6b8c147923d253180c55792e39306ca30cc33176da45bbb9715c1228070bd81bb5e224e9f560fd54bb6c1a39adc5be0f2512d29776e659eb89842852004dfaff49d855085644bd30c4142a86e9357dbd73553dc90002b9ec228e86799443d9c6923ef8a923c4a88d40dfe83196a960dcf61401b5f515c013cd44755b46d0d023ed2e38eae5746db474f5442a34f804acb5b921453f3eb52137f7d0ef5c5c8f7ecb646c786108a28ea33cfd7889b64775866e3e714aca2b41f8e73396ac7efe280c106ea311ab100c2fb4a1d0033e6e8214d30fad99cda4427591474e9b0bf827e47c23572e9cd14eac1373449aca68c68b71b4699a067c508b626f845d4e1d780a63e75ac32c79918163315f4d5069be38662212035615ab889eae5a0bb747e121df57470659af132893d1943b9d9f0224fbed150a8121b1880a002a1ba7e8f962d82c7f607167e918e0d4c81229fc1b0fafa726814262da558729796b4fc3b5cddd00d02bc40d9ef1ac542e6fcb93d961500", + "nonce": "cf655ba620d15976b31119d1b044a8362c89df796f9aaf4086ca195ca72e7f1dbfd0114aa914f6aba2c9cd8486f7da30f7defa69f89fa21c", + "nonce_commitment": "5697079f3501bc3b4b85b85fd38c0809f90909ba436fd3dfbc57543a0cbffd134428d54844581998c8d0eafeaaeb33a3471fa4a7cc43e9a400", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d48375697079f3501bc3b4b85b85fd38c0809f90909ba436fd3dfbc57543a0cbffd134428d54844581998c8d0eafeaaeb33a3471fa4a7cc43e9a400b6f1326ad4edd4970078b3937d0ad79012ed8509bb3e74fe7e1bd26e34f1d3c917ecb0209c63c2895f4fa511e25b18185543efbd2e565da60063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfab6f1326ad4edd4970078b3937d0ad79012ed8509bb3e74fe7e1bd26e34f1d3c917ecb0209c63c2895f4fa511e25b18185543efbd2e565da6008ac847a8642d3a2d442c3bc9bee13e95c7de85fc4e4813c577609b5cd6b8c147923d253180c55792e39306ca30cc33176da45bbb9715c1228070bd81bb5e224e9f560fd54bb6c1a39adc5be0f2512d29776e659eb89842852004dfaff49d855085644bd30c4142a86e9357dbd73553dc90002b9ec228e86799443d9c6923ef8a923c4a88d40dfe83196a960dcf61401b5f515c013cd44755b46d0d023ed2e38eae5746db474f5442a34f804acb5b921453f3eb52137f7d0ef5c5c8f7ecb646c786108a28ea33cfd7889b64775866e3e714aca2b41f8e73396ac7efe280c106ea311ab100c2fb4a1d0033e6e8214d30fad99cda4427591474e9b0bf827e47c23572e9cd14eac1373449aca68c68b71b4699a067c508b626f845d4e1d780a63e75ac32c79918163315f4d5069be38662212035615ab889eae5a0bb747e121df57470659af132893d1943b9d9f0224fbed150a8121b1880a002a1ba7e8f962d82c7f607167e918e0d4c81229fc1b0fafa726814262da558729796b4fc3b5cddd00d02bc40d9ef1ac542e6fcb93d961500", + "challenge": "a046c0a3a68a95175c39f83f1fe10ddb85fd564bc48b2699b4576d6da20df59f568aaae1b1cf528451e6b39452f6be35c1e2a0f82763b838" + }, "encrypted_shares": [ - "eafb9cc1809a1dfcbdbe2c5e8094fdd179724b86dba2bdc2c85c376543805354a98a54d20f887d3f6ed203c025a2f807bfe932c210756f32ecf13235b00323b7dcbb27169946a2fb", - "d389dcfcc2f3384e366b1743d45c55feb98ec5e6f78ec0adf69dba8227a8bf1949b0c394eeac14054d1586913af188ddefff089e877fbbb071f7978eaaf69ec1f3faf1dfc516ec2e", - "d5d566fe2d15aac3b1526e16c990eb1e83c86e054f8f9a62dc33e5a50852d27501bb1a154ef83b240c01651730e906d275ac4157b03e40101bfd1504ee845195275ae108e79c10f7", - "34a9c6702d30f6e2357a80a27ab93ee7c4bca7d996df300a5262052f28233b51fdf211d6bafa4a77f607a4be15fac56afb5f5a3aff8df5338020303339b0a059183640d4213545ad", - "49f28ac62e3856470752401ebba57836e48185d3bca103302ada4ab51dcc1f814c39b3ac546cddb5db81ee222af99d38eee88e7ecfd2b888d3e8d0a5f2628602ee9ea0d4a87cdb57", - "dbe32adf47cefba95a7f56ca1e34df28914e543287f8d7c3b09ecc71c325d19cd248e8f7cf2432704865d63cc07f8590e117c5ba1b4aa004c49f156798f9c562b19f4003e3469b91", - "07c38b6ac58255b057abd539d99624e0d84b4e820493282fda929930af5a33b5488f7242426af4d21d087062101eae7438cf8410b2f5a33a02cb2d6f5987716c7ca6926ee911ad28", - "dcafd04b5f7611af0a50e564284d32cb305ead69aed21ffbfe2bd82217276b41cc25456a1653085a9bbe37fa0eb48bbbaf744d74d6018e5e548405b5f28dbca02a8b52d533637fbf", - "403844e116c2d421008f3983a82a12a98f13d665257ada27f9ee2c15f2c224c762702a0110a84dfb761d06df30eb04d2e42c6aff3abd67c92240ed6b5b5b2a673b101bc9f21ce9f2", - "95796b6e482fa848ccbbcf2e2631246a197be986367413390b3f16e67643a5e055173780a9d330781be24e523da1d09ef3737a0aaa50263b7932639c79c929452de8bc867fab30bf", - "cdef3442d4bb3909ff144c72cbf970621f03294be8adaac647cc1ec9653690cde6c72f0b9b84d1b3b481f205ddec9bc2f897a6a657dcbf466a706941a13d954a2218c071075184d6", - "b47d7cb94d05cc26c327790b6f02a383c599ca22aa05fb4c70ae05ff1e17d19821e71a0c72a6ddef87309bceb674af6067101ae9ec8108e63d0d9dcba45b708d5f6473fb06428172", - "c3aeb6994e20fa81e130884da4287485d54ca16fc1b4512ab139b6e8b04d0a13d7fd3076fba311cc91c93e0f9103c58900f95e6f3a8f62800da341478ce0cf02e7ac3edf5eb44332", - "6fd1c584c615802d333588780ecc1bbb08e5b7142eb90d61e86cfd66138cc94c7d5f4c2e6804e0912417bb32dc71c489433c62283db2998c3d947363eb19756d5cd5d7a5f3f16e2a" + "1070596700e49cababf2c6884a484dcc0d17d3fb845cadfd6672f0c863d1d69f4dcbb30319b6e181ac00ec36c412e08b13302923212f46ab481085f7840e8610736c5d9057874bb4", + "b41cae1963714812d1ca55518d545dcb452a7d02d38aeca39a903cde06ed5887a9c2896591bc5955ec2f264a0d0c158f81e19f3edaefe72a41093eadfb48baebf24d83c2ecd52f67", + "ab0aa5789a2255f9177a1021b13a7c1250b98196cec788149085f3e8cb444c33152bc59259fa6ba28de415120003a30b1b98cb7e812875d9889ae2bde0c1cf587f80a99fd95e6be2", + "37a3a2d34e6326a97c8501e20bc2d0aa506c981def52b5a37ff7b0e4c53a8d4ea351d7d73270a1750367a742a8774ce0d70f6a8010444a0e4216007ef2742825290ee8ed6d86951a", + "4d59d37ae62f62913f003adfd4d7bf80112ac016ffbe05d4e4846a3ef5bf4307d7211be4f50bbd6f4831cf015a50a436b6b15f8a74442715e07b07605f7846268270473d3dded79d", + "2f8ba30e783f06a807fa21ed311e35ca968a4efdf61fb2519968674740ad17366cf6f7786ce2d25ac4f820974f048653176e87580c92093cc6a5a1d2bb4e261a48bff3cffb207021", + "b1ded436b571d9c313d1b10a017ef7e0a1931913e2ea276aa05afd41e1f548341c44599d74bc2f72fea80190ba7b1b25c555095039962c7423aafb1c7f2db4eca0464a76bd9b89bd", + "0ff7387dc020753505247061e7d6786cd9b4ccf451477fd4a4f77277637f309c1a71226928191599f92b3856d2c6121f0fbfe349247bf26665b97daceeccc7ffdc48b1e821530d0b", + "7eaf89c6c313cb3a71f9eda7dcb6d57263e91f9da97bd65b21c9e0c41705ca117d60360add3ac0d1667d2b757b3f9b0f70571e16c256891f8db414b280c98a693caf218e7a35a7f4", + "bf562333f94ad488b740e7f5f54aa3b0040150a3eb23e0e99bf0925445f6e3e52c47a0f36b338d481de3edd730e644a189f0a69124ba60549cde313c2e57b78fa0903fe5a863634d", + "aeef985ed4f3e3425ffca40499ce4228ea3ce12cf0a4f6e83e66ddcf93aa3579fb6031c9c03bf6f6133f56fa8588942d810b5b5843e649117e8c970e51935bb77979218f930d6921", + "23aff462f0d5735bb1179dd1e26a1682b2ee142cfd03afeb0a0dfd6f198d143f11ea0ed39ae16e9518be529d1c83c02755f1d2b3666a4c805a3c5e3d42ab05a799e83f075deecdf1", + "244fc3308509dfcdb29db3bf77f7469655751cd7264d46c6fef67ecb3b2652f7f830851c8c9340f04bafdfa1b8cc5b40c1bd3573233eeee76e2c90a6f34c68de47d9b9595aa707ac", + "72bf83bfc13dce4b327a1b922a78916bbf44d9fc39fd64fc240c6712e84a3623cacd2217c8e3333e3bdb0c21f49f38c337f7fcdb2da7d96c2b057c7c3b607edfc348f7dbe8bd3227" ] }, { @@ -580,22 +702,30 @@ "9b7e759dc514d73e6feef063e7f81a11f7f34f537dbbc2b2c8bc6b54dccb4902fad5f0ea82842279af8351267558732111b31807ad6b8bd900", "72e72ac04fcb910175391b4cb38bf3dc3e4fde86855d8dc02b8be3dc00d44438b9d5d460be0594033bb6a54c1fa91fd98a2f3f056f52c2f900" ], - "pop": "42d34426e28958ad25e219202df69dacff042a1f2b8f8a517221d9816866501482eaaf4a2299f8e9e8f4051060f18c46e0bff108846f2ac180d13172f250bb14c43ad3fab525d9f71b738c1715b778857c006a3efcde1894107a4e4f1b9b4d181f323abb2a89053506eb69b4b428bc7e2c", + "pop": "2d80e681057b5c3f98c6d3271733eb9be4af8ecb9655df216d72b4f50a9f8c6a3930b78ff6164339b062a437570934a26907e05a770b8f0b80ba68181235963adbaeb5d0dff07e93bec33cb453613c6f61067997231d543525d6982bede5a1c31f16704d125270cce3db1b78d37292b10d", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfae313837666ee1e8b7cba5b0347905ba131c776b6bdd9cef45a7ad2a382b72792807591144d746caec768bcc3fe9e08f5f24f33fc354ff67b0017c37752d80a2461d9c5a7b90bd0a69b9df6b3092a9eab91e1d440a63a20b5eab73c56ac45027e8df58eed99e123c8222c602e76397abaa000cf2c72ca026db5df6207884ad1f82f8913744927edee02d2a94e4b9110914c666d7f94cbdcbe0c1f939fe6ebba8b7d1753941f54a92b8782005d22b4dba6ecf0286db31601273887d7bc5a50d492a65b72a283f6b322eaadbc13c19a0fd33f75f645d9b4b6327eb36f6f3bd5a368e136b380ebdd5d7b7adea93f64f4706d3fa4542b13cf193755b5ccfb0bbf86b2424236eccf76898e4694100ce515c88681bc4b46c3a8cec8e85041a6009b7e759dc514d73e6feef063e7f81a11f7f34f537dbbc2b2c8bc6b54dccb4902fad5f0ea82842279af8351267558732111b31807ad6b8bd90072e72ac04fcb910175391b4cb38bf3dc3e4fde86855d8dc02b8be3dc00d44438b9d5d460be0594033bb6a54c1fa91fd98a2f3f056f52c2f9001c1d956844d1a912648ae11263aeb2120ebf96a1bff288aa11b3e9258dd2dbce91d4b2ea984a4425e1c951c78453580fe5e92f78c098d57c80", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e434520e9b6935e4b1567dc3b51f32ac75f6755f35cc4a0e752812213af5198f0b9bc4c37b2038cbf09b83615b6b22d416ec792fdef07f135611b63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfae313837666ee1e8b7cba5b0347905ba131c776b6bdd9cef45a7ad2a382b72792807591144d746caec768bcc3fe9e08f5f24f33fc354ff67b0017c37752d80a2461d9c5a7b90bd0a69b9df6b3092a9eab91e1d440a63a20b5eab73c56ac45027e8df58eed99e123c8222c602e76397abaa000cf2c72ca026db5df6207884ad1f82f8913744927edee02d2a94e4b9110914c666d7f94cbdcbe0c1f939fe6ebba8b7d1753941f54a92b8782005d22b4dba6ecf0286db31601273887d7bc5a50d492a65b72a283f6b322eaadbc13c19a0fd33f75f645d9b4b6327eb36f6f3bd5a368e136b380ebdd5d7b7adea93f64f4706d3fa4542b13cf193755b5ccfb0bbf86b2424236eccf76898e4694100ce515c88681bc4b46c3a8cec8e85041a6009b7e759dc514d73e6feef063e7f81a11f7f34f537dbbc2b2c8bc6b54dccb4902fad5f0ea82842279af8351267558732111b31807ad6b8bd90072e72ac04fcb910175391b4cb38bf3dc3e4fde86855d8dc02b8be3dc00d44438b9d5d460be0594033bb6a54c1fa91fd98a2f3f056f52c2f9001c1d956844d1a912648ae11263aeb2120ebf96a1bff288aa11b3e9258dd2dbce91d4b2ea984a4425e1c951c78453580fe5e92f78c098d57c80", + "nonce": "3573ca180d9c11fa1f8af861a8b24c40a1ca61afb505736f94cb6463142c62db771386bf783f2fe2fe4754f5634a4c049b38128ff5af990d", + "nonce_commitment": "2d80e681057b5c3f98c6d3271733eb9be4af8ecb9655df216d72b4f50a9f8c6a3930b78ff6164339b062a437570934a26907e05a770b8f0b80", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d48372d80e681057b5c3f98c6d3271733eb9be4af8ecb9655df216d72b4f50a9f8c6a3930b78ff6164339b062a437570934a26907e05a770b8f0b80e313837666ee1e8b7cba5b0347905ba131c776b6bdd9cef45a7ad2a382b72792807591144d746caec768bcc3fe9e08f5f24f33fc354ff67b0063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfae313837666ee1e8b7cba5b0347905ba131c776b6bdd9cef45a7ad2a382b72792807591144d746caec768bcc3fe9e08f5f24f33fc354ff67b0017c37752d80a2461d9c5a7b90bd0a69b9df6b3092a9eab91e1d440a63a20b5eab73c56ac45027e8df58eed99e123c8222c602e76397abaa000cf2c72ca026db5df6207884ad1f82f8913744927edee02d2a94e4b9110914c666d7f94cbdcbe0c1f939fe6ebba8b7d1753941f54a92b8782005d22b4dba6ecf0286db31601273887d7bc5a50d492a65b72a283f6b322eaadbc13c19a0fd33f75f645d9b4b6327eb36f6f3bd5a368e136b380ebdd5d7b7adea93f64f4706d3fa4542b13cf193755b5ccfb0bbf86b2424236eccf76898e4694100ce515c88681bc4b46c3a8cec8e85041a6009b7e759dc514d73e6feef063e7f81a11f7f34f537dbbc2b2c8bc6b54dccb4902fad5f0ea82842279af8351267558732111b31807ad6b8bd90072e72ac04fcb910175391b4cb38bf3dc3e4fde86855d8dc02b8be3dc00d44438b9d5d460be0594033bb6a54c1fa91fd98a2f3f056f52c2f9001c1d956844d1a912648ae11263aeb2120ebf96a1bff288aa11b3e9258dd2dbce91d4b2ea984a4425e1c951c78453580fe5e92f78c098d57c80", + "challenge": "d5a4d9577311307b330cd1a58bcfa7abf32a95e10351872aaa717f2fdd416ef708d88424d3f76abf1296392452c3e1441a3b8e7d271cd913" + }, "encrypted_shares": [ - "2824b58765e92ece5a6f5cd42dfe23d66d621268b7c550e81a9b497ab2b7308474876c044d45c8950f085978ac506785b078bfe03cd68410b84ce0c46f3a85fcdfd9d86e72ffa920", - "1c93bbe8c8416991974fe609aa19090cc174012787f2a78012fecb7f06000a692efead601b7a6fae28c89f408e317e9af6752c08a762c30f234f3e28a8a70f0e5acf57bc2f70124d", - "3d48297839a52ddf7fccf43988ef44c4eb2f81012e810bf688143ecff3c66419b6f44d73069ed58ab3a3787833a32e4b7581dd9992d1f3d95fe0b5844be59b9fe35c2e63076cc99d", - "4b89a964392f67952d04726f33af6fb9ffb9a868d00ef747743ab9e2ca48629c94327948ca17058ce644acc1db1ba0c973be7d85b10b20244928be732ab60b0ac245150be6ca0dc6", - "5ee5201057b256fbc23e72b299b0a77c0f14f7c2e0769991455f2614d1a95329b4a46558de49d7ee6b918730e7a430590f5828d8d74ccb11a61075cbaa9a5e8d99a1da34f39c4392", - "9c64799211178b23e3e19fa87ff16ca4e1e9098d4e2cb8710e98f1fe02b325892702b28eeef88e087e1de72755954cae2c1adbc92c4d2151a2e5d589ceeba311e9a9b2a969f240f5", - "9fd62d8ad725a848e254d90e23b7e0f2fe51b7d1a8c5d18dc6bdfc2960fa0a5280ff9c1de35d2bcd66b4242e6c5a75c10c92cf39a89842a2b16d88fe3cb1b46225a871cf29cb6848", - "da4f286a38b475c5a3042e009b64be1ed76a974472c6cd60a4cbd4f76651019d8320e1196e6fbd30b03eeedf81660e7813530d0eecf41f2fd3ef6539bc247c1dbeebd34a02747007", - "bbb3fbf181e0bbc92d12b0517de050f3a9f714e5d5e8fde8ede8091337f14e4d226b5daabac6dddfd93e1563664fa3a15c243046a72f284535581104e642a60eab39d25ca364e078", - "329b3e23c0ed546b0262b2a8d8a1b5dc1ebcd612e6a57be4c518353b98e69ca21d6ca210bd1211fb7e9e5c6643613ae87a9ebf9188aa00384aa4bd6f53f24fee795b1fd98bdcbe40", - "96af0cf4d5d2b82effb803a8418a2b100761727110bcfecc4c4c4296bbc63f715c153a5b96eb2fe289348c386f6fd7b443a821e6a73d51ad6514fb9eb208cda216a862e9023edb13", - "94065de0cc1a4694c4f69230ee21d37d57966a161ecf1896be461dbd0f4605d085a4f945c4ad1bcf291b70d0addecd91f3727fb57d243ed552f85e411b7ab5402dda2356a5d575bc", - "2a36124e931030e772c75b78df34129c285ac2f445789d9e6aab7f1027fa86c05cf7773e446083e7258667c126ed56f9f590512bc013c13b5cdaf82604013aa43ee2266db8a754a0", - "9da134608e3ae74fc0a8615be4d23d619188a7ca2b37249bc5c75f9b7fa87458e22e5fbfeabe3382bf4cc36731c647dbbd7aec078787dceb0211a428fd5244e9076837561ae67a9f" + "42486aa6754e01c4c1ff31f0e8b47f597b16131caa98f9534f5671787df6dd9aee48a0a042ecc96793c11195d1870392df70c9ca50fa8c9d26198019a285bb0b65c41cac056bc678", + "28a11e5dc96a36c19cf7df2c1f48075222fa33aca72e4010972248568e06e01a7abf596f3121925193cff0fe7da6f50a3900074915881937bf0d22f5a8b58be516e43672cf3cb23e", + "9301f7a401a5c6fdfe451dba2613858a961825e5053f2aa0d27c4d54ab8f28ba6176988d1fe1937175b942c9172b5533a026421c0db9b9e5392425756895e8a4d319e08f0353c092", + "3ff9a37c36074b1ed545bbafde0f23d282f202408d2aa225bcbaeed45e6ee124aa04baac1eef2b82ae54056eee408bc6ff4e80b8e7774733a0535283b7211b4656703d7044082277", + "e502adcdc83f97e492c377423e43d0f1fcc0fd598f93c450109fb52dba17fe20b5cf1d004d6bef8e5915ba85344deb2e0381c362fd2f114e876dcb67ae08fe0ba720fa50df85cdf5", + "833c45e6581468e8551729a3e571e962df8a2d734631839d8f93c8bf2f38fa628f51e210c16bafcebdfe7be5cab360c601906cc0385a70af3220d41797c915697f88d4ec0240fa5a", + "7ddcafa99c117e4d45f4468d7c6f01f9f2ebca9648b3283f29d2b8cd4bd3591874dcaaca788b3603184ec24f5ce28bdd06500c5e6c7e43ef2483a3fa7b83b43b88d2db7c5d37628e", + "15e3e948ef48b1bbaf06f37eae4c5f9fa2117ccfc44ee013cc6fc772034805f8746b6c69b605d9f2c3692827fa7c687c2e33b4ec2e3b4198fa6ad047e8dec26a89067870a36d928a", + "a03fce04e3741f8db4ff4ec79591a1434445ca4c3004f1ba3cf732ccc9076aafe92c0462ab3499e845e25eca6c0d53b1c5f803a3493748ef7c6b87d3447bd2fc03dc2035c0cdc60a", + "edfd647f84aa43de1579fbbabdb31987ffe18193674cde19e231b970068f76d1295ef778fdac9d1f468025ee97dac43dcce4c7cb37a1e742d641eee88332f6b99ef807e2036aac2e", + "e121f9a3259873ee7114ef04ad0f9f605ae74c96e231fa9e124cbbab0178342e82d5365fda082079d2d6d7bf8439c3c899915a430c85baaa03e40d024c08671de2d636105b46ae44", + "efa48ec36ba480fcf94a7756bde19580ee25a400dc064da4615bf182f66eca785e140cccd3715383c70652d5e715983cb0380b7f359ffedb6e4d0f4395b0c5341919c5b3929be9ea", + "1e56124e4acfd6048a27b1950881aaad4b0f9cb326f02410184d2875b78577a5c1e7e243d7790770d95c6b8d86a36bae913a3f340d5270778a0ce74ee9894a2af19ee0e04a7e1d6e", + "eac140fe2ea2824fd49db015d9af465928c71f6e4e1ce33c1e256aabd21a7e6aa13064fbd60ce10c1a6895d3b13c0066de3b36f6ed3d0b990003a6ad70b10b05394fb9bfbe0904a0" ] }, { @@ -610,22 +740,30 @@ "f53fc2bc63fb357922db7c66850ed2ac9573844e2c3a08d9f78402bb69d4c5fd8d4c3175674e594735f966e7aa1754caf3d5d617081a953680", "45e4105c759d7848ca374fea4a9734f45140f0703f66f217811a372afa63a55ff89147d1b6f6a1d705da955c0d7351a7fdda6c82e0cebaaf80" ], - "pop": "f15c388fc30800c9d5ed5450cc5e8013059473f7ed505b576d1a502e39a38d4bccc069af306157dbb7d51f82ea5289a0493008f1c40633e70074a87f7c8e16cdbd0ea0a944cfc810a6e2b4598cd6ec4e045d005130e97df3d34558f54e30c3f4687a774600710bacec53cc999dcdfe0a3b", + "pop": "70f99e7bb51ae64d158f494120e00fc74972bf5b7b6f51525a6939ed91c4667cd8bf59a3d3c4825d7feedca291af27d51cd750fa8041631f000a71afd570d8e13c2280b41d667a6928558532efd4440788b36178255806b23ce6a8bc1398989670cd05393f0347c592cd6b3ad66b529404", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa9172c9c590f4b0c43c46ee971eb6f88be36c09ac1edd04d982cff294cd02e06a0035aaa49719ec7e85f17b6f5d57a00956c50045e4ce4b3880d8c963d8071c04793a554f0c32e8697d8672dbee31c38dcc6003cd90589df6c52982ac30ad796dacbbdf0c6226583a60fdacf23c84573d5b80c14942a82648a8821c4f12719d69f0f5439d4bd3fc00c6d35561c51602002d8be0ebd55677cfd536a7e8e8104b84ea4895786edd2b164b6500522faa7536d3a9c072da4ac744d70236c0f407d513b5a8ac7493df6b31281f29ca7496690e7817ba64a89a1f051db4c438d09c60c752dd2780cad589226250522a20dedeef4cb1e730f553b2cc79acac82bfcbd23aab186fe0a3581cc1e584cb86f86092b721cb0b91540b5c0e6cd41c3800f53fc2bc63fb357922db7c66850ed2ac9573844e2c3a08d9f78402bb69d4c5fd8d4c3175674e594735f966e7aa1754caf3d5d617081a95368045e4105c759d7848ca374fea4a9734f45140f0703f66f217811a372afa63a55ff89147d1b6f6a1d705da955c0d7351a7fdda6c82e0cebaaf804bb7a5b7ccf9ecb3998688e7886e5d8e617dc430f44c38861ae87c85f0f892a3ead1364b5d12004b46d79b9216d80c24a92420584bc674c780", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345e7604a226fa188787fb51d13b472be13ffa164aee6e0593f292e73b455ffda31aea3f9a55ee1992696c4ce80c16e896c8c474fe1a2a6ea0163f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa9172c9c590f4b0c43c46ee971eb6f88be36c09ac1edd04d982cff294cd02e06a0035aaa49719ec7e85f17b6f5d57a00956c50045e4ce4b3880d8c963d8071c04793a554f0c32e8697d8672dbee31c38dcc6003cd90589df6c52982ac30ad796dacbbdf0c6226583a60fdacf23c84573d5b80c14942a82648a8821c4f12719d69f0f5439d4bd3fc00c6d35561c51602002d8be0ebd55677cfd536a7e8e8104b84ea4895786edd2b164b6500522faa7536d3a9c072da4ac744d70236c0f407d513b5a8ac7493df6b31281f29ca7496690e7817ba64a89a1f051db4c438d09c60c752dd2780cad589226250522a20dedeef4cb1e730f553b2cc79acac82bfcbd23aab186fe0a3581cc1e584cb86f86092b721cb0b91540b5c0e6cd41c3800f53fc2bc63fb357922db7c66850ed2ac9573844e2c3a08d9f78402bb69d4c5fd8d4c3175674e594735f966e7aa1754caf3d5d617081a95368045e4105c759d7848ca374fea4a9734f45140f0703f66f217811a372afa63a55ff89147d1b6f6a1d705da955c0d7351a7fdda6c82e0cebaaf804bb7a5b7ccf9ecb3998688e7886e5d8e617dc430f44c38861ae87c85f0f892a3ead1364b5d12004b46d79b9216d80c24a92420584bc674c780", + "nonce": "e9b78443fd3b1a10d95e0aaee8aa14abe30cb0f4f8ed000d94b1d9aa787d17df826a52b7af7d6d6c1cda92a2cd396b0c7564e3e84a4ef531", + "nonce_commitment": "70f99e7bb51ae64d158f494120e00fc74972bf5b7b6f51525a6939ed91c4667cd8bf59a3d3c4825d7feedca291af27d51cd750fa8041631f00", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d483770f99e7bb51ae64d158f494120e00fc74972bf5b7b6f51525a6939ed91c4667cd8bf59a3d3c4825d7feedca291af27d51cd750fa8041631f009172c9c590f4b0c43c46ee971eb6f88be36c09ac1edd04d982cff294cd02e06a0035aaa49719ec7e85f17b6f5d57a00956c50045e4ce4b388063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa9172c9c590f4b0c43c46ee971eb6f88be36c09ac1edd04d982cff294cd02e06a0035aaa49719ec7e85f17b6f5d57a00956c50045e4ce4b3880d8c963d8071c04793a554f0c32e8697d8672dbee31c38dcc6003cd90589df6c52982ac30ad796dacbbdf0c6226583a60fdacf23c84573d5b80c14942a82648a8821c4f12719d69f0f5439d4bd3fc00c6d35561c51602002d8be0ebd55677cfd536a7e8e8104b84ea4895786edd2b164b6500522faa7536d3a9c072da4ac744d70236c0f407d513b5a8ac7493df6b31281f29ca7496690e7817ba64a89a1f051db4c438d09c60c752dd2780cad589226250522a20dedeef4cb1e730f553b2cc79acac82bfcbd23aab186fe0a3581cc1e584cb86f86092b721cb0b91540b5c0e6cd41c3800f53fc2bc63fb357922db7c66850ed2ac9573844e2c3a08d9f78402bb69d4c5fd8d4c3175674e594735f966e7aa1754caf3d5d617081a95368045e4105c759d7848ca374fea4a9734f45140f0703f66f217811a372afa63a55ff89147d1b6f6a1d705da955c0d7351a7fdda6c82e0cebaaf804bb7a5b7ccf9ecb3998688e7886e5d8e617dc430f44c38861ae87c85f0f892a3ead1364b5d12004b46d79b9216d80c24a92420584bc674c780", + "challenge": "99b91ac7bfb74887d7362a315d1910371840c34a9d4584d0a2b546341ec0694e92a1341e1acede1178ed79c51a2dc77cd7e5660a51afa917" + }, "encrypted_shares": [ - "ed04b46e4709ff00756db20f9b6f617e3ebd0ad3809add58542ae7b667f8a08a82ef5f13602096c19619f3211d99cc7acf3f3e2c2cd400d06253a324b8ca5f4f13e7547da5b27045", - "cff8c2932c3f3056f6ebcc6021194eed823d4550a502bfaa61d5ce25d57f698cc0fa84419efc88bf9a6adf1ad9be7ab144880e7e9fdac67dd99f098f3bf0a9ae23356dc2d297b574", - "6d3b5ca511ddc5b964d97f0b7c90beda08b4684dcf3c2675f642b6a4754e470d896e23e9636ed05241446eab64683b2af9f1ff45c91edcdad043a76ba5530bcd1dd1b8492d9adfbc", - "075495e0b66b4b01fa011ed4cf647e8f6b44a02adfce67c3cd01b8e37412d44b37705aecc4570dcd2956c7621c370c81b37067e7abffc4ccfd01bc58a0435df79b23aff6fe3a0a03", - "bae86fbb94e788363a5f3213043042bf1d30c254d36e47cc11c94fdec52aab220ab325dd02ce62ee203242aaf547c9fc9c7ac2c1a2251187b39ac398c763298980f179cc230c2319", - "aa7dc3c018848e42a685cd2bb16bf5d9e0349305b02be4b16febf544bacfa9f3db9ea586528057b51022b357626f38b9141ba9703aedd068317f907e82daa613cc85e041990d9edb", - "d240738e50d86ba71a1fcc4ff11d264114906b360d70473a6f73dcb5ea3b24271aa18301479fffef834dabb89d68e8ec35d188a974b0311a70e41bf449f3a44c0d6534511eb931f3", - "6de8353f1aa45cea43c0fa7382061a5461d30e5effca2b096d2930c0784d841b45c40f3534ec0118a8f43531b741065aaed44b4a294a0412ca2bd81b7ace3a63a13e8ff59f50d188", - "39ae893013ed1668019e2372cdc58f2c74aedff2f2725dcde5558b8875115f82226e50b2dc1e71fca56d63dd2e5e73a18e8e901dd72a8c8376e8a32896879b772a83c1f6816507d7", - "0a6a18598bc2136dc5bd36ead0ee1b4cc38d869b7f3f44382052d17ae001eed25af74f3e66fc8bf77173d8aee32fc433baac612ec086abd7ab73fdcf0d77009d802270edcbd52bbf", - "ca68d89b0833ee653d80054fb8ce049f0b272a1e99c4344052d1513f1a027d400a3d9010a7dc6e3f8f31184d04fb4bc82d99d6d14c25a25bcd3b884ae274c6906fe69ac5727e132e", - "66d1b370620e62e14d1ce78134d59f62314f727db52bd5ced33dd4709c205df22b1811245ccdf69c7312d45b9a4f3611b58bd2f9743d73fbe442bd7e4dc9fd0cbada1e990fb0b4de", - "0cbdfd2ad4b60f9bb6d81ca4cc6b3869addb1e18b17044ab02429031ee8da74d916d4777467bdddd6fe7fe1ff61974dae6b9d6ffe47192ced8aad557d2e7b96a50c6f8a3e1af54cd", - "0023cc8bffa366903c3e76b56db695f6f8680e3eccc754a7b5349060e8f9d6ed520334a88d95c338fed99299cba231897b4a68232a764bc624807afbe66e5d6dcc30ab74d0f3af0e" + "9fc241c6d5ba8d7e5f11a0b32eaefef7fd2558f691673e1e1e3204411b697a3f873ec90cb303ffa792470dd21ea9470c93e70605071893c92056997e9a3769dd4a6ae2a792789be6", + "b4ebadb490cba2fd6f083bbb912e41485666ca54f00386084ecc98d74b4455640fd23cad371c2e4c4f248adc571b920eaac88f355d5dd99a4bb59800afbf98e51fcaf290d4408e18", + "1491c7280b81d3c054185aaf4c257b0e24e11505ab9534c77170c1b8b33c929da15fe65c3b172ed59d910fdedd28a4c27b2788b2ce0e73816464da34320c6aff5334d3d979f8c015", + "8d0149072618b1cad991ce5d5e70b7ee5059e04b9093d67baa70045988656ef7049229ded29b29220965a1d2446d0237ce1ba0156d18a7dbea03fb39790402dbe700b28c09c640e7", + "c4d6610ff387fa5f97ba237126126cd773fbced0b0d1819c3a60810558b6d72e9895d1edf2d6d98c5f08c8af64a52d26c4275132a7863fd4161f5a9dae9833e3cad5ca8fa66ceebb", + "7a1054af754f945b5df46f1bfd6145ac63eb948f971d8ce7c883e52a34c37647825141c02bebeec31315739948fecfa191673e2e1ae9758098ac632e17358cc6b1446ba78ee7e9d2", + "445b9881d12f6d5c740a7d5a9c110054f4074a975dd0f9cf2006435d051ddee6971e3873f18f61e91d2024049680f9595741831cc186c1ccc88aacc8d84df4ce332a296415356f70", + "855f9c74b42a4e654a587ee8c3789b6a3c50cb3722572e16e9f15bbc4a87c535887770515ecf3046e17e4c3c45790f8cd8c48889b994612f421e6475d64dd0df826f778964168078", + "4e691af6325f53328030a620275e1d67a6dddce844189306210f29b4ed7886ba05f30f463cea1028c7c8bb1f0f930a9d74c17796fc99c5d2cefc7a2d9aa52528bb9b0457a7afa124", + "ab468c05a5aadd6ae9d83ecb5d21cf4a1ffc41a8d30bca06db96634c3e0eb47018ea6a3e41cf6143ea6e73e743ed1420c005324dc5c1df7fa7d14ab03e3e54c813fb0c98cee19906", + "f67b4defe911028c507e08b34019f6954115c2a92f0bb7c54237e16901814c33a2526afce58ef48d689bb50f40d2e3bfa7fd8671495fbbce7c5082f04a489e61c4ea77dafb469a4a", + "7e2fa90c0e81ef2bcbce56f43ac0afd5c1a2d7cfeead7c5cd6dfe071ab507126e4e646a596e1528c0558415fef7dc4fe59b6c78df91a0ede858bf0dd0b6e6dce015faffbee8810e3", + "07e919bf8b8d810922d2e55286811fa852914dd62f88732783d1b229c8440ae227363940a8f307f105fa63fd15bc2bcc7222559b309faaea8c8018695e6262ee9230200a86ba8450", + "ba978415a06ac64dda31cdd430655e612c06e1340d75e20620eb401a5987bb1d2cc1c0ede107bb3ea5a4c2572dacc9ccbf5da46493955d57f1f89fd7cedbb14f678174e47966b2f4" ] }, { @@ -640,22 +778,30 @@ "6aedc50079dc8a113ff1a78f41df39109aded13afff83fef4b25493bb5c177610a8a26328c05b6f0ee7a12580695785e3b193d3f634fe7d100", "cca07f6be340061619ef4f1738c2a7eff3a6f2990e55b224fe905894ebc5fae2f04390dcadd5b5d96d537e9d95e577172e7cbee0a4d0920580" ], - "pop": "d65f0f5d577306c443db5d2413dca328673b6fd34b574114d92d56fcf700b12e592f2c4f4292f1367cd8df175e148df0a38b24b879c749d6806d06c9dc72461a156e5b3b95d49da7f1ef7e3b0cf449efe1c2e224e623e72cfc6221d4a69f169ed15b474be185238aeeb2b0d9752d9b8009", + "pop": "bf14a916c015e0538dfd627ca0af007fd95c5899d96e7f4d7d90b0cbf7a5ed2ded26f7315a790797f6876aafbf3ec36a778ee458d019f59c8053497bc0123a459e80a647c4b0bf61989fcea783d0b73e0cb1d4ad4edaf390decb5231da0bdd14c81f03611e21777f9f4d5f6c8aee7d7036", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa9ea17e7901371527759e57d52ae4a04638d33b73b26875617a2c7652e0509a20ac118ef75bc0de7071549741edced5a203975acccb837e5700c0ee374ca5d454f24aeddbbeeb8b0866cb13d384e07dafaf46c78b0768b6decc815e0b7c632943c599abd57069265edbcc527e56aa172361801ef4ec8490ad81e13ce46c75f3660cb8b90bfde89898d4f26c60ccb32cbcba376b8254038103df78d48dec309df068b96f8299bcfa957f8f802cae47a1d9f2b8cf1ef44a2124ebd4a07d07897b64d0d19cb32388049faf80dcfdaa9e8bb05ed98f5b31cd60915c860a37bc3279b870e9c2003d8a374e68c43a590eec98221ac1a469c25bd0b8d415fa76c8940a9c0e050746b856fb2ce9ef62de5dcdd94917795aa8556764848bf9fb3f806aedc50079dc8a113ff1a78f41df39109aded13afff83fef4b25493bb5c177610a8a26328c05b6f0ee7a12580695785e3b193d3f634fe7d100cca07f6be340061619ef4f1738c2a7eff3a6f2990e55b224fe905894ebc5fae2f04390dcadd5b5d96d537e9d95e577172e7cbee0a4d0920580e20d1073ec245fd177cfce95ac80eccd2f0825562c93143be0e95268908878f14df46ed8e831fa540228282ce09fdab2ff06f38c0af12d0800", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345089493a9c92e6f7377e98ad54bc1e3a3128b212cf1d258a1d3dabd8fa1b6af26499691bf7b04911639624080d8aff92408128bde58b9fa2563f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa9ea17e7901371527759e57d52ae4a04638d33b73b26875617a2c7652e0509a20ac118ef75bc0de7071549741edced5a203975acccb837e5700c0ee374ca5d454f24aeddbbeeb8b0866cb13d384e07dafaf46c78b0768b6decc815e0b7c632943c599abd57069265edbcc527e56aa172361801ef4ec8490ad81e13ce46c75f3660cb8b90bfde89898d4f26c60ccb32cbcba376b8254038103df78d48dec309df068b96f8299bcfa957f8f802cae47a1d9f2b8cf1ef44a2124ebd4a07d07897b64d0d19cb32388049faf80dcfdaa9e8bb05ed98f5b31cd60915c860a37bc3279b870e9c2003d8a374e68c43a590eec98221ac1a469c25bd0b8d415fa76c8940a9c0e050746b856fb2ce9ef62de5dcdd94917795aa8556764848bf9fb3f806aedc50079dc8a113ff1a78f41df39109aded13afff83fef4b25493bb5c177610a8a26328c05b6f0ee7a12580695785e3b193d3f634fe7d100cca07f6be340061619ef4f1738c2a7eff3a6f2990e55b224fe905894ebc5fae2f04390dcadd5b5d96d537e9d95e577172e7cbee0a4d0920580e20d1073ec245fd177cfce95ac80eccd2f0825562c93143be0e95268908878f14df46ed8e831fa540228282ce09fdab2ff06f38c0af12d0800", + "nonce": "fc8d83fec35264aec187295518ee7ff17c52b94fd16e435778e121887eb387810eefdcab39503823891137597f9e588552aaaf5842f8ab0a", + "nonce_commitment": "bf14a916c015e0538dfd627ca0af007fd95c5899d96e7f4d7d90b0cbf7a5ed2ded26f7315a790797f6876aafbf3ec36a778ee458d019f59c80", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4837bf14a916c015e0538dfd627ca0af007fd95c5899d96e7f4d7d90b0cbf7a5ed2ded26f7315a790797f6876aafbf3ec36a778ee458d019f59c809ea17e7901371527759e57d52ae4a04638d33b73b26875617a2c7652e0509a20ac118ef75bc0de7071549741edced5a203975acccb837e570063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa9ea17e7901371527759e57d52ae4a04638d33b73b26875617a2c7652e0509a20ac118ef75bc0de7071549741edced5a203975acccb837e5700c0ee374ca5d454f24aeddbbeeb8b0866cb13d384e07dafaf46c78b0768b6decc815e0b7c632943c599abd57069265edbcc527e56aa172361801ef4ec8490ad81e13ce46c75f3660cb8b90bfde89898d4f26c60ccb32cbcba376b8254038103df78d48dec309df068b96f8299bcfa957f8f802cae47a1d9f2b8cf1ef44a2124ebd4a07d07897b64d0d19cb32388049faf80dcfdaa9e8bb05ed98f5b31cd60915c860a37bc3279b870e9c2003d8a374e68c43a590eec98221ac1a469c25bd0b8d415fa76c8940a9c0e050746b856fb2ce9ef62de5dcdd94917795aa8556764848bf9fb3f806aedc50079dc8a113ff1a78f41df39109aded13afff83fef4b25493bb5c177610a8a26328c05b6f0ee7a12580695785e3b193d3f634fe7d100cca07f6be340061619ef4f1738c2a7eff3a6f2990e55b224fe905894ebc5fae2f04390dcadd5b5d96d537e9d95e577172e7cbee0a4d0920580e20d1073ec245fd177cfce95ac80eccd2f0825562c93143be0e95268908878f14df46ed8e831fa540228282ce09fdab2ff06f38c0af12d0800", + "challenge": "c9b8786015636c0711b5b82d51bb302f97035601e7ae417207f3115c7f866f2852ab2f22b6c9f89a1ac8de71e506ad8f6b279f5ed6a62618" + }, "encrypted_shares": [ - "b5e0fdb14237dd80b1707d6465bc579e2bdc76be5849ea4059e9b5b750783dd1fe1af69cd0e9e4cbcd7d875f143d42df6705c3e8667d0287e3dfa72d769844767aa53559bea310f9", - "7781aaf6d05e875683373ee4195e959ab098325b06598f41ab27466606b6b1d58a00371127460ac81800b372b40e5600ec2352ad203d7eb57415723413e81e4bbc8e23004cfb3ebb", - "c6f7cc946733e5091a73dfa16d4548c82c5e86310da1c7cad34b8e6b4da3f46859daefe316147650abff622f23671fa23c499b4f27149408a9d2759a21d5e8fe18c33a270d50b4b9", - "b93db87508462106c0b8fe081f1d59dc8a3b0e0498949e6c731f9fe074268a9b41ec96a6459ebfcc9c688e4d89c169d5435fcf50d96e8b92a3323dc212d8b24569d078f2f1114586", - "a74858d6de0d3c8942e5d13201506245c58a597159305cac7b2a5cc49b4b8fcf79c616ad5cf258c247b1ce6e4163177acb1e3118834a99bad514d63d9c4b0e8ddbbd3580a5f6a713", - "912e022a7473855de0ae141ec2ec5d8a9f6a6540a21eeb79d9f193c486658093da469a5beeba91856da2ccf55978704dd8f47f85025158c31e270f39550d8fb015aeca2151a7fd26", - "31ec35b5764f47ffca1807c66a8004f32bebb99ec1682769565f14901a92d25f75ba5eb050a06ffa6be13623db3359900189186014fa06628a297549018d1916f73d78953a7357c1", - "53ff40ee0db6cbd930cc2241627c410d3de3fa0bd0b409c5d24722a16415f61aa08d06399ded2bd83bdeaff3ed98397935f7a06cb0a7ff49961a83110511404b29f3e2f37ee95b90", - "1b56a3b73421988b82e46ba0e47a6c0116610cf67773afd5e991d850a1e79e1af33142e1874a6a8588cf39e99496c0065133493841942720331e23307ff0a4ee6a6b5be4f5c3b10b", - "657f29b1906c5057d2a59cd3856a6b7b52fe197a451e864604f0af377491e4fcdca6d9523a72d4a5f20f736c1ea3a508f61860202868b2cedafdcb1f468bfaffb9bcc12243a0538b", - "20116e9500c7f8bdb634ce1b5b792e681b22f21665016736107ec3fcef9d55478b17fd354bcee060b28a6caa9ba0dc55cc6a473978c7f9f883f961434f0acd37b541f2339753b500", - "aba0f79469db98fe470ef2cf88ef5df49c06d8cbd82dfafde4a3c9fcdf9ee87f9f42c552dfe16cef25364ff30419355963fbe424e3aa1b5f0221fbee63cfc443bdf6abb5982dfb55", - "d25105a1f73fe71e36a09f016a8901c3e6c7ba5e2064ec22be38f6bf2685a4126f027b8886a23133c087c7e96d2a8c6dbdedd636682077483019f1b644d119afdbddcf3a780cc148", - "06042991e60172e24c9ee479b11e24d4664b0cb6292fa7982a5a9716125ffbd6d7a424f5ce5668ac8116bd1249d06acbb800510ed48a03d641a0600b100cebcbb603910abca36a3f" + "df06091d5acc04f794d11e26d562054554e816152b027f8266927defb4d0221eaaa35d43275b3f3f8b20ce889db4979f354d568e0d64d080bf11c7229c8108ab24768b2cffdf3ff4", + "529d338c2e8fcf9d8852f796dbff0d55e27d64ef15fc2943c949fb214d29d24b6dc506e09ded8b1dcaa4e02688b430389cd1c4b5ca389ba3d426af86238dd4116a047678e59a224f", + "f6e253fffa0f8dc0798d5e1fee5386612c8362f88132bd1cf7533950b59af6b343efb3cf4fd64dd81d84b46236f9a83f17f447787739c9ab90c0e9f0fac3bf5acd591277f97ae92b", + "5b236174c77e84db27fc882f337c5f8a750b1edfbb29718e75bd4632f3e8c3cf14e71f8eb1865ad07404ad148e7722efeaf44d190994ca5e154e93b616d19f86764e148f14ebbc34", + "69d0a5fd92cd25352226c35396819876898b7fd0b599190fb2a3f7fbe995b9d20e5c4539a6fe263c68142687091242614ed047f0b351511b7e2489e9b5c327c4d7a47c9e25cb93d7", + "0df2036928b0a8d72ace48d5c20464f0159d1c3ce17ed69ade3140ae4a126d28b30f8f356d6df7852c34912a92f1eecdecfbb338181f09319b3f61981ad05879ee2ee923b637b25e", + "57a27fc42906e22b577d2df3810209c711a3e14aa028b4d49b709c93b2df499c10f72d63bec77fbf3daa887db3352772e6e74b7de76a251c78264e78fc61f31d72660a1e32b53c58", + "0958175019c02bcfa7743287676ffb71d0be38adb9613f3cc2b989147b51367aabd65ec52717c69df099e9db1655ac53d98d6663d1487bf9ceb2af55c7718aa1c6221c6d1f2791c2", + "fbd5f8597ae7208d748e60aa433064411452d4cdd0ffb5a62ae003ac86e6d471b0896e968fc7c4251ec9f55308a0414e17e613fcb4eb5dab24de4bdcaca05ea5c50b47959f3b7bba", + "8236f93873e7b14366ff8ae928f9e7aea01b8a387e5373a0253814add98fda6d417787d086d2d447e30016a66efca6c06061da225e3c7107ccb84facd1cf3ffe61a0f4824833140e", + "00832a6309ef6f53e44a096de9cf80e7a732725eb430faace4a30b5bdb07210e721b4e9033fcffee3355024e867ccca0b331963548a85127d0c1b2e07d1052a748ad42a63e901e8c", + "6c4c0f5518d26bd1cce5334502b85a111f54bd077d6ecc471b927e01800e2624c0719df2e1bf09b326a841b09562ce0f7677bdc97e58f09162c16f4d5f94b2dac18c2aa5967adb41", + "0321c6e0f420925b2c83bee4dda92c3d56b8a720d5621728de581d62305cfd2bfbee70e0a9d96a5cc8738c7a735fbed64e6ffce1c822be4e40a5f520a67b0fbf8b4c5356db1ab8e6", + "c58e76cd3b15a15719ba015337a6f2b0f3aceb0d068c6bf090d684547eb09aa22bc88d82588556b3e66c4ee033c7cc83a7f6574b5d61d7acc69affed5b04ae18a40b46072cd6e50a" ] }, { @@ -670,22 +816,30 @@ "78b83cd46b21b498c5a05db7da6076478ba462f3c9c18a20ff81a34c71b31625f7488d637075cac9190042bcbc24e5f5b41a3a4fd0609b8a00", "02a992b934299e26bbce14852f2454196014259ce365d662c1ccc98ef97e0c173e5aa457f6ad8290e9e17753c125648012c56838422bb8d380" ], - "pop": "5fd4c35431c9f969a12ea17df0e082aeef02061727d3f133ed07af97626edd704878486b4d497b7e0b1dcc8d39d3f236c3749523290e511180501f0db75d9b2694aea4021a2b74c9839fe0b793dfe785857d4680a7aa00c5c3cf43033da57a7f56f373d597b5871cdc81f6be464dda4f37", + "pop": "185e40178a7d4b843274e87bd6b529f15a304781ab60e93b4d753755a5fc584c7ef687484b0426d9908c1f08f08a091b869d439ca14d797b00412fb632ec00a3324da6fca602a0ad14fcb87694fc5927af8b2764a540e3a7428bc3c2d36ce3d463e5ea28bdd1cf75992163f5b0c2053938", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfaf57a96451cf2a4e3720ad624e8398c17a08fe36fa5fae928ebc5de2ff0398f9ecfca8aba829a7a8787a4e8e6cee8cc01a41a770d99b25a4a004ac05936da38171c3e1b7eef9d93bb2ca3569b25df11c48d7bf02c73075ee6385412fd14ea4b61c760eef16cf1a1327833bb1d1b5698110480cff3d0f07b44847eb5b1942bbba2f7f11b4911f6053005a8bdd3000dfa28e1569a710723956df1f359eb271435eb862321b6cd929cf1e8d900e9e0802651e9b36dac99687f4056e90a9b9f5d001f7cd7d1af138d3c066c00bd83c8a21d23596331945d859ee2bd483030571463c68eba4980ce8f62fea597ce355ce5fd315c295a138bbb9b1e50f3b66acb483d596d4a56dc54158d2a0e0eb38ea3f1cd584512cdf8a2fb979f6e696e650078b83cd46b21b498c5a05db7da6076478ba462f3c9c18a20ff81a34c71b31625f7488d637075cac9190042bcbc24e5f5b41a3a4fd0609b8a0002a992b934299e26bbce14852f2454196014259ce365d662c1ccc98ef97e0c173e5aa457f6ad8290e9e17753c125648012c56838422bb8d380e7ed512a84de47d600ebcf5d6ab4b65300b8af99c0bde8593ceb8edcb2a5e65683b480398cb09ab98f8700643b2724815ed7ba3171a4fbfc00", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345ab809e83e0874180403bf9898583de748e605b1308f88a0cd818a3830c659a91502ef04a71b6f8f4cbe0d10826013e81f8a1c7207571ad3563f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfaf57a96451cf2a4e3720ad624e8398c17a08fe36fa5fae928ebc5de2ff0398f9ecfca8aba829a7a8787a4e8e6cee8cc01a41a770d99b25a4a004ac05936da38171c3e1b7eef9d93bb2ca3569b25df11c48d7bf02c73075ee6385412fd14ea4b61c760eef16cf1a1327833bb1d1b5698110480cff3d0f07b44847eb5b1942bbba2f7f11b4911f6053005a8bdd3000dfa28e1569a710723956df1f359eb271435eb862321b6cd929cf1e8d900e9e0802651e9b36dac99687f4056e90a9b9f5d001f7cd7d1af138d3c066c00bd83c8a21d23596331945d859ee2bd483030571463c68eba4980ce8f62fea597ce355ce5fd315c295a138bbb9b1e50f3b66acb483d596d4a56dc54158d2a0e0eb38ea3f1cd584512cdf8a2fb979f6e696e650078b83cd46b21b498c5a05db7da6076478ba462f3c9c18a20ff81a34c71b31625f7488d637075cac9190042bcbc24e5f5b41a3a4fd0609b8a0002a992b934299e26bbce14852f2454196014259ce365d662c1ccc98ef97e0c173e5aa457f6ad8290e9e17753c125648012c56838422bb8d380e7ed512a84de47d600ebcf5d6ab4b65300b8af99c0bde8593ceb8edcb2a5e65683b480398cb09ab98f8700643b2724815ed7ba3171a4fbfc00", + "nonce": "f5ab08754779965560797c64d71c97d13489f86370d676a171e20eec3bb3895675664bf99c4220f93c89b7fabf791d66c3d6dc5b030fa707", + "nonce_commitment": "185e40178a7d4b843274e87bd6b529f15a304781ab60e93b4d753755a5fc584c7ef687484b0426d9908c1f08f08a091b869d439ca14d797b00", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4837185e40178a7d4b843274e87bd6b529f15a304781ab60e93b4d753755a5fc584c7ef687484b0426d9908c1f08f08a091b869d439ca14d797b00f57a96451cf2a4e3720ad624e8398c17a08fe36fa5fae928ebc5de2ff0398f9ecfca8aba829a7a8787a4e8e6cee8cc01a41a770d99b25a4a0063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfaf57a96451cf2a4e3720ad624e8398c17a08fe36fa5fae928ebc5de2ff0398f9ecfca8aba829a7a8787a4e8e6cee8cc01a41a770d99b25a4a004ac05936da38171c3e1b7eef9d93bb2ca3569b25df11c48d7bf02c73075ee6385412fd14ea4b61c760eef16cf1a1327833bb1d1b5698110480cff3d0f07b44847eb5b1942bbba2f7f11b4911f6053005a8bdd3000dfa28e1569a710723956df1f359eb271435eb862321b6cd929cf1e8d900e9e0802651e9b36dac99687f4056e90a9b9f5d001f7cd7d1af138d3c066c00bd83c8a21d23596331945d859ee2bd483030571463c68eba4980ce8f62fea597ce355ce5fd315c295a138bbb9b1e50f3b66acb483d596d4a56dc54158d2a0e0eb38ea3f1cd584512cdf8a2fb979f6e696e650078b83cd46b21b498c5a05db7da6076478ba462f3c9c18a20ff81a34c71b31625f7488d637075cac9190042bcbc24e5f5b41a3a4fd0609b8a0002a992b934299e26bbce14852f2454196014259ce365d662c1ccc98ef97e0c173e5aa457f6ad8290e9e17753c125648012c56838422bb8d380e7ed512a84de47d600ebcf5d6ab4b65300b8af99c0bde8593ceb8edcb2a5e65683b480398cb09ab98f8700643b2724815ed7ba3171a4fbfc00", + "challenge": "ceb44926f95dae9423533e5e631e81fa75a6fb2fd309c5cacdcf85ce8d526354c7fe06d6542f1104c613777dd7452d8dfc353ec4f9bd6513" + }, "encrypted_shares": [ - "19c5f7c7f3bada1d8b198950f4c206a139551aa3f6f69311c01b270d30665f757867e18e861f1c5da11be30be086822b3810106083f9b16230a6dd65cf744aadf7278ae6ca01323c", - "ddedd2d68c04683949b2bf32d7836beb2a4755fbd637686bdaca9eef0a4a880cac3b4b4e413c3c50b23b110c2a77330034e81c06a49e1ac718cd3fa32faeff63b02e0bc3741840a6", - "0181ea2a920216a69bdf1850fbe92e587ed882d3e5ff65bd899fea9465f458c81244d52aecbd6a930839fecbf070b989190714861f8149b3fbe3ab0598c848051cdb5c526db121e7", - "27cdc8a13c700c1d84935a85b3a0c6c78ff5a67ebf954ff84f789238fc255df242c16da0ffc53d0dbbd94f2346491a971db145e08cb6c1505d980922979113897daa1ff2575726be", - "7fa3f85cea4841b8a3423d4a2236ab22ecbb7c93d4cc31c6d8af1737385f48eecc8eca82189e4108e82def3fa9df0e25ba6c6f32305cc1a4452b4c03fbfbb015677d9683c91c2bbc", - "8a8fb226f8681f757f2883af551ceb3b20bbcf4edd99657e08d40d3b1a3dd81ad1878547e39e1c390cd4f89d1a9665f517d7d8a547eb35b029665f6e90941b9b68e8218132373a11", - "44f64171989d853f5add7723e919a20b1312deca335232ce0e6dc924130490096159adcdf5e2e6d232029b0e9fe46f2fb0096462057496e25c25165ed23adf8aafeb00f70f195d13", - "f4920c8f95b99db2961be815a5c93e61461e0db263f1ba7d27181b8937c271752aa784b322c60bd32a5f06d09f0f8f588186153aa80e318f340faa71f28cb2a501f398c37428e1de", - "24d32a80e38447f2a5031ccc320181e2548ac846c9f22be716d298270ecd98cd22c733ec760cfa3281a06bb440b77ad07f7c56b42e0f52aa07308c7a71a1b7e1a0b8137daefe09cf", - "ed105cf11429a3a886380477166dfe94208137c63e688181d440ca3832c5490ef61274af8ea9d7f32b4c980365bedd880074c422efa518a1eea5055c2a232103cb0c68d1cf1e82a2", - "c673ecb32797dad90726414f0d6505494d1c94d3dd1c66f8dad83ad648faa2a1026a8e342754387bbcb518de4080c074a5d3891725254c2826714763985c7622fe85b2e5c277a0a6", - "88dd8c16975041ab3a227d5d1e3460841c1111f00a36e322210044aa5b7bab639af61ac393248f56aa6fee6bb4605248ee4f817dd5173c9aa5777860a4f70a0bbc5ecb2f4966bf14", - "db7a1e58788979fc482a3ec1484036b3a8cdebdde56fd43e39f93a6bce6ea3f80c2ba69feb8d27ff5a308d43cf2f32dbc433bcaa0dce325ac580511ad0d9ae1bd1b3c4576db122e1", - "4397dd3d60fd1dd8044a5a6828417e3b9d1453c40c905a6ffdf628e0d8719e53ee056e1e1717044200f743ccc0ce599b854f318641bb2fe0248cac7ff675b9affea0bd51a0e4d9cb" + "368b21c0d0cb34b761c63299fdbf0198ab4223967e324ff76c2ce5ed36a85d0cf50e112d4df3912f546d5df4ffb68f108168a3400dd0e677b4be9d405baa328e658891a8a679edd1", + "1bd58bc0c476cbb6e490994f3922f0d347a89ce976fce4d2c114996e938ad76c2bd73f184a420f0e14f5a93e8992bf09db6e4165b4598aaa20de903659ba0b11f28e717fed0b05f1", + "727af4dd1fb27fb1fd6c43a22c9998a6a698f95dc53b53e6e61f20060734edd4e9c0b6f5eff62df130a2bf4271774fd162e8bb7a99d7ee8c5d123b7ed2134ba0270cc59d600a2fe0", + "c00e33247ec8879b635d58b169f8ad8047431b14738ab796266ee9ca89c45aab5781c1521b683f7c98dec092bb1d24d3d371f3e87e7352275c4a833a6758d6035772e116d2a855c1", + "0411ecbb14c713c828efe5e9484673ca576d5f5c3730df0afc7a0a46a666ce83199399566ad66e1cf132e893053fcff205cd3a3aff8b18dbda15e14f74aaff21b8db0043e7335be2", + "ced64b554c7dcdeef43e95f9240a85b53a12065edcd7e5fc4d1c2dbdebc61d8de922a83319246062bf76eece01be7e04c2ec24ee29782ac4b6c9c42c42f06331e92ed781a720726a", + "73e143c38db8f9d7ab54d713c9605b9c19fc6fb47ad4c0c4e87b3c6c39c40c1f34fefba6e9c11a09a988312aaa225da0a621933c0421091cd377ca9494e459820c6d2dbbd055c53e", + "f2b18da525417f341e48a4f374f7c0a406a16c38328427842659e075bdaddd183760aa25a452b91f6b50262d827e235cff8a784144c3575d1f912e66b1b7a41b2ad06d54f4f142c2", + "caa1a5ea05fcdc2f9e8940bbeb94ddc7b2541a88a640312bef8a9257959f9d72b0ba0e3c9c5759b469e5869c477df91e352f56dc3f5778d37615e6db091cbfeb81a62ace9ae434dc", + "5581e42598656d83337cfc3574bfaffafdf9d55753d2966b20fe1d6ddeb3c2703695e3c27cedf5d682dff1e5030f76222e4e1ea5a7a50813bd3d12ebeb379ffb19fc169a4e49170b", + "9a3d0f548438f00876c78d53754b9066d21c03e7f5d6fd7dc5dd14842e35dbfd645b1a6812a5ececf9ae0a964995e4334d572326df2d55fd5ccd9f69ef137aa7f80db43cd607bdf3", + "603bcf6850752bb3aa88f3106cabf9bee9c6e1255c4ccc1076da379aab82100875b15e4a01dc25ab783f5d24d5923d12cd2a8d3a06ac97001ed1743d4f76d8ee5c19ee14fee4a063", + "472db86eb18f05eb16c22d6ec896b388c41c3e6e6ce73968afc0d949ebe6552ffb69ff3f438749b2791c006e42b47fdb25dc2c066e2157cf8cf38e0d82113e36fb264742d5e9c4f4", + "c74363f2a6f7f4910509795505f225d995b1b833d083399170f5fa4b4f63bc69febfcea70c320124692c9239a366151037e08b105b04390c77bb0376d47f3a4476060aec474020f2" ] }, { @@ -700,22 +854,30 @@ "394de8e569d7baefb0e975add0ee7e25312b6f5d6d26574b4f45c43e62010aa49e20639c4cd5e2d79b21ef29a2f181ee6e5281414135f99c80", "6b75f2118ffc5221679066a713d3c6b3bbb9100b5067442f4179f2dc3981d34c49c4ba2865d82e719350cb36fc2ae98ae01db8cf7f95494a00" ], - "pop": "f16a13cbbbd01b222cdd7c5fcbf77c4a99de03bf486835b8f7a47ee5cbc891d625cd8a66c56a0d669b0356c216a9005a8828ca09f121d2848032cd0332af80e631775f8c41b6e2c3d9b158079b0096738f27b5f539d0ba8cd62a8795ac2414fc4501d8d6f467f01f404612b7a3d8e17638", + "pop": "b8762b3c6e01eb75900c365e9b933005620e4de44f74eac54c45122b75d0f1317f0c29f61c75777de84bf7d35d8611810f1613b6aad32722009d877d7849f76580fbc905d0e49884d790f752635f4967e21cc5d71a25470f980144e76e157399588d18a419a975474ac340e51dd5875020", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa9edd33e1bf7a50babc09bfa0bcca27e282cb2dad7fc5c6a17fea85c499249a8f04c4da8116f41b9ab4cd1e3b70b0811e8717ce22f6d3e17200300d691bf48b2d7d2ceea2fcdd18d47db21a4882d7f028c18f6686c850b95eb5d5ce8ab291650e3fef4c2134cdae1419a4e72857fdbfbacb80f436031ff2c50043384b18a96e96d61afdc55a35c38ca6d9423fd07cd1a3fb6c2a69642c60ae36f22aaafd22a3d37eb1bd64ed0215aea80680723ae44c479cb986a3557d6f74ec802dad3e694fb8b5df36e900a76ecfa555ba7ec70f0999ac0cc63524b07c7ae0cdb090714e81f42bd0fc80c370262f1788fb5609fc90f1d9166f174e640b79fe7cfffbf1fa90115b171cea956e384117947d3d1f4db9df9576cb42b6886f894cbf8a4b00394de8e569d7baefb0e975add0ee7e25312b6f5d6d26574b4f45c43e62010aa49e20639c4cd5e2d79b21ef29a2f181ee6e5281414135f99c806b75f2118ffc5221679066a713d3c6b3bbb9100b5067442f4179f2dc3981d34c49c4ba2865d82e719350cb36fc2ae98ae01db8cf7f95494a0046d46541fa0e8d6b7716c761c676368bd10f2a00a227178d5c629525b9f68519414cbbc63f5c3b96402af02ca76c12bf485faa622b833f2e00", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345263f519da35d0a3eecdc526ff9119479720e696f20d6e958b56de6244ef4fa094d6bc9ceb49be709a753b720305f604b59c52e6197f5722863f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa9edd33e1bf7a50babc09bfa0bcca27e282cb2dad7fc5c6a17fea85c499249a8f04c4da8116f41b9ab4cd1e3b70b0811e8717ce22f6d3e17200300d691bf48b2d7d2ceea2fcdd18d47db21a4882d7f028c18f6686c850b95eb5d5ce8ab291650e3fef4c2134cdae1419a4e72857fdbfbacb80f436031ff2c50043384b18a96e96d61afdc55a35c38ca6d9423fd07cd1a3fb6c2a69642c60ae36f22aaafd22a3d37eb1bd64ed0215aea80680723ae44c479cb986a3557d6f74ec802dad3e694fb8b5df36e900a76ecfa555ba7ec70f0999ac0cc63524b07c7ae0cdb090714e81f42bd0fc80c370262f1788fb5609fc90f1d9166f174e640b79fe7cfffbf1fa90115b171cea956e384117947d3d1f4db9df9576cb42b6886f894cbf8a4b00394de8e569d7baefb0e975add0ee7e25312b6f5d6d26574b4f45c43e62010aa49e20639c4cd5e2d79b21ef29a2f181ee6e5281414135f99c806b75f2118ffc5221679066a713d3c6b3bbb9100b5067442f4179f2dc3981d34c49c4ba2865d82e719350cb36fc2ae98ae01db8cf7f95494a0046d46541fa0e8d6b7716c761c676368bd10f2a00a227178d5c629525b9f68519414cbbc63f5c3b96402af02ca76c12bf485faa622b833f2e00", + "nonce": "70b254ea70c1e0b1044da5430e918e3e5d911eb8704013f1101d707eb37ea393a0b032bc8332a2237d233e1e9ec82b3a2b4f0596bfa9cb16", + "nonce_commitment": "b8762b3c6e01eb75900c365e9b933005620e4de44f74eac54c45122b75d0f1317f0c29f61c75777de84bf7d35d8611810f1613b6aad3272200", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4837b8762b3c6e01eb75900c365e9b933005620e4de44f74eac54c45122b75d0f1317f0c29f61c75777de84bf7d35d8611810f1613b6aad32722009edd33e1bf7a50babc09bfa0bcca27e282cb2dad7fc5c6a17fea85c499249a8f04c4da8116f41b9ab4cd1e3b70b0811e8717ce22f6d3e1720063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa9edd33e1bf7a50babc09bfa0bcca27e282cb2dad7fc5c6a17fea85c499249a8f04c4da8116f41b9ab4cd1e3b70b0811e8717ce22f6d3e17200300d691bf48b2d7d2ceea2fcdd18d47db21a4882d7f028c18f6686c850b95eb5d5ce8ab291650e3fef4c2134cdae1419a4e72857fdbfbacb80f436031ff2c50043384b18a96e96d61afdc55a35c38ca6d9423fd07cd1a3fb6c2a69642c60ae36f22aaafd22a3d37eb1bd64ed0215aea80680723ae44c479cb986a3557d6f74ec802dad3e694fb8b5df36e900a76ecfa555ba7ec70f0999ac0cc63524b07c7ae0cdb090714e81f42bd0fc80c370262f1788fb5609fc90f1d9166f174e640b79fe7cfffbf1fa90115b171cea956e384117947d3d1f4db9df9576cb42b6886f894cbf8a4b00394de8e569d7baefb0e975add0ee7e25312b6f5d6d26574b4f45c43e62010aa49e20639c4cd5e2d79b21ef29a2f181ee6e5281414135f99c806b75f2118ffc5221679066a713d3c6b3bbb9100b5067442f4179f2dc3981d34c49c4ba2865d82e719350cb36fc2ae98ae01db8cf7f95494a0046d46541fa0e8d6b7716c761c676368bd10f2a00a227178d5c629525b9f68519414cbbc63f5c3b96402af02ca76c12bf485faa622b833f2e00", + "challenge": "e06491505973b71435c35876a1547b214199d250e88c20494ba9930826068c5e56e54c9ed2ebeb1865558b831e2afbfd4b52480b14bd6403" + }, "encrypted_shares": [ - "06442b2c4dc98007bce0b2ee125e0427d559d275e1c15cb0e2af5246de7c48cade61b6defdfdadb6b1773c3f0be38a0788147a190b21dcc176ae312379b3f46725a613568c8091b5", - "d37736270069f41035337f78e2fd0b246a5464028f2d0de7ca5d409d37ff4dcc56543bbca2a0d66793a2b73f5dbbc8b051477b67b3f0bc2e6aad3615a26ba98440ea77e09de6cc29", - "dede861e69cf981e426edcd4dbff7ec29fcbc52617d3c4f94839f3bc03566ce5f651167f9788d2987386fdbc080717a5d3a9a6c13823ed69697a9cae94ab117c946f79f1085cc0f9", - "4a0fd29d3f334e7d1f113dac709517899e91ef218aee754c49426590872e6051a824a08163e899f8c5c4602049ac6a8d194f53a870e327485688e9e799562dd636b3d9a88e6305e8", - "833c23cfcb3bbe49c334fff5d4d7c00253aacca53b91cc544e50f2204d8c5a67c13ec2a349fb6d14f1a24832a3a4b587c64b15aff554588da6bad997270517f1720ac455fef5def9", - "02d8fe547c8f996d455db8a00ab701fb675f0e5e4de662aa6c6b6871570c915d9705666701a6f462255606130fa9965f9fb236cb6bf72331335c353264f8e162202e9827601f72e2", - "8760fa606467e5409e1de37eb210140bc2a39c6d4d671c6f944f8aeff7a9b9d56b9308ad964b6aceea8464d41b12bc26e05f07a59e16219d1e7ec94a15c57a54f5d7bfae0578a827", - "716b958985d36e91cff427878b7261328ead04b47c8fc5021b5d92ee8c8109169b798123899bf6c781c2bfedf364006f05228a945fe20e5036162203ea7c794ad51148f72a6420ca", - "4dc8ec991c83130918940651aab43b2bab86b0457065008da5fa1b6d9766d801a91fc856ab46a89c456da2f7f1bffdf5e9721bba62cf1dc95b9b15ae979eb859730fd21ef4ee30bf", - "db03991f770ec5845cefe54ed713fc34940ee6bfe84f78a48f9e0d67513046a2f8d31d43857b831427781978de69d844e211d4d2404f491ea1be94e39206da230d5e6251bf307421", - "82ca891308a21197811fa7d5e8ebb0bf3c279bd63a2eac3488b7f0def4c8c39151ba434ef0082b9f273bfc7f9fba2ba65a6204b4f03861a6e370a6407698e9abe98b3f4e72270b4c", - "4d738f4683cffb5096946eacf28a6f15ab49c8536790d1e30f5e22204a0e6efd324f832062542bc62d99520516e38dfa7c2b5a29c78d3daed5a0305c4c7e15274df264f39241880a", - "72c1322c91a1260d8bb0b3c0d94757dd99f4ff3bf3af0fbac107df99c8ecf014ac9c57b7c9832969634fb8f706871e454a689cb184e1e81cd80a454653fd98f1b46f8f268fcad968", - "48d07d3f69d7a14215f3ac178ebb24bea8cfb831e96d6f23bbf0befa1b8b2cde5947aa892be6069db0cc11c50d364c499c26c6f751cb51eec474de95e85c40ea69521928b96cdc13" + "943a5cf9800681f62b213cf9f72c63ccde95324125e3a62b7357cf4c5c3a698d11cd6e9a1cb77de65b0b642bd5f955443c07252595357b649e95cb8002f0a6c127e434879ef87af2", + "ae46037897c09793b25789f0de6e3edc0ed31381b1034b17e92b1f8078c7f26dcd3d73be1252365eb4520d84102fbf20dba567466644b71faed4b5bf288201a1de98056ad7ed3a23", + "ec4081ff6676f7f26f7d9e877ec8aadaec636bb09537c7b69a55c6f5d540b7c1117f2ecb005915d689b6b6a11ab16f462abcb105f2f189abed40cad717aba04ad6efac865e7d1d7f", + "c50c63975bc1cd7d8089c272745b49da767cc06139e4d1ff6a4f0cd61c80b5bbe76965c8e1935d60ef6087bd285e286afb52764ad46c9cc665a4585ae3d00fbdf7fbbd3aef7277b5", + "31742720b5cebca7289ca688e529a48ba3a80892e90efc4be8e43cc7e67d03b620e830b9218aa70c8867f1ff01c623af42d719c8abc7c6e1712eed9dc234c206e5391b0492ffa81f", + "e687b170c958c45436615a9b299ebc992a3b92109be86692844ca0f5e271308b89e5bdf9455f93b7c3535303e707838aadbea3bfc70fb33b61a894e23cf2186c2e610bc07791cc90", + "73270731bce3f7e12c9bb1b19f05a27aeaeb2030ba98d3d8742d956b51bc86620b382802c8cd048eba10d05a6afbe85f576ffb79d4b399c9064d191e1f077b311a07aa7227a173d8", + "5b3e526d915cbcef74e3df3fc27e2bca5a87f1b910c7e64ba092c758484d06f00960bc089fd1f5ca61514320ea80d5077032ba2632f1ee39616a482b3245d866f0035f9774ee11f9", + "19be19fbbee420802a4f52b864cf2aa4387a792a177faf98784d21c89193e0a61a0e84d622f93e8b3561556f3fff08ebd53af4fe67f8a93d70b59c38202868e8aa8d7995169cb3a7", + "c77fa3e64d91fa02ab612a6189a8961d5f0985a7a8f9b857a1c4877ebc1183101555286d1801687e8d9ab3d893d6640e515a445a4c59c3da4bf4179814622307b37c1c76e87577eb", + "2ca0d149888cb2e96e35cbcac363175f1fd7eedc020dab2d9c2192a5971f7f1763ac2302486404dd6621b94bdf3098650dabfa5ee24fcde1cc3769b9f1eea78bfa505066b0dbad35", + "7dc0e41aa528ad6afd2d454c1fa2dbee40e88c285b0603ccc0c57a7f8c7204baface25bbed4ce6b26becd996f608d4d84672d3ac4692ad0c162cda522ef32b67053b5a5d2c4f2a75", + "e21dab2cde6f859eb4b9f0e1632bbb5841337afb22b9bbc6853c5daad89a4d1672a83d268aeb921980a593850b514314b270c8c7412e81fafb992ea305338476be21ac5c6f588f42", + "2967f69733f4d03ad20137106b7af2df4e06f5a3b0286423ddfa61a741c796a0659ea21d2fe21fe64fa5dcbfec04aa888b22fe9a48afbc154f614cbb1335b1403516d645cb07f04c" ] }, { @@ -730,22 +892,30 @@ "ead3803c664f7475fdbe8d418a90c3e731d04ffc69aec0553a3ac381059c284dddd6b65e50195d2f78d2b01ce898027d75a966439950a94500", "3bdf88308e6d78bad22e5a2fe3cb6920e986c89e7d20d6ea3d1a8b29db8a8a4db6e2812b5e807ba4e2c71b7b198da382cb2fb995645a96a780" ], - "pop": "e95f55a24027de14953852843833decce0748f05822215703233180dac396632f9c24ede51488064c1a7175cb06e03e763feb5f6fdf6621280dfcc620ce13d2205d3a6fe2e99baceb94931245dd8f714da1d53dc87c8a90881c661bd631cdd54007b48b2a0c12ac403872e9fb1d4a0cf0b", + "pop": "b9ef6e5a295ed916efcb586ec19791c4d9b7e8f06f7aa7db1e2e10b5273af9390577b23457f46052329c4b3f7b24616b6a05a20c4c06e44280b4b37c835aaa94833217e5d4940fe8157b7b132285696d4b1234ffdb1f17900cf84367bdae11df2c6639b88498fbb413859c14bf0c2fcb3b", + "pop_intermediate": { + "message": "63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa7aafc3a58036b9d6da677333c3cffc9abf886db654ab94eccd78d684949a91fa46dc3b06842aee9036797d48a08e375be2a1925ea20a11f88094661e62c8e0b74d069035bbdff8aa3d6fde7cffad6d6619b2e02d15acba6d61c36f2cebe6ed81b3341498e3777906249f350f717a4e268280a4d489015bd4fa2751d4d5e837ffd706dd736c8c4d6da56056ea1bf12ebc1ad4941acd91e65c521c046fde6ba4e195b466350779badca32580c80ed16cd2bbdf842034a68d2af71e779f1d47b725028339ac35a20f04b2620c7f4280032df26a78abc45b5660bcb667d7a3c05c16f0a86e00f043f706aa0557156ff515fe89390838d7a0df97d1b345c8130188a2d4d66c3be29139a06afadbdcf75f136909ab16157d700e79918c343600ead3803c664f7475fdbe8d418a90c3e731d04ffc69aec0553a3ac381059c284dddd6b65e50195d2f78d2b01ce898027d75a966439950a945003bdf88308e6d78bad22e5a2fe3cb6920e986c89e7d20d6ea3d1a8b29db8a8a4db6e2812b5e807ba4e2c71b7b198da382cb2fb995645a96a780cc7f164a9c0d0ccf8f1953d7b4e8f2f16f4dbf93e9bbb95b1d03c7b04a19b88915900fc2f32242fa03af3c8e6733b9671e4ddfc58eac56ec80", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e43459dc4e7deab3095b526fea88a3268fac170e6003f17a43dc958a609ec144c3b7b21b437adbeca61538687c838ef0a4eaeac2831ed6869fd1a63f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa7aafc3a58036b9d6da677333c3cffc9abf886db654ab94eccd78d684949a91fa46dc3b06842aee9036797d48a08e375be2a1925ea20a11f88094661e62c8e0b74d069035bbdff8aa3d6fde7cffad6d6619b2e02d15acba6d61c36f2cebe6ed81b3341498e3777906249f350f717a4e268280a4d489015bd4fa2751d4d5e837ffd706dd736c8c4d6da56056ea1bf12ebc1ad4941acd91e65c521c046fde6ba4e195b466350779badca32580c80ed16cd2bbdf842034a68d2af71e779f1d47b725028339ac35a20f04b2620c7f4280032df26a78abc45b5660bcb667d7a3c05c16f0a86e00f043f706aa0557156ff515fe89390838d7a0df97d1b345c8130188a2d4d66c3be29139a06afadbdcf75f136909ab16157d700e79918c343600ead3803c664f7475fdbe8d418a90c3e731d04ffc69aec0553a3ac381059c284dddd6b65e50195d2f78d2b01ce898027d75a966439950a945003bdf88308e6d78bad22e5a2fe3cb6920e986c89e7d20d6ea3d1a8b29db8a8a4db6e2812b5e807ba4e2c71b7b198da382cb2fb995645a96a780cc7f164a9c0d0ccf8f1953d7b4e8f2f16f4dbf93e9bbb95b1d03c7b04a19b88915900fc2f32242fa03af3c8e6733b9671e4ddfc58eac56ec80", + "nonce": "142185210011bc8c3392f8b30da29455835dad21b26ed426989d89f103c3eae9c2fcc98dc2b29b8a037b960e4d2ba1a0517cc8b19f548d0a", + "nonce_commitment": "b9ef6e5a295ed916efcb586ec19791c4d9b7e8f06f7aa7db1e2e10b5273af9390577b23457f46052329c4b3f7b24616b6a05a20c4c06e44280", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4837b9ef6e5a295ed916efcb586ec19791c4d9b7e8f06f7aa7db1e2e10b5273af9390577b23457f46052329c4b3f7b24616b6a05a20c4c06e442807aafc3a58036b9d6da677333c3cffc9abf886db654ab94eccd78d684949a91fa46dc3b06842aee9036797d48a08e375be2a1925ea20a11f88063f15411e5cd39a93bd75abb0b1e99afe8d5febed68b8e07a2b5fcf10eb53ea45ebf185c06a6a0eef409fef2b842273e0d936ed594844c7256e52b044f305bfa7aafc3a58036b9d6da677333c3cffc9abf886db654ab94eccd78d684949a91fa46dc3b06842aee9036797d48a08e375be2a1925ea20a11f88094661e62c8e0b74d069035bbdff8aa3d6fde7cffad6d6619b2e02d15acba6d61c36f2cebe6ed81b3341498e3777906249f350f717a4e268280a4d489015bd4fa2751d4d5e837ffd706dd736c8c4d6da56056ea1bf12ebc1ad4941acd91e65c521c046fde6ba4e195b466350779badca32580c80ed16cd2bbdf842034a68d2af71e779f1d47b725028339ac35a20f04b2620c7f4280032df26a78abc45b5660bcb667d7a3c05c16f0a86e00f043f706aa0557156ff515fe89390838d7a0df97d1b345c8130188a2d4d66c3be29139a06afadbdcf75f136909ab16157d700e79918c343600ead3803c664f7475fdbe8d418a90c3e731d04ffc69aec0553a3ac381059c284dddd6b65e50195d2f78d2b01ce898027d75a966439950a945003bdf88308e6d78bad22e5a2fe3cb6920e986c89e7d20d6ea3d1a8b29db8a8a4db6e2812b5e807ba4e2c71b7b198da382cb2fb995645a96a780cc7f164a9c0d0ccf8f1953d7b4e8f2f16f4dbf93e9bbb95b1d03c7b04a19b88915900fc2f32242fa03af3c8e6733b9671e4ddfc58eac56ec80", + "challenge": "9f50beb9dd409efd9f558082d99b24e4fd8e692c55e3676c6429eeb7d63d5016d102a685c160e7861cfca024d18a3197758a3751182c7b24" + }, "encrypted_shares": [ - "597d27dc7bfc99455c755061f9bc04c048277e73d7a46b799460c20b40d7e67706a53d71ca7165cc2a66cf5743eb7428c60a72c426687a30e6a1c8931d09e9c965f88416919950de", - "0908fd8eece2df4d73526232ff9d2c4600fe6858d13f64d5819a3a698ed8eaadf72b2eb2cf0a4408ac9af0fe5b8d5162aeacfd78caa26d4683d39cba6bf2df701b6c15c81f1779ee", - "315be96ea5ad987951362ac548dc15312803a1d358570a28979d3ff3d2f13f9a09f54ac20f0c5e7de03826013f84dd528badb9111886ed1b5a2cf5c3d0fbfdb159c175fa34c58dd0", - "c131e8892fd5d7cc054ddeecd49062fcfc4b26ecc3e32221253d3aa9fb196718db93c620c7a7d889179b3dff787b3afab727c3b9e07bf47baa630ec7168ff0de77ada00580d6c33e", - "021bf643c0dad6a2bd8b8a360e907c17b64d6cdd8024469118a464fa92d6509cffdfb92dcd60c994a36d4c265d4f635241251a48bfa1aba1dfb21fedd5031cf5262545ce5e1ae259", - "8081e10fec90ed827ff6ef9beff37585481e0b6c211a7caf2274fbd5ee548ed801a7aa11924679552dc75a4003a151a551e8464485b0e56a58e340a46e022de66c637e45fbe8a557", - "dc0a3b3dfd93a7f52d888ac4f918cc772c619efd58e733b66ea2849cc3de29c6a6151015f8633bba5150ba3d61063e27b2e7b4daa45e1be2378dea040a3c9a3ef1e6fbf9f6f5e9c6", - "405d04c10241b70652b02dd2603502984c8de90ec7187f036edc416c1182fd5573de70dc98461ea4b55b2cc2b513b86fba908fb1c5465b0c87b3d6378ed62c8df45da3ad36a83e16", - "e0ce1d394da22738c8446a091ead6fc45353f68a154cdb53ffdf0ac1fbdb14bb2cbe5523cdd44e8d5bdd90d4dd1daaa8bc747b439b8eef21199338c6bdec6f879bc7f95a86bba324", - "1909723b9f07f8ccdcbbc62a8ffcdac03eeaacc392dc9cc051aa95a70a0014613f5df2cfa137e88eac3f894d249db409e39607ea768c13bbb122e9fa22939ccadca4910e6e3e502f", - "958a0eca27c6936c5a821b0aec86ed4c47eeb94d41646887e73c00aba9a85ab82344f83e81ab146d6e421633fd053c121d4139a1ba12b31f7ea8111d011a125a04d77616277c1688", - "994d0e1929bb7e2e1b559d18286c2dad0f1fea6b2aa9b66021cb957cb13dcbb140ad5e5a5f43681884de9836276f566e14e0cba8b46f109910d58b1174d5fede689a52c7a0517171", - "326badbea302e11b5373573d09ec21f9d991a31b0ea029f5da55c0946e77bb42e98b4c0d9c630c10dd644d00b035bc927fab7e1b214f25324931c5dc707338d940056919bc267216", - "778c6bec605e25a8b30d7e348bd76e642a5bb5061c24fab05f20c02242d6c06aee257a8f4701304fee82b1b9ce79a4b27a32bbb922c72078f6fdb922b052d143c2bfe5eb22ab33d8" + "03789c463e75b01edbd7fbe28549c18e52b1583b8f1d764f1dca2693e831592b4dc183005f51ff73f1e25406145fa9835ad0b04134fb956b973eb5440d97906bb5f902eeb7e5962e", + "a64982359d5ae77bc9c8f89ac9105489c8897463d30f92d486a4a966b4b2170b3d923662a04d4cd66183301dfd7b5d6398afb48f2aabd00ad7691dabb929439e67a1b3ac434f1c66", + "f80b091f006d592cfe8d9139e1137750aeb6bd0daeda5db20228fc1357676639cb9e9e2f1dcfe6388f40318e0d90b07ee5eb73c5815babef559bf623223674d5b70942849f64cfd3", + "d16bbb63e0d95aa13799e66019e1db45ded03fae115c454c273113fbd21edeaca6793719a38ac89cb1f355a60bbb809388a9cfe4d12c9a886fcd90095b6dbc76a5c04abaf3ca15af", + "cef8a2f46e3fad0ecde908bf8a9aaa9c6128a04592a378b330d1e5eb70434ba268b430d7af93885c9ca33e906462a52d8f65869552a360b3602cd6ded3b8dee68d4306b0a75a5850", + "4f69b3b04e93d40f3a307c092c1298786445467c58aaeb886789d7ab3a526ec3e83c923b949680aac056adfa699fc164a29a665cd824c96fd58311f88a5c0c8379a2806ca5d58774", + "ba7a3dac8c1da1489ba3d0cf0583e1566b8f057e55ba2717e963ca209d5cbdc86a0e8d55748a88095ee9df4db2ed9a1e24b850d622cf33be6f80a80eb8d68b453017ecaedfa96506", + "4b9764fb208bd08253989904b16dfc1863833d3ebec9a7e43c684a91b0177c994d0c48a898cb18377cf3274fefb962c735653e19643e6dea28655197512220bb8d3a5599c43129ef", + "d8e2d2ac9d5c877e9930f296287e3cb30770df9ffa72a3c3797907069a526dbe6181d0526b01a2daf758c0316c98a521a4dd20613ff98e8416e9aae1a3c6dbadc188e2ec7e6381b4", + "51d68e7e329da48bdef15741fa48c811912d3b9d86910f0329cf5badd9cbd645553cfb70d971cd5861dd4716c8d7ad9b4d152b8aa00b891bc35f5bbf7392c4d1a238b81e505cdfc1", + "31729c6e99220397bb8403064548f2d442b66b6f30429fc005257637c22e9adcedb7a2d2347c79cea652562a010746b11ed9402b47663f52eb4dbf4514a4ee855a00a124ed2853a4", + "71abcb880967d347f5a48b3866b0a15ab918a442739c03912310f257dd6d32c0ff29ade2122f493daffabaedeea01fbeaa9983648d7b27e54d148d8f72ad9b6714b1cb5ee7dfc607", + "138cd15f386160838d36c342cfeafb38e875e27faa11cab7393e16d97519772b4745d4c4a6101c0e51d731887c56548efe309501745a12cb3e23b155d863366f916b4931248cf980", + "a6347b6389eed51e10967e7895887e79c6ef78ece58dfe634c717cfdd603cbbb0e99dc75eea23938a36aa4a3c842011030d27e6128dd88d0ea14d85df824db1cc748bdc797419816" ] } ], @@ -822,93 +992,74 @@ } ], "round3": { - "transcript_hash": "6d23b915f67d0da68c5606996b2f2cc267adfe4f43e5a3feb0c1518c397bbf0a58613a729d1d06dd0e6fcf114045190e33bfb5c38cfc75e9a669a4eeb84d12bd", + "transcript_hash": "6b1f9b146f5b66252211a9d93171e6193b155b61debae566004416eb4265111d553033f2bdc32394b92dea0e0b70390383bebd8c40f7d8d21ab848230ae258f5", "signatures": [ { "signer_id": 1, - "signature": "fdad44a1645d968a5ab34509c611fd585a540206b570bbf6f00bed444671e60c349d3c86abe984334b5045b365a22a10781c8b4b41ed5cf500b349028f512d1aa28c14b27dc1065b4a144e6173ceb14c286feac9fa2f00eeff8a86780ffd78969042bbac64f712006584db7a573390de0a" + "signature": "43c163db65746c0bdd9559663b9c322d8fc5dda1ac4feca7372d4cf930823361df3358ecf59cc12951c6dfcac794cb3afb3f4ca7ff09fde100d49e18a798e4447463418271475403f200837e2109217433dd03d238a59b144edec55e30284429f7815cddbfa84ba1f89e76c2fa6464b33e" }, { "signer_id": 2, - "signature": "b75c5acddbd0c8a06d3c58647348823e77aa5dad73363906888d460f048d84dc8aa23203ca2aeda13cb3e450ca201cea8102bdfc84f8cb158019c817ab0b13a157db0ba2f9adeb786e54e4a30f346c7cad42b30695af73d9f8670df2c892580b9ec384fbd8dfcd9e395393f000150a9334" + "signature": "a2003b0f609ca5e00ff48449af246c8a57eed1f706be7472a19c4c510d3eac2552cfe81ff4721d0e68d5778a0cacd685b4f1fcc5780d454080dd33c7b975f2c449d42462752068f53a92ce53afeaef43ffdc6e1027c97ad92f93bd17db28bd1155fe0c6ca8d534e67808002ce36a44d406" }, { "signer_id": 3, - "signature": "fe4aac438800d341aa2f53aa1f4667797ed09b187365d391cbe98dab0271bbddb8b5c2a34eb4ae1505d7efd2c541fade43a43223487e3ce480aeed584b26794640895d40795c8aa7c9da194cb57126ade8a4474070fdd7726c955879084b4e41e1ea3544649021af287a6af6286c402a11" + "signature": "194d51f838d3636e6b12c8a573dd00fca810399ab13bfaea3bba1ca95a49cb55887ebb98b3a18997ce1e599abb984680fd8b99a70071aa1f808e1e4adb8b515fecac6bafbd7c63295985d91f5db18982a7c0000cb6cac900c1bbd8d06a25e8d56e0166e9670497731097be2deac7853c18" }, { "signer_id": 4, - "signature": "185334282338fca3e10780eac187e4026be03315818b46ff4150c3112a5e7488435aeb6d4eeb115999e165d63c197113cbc19ba7fdb5d99180eb732b237f1a4e4787763dd9e80b01c642c20fe5cce813684380b5a3eacbf3da4269dc46c3524d8e6a3cbc7b811df981c4c9dd24138e653b" + "signature": "bd9534b082d456bd7ded1f54073fb35143fa026620dfa9c0b050c45c79576ab0c1b7f1aadb21724acdf5a7c0e5b4f27c0866b4138f9e2b75803073a30fa0b8f40014c920ee28f96d1c31209dcd5e6b8d052deed1e9d1f78c0dc250f6e99d0717a66e440b7b86b7675aaaa3b26cc1ea9d14" }, { "signer_id": 5, - "signature": "6338cfefab60fdca4f6108c97a3277ef1b1f743fcf57bb39e31f45e18663819a6f13fd7e71de0e127d0816b7ff8088b08a2a36f6066ad7cd00b530fe6c9be860966458ebf8e3830caeffc64178c1719fbec10c6ccee1547394fcee35210102faf6b78e264044853ced1be9b98fb3e49d3d" + "signature": "ca165efc8c44ab29bf5d93831faef746ffaf624f418db5df2940843e317abcd0283eea5b1739f3bdf203a3bd441475a63e88171c5f05ac34009e8feab97826d43669ee1200763ff09c58ce1d474486a5bb81a0c97b129f200c9170c0e19b2e74d70bed195308212aa8743bcce944ff1d39" }, { "signer_id": 6, - "signature": "b149971a8a91a54db593b2e5a2a894cf579c3d9aa9ab2854f00789d1619db5bedf5916fb96ec46ff4db688a2e2a70b2c7909e600dd4b485a00d555aa0a324bec6c35cd5ecc6a41da7b25e7989eef39c4d72693c929913d277e74789d34fca07d8080d92b9fba75be1254025ca729c0d926" + "signature": "bb960133e42de2fc069ff1432ae80044db4f09809080459cc062576be5aaa69f313f2038bfcbaef980f670cc42cbdeb33a6902927729fa4d80dd623d78f4da8570046f88f71b48b174eed2d5c07e71893e15dcb96d1c9989c8ecf330473380c810d2a24143d4e701e5e987f72753519f37" }, { "signer_id": 7, - "signature": "030c8ad6180f546c7173c5a17c451299935260cff1901dff614a985d3b28111c7e87ee1eea44daed90dd2356dc8c5b0cc5535ad7e024ad3e00223dcf88916c83228c5eb7ff1b9ccb12ba30a1954119924d9cdae00d2af142b9d47237b963bd27656fe0392c199257edfe16df5ab00a2c18" + "signature": "0200c84d567b29a998d5c97fce6610ef85683dafa5284edb8d819ab21cc77fc6f1491ae03e00681a9265aec5d4c8f9c75dd3c801aadedb9900029ec75c7037211b47df49d119a447cfa306b28ac7b44753d8aa6efcbfd93c3530a8937bc9b90676cda59e3381ef3558d7896ca73fb3341b" }, { "signer_id": 8, - "signature": "409c6264e89b40cbd3be5115a18ecc488a24538d71d3678389b4a1261b281b902595c5a549dca786c26ed08e7ee8c899fad81cf000e82e60004e6a9e9f8c0943d803da3d5ca6950578047af76264e5a73eac79fdff8907e1e1b683b7c88cd7bb3075a7ec7be4ddb41958abe0be2464be3a" + "signature": "868437d6614ffc49feb004f15d816a249dc5bec9cccb16d833d2d59f55594046387e61b463ba33a3c01bb26b2637fd4ff4950db364bec55080ed4db762bcdc834183ae7f044a897d751a199528d61403907a8424fa90097a0924bf3b9087b725efa539bdec146f59e7bb72370bdb983a32" }, { "signer_id": 9, - "signature": "98d3af71b2dd5d1539ac932be7f5c0fa15192af35d49f9f4286612058d78a3ea30079913137d5458f6b15e8a8a38fb62356d9186620bd55f007a12ccaad999bbbf807f880f8e04df36b7ace6bc329d6c2e2ac8c99377f77db51575f0572a56f3f9b5f09ad4cc47bf7940423c8d3c766b1d" + "signature": "f585ccbe08e17b0439c0bbd74c756da4106ac358ee76f25bbc6bde22a765456ae35360523f09ce5fe7250d1d5c8b264b8d9e1027706b588d004845351b9510a8d8a62a51c35772407f0839ccad48559ce1e5fd77628b0ff104bedf451b755e984bdb18cc8276e24a1caeeb939a4b6ccb05" }, { "signer_id": 10, - "signature": "0e40333970ac589ebdf27fded596525f94d4ecf4a7d3f85a12a2a8c2b3a30359627c7fa58a5bb274dc2873563ea2227e7d9ad6e5b9b231dd008a9aebda2227b2fb15e3dad115814f64d938b18a34a89ec1ccd775e86de9ed73017d92925e73ceee1206d40ea24e56e6c3007162559db720" + "signature": "be1833f4f3bee2ee2280564326910f4151c90d369a93acec1a91db609b168da603f259288312c4fe99e9def7e5db6b6f9ecc86c5a13c1d1b00569bb90d3f62d4485ccc3a2a5ddb56e77b2b6bedf41846732d03a78697c7bdb45795d463f650d6d0d354cec8e05b1d112a66491ce20fe528" }, { "signer_id": 11, - "signature": "e1ceae95a1d7e781325890f307f5b1009cfa748e3c714167f355e6c7be58cd2e33fd9f91c6fff0f9a78d1f2063910360adc8b566310218aa800347f4788232daf586b5e5db5319f26b687b523f109e45c35480a060cf64cc60ea9a758977b18fe2680bf8be3cf0a71181fd43a5f5736437" + "signature": "cd47a2b8486e1c65d8511dcd5908e46f5bea34f00de90d12077e19dd2ff3041faab609d062edb6beea8996ca25d0d5c0845163f61e2deace809ce6efbb46a1d678efe80221f7d2b110cd6f05068d28ed24ffbb6fd67e9adcff094852c6b7fab3c2e566ec5367525fdfec8aae3a060c1213" }, { "signer_id": 12, - "signature": "befa1d7f2fd4a8961a7175018e8badd4d088256c976ecc93a0ec238592a2f213e7fbb362c9357465ab51272cbb713bd69f51d78da65f9b3e80017935ff4e0cd1794735d5575bc711e3620c16195f87bea3e20c43317fa97cb8dd66b6dd1dcbd8bd10f73c66d9958dc1c068f02e9989213c" + "signature": "49c8a12023e9af5f5430fc3d1b4a4e43373abafa1841a3112884d4f17168d0c932ac0d48275aba7b8c79ec620e4dafd7874c6705480843c780cf949051d64381dc256b5e3e58a903e9e7c6857082ed8564d680468e7e40516c3ed3e65951b48320a2af136e314b4cf343d1da624d5e3739" }, { "signer_id": 13, - "signature": "c8f76eb302d484fb94e0e8b5d6824702d4b90d08a87890e77336882902b9bb823ec91a2f99c8bb46ead0d601d3b3f1082014b4a50e869e6c80e829131b00233f0efe4b4203f0c3d70d344f78d851cb32d8a02a768b30ea68b89aadb920a2f267e7d1a7448946ada8b75375a385e3816a24" + "signature": "1ea8b41c0472458f989e1753aa86cb856d3dfc81b9095c10a57e7bd285ce2bb796e8e57df91e7bda5782154e28633f18793a7c3dc53f7dce80aaa278015598db15bd6f83c4faab4e03fc0adaf44b9c49a8cbcf7d60668ff74e9ac1e2d4ace55f5fe42252a0d980f7bbfa71f8fcc94ae00e" }, { "signer_id": 14, - "signature": "cf07f523959f0eb867bb361fe2cdb5c7dcdd27ba1b3ea935d3471bed9c823d7062b915fda4723b8b35296cea9fc308e2065c660d5424c208007483366697eaef6bcc1c526e251e809e5a47d27c9054dd187b85fa48f8b406fbdf03346e93da7be9c12e82004a1a36c30e2f7f9412c9be27" + "signature": "94afbddee57e56bd3263d26c74b0f12e11d1bcd92a49f478427b5668429af7e2c142d391c2b6ce760546929cf209970988aeb4062083d63780c0c7e59dbcbf60993c227aa8058ee4e323ee12ec2f8d6a9601479aa8e31c6253066bb4340ea8df4c9475fec8f04e16e5af8f0eb622ea080a" } ] }, - "group_public_key": "5d2925ebae890f415b3d7e4de139a278c03b42155240a5279cdecbd79683caa95c75efb94beeaeb1ee1ac17b56762aab98a07cbbe8b1ea2880", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "7d5c24211e850a054f0a2b9aabf5ce1f80aa95e2d2a797d0a184b56be0532b98adcaf3774f3f9614c3d1ce4ec8b96b94ba1d629cd8358cf42701947736c0aff1c4aa85a9226ede32", - "8f591a73233805516437315798255ecb0ccfd59ec127ae2557b8a88261fbaad60a22ff201aa7d0d6e41f585346f16eba07c804c2b021cb2a9d1f08bb23fbc8a87260e60927720851", - "47e2461dc99b8c26b4e50c182a30198687661fafac6e3a6fecef11d98adc424c8af217a640f9982ab6ebd4ec5725e7a54ca866fd25b9458a232bf65901ce8df4ef7d3f9368da1fa1", - "4d5faec8f6548aaacb1e383ef74f654654ce7269ae411c2f5c700fa50a2902771ec56ba664cee0a43eccf8ba0e59850a22bea70c64373a91f9617db9e1653174c7cf47f0aae25665", - "38da0c8a47a718b1907bf926859d833598c8827e54c62fc48c8a7490fb85cff68bdebbf36175a899215f06064119e79b41b63c053d6a7a8ca0bd52a5530e6b037f2438aefcf937f3", - "22c57be1326e9319b37140a1ae0dc40e827f1e3e8615a6dad1d4baac03892a840168116ff163593dc5424bba561b2b65377c32135419660bb1854293553dcd8ffe10a23b402a891a", - "23825b68a85df15d5da4e2c406a830dddc0e4fb1fadd6e623fc61b8dd06a396da6566a078499811bc33fbcecf59ae09f508b9dfcbc02001f70f9ec5d5893893373a9235ec3e0d3c0", - "eafb9cc1809a1dfcbdbe2c5e8094fdd179724b86dba2bdc2c85c376543805354a98a54d20f887d3f6ed203c025a2f807bfe932c210756f32ecf13235b00323b7dcbb27169946a2fb", - "2824b58765e92ece5a6f5cd42dfe23d66d621268b7c550e81a9b497ab2b7308474876c044d45c8950f085978ac506785b078bfe03cd68410b84ce0c46f3a85fcdfd9d86e72ffa920", - "ed04b46e4709ff00756db20f9b6f617e3ebd0ad3809add58542ae7b667f8a08a82ef5f13602096c19619f3211d99cc7acf3f3e2c2cd400d06253a324b8ca5f4f13e7547da5b27045", - "b5e0fdb14237dd80b1707d6465bc579e2bdc76be5849ea4059e9b5b750783dd1fe1af69cd0e9e4cbcd7d875f143d42df6705c3e8667d0287e3dfa72d769844767aa53559bea310f9", - "19c5f7c7f3bada1d8b198950f4c206a139551aa3f6f69311c01b270d30665f757867e18e861f1c5da11be30be086822b3810106083f9b16230a6dd65cf744aadf7278ae6ca01323c", - "06442b2c4dc98007bce0b2ee125e0427d559d275e1c15cb0e2af5246de7c48cade61b6defdfdadb6b1773c3f0be38a0788147a190b21dcc176ae312379b3f46725a613568c8091b5", - "597d27dc7bfc99455c755061f9bc04c048277e73d7a46b799460c20b40d7e67706a53d71ca7165cc2a66cf5743eb7428c60a72c426687a30e6a1c8931d09e9c965f88416919950de" - ], - "recovered_secret_share": "59e3b1728224e5f9ae7e1ce2cd84fc9ee17bfcaaf41a27e076a49ae9a514ed3a2cdd78492d61004b86ee0e380d3e990d8f740a9da3ea0325", - "recovered_verification_share": "99c1ee621559234627fa395eb2706284bce1422fef9fd72486b0dcb046f9fb813cc5362b1174476f81e7c9e2a2fb6108cf7a6a3d6f97333700" - } + "group_public_key": "5d2925ebae890f415b3d7e4de139a278c03b42155240a5279cdecbd79683caa95c75efb94beeaeb1ee1ac17b56762aab98a07cbbe8b1ea2880" }, { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b", + "extension": "bd5ed7dbc074e1736415137dc37fa450dc819bc04875f2f2be2a90da191e4b45830e42e4e253b5849fb92d214e39a7457c2fd2a26f69bd6eede9e1ac7905e018", "config": { "static_secret_keys": [ "8f9a9270561d0dbaafbc08828f30d41c342a8d4fcc5c364d7768ba75b168e4460e0a353d8fd189a3c4a6b22ece601173026a888cd4c46c28", @@ -921,6 +1072,11 @@ "a8f4d91d754e65a13cb2ac8fb824647d04c4b8fb644455d1aef16fe81ebb7d1f0a3d85ae60ddb1dcdb04c37feb2fddcc400803eed7ee4fa780" ] }, + "payloads": [ + "4ab5e09bfed3b4ccfb24c108c420d54f4567020f8bb6a0bf29efdb2b79ea976c921e4b5edc73d1a745b50804a62b8fa4ba0ecceaecfbbb83ce2cb4c79149424e", + "ca2b1ad9bdafdaadc828ba80ee91be92cee16e98b789380abae93edc80064253e83b182ef59e10d6f2ae6924bd91d88f409846457082e38be9d6bc90a65b8584", + "1cb879893ada07cf4912bab4e2da53bb6ee72629f716fb6378eadcc882587a2838757b4d3fdcec0469c2921d92eaf537933b9ae9730428305ce6a1675e489ace" + ], "round1": [ { "participant_id": 1, @@ -929,11 +1085,19 @@ "15e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a980", "4c13a6f8080c3f08c36664400a3b960159d37193b3ee17e720411060670230e2c9c5e65f73cc2b7df3963c2e94903bb0694d2b088889f81b80" ], - "pop": "87183bfa98556a7c5cc69c82267a7679f17e800bdd13bba015cfe732319e4f30ba6cdc128779d6d642ac4a718dcb0786747da65e1c56e10080f3b3fb3a37fc2e8e5c4da38a8562572c9359bc4e9c3c456a6b73da6d3bad322029061f3834fc10acc65115c4444e1ba42424112716ef5f36", + "pop": "62b40669ae7665b03589a38b4a5d8632ddf518fabb9d93c2f10c2706a2367304c226cda52b52a28cf953859147ccbb37d4841202e222b06480f50aaa8c0759f28d76c6e7484040f820fa47c9e46635413d038f371fee9be7d3b6faec626977aae430a45043a14e3ce7b6e466ed07c87b3e", + "pop_intermediate": { + "message": "a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b15e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a9804c13a6f8080c3f08c36664400a3b960159d37193b3ee17e720411060670230e2c9c5e65f73cc2b7df3963c2e94903bb0694d2b088889f81b805cb00e361b4fb9899e697c9119954ee6653db626d871477d5709a32cb090c168ddb84f04fbeff4da8af843db873155d0a00aeef285ebd8cf00", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e434525bf8323b7fe34a283af79ab873baf2c0b3c01db5b5b6ead507a665681dfd9e69d7f9fa19d5d4a603a264936537ec65865dc4cfba890882ba0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b15e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a9804c13a6f8080c3f08c36664400a3b960159d37193b3ee17e720411060670230e2c9c5e65f73cc2b7df3963c2e94903bb0694d2b088889f81b805cb00e361b4fb9899e697c9119954ee6653db626d871477d5709a32cb090c168ddb84f04fbeff4da8af843db873155d0a00aeef285ebd8cf00", + "nonce": "9e743a7b865de69953e757281d800c9c5f68b6dcf47df2faf87992b85a79ee74de66db32f600fda53e7c874dbf52c50504492ae9325a4128", + "nonce_commitment": "62b40669ae7665b03589a38b4a5d8632ddf518fabb9d93c2f10c2706a2367304c226cda52b52a28cf953859147ccbb37d4841202e222b06480", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d483762b40669ae7665b03589a38b4a5d8632ddf518fabb9d93c2f10c2706a2367304c226cda52b52a28cf953859147ccbb37d4841202e222b0648015e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a980a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b15e1ca99946fb8a729f6f8ce12d9521fe5d352c2a08dfff224f450a085a3cb78c25f3ed74e12a8721541c63427cafea873c829ce329595a9804c13a6f8080c3f08c36664400a3b960159d37193b3ee17e720411060670230e2c9c5e65f73cc2b7df3963c2e94903bb0694d2b088889f81b805cb00e361b4fb9899e697c9119954ee6653db626d871477d5709a32cb090c168ddb84f04fbeff4da8af843db873155d0a00aeef285ebd8cf00", + "challenge": "53db84bbfc58754edf0f3549997fc95b795f22dfbe6cab226d451da685a35663005eb2c0cbe1781ed727ce9f58cc00869e545ffdcd65ce21" + }, "encrypted_shares": [ - "4fd7af4723dba2d8764084938c8c84415816e20a51c1132446aa6e6edfe2e4702167513b1d328a7090b6c6dfbe247151b2a583cf14e701ce1ff495cab56fb1c39b6782fd13faade0", - "7080e0795eb4bbaf1042248c665d6117d1d39d1fd86d1376c3663a3813443815e0ab5b43202b1e9b3dbf00209388697200afc38126ef818395232326240ae096211f2c7f98f6c455", - "36c30714468f58256584af5281532783802f4efc286abf5548d97e0689df89b4f95e8e4ddd1bb2db9a53e7daf9d34285f976e4d2078c9f93a223fe39ebdb805e9a9c046e8dbda1c8" + "1c502c21f0648647fa8f638f7c2d4bb6cbe528df1182dd0887623194cd3e8e9c52a75b1f730380abecb26687993103fe8a54cd29fc07080fcd54d83bb3148c12eeeb1161769c1bee2bb0ea5a8576e678f46e32b228c2e1508259b834840cc5eb481ad13b6b9de5026077cc1d460830014d1e2b78dc4000ee85325736a2f13b26d0f89ad8715f09d2", + "3d708cad502e403ad59d802f40d782f6f0006d58f85fbe7aae21e1f228a892813be0b0cd4447cbf756d33b16bb26916340425a36de4049422c545541182a20126565d9ad993235c6f4c05d8067a40818bdc6cb974407ee9e351eda425b04bd038f23a2ba185255b78e62da4e9f22310b1f9c1029e433bfe27bdc9611eecfae6d37f0fa3bb612519c", + "bd4eb02a6ea99fc7b1ba6c1e62e8961384f9399a849a15c896b5621a703047066a99280e9e0334803f63407f444781a3f2ea136cb1dc7aa60ce8aa0f5dac2ee80140d4c704708d7732a01e52f6f55f48df522d194c9506fd85417d83d19332dee2dca8345c67dc53e79e0aff8dcd984de17c9d0d513355829f563bedc5a83504463f516a0edc53d7" ] }, { @@ -943,11 +1107,19 @@ "2d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a80", "90c87d53ef1ced055c12de84efbac946ca2db0c34cf84189f9ff659ffa7c728dbbe94f7a53ddb3ae778fc3daffdd63919d7cb636787950a880" ], - "pop": "bb042f76395f458209ac2ba947ec861fbb012a55657a94cac2effd743932964aa6a8ac27a368edf67b6c7c85457161805fac3ae74fee104200e71aba46fc3ab8f0cdff2da308ad912405895f2cd2080758a6f0a2bbeddd17c3263edc8d86b61bdda0fd3a413348b5930b7baba2c9c7df06", + "pop": "6d700d6b16b0be86f21605116d93e748d2067557e42851863e42c80986267087c415b1115dd6b3f246c15fd623df39763c3906a61ced473100ec3f52bedda4b4dd8626899af0b0e01187cb34ecad7bba44cda598b80417743736e9971d147f434d657424cff2d37f054edbfc142c794015", + "pop_intermediate": { + "message": "a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b2d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a8090c87d53ef1ced055c12de84efbac946ca2db0c34cf84189f9ff659ffa7c728dbbe94f7a53ddb3ae778fc3daffdd63919d7cb636787950a880eda1980924ec258c7bf874af55dcd61267229bf0ebdeadf7b933a278b8c555896dca83c73aa00900393f53dd6a445212e2ea967a6e3deca400", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e4345255c46345242e841bdae1d00b196677f2caa70cb318f597a9635b269df5252785c88ae6a0547458f1f211ca74ebfb5f314163c556ba3710ea0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b2d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a8090c87d53ef1ced055c12de84efbac946ca2db0c34cf84189f9ff659ffa7c728dbbe94f7a53ddb3ae778fc3daffdd63919d7cb636787950a880eda1980924ec258c7bf874af55dcd61267229bf0ebdeadf7b933a278b8c555896dca83c73aa00900393f53dd6a445212e2ea967a6e3deca400", + "nonce": "49c41a2ed85d228e2c23a0668b4cfa301b1740f6aa5054427f4eb6096a07227ecf4d64b4056f39c82a71db6294c152988af985c2c628e136", + "nonce_commitment": "6d700d6b16b0be86f21605116d93e748d2067557e42851863e42c80986267087c415b1115dd6b3f246c15fd623df39763c3906a61ced473100", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d48376d700d6b16b0be86f21605116d93e748d2067557e42851863e42c80986267087c415b1115dd6b3f246c15fd623df39763c3906a61ced4731002d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a80a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819b2d1409f0782664e7dd00cbbca688fbed33c989897ed432768ef6243ec47fa80c3cc2e4eb3775ad625531a9220e20a137fe2aa3c22746214a8090c87d53ef1ced055c12de84efbac946ca2db0c34cf84189f9ff659ffa7c728dbbe94f7a53ddb3ae778fc3daffdd63919d7cb636787950a880eda1980924ec258c7bf874af55dcd61267229bf0ebdeadf7b933a278b8c555896dca83c73aa00900393f53dd6a445212e2ea967a6e3deca400", + "challenge": "006b50b06c73c7dce8fceb74471f21fa563c9a918329108e76401c9c281739617de78529aeec807948efaed42dabf2970a2644af3eb93a26" + }, "encrypted_shares": [ - "4ba50472a8d1a23146504939e7536275b56407a3366ee20742d34eedd301ce76503a32b4b4c6986e4ff2f068951c78085bf9da7f944c06e866d551a735031c4da80a5e7b72749960", - "1f57fc10f6b00c12cf7617ca48d48f4741837208cd733e14f2b9a1195db5eb694134d70448414d0b00ca894cabde49b448f665612c07955a8a2f3e3b1df2634185df46d32a83b128", - "1a951747fbc3b3568d393a5ae6ca0c5224713b7233f3079bba562a45386582c6ac9087c2b6c80d5e4b1fd8f72f6eb9de1bf0b1fed762b76fa1901cc8953247c46c298b43df323f56" + "6b644860a7cd08a0d44344334535c3b35be87f3027c903e31d81bcb76711d49de691f22dfe21563ce0ccb23d96e246f5a66c83761dc95346a656f743b4e494a70d9343c9cecbcdcc67cafadb8478ede89dee3336db5d12431a9d58a619531f0b83e204303db4d1cec617c7429661743d9a53ac68bd7aef6f9b010716ebb5ee9460216d5673b19304", + "d21f423a0d3bf07958d516191730f030a39913357ca27b371b472cd1b5afca281644fefb7a940014c0299c43240a01f355f26c448e87b59c3adcaa22a375dc1fc8f7886321cb91341d5502bfd39b8db246269d60ac341bee87e0ac8dc80c494a8624a60da9485e31eb0e3f9fc255fdece586296c12d84009ea0c55e45872169719efd78a3fd5ce03", + "4dfb15a741684afef67fa11731880f2fec0c1bba298bde93321680c8c63cdf9353646b23a5175828a3187f5009ec0aad18883cb306e8820d08aefc69786b50f62acc47f66343df065056b0a072a00f6f1a61e09ba160ac94e3bc5abe13aab2264ef1cd72f2f2dd758c12699f232733040e9c249bdfec6d4d14402669299e786ad851f2fdc886ced0" ] }, { @@ -957,11 +1129,19 @@ "aa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800", "f61d56f5ad99f6da91d9839d22ac1db8fbf1174dad541eeaf0683f7e0e2e2d01af6eca2dc274d5e5d36393b16495ea7a2498978440548e0480" ], - "pop": "c56929d3c647547a0743fddf840c5d8363b3b91772a40a19c33a2341a1c2ad6158d6ae7537ffb5e76dc35c93abd276c7526bcaf90c413d77003c98f93f4df09d8cc22523fd1e7524cc134ba9bc25114368ff803e2e108a98d76f1bf2bcf5974442325ca5939c09fb8226e9de86d703fd38", + "pop": "4f61052474da6086b091abef530eae062d46114e579d55fc786d5b4006b2a9625e7b0726ffef8069c56f9560dbdecccc14957c35d0efaadc80a8934bf9dc29bc76d774392ccbf223650c22e27bea1aa01a5f59fdb617029360cab9b9960391cb7daae71a89ffb8d1255e90f56522203c38", + "pop_intermediate": { + "message": "a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819baa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800f61d56f5ad99f6da91d9839d22ac1db8fbf1174dad541eeaf0683f7e0e2e2d01af6eca2dc274d5e5d36393b16495ea7a2498978440548e0480c834a23189953612c35719f8241c93724cf636022bca8cc24087bc384fc8d00a37cf0e11bd6e9ba55808cdfe00df98987d7b10993b1430ed00", + "nonce_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d4e4f4e434569b9cfcf5b70080b78bffe42fb52374ac9ac92fd122e4919d61e7192d5755d667f48a8b7a86372217e8ed9bfb33a55f47aed4308f0c33f3ca0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819baa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800f61d56f5ad99f6da91d9839d22ac1db8fbf1174dad541eeaf0683f7e0e2e2d01af6eca2dc274d5e5d36393b16495ea7a2498978440548e0480c834a23189953612c35719f8241c93724cf636022bca8cc24087bc384fc8d00a37cf0e11bd6e9ba55808cdfe00df98987d7b10993b1430ed00", + "nonce": "dd719be27466d3902a2e7266f7008c8271c659e200efd22b03f0b8f2565537337d8b7e982ac740de7330ae4d505ebd7dac472c19aa3de63e", + "nonce_commitment": "4f61052474da6086b091abef530eae062d46114e579d55fc786d5b4006b2a9625e7b0726ffef8069c56f9560dbdecccc14957c35d0efaadc80", + "challenge_input": "434f434b5441494c2d444b472d45643434382d5348414b453235362d48374f61052474da6086b091abef530eae062d46114e579d55fc786d5b4006b2a9625e7b0726ffef8069c56f9560dbdecccc14957c35d0efaadc80aa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800a0a28fcf236808477bd4c41487f07b3cab2e805a9e814111ed22a172aa0cea569a2248f985639b5f45a7c5d084ccfc435d7be5a2982f31648a563ef939ce819baa33564f9b792d22b0fa052a94e3b8a88bb91d6dd672b86fcdd46b1908d1f10cab5ccd8b3ae4553d346245884d2c17b522ff66ae39a7ab5800f61d56f5ad99f6da91d9839d22ac1db8fbf1174dad541eeaf0683f7e0e2e2d01af6eca2dc274d5e5d36393b16495ea7a2498978440548e0480c834a23189953612c35719f8241c93724cf636022bca8cc24087bc384fc8d00a37cf0e11bd6e9ba55808cdfe00df98987d7b10993b1430ed00", + "challenge": "b5418395ebf69ad4d83b24dc8d657a8b6c85495d573141d7728a0cab00bb898cd020aa08b005ad257687f9e2786b059b8855a85cd66e9526" + }, "encrypted_shares": [ - "f17f9ccc4b6f1b1100abbf1ebdd79eae0eb19640ecb02961858cc1b75a6426536885806044891a6fd98e88ba7cacaea8bb39ee4b91b86cf0e5424c4498405a73735447f4d5d7e7c3", - "09078ebb9856a0b83b6f73cb6faca06b3bd0c399871b95c666414e56ef091f83d6bf5e6761ba7972973d782c4d92e8f4f67f233003a29750411c6516cc5744a081e477b90c1a7e8f", - "6739b2f76690198325f2b98d7c9f8be991ccd270fc439b0818506c29c0c55757a95dd20f2e88df993f3a4804d2d1fd652b2f2015e18c1085814ed255d968835728a0da8820dc979c" + "7e62c26b5a37977adbd34aca1fa31c8ebfa6e503100452fbb7566c3441fc74d500dfb9265cd2899d56ae3fe6a05c4cd5a331adf3aaf77e2a5def2811aacf7b73aa3f7a65b7930d5a030a412c389516e3aa3416405f620d4c4d50de6f1463d6641ff87ded227dcbea0efb24079fe9fadff3b9e79b049a1bd52f9e856178806aa9077d472f84c88c3b", + "324ec6d10d388107909e6b99db18a1f7250c902636fae7e2c833da9e0b7b50e4e54d71f5121ae7f900964f501e8cd38feb52279d743beb1b46ebd6d8ccf407189d631dfcc4440e32c5e6760e1eeae727f1e9410e7aacd2a8c6ef5295d7243519180ef593713e3dd6456c0bb23316b9d39f2f0cbcb00dee50dad1244ea087d8d3b8f72a4c9b41f568", + "044ebd7c59cdd2818b13f45d5fea042208a62c83917fa6e4b8240d0060027d2b2c84ce1889fe1907b9807d89985fb211009e529de43ecdc22d4dd02426ab4bd99c74d8371ddae86268dfe328112abbe6e8af7347ee439910442d339e7190f822fb11fc76c76396effd10d8edf8fcd47a4e4fbb4e7b2d2a218929eb82a7dddd7dcace17c7178cf4b3" ] } ], @@ -983,19 +1163,19 @@ } ], "round3": { - "transcript_hash": "a1310fa41f9763c1470173e93c1b6bfadbe5ff5aba7eeb2954f103850c41dc6d62b782b48fa24605e2ecdbb7b879d1f8e962a70197f7b545dcc5ccd4cce86331", + "transcript_hash": "99a4b565aa4eefcdca553e6e2234adc4bdb80863df30a18ebfc5025ec48508ba038ca45e62e94ad195861ac731c725bf66e05d4550ac71c35989661bc262a5d8", "signatures": [ { "signer_id": 1, - "signature": "0db443d6e798485d5fd200ee44af9823326082b624f80f3ef9e26f966a559244a17775a9323938684ef394b82659d30f5e4cb5fab2094a7980dc6707614faffe173bec7f1bdaefe69559cbc11bd0361bdd03c2166a22d4ac50637d04b18b1b4ff5f81a459a98e541f29dd387ffad56922e" + "signature": "be6114e38e8174fb3f76907332a84c1ef7453fad2bf5eb15e059b143d28393665191efb2ce5814b780b473c0bcafe2e683a8a5f4e33a5b0c001ee12267a39bacb4b116a48a653df62451493f37150888cbdea53b48e5065d404c76ec4988f90b32fe1e30a442c9c664ffb8cb140aa10e26" }, { "signer_id": 2, - "signature": "b6255b5a79cb16740802b742e04b0a287d86186bb511c37db7a55f5adea5d0d2f3eaf69d0461bfc854a9c528b5ed678948026fadcdbba20780bb08e2d44f4efa6e063eb18af34e29bc0f7370d1f637b735ad3499da32138286e13f744d7b527610ca99345ddd8a463649e768c1001be831" + "signature": "302bf00830b4e7c478d0782fca6fe2ec7831588097dbd49ec957d606c160e62bc49f671057abfcc7fae4620fd1377a912e09b3c7016bf775808d0f3f266c86b97a620648e545b5f0878548dd0c08f8493047399ee60901e3cda31a248f17ed756b6021c431457e782db86c3dac70848813" }, { "signer_id": 3, - "signature": "ecb2359670cb1f6194929a84d462ed3569b5471914137f7f5d372a9dd60be8768e16a9dd64b8fede5c92ffde1ba2bca605e3ea9b1c1eefdf009797dbc8beb812daa52b6c0d5d43fdacd5f812de0e2b2dd74fb9fb48f53cd772a11ffd5cfe794badbef5d78a5a5155d8e3d531de02c10005" + "signature": "decd0a993234b7f5a53f44acd2c2ffa36d912cfcd18a9226b6f060a0eb77da1cc2baab4cfdb77dfecf6b97ec1e23b7059413dfd8ba71a37b801339594f31676c2d3c05aca2b50fe1caf5f4ad699fe959e640c520df110f7566fb6bf7cc4c5c9ce557292cec8d8ce05c0850c9154aec9c1b" } ] }, @@ -1003,9 +1183,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "4fd7af4723dba2d8764084938c8c84415816e20a51c1132446aa6e6edfe2e4702167513b1d328a7090b6c6dfbe247151b2a583cf14e701ce1ff495cab56fb1c39b6782fd13faade0", - "4ba50472a8d1a23146504939e7536275b56407a3366ee20742d34eedd301ce76503a32b4b4c6986e4ff2f068951c78085bf9da7f944c06e866d551a735031c4da80a5e7b72749960", - "f17f9ccc4b6f1b1100abbf1ebdd79eae0eb19640ecb02961858cc1b75a6426536885806044891a6fd98e88ba7cacaea8bb39ee4b91b86cf0e5424c4498405a73735447f4d5d7e7c3" + "1c502c21f0648647fa8f638f7c2d4bb6cbe528df1182dd0887623194cd3e8e9c52a75b1f730380abecb26687993103fe8a54cd29fc07080fcd54d83bb3148c12eeeb1161769c1bee2bb0ea5a8576e678f46e32b228c2e1508259b834840cc5eb481ad13b6b9de5026077cc1d460830014d1e2b78dc4000ee85325736a2f13b26d0f89ad8715f09d2", + "6b644860a7cd08a0d44344334535c3b35be87f3027c903e31d81bcb76711d49de691f22dfe21563ce0ccb23d96e246f5a66c83761dc95346a656f743b4e494a70d9343c9cecbcdcc67cafadb8478ede89dee3336db5d12431a9d58a619531f0b83e204303db4d1cec617c7429661743d9a53ac68bd7aef6f9b010716ebb5ee9460216d5673b19304", + "7e62c26b5a37977adbd34aca1fa31c8ebfa6e503100452fbb7566c3441fc74d500dfb9265cd2899d56ae3fe6a05c4cd5a331adf3aaf77e2a5def2811aacf7b73aa3f7a65b7930d5a030a412c389516e3aa3416405f620d4c4d50de6f1463d6641ff87ded227dcbea0efb24079fe9fadff3b9e79b049a1bd52f9e856178806aa9077d472f84c88c3b" ], "recovered_secret_share": "692d92730a66096b0a971bfe712cde3dfacb726f94894c68841f8daec6cbb3c91df1be4a811aabd0a314d2b152156485b12fba9657637a14", "recovered_verification_share": "7dcdc0aac7e24ad54a206a03f93d086f3aaaa0a999207ca5ed1798b522f7600c8136021ccf2844eb69459390b579bb13f2c285648bc0afe780" diff --git a/frost-p256/src/keys/cocktail_dkg.rs b/frost-p256/src/keys/cocktail_dkg.rs index b3b41d3ab..a6f4b9982 100644 --- a/frost-p256/src/keys/cocktail_dkg.rs +++ b/frost-p256/src/keys/cocktail_dkg.rs @@ -63,14 +63,13 @@ pub fn part1( /// Performs Round 2 of the COCKTAIL-DKG protocol. #[allow(clippy::type_complexity)] -pub fn part2( +pub fn part2( secret_package: round1::SecretPackage, round1_packages: &BTreeMap, static_signing_key: &SigningKey, participants: &BTreeMap, context: &[u8], extension: &[u8], - rng: RNG, ) -> Result< ( round2::SecretPackage, @@ -86,7 +85,6 @@ pub fn part2( participants, context, extension, - rng, ) } diff --git a/frost-p256/src/lib.rs b/frost-p256/src/lib.rs index 0b3afd7b3..c60eb8bea 100644 --- a/frost-p256/src/lib.rs +++ b/frost-p256/src/lib.rs @@ -242,11 +242,47 @@ impl RandomizedCiphersuite for P256Sha256 { } } +/// The COCKTAIL-DKG Schnorr hash-to-scalar reduction for P-256. +/// +/// P-256's order is close enough to a power of two that direct reduction of a +/// 32-byte hash would be noticeably biased, so the input is expanded to 48 +/// bytes via two SHA-256 invocations with distinct one-byte prefixes: +/// `OS2IP(SHA256(0x01 || input) || SHA256(0x02 || input)[0..16]) mod q`. +#[cfg(feature = "cocktail-dkg")] +fn cocktail_hash_to_scalar(inputs: &[&[u8]]) -> Scalar { + use p256::elliptic_curve::hash2curve::FromOkm; + let mut h1 = Sha256::new(); + h1.update([1u8]); + let mut h2 = Sha256::new(); + h2.update([2u8]); + for i in inputs { + h1.update(i); + h2.update(i); + } + let mut okm = [0u8; 48]; + okm[..32].copy_from_slice(&h1.finalize()); + okm[32..].copy_from_slice(&h2.finalize()[..16]); + Scalar::from_okm(&okm.into()) +} + #[cfg(feature = "cocktail-dkg")] #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for P256Sha256 { - fn HPOP(data: &[u8]) -> Scalar { - hash_to_scalar(&[CONTEXT_STRING.as_bytes(), b"pop"], data) + const COCKTAIL_ID: &'static str = "COCKTAIL(P-256, SHA-256)"; + + const H6_OUTPUT_SIZE: usize = 32; + + fn HNONCE(secret_key: &[u8], message: &[u8]) -> Scalar { + cocktail_hash_to_scalar(&[b"COCKTAIL-DKG-P256-SHA256-NONCE", secret_key, message]) + } + + fn H7(commitment: &[u8], public_key: &[u8], message: &[u8]) -> Scalar { + cocktail_hash_to_scalar(&[ + b"COCKTAIL-DKG-P256-SHA256-H7", + commitment, + public_key, + message, + ]) } fn H6( @@ -255,7 +291,7 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for P256Sha256 { ephemeral_pub: &[u8], sender_pub: &[u8], recipient_pub: &[u8], - context: &[u8], + extra: &[u8], ) -> alloc::vec::Vec { hash_to_array(&[ b"COCKTAIL-DKG-P256-SHA256-H6", @@ -264,16 +300,12 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for P256Sha256 { ephemeral_pub, sender_pub, recipient_pub, - &(context.len() as u64).to_le_bytes(), - context, + &(extra.len() as u64).to_le_bytes(), + extra, ]) .to_vec() } - fn HKDF(data: &[u8]) -> alloc::vec::Vec { - hash_to_array(&[data]).to_vec() - } - fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { let key = Key::::from_slice(key); let cipher = Xaes256Gcm::new(key); diff --git a/frost-p256/tests/cocktail_dkg_tests.rs b/frost-p256/tests/cocktail_dkg_tests.rs index 30f76cc34..bd0f64f40 100644 --- a/frost-p256/tests/cocktail_dkg_tests.rs +++ b/frost-p256/tests/cocktail_dkg_tests.rs @@ -18,7 +18,5 @@ fn check_cocktail_dkg_test_vectors() { frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( json_str, |data| Sha256::digest(data).to_vec(), - true, // encrypted shares match (XAES-256-GCM) - true, // recovery is tested ); } diff --git a/frost-p256/tests/helpers/cocktail-dkg-p256-sha256.json b/frost-p256/tests/helpers/cocktail-dkg-p256-sha256.json index 0247f2b62..70333990a 100644 --- a/frost-p256/tests/helpers/cocktail-dkg-p256-sha256.json +++ b/frost-p256/tests/helpers/cocktail-dkg-p256-sha256.json @@ -13,7 +13,9 @@ { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f9", + "extension": "", "config": { "static_secret_keys": [ "fd69cd069d3ececc5e003e20ce25dd968c7da87e017bdf6afeffbae9a3b3f943", @@ -34,11 +36,19 @@ "0230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc04", "02a5fa9a71b1b96c9a3d9e004d54292c942913ad1981f3a9cc445d25f5fb5f6d93" ], - "pop": "026f3b896e98d8c2f650e3b1ae4fd043d8925557d80db410f57afc0c50d6a6c8b35ec9392d9c42d8fa6f0a6c4895c84cb4e59cf011ec4408362ca98fc5fd2be0f6", + "pop": "028a388db9d2bc450770b752873e9c4a93af426edff9a4a6f296bb8075a02ebf7015f94cd70b5d24b148418de433f6d45ea5577c25eb162a8bc991cbf37182a9f1", + "pop_intermediate": { + "message": "f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc0402a5fa9a71b1b96c9a3d9e004d54292c942913ad1981f3a9cc445d25f5fb5f6d93033a67ab40136398a659df9d5814c4c4cdf837289d8e5b86d4bdad62b151c8d8a8", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e434509bdb45a91a56bfdb6f0e7bee747e49f4f27f490c75ac26e94aac7785cdfddc2f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc0402a5fa9a71b1b96c9a3d9e004d54292c942913ad1981f3a9cc445d25f5fb5f6d93033a67ab40136398a659df9d5814c4c4cdf837289d8e5b86d4bdad62b151c8d8a8", + "nonce": "a0f1159f78a7dafbc1e7b688421e93ea5799426cee2efdfc9b73ae5312908f54", + "nonce_commitment": "028a388db9d2bc450770b752873e9c4a93af426edff9a4a6f296bb8075a02ebf70", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d4837028a388db9d2bc450770b752873e9c4a93af426edff9a4a6f296bb8075a02ebf700230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc04f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc0402a5fa9a71b1b96c9a3d9e004d54292c942913ad1981f3a9cc445d25f5fb5f6d93033a67ab40136398a659df9d5814c4c4cdf837289d8e5b86d4bdad62b151c8d8a8", + "challenge": "c8ea5d39242bc42e97b9656dcb5e645f10bbc67d17f32d2806b5f8900d44e01d" + }, "encrypted_shares": [ - "7e8cb8ef817b78873a7eeb00fba8bbced71124951500ccdb2a287ac8c27e9619cb3e3e5957811dda27dcd6d463d5b54b", - "456ddc006f4cdfadac38d5677eba1be629684ba5472299e5f1190fb869b4b979325b843a37e898778f9f8d60e48d3362", - "33c21cd7ced15c32590f3e6aa39c02e3646dd03c0dd432ef943ef07c1204a936c9ee7c2e056af1eaa83e35fb04aab75d" + "959e7f7820a5adc71a042ba23b22fc94c583b178be2ba0189709e7e6a18814d3f8b90a2e18728b28a396a38a46c52a13", + "090b34a9f9a2b01d08415411c582479dae75108f0c3b35bb8ee05185eb315e177534b8be98bf2e2f19b7b614ec63ca92", + "c3ad6ee6f45d4251b74a5a46674da38ac9880e90b1f61104daa295d5f8066957da673879f2e8eedc217dd21ed8f11bbf" ] }, { @@ -48,11 +58,19 @@ "03c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72b", "024e6022ac007812f6f218005e8d1cf8f4978462f5138fa5e984de338d2cb18340" ], - "pop": "02b05dcfffa6310cf24d9ab80d337ec92b6e12b55c120ca5fd233db432633820121e92c7b058d4e27f4964f58406e23289d1b0e1cf54ee695a434e285527e74633", + "pop": "02f56d1653a8d961ff51c6b02dcde8c0c489a05de7b137c4ae8c25eb94874f35fff40f54ab7869c6351d7b1aed060228d6ebb08e6caf6b01a2f109aefd6aa64c63", + "pop_intermediate": { + "message": "f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f903c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72b024e6022ac007812f6f218005e8d1cf8f4978462f5138fa5e984de338d2cb18340027455f1bd669585e088f19b22e106c5ac3ddb92e711784e4b6da1b7ec3a63735d", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e43457bc17a1fe7f11a0d341d3f0f418d59e58c9e7ebcd1a8cb52bee30fd05d2052b2f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f903c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72b024e6022ac007812f6f218005e8d1cf8f4978462f5138fa5e984de338d2cb18340027455f1bd669585e088f19b22e106c5ac3ddb92e711784e4b6da1b7ec3a63735d", + "nonce": "173a62884cc31cf9603ccbce9d24f5fdf85db0f192259c08598335e527976eb1", + "nonce_commitment": "02f56d1653a8d961ff51c6b02dcde8c0c489a05de7b137c4ae8c25eb94874f35ff", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483702f56d1653a8d961ff51c6b02dcde8c0c489a05de7b137c4ae8c25eb94874f35ff03c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72bf532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f903c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72b024e6022ac007812f6f218005e8d1cf8f4978462f5138fa5e984de338d2cb18340027455f1bd669585e088f19b22e106c5ac3ddb92e711784e4b6da1b7ec3a63735d", + "challenge": "9df84a241c994f4a2796e1e19019afde431773cf11c0a86d42f169747586c0af" + }, "encrypted_shares": [ - "5d7d7fa5304ca522ce93970dcedb630a9034afc1b06ac864dee3f0ab0661d824b13fe694cc8a6e462bb8472a2236f833", - "9306c022f0e15f73bfb1d686119abd5dd1a931b200df90e8c4b912e38b5c47320204f7c3889235dd10979c9318ee19ca", - "b7f270da0f5979649ede4091824441784ab4fe343024d7a091385fc2dce7630159513c3c52e97ee6e8cf599a08bfb833" + "d2c31b296ee4dfbd8da7c0ac1aac9c68f20a17524ccab295079eb008763626a83cc92fa8172d2cd236a866653dc8d8f2", + "093ddeaa270662744109428dffe781ab9e68c62160f5e821687069689f5b06e9ad61e3c9adabd0cff0d98cd026f52f4a", + "0e850d3e960bbafaad60fe6a97375656c9638e0219d8411184432a81ebd438e65263a66a76d27ff8982b0953c45065bc" ] }, { @@ -62,11 +80,19 @@ "0207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f8", "02374f3e6f1b3deda886c1e22d2e63e7644cf1bd4b234a0837b7d42c70b7960446" ], - "pop": "02fc546055185a2a01a813b6571e2ce2e85321408ce560e72febfb30a3ed4800df7c9b4be3ec4b0c24a5b02c9576639977d1c20059bc78a60dc59e62c8b4dd2d9e", + "pop": "021c6c7a620283d62ca460186b1e9eb253ce4188a7a874b0b8ca7dea3ec5a796e8e6bcff4c59b083abbce767481373504f5d3867dc6cf9fd884f3d28e2fd5a0878", + "pop_intermediate": { + "message": "f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f802374f3e6f1b3deda886c1e22d2e63e7644cf1bd4b234a0837b7d42c70b796044602a483ede7cff185665b1764c9337d2983892a63385c33b90886ba00bd13a64cbd", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e434572a32090c607af8f8053167432f88b0286145fe3ac6b4a98fc6f0f067f385612f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f802374f3e6f1b3deda886c1e22d2e63e7644cf1bd4b234a0837b7d42c70b796044602a483ede7cff185665b1764c9337d2983892a63385c33b90886ba00bd13a64cbd", + "nonce": "0ae27fc7336a053e29b78a90782fec4403040c6d4d9e387e74666d9ab88e52de", + "nonce_commitment": "021c6c7a620283d62ca460186b1e9eb253ce4188a7a874b0b8ca7dea3ec5a796e8", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d4837021c6c7a620283d62ca460186b1e9eb253ce4188a7a874b0b8ca7dea3ec5a796e80207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f8f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f802374f3e6f1b3deda886c1e22d2e63e7644cf1bd4b234a0837b7d42c70b796044602a483ede7cff185665b1764c9337d2983892a63385c33b90886ba00bd13a64cbd", + "challenge": "ca590e19ef98a53551f73d8779c6f571be034007c9c14be79e3b06d4aefc47c8" + }, "encrypted_shares": [ - "0793cbe598727514b55731e9410bde1a302cdcf675b69bf44e720b9cef8e2be5274cdd7ce33d227f1752d9a1c8a00809", - "2443816f8743ddbf215a27723f15fd2728de74c852eb143e87d57ad331f656fbbd358af9f9e306b8d06a83130af4a043", - "a774783c341fc076d2f541ea7eda47265fdf7eea2b8af39ed2df411594bab02489aba99f5f1cc812205f1b23bf274796" + "23fc21a2520a23f16a26c67bcb9a8451fc1292b10f7e4dc0f9392d6256ae87e498f4da4dea76b21bcf32f62021fc1703", + "fc79a124631ace2f1132e7646f004a00c520da61deec80245761bcf34e23bcd0157d842195128cacfb9d2f15025e7353", + "82353d711003a2f6d9bc33f3b01f16f8cd2834e45dc478c139746cca677d75b5c5054109c0d2083d161421c5f800bdb3" ] } ], @@ -88,19 +114,19 @@ } ], "round3": { - "transcript_hash": "9f20db533b5adefda4da156725577441ed2b5f51f8ebce23b5558e79012cde69", + "transcript_hash": "113d1a87a9b8220716b2f6d0bed701a593b1a1a539def6dd78dea344931f7b3d", "signatures": [ { "signer_id": 1, - "signature": "02e92a2b18287720fed0b858128ccf5a719c63f83854992d3c0d6ab47b36580e41d6c20a593b59599588cfec1ee9493ba002641d431329407d1ad7119f52155d69" + "signature": "02b4952e67071b632b36fee97c12bebc2206c509c2492e2e7f92837e567c30597005248bd38f458fb7cbaba4a040c9e0a30ed9bcfe17c5990c344f7add85936c10" }, { "signer_id": 2, - "signature": "02595981c0288661098257e74b470db9bb7d7d2463087c03b8fc9a8cc849d6a8756431f0185d01f894ae6133cf9cc5aaec21c470a5e5ab3486cbbdc256ef71ff06" + "signature": "02a4583c2fcee589cee0a1436c494a2280e69a86832b6a13886575c1333d87d8d34a1e1ccb3460e713e0933027d909c3f6956da0f4abcf01087da38c8e0ef3b970" }, { "signer_id": 3, - "signature": "03f4099cf86c3e2d1955dfdb634ce4057de3def9712603fbfc2ac0fb600aa6968e74ea6e609c4d3c2267e010c82c7d212aa6a07fc953c9e4353825d5bc61c2933d" + "signature": "02fa0050d39d4b7f902f0e19fdb2eae24eae247a5889bd25da7194c0892691546f4343c8bcfbb079626cd5f972a738c12ae5fcdca1080c67284ede359881a61554" } ] }, @@ -108,9 +134,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "7e8cb8ef817b78873a7eeb00fba8bbced71124951500ccdb2a287ac8c27e9619cb3e3e5957811dda27dcd6d463d5b54b", - "5d7d7fa5304ca522ce93970dcedb630a9034afc1b06ac864dee3f0ab0661d824b13fe694cc8a6e462bb8472a2236f833", - "0793cbe598727514b55731e9410bde1a302cdcf675b69bf44e720b9cef8e2be5274cdd7ce33d227f1752d9a1c8a00809" + "959e7f7820a5adc71a042ba23b22fc94c583b178be2ba0189709e7e6a18814d3f8b90a2e18728b28a396a38a46c52a13", + "d2c31b296ee4dfbd8da7c0ac1aac9c68f20a17524ccab295079eb008763626a83cc92fa8172d2cd236a866653dc8d8f2", + "23fc21a2520a23f16a26c67bcb9a8451fc1292b10f7e4dc0f9392d6256ae87e498f4da4dea76b21bcf32f62021fc1703" ], "recovered_secret_share": "112ffc75c88657968c290f46bea1573996cd4825c79d1422b2a430dcde0863af", "recovered_verification_share": "0314bd10010bd552adee76a83db3042a17021244f0871cb2abdd1648686f55f662" @@ -119,7 +145,9 @@ { "n": 5, "t": 3, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "context": "ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b00", + "extension": "", "config": { "static_secret_keys": [ "ff3a16d8079a4c5d7b7c268dbf918587b90aaa0074fbec26d042edde12c3ef67", @@ -145,13 +173,21 @@ "038b5133384704909d4554416b84925c0685947e13fb2197b11f845730d33dc25c", "032dccdca17741ffbe1d94914c6e89ee42894d6376a55e2955e0d81380db4cda52" ], - "pop": "034bdb233664e38df664b9b2ab32df0032d6024c2c427b85cfb3ff3c70d899854cbd3c5dd5d2877d349c0aeb40292e6294beb008295f2e5c1ee91e5a38adbb224a", + "pop": "03b5a7f0154d9156a8db33f6b27c04626e36081812372d536eeeab901ab7ac3b13f229ba5c1d1a4fd3ce4ca3adf6bf993411923dc2fe1ec657a51b08f1ab2d9da8", + "pop_intermediate": { + "message": "ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b000230c9653d27c310e24a3f268abadbcf7617dac032a3b309ccb2aaf65b3a061051038b5133384704909d4554416b84925c0685947e13fb2197b11f845730d33dc25c032dccdca17741ffbe1d94914c6e89ee42894d6376a55e2955e0d81380db4cda520352bc7412666115fee4f6fdf3c7cb9eee4f68665a5ae045fec9f679302f6253c0", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e4345e227bff3d3e2b11ba333be2502e0c3ded59198615ff1fa22e74c8c98cafb6703ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b000230c9653d27c310e24a3f268abadbcf7617dac032a3b309ccb2aaf65b3a061051038b5133384704909d4554416b84925c0685947e13fb2197b11f845730d33dc25c032dccdca17741ffbe1d94914c6e89ee42894d6376a55e2955e0d81380db4cda520352bc7412666115fee4f6fdf3c7cb9eee4f68665a5ae045fec9f679302f6253c0", + "nonce": "ea864b76c3a85ed6a2fe3bcd81c6e33310552de21bcb3fd9d7fd0cbb10547f7e", + "nonce_commitment": "03b5a7f0154d9156a8db33f6b27c04626e36081812372d536eeeab901ab7ac3b13", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483703b5a7f0154d9156a8db33f6b27c04626e36081812372d536eeeab901ab7ac3b130230c9653d27c310e24a3f268abadbcf7617dac032a3b309ccb2aaf65b3a061051ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b000230c9653d27c310e24a3f268abadbcf7617dac032a3b309ccb2aaf65b3a061051038b5133384704909d4554416b84925c0685947e13fb2197b11f845730d33dc25c032dccdca17741ffbe1d94914c6e89ee42894d6376a55e2955e0d81380db4cda520352bc7412666115fee4f6fdf3c7cb9eee4f68665a5ae045fec9f679302f6253c0", + "challenge": "52af63154c171ae310cd9606aba4ff31c069ffcd1776b45d23503dd32f0ff4aa" + }, "encrypted_shares": [ - "05f90d198733e63b42afff31eeefbf3d58f1f7e1333dd024adb4d860d7815c2e2c92d0ed328cd6f23a2402afafc4f013", - "4fb0bce9e3a11a97bbd1f99259e2bfe3b3deb5c4085588e73c6f6988484d14f7acb8e3f9f2b33ccb6fecbad5742ecf8f", - "1443c0e57699815afaf0718a02625cda0123c2032c5654b24a5e21ffd6f1417f1aa89d2e4882f5d3e2f7157ff7ccf80d", - "007c867aa7a809c58a3be10394212b9b4c8b479564f3e086f78b93e90092e3cb359d8a233c4373c5a4e03440d148ded8", - "8c7f4e05295910f40fd1c070d8b09f2ab0b77651c8c8c49dd82c71ab64e2979a0d0e59cd9ad317a08407ae413ba5cbef" + "31575e400b5561c7d4d0455351d8610f5315eef9e0f5abc8cef7ebf2667ea9a9f8a59b2dc14905a59f90d72ca86294de", + "1d4f3079b34981df67bdf58b1bef61b9efb753b8a117c0f51239473dc881ce33faab70335fa93d58f92d83043dfb8a63", + "433d19c7afd8fb72c141a7cdc8d098732bff4ecef8edf981b2da73efc5ddbe72a1af7289cff4e446b445a67ec07dd552", + "de0b0b81019657443d3029de033b909eed69b70f561a3d8bab864d588bee3d68f64bf5bf67d0e58fcd203dd331c2081f", + "a2000db4e6c9b4e6898aa422ee1ee62e47cb29aac376abb312d6bbb3715ca5ac99d10690bbfcf0ec67563ca93c7b7ce0" ] }, { @@ -162,13 +198,21 @@ "028fc116e6d0f75770bb43bbcfda8f1ac22d0ef1681db84c9aefbb0c0fabe64f07", "034983506abf0596744572b7266103c63461de247866d68f5c247a146a72057255" ], - "pop": "02d6f0a2c6f37080862c271d3638e805b998e8c8415d18b71d432c5b2ab6c42070919ef83e8caa2c67aa7e361f1226c8a34bebb875a47d0471fa131b8359e9ef7c", + "pop": "02e17d6187d9bd90ed77e601096049d28c92f56d9f243ab0c5c4610ea02ba7506e850047f8130e0c1dd4c6e1f9d42ec3a5505b145616f31d06547298a0ddb41904", + "pop_intermediate": { + "message": "ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b000229fa1fb5ebf8ebf4c813dfb1fc41f0448a9eaf0f7e5a49c13b355e86fcad62c0028fc116e6d0f75770bb43bbcfda8f1ac22d0ef1681db84c9aefbb0c0fabe64f07034983506abf0596744572b7266103c63461de247866d68f5c247a146a7205725502434518ac140f841025f3b1c36f98616eae066dcce1140918e8c6584c4d6f0962", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e434562febada0d2173e126fa4cd15935256ae0ad1c7776d9d025b07fe909b6172ac3ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b000229fa1fb5ebf8ebf4c813dfb1fc41f0448a9eaf0f7e5a49c13b355e86fcad62c0028fc116e6d0f75770bb43bbcfda8f1ac22d0ef1681db84c9aefbb0c0fabe64f07034983506abf0596744572b7266103c63461de247866d68f5c247a146a7205725502434518ac140f841025f3b1c36f98616eae066dcce1140918e8c6584c4d6f0962", + "nonce": "02b44e6c25640585ab49fe4ce8f80868cb723c48300c1708adeafca63e36a23a", + "nonce_commitment": "02e17d6187d9bd90ed77e601096049d28c92f56d9f243ab0c5c4610ea02ba7506e", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483702e17d6187d9bd90ed77e601096049d28c92f56d9f243ab0c5c4610ea02ba7506e0229fa1fb5ebf8ebf4c813dfb1fc41f0448a9eaf0f7e5a49c13b355e86fcad62c0ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b000229fa1fb5ebf8ebf4c813dfb1fc41f0448a9eaf0f7e5a49c13b355e86fcad62c0028fc116e6d0f75770bb43bbcfda8f1ac22d0ef1681db84c9aefbb0c0fabe64f07034983506abf0596744572b7266103c63461de247866d68f5c247a146a7205725502434518ac140f841025f3b1c36f98616eae066dcce1140918e8c6584c4d6f0962", + "challenge": "59d5691e7b2f8dd589cc9c27ee2a03387d7076b628094a956fd3b1e6478e2db2" + }, "encrypted_shares": [ - "cd7f6ac1eaf19ccc62dfcaab15e8de73f265a76b144b9107f9b9d606c498e57b0ba093c1181f454aba31ed8a8d6f406c", - "8f63750cc8caacac319629d7f2ce1e1d7396d3eae80d4edcdd63c229de9bb9d2e3e68816c855e704bea251634fa95714", - "2a85b2d694e8af20bf2aabd59b686b6c2b1b8237e13951ea82638bad2310b1336658765c80aa5839dd51e775c1de4bf6", - "148cb1ccb14f968ec3a5ec3aed257c03589d69328783610339727ff344924740624760f5c16786a49a335ff6e47e2a91", - "8fd8a4b3ef2833c85a6a866d4b3b4841e6da267b40544e2795f24843d333ff1cb36bf8494f1342e80a7ca51c930bae22" + "cc39b563ec165326bdd581ade724c032ec6cd6230f5b216782ab06855cfe8d1ee6b4cec0ba07aee17fd1ae1f4dcf267c", + "64ef8ab44f4cb4ba93382ea1e1de0ee407fd08b3ed0808ce7b2464113bcd92af6e161e1287f3b08ee63d670d4e9d29de", + "afa9e92592db22292a56c839673b838f90717b47fb64b8d2a655c28f7c13ab5ce98d4659f9cc8e59c540d1a937a88025", + "6cfcea2e83182d21ba07132224409f9d74d7cb874705f9e9522bf65384c322eaea4cb70ddfd8bb437b1adda568e15903", + "43804207d67dd4f73e8e2010953fce8f33ab74cf35d9b1efc8a7bbab81d4efe3977cb2df480af8a9c48cda5f26baa1a0" ] }, { @@ -179,13 +223,21 @@ "0348e5df5e635c767ef6c0bc905b70a0c5ec8759c2e05e0668518d8bcdad8f4aac", "033a26d237532cb32e72d9618ec5a61a58eac36f73f11c672c251dd3a6186320fc" ], - "pop": "02fb002527e90f9ea76f9acdcf4bb350e333d039ebc08a8dfd2dbe45f16c81c2011d844bd011cd1903e67d8e4241b320404df6d7bb73459d4b271e40774637875c", + "pop": "0392868be367506e01ae9f79045c013dcccec07ec254847052c1b6a44c77b3cafaf66faf52e0d56334c394fffd9bf571d9e01579e4cfe230837c8cb641bfa2da60", + "pop_intermediate": { + "message": "ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b0002ae284b33de12a34adc167f3d0cdf40c37a6b3784a9b6d87b2653ebb59a602c550348e5df5e635c767ef6c0bc905b70a0c5ec8759c2e05e0668518d8bcdad8f4aac033a26d237532cb32e72d9618ec5a61a58eac36f73f11c672c251dd3a6186320fc0325bd73f96e9c50d2b872138d5c068ea06daadc68d7ac489b3b16d7a943e05664", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e43458050d81e987c447be8bc5907549eb179abae73605a10b9709b585aa4ec63bfc5ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b0002ae284b33de12a34adc167f3d0cdf40c37a6b3784a9b6d87b2653ebb59a602c550348e5df5e635c767ef6c0bc905b70a0c5ec8759c2e05e0668518d8bcdad8f4aac033a26d237532cb32e72d9618ec5a61a58eac36f73f11c672c251dd3a6186320fc0325bd73f96e9c50d2b872138d5c068ea06daadc68d7ac489b3b16d7a943e05664", + "nonce": "c39beb8da297483cdd73c499355cd67bdb03894f78ef8adaa319eee454c92ce6", + "nonce_commitment": "0392868be367506e01ae9f79045c013dcccec07ec254847052c1b6a44c77b3cafa", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d48370392868be367506e01ae9f79045c013dcccec07ec254847052c1b6a44c77b3cafa02ae284b33de12a34adc167f3d0cdf40c37a6b3784a9b6d87b2653ebb59a602c55ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b0002ae284b33de12a34adc167f3d0cdf40c37a6b3784a9b6d87b2653ebb59a602c550348e5df5e635c767ef6c0bc905b70a0c5ec8759c2e05e0668518d8bcdad8f4aac033a26d237532cb32e72d9618ec5a61a58eac36f73f11c672c251dd3a6186320fc0325bd73f96e9c50d2b872138d5c068ea06daadc68d7ac489b3b16d7a943e05664", + "challenge": "0cd0c7885174bdba39323e01112d9a3c8aba12f188f8fa62757eb467a0b40738" + }, "encrypted_shares": [ - "8a8d014d7e897a6dd47687e8adbcc294d9ddc90175ecef7a978dbbe77823c0faf2b9398d8838df475edd8ba9edc8f256", - "2123261cef5f53a439f135b6a02d744c2eea60882661337b02139cc2e1b33e1228217e752f79dc0752910a13b72cf586", - "f5c6de227fab593f4856e82763dcee3e620b465ab7f160800561bff557cefbceb22d63a925037e27dbb8b9e50643eb5c", - "77725da85e9d9563827ecbf13acac7d5105834dfd246317d32068669996e53b08ebbff401884e519c7360ebeb184254f", - "a9eeae1e744e0a36819bb6dc1bf2512c80f351f2066d56d822113cec00cc57816f79447bd1101ae38bfb79271f768a20" + "fcf9b0fab5cb4022c9dcff11579ad3b3ce574bf3dcc8c53b70f4135376caeaab75510600e9114c0fe42c590c5efc7c08", + "af354549d260fe21429d1149d60fdb258a03fc4ce021bd0e2b5258265ce6c72727af7826aeb9a8eeb5dcc6d647b7e961", + "56f366c612393db6070ae226353851b12d8622eff326ef7340ea1db651f560d569905166badfc5289d6b95df1d78dc55", + "1ffd2e740f6d11ad9b3dde360c79e98f681641b272161b3ddca6d3e6425423580d9f2c03803700b70f5e2ca5753155d7", + "0ef7e72e5f02c3818a1bdb2b5934e809934a6d0041d9e85b1b0645b3e41f1a76b6d470a1ae9baa5fa3ea502b2e623efb" ] }, { @@ -196,13 +248,21 @@ "02f7cba24a1a8ef8e1d1b91dc4f1c4258a09aa09b87d607fe6d9f982c3bd7ce04c", "022bff4c54d6ca6865b199666841769b116082e018886f490e5e79061884001fcd" ], - "pop": "0289c90ba06204f72bc8ab5720662fcddf8be51ee5e5b721b9f0500275ce19b5c5d7b82489a514d4e6a63efccc24fa0bdb26c81db96f7a4d4ecb29d1ea33efb00b", + "pop": "02b5c5853958c8136d603fb3954227d2168ecbef83c911136a419c08403adfaa0663642c64cc7e42ee067afe8c2035b1480037b701452c31cf65e43050d7eea380", + "pop_intermediate": { + "message": "ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b000315956aa09456d5a540d8a40c712e9890e3d0ce8f70a1a6842e108c929b0ccb4102f7cba24a1a8ef8e1d1b91dc4f1c4258a09aa09b87d607fe6d9f982c3bd7ce04c022bff4c54d6ca6865b199666841769b116082e018886f490e5e79061884001fcd022d39517b0a937f7a9a29c9abfcb64ee1ad86d231151d670496a9bc148f300db5", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e43456658f94601cfe38b293951005116b996c170ad64a2e1efdbddb23d5f57f9278cccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b000315956aa09456d5a540d8a40c712e9890e3d0ce8f70a1a6842e108c929b0ccb4102f7cba24a1a8ef8e1d1b91dc4f1c4258a09aa09b87d607fe6d9f982c3bd7ce04c022bff4c54d6ca6865b199666841769b116082e018886f490e5e79061884001fcd022d39517b0a937f7a9a29c9abfcb64ee1ad86d231151d670496a9bc148f300db5", + "nonce": "b1def41202916bfb955c0c9208e7eb74ff1c92f7240dc95f6d240081e62835c9", + "nonce_commitment": "02b5c5853958c8136d603fb3954227d2168ecbef83c911136a419c08403adfaa06", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483702b5c5853958c8136d603fb3954227d2168ecbef83c911136a419c08403adfaa060315956aa09456d5a540d8a40c712e9890e3d0ce8f70a1a6842e108c929b0ccb41ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b000315956aa09456d5a540d8a40c712e9890e3d0ce8f70a1a6842e108c929b0ccb4102f7cba24a1a8ef8e1d1b91dc4f1c4258a09aa09b87d607fe6d9f982c3bd7ce04c022bff4c54d6ca6865b199666841769b116082e018886f490e5e79061884001fcd022d39517b0a937f7a9a29c9abfcb64ee1ad86d231151d670496a9bc148f300db5", + "challenge": "4c63b3fb8789d0f595472f24282c66b51918f74310652a79d562ea4c990f6901" + }, "encrypted_shares": [ - "2bc6a87063848da50c1e4e41df99b4f684687770f34322e6bea1e06b193326220e7cd371e321275821d8180b434ff893", - "9ff7eed68cf97dffb934e5061c2c9912832ceafbb06d04fdd5f94cbcfea1782e97b4f44c98674979d7df3584f9aa6a44", - "f55c2f5f2c6c62bb2f59ca675adbc119a705b9d82cadb41b6252b4ffc3191841fa0c68909249cddb42c77c6f0c8c31e0", - "54568a47e2189f621b069c13239755cd6fc895274b45dda3722992145b823fce2d5fc8464974434ce36a405ce413edf1", - "dd65e80cf688e6ce1c36447c9445062729968615a6be6aee8f7e487e01b21c5c87a833bea8d02e0958df5da24801ab43" + "7f25983543005787be6117584c2ea15d12d247cb06850ad3fd1bfb78f8e0060b0f41bd516abf995dda49690794cff68b", + "500391e7fb3d7f50dbeb571de75955bfb6b8e5306e398c8d20ce8512470b2e6b80a4b1d6ed0369ac82b3ffab4ffc4c9d", + "ff07a017bb92af61023968a5f9ddb95e638c1c297e4c9f111eb3bb50e2426e485a1b1da60c4db35fdbbe821593058af0", + "5178f886cb466625bef7be54a7c746ab62753661d7bc177feae89177b5028ff8d83365086b265be2a69175e68f0126ac", + "b7a492178df45eda870ccee53148a2c9076393576531048e59430834b52ab2423a0c925a5e05cee922defdca371676d1" ] }, { @@ -213,13 +273,21 @@ "03810e658cfc18ba6539f10fb1ef99d416f33dfb08a100797df01e92825927ec80", "0381799570a325f933ad8239b5292d069f8f8f68ec9def3608d1945ac96005249f" ], - "pop": "0255bbe4cf8a1a140054ac4177785da585a8f6a9c74306630b0b4045d2047290f8b1065407686a8732be8ed49a97669fa8d9ff2e59fc747d71a5c55bc37c5a25b9", + "pop": "02ebcfba64c21c00813f0c933a2b907621deb69638371c7592a065a39f9618520f9d917ec916e6bc9477ef8bec051bbe180fc35473ca2d50b360a7364ef8f1e9a6", + "pop_intermediate": { + "message": "ccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b00022df10bef95c6669007480217fb78602c29e31773ee3c87a56bc53ddd890593ab03810e658cfc18ba6539f10fb1ef99d416f33dfb08a100797df01e92825927ec800381799570a325f933ad8239b5292d069f8f8f68ec9def3608d1945ac96005249f02937d5bd5449ec7cadff08a3597ad2e40b9523a6a38562c4ab05e988be112e337", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e4345fdc8cdc7afc5d333aaeb23e55cc43fca0acab0545787c8df13b228a720c51c2bccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b00022df10bef95c6669007480217fb78602c29e31773ee3c87a56bc53ddd890593ab03810e658cfc18ba6539f10fb1ef99d416f33dfb08a100797df01e92825927ec800381799570a325f933ad8239b5292d069f8f8f68ec9def3608d1945ac96005249f02937d5bd5449ec7cadff08a3597ad2e40b9523a6a38562c4ab05e988be112e337", + "nonce": "245723c15303b83fb346e449a0161f22087fbbc624d482c6118e5a3c9855e870", + "nonce_commitment": "02ebcfba64c21c00813f0c933a2b907621deb69638371c7592a065a39f9618520f", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483702ebcfba64c21c00813f0c933a2b907621deb69638371c7592a065a39f9618520f022df10bef95c6669007480217fb78602c29e31773ee3c87a56bc53ddd890593abccf1b7bcb75e7ffac48ccbb23bfc6b0836e7a9cb60e5c42bb98604acee629b00022df10bef95c6669007480217fb78602c29e31773ee3c87a56bc53ddd890593ab03810e658cfc18ba6539f10fb1ef99d416f33dfb08a100797df01e92825927ec800381799570a325f933ad8239b5292d069f8f8f68ec9def3608d1945ac96005249f02937d5bd5449ec7cadff08a3597ad2e40b9523a6a38562c4ab05e988be112e337", + "challenge": "0fc929569102940107afab7566fc0100250245361bc01f98a90bd9cbb057c33c" + }, "encrypted_shares": [ - "1043252ce5761c07aa0361b8224a708ed40c8845a926faaa63db928c7cfca45c07ffebb2a2ef23538e692fd5cf0ed11c", - "19678eda1adaf485afc10e9a6d386bcc9c32787c3d80ed3a34eeb50745983bea43128d5e6f12edeaf32003518c7e8e9b", - "0acb2d5a4a62b26bdc83d4e2a6136b8b0a2f3920173f9b0bbf70dae8ff105ceeb966008763637d5d4d5f8359b279371f", - "754e7bad1a6abd2b688df21254cc80e7cedcf0740c4896e4f024edd9897ce267bbfaac1e14a9e69f4fa96d77bd05feb8", - "b7db87f00f38459818090c2e2621a14fecae3ee039dbddf5cdc55a29000dc2ca4e211acda2c1364b39e387295279ee3a" + "6fc385123f2b1d72a7fb8c37cb7465b7799e35f41ad7b6252a01e55133511c4951a0f2605c897667637eae7f4fb625fe", + "553e77a99eba25ba73c29de4220c5edbca839105f42210d3e4b076507c66f0a77e5f164146447538bf999e24a8dad148", + "a2422f70e60f56b65384eb35079a1d50620eddd6cd70db127521e7e8509d565ddc62b8aaf78b7c32e148d6b612c6d8ba", + "0b07aa927443aad05a1dc2856eb7016c529d16db79fef8002012cf34d382e2b5fb6b5f40a961898e1bca481d60cc1e8d", + "56d4d05d013694d22dfc71190da2132b42833d874e774a7e9f314d693ad76320ae004facecf09b3341dde1a89430f1cb" ] } ], @@ -251,48 +319,38 @@ } ], "round3": { - "transcript_hash": "e07bc2dd3667865e862ebe9534174f6f33af5dee113e1dd835185cdae66aaa70", + "transcript_hash": "25abd8f76149b69ca9b87f19a0a88688f31fbcdefb84ba0f72f940344574d6be", "signatures": [ { "signer_id": 1, - "signature": "0211a59c5ee949bf7a09a48fd19e5d0d3968b67b6ff023857b48a210fb22009349bab8d78fc7961ebb2e2ad5c96b9838acb7a63634cee5bf173ea272523f5bb19b" + "signature": "0344570151d36e5c891bbd8455b30eff5be9a6e9d932c044ae9d83f29a137d9cb448d6742c4b3c6f4bce49db585521dc9e09af09ef0aa84e5c5f0a3ad7381033cc" }, { "signer_id": 2, - "signature": "03ff00023b375529c730901d61808d4cb1831b0afbd55ad533102059123c12777e847c0d602b03bdd88cd7cfb785151baa395a6fd0cd5aa1218b8247444969b810" + "signature": "03bfb2c982f7b74151fddf74e3d353705305fa09c5b054b9d0898f428e2f0f19f427b35cae8d8a42e45c3411a27869a75dee10cbe937b7ff3654cf9a8ab66625db" }, { "signer_id": 3, - "signature": "03ad529da33194dba3e585607a4621eb7337d9620b9e80e9b5b11350a6f0325e006c24c78c2acd9e94c7187bc9802a8e217b3a946f7cff97a5d24bc9a299c28625" + "signature": "02385eb0637b7df586ae1fcb5129920f2da18a3f041bface2673f067a796fcafac23e24330d7ea45baaa6ec21640e8fbd74935380c98a5aca39551cb95b526488c" }, { "signer_id": 4, - "signature": "0263aa5714818ca2d96f9510565a011ab7406b3aa1f2c2c391592a640609f7241e1cbb9127e79c422743ce6d3f69c0e613e02410ef9e5bb9e76d4da59ea21d4e7c" + "signature": "030720ed1301cd0987e7824c0d33e6e679f80b7dd2e279722fe338806198c3ba4d7cdb9ac464808fa6bc7406ffa36d1cf36b02cab8e3bf61939c76da7e4cdab8a3" }, { "signer_id": 5, - "signature": "03562e05cccc1da8cdded0dec6770843f3dc7e810dcb53ccd02fc40e1f57a96535ad9d460fd29599147c1b0f3a07ba01938896e6b994f18e9f30cc8f9c9ea70dd0" + "signature": "03b13f298a344ff27a6d6696755d71ba51c51b7ff16f1c9733ff0ac92eeeb54c18b5a382bf5a53d01eb3f82c8d3a357677c05e918cc261cbd99d8c511fbacc1d97" } ] }, - "group_public_key": "0323686a5185b926ffcdb4e90f51687749950aa6f8af76af4141a7a479e0ae9aa7", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "05f90d198733e63b42afff31eeefbf3d58f1f7e1333dd024adb4d860d7815c2e2c92d0ed328cd6f23a2402afafc4f013", - "cd7f6ac1eaf19ccc62dfcaab15e8de73f265a76b144b9107f9b9d606c498e57b0ba093c1181f454aba31ed8a8d6f406c", - "8a8d014d7e897a6dd47687e8adbcc294d9ddc90175ecef7a978dbbe77823c0faf2b9398d8838df475edd8ba9edc8f256", - "2bc6a87063848da50c1e4e41df99b4f684687770f34322e6bea1e06b193326220e7cd371e321275821d8180b434ff893", - "1043252ce5761c07aa0361b8224a708ed40c8845a926faaa63db928c7cfca45c07ffebb2a2ef23538e692fd5cf0ed11c" - ], - "recovered_secret_share": "4c6edebc35fd4aa03539772a17da1ad68f5d06b8bbba01f83e07b64c9c95e459", - "recovered_verification_share": "02406a1e0295b29540fdf7b396644cbcc8a7657d71bc4d7f3be5f397c932f250fd" - } + "group_public_key": "0323686a5185b926ffcdb4e90f51687749950aa6f8af76af4141a7a479e0ae9aa7" }, { "n": 14, "t": 7, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "context": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a", + "extension": "", "config": { "static_secret_keys": [ "df48ddb52302967fcf09be676f4bbf2bcaada6e4fc1a841bb63314257a04aebb", @@ -340,22 +398,30 @@ "022b1fbb6b33d5ddbcdffb22e8e46beec7dafa1b4c46e9c5042320bf1408040af7", "02bd8e45dabd3695139f0a6bd45df5c58817e1beaa4a6fe6ee1c9d173959c22ca4" ], - "pop": "02269690717af2098b980316bfaca2116f117f3ae6ff70a4cd5693f5640f0aeec58d382e0da4b1e642b8be050f6a844894756c5677dff620cfaa68de3ec65b398c", + "pop": "029e60790c6b7a23c4fcda1b0617524b15ae85075bb1faeb79f048d2f31c50144de249d53988eae5957a70d216dedab035c3a4fdb9be6893ed9ff25f33193f6473", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02be0e193a3f0fce075ab2f8549d81d6750a49403b29903f59d5efbc1994df975a025cc0658c38f969d7a9627a341829546014831612ef01d9d8c3774922b838d3e302461306654fee2dc4fdb984cb56ca6d83eca1aeed14fc5b44053f57f100d41aaa02618b4f85ef685d1223231e9f90cf5965b5d9bea62888e34c418c40e19718f8b803855dfcb14064bdb095a615b6113d217c8df13e586a5f835c25f49655344685f5022b1fbb6b33d5ddbcdffb22e8e46beec7dafa1b4c46e9c5042320bf1408040af702bd8e45dabd3695139f0a6bd45df5c58817e1beaa4a6fe6ee1c9d173959c22ca40294804744142030e0427d780654810f5f67b96a92445f9941eabd04cc87a2037e", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e4345c5f3af6b9d3014c80afb8e9af2ba75506d24564b37f569876b6001d9dfebc0bd05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02be0e193a3f0fce075ab2f8549d81d6750a49403b29903f59d5efbc1994df975a025cc0658c38f969d7a9627a341829546014831612ef01d9d8c3774922b838d3e302461306654fee2dc4fdb984cb56ca6d83eca1aeed14fc5b44053f57f100d41aaa02618b4f85ef685d1223231e9f90cf5965b5d9bea62888e34c418c40e19718f8b803855dfcb14064bdb095a615b6113d217c8df13e586a5f835c25f49655344685f5022b1fbb6b33d5ddbcdffb22e8e46beec7dafa1b4c46e9c5042320bf1408040af702bd8e45dabd3695139f0a6bd45df5c58817e1beaa4a6fe6ee1c9d173959c22ca40294804744142030e0427d780654810f5f67b96a92445f9941eabd04cc87a2037e", + "nonce": "6a264bba3b7addfa0e1a06704e8be46e9a6edf721161da7cb466dc381bc6a8c0", + "nonce_commitment": "029e60790c6b7a23c4fcda1b0617524b15ae85075bb1faeb79f048d2f31c50144d", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d4837029e60790c6b7a23c4fcda1b0617524b15ae85075bb1faeb79f048d2f31c50144d02be0e193a3f0fce075ab2f8549d81d6750a49403b29903f59d5efbc1994df975a05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02be0e193a3f0fce075ab2f8549d81d6750a49403b29903f59d5efbc1994df975a025cc0658c38f969d7a9627a341829546014831612ef01d9d8c3774922b838d3e302461306654fee2dc4fdb984cb56ca6d83eca1aeed14fc5b44053f57f100d41aaa02618b4f85ef685d1223231e9f90cf5965b5d9bea62888e34c418c40e19718f8b803855dfcb14064bdb095a615b6113d217c8df13e586a5f835c25f49655344685f5022b1fbb6b33d5ddbcdffb22e8e46beec7dafa1b4c46e9c5042320bf1408040af702bd8e45dabd3695139f0a6bd45df5c58817e1beaa4a6fe6ee1c9d173959c22ca40294804744142030e0427d780654810f5f67b96a92445f9941eabd04cc87a2037e", + "challenge": "c26786ae321289a9721be6012cd2e2de77103228be831c15a5db71ebe3e4ece7" + }, "encrypted_shares": [ - "05fbe15833e6639d8f6eb25b336af8d1fe0cab753a4040a829b7f957dddd1b73a4db1cf08f846d81da0990d4054ff984", - "7d58d63b8bca11581689a50a23aa54f56b7bf71896d4c3a58a9af606253d4631f8093fe1e8d1e963b5a2eee1eee5574a", - "009994ce5f54bbcbaa231e86ae8c989793c5ea0ea4df33f7874ff921a076760b583b9be445a1ba1b108117943e1fbcb6", - "7eb9ec4b4a006c8a09e763cb80be4f8f8c10e92ac00e1c73e3341c1a948b5058b58e18d3b02ff1301ea1f74b695d6699", - "0b68e41047c516e934adbc540c169d7fad876ae05b1270fd6437ef92ab7310a7dd0cc1649ecf8c7f7a4cfe4439906e0f", - "4d5e3a69b7a14c210344de2e46b58d17406a6d33edb1dea8007c85ae81a371e31ad106a117bc491e54d8248ea5caa9ad", - "5a6fc660daded9ec5510d8d26a1e153572932fe473da2b146e96bbf11641d0ca802e82202085bcc7615ae22390a74c86", - "5c362b3c0b16c6cc6886226b6efa6fd209d6845756ce820d384c5811419b586ece0031d12e31d2a8e6fd1917e18c3c0c", - "68d681cd6a791e812991ba3e94e83c4ac8210707a99a4715c7732348c409aff80cd846c9dbf122574d435ffb2c30628c", - "24e3025d7ac3b7f47537126aeb789fa6c47984f7451391e85f976c103a2bca494fb7e56390a27d0c0de5f0509fdffad9", - "bbb69e65d555459fe4857af7e3f54558690e61d9cbe756e58101e4da5f118c6ddb4a45dd0b20f7c753fbcb7a8b41ec53", - "bd7fe948f5a40d21b3afc376e22abeb3224c6ef483cbb3a4e39954916f54831a9998469036c991f572a2e509c97e5fdd", - "5f46fd6248e72c774981b1a8d77f1e924a220d4f3cd4549ac68ef285f9235ff6ab367672194e2f3c3f58b65a12a522d1", - "3dba3ef3a5b9f5890fa8ce9c59c569618204fd807a913c12fd7a90c7584b850acca3543dc7c70dc9ef234aa60ac62f75" + "59c38f431eb71f12f6f144e20df8044dfa5ab27c0e4e4c85398222db14a5387523d7f68759955952a7773ec0b7ec78ca", + "c3eadf382c257b582f835773fb8ac58627369496302b1b601479eba614821333a27cbd4fc2baa590088e735e7ed9be1a", + "b0d43c7a434bd24b2941af0a8d327a98d8d4153aa8aaf863a432c97c7ddf5f57934d81ffa02ab4f9249c5537f56a9707", + "206da07f7f81b4cd0a10a01a1415a4640e50886ce2486f2c2ee31a8a6d4c90f468dcf03c91c476dea68583dba9c5fed1", + "b4876f06c37d644ba337415e027b1a8ca1f5be91c6973b24081692eea4656aa483afa2b69961c30310c9596dd2348909", + "ea789c6f5467e375cb27ecb6e021bc35c402e1211dc3060df71eddcc23841275e6ec837f8a81b05051f8e501d576594d", + "3dc982ab6c1af6dab84f5c946f601250c5dd7ba6a7536f984d8d15d5b15268e645bfcdc63dfb0db70da2c5b7e8e3cc57", + "172be33f58f000ac1a01a7bb48692c046ee524d4f2fd9e4e9d9839aa352ef925d6d5b34dc693bcca6cc9da28a72ad906", + "a47457ee93ca4ee7a3903b985a97bc336b25e1f7695a981c34f1e13717f13f6cf3ce34a8c7ac852e1cdf7978a39bfbb8", + "e6cd9dead2a0cf21bac0041f19022bb80b26acb6692b9aa0e7fd82fcb7854f6d17bb7e702477f2d8b99681c3cdd1b2d4", + "c88d47772da29dde214677dacfd06ecb4180896741531f84ac5bf9b70f3e28e99ad5e91aebc4652e98f0ea06eff29412", + "aff0cf15b23808f32c8d3b3914796512a4884730a44204e1be99a956b672f1e7b7715353ef906f26e683d816fa851a98", + "65c2a605bbdfb0653b48f82b620b0443e97fb8df6f7e2833ef2cdbc96c0d8dc9f7838eef2a99036d510060c727a274ca", + "de42444e38fe1fa96351049db21e6f338700d4495af73ef2bc5b451d8cb521a51ad0acfe84c245e3048e42364f6bf101" ] }, { @@ -370,22 +436,30 @@ "029c4c2e8de64f5652a8a62685e06e88fa7256647140c7479f3f4f64d21a9fec73", "02d753d239124c300680fad07f73ba67d6f208c3668b7acd28f2a60e66938cbc5e" ], - "pop": "02caa74f78b2a471121fca689dd1e3dd74e77acc10de859a1ba53161fe33cc1a86d905d0b0d57ed02f76439ae95690481e8558b2cb5d9ac33a9b2d67e6cff1dac6", + "pop": "02c5cf8640150d161773b0d3b1b8b65b81250a6c65f33474e0fc621a307b9cd3fee61463f81a4aae6f084bf4da25b2fe06034ce4770d3710caf7920a6c76556978", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03d7c30665bebe878c37325defd66b3f6c01c5c5ae86d089c85f87eea9c390737603dd6e45a053829c797609fc2f58ac2d83bcd2a16bc15c08f12ca555906398aa74038c1cfccd7daa25adee6120c818def2365f80a17f42ca1ec6c091cbca47aa920702928109f9acffffd9965342361b15a8edef3f3052bab79988a9dd12dab71b724d028aef7f09c648a0dbb501f3cd6d90507ad642215dc767796bf75783d035cb756e029c4c2e8de64f5652a8a62685e06e88fa7256647140c7479f3f4f64d21a9fec7302d753d239124c300680fad07f73ba67d6f208c3668b7acd28f2a60e66938cbc5e033586bb59ac0a3b4650b421d47a99d54d05ef0e10d640bf11618e1f0c9150bee1", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e4345c62d3e8454e21fa01764e4be6ad937a79bcc24ba808ae53368e6491d254a2ea205aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03d7c30665bebe878c37325defd66b3f6c01c5c5ae86d089c85f87eea9c390737603dd6e45a053829c797609fc2f58ac2d83bcd2a16bc15c08f12ca555906398aa74038c1cfccd7daa25adee6120c818def2365f80a17f42ca1ec6c091cbca47aa920702928109f9acffffd9965342361b15a8edef3f3052bab79988a9dd12dab71b724d028aef7f09c648a0dbb501f3cd6d90507ad642215dc767796bf75783d035cb756e029c4c2e8de64f5652a8a62685e06e88fa7256647140c7479f3f4f64d21a9fec7302d753d239124c300680fad07f73ba67d6f208c3668b7acd28f2a60e66938cbc5e033586bb59ac0a3b4650b421d47a99d54d05ef0e10d640bf11618e1f0c9150bee1", + "nonce": "bdab3510312b93e4b36642699ee66a2b00baba6815afb964afa41c9f87911742", + "nonce_commitment": "02c5cf8640150d161773b0d3b1b8b65b81250a6c65f33474e0fc621a307b9cd3fe", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483702c5cf8640150d161773b0d3b1b8b65b81250a6c65f33474e0fc621a307b9cd3fe03d7c30665bebe878c37325defd66b3f6c01c5c5ae86d089c85f87eea9c390737605aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03d7c30665bebe878c37325defd66b3f6c01c5c5ae86d089c85f87eea9c390737603dd6e45a053829c797609fc2f58ac2d83bcd2a16bc15c08f12ca555906398aa74038c1cfccd7daa25adee6120c818def2365f80a17f42ca1ec6c091cbca47aa920702928109f9acffffd9965342361b15a8edef3f3052bab79988a9dd12dab71b724d028aef7f09c648a0dbb501f3cd6d90507ad642215dc767796bf75783d035cb756e029c4c2e8de64f5652a8a62685e06e88fa7256647140c7479f3f4f64d21a9fec7302d753d239124c300680fad07f73ba67d6f208c3668b7acd28f2a60e66938cbc5e033586bb59ac0a3b4650b421d47a99d54d05ef0e10d640bf11618e1f0c9150bee1", + "challenge": "55934673e80b0f047b3598a24a72e3ca7a9657af0c0a15479c38df08ad24c70e" + }, "encrypted_shares": [ - "6beff6e079a4964ecec533c73eabecd7dff63f0cfe50788133f01465296b6ed497c1aba5197b9c76564894f0044f9ad6", - "870d04a13f75bc500bcc93e7d3d32432ca3b7597c026c71b1c7e9ffea39f73052fd8dfe3b2ed523a7489be710810613f", - "582c1761eb1d76926e966881ea9ee7c2ee40261fad1a82950c66113e18e9de8716db2f0c0f047ea62a8b2aa40c8795af", - "9c17babda28ba4d0676a25a759d7bef897ce62ea2ee75f91bd93cac146d39579b6edee5b4f8b60624a4317b2cf2132f8", - "eab6ebb6bec2c3d39bd727773bcce69696bd2e2c243be50a7972b5266e1b88b7e56128d2890848eb6ed094e329b386b5", - "1166412a1d21f5eab445357eaa3939e173abd0672b25589251469e60ec576eeb89a1762d8d029fc25102abd762b71455", - "1c76b953c924920b9530e639d66672b2f1a96270228442aa1fb6272eae71ce58d9b17d31d15104e57fa6797e1bd34eb3", - "9cf025d9b9b3b3e1f629e5dc9bd4025423e8ddaba2328483e68cb8acbb5de444a875658610c8996c7fc242767c0714fb", - "71d322eba624b7d377ae79339b4668ac8f81e93af7ced1e32bb58e02a78968ac215a8669b374d3b37bbc35e2a9220c95", - "b8a6a6cb08fdb794b71f972fd2f8c7af368ac17da6f9dfec70dd492268c3eb101771e55fcb5a4977783a60c0944680b7", - "0e95567c183273663925d67fc43f649b482fa4270e56f11199879ede02a2107d60cbb489218f0e8e55e4367a2a91b399", - "a9b2af49495189720cf7910dedb336f4a0c04343f5856fa7851e3746952e2510dff430c103b0c8ec81af034ca8f59c38", - "b3c1049ed6ed4a613ded0adc34be30150310e357f231460016b0b8028d86b47124a4a5ae3200c02322f7f86884843baf", - "d1a99c2599ce7705fc77a0415f42dd7c7f458cf0c0c0ec3d87bc411db04053b07c496de98f245f084010896525d391c2" + "17fa472626279c13a881c8bf90e34fd83c3d4daf666b086eeb744c0df2f1a63d57f1ad40f6b9d31985e66655d33423e2", + "a1904c7af26fc2d64fed6f9c66b36bce2b67371d9d82fcacf295ab86768b3f56f6555b45867e1205dc0332320b802f34", + "1d659027a6dd93e5a8c42b76de5b627ae3e6db32b66e43ee4bf814fe797891dcc3d615b7b83e8cb15063eb657a274a6d", + "2987a79daf3ba854f9bb6e9de068a761b70472c001c0afa952f92532b64acec1105d1128c50cee5e424fcacc49f37f44", + "c4ebd6f55627e5ba828d946e8c7b38e42f241aff12360d9266a098c03e11b6081d28bf1ad3315128455af81d83d7278d", + "f7fe43c69ef5bf3f94573720aa6118c27bff26cb099ea6f04381c97b3535d20a72d7bd24da108f710db42607131e9c0d", + "879c68b616843b4ec604b1b4cae6506ab66323f552aa1015e93a15bb00f902f318050189d2ccc7fa2856734af33ed892", + "8f0f0733d45e7e2544cee628fbe4682116846a2bf85e37fa00b51547fc61e37191484831692c50b668477ebdb243fcf4", + "b86db362ba3e2372ab2a275d5174278aece3950887e66a886be098b310062fc962708192694a1aefbbb6ba6ba2da631f", + "854a8c769ae894cb05150193d15336657edbf2eebf25ccec1e7777b45c5d30530bc56a10cdebff842debeef0d196c7a6", + "58b6075499693c1cfad861f28bd411ffbe2aad8c8131e1dfaa8058edf3b6cc53d9deffe15e7c809cd00029c9e6a49d19", + "b8f98f3d33298774000d9e5fc2acdb84a0c91744a70099ce1ee1534769968f979aec330bd22ca60b62d288d31b6e4e8a", + "41f9067cf09a70d800842139a521ae469394c2301c9b3322b851ec2c0f50464527d87f25e6fd753e5224f7b373bfeff3", + "94cee34ee84488a7f3b0046cb5b369e1aca8b3880f3f982e2cdea4796f17156717bdac9a8798f2182e3d3deb2228b72b" ] }, { @@ -400,22 +474,30 @@ "03a6b45e0e28f1bf296d0b2c0c71a6b369b134b768c6c5bc8a2c4526cfefc380d1", "03c126efd6b268085be966756dec3ac60cc036148475e1a8d5c0931871b4b01f89" ], - "pop": "0275988b7fb3a73e52e77993ad71f97779f07709fb1f0a88ed774446216831a6f6111e490365d64b76b8a0c5ba5fd2ba3c641b9f0619c3cf8519b9424ff59bd953", + "pop": "033e0efd8654acfc5dd779cd9f38ffa858a01351488de7fd1c398da6362572477d2dce97f73bcca13f511cdc11a9dcf0d7ab3afff81b2150c3c863abe249757cae", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02c6ee013f6e28c62a8b0073b9cdd4e717023c40af6b1f4eecf076cfd72c0e2a7c03675a400906d4d5f57ebda053a14ec90d59550a82177fd59fef54c25bf5fa8e3903ffca04997ed1c26c885e050bd1c4997852e5563c3fe2c1849bfddd05213259020294dd00b7c3652d8e218255008d1931a83da66c32e2044237bfcda138bab96fd802c30b895f7730f4e2bbd956b5daf41420a2c5c233245f51a17247e6d2bad22c8e03a6b45e0e28f1bf296d0b2c0c71a6b369b134b768c6c5bc8a2c4526cfefc380d103c126efd6b268085be966756dec3ac60cc036148475e1a8d5c0931871b4b01f8903219aa56c26c463fa6a59de234219148c4961dea21fd0c31c0f38bec81739aab7", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e4345bc637dd5be7ef1df92265fc824e6f258d4e211e7f48e7db27e4a913da633c57a05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02c6ee013f6e28c62a8b0073b9cdd4e717023c40af6b1f4eecf076cfd72c0e2a7c03675a400906d4d5f57ebda053a14ec90d59550a82177fd59fef54c25bf5fa8e3903ffca04997ed1c26c885e050bd1c4997852e5563c3fe2c1849bfddd05213259020294dd00b7c3652d8e218255008d1931a83da66c32e2044237bfcda138bab96fd802c30b895f7730f4e2bbd956b5daf41420a2c5c233245f51a17247e6d2bad22c8e03a6b45e0e28f1bf296d0b2c0c71a6b369b134b768c6c5bc8a2c4526cfefc380d103c126efd6b268085be966756dec3ac60cc036148475e1a8d5c0931871b4b01f8903219aa56c26c463fa6a59de234219148c4961dea21fd0c31c0f38bec81739aab7", + "nonce": "898f0d05414b412d80db9c1e9fbe8fe1ef9ce41e3f9bdcfd5491330df8235059", + "nonce_commitment": "033e0efd8654acfc5dd779cd9f38ffa858a01351488de7fd1c398da6362572477d", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d4837033e0efd8654acfc5dd779cd9f38ffa858a01351488de7fd1c398da6362572477d02c6ee013f6e28c62a8b0073b9cdd4e717023c40af6b1f4eecf076cfd72c0e2a7c05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02c6ee013f6e28c62a8b0073b9cdd4e717023c40af6b1f4eecf076cfd72c0e2a7c03675a400906d4d5f57ebda053a14ec90d59550a82177fd59fef54c25bf5fa8e3903ffca04997ed1c26c885e050bd1c4997852e5563c3fe2c1849bfddd05213259020294dd00b7c3652d8e218255008d1931a83da66c32e2044237bfcda138bab96fd802c30b895f7730f4e2bbd956b5daf41420a2c5c233245f51a17247e6d2bad22c8e03a6b45e0e28f1bf296d0b2c0c71a6b369b134b768c6c5bc8a2c4526cfefc380d103c126efd6b268085be966756dec3ac60cc036148475e1a8d5c0931871b4b01f8903219aa56c26c463fa6a59de234219148c4961dea21fd0c31c0f38bec81739aab7", + "challenge": "fd6f45e47bb4ce5fefeb10aa90b464de63e61a5d0a799918e4be95560dac7413" + }, "encrypted_shares": [ - "615a1e6814ade0b4cebf128a118bafeabbe4b5bd52069570caa1dd76c8d15c1ce729cfb24cfeb77c07345179ea530421", - "f61a5c578fdc8f87bd7414f4aae8f526f13dff43281cf3ad8afc024fe94de0d633655fb6efa66a592c6d4e84ca5e7250", - "125466207df5c25702252951569b6f2acdecf22c581fc0c956c5b1afefc597146b07f9c14880e1e458e6d2c9fb82768d", - "a45b4f076cf763d21d6e3a2b85d9af26e1a644cebd6fc6f757502c23480c3aeed3bb20e93013908e09c1f3b1c4b94299", - "cd34c7b998d1692722ecd8b6c041c3189a6060f8d078f3481eda3e1bacc6bb69c22121024368effe6bd5e85aaf260287", - "e4e3320c2b6e7048ff983983743a9334a247a2acb444a7b19319fba0c593fdb02b268e8b17af855474aa0d441c131741", - "e7ebe4dab8bff3e8a3db2310403bb65e2d5d591676235164c4ce0133797f2c9c03a7432e17382891be43746bebd30a3f", - "6db74273aa99758b90999e6bdcde04dcd599271a0cbf01e677406cbbf0e72fc14d8213d44824b6eafd35c36be64aeb20", - "d7cc113edde109dfc9858ec7e9e33d61579ceb0e3419bf875b0963e676a32c6ad68d798c2b22ce4d0ba4c2434c5961b9", - "d523dff16746ac1b485cab77e094176050b1d7734d945be8d7dd5f003aa08a59994d71e5658a41483d06a55686aff7db", - "c85a93bfdeb38d08c73b50ac4b925fa2a72b261ecd857bec927699d66af4d7e20f8ff394de51c9adbb12e075f249dc45", - "8303f954a670c4dbfd3f0f8e4ec8339f9f8782ba8a906cb5d0f85dcfb28899b58cfe565785b2a4de260fe36684ce48b6", - "4cc03c506f4750ac7513d1a00e08f5254817ce4c38c9552b98ff6b4dbfa5ca4ca44bd41c6372fb26e7d2ca37ccb9fcb9", - "97a91d1f4c1649737b02a1878900915b5f4890ee7e4f5a09e3e771d0886d34d67965dbfd34aff515dd86752a11ce5130" + "6b88147e26bea9be37a52923b866d1053d6fac8bbf57c8d2f22bd1c752415927540e19a4fcb0428b5180e5e09966e59c", + "78937b71d18768011e9761626f02c0afe0b0df631440ed8103e36361056fd3857cbce5bd15500741e75386d26a27a0da", + "9499f1b68e05f2144f8994b3c25f3ef94a071946dd6d3aa0057d4f893391cfd3b4ac59abb7fb1fe1a92672f3919fc39e", + "e7a4ff882a113b7c8db860c478d5582f8af8ffcc46e8ca28b49be998b3b8a295e591b04129c92e1629fd2d2d3a2aca4c", + "a38d7821843713390723815ad3833e6c6ff2df1c548e5fddaccdd4e839369a8626aa1821fe1549f2a95ce7bf82b9576c", + "d0fe05e1a7e60d729234e625014b128d24e843dc4a4eef0b883efcae4380a2a7b25e1ffee205fe47363fd7cf52ca8b80", + "345f474128b906197e7ba80f0ab911718bb050572a3990042c0d4d1c92dcfd3760b80389d780b365ee37ee8fe7ad5bb7", + "038cf2ea285856afea71797e9b4a34de737707c0d1b587794e386a76c75ebd769fbba9edc4db45fed07c2a46717dd4db", + "e0ff934f86576678a3bbfc3ace85cb8e91efd11e71102c203a35b6e873a411988f5cd7b10e46c9d2680e7bf472c27f61", + "b57c9c407e9d83649cff4db6059bf3483b0980c440f3e975f08913fb66845938a186de5eacfbec89294861d1810bc4a8", + "2c99406a31595b9d9aca1f21398a8bbf8f819e68ce05a868d8b2a7d19c7f04df389df067cd13c60685c9642edede6792", + "c805c064b6302ff12a612f688d52b83b6b4211776c591679d9ebbb322c2c959da4845330356f98405b8ebd1ceff2021c", + "1c43ee4d8c74527e37bae81dac1e8734fc44e871bf9cc0c174fbf8bd3c328b494f9404c77d8c3e43163e4fec6a4e3beb", + "91aec13ca81d7bdf6e8d4cbc56b8300f92d3313589c0248bcc9fab1ee95aca5a33bd8e7288e2d6c780c0f6f4b4f770cb" ] }, { @@ -430,22 +512,30 @@ "0259aaa0f0e9ff979af8be661031663368da236f1aeae59e41cd8eb3eb96431a1e", "02e05e75c3451873675bd96133abfeba1aaeaf6df311d34d1eddbfd3c020ff456b" ], - "pop": "031ad82d94f3fe7bee29148ada2e53716feb09e7fbd804c07e58c08a3c4cf9fa0230fe1882bbe60d21b491fd983d13c9fe574339357ff82118ab75b320b0b61e7a", + "pop": "029f267a1af3939cb51bf9c9447168ec6dc8bc87ddb65dba97e29dece651fbc79921b77b4088e4923d6df9b85a60d786b253fdc83705a3f2684598735534a1702a", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03ba8cc66420c7c0a3bc893143608dbdb1bf469dedbcaef50e6f5b58779b833f8e0332d3dff1fc69d5395d52e811d3cbe693b10cc75aec68255dc88dff8aebd327330247b6acb9abd08d2deae5abc07280f9210db2c55f27b2f1d82a74ebff5d9c779c02271f3f95cfa830120cc95623c8152b4f3f71b455cfc0ca9f89ccde9650a3ee5e029bdab13b4f0168fb7be62da2a1706ac3740080bc7f89dd4c74e426a0ec9b79170259aaa0f0e9ff979af8be661031663368da236f1aeae59e41cd8eb3eb96431a1e02e05e75c3451873675bd96133abfeba1aaeaf6df311d34d1eddbfd3c020ff456b03752e8cb44378981e7aee3de908fe1ebb411e4064de155d4c3d09c3df022db23c", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e4345bdad46e92b0c67b1700f8076abc316df44cf1bc5e990e05a37dc1bc786f77bd905aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03ba8cc66420c7c0a3bc893143608dbdb1bf469dedbcaef50e6f5b58779b833f8e0332d3dff1fc69d5395d52e811d3cbe693b10cc75aec68255dc88dff8aebd327330247b6acb9abd08d2deae5abc07280f9210db2c55f27b2f1d82a74ebff5d9c779c02271f3f95cfa830120cc95623c8152b4f3f71b455cfc0ca9f89ccde9650a3ee5e029bdab13b4f0168fb7be62da2a1706ac3740080bc7f89dd4c74e426a0ec9b79170259aaa0f0e9ff979af8be661031663368da236f1aeae59e41cd8eb3eb96431a1e02e05e75c3451873675bd96133abfeba1aaeaf6df311d34d1eddbfd3c020ff456b03752e8cb44378981e7aee3de908fe1ebb411e4064de155d4c3d09c3df022db23c", + "nonce": "dbf87f2fb8fd45c1cb28ea525d44811b4c29add553bd8a0548cb08427588f72a", + "nonce_commitment": "029f267a1af3939cb51bf9c9447168ec6dc8bc87ddb65dba97e29dece651fbc799", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d4837029f267a1af3939cb51bf9c9447168ec6dc8bc87ddb65dba97e29dece651fbc79903ba8cc66420c7c0a3bc893143608dbdb1bf469dedbcaef50e6f5b58779b833f8e05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03ba8cc66420c7c0a3bc893143608dbdb1bf469dedbcaef50e6f5b58779b833f8e0332d3dff1fc69d5395d52e811d3cbe693b10cc75aec68255dc88dff8aebd327330247b6acb9abd08d2deae5abc07280f9210db2c55f27b2f1d82a74ebff5d9c779c02271f3f95cfa830120cc95623c8152b4f3f71b455cfc0ca9f89ccde9650a3ee5e029bdab13b4f0168fb7be62da2a1706ac3740080bc7f89dd4c74e426a0ec9b79170259aaa0f0e9ff979af8be661031663368da236f1aeae59e41cd8eb3eb96431a1e02e05e75c3451873675bd96133abfeba1aaeaf6df311d34d1eddbfd3c020ff456b03752e8cb44378981e7aee3de908fe1ebb411e4064de155d4c3d09c3df022db23c", + "challenge": "6f03fdb17c5d4f71c3d8a4b8b05460b70ac843524ef0039a0bc3382843ab8599" + }, "encrypted_shares": [ - "2f286aa0dbb2e269b64c683465bc2466e8a30ed2c186673cec10591b067d1a40ca4d752daed8dad2dc284f5a195ddea5", - "12065394e6d664d1349adf7e758bf30f29d8baa193d540d29fa7e8ec549b699c5abb2c5d6f4654f0114f254cf50fbbfb", - "22f4cf5484fb3690a959a0de94ffc9d9e1e7e0adf7982351e5b7b01c0d944cce2a96c7703c43a2c4576a24ca6e2b9460", - "13c8951b1a9cee62aeb4aa54811b9b597dfe3caaa1f986b0e0ef6392448a9364ec7ee7852558c90daf2f316ee9319924", - "6824e822f5c665018b8e83bdf50ad868bb01983468590bc6e68264c33b07925e4437ae0de4efd4e88771e0a298f2ecfe", - "d009a471a21b32db47fe7a9a43f460b280c6bf69b6976c33cded6ffa0d803f4fd6bc2400c641330fb51a45d4f5bbd50f", - "ab57665a2bcf6799fccfdfa0b1c22812b5615bab1c38a59946d24d929bae5f1211c6b192338153e52e76cd0ec41e37ac", - "a258389f6fc6457180f3206bfc98f9a2a049bb1fc11c8644a3a46f47d5af1d7d1d0c51ad3dd1d04029b48d639a480192", - "a46de31903d2d4c82650e8bc1aab023fe522bd23ca60ace34d83b3912c046d5fab9c8abe95085d585efd13a10e392250", - "d67e097c7a336aacd6f10a895c990125b3e4b968e2cfa8c596a07128ee28ca76c7f8c702b8837f5002ea8539f5e8cc43", - "e31be82e3fa79a367d6ad35860e75d240125aa9f0756c465309312ce57081c69d50b2169d29f2285b7ff925c478e012f", - "dfd697364fb341418fc1f00aea9ab86a2d46a947df733cfb84b4f675723435ac7abddc03c58e05d20baed11bf6368af3", - "bec1924a5212ea33b942da397e8ca230165eb8d8dff127b76971adff0861d7371176e6b6bb91039f46fa87f27a402abc", - "148a80fea7c7950b2df082ca931d8eca074f08cebb343fb383762bb3cd2abfba3d2c49f7983b5724ffdc92ea18337295" + "f13f995a0e911036f7d0a1ed00f1db42a365897827854af6adccf313a856d30da0ba11b6a8aa2ca2f723946af8b0ef42", + "c429ccb285c4d966f2bd90ca7db39cd5ca727a121a9c7b47254fea781c779f544b96cb7fb75709965d1ba3e54d1e3b0f", + "2d379276da9e0cbb0c6754d92c0033f0ac3cf4d673cf64941282570874f74d95472b875a91c94f0b0ec67b604d26d129", + "ada8e5901f52e04a08cc8006e6852eae8763bd7a4d978063d7270c7c022a0db271a045594a76dbb1dd839d5936250458", + "fd470b2af5f990edb4a716396e7cba9dd63df29b4b642918bd4a37046ab56568f6364f36cda63e3f361ba9bfe8291c00", + "d420b11229734db85f7a3bffc55de405fd0b66a55e91c930f1970ba3f6693a0f872d0674f01b6579f91bc52c4baa37ac", + "d2a910931a80879346be87123e6d6a91aad6d8d312c8709418378783c97653b980fd87ff97473b428b9c840533a690c9", + "147214499f4438aa952e385f02a214f6959f19cde8c503c0bf5a094112bdde226b221543861e8057b34a71caf74d3db0", + "6f538c9c0c03a5870168780ab273405288beececae39a16f276d91b947fa48c94593f5f1e469782dabc0f13ce9f156c6", + "8d5cdbe9901f7784160da1975f7e5caa45855a7c9ebd6a6167386b9e9ecec9d4779bb08f04a3fe5401ce90b198e8b3bf", + "992c8a5e09d6a0a8e2fc3f7b3f50fd30fb46dba9bda0c33d2df0a7ad1c1fff1aa199d3b37be0451dfc6ba720de90b1f2", + "16e213ac247e869a589130207395e069a6305a9214b979885ae34e2473c740ea188723c01ec737bd98187fa8d5ac28bb", + "c8b0d51c6b0cef90f88236d839921ebf725eb2c49c9f192a459b69a8a5b60be1d2a787a3dbc4c646c2c8de3a88d7058e", + "c66348cdaba4398eacb0ec1638241fad97f5d030380225ad00351e250c4b039c127b38edb58919302ed1b0131a9e0e3a" ] }, { @@ -460,22 +550,30 @@ "021693e8e97250a449e1c822b9fb887493a3600b06a48f7a2c98184cbb68730bac", "021ea69fb3422717ae4512c9da609f856906e0d9b58c34c4ce4f6e3029a14e6549" ], - "pop": "021ed3f265628936ed49f4c6924a6019b4b4a3d274120c2372a0aecaff6345c5f1ad2717fde5849dafe5b75956a46eac9f4670b2f1b2c45ec63e42420044e1b1b4", + "pop": "03ed3b71c41405f09589f761d25515805120ed257e78dcea6e2b62bf52b519adfe5cc8a073f1a3a57989c45b049a0beb0c3cb10578b2db736ae1d577da69d20b45", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a035cbcfeeab4a86fed431c5468fe98e84dca924b43efb6a098665a1c06839c24120232dce199a81d9a90686248d5e3541875e71bfd6ea250bf5bf3443905403da04a02784102cbed98fff3f1e260d179586d6b5ca513dfc54daa0c733e7e6e9030a0a803659510549cc409a7ff4ea4ad11dc604528962a26328d27472c3cb231b31f0b34037dfb277e037fce692fb719b073e5a7faca5942d51ff22086a34f4ae18043e6cc021693e8e97250a449e1c822b9fb887493a3600b06a48f7a2c98184cbb68730bac021ea69fb3422717ae4512c9da609f856906e0d9b58c34c4ce4f6e3029a14e6549036c18a2daa103a3106ac90403179dd10c6eb205fe0f8142a85528ba0a358dc3d3", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e4345cacff4c9086166c704398b13ee7c71aeb80a8a88f23ef7a1643d27a1ace8f5d805aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a035cbcfeeab4a86fed431c5468fe98e84dca924b43efb6a098665a1c06839c24120232dce199a81d9a90686248d5e3541875e71bfd6ea250bf5bf3443905403da04a02784102cbed98fff3f1e260d179586d6b5ca513dfc54daa0c733e7e6e9030a0a803659510549cc409a7ff4ea4ad11dc604528962a26328d27472c3cb231b31f0b34037dfb277e037fce692fb719b073e5a7faca5942d51ff22086a34f4ae18043e6cc021693e8e97250a449e1c822b9fb887493a3600b06a48f7a2c98184cbb68730bac021ea69fb3422717ae4512c9da609f856906e0d9b58c34c4ce4f6e3029a14e6549036c18a2daa103a3106ac90403179dd10c6eb205fe0f8142a85528ba0a358dc3d3", + "nonce": "f1e0a302a4c4735fdf38a43f9392d4ec621c574e2101029c1b99f568c2759301", + "nonce_commitment": "03ed3b71c41405f09589f761d25515805120ed257e78dcea6e2b62bf52b519adfe", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483703ed3b71c41405f09589f761d25515805120ed257e78dcea6e2b62bf52b519adfe035cbcfeeab4a86fed431c5468fe98e84dca924b43efb6a098665a1c06839c241205aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a035cbcfeeab4a86fed431c5468fe98e84dca924b43efb6a098665a1c06839c24120232dce199a81d9a90686248d5e3541875e71bfd6ea250bf5bf3443905403da04a02784102cbed98fff3f1e260d179586d6b5ca513dfc54daa0c733e7e6e9030a0a803659510549cc409a7ff4ea4ad11dc604528962a26328d27472c3cb231b31f0b34037dfb277e037fce692fb719b073e5a7faca5942d51ff22086a34f4ae18043e6cc021693e8e97250a449e1c822b9fb887493a3600b06a48f7a2c98184cbb68730bac021ea69fb3422717ae4512c9da609f856906e0d9b58c34c4ce4f6e3029a14e6549036c18a2daa103a3106ac90403179dd10c6eb205fe0f8142a85528ba0a358dc3d3", + "challenge": "4fdc0b067c3e21c287fb2696b4c123fb3d69e222ae6a25c94ba9c8fcb1c6b7e5" + }, "encrypted_shares": [ - "b18f055de6c275487ddbb2303b3b78c6f41d8591dded5078a72f7cbda4599323c735859ed03681e8d31d3a2a15062c64", - "24ba2c1b5d472e560a08d112992fb09987348c36131e72fde5d9b2aa7d610ce0076812b6ecb4f6fddaac2c2d35fd228b", - "ca0b56278ef65a9727d846a4d19fc8e892b9a58a5f67fada3d5567a379ff069f95e5a727071a991f8a32c5e087d03410", - "299d096930e42e746f13fd26816b63ab99a6afb1a823519a40394890f338a2d3d0e2a2bbbf91f0ebd6e3359b6114767d", - "9d4781a8dea9e89d8eb145cfd9cc88832644095c4e6dac9e2a63ef51b1b1cce2327765775c2c33222f018632fa7ecedc", - "f961e98f274546825a7cfd8c70b761ce9095ccd31791743504cb0724401d900c3eeddf73385ca1bc0c67905a3274a407", - "68d709112ab62d87b8f41095752f47390990a976b3e23c7619c76748c437440b38452eed774204e6922f952a920dc148", - "46798c1a151984f2238b58d59530b7cd12a347af874ee16b1845aa9d85119da26f74ffa2af3c9018ea1b169cc2ad8564", - "6f5368ff9cf1468ff4af237579b3fdfba78ebe671cd846cf47227fe787e495bb8e73e3af570caa817946f6516b8016e3", - "7d07eec6a2067234d5a28b5f9ec48c5355fb481fed87c0d078f91b5a408bc87929e4e626c071eda99387bd85d0a3a8f6", - "7dcd9bafba3a56f343fb38d03749987a908e55b37829d4f28fa02dc192cb83fad80a5fd268d5df3de6d925f5365aa1d8", - "93982ea6ffdaac1f967eed9424369136ff15db6fc27f7aae2090e45fc7ab160fcb4b838766f5ed5459947c2f1a6c4305", - "a841f8fb4444fb24ed76c112e1f74b3219131e6380f99f84513613e4a67a343cb2104fc2ef319f00b62350758af16a7d", - "eb0c08fd9428a95531209371aa6fb9142f95fc0de5a47fe76fa80660a925d343614ec624f82f9f03fd16786bd5f63f2e" + "58cbada354dfeb77bbc8e66668f27ecc6d42862bbe32c7a68a4f5d7fc31c5c4232bdfa064bacfa23c10e0421f15a2319", + "fe4441df96291739abfa3311358501f71e3c1aba758f32b63d1c4cb6cf014273f84012a7decd7c9075ba0545eac2d765", + "2e1b2942877a81c95bd1673b237328d632ab820395e3111e795075359b8f8cfeb9b38b05a98f4328bc9a2425f89ccd9f", + "6331fe90860b8af96f4bd509bb369a0119435d81de15706371c08a2fd165858fa88e16fc4d3089b7e514425215bcab6f", + "1fc049341a085588fc7019a9db919186039a35bf08e27f3c420ecb0f4fc74864d593d1183202c6339ddabc25c179609e", + "07ce1c4cc491d96036c061dd099baa4ff2c365229548810ca66381c191193817243e3f29c27bfc5f3aeceae889e23283", + "e8a58f10c03897967605af1b8179e542d046ed3be3b8128465576d34d11cf8ef3352111f97969c829f1c9136bc168757", + "b5194ef9256436b4e2338a6d21232b82239b9b80855820dd244cbc2998333d47013e08e0ca73ad711b0627b90580cb5c", + "b4ce2958156891d8e4d0620fec8d17d468d5969c239b907c26ea8534973b7981a3f0010f0d60a621d70f0fab672eb6d1", + "4816346ea0c25d9e5f48f315ae6a5a643654db4ca6da5c90cdf3cbf35d118cef88b44fe727c9cb32ca08768ed99b37d6", + "2863915792e24b8bafde66e889d8943ee3cce31c7ecea80d1b9b35dc621fe8d64e133adaede927bc22b65577be2d5371", + "ab200e048db34322de55b25983cbe2d328831882b45b3ab0de9673b24c91f388f4b88d7de6d2f5686cee921632d45439", + "ba4e21f1acee47c0b65a18eab833031fab846376fa43912413eaeefdee2e7a7a8aca2c93de17b88132002ba6e54faabc", + "de06eb98848ce51fd66bc07c7b842000ec8e64c6991515799244ababdab426f51234d59cccaba761a7445c77acb09aff" ] }, { @@ -490,22 +588,30 @@ "023549b1b25d2396e44b9468443f036492c72631b24a5ac5ec3b475faba6110bc4", "03892a6ca75ff655473a7a030264a7d39a844ba35570cd4a88ac60459faa41fd0d" ], - "pop": "0379ba28433b8fed7c9a3d201adabd39562c73bd4a2b62ef38a1fd291babcacaec74bd0f08940a49a5788fb26423fbd3a601d0e60f2510634c5d013d25af142f5a", + "pop": "0213338855dcebcbf8fe2407825fc23cd24a8d059671385be57197b0b0321118aaea99a074d3379a18d825b180163c466988f46f3539a34fb4b63fe8615bec7295", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02b167b922e3588b0c2a7baddb159f7a8c26b5053b9d32d6c5410b47987983848202df7b7b224de2ca9615649d7046044e19daefe10d0d512a437891d08118aae0d2036dcae49d5f41e1cda816e564c55f2d51c33f2c86a6de6d91ac5ec0c67f33f3f2034f966828f4bc8b273d337aa434da29c7d14be6c78bca3ed338f859e1a444752302da21d2a0f1ef58c4b69910a9783009e46829eb4f109d4f67f6c697863b83db63023549b1b25d2396e44b9468443f036492c72631b24a5ac5ec3b475faba6110bc403892a6ca75ff655473a7a030264a7d39a844ba35570cd4a88ac60459faa41fd0d033c5cb23c92642c1ca67419dd836626530b5b6e13053fc9cab2e44d8f97bb38c7", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e4345092aa2287a9115441870a87f2b0555350a06fdbea66314bc1b34ace600da399705aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02b167b922e3588b0c2a7baddb159f7a8c26b5053b9d32d6c5410b47987983848202df7b7b224de2ca9615649d7046044e19daefe10d0d512a437891d08118aae0d2036dcae49d5f41e1cda816e564c55f2d51c33f2c86a6de6d91ac5ec0c67f33f3f2034f966828f4bc8b273d337aa434da29c7d14be6c78bca3ed338f859e1a444752302da21d2a0f1ef58c4b69910a9783009e46829eb4f109d4f67f6c697863b83db63023549b1b25d2396e44b9468443f036492c72631b24a5ac5ec3b475faba6110bc403892a6ca75ff655473a7a030264a7d39a844ba35570cd4a88ac60459faa41fd0d033c5cb23c92642c1ca67419dd836626530b5b6e13053fc9cab2e44d8f97bb38c7", + "nonce": "059b7846d24fa241a11eac3786b678e3c5190f3379b1b987646c242cde7b3927", + "nonce_commitment": "0213338855dcebcbf8fe2407825fc23cd24a8d059671385be57197b0b0321118aa", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d48370213338855dcebcbf8fe2407825fc23cd24a8d059671385be57197b0b0321118aa02b167b922e3588b0c2a7baddb159f7a8c26b5053b9d32d6c5410b47987983848205aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02b167b922e3588b0c2a7baddb159f7a8c26b5053b9d32d6c5410b47987983848202df7b7b224de2ca9615649d7046044e19daefe10d0d512a437891d08118aae0d2036dcae49d5f41e1cda816e564c55f2d51c33f2c86a6de6d91ac5ec0c67f33f3f2034f966828f4bc8b273d337aa434da29c7d14be6c78bca3ed338f859e1a444752302da21d2a0f1ef58c4b69910a9783009e46829eb4f109d4f67f6c697863b83db63023549b1b25d2396e44b9468443f036492c72631b24a5ac5ec3b475faba6110bc403892a6ca75ff655473a7a030264a7d39a844ba35570cd4a88ac60459faa41fd0d033c5cb23c92642c1ca67419dd836626530b5b6e13053fc9cab2e44d8f97bb38c7", + "challenge": "33c1caf2137b91da235a45321b1243a1a223397e5a8c658d2e50cf0739923f0c" + }, "encrypted_shares": [ - "ef7947943862b711fef9731ac45cdaf859b44f713a6bd98e4788553fc4aaf582a6cacb6e2c9d3cdea36892c6836ec255", - "0ac76804411259053e01458d802ef8c8b24ba476003886d490c2fab0bddb14e339da4a9e0302c5e34bb51bde8dec3078", - "0220970ec7b65dfe9cb1ccad9cb9f5cbc5379a5292925d2f3d95d85f601d5c79063578f03659d898b9521ac93ac1994d", - "48df70252bcdeaa18ce6f0d4a60ed658d807e06ae7d782345f4138edbb259b3f171e90339be30dc9f76ba037fa7a2bea", - "58260abffac243499be555ee77d9cbe03784f0cc8255f1cbb79b079e8a428053cdf1c06ec8f589bba63f264adc89bdb6", - "eba64c6d1c475e9fdb0ff887d8c3759e2ecbcb46fc28e14945099ca3e11605e159a5035c8d9b32040dba2579a3d12732", - "33d5cbfc3cd0b076c24d0977a129dd72d168413f95f9f6d20d60554df3a8aeb0961a8bbb50af32016b4e92c0217d951e", - "6f611b907eb1425d1e4ee8c3b9c92e2163056b1f6a26c5b3903eb259f4cbdeda03b3e1c494ca62bccb99abe78316b73d", - "34167f50c48dfdb69b77d7fd4f589ee0e3d93a71b7a6a31de9eb32e61e2bf633669080084b44cb3242aafc7503073b06", - "beeb900b6e617d74ce4f10adcfd8faafe89ee68ce2d43144923de46520e7120a6885a166266728c149e0bde567e4eb80", - "bafca43716d31a93e6509e3721f58ef878710399e4c693975355530c9fe1fe4c86712887bb70c39182883fe397aa40fa", - "9d48412cb50369241347034cb24940c24bb4f8ef197198a8894559c3dd4a8b9d08b240bb76ad870426251161dae91d06", - "51d53668fc3f46212f40e39e2969d5a5496081b788673b8b45359f99619633a29b708db7eb7bf0d1696f191bf3b978a8", - "2490dad1287812825444ad51d17ddb63b94c8095c485e03f9cabe3178befe32e8e0bede9c99fc05e839db64b29ee7f57" + "b08e709d2f6ded0e6b1de789b0a90d00ccabd63978caa899522516aaa60d19b02ffbf0e598bdbeec7ae79a66da8853df", + "5f2342c19cf3b37dc742fdb8a0c991eafe69d1cd57c50e25b1e40e805e09a15cdbab6da6c40a5175856ceb7697d0e5d2", + "5eec8435d7ad75c3643d1cf6bde19eead46713f380fa380000985670741fd730d2506146155920cee2e8d2481a681f5f", + "24804aae604593a97818b831e89a462b5e92d43fb03ee734e190b4d919060b0292880b208753fe0f1d36159e4816e034", + "241ab83038d0a1c994900e06a97a17ffc9f116af9aabade3e504905b7d0c014a4b4042b2a4280153c3442cbd986da7ba", + "1ad18c87cd5821f810b3bf5070f9a90ee08efb8ec2c403eb6453d33ac62849e201b9d8e7c7f0552140255e8b1e6ff96e", + "9a531ad9d92b5fcd2da8ded22d80dac1a69ccae839c952c23b5fe9b5b092776b326c429e96164bc23cd2d62f21185229", + "ff5549e29f7d098ae71ee6328aa97018ec3c3e08759e7412fe930fc1ccf79b556228545f2e7d4ea65ee940e1ada24fb4", + "77b74b702177cffa1accb48a729bb38585d086d1167e437f109b1535a846d5ae6fd35c853e02842d3f04de85b222a201", + "25911b94432fd55c8f8ff9346d3eaf55b10e2cc8ae61e7551892d9e8e7cfbc852bcc44f79b580d1bdba02465be933ea6", + "115fce310b048b0efd6248121d8f4bd2b8c350b701719d7d3e15a68799f61517dd5e084ac2512a39f34ba49f528b9fab", + "abcf0bf35e4c51a3b9861d7d74d040d90760967dfc021d5327487a38f91ab129e1f4738dbec91e89bc99f35b52ccdb01", + "001deb1c3e72b0adad977fba9705026f5093b59eaf2044c15b1fdfea52eb6626f02ad9b00cb96496dcbf140fda57135b", + "0f14540bb37ed1f56a47a6d516db19b3cf8a3167debebe58a4edcd7ad846717be1e76f888754cd072fe0ed27ea8a96b8" ] }, { @@ -520,22 +626,30 @@ "025223e3985cdb974270a4534c66bc5bd5bca5d9d8e9dcdfe110a34e1caaba9a46", "0327bd5cb93a8be666d4b88e2097c05ee5834d1058698c3aecf369d3112c9637e3" ], - "pop": "0229c95309045ff8d7f2ea4642de22e3329e0b800669aea4188010701893b46a91f73c43199150dd2568caeead6bb6e00df1bb049fb9d5815ec76247b796b2ce25", + "pop": "03de5256daf707b4d6d8bccba29246f4f1964490a8ddf3d2446f0891efa8bbdc207158e1d1ba0ff6eb85e5f69c091eeca7261de365e22bcf3e663ea686325b312e", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02bda7590d5969604d78b09a5ab00aaf2e76fbc4549f3195ee517b45c880353d580352e77a2a18c6a2a793b7ea0b4bceecf1269d802b75e106e6fce357b81282d08b03a2918f07b3871e19672be0cd6ed7403e3cc507f7817ad7a8d51b842e7ad0915a02d2988638ba9a09955ff7d3bd1eb5b311a8faa2f9173b66f6cfeadaa6a7141cd90212bdfcfac42442d8322e4572bb33ae261784e60e93e83c38fc9b608615aa5339025223e3985cdb974270a4534c66bc5bd5bca5d9d8e9dcdfe110a34e1caaba9a460327bd5cb93a8be666d4b88e2097c05ee5834d1058698c3aecf369d3112c9637e3035f0a9845e9aed7360bbb901897888862f18f85e64eec0245cb7f210e9065708b", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e4345e606db60bab250212f4af6f174f9f8240cd115d2b30d9818bec4cfea4a3765ca05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02bda7590d5969604d78b09a5ab00aaf2e76fbc4549f3195ee517b45c880353d580352e77a2a18c6a2a793b7ea0b4bceecf1269d802b75e106e6fce357b81282d08b03a2918f07b3871e19672be0cd6ed7403e3cc507f7817ad7a8d51b842e7ad0915a02d2988638ba9a09955ff7d3bd1eb5b311a8faa2f9173b66f6cfeadaa6a7141cd90212bdfcfac42442d8322e4572bb33ae261784e60e93e83c38fc9b608615aa5339025223e3985cdb974270a4534c66bc5bd5bca5d9d8e9dcdfe110a34e1caaba9a460327bd5cb93a8be666d4b88e2097c05ee5834d1058698c3aecf369d3112c9637e3035f0a9845e9aed7360bbb901897888862f18f85e64eec0245cb7f210e9065708b", + "nonce": "9588bdb46a3f9d1dd0861ff81036a81304c3a3c5ac9818ddc409dcb72e36390a", + "nonce_commitment": "03de5256daf707b4d6d8bccba29246f4f1964490a8ddf3d2446f0891efa8bbdc20", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483703de5256daf707b4d6d8bccba29246f4f1964490a8ddf3d2446f0891efa8bbdc2002bda7590d5969604d78b09a5ab00aaf2e76fbc4549f3195ee517b45c880353d5805aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02bda7590d5969604d78b09a5ab00aaf2e76fbc4549f3195ee517b45c880353d580352e77a2a18c6a2a793b7ea0b4bceecf1269d802b75e106e6fce357b81282d08b03a2918f07b3871e19672be0cd6ed7403e3cc507f7817ad7a8d51b842e7ad0915a02d2988638ba9a09955ff7d3bd1eb5b311a8faa2f9173b66f6cfeadaa6a7141cd90212bdfcfac42442d8322e4572bb33ae261784e60e93e83c38fc9b608615aa5339025223e3985cdb974270a4534c66bc5bd5bca5d9d8e9dcdfe110a34e1caaba9a460327bd5cb93a8be666d4b88e2097c05ee5834d1058698c3aecf369d3112c9637e3035f0a9845e9aed7360bbb901897888862f18f85e64eec0245cb7f210e9065708b", + "challenge": "eda0e1eef64b90145e3563d95197d4f148d50bb0a34f12e19835f6185c230452" + }, "encrypted_shares": [ - "32f63d26e49d5b308782c44f6908e26bfc9902c1b0032194c1984b4cef32967a9b1fed2f0e69cdb015d0db405e3bb9ef", - "f1661197bd41c9f7a161184bde33f3afd5db4ed09be4e975e53c24011145c84bfa76801939579dc8aefee66ea2ee5bae", - "b1aae086a8f8930c8fd62c3ab2022504899fbfd24e0a013cdf672a289e013f819bc988d4b674bb355c9d386d977ad317", - "421d7aeb425ada608d1d29e06bf139b4211a6a814bdbbbe1ba799f6b115f57509a462aa4b3d7cb4ffd2c920fa146c594", - "18f0bec358aef20f1c71b4d4425de7ed9770c7d28f11df2f9b9b9dbc37dd51bc8be0bf3b267d15de90fbad4dcd168109", - "9cf7882dbec9a4225e3004083116300d68a16292ed3a7c12584f06ec8039a9b95c316de99c685cfb434b40db6ba5297a", - "ce5eba7a77308fb49a991ac3711305818dda5cfa41eea1e59f78ea26b4fcb9ea1b71872115873f5470b5cf556aae4288", - "1c03dccb93407ae05a3ec2be642e534b150593217c0830e1e27e5764b5073c3e44843f9cdaf5772f7f9b8cb6de3630c3", - "eebfd8aab1d6d84f977825a98f23664d5101059742081a8d19e2c3a39572217497cd8040c5c63f8d2a4f13cadd2e10e8", - "fbcea464a2e2c7388b8fc5b151c493efb57abe8d4c66dbbd0a38463c82ff039f625ecf7e82035e2e2ede364302f07898", - "344811ddc8f500e3a7a9052927bac5372a2deb42cbee852496707dd170439c445b79a93d87ad36d8260bd5e77955fb78", - "a65ff79323d66cc478c01680a7eda946477fc3bc97c59cc4268e2bd471d1fac63c4b8d359d8bef9bb5c3bb329251dc81", - "5b32a25ceafcb81ef0e055deef07f2ff6bb33356a5306551877a19d51d53bdb751f86b374d6739a9a598152b083c4922", - "6233a26d8a0cc0799bcfe82837eda03d65aaafda065925fbe51a0a3d3061f22a32cf553b20a0aaaa4615e6128bbe8246" + "56972ceeec112e6e0cd1937d4ef687d95b9e512ae8606ecf5e35b18db3f80f3a554ae623bef59aa601b136d18b677394", + "888a2a5c486297ad60f7e0493f6bfb3ec277405c647b3ecaecdd7a6ecd7acabe6de5eaf1f24a26362b5ff304551b5534", + "1d7b3149ed93e4847d762a49ff2fba14c5237526eb01130ddb377347b88fa7453a2c46dee2288b0a61b9666c1a1cfe2f", + "8dd6981b3aa0744f7173f9f75ee494dae7a0bdc649afc866e3e15f50556d9bf8e93ca51a36cf5afd3d2c48371a11e7b3", + "bea1729ac541f1329cb74dc703c208e54d9d22cb5db9958c9de78b09f7f810b0a81461eb935cbe09c2418d6025704f9b", + "56e4ba4a86b7dda9b4413a256834946be0f1768bc5cb2293dce4132651ce707e0918648dc166bafb8e5146b6dfc01f87", + "7d93971dad7bb92e290fda6e38ae7b283b400811a66d098791974c869db05350631c55c574521a46399fbb131333109d", + "9c4a7e66ae4d722439532b07879ef1322b74f8cbc74dc355b899b6ca2dffd70669a437b5199ed60fdfff2559a2e60003", + "5956377dc8d12dcf25138a846169c1b1c033a2a7df25468e40c179dab0a88d0e26fba628594ca03b1be182ce77ae355f", + "89c61bd7570bc3a0846ceb2aef9627bf84b8fb52e4fef1b89da3368be5d1ca1a99333774e3405d298f2a99cc000cdca6", + "3a62564fed7170cb609baa3a8f0e40de7ef1b7a042cb93b4e98b1a9fb3dbdc38604e4a8e18605b92a612804b7f4b8ee0", + "61d1e9f98565465ed0d8a3dd61735a6ac7230bdacc1479143dc5f898100367b58cab466df6a34bf56895163a98e5e7f6", + "aee34d9e65b3a34faca7aeb52570b1f45992357cc4c051be4e46ab4ce1426f1900729dc67d62124e63d6f2b1e58a6d5e", + "119d55da0e4122ca0e1cadf571203e85a6f5f99efac5c76a654cab2cacdb19d98f64ccc413af4eda7a57a163ce448f1f" ] }, { @@ -550,22 +664,30 @@ "026f89433c1ff28dc086b1f37919acee073145f605feabbdac422ef8d23bf149ef", "02793e95cd166c2ab1e2ab251fbf054578090b5e9e08368f13002981efc71f25d0" ], - "pop": "030d2d53f1cfc688b53c132ed1898b44c93dabdf4bfa6548680a10c6021c03a5e2fc9f8fe9ff4e3f07769edc771cf9986b4edf2c0816fd35587d767c5a6260ddd2", + "pop": "02d7a977158904ae88e2dc11d8a759ac8d73110b93f65fb5cc1934b7bf78730d894a1cbafe28d253029cf456c1d5a85be7092bb98a315d2959d8ef978fbaf6f007", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a039b874043fb7b2fff2e33f3ac87d7809cc9d454eb0e794e7f238b8bbe87b9441603add0f324ae01568a1841a8ef1d115246174d207dd82137ec694c751f02f6057d024e45562e4254755823ac586887bb9f54785fff1b9b19b2efcc1464950911cc69021cd543c6e52eadf51249e65f6140d9280f43bda413e83bc91c980201e4178aeb027d028e2d4e9205def1d5abcf5f93ef963583120cd4fa5a671cdcc239cacd87dc026f89433c1ff28dc086b1f37919acee073145f605feabbdac422ef8d23bf149ef02793e95cd166c2ab1e2ab251fbf054578090b5e9e08368f13002981efc71f25d002b31ee89ef09143a6ba35bf5caf2d4cfd7541e1bda3ff0152c1ea11e23f9d2824", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e43459824393c8b7e14549daecd3ccae97bfa22a4ee6a8bba236f0fbee98b71390bbb05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a039b874043fb7b2fff2e33f3ac87d7809cc9d454eb0e794e7f238b8bbe87b9441603add0f324ae01568a1841a8ef1d115246174d207dd82137ec694c751f02f6057d024e45562e4254755823ac586887bb9f54785fff1b9b19b2efcc1464950911cc69021cd543c6e52eadf51249e65f6140d9280f43bda413e83bc91c980201e4178aeb027d028e2d4e9205def1d5abcf5f93ef963583120cd4fa5a671cdcc239cacd87dc026f89433c1ff28dc086b1f37919acee073145f605feabbdac422ef8d23bf149ef02793e95cd166c2ab1e2ab251fbf054578090b5e9e08368f13002981efc71f25d002b31ee89ef09143a6ba35bf5caf2d4cfd7541e1bda3ff0152c1ea11e23f9d2824", + "nonce": "9df4a417389e45b5e6e1b9855c97e2c00abc8790729ad83df5acd7df18052626", + "nonce_commitment": "02d7a977158904ae88e2dc11d8a759ac8d73110b93f65fb5cc1934b7bf78730d89", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483702d7a977158904ae88e2dc11d8a759ac8d73110b93f65fb5cc1934b7bf78730d89039b874043fb7b2fff2e33f3ac87d7809cc9d454eb0e794e7f238b8bbe87b9441605aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a039b874043fb7b2fff2e33f3ac87d7809cc9d454eb0e794e7f238b8bbe87b9441603add0f324ae01568a1841a8ef1d115246174d207dd82137ec694c751f02f6057d024e45562e4254755823ac586887bb9f54785fff1b9b19b2efcc1464950911cc69021cd543c6e52eadf51249e65f6140d9280f43bda413e83bc91c980201e4178aeb027d028e2d4e9205def1d5abcf5f93ef963583120cd4fa5a671cdcc239cacd87dc026f89433c1ff28dc086b1f37919acee073145f605feabbdac422ef8d23bf149ef02793e95cd166c2ab1e2ab251fbf054578090b5e9e08368f13002981efc71f25d002b31ee89ef09143a6ba35bf5caf2d4cfd7541e1bda3ff0152c1ea11e23f9d2824", + "challenge": "ba4ec113c7b6531d2d865e0c0182d82c2b6e83cabd04b6123cbf05802c0dc047" + }, "encrypted_shares": [ - "630ec98b2333cab7668cda6835f137fcc6c04b896f490761316e6716c12ae45e9efec81ba59c0ff2cccd28b7233bac52", - "f217a26eaa5adff03e676aba7be0368655af5285ce04c8dee9918fc13c7f66ce796dfbaac6955426c68d11f9fed7b934", - "5c1158fa404501e305ccc08576907ac7e171feca34868f4bb95617f4b6c62dc80e5b127a81fd3d24a10f8d6aea9e8023", - "49c655ba73e4e7a03d0573f77e3ae29174be4a295385482ea10b9b446fdb8e134ee91af20dce6b1e18a8adc911d1d40b", - "2c33477c532e8b995ac6f288d1e02778cb9f198afdedbb1dc4c334f5236196e330bb18f00e4041ee937eee91f98375a1", - "326042c53623c372ef0c9c4212f08e72dd0ff9a1e21a8a9595571dc3d6f1aec7f51baefdbc952b8bf5b9ed9a25b97ef6", - "89643def6092f07cb3bb5acc452298dc783647d65d5a031c1b47aa0438f72de2e960c9bd4307d3d642366ab8163ff70c", - "270b1d6edb74885157c82bb6159fbccc4dd85af2721ade21d2fd26231012c103687fbb8b303a513567c4c537b60214a6", - "c37622533559872036bc452795bda0acdede84776df2f944623b16f293d5fdd34ddb5ec8534b9b2a94b3b13ed8657398", - "4cfa9f3a78e0229bca1bb1db787508f238425b5fba2eaa037905235bdcee7a40db1c033aab29a420cb95aeb7d69514ef", - "6f1fd234d84844519f93d98899bfea6d1003cb15927f47e4f153958e409cedb38fbc542c44cfc2226bf1683f58e3c143", - "fdc4d6386f8953896a2fdac9c0b69f8ff7c8cd8cb6ed22b1c449d37ae78521b4ceab40ceef0a2c14780cd2fd5151a51a", - "f5fbe8f8ae21c12c6529144b918f963fbb5a3018a584ae76e02b905c6d4d00654b9172fb0ef2fda43fe155ccb09c8680", - "c466dae7da688d876b986e717540ec105b3aea0bda746f81607981279cb7cca828ae3e2405a4578f8570b23de59df905" + "19f11578b99ef827734bc75c141847409e3ad1776c17aa26598673d55760c065b0d1739ea347d764a90dcba208f90777", + "56f1b29933d1d889249c384a622ecc86568a78d1a429af09a312a70a2d21641b4bf5cf9873b91df30e10aa5a5b747bb5", + "7c93d3a08c6131de25bbcc7248293c1747c09413989149a5111f50094c514bfb1e5c683f3912b8f664361f398a9914ef", + "85b0dd60b98d9cb7a4fe5e10071096a1c92a1e7c90ce746995edbbde36efcd58709fa68ea167a834ec99c6465e43b0c9", + "1660340c719fe535e43f7ec4fd1c892ea08b5167afbd62ea57b18b5f1a23e4a8ced108af89fac1f5be6c8c01e3435dd7", + "02442ae405b73f90b656cddbb353561e102d54fd63b3d78fcacd1124212c993af15c59bfb20a9127b23146cbaca885dc", + "d062b7acc4f0d51e50959985df1026d3ef31a741af3ee5cf0ddffcedbe43324165b29468b014741d9bc937827554a83e", + "1bcbdaaa76d7c3448263eac24164ade1805cfed91da0d07ae36e8e9b468d9206ccabc80ede141954b43f248ec16ccba5", + "fb753908ce783247b90a19a419c0bdaf6d1daed8428babb9b2444dbebe243354d7b3f33349fbd81864eb6800d646b6c9", + "7318b2e98f2fa3f7a2cdc986fdb64ae39b76f9a3eedb49bb0674078d157b3f5cabcaed288ce07706faf88ac45e181fa5", + "9698372fd6b3b8843caf1fcb37f7f71a170d7f460954367fca3cbcf34e53df492635b655002c50644d07a7b1745b76d0", + "84235cfad7bdac318dc6422d905b0389941497f98b5ab8136c3a90994f6a5d3022af0d2c43d4b25b9b1dbf7339386b86", + "e42f520dd328c2d36c6bb9f9f224aa225362ae11fd4e651d73b141222dafbe8d7d9867e091b745686854b4d9a3fdebb1", + "4fc8103ac8815fa6a472183977c52984a8cb919789582269dafa48f6ff50541233879bb77c538a8940563a2117d2a5a5" ] }, { @@ -580,22 +702,30 @@ "03fddfdf2ef6036b6d9208567fdae196560cf2806035ccd9aefdab8f21d60ae8e8", "020f8eccfc9fd07bd6877f382e34b47b760887e89a53883e15366bad946d630958" ], - "pop": "0329d9e118ac622dfbcdb787313efbc904b49701414b7ff603ecc35f2db06085e606e7ebc09178672b8002f005d97f9810e73e02d33cc73a9ef72ece9fe3e2dc3e", + "pop": "029be51bd4c341763f781e4422221eb4c7222c859a45dd4063aedfb62b348ca61977360be001349d0be00cae4c8e572404f9f702d58c03a06f46809f55c9a47210", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a0388b02dff15638d943864faeb799adaaaa5d80bb2d89a4153c7cde48f057aea3503e838d7a48ce2831794698b70abc6b929948805ce0923361051065fee29e169dd031b965950f12e914d162a55d748f60fe93ec30595da52e44831323ffac3e4ff4b031073ee0d1ce400b524e90a2abc397c54c3d10c1661d4391d93dd3140fd247d9802495f68c303645f5a9f1886422e85378754d9f7199f4f195395dbc458b0a59e8503fddfdf2ef6036b6d9208567fdae196560cf2806035ccd9aefdab8f21d60ae8e8020f8eccfc9fd07bd6877f382e34b47b760887e89a53883e15366bad946d63095803b38cf1e8d8e1c56dafebf3094b9718267dae09b2260167a2617cdcbd68b1caaf", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e4345bf3cd5cf93e037277a4c3befe2cc5ac43a0d48422c11b36d20ad7e9fe90217cd05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a0388b02dff15638d943864faeb799adaaaa5d80bb2d89a4153c7cde48f057aea3503e838d7a48ce2831794698b70abc6b929948805ce0923361051065fee29e169dd031b965950f12e914d162a55d748f60fe93ec30595da52e44831323ffac3e4ff4b031073ee0d1ce400b524e90a2abc397c54c3d10c1661d4391d93dd3140fd247d9802495f68c303645f5a9f1886422e85378754d9f7199f4f195395dbc458b0a59e8503fddfdf2ef6036b6d9208567fdae196560cf2806035ccd9aefdab8f21d60ae8e8020f8eccfc9fd07bd6877f382e34b47b760887e89a53883e15366bad946d63095803b38cf1e8d8e1c56dafebf3094b9718267dae09b2260167a2617cdcbd68b1caaf", + "nonce": "ed6d3dafe4e41ec5cf7203ab5ad19882ffabe57206836c84e598c216b3a221a6", + "nonce_commitment": "029be51bd4c341763f781e4422221eb4c7222c859a45dd4063aedfb62b348ca619", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d4837029be51bd4c341763f781e4422221eb4c7222c859a45dd4063aedfb62b348ca6190388b02dff15638d943864faeb799adaaaa5d80bb2d89a4153c7cde48f057aea3505aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a0388b02dff15638d943864faeb799adaaaa5d80bb2d89a4153c7cde48f057aea3503e838d7a48ce2831794698b70abc6b929948805ce0923361051065fee29e169dd031b965950f12e914d162a55d748f60fe93ec30595da52e44831323ffac3e4ff4b031073ee0d1ce400b524e90a2abc397c54c3d10c1661d4391d93dd3140fd247d9802495f68c303645f5a9f1886422e85378754d9f7199f4f195395dbc458b0a59e8503fddfdf2ef6036b6d9208567fdae196560cf2806035ccd9aefdab8f21d60ae8e8020f8eccfc9fd07bd6877f382e34b47b760887e89a53883e15366bad946d63095803b38cf1e8d8e1c56dafebf3094b9718267dae09b2260167a2617cdcbd68b1caaf", + "challenge": "62d6818be964d15234691320544445a33ef55cecb724188784c436f192c981f5" + }, "encrypted_shares": [ - "923a590d95f2411d48b09562bba5d99a714d6e4a60b35db8a31bb33193ae58f5c966814a52992e0af01e3432271a7cf1", - "73be3dabe524bb4ba7f71d25cfda320de11e3ba03232eb71bd91fa27c8b48bd2bae2531ebfa586bc8013b60af39fc326", - "b4da36df1f135bac13b3d4e5d566ec5aa52a522346b6272e6cd0a8f15d2e8ab0cc3282698fe42a00af87a839dafec819", - "338d01985cb677198c8506e0152b6f5c0f93947f60f8a175a0747d5a60db597d9ff74cd5134011a5e8056e558b5bb89f", - "2d611a083b368b21b2c9e0852aa3d28492b15833a69d09d4409c2a1a9785de41fc08009b490cf5b36d404359bd9e0126", - "39d365e233684c734d048b06efa815ff223df5784e67d5d687405a756913148c71c471c8b0325db2b36403e5c9802b5f", - "c277f2ee81223748843fde668e47c91be64bb7a4f1497ec03746c36f3f42ceadf82ee88c86a8afb502cc90c23b183c38", - "af8083a2dae1cfd15167326f3685a99ae3d420bb6bd9184932921954fc6b18bcd00d8bb4850f73c8ee4396197981798e", - "c7bc07be46a544eb227e671e31743e03e05da3dffacb0f2eead47620a984f4694baaecea97677827bd80a4ab5019b0e9", - "4f688e407636f8497a84e5246bc9934b08b59127d507e83eda8d5aecc8bf2fe15fd872664f0ca6d1ce28beb199002231", - "533f842eb1c28e42fb18248e7476ec864fa7e72a87405367e64b18bbe80360c44afca91e581b6b9aa7be6a5a15f69332", - "dfe36eac282bcab432bd8c8fb9546604fb19f686e32dd79fc997fa2653026ea8c8f9c03b654254f1d775a4d9465f1c62", - "00e23df0e07658d196f92d3aec021b3f4b1df89aad4706d44e111da0e7d594d2a29fa4a6b055bb3aaedad3b8c54f77df", - "f8f4c1a319ad2ef7af773cea3df487ed7ed191161cc0d6800ccbb4d23de0cfa9a0310f793b9e0a5d490436af790c2753" + "e4cc09abe30e90dfe05552677bf8821aa0f2d3cf1f962ffe6027fd68b677d8254ba9d01dd3fa64607f1eb7be0c46f818", + "0438d6ed82db69c5c723daaf4fda5df6b5e74fb9ff44b5697cc2d83ddc6128733d0420a62aea78deeaa814d74b1a317c", + "b103f00cb347f601c62caae2d74ec16cd80bf6f863c9a55a707262187b5836f747379ea7adda30f9b043cd1ff34c5699", + "d54d247c36c6b0af2a7575ad7da0d111d94f979d4d62f849fd826d78524fd5b913cf9940d38b5285182845e1b54b2d69", + "75130daee9b16507963e3a60fb5f2144ab8ef3d30b993529718e6c1b776be14aee3a4b2f7a27bf102984426abbf63ba1", + "25ccf93a6a536b20bb88508c39416852ad4fa31212b94302780c896829e328145a07b92aeb4651bbad4dbff5fb1b35f2", + "d528588d59ddd330643bcc31528bb497ed832809f0c3ab6178e8cae8b13a30cbc651a299aea99a3e26b18a8a3576b758", + "b9106a26f7ff2038c02abf9ac20731a2d4b7cb622ce25d1ad25369f2ffee6e4c0cd57dde0c7ae640eec7acaf55d22931", + "9473d8f1cfe023679822c5ccff3ceaf65ea6d7077239775a955fdd549564ace41aab9208ee4b9d3c670793b6948c5081", + "e33891e96aca60f48ee2503018008367c16a4d40ecd2181bd74cfe0162e3584a9b262415348b13739aa754c844cedfc9", + "a4df31289f6c5b3f870684bbf67c27beb0ef8ccab18c18d072509363471b3859554d0911bb5c1fd96875466da0885ce9", + "a0653583a8f70f408a4de43066f08bc87dcdfdca79935a065e689a030d386917e8d66438b3c8f8ecc9974093b6bbcef1", + "19558ac4a075ee84aaf7351724973e02d790dd07cf2a79f853cc9717aced0a1284da1c1605ed19f9c73f7913a72d1bfb", + "bd925f99d577fb5fe29820673fce5bcc1ac4376bc026d117f481b198a1b6a1aa89a4c236ade403751c833b88f8cfab6f" ] }, { @@ -610,22 +740,30 @@ "038de09b7dab7228ae8c920d44441f503ee75652f1f08e9b797ffae8283af62094", "0270071e17f69ad18d515a89d385a834afe53955460e254e9ab11630e557446e3b" ], - "pop": "032bf888ccd7f5084d9ca1af6d62b38966cf50ac7c3e739cbd1719ca7426b10d5a2f5a3da35c055dd6114b50a6af0c1884f9df83f34848cd8eea445eb57b22ed76", + "pop": "02b8956d4ee3762865e50401b81ca1d95d4386026624d03cf1ed650cbaeb12703d5a3191a08b6ac292d9c604b8123c3e864b80ae877dbae192a8cc8b017c44ff15", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a0374a20a2d4ea4b189b0c6ca7e9976635d7568fa8307f447d66a134f84943f3ae00322d4dae63fab06bb8e9ae2e995ff5e4a5687ef429be885cbd7a123bcd4f7550002a38dc227423a37d1898c7da124c7024a70d7ec304ea32f8913eefad6b30b6d9b034855ee072ce3b0c177500e72e8e93833c8db79881a5f2523152a628e7fcc800402b5405bfe554fe927b72329ab530fceb939844921b2bfe1f98fe12e8a325265fc038de09b7dab7228ae8c920d44441f503ee75652f1f08e9b797ffae8283af620940270071e17f69ad18d515a89d385a834afe53955460e254e9ab11630e557446e3b03d568c152a4ad09bef315837f7f4bfdda34a6eff3b151923866deda089e716307", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e43456c84f08f1e4358557f26cdee74a2d35337e1c470b070867cb79c5e73e1b2b0e805aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a0374a20a2d4ea4b189b0c6ca7e9976635d7568fa8307f447d66a134f84943f3ae00322d4dae63fab06bb8e9ae2e995ff5e4a5687ef429be885cbd7a123bcd4f7550002a38dc227423a37d1898c7da124c7024a70d7ec304ea32f8913eefad6b30b6d9b034855ee072ce3b0c177500e72e8e93833c8db79881a5f2523152a628e7fcc800402b5405bfe554fe927b72329ab530fceb939844921b2bfe1f98fe12e8a325265fc038de09b7dab7228ae8c920d44441f503ee75652f1f08e9b797ffae8283af620940270071e17f69ad18d515a89d385a834afe53955460e254e9ab11630e557446e3b03d568c152a4ad09bef315837f7f4bfdda34a6eff3b151923866deda089e716307", + "nonce": "2caa9ad1d573072e966a43265efedcd432919973b5dca59a4fde21f4716089ac", + "nonce_commitment": "02b8956d4ee3762865e50401b81ca1d95d4386026624d03cf1ed650cbaeb12703d", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483702b8956d4ee3762865e50401b81ca1d95d4386026624d03cf1ed650cbaeb12703d0374a20a2d4ea4b189b0c6ca7e9976635d7568fa8307f447d66a134f84943f3ae005aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a0374a20a2d4ea4b189b0c6ca7e9976635d7568fa8307f447d66a134f84943f3ae00322d4dae63fab06bb8e9ae2e995ff5e4a5687ef429be885cbd7a123bcd4f7550002a38dc227423a37d1898c7da124c7024a70d7ec304ea32f8913eefad6b30b6d9b034855ee072ce3b0c177500e72e8e93833c8db79881a5f2523152a628e7fcc800402b5405bfe554fe927b72329ab530fceb939844921b2bfe1f98fe12e8a325265fc038de09b7dab7228ae8c920d44441f503ee75652f1f08e9b797ffae8283af620940270071e17f69ad18d515a89d385a834afe53955460e254e9ab11630e557446e3b03d568c152a4ad09bef315837f7f4bfdda34a6eff3b151923866deda089e716307", + "challenge": "7fa6489f9bbcbdec51911016604e5001a409625e23faa339c8b645cbf6fcb4db" + }, "encrypted_shares": [ - "d2b88b9b4d038dd037f2c56b8f09ceb71a50d6ecc60a6b3d0cb2d09dc6013a92cce4d4a5e4f1d74990bf34265798121e", - "622d68c54a40d6603c6ef2347a2a0891d0abcf77c300eedcf0a547ef99ac35e0ba97b7c389adfb3eb3eb07ee02e99810", - "589f187f93903f9ba242902790ebba958ab8bccdefda2fcf87dbc37914d0a276d493c32b357fe3974b9af3dc9df790eb", - "dfb6ceb3049c18ae5e2028d92b8e2ccab947f7da8ca0d30a3d4863b50193ed6e48767512863a96230cf1e9301fe4bc6c", - "f36625c518a6d69371cac67db5420d2d9c9d240a8d9511e9dae63556d7de6a4dcf7e518726c9e24edae464246da3b9ce", - "904d3d147c2ad158e7b2b4c94af66d47298d16a417b87a0688608c55cb3a6cb32faff015522226d4c4a063cc7307aac6", - "cf6fe9bb81d2b1b5945050540ec0a6b518153663626fed31bd3de929f240fd5bd4905f92dd400bef360f93499df94176", - "bbcc37be7d6040ae8c69976c4b0591730664f7bbb3111549115d2bd96e6e65f26502d84c7cb6b2b9329b58256b6bb7a4", - "64fb66c1360b51d6be2f288208b41129edbcc645453f09ee23c311c2ba2f3f345b11ab4deaff041826d940d18cf79df8", - "67b64aecb3ff0d4a965d79501c2e23f771d7535ff32880e19c5a128f81ae7e21eb3af76c48d7b1d189f3f87e85b6a478", - "9bd86a52318863629f4f7f75c84e051916d94244c9e70aae7ff9ad6f772dc32ea2fb5fd51c04c179689f713c4f4bca2d", - "0aeb6dba45689072cae19d7ddfc77d93d189f759955c2856bb073af6dca4feafe480f146e17fd78e5b0c01ca0e48d883", - "ab3a3b917bdc233aad205eb35981c347ec9b5cef5889faa3d5f07cfff9b7a46d0e9e18dc18012cf05737db8e7ad77e37", - "c8160869c5cef46fca63781c46e42d1dac23320dfd88ad31c3b72e416d3c7d00acb0a17c28ae3c92b4d29f83b0fc0170" + "851bad2e3698ec3dd4a1e6aae1bdf5a0d78a799adce40088ba0fa3a2936d7834baa061d109097326355353434769d673", + "0e8ac61edb8d0d29c7bda8d5bac455d04bd0264fc49ffbda9f811b3e2497f9e0600ccd425405620816b0309f6454ecb3", + "b7de30f6d5f389dbb5b7d2cdc70db6cdb84b9b5da3f20148ae9d122b3d77c628d20116bcb875066b4321f4b51a72605d", + "e604e01687ef76bb7384118b252f0550f121f84652128623b08e335b56d32cc1267dd82d913dd8c0ba9b40f9ccc28e9a", + "ea82966a775ec16429a75f5705266f1146b3823407e00543ccc4155d8a5974bcc2cb2ac865fa62c40109662ed9b4400f", + "66156324dc6ac251d782e224ae6003b2138cd9121064c1b85829178bc2cd7ca7a7dc74991fa1cd73b7f496eef11bda63", + "3efb366c9d207593662c2a3001136ca5f056d1ebf8ff953e35a49ffad2554456f2d51f4e4a1239b8158cb6b792a1a1e8", + "5b9b4464382908a143a6e66ebac87e52beaca4881a67c8f164057ccdae29068cbe1d5751d22eaf2a18c43803a2bceb0c", + "c143efd214024edae5c6bdd7cfaf4edc9da23d9e003bac9707be478e80eb2489c4931f2ab5bf0fe1d71c3c17f11ba248", + "24f94250282a0dbcc684fb4f30f80b453c8f5c584606f114236c4457b2dc0cd2f91c7fcd68945dbd61d26e45120f57de", + "639a5cf371b675e84d72f70f4c03c07cb4b2f559c7576ba1bdd02587eb894552bc825bbc008b321387d2d0fdd45f5a07", + "ceddb49f438655de6c333c2df62a16a538122aa6f5215eae6bbe954a3b4447847521273656ee855ec1ed45926854ecef", + "d250652077ffd55b942c9a45dcb35f43700731ecdfdc9996de87926b15d225476d8c10a82263cee98191895c3f1faae0", + "3cbe51a41fdc4aed3e9cdb5b42abf063e24d6ad88afd14eef9ef25bd1061e599bd4a4a4bc02cf6ad768295591198659e" ] }, { @@ -640,22 +778,30 @@ "0340a26b661b8465929513114f3b98c3b550be4175bc59245cf0351857e8fdbeec", "020f500e1067a60e62878ff7d66e0da6f0376bab9365a11db9ba997fec8d7d835e" ], - "pop": "0357d6b0bb54fa5114b411a172ec3df38835c7559bdd2157ee51a222ec4f107ae75e08d94c0f3330939ae78abe0621b1c499ce9fe2dd90ea92af6b4d4bd724e252", + "pop": "0270dd0a19a23f0ab1a81dbf1d2b06e340fb3c6510937aed44ceee8517316ff2886d179abc047e47f4a50acb6f4a9dc74cc28a07eeb3985231d07cb49b4df3e9ac", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02ba30fde19d7aad01c59f5ee2d149d107da95c98ebcfe8657617e15dc465183d103ffb06d7ab01940af04c22c60d7c6461dfb959ff9372aa75848e21fd5558ca4dd03cdd4445bb49dd6736703947df1e7125f14c4aa8033ad642395a45c4129d3fa710397e2a39cc409504794e4d99bac4de15b6d0392553b8e2af029776a7fd4a9ee8603f7d0fcac904c25cea2fa36563b155470c8cb945c71d460c3037832d9f044cb240340a26b661b8465929513114f3b98c3b550be4175bc59245cf0351857e8fdbeec020f500e1067a60e62878ff7d66e0da6f0376bab9365a11db9ba997fec8d7d835e038ac62f738230ba6f898b5906891617d33c4886c1f043f8caf5685f91351eaee8", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e4345bd136a2cb3097c17a09a8710e80030d5d2117f11ef34756549e68e0b2298a30b05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02ba30fde19d7aad01c59f5ee2d149d107da95c98ebcfe8657617e15dc465183d103ffb06d7ab01940af04c22c60d7c6461dfb959ff9372aa75848e21fd5558ca4dd03cdd4445bb49dd6736703947df1e7125f14c4aa8033ad642395a45c4129d3fa710397e2a39cc409504794e4d99bac4de15b6d0392553b8e2af029776a7fd4a9ee8603f7d0fcac904c25cea2fa36563b155470c8cb945c71d460c3037832d9f044cb240340a26b661b8465929513114f3b98c3b550be4175bc59245cf0351857e8fdbeec020f500e1067a60e62878ff7d66e0da6f0376bab9365a11db9ba997fec8d7d835e038ac62f738230ba6f898b5906891617d33c4886c1f043f8caf5685f91351eaee8", + "nonce": "7b1190576a3ba32eac79b6bcf63e07b0a7e6ff816504b76276bdd0a67f6d4b83", + "nonce_commitment": "0270dd0a19a23f0ab1a81dbf1d2b06e340fb3c6510937aed44ceee8517316ff288", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d48370270dd0a19a23f0ab1a81dbf1d2b06e340fb3c6510937aed44ceee8517316ff28802ba30fde19d7aad01c59f5ee2d149d107da95c98ebcfe8657617e15dc465183d105aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a02ba30fde19d7aad01c59f5ee2d149d107da95c98ebcfe8657617e15dc465183d103ffb06d7ab01940af04c22c60d7c6461dfb959ff9372aa75848e21fd5558ca4dd03cdd4445bb49dd6736703947df1e7125f14c4aa8033ad642395a45c4129d3fa710397e2a39cc409504794e4d99bac4de15b6d0392553b8e2af029776a7fd4a9ee8603f7d0fcac904c25cea2fa36563b155470c8cb945c71d460c3037832d9f044cb240340a26b661b8465929513114f3b98c3b550be4175bc59245cf0351857e8fdbeec020f500e1067a60e62878ff7d66e0da6f0376bab9365a11db9ba997fec8d7d835e038ac62f738230ba6f898b5906891617d33c4886c1f043f8caf5685f91351eaee8", + "challenge": "6bd2c709c4ff4a0b7302c1128a62aa3ec351d37da9ec9fcc91cc1d3ff90db0f1" + }, "encrypted_shares": [ - "ac519bfef518eedbd188239ab9fc4809ccf52db2f57318f4dd4c9863538eb84c1fd0cf93c752b148aef6682fc05dcf50", - "2c2178003ba50f1d47eb9aa692c8b298eed9cee748da9b333625ea02a04aa01260b3abba071ed4c706362f71b9739c8f", - "2087eb10f98edfe2151aef5b8464b2ced2abedf3e8491e5d74636bb33dabe35ebd2399b0777236dc16cf8a851fe5d463", - "a03ef9014ecf81e007e0885c2bf57d16dd9cd12d99a4bc85f20358b49114bb57fc0e10d12ce83b8c8d516316687594da", - "9bf22b0b8f1e85fba7242e8bd48f6e1fa90b72ccdb8cca7b7b25c3b15be38eda2baebd18b21adf325f5f5eed5aa17706", - "0d922fbfd32476f5ac2858e460585ce0861491f8975848b7002de7fed4169fcf83c3c28bc12546d7d15bafd389a39364", - "daa48106e1d892f3cd8a07441ce53952c7dd555a87dd0c0f7be22c904ffd95499311963aba38f8f051435837ea8ea2a8", - "fb63bb7ab0e6c3785816c960d3ec9114473841531461a140126cb02659c12aec01dd45c2a63968417d2c4ea26f024718", - "7163f1a7c792ffc89936fb4d13c6c392d5def045f3e307ccca1768ad366d660a3bac6b84ed00d74825824eb63ae7bb21", - "50b935d64eef1ab18b64f6fed344808bfa3f65c2c33868af406bff5233a74018d35a4b23ad9ac5344191aeab1b422c28", - "b44f03af40057b1f5cac93560db6cdd249112379d39d7c242c82bc6c79c10720d9639de4ee7f45fb1416b6d5dae1a427", - "5b94c35ffca9604e30f9a29d0556890fd3a8120e3b730ee20ce0ff632fac30f74efc763eebe586b1b94d7a818947ebaa", - "ecbe2569f90d9d4f165b196b621070bfa15a2206552b103638300d4130a4ec1da69d0bdae3b03bf8af7fe1f4a4278ceb", - "a97bb6e128fe7f4a87ab808d0bba78f9f6788435616c9c290e2f96141b462120c6315654ae4468581f7c0b00a98212fc" + "a96cab7e211c90f9078fb00762068a74d64446ed37717dfe792a935c7eca6f7ae997f51ee50da7952497556e9703256f", + "d380307a904f57b4abe7ab0875a60bcbd689f1f553059391058299c2e587f0463aa4b8d9335ae3cd39ff636c89908df1", + "f7b849bd9f7f2208a4a05ed5509ea8261f6058d4957b6df3336e9e19ef5b6477ad17279e0625f5733cef1dbc79bdbdbb", + "6d7bd10eb5ec4619b35db87a79f7b794e508b0dfba7cda95d7dabf348e715c868bd0700da902f01e3229d39f00589166", + "ed951f58dabd67102baa2326bf3d31b4dcf202a4391553d9ce85283ff0f665a733d5c4eee3d3aae31bdaf9f0f38acbbd", + "50a28716ea1508e78f67d902ceb5dbaf4d9c630a2c37cd1f3ffd9e17a0d35c9f7c74f274067ba4a7f9fe2793dd9241ff", + "7b5e307257040fb65cad263cc60d84a5c4e03a7eec7a8328122b561565a43a32cfbb25a1d18ec1ae16b3806b958ed7d1", + "d9600540d9c735362931f61b3379558fe71dbbff5d00958f6209e60366778ae8233f2485f59000349a47d4fef0e32191", + "a6174d6ae04de848aacb53a53d9f5f611f19083112cf71fda48d02b14fe14aef3f3a47bdbccc9fae939a81fcb12b1333", + "f0feb16055e7b05ed194087d352c4dfc8f8b3bcaf8ef2c9872b74ac248cde333993829e4ea6aab145a194702547eaa6e", + "d903fb00c8bb1ce9d848a84b8dcb16727e8d82a4f5256ff14b7ce7a58462c31d3375b66da0345987d43277f1156ee593", + "6aae216b319e2881faff8b2d1f5b548310ae8a8ca310d6ffc292c5b1e3d0cf3649c1e643d9c15a9f4428370afb9783cb", + "a42cfeddeec58e5a393165a94c96eb8387ca0866a9825320e83e8f6e6b8bfbd26fcca4331f55169462156c3a26762614", + "9899dd3885c64e1b06f01f93f53f5ce6f2c59bfd496cddcfb2ca5a023986332e890b98abf4a07785cbba9122cd1eb341" ] }, { @@ -670,22 +816,30 @@ "024c1b7286fbac6244d638b70abec74fe2d6985b2bf06ded039a6a77e13c591d95", "03d6fa2a766c9496a6f554d2b2a937502fe00fbe93306ac6732b93b71c62f5484d" ], - "pop": "02deea5cb3293d523637585e1482c808a946e2729aa8940c79deadcdc1c54c18c10e73e195c01f77efc68bdbbfdf3893f511666c4585c300f351a17262b0833da0", + "pop": "03fb0fef5e11782ddcf52e19d7f0da06e1979f696c836748c447277e0d6e56874dc780c83d2b13ae893015a2acca6c576edbeda57b94bb233fc9934ebdf610f312", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a039a59f07fd8f82c2c02106ef89c799a4f57a2f15e355e2987170b27c925d3088103a6d8e7561d9545ae4a422fc2bcfdc6c1f8d6418af00d956416eb0579a4fb6be903da796152040d12df126307020faf4148300f84f5aa39a91a0f6ce64d9e6c479903ca50596da3ed31873a565729194566174a93c5988ed3c191ac412acb9368437c024402689fea73e67b288669f16915d96a8541a6d86af479afd6087d8a85f03bd9024c1b7286fbac6244d638b70abec74fe2d6985b2bf06ded039a6a77e13c591d9503d6fa2a766c9496a6f554d2b2a937502fe00fbe93306ac6732b93b71c62f5484d03e91d0c093f7be1eba5ec660a8405b84ef88c4217d79954dd9823a6554129a57f", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e434508975742d44b688c8728085e29e849c8c743bbc7e2fe6709791be456c98115f705aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a039a59f07fd8f82c2c02106ef89c799a4f57a2f15e355e2987170b27c925d3088103a6d8e7561d9545ae4a422fc2bcfdc6c1f8d6418af00d956416eb0579a4fb6be903da796152040d12df126307020faf4148300f84f5aa39a91a0f6ce64d9e6c479903ca50596da3ed31873a565729194566174a93c5988ed3c191ac412acb9368437c024402689fea73e67b288669f16915d96a8541a6d86af479afd6087d8a85f03bd9024c1b7286fbac6244d638b70abec74fe2d6985b2bf06ded039a6a77e13c591d9503d6fa2a766c9496a6f554d2b2a937502fe00fbe93306ac6732b93b71c62f5484d03e91d0c093f7be1eba5ec660a8405b84ef88c4217d79954dd9823a6554129a57f", + "nonce": "e167e8fe159ea63b15edfb956fb162c2b06ede12fae73e61ae2b3e480eedbb03", + "nonce_commitment": "03fb0fef5e11782ddcf52e19d7f0da06e1979f696c836748c447277e0d6e56874d", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483703fb0fef5e11782ddcf52e19d7f0da06e1979f696c836748c447277e0d6e56874d039a59f07fd8f82c2c02106ef89c799a4f57a2f15e355e2987170b27c925d3088105aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a039a59f07fd8f82c2c02106ef89c799a4f57a2f15e355e2987170b27c925d3088103a6d8e7561d9545ae4a422fc2bcfdc6c1f8d6418af00d956416eb0579a4fb6be903da796152040d12df126307020faf4148300f84f5aa39a91a0f6ce64d9e6c479903ca50596da3ed31873a565729194566174a93c5988ed3c191ac412acb9368437c024402689fea73e67b288669f16915d96a8541a6d86af479afd6087d8a85f03bd9024c1b7286fbac6244d638b70abec74fe2d6985b2bf06ded039a6a77e13c591d9503d6fa2a766c9496a6f554d2b2a937502fe00fbe93306ac6732b93b71c62f5484d03e91d0c093f7be1eba5ec660a8405b84ef88c4217d79954dd9823a6554129a57f", + "challenge": "8fa23db56ceb3472de5f7f3c55d344fb9bfc5adc09b2c7f53bdf38c9e22a12b9" + }, "encrypted_shares": [ - "bc79f5fcd30c8ec6961bd1c95d734a6b055c272c4d9cc03ff7ca7ab495ca9e4e07b94c9b97f76b5584ed041a57c22a3a", - "3153b9fbb6ff7a05c4998bd63040ce6338b51ea4b517304a15857b45ae6d2558854cac13451a8293b0092ca152346bae", - "449d0f40ab40367783e0036a02d21b07e49c3f5c6d7fd3d1c2468585dfd09f2c174c11ecb50fe8fe433a9d8e00b42ffa", - "088ea88e709060e650ce95e1aaa7cf0cb2be6c441310f22a9ec38628a295f55292b5f35b8b00f9ddf18927bd49eb26ef", - "d80c99bc5e11e633b1b7935749d9fda5175ad78e3cee2bd84df769c98590da62fdca93ade7ef879bbd71845f3b195bc3", - "9a1804f8aca29d4c5b43d167dcb3649a07717216777082d7b4b15b248dde67a1365765fdfc5dd1a45d510063853a1ddc", - "3426e3ef57f2a745970de3d592914a39baf187ba10cdcdef7b0514aadb49da72eba97ca343ec82dbc78fc8c79b695b0c", - "7c7b84469a8fe46ce485d853377fa2e661af9b1d8ac758f687d7a7bdce205f7a345c3439aed129974fb8c6ce510683e9", - "627c381cfe440f7f7c3809a7f9409b882c4d58e655b8a805c44f804690580d9557916c199d1e27e46bd80fe608de5ade", - "161cfa19ea4a2f512614b35a17a095e31f1404197425a67dcd38c7540d6c27d568df860bb993f1ae18483ebad7b27ad9", - "8964a99220249a91d591b73e0c7bd5f33e813894b2f7588915ff8aa5dc2cc6fb2b63b47f8d3901e6c1ede2affcae50b4", - "3bf9f709395519a9af4d371e8cde315700fa0ac6c775d96144f1a7bdf21cea0dbabaa7705323c85353a08722798f8d43", - "9d512a7d330152109c7b14cffaacdc4a58b1e0a47f284ce4c996be80f9b430e710155626d4628a9348f655e0fd4c4a3d", - "e1957795c31193a262be8b37ef1adcd711eee07982fd08c10fb70029899d95479a9a1c875b00f63bbc0659bdb510eea1" + "e55859c81fa321927a3ed0d50d1b7a91fdd9b984bdc96d4a7db3609fe609c0d9a427ebb873fd7058280baddb05b51b36", + "3ee5ccb6ab24bba679cbbb04da8a90564a02773c60d4ae758bbb43c174f584e53fe16cc79b2b0cb33e7041a6a5a9b775", + "66eccb7150428aef13e88d83d50e56ba8b756f64c3629441929cf60ed486192906c784dec19ec5f89f5302a43fa2426b", + "34bdb0272d9dedc2a207c0e1d91e56aaffc3964300c3a3e1828a395db57186ab8023199c341e4de38b205e9d07bcc3fb", + "b8ac2c96d385ab56ac7228b90eb149e5d136b2c2e1785bc7beacced1abedfb17d53b7db4aef17dfdb34ada4298694c7e", + "0ab8d5e14b4976d2824d0001b4dad88f4e5024a77f0a45e4fb8e5732c8e0f952dbe81d5c3f779d117f3f7c4993deb23d", + "437fc77d76eb95fd8cd8c91637f089d53b4e496730ffec8652c1a9e84b42927cb4d1d37e1f5b23a335f0fe7a1a21ec8b", + "f4a973fb6658fae1552c3865e1eca751d9ff86e499a6cbf35f5f098320f5f9e13a41636810d240654a30217df69c1533", + "483fa2816570f8aaa0658f783db67afe1de138653a4cef97472995e6e0225d62202349c4af0be8f15504ded3dde4cff1", + "354d3aa4668ae64ad5df42c53974e24baee2dd8b11e698f82efd906e8c99b385b4e25e0968728b1960c39bc3ad3ab81c", + "ee49ced42c9b9c3187a788d86a11bba693583f95f5ca1ad1067c6daa0ca37ece19a19008291f5bacd62cbfe8854d65a3", + "3e40b106ecfde0fd08f54c1c47c6e9ef30f2d7fab2c64d81a3a8a971c478d46405cc02cbad218afafc32e6969e0f13bd", + "1afcaa3ae86700a58c134d9a5ace2669f5e045aae61d5ebeb6a550440bfebbdc50b89c13538378c300f24093f917f276", + "aaa3c1936c793fd0e620e248e1accdff1301b36c988e88d762ff7eb1a938f4adc934f67f160f8c120defe9cb0019de65" ] }, { @@ -700,22 +854,30 @@ "02f020a388a5b7ab4e126f09eef83d2ca83e808affe85ce5bafa362b0545c532d7", "030074d718b3d043b3bdb66bb130ce3edc7cd158e2b9c6be3a2f7842049361fa0c" ], - "pop": "03933349e6fc056522148d9dfa5e7d5fd2c45120e0f56f3411601fd609226e3ba84d33dbe69d05f44dfcdf275e6958256f0cba5496c1fee77d9503d2a00a452faf", + "pop": "03b2b6648a8b55a04a7daabfd223a3e7f63bdec161c5ffbc4cc0850613bf0329d9a051e80a955f0f75389b306cc1d546f80c69ccfba37901e5d2c174b3a74b6b4e", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03aa1afbcb10b130fc184f115317d20912e885e547b3c2a41469db62ee6a39100d0352d5a10fac1b8e91ef004be8d51ae394c4a09245d3655d4aae4f9f165fda4fe603c8203379a8818e92ed6c2990d3762398ab452a59f2cf1b3be2658d6e6954411f0261c5e6c8384deb7a165a091f57a97b5b24988105609b81a30899137caffe525b02c9be38386e1a00bf6b0c313ca2b0903843ae8a74a7beac6844aca2d0fef0db9d02f020a388a5b7ab4e126f09eef83d2ca83e808affe85ce5bafa362b0545c532d7030074d718b3d043b3bdb66bb130ce3edc7cd158e2b9c6be3a2f7842049361fa0c02545b034cb36a3623d614bcd47e5a51e24e24d7baddefdacd86411fd9012b4404", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e43457296b8e4f33ef84c15fae4566cfd590ba4b9292ef0cfd485956c03fbc241c93805aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03aa1afbcb10b130fc184f115317d20912e885e547b3c2a41469db62ee6a39100d0352d5a10fac1b8e91ef004be8d51ae394c4a09245d3655d4aae4f9f165fda4fe603c8203379a8818e92ed6c2990d3762398ab452a59f2cf1b3be2658d6e6954411f0261c5e6c8384deb7a165a091f57a97b5b24988105609b81a30899137caffe525b02c9be38386e1a00bf6b0c313ca2b0903843ae8a74a7beac6844aca2d0fef0db9d02f020a388a5b7ab4e126f09eef83d2ca83e808affe85ce5bafa362b0545c532d7030074d718b3d043b3bdb66bb130ce3edc7cd158e2b9c6be3a2f7842049361fa0c02545b034cb36a3623d614bcd47e5a51e24e24d7baddefdacd86411fd9012b4404", + "nonce": "26246d543a61bc87e53202ffe9885f72f7fd02d572aabaca260626b851329cb5", + "nonce_commitment": "03b2b6648a8b55a04a7daabfd223a3e7f63bdec161c5ffbc4cc0850613bf0329d9", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483703b2b6648a8b55a04a7daabfd223a3e7f63bdec161c5ffbc4cc0850613bf0329d903aa1afbcb10b130fc184f115317d20912e885e547b3c2a41469db62ee6a39100d05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03aa1afbcb10b130fc184f115317d20912e885e547b3c2a41469db62ee6a39100d0352d5a10fac1b8e91ef004be8d51ae394c4a09245d3655d4aae4f9f165fda4fe603c8203379a8818e92ed6c2990d3762398ab452a59f2cf1b3be2658d6e6954411f0261c5e6c8384deb7a165a091f57a97b5b24988105609b81a30899137caffe525b02c9be38386e1a00bf6b0c313ca2b0903843ae8a74a7beac6844aca2d0fef0db9d02f020a388a5b7ab4e126f09eef83d2ca83e808affe85ce5bafa362b0545c532d7030074d718b3d043b3bdb66bb130ce3edc7cd158e2b9c6be3a2f7842049361fa0c02545b034cb36a3623d614bcd47e5a51e24e24d7baddefdacd86411fd9012b4404", + "challenge": "fb15254eb8febaa9a7e13bdea6711bbb44837d68d8b22ac8dfbc69723adf24ad" + }, "encrypted_shares": [ - "f2eabd1b1246ff7642564f68fd8c136ea7079786f5b8fa50ee0b2ad21ff801deb1a3dfb7bfb5d867c61152c2843f50ce", - "0ac9c2a3a0a42bca2fa394957b91c7e4f3aff99a4cbce0fca342bf2f37aa00b07a8ae7c70e4ad8f063864dbf4fa0a422", - "5794b8e02c60c2124ddca2b46c0455fc23fa94e2f3087a756bdc5847f7d98c2b18a571ce7eb61beee20b4f36e9d2f21b", - "efadcab9443f63729d901b21ddd8140632357bdd3a059c20d4e8828116294b9ea1a90b27811bfa1cb83ea09a17ce19a8", - "1f78145ae4fdfd29d614bf60dec4fdc9b34240f646f483dd5153b137c4961b7ffeb730e2e91f9c88a984dfc22bff966a", - "1a1a79cdf3b10d4fdbc3025221ec0f1fe4bafa83b1bd1a27652882615bb6f1244721d0d4dfa35e65eb526af2c9953ed5", - "a10383f35ac7c3b82548e39204514078aacd75af9c8f6f36d68cdaa1959510eacee3ba2a2832be31b2fe6a4dca2e049b", - "8d0c7bbb4e8532527753102aaffb7e24142641626d8f089aea7990b6562827dc03c6e81f0c00d2b71daec965bbfc1d53", - "3e0ed3ed590f47e14253ec6a7068120827e1bd138d880cb3edeb57e100bcbbaa6a32df895de509d688a1f5ec3255e41f", - "ddd0b4a83f61b4dd1ae79e36ce59ffef717f856643d404a776a2a0b8a0d972e2e6f6b7df999c9a3c62e85f11e84d69a2", - "562288f5fbbeaf31100f063ab0285f3b643966d47ffce7bdef943b1e077f6403a604e612a042e4c2bfe63cca419a426c", - "b86692934d1bfd9907f3fc8f8a3f8e98f3833086e54b87ca3bce070fae889d48fa70c23fb23febce4d919c49aacd3c05", - "a8b08dd99381a5dfb4b4d270dae32f8d439c87ea6eea5201afb6862c2929723d81e3136e2c3e6b6adf8570a2200e5d64", - "22627bcb0b65cb726cd82fc6cba10090d9dba89b69eb3078b8eb816e6d13020c079dbfdd2f21b161a6dc1922be8ea1d4" + "18ecf3aed89f43c42ea4821c21c0ceac2a64780df6635fe9e2f36b8592ecfd4908af2b4420d2bce34f2a9deccddc517a", + "ff6beb2cf2f5381f107a7868f2cd60ea56758fee6d79c73834a5fd5b37221c5f1a7329a89bc2ebbc78448e07f01ef999", + "72ad03b647f93d2290ca3bc5d99da45d75ac6af98465af8ff5cab1d6e9cc83c332c847fb3ee01df7db19d8e492cd25a2", + "e621c06a5d36fb07e66d8f151e796097aef3656c412384a3e6b106f4f8db2feada7341e50811e744defab45eaaf23c08", + "dff3c496832debdcb52a7555cb550d7edb2263c09b1b5d93b828388e4ef44c80d1f7532a38d1dfdd7ddc8733e0c3c299", + "86ab78d3d17ea1ab55d5f81f6a4cd95e0c8afc11b44bb9fbb831606c10e2b7dfb589ebaf0bf3e771bdc7ad030c5c267b", + "55d67e31193db526e9b564985b0085d0223cd87475b509dae37c61d6780c7b16b99140c8892a2d2c1925c53465617da7", + "b5887e6d6c4104e89327a43c8bfb9620c3547d6ff7a9a2344a56c5b4f2712cdacc579b3a430902ee7b6625716d7ec41c", + "e7b2742fc2b16a35bb2b4e7890c2708c4ca549808358377760003ead5254efb0ed9caafbb19153e825417f00b8f3076e", + "7d29190f9e2de9cf0078e028d67d07c9e6e7de3841e1a6380dead0dd0c3ab607a66764559a0a822172e93728182933a6", + "958e6a8408831fc34d970eb66b18464555890b7ee655143d35c6d317caddbc5985644d76f110349595fcbb0de498beba", + "b25875cdf76a05f6de75dd3f345c64937697cf0d004b49a27da4c35734956bebbff3ffc66f1af0231f653ceca10edd1c", + "d1ce77079bf16cb436d06404ed2248b8fac810ba65a77f3cfcbc49467381d14159d9f1f6d17b7801155770547e843a45", + "c6d4deca05f641bd5193f0a3011c781cff7cd124ff2c73746c3f871da1918b09d7d283441e604d9fcc97c8d8468e7bd1" ] }, { @@ -730,22 +892,30 @@ "0334cce1e773d284b1e06265eb098e35420e9227d57e4041009f508335295271ae", "0272aa738ec4fda91dc3f13bc918cd819a5109cf60b99bfd24f8fcee66ac34038b" ], - "pop": "027984a319e998ed4ad1bec8a05135caed82abe0d59e99c722560d1d326797e93e7591d1e350ae155d8f9c396f4aea149a27aa5ad57ec214f772f5b056b77ac042", + "pop": "0358d2eb25e80912abda635aee598184e8193798927f33810c50335c8f768442a0572bd3a22d1286cd2bb7cbf44550057238ca6e3c50ddbf87de0a007b7137767b", + "pop_intermediate": { + "message": "05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03ef1e07ebd93f16ca87fd72040df99f5cf42f9d9b0e827062376cef08b237b2f7034ae5e7c1b0eef72e1b30b2c89c7d303965a94b9523f1e09f80e7965702e756f303dbf3b1e4a8baeafa68b3e20231bc73d1882263af49f00f3bc0ce6809d566927d032034c893ad9cfe43dd8033986e1b52bc6d8c2f06d1f70799b9a4f2ecc8833196022e75aaec4bc8c3a8bc12ad164df0748b0416158dd4f868a550bf8244175f30350334cce1e773d284b1e06265eb098e35420e9227d57e4041009f508335295271ae0272aa738ec4fda91dc3f13bc918cd819a5109cf60b99bfd24f8fcee66ac34038b02b4394cd91f111229050fab452fe9c4daed89dd6d3a7b5f81e1676170df9a7e98", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e434590182061191158458160dbdf2868fdf42119dc7c23119a0992fb97113994960f05aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03ef1e07ebd93f16ca87fd72040df99f5cf42f9d9b0e827062376cef08b237b2f7034ae5e7c1b0eef72e1b30b2c89c7d303965a94b9523f1e09f80e7965702e756f303dbf3b1e4a8baeafa68b3e20231bc73d1882263af49f00f3bc0ce6809d566927d032034c893ad9cfe43dd8033986e1b52bc6d8c2f06d1f70799b9a4f2ecc8833196022e75aaec4bc8c3a8bc12ad164df0748b0416158dd4f868a550bf8244175f30350334cce1e773d284b1e06265eb098e35420e9227d57e4041009f508335295271ae0272aa738ec4fda91dc3f13bc918cd819a5109cf60b99bfd24f8fcee66ac34038b02b4394cd91f111229050fab452fe9c4daed89dd6d3a7b5f81e1676170df9a7e98", + "nonce": "f7c87684b78ab66850b7551d33204b642c2ee87cd671f1e04897ebf63dbc67f2", + "nonce_commitment": "0358d2eb25e80912abda635aee598184e8193798927f33810c50335c8f768442a0", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d48370358d2eb25e80912abda635aee598184e8193798927f33810c50335c8f768442a003ef1e07ebd93f16ca87fd72040df99f5cf42f9d9b0e827062376cef08b237b2f705aaa573b8b16313c2f8ea76b6b0ab479aeb897614fcedbc8f6e9cfe5ef3041a03ef1e07ebd93f16ca87fd72040df99f5cf42f9d9b0e827062376cef08b237b2f7034ae5e7c1b0eef72e1b30b2c89c7d303965a94b9523f1e09f80e7965702e756f303dbf3b1e4a8baeafa68b3e20231bc73d1882263af49f00f3bc0ce6809d566927d032034c893ad9cfe43dd8033986e1b52bc6d8c2f06d1f70799b9a4f2ecc8833196022e75aaec4bc8c3a8bc12ad164df0748b0416158dd4f868a550bf8244175f30350334cce1e773d284b1e06265eb098e35420e9227d57e4041009f508335295271ae0272aa738ec4fda91dc3f13bc918cd819a5109cf60b99bfd24f8fcee66ac34038b02b4394cd91f111229050fab452fe9c4daed89dd6d3a7b5f81e1676170df9a7e98", + "challenge": "451b4c2a43b854f6c1f6afebf39ed2221c1df4cd84534233eb6116c8f636d89f" + }, "encrypted_shares": [ - "e4d24c01774cb026255b89401e4b6c1c91aa71816f24c4128cc4b76e068e3af42119d98c5eade7f189f8fdbaccacedae", - "9c2382163cd04f20d4ed9ed8dd2aa2cda9dd8c7480a4b83d74260540ddebafd456a42a88aa5a04e30b18dd178d8a779d", - "2041bb14a5455c5dfa1132b4d469a9287de48adb5ab7e2d47d4fa022d62786cb5f80e65cada334f4d45cd580d832f20f", - "ac52303f720ed072c619925128158ee7a44abe6c83abd1674794b2827b81dfa1264b76cb1e3b79c7eb3c727182c7babc", - "7ac6b834c41d38118678be7b303a151852193c8dc3fc43c0cb80c4a5acf8da95533efe986b145b8ee0aba7364cac344d", - "1b99c23299934ecaac4f10df2ae0c89481d64b8a37201d72fb4937ab8ba9e895562ab6e925625a925a25a37cbd53e7a3", - "3a385bfe8a37d494bcf17c3680e8b66c4e963d3d4f7d9241f853dfe2549c1dab64201fcbf124591f3b41d02e4293e79a", - "d66c4af84dda4f3df344ac53057c69bc2c2868faee7d0c4f8cf60d2c6d87019c6398e8a03d46f4b34ad8ac6c5c59a476", - "0444a2e11c743f1d22cb6b196c81e3c6ac6b8939a0b0919789039ce30031b3ddb7cdc8f89e1e6612ff27f6b85602a693", - "5ab42f1ce6ff28b5ae4e3d1a0a1e0a128a418335e8508f1f5e2887a60412ccf9afeaa6d65ce350e2080638668636afef", - "cec716dde8018859692a77d092ceec3def1d7d90fcc7c7ce8c592de3f021b1c6a84b445168a8712d2819c65e520b8e93", - "4709c705ca13e4692b5a5533aaa22ea30213ce021bc0d7a8ce0d9688289d51568af37558f8abf1d73b3a4599726cfbe0", - "90c1eb7aad4dfa6dcc41e7a28b86622775f27d32548105a7ca7fa83bb3705657ba46ef5e7f68e3a74ad2dc3c5679923a", - "54c3bd058967ce40a9c6b7cb4150162f8bad21a7976fcdd2e57ffe540a4ad56d2f4a58fba36c2b0be04ddf1806c626e1" + "946d27852fc1d68925bc6d60a56608cff153b4fd3fbbdd586f95ff38518d5214590f5e8d214c3871659cfd6b24e81848", + "516ff9e5d41da43e96ada5e914b85f6b73faf3b95b9a5b8fe960a64905d8f52aff0384bc8f6d3a2e02bb41b36fa2b151", + "1f1f840448a108f4fffd9bf467461dbee17f04255f565f3a12949260ed051e854b4d2d23db912532d17eedd082fcf3b5", + "3c1f9a65cfb2cda2a7767687cb8ac18bc28f9fe6313e62c4b3c1ee0047ad2a76d037301e93e0b6d2492e0c7c00991304", + "d56e4a352aec040a398554016f7d5abbe8053ae80df9572359a8dd220e07a20b2eab705bebaefa927e8cb877ce164b69", + "4da9d13891d23f4af406f92b48ec7155511b3f998d940c5402acd4c3ae71102872b8094491cecff4a3020a0660a053f5", + "4f7e662860d67e8c603948255c52e7b9bdfb5591bc2b70958dad3acbecf10b69964d69d541769bc06cb7b5ebe9f1f94c", + "5abe35eaff1ed243c700275b28fb45241c33d04c94add973b6b94c781ab31260e9bf6e108b4c7292ece9098afc3fdff4", + "c173f7b48203a50a3b2e350354eb9eecda4a55baa48d282470437cacc8c375a424cfde1d1f95e4e2e80544117248d2e5", + "d51a598f0a484ef58e257d4fab004f184e050df6be32b91d3ca082530f5cf7f0e430c3592d6f7ba6d3921e507f6e7a2a", + "1deb2fe2e080c2731a819857240f7e703f08b7218914b8515f9fab11040e54c38d82703a3c9441d84e8c0a0b374de3b7", + "d81997d52884f7f44058c8ede8b100e1d561b2aa1521d243248bfb7527fa0a95d4094f367fc9aa2ed491046af29c8401", + "e7e672ebc61c088972de97d86caceee48e05c443df38545acf992019ba7e686afd4b74e7fefe864b84e48720252833cd", + "b5c41fe767e39d2be767fa1132c55128469c2c4a1520c66c0d0a4188ef034aaa858f39350056c52937d5daa06500ac39" ] } ], @@ -822,93 +992,74 @@ } ], "round3": { - "transcript_hash": "dac02f58675a0646e6d72c46683231f30fb49eb44739b829bbc1c18f70f72b8e", + "transcript_hash": "0399c98ea3fcd8f88f9c1dc6b218891fe3d45536b8a234b197b8fd0b2e4d6d28", "signatures": [ { "signer_id": 1, - "signature": "039b07ea55654f9dc908e73bd52ce0668a9a9648ac5ee05134e121b865b636e286dd5d3318a6b3a94ebd638852a2d74af0d79e47027931d59be8dd913f632419c0" + "signature": "03de2123800c3f4ef402f634a46dc2f37be7673d6b3f743470bad52cbb17731b024b637c5f0495fc97200ef0533f6611dfde44e4ffe1cafc39e318263aecc55596" }, { "signer_id": 2, - "signature": "0232707ee86eda35a04b41f05fb990d87d77085169a6d2d8dfbe8973084df74e65db2b118f9b94f83fee1528db2b0995c7582fe67fc90c6d9cb80b064ea79eeeff" + "signature": "028cf7f47f464a95f0b95845bb85fa26be16bad319fe65784f0ce9a14f67fe5beba4fa5b4b950e69a449dd65e43e833b434994afccc26f5aa5e83c430b8024e84d" }, { "signer_id": 3, - "signature": "0293d75c5a837739a759070effe84ecc2dadb85cd745ae551c62b207048f1ef6a25a2b0a4398f3b8ad4447460163cc9b2d120b46696b01194487ad6ed602bf4447" + "signature": "028a00ec6088494bd5caa2ca9b61531a23156de2a1f50595fcba2655ac3c8c6c11318fae251f7e9cda4308b100f84b922379264cd05840d05a40529deddd8628c1" }, { "signer_id": 4, - "signature": "02f94808dc59e50957b01609ca6ec240bcde6781b4a6d9c607409be1e0019f4b9bda1e27f1b3071b12fe5fd3c525bbc1f808b3eee51284dcc7a7138c0d95ec1479" + "signature": "0372ff144bd946a2d6ba7c5cc399ce7e27d37d6035eda09ef198b10197c5721e887659bb2240b9395ab784aab6729140d9ff02fc091dc5d667c83df108ae4b110c" }, { "signer_id": 5, - "signature": "03cf6302c231e92bfd5ac04bfd540862c40783bdbba95e1915283bffc7efacbb6e77c6ae407646696e741ec8cab62df3e2ac54fee567602338dade3a65a3caf24e" + "signature": "034b003aa9296eb0b97d3c44db3a56945fb06961a47b391ef18641aa3d3f7f292b95d38afc40e73f56446a8c7e1e532ba98bc699385c3d8b275cb5db383e936437" }, { "signer_id": 6, - "signature": "0390b01403b274d40732de40489f2f8f96c675e865bcbea73fc71c88e6198bd817780cd85c067a04ee12d80d95a820480e792ba14bc2df2bc979038c923762d5dc" + "signature": "03e0fe97100ae19c16934e7e1b6143bb562a3be43f8909448a4c851fa22ddc72e104e35a382d12329e92fa30d2c6f1e278235011f9a1ac4d8d6a2732305a204660" }, { "signer_id": 7, - "signature": "02e3e0a2e9b86ef06e865bccf5bd04df9c9d21942407e42989c12510f8eaf72387e02400245f23a096c3e57a2f89c6970ece6b3cda3b87c8dc180de8116566c146" + "signature": "0308ed91d51b107a3ca1795b8b48c333cecc6d86014e90366354b4d174325bf958a95281b442f759b7e4b440fa3a72565b740007d7b91fba26aaf3a1b9a69b0dec" }, { "signer_id": 8, - "signature": "02ea1849909fb414d74bf95ebf21ccea9c4958bab516b7d690739097232d9d085b52c7da80464ada07a7775496f1824d102d48a0a5e684573c92bcad55c6ea6bb2" + "signature": "02ddfdf11e3fd01657f1aee3fb50d89624904626295f82a945ec744f2db8311285b9614e5b130a25cf6237f1388674f8dc493a71d27e4cf6c23744cc131b81a0df" }, { "signer_id": 9, - "signature": "027bfeb893ab80b35b131970339401824f3ecd22cdddc4701faf320859921ed93833ec3cbd1a833324786f7fdb8f074fea0c220e3e689d86c3108acb90bbbd1e8a" + "signature": "03a2d39b5a204ac9a03ec00a0020d98b182d23721b9796f998bfe6732441e01b63743fddc94a321ad33926d59afb662fae520569472095bcca888983c1f1a262be" }, { "signer_id": 10, - "signature": "0281cf23107520236d381dc0f90716f43740c728997cdc9ee04da0a437f846f8e7152d250982711c397954b7d61eadc47ef2bcb39a9143b33d5102e20edcb7622d" + "signature": "025d6d4bd1f0b520bde21f0bebb92a64499dfa484aabe64adc6d6e67397b0491e4f0976cca82f764dcd1cfa605cf4abe200fd5377d1ea430c728f86f4742fcc44a" }, { "signer_id": 11, - "signature": "0228f6055a9c84c5d8fd8ae31409afe121f3e28ef8e60257880be71b61c511b11690e9b69b9f76e10056ce6c4eaee920f404b917b3b4ccb987aede0a5f971362c5" + "signature": "0251f2eecb6c0c3c9f3c0163847fb0ee13619c8cd532977348a3e3c5f8fbc381ab845f8d1d491b88347066a2618d2135145239b7917f8a2278bd762542d9cb7fa2" }, { "signer_id": 12, - "signature": "02aed3b126bbeac6a2c796348a09a239184e6dcaa268d1f04aee353a9a686eaeb1c12ac443bb21e3b809c995e8beb185d0b92f538dd9cae1de1bcce7a4e53f5331" + "signature": "03f3d3b7816915963b0f949bc9ade0a81fe1d0b9cf79a0dde13ef90dcfd1fb6dce3260eb453c09c2c1bf8679856672967201123de5c11174c999f8edd304bf6678" }, { "signer_id": 13, - "signature": "02b2da075ac3b5c8bc387eb175fd67b96b0ecbbff410a4cb45d5662216c5a28818e5d3a6aa717e79efec2b139462e9eed485b8c7b6ebbd0672e7f8f9a4841a383e" + "signature": "0375ee91522d942eefacd64de2a536ef48213b0ba217a167cdef35b91950c5315180deef95e219d1eaea29d767de2f81a749131d91df05b24767a971672431c233" }, { "signer_id": 14, - "signature": "022237745753385e3299241df9190f66f0a83b0c89dbdfe0a1e2080ea54e4bdfbbec23c6c3b5c4c15a9e7dd9124a218d37ee64e7aaa64235b45763df0fe4e2681d" + "signature": "036f51c37df6a6da03cfdbc774aa5d81fd3fbc7ddbe21519ea3e2fbc8a2b2ee3890d7b0c7e93f6ceeda2ba3461ce65304435879eaef48670065e06638903295a5c" } ] }, - "group_public_key": "030354ea2ae5e1eda262283b474f553683dba47f9060275452cd137d2a2c2d4992", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "05fbe15833e6639d8f6eb25b336af8d1fe0cab753a4040a829b7f957dddd1b73a4db1cf08f846d81da0990d4054ff984", - "6beff6e079a4964ecec533c73eabecd7dff63f0cfe50788133f01465296b6ed497c1aba5197b9c76564894f0044f9ad6", - "615a1e6814ade0b4cebf128a118bafeabbe4b5bd52069570caa1dd76c8d15c1ce729cfb24cfeb77c07345179ea530421", - "2f286aa0dbb2e269b64c683465bc2466e8a30ed2c186673cec10591b067d1a40ca4d752daed8dad2dc284f5a195ddea5", - "b18f055de6c275487ddbb2303b3b78c6f41d8591dded5078a72f7cbda4599323c735859ed03681e8d31d3a2a15062c64", - "ef7947943862b711fef9731ac45cdaf859b44f713a6bd98e4788553fc4aaf582a6cacb6e2c9d3cdea36892c6836ec255", - "32f63d26e49d5b308782c44f6908e26bfc9902c1b0032194c1984b4cef32967a9b1fed2f0e69cdb015d0db405e3bb9ef", - "630ec98b2333cab7668cda6835f137fcc6c04b896f490761316e6716c12ae45e9efec81ba59c0ff2cccd28b7233bac52", - "923a590d95f2411d48b09562bba5d99a714d6e4a60b35db8a31bb33193ae58f5c966814a52992e0af01e3432271a7cf1", - "d2b88b9b4d038dd037f2c56b8f09ceb71a50d6ecc60a6b3d0cb2d09dc6013a92cce4d4a5e4f1d74990bf34265798121e", - "ac519bfef518eedbd188239ab9fc4809ccf52db2f57318f4dd4c9863538eb84c1fd0cf93c752b148aef6682fc05dcf50", - "bc79f5fcd30c8ec6961bd1c95d734a6b055c272c4d9cc03ff7ca7ab495ca9e4e07b94c9b97f76b5584ed041a57c22a3a", - "f2eabd1b1246ff7642564f68fd8c136ea7079786f5b8fa50ee0b2ad21ff801deb1a3dfb7bfb5d867c61152c2843f50ce", - "e4d24c01774cb026255b89401e4b6c1c91aa71816f24c4128cc4b76e068e3af42119d98c5eade7f189f8fdbaccacedae" - ], - "recovered_secret_share": "31c11e7b3303511ae5b70236717ee6c996a7d36e32a07e5c7adeca6fb836ed27", - "recovered_verification_share": "025b18b60bcb8458af427fe61b52f1dd41a6f22fb1ace7aa5a1c3e22b2a80aa81a" - } + "group_public_key": "030354ea2ae5e1eda262283b474f553683dba47f9060275452cd137d2a2c2d4992" }, { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f9", + "extension": "5b661eb61d0444474cb9284512e3b8adcfc6ead95adb964dec8e05435ab24b35", "config": { "static_secret_keys": [ "fd69cd069d3ececc5e003e20ce25dd968c7da87e017bdf6afeffbae9a3b3f943", @@ -921,6 +1072,11 @@ "0312236aa188f8c9f51f58cf70c2add13d9fce8f8bddcc8f330eadcb3ec48e7373" ] }, + "payloads": [ + "95c5f86ff56fa5a4e822d2805804fcb1b57ab02b81daba73aaf8dc1685778e39", + "86cf44fd9f8a66e651736f0d43c130e78f067e3f0f042deaa2a13cb9f4c5a71e", + "006da8e06a93e5a530018cbe04569247a97af4880defc6c12f8f0df11731e341" + ], "round1": [ { "participant_id": 1, @@ -929,11 +1085,19 @@ "0230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc04", "02a5fa9a71b1b96c9a3d9e004d54292c942913ad1981f3a9cc445d25f5fb5f6d93" ], - "pop": "026f3b896e98d8c2f650e3b1ae4fd043d8925557d80db410f57afc0c50d6a6c8b35ec9392d9c42d8fa6f0a6c4895c84cb4e59cf011ec4408362ca98fc5fd2be0f6", + "pop": "028a388db9d2bc450770b752873e9c4a93af426edff9a4a6f296bb8075a02ebf7015f94cd70b5d24b148418de433f6d45ea5577c25eb162a8bc991cbf37182a9f1", + "pop_intermediate": { + "message": "f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc0402a5fa9a71b1b96c9a3d9e004d54292c942913ad1981f3a9cc445d25f5fb5f6d93033a67ab40136398a659df9d5814c4c4cdf837289d8e5b86d4bdad62b151c8d8a8", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e434509bdb45a91a56bfdb6f0e7bee747e49f4f27f490c75ac26e94aac7785cdfddc2f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc0402a5fa9a71b1b96c9a3d9e004d54292c942913ad1981f3a9cc445d25f5fb5f6d93033a67ab40136398a659df9d5814c4c4cdf837289d8e5b86d4bdad62b151c8d8a8", + "nonce": "a0f1159f78a7dafbc1e7b688421e93ea5799426cee2efdfc9b73ae5312908f54", + "nonce_commitment": "028a388db9d2bc450770b752873e9c4a93af426edff9a4a6f296bb8075a02ebf70", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d4837028a388db9d2bc450770b752873e9c4a93af426edff9a4a6f296bb8075a02ebf700230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc04f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90230a4232af3cecabd5485e31ccb94c497f58ba44477233ae57e1d8a250722fc0402a5fa9a71b1b96c9a3d9e004d54292c942913ad1981f3a9cc445d25f5fb5f6d93033a67ab40136398a659df9d5814c4c4cdf837289d8e5b86d4bdad62b151c8d8a8", + "challenge": "c8ea5d39242bc42e97b9656dcb5e645f10bbc67d17f32d2806b5f8900d44e01d" + }, "encrypted_shares": [ - "7e8cb8ef817b78873a7eeb00fba8bbced71124951500ccdb2a287ac8c27e9619cb3e3e5957811dda27dcd6d463d5b54b", - "456ddc006f4cdfadac38d5677eba1be629684ba5472299e5f1190fb869b4b979325b843a37e898778f9f8d60e48d3362", - "33c21cd7ced15c32590f3e6aa39c02e3646dd03c0dd432ef943ef07c1204a936c9ee7c2e056af1eaa83e35fb04aab75d" + "959e7f7820a5adc71a042ba23b22fc94c583b178be2ba0189709e7e6a18814d3c29a36eacd047c85141ba80258601c6043ed8d24b79aade5d21288f540ffb5ca1e4b3d53daa0ae328dfb1bc2733b72d4", + "090b34a9f9a2b01d08415411c582479dae75108f0c3b35bb8ee05185eb315e17c444623799cd6555b48a5fe212d6ec6e0338714ff3578e2ada0604266244aed38c3d5bd254a175f998302a7037db2488", + "c3ad6ee6f45d4251b74a5a46674da38ac9880e90b1f61104daa295d5f8066957c5477f3baa5bd3ddb001ea9c738ac243d3c20ea5616fd40594ced06199e7fd82e4aea9eac3df16929b37c6b1045e470c" ] }, { @@ -943,11 +1107,19 @@ "03c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72b", "024e6022ac007812f6f218005e8d1cf8f4978462f5138fa5e984de338d2cb18340" ], - "pop": "02b05dcfffa6310cf24d9ab80d337ec92b6e12b55c120ca5fd233db432633820121e92c7b058d4e27f4964f58406e23289d1b0e1cf54ee695a434e285527e74633", + "pop": "02f56d1653a8d961ff51c6b02dcde8c0c489a05de7b137c4ae8c25eb94874f35fff40f54ab7869c6351d7b1aed060228d6ebb08e6caf6b01a2f109aefd6aa64c63", + "pop_intermediate": { + "message": "f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f903c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72b024e6022ac007812f6f218005e8d1cf8f4978462f5138fa5e984de338d2cb18340027455f1bd669585e088f19b22e106c5ac3ddb92e711784e4b6da1b7ec3a63735d", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e43457bc17a1fe7f11a0d341d3f0f418d59e58c9e7ebcd1a8cb52bee30fd05d2052b2f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f903c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72b024e6022ac007812f6f218005e8d1cf8f4978462f5138fa5e984de338d2cb18340027455f1bd669585e088f19b22e106c5ac3ddb92e711784e4b6da1b7ec3a63735d", + "nonce": "173a62884cc31cf9603ccbce9d24f5fdf85db0f192259c08598335e527976eb1", + "nonce_commitment": "02f56d1653a8d961ff51c6b02dcde8c0c489a05de7b137c4ae8c25eb94874f35ff", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d483702f56d1653a8d961ff51c6b02dcde8c0c489a05de7b137c4ae8c25eb94874f35ff03c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72bf532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f903c6838d35e56ec3cf08bd8c7a286da525aa6eb16df04311542810190ee3e0f72b024e6022ac007812f6f218005e8d1cf8f4978462f5138fa5e984de338d2cb18340027455f1bd669585e088f19b22e106c5ac3ddb92e711784e4b6da1b7ec3a63735d", + "challenge": "9df84a241c994f4a2796e1e19019afde431773cf11c0a86d42f169747586c0af" + }, "encrypted_shares": [ - "5d7d7fa5304ca522ce93970dcedb630a9034afc1b06ac864dee3f0ab0661d824b13fe694cc8a6e462bb8472a2236f833", - "9306c022f0e15f73bfb1d686119abd5dd1a931b200df90e8c4b912e38b5c47320204f7c3889235dd10979c9318ee19ca", - "b7f270da0f5979649ede4091824441784ab4fe343024d7a091385fc2dce7630159513c3c52e97ee6e8cf599a08bfb833" + "d2c31b296ee4dfbd8da7c0ac1aac9c68f20a17524ccab295079eb008763626a872686b8884dbf304913de270e8a33e5566dece35707d3bb32a696c4c115cab8ea614e5419977e3cfe8507d88bf69cc57", + "093ddeaa270662744109428dffe781ab9e68c62160f5e821687069689f5b06e9c8598ff9988571fab50b1f7e91e16dda21ba9540a5379492b1ed160ff64a750b47535026cbe1e8bec14ed0662d294210", + "0e850d3e960bbafaad60fe6a97375656c9638e0219d8411184432a81ebd438e683b1b73331ae361ad45722fdf0ffc81310e9b8b9a045660c4665f7be5af3104350b9d1ddf38ccaeb7cbbb7b7ee2bf915" ] }, { @@ -957,11 +1129,19 @@ "0207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f8", "02374f3e6f1b3deda886c1e22d2e63e7644cf1bd4b234a0837b7d42c70b7960446" ], - "pop": "02fc546055185a2a01a813b6571e2ce2e85321408ce560e72febfb30a3ed4800df7c9b4be3ec4b0c24a5b02c9576639977d1c20059bc78a60dc59e62c8b4dd2d9e", + "pop": "021c6c7a620283d62ca460186b1e9eb253ce4188a7a874b0b8ca7dea3ec5a796e8e6bcff4c59b083abbce767481373504f5d3867dc6cf9fd884f3d28e2fd5a0878", + "pop_intermediate": { + "message": "f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f802374f3e6f1b3deda886c1e22d2e63e7644cf1bd4b234a0837b7d42c70b796044602a483ede7cff185665b1764c9337d2983892a63385c33b90886ba00bd13a64cbd", + "nonce_input": "434f434b5441494c2d444b472d503235362d5348413235362d4e4f4e434572a32090c607af8f8053167432f88b0286145fe3ac6b4a98fc6f0f067f385612f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f802374f3e6f1b3deda886c1e22d2e63e7644cf1bd4b234a0837b7d42c70b796044602a483ede7cff185665b1764c9337d2983892a63385c33b90886ba00bd13a64cbd", + "nonce": "0ae27fc7336a053e29b78a90782fec4403040c6d4d9e387e74666d9ab88e52de", + "nonce_commitment": "021c6c7a620283d62ca460186b1e9eb253ce4188a7a874b0b8ca7dea3ec5a796e8", + "challenge_input": "434f434b5441494c2d444b472d503235362d5348413235362d4837021c6c7a620283d62ca460186b1e9eb253ce4188a7a874b0b8ca7dea3ec5a796e80207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f8f532218fb1b58b79ac6e0b3f2b430701fb163d045676ef869cc15642da68a4f90207c719d7ba0f99d6adadd61b46677626c71bd3749db83a79669c1e69383846f802374f3e6f1b3deda886c1e22d2e63e7644cf1bd4b234a0837b7d42c70b796044602a483ede7cff185665b1764c9337d2983892a63385c33b90886ba00bd13a64cbd", + "challenge": "ca590e19ef98a53551f73d8779c6f571be034007c9c14be79e3b06d4aefc47c8" + }, "encrypted_shares": [ - "0793cbe598727514b55731e9410bde1a302cdcf675b69bf44e720b9cef8e2be5274cdd7ce33d227f1752d9a1c8a00809", - "2443816f8743ddbf215a27723f15fd2728de74c852eb143e87d57ad331f656fbbd358af9f9e306b8d06a83130af4a043", - "a774783c341fc076d2f541ea7eda47265fdf7eea2b8af39ed2df411594bab02489aba99f5f1cc812205f1b23bf274796" + "23fc21a2520a23f16a26c67bcb9a8451fc1292b10f7e4dc0f9392d6256ae87e4ea71d43817e8f1f33f0b120eb3d7e1c732ae7e330416db4b75adbf54c9ce5858fb730f199b89679c173a8f491cffd7bd", + "fc79a124631ace2f1132e7646f004a00c520da61deec80245761bcf34e23bcd0324a649d720ba57967d10d3b55122c00a9b6bbe717c72c84e5f4a68bfeba0d9fbb96fcb7ee60d7d90c8b0a076f0a498d", + "82353d711003a2f6d9bc33f3b01f16f8cd2834e45dc478c139746cca677d75b518c9b1d8f01f5a6cb746bf2a3394e24ebe476822847efc6af58cf2968bf4618e266ff3e365ddf4a8f94a621a3dd0386c" ] } ], @@ -983,19 +1163,19 @@ } ], "round3": { - "transcript_hash": "9f20db533b5adefda4da156725577441ed2b5f51f8ebce23b5558e79012cde69", + "transcript_hash": "3e30677199ddd46a6a34182705be387acfb3b4634792983290a94e85aaf31104", "signatures": [ { "signer_id": 1, - "signature": "02e92a2b18287720fed0b858128ccf5a719c63f83854992d3c0d6ab47b36580e41d6c20a593b59599588cfec1ee9493ba002641d431329407d1ad7119f52155d69" + "signature": "02372ca1b4852d51d352f6b50ff5fa0ba63ef62f102dbfe42404665d53ebfed435c7d9cb62ea4faab2ed450808a3b139a0104e8cad4deaaa00e4c6821b55b0c069" }, { "signer_id": 2, - "signature": "02595981c0288661098257e74b470db9bb7d7d2463087c03b8fc9a8cc849d6a8756431f0185d01f894ae6133cf9cc5aaec21c470a5e5ab3486cbbdc256ef71ff06" + "signature": "03be4592d2bfdc9b427868988e8321573984a78c8e8bb0335b1c6bdbb3e3273d9b9f67331008e12b104987feeaa8a5c75dd592025bd727de081e75fae1234fe91f" }, { "signer_id": 3, - "signature": "03f4099cf86c3e2d1955dfdb634ce4057de3def9712603fbfc2ac0fb600aa6968e74ea6e609c4d3c2267e010c82c7d212aa6a07fc953c9e4353825d5bc61c2933d" + "signature": "02d3e513da95b0aefd8a5c9f75972a987f17ccbd05c7d718c5220a561f3a1885080e7f81ec7af4a8a1b04090c268a3d1b3ab1f24a5ce0037aca38cc5bd5da62028" } ] }, @@ -1003,9 +1183,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "7e8cb8ef817b78873a7eeb00fba8bbced71124951500ccdb2a287ac8c27e9619cb3e3e5957811dda27dcd6d463d5b54b", - "5d7d7fa5304ca522ce93970dcedb630a9034afc1b06ac864dee3f0ab0661d824b13fe694cc8a6e462bb8472a2236f833", - "0793cbe598727514b55731e9410bde1a302cdcf675b69bf44e720b9cef8e2be5274cdd7ce33d227f1752d9a1c8a00809" + "959e7f7820a5adc71a042ba23b22fc94c583b178be2ba0189709e7e6a18814d3c29a36eacd047c85141ba80258601c6043ed8d24b79aade5d21288f540ffb5ca1e4b3d53daa0ae328dfb1bc2733b72d4", + "d2c31b296ee4dfbd8da7c0ac1aac9c68f20a17524ccab295079eb008763626a872686b8884dbf304913de270e8a33e5566dece35707d3bb32a696c4c115cab8ea614e5419977e3cfe8507d88bf69cc57", + "23fc21a2520a23f16a26c67bcb9a8451fc1292b10f7e4dc0f9392d6256ae87e4ea71d43817e8f1f33f0b120eb3d7e1c732ae7e330416db4b75adbf54c9ce5858fb730f199b89679c173a8f491cffd7bd" ], "recovered_secret_share": "112ffc75c88657968c290f46bea1573996cd4825c79d1422b2a430dcde0863af", "recovered_verification_share": "0314bd10010bd552adee76a83db3042a17021244f0871cb2abdd1648686f55f662" diff --git a/frost-ristretto255/src/keys/cocktail_dkg.rs b/frost-ristretto255/src/keys/cocktail_dkg.rs index 23fac66f4..3d076683d 100644 --- a/frost-ristretto255/src/keys/cocktail_dkg.rs +++ b/frost-ristretto255/src/keys/cocktail_dkg.rs @@ -63,14 +63,13 @@ pub fn part1( /// Performs Round 2 of the COCKTAIL-DKG protocol. #[allow(clippy::type_complexity)] -pub fn part2( +pub fn part2( secret_package: round1::SecretPackage, round1_packages: &BTreeMap, static_signing_key: &SigningKey, participants: &BTreeMap, context: &[u8], extension: &[u8], - rng: RNG, ) -> Result< ( round2::SecretPackage, @@ -86,7 +85,6 @@ pub fn part2( participants, context, extension, - rng, ) } diff --git a/frost-ristretto255/src/lib.rs b/frost-ristretto255/src/lib.rs index 834f6123d..5b2374393 100644 --- a/frost-ristretto255/src/lib.rs +++ b/frost-ristretto255/src/lib.rs @@ -219,8 +219,25 @@ impl RandomizedCiphersuite for Ristretto255Sha512 { #[cfg(feature = "cocktail-dkg")] #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ristretto255Sha512 { - fn HPOP(data: &[u8]) -> Scalar { - hash_to_scalar(&[data]) + const COCKTAIL_ID: &'static str = "COCKTAIL(Ristretto255, SHA-512)"; + + const H6_OUTPUT_SIZE: usize = 64; + + fn HNONCE(secret_key: &[u8], message: &[u8]) -> Scalar { + hash_to_scalar(&[ + b"COCKTAIL-DKG-Ristretto255-SHA512-NONCE", + secret_key, + message, + ]) + } + + fn H7(commitment: &[u8], public_key: &[u8], message: &[u8]) -> Scalar { + hash_to_scalar(&[ + b"COCKTAIL-DKG-Ristretto255-SHA512-H7", + commitment, + public_key, + message, + ]) } fn H6( @@ -229,7 +246,7 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ristretto255Sha512 ephemeral_pub: &[u8], sender_pub: &[u8], recipient_pub: &[u8], - context: &[u8], + extra: &[u8], ) -> alloc::vec::Vec { let mut h = Sha512::new(); h.update(b"COCKTAIL-DKG-Ristretto255-SHA512-H6"); @@ -238,14 +255,8 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Ristretto255Sha512 h.update(ephemeral_pub); h.update(sender_pub); h.update(recipient_pub); - h.update((context.len() as u64).to_le_bytes()); - h.update(context); - h.finalize().to_vec() - } - - fn HKDF(data: &[u8]) -> alloc::vec::Vec { - let mut h = Sha512::new(); - h.update(data); + h.update((extra.len() as u64).to_le_bytes()); + h.update(extra); h.finalize().to_vec() } diff --git a/frost-ristretto255/tests/cocktail_dkg_tests.rs b/frost-ristretto255/tests/cocktail_dkg_tests.rs index 8de9cc855..13aa481e0 100644 --- a/frost-ristretto255/tests/cocktail_dkg_tests.rs +++ b/frost-ristretto255/tests/cocktail_dkg_tests.rs @@ -18,7 +18,5 @@ fn check_cocktail_dkg_test_vectors() { frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( json_str, |data| Sha512::digest(data).to_vec(), - true, // encrypted shares match (XChaCha20Poly1305) - true, // recovery is tested ); } diff --git a/frost-ristretto255/tests/helpers/cocktail-dkg-ristretto255-sha512.json b/frost-ristretto255/tests/helpers/cocktail-dkg-ristretto255-sha512.json index 1c91b5e40..0d48f7723 100644 --- a/frost-ristretto255/tests/helpers/cocktail-dkg-ristretto255-sha512.json +++ b/frost-ristretto255/tests/helpers/cocktail-dkg-ristretto255-sha512.json @@ -13,7 +13,9 @@ { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65", + "extension": "", "config": { "static_secret_keys": [ "8232337dffa583f214e2ead7f19c37b482f77171194ed6984a715353e086d20e", @@ -34,11 +36,19 @@ "fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33a", "08fcd4093599c2dd7def1bfe843d8fd6c9041caa33c00a2bad11fd4bc1f16134" ], - "pop": "6601dd522cbc9be894c4a2d6388b38f4b98f0325f884d3aae21c9a6bd76ca41b794c0a64696b07a90891d0172d10e78f118ca441f33cfcd293986dc491634e07", + "pop": "daa5517fe46e89c7b819d17695ac04605638b7da25e3e3aec800bfe2d2034a51bcee07a6fd147827a66f32985c6e3f1029ea1c588c7f1bbf7dde540525c38609", + "pop_intermediate": { + "message": "be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33a08fcd4093599c2dd7def1bfe843d8fd6c9041caa33c00a2bad11fd4bc1f16134a6841269b357caa2d0655664961704b06875255a7b6ca1af8004560314384447", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345bf750e2889d1685f7adb1b565084a7825d1c89e64c058c12f6ec97b144ecc30dbe553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33a08fcd4093599c2dd7def1bfe843d8fd6c9041caa33c00a2bad11fd4bc1f16134a6841269b357caa2d0655664961704b06875255a7b6ca1af8004560314384447", + "nonce": "af3560b3949d7104ced95f9da35edbbb524bbc81957c966303b5c7c5b490450e", + "nonce_commitment": "daa5517fe46e89c7b819d17695ac04605638b7da25e3e3aec800bfe2d2034a51", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837daa5517fe46e89c7b819d17695ac04605638b7da25e3e3aec800bfe2d2034a51fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33abe553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33a08fcd4093599c2dd7def1bfe843d8fd6c9041caa33c00a2bad11fd4bc1f16134a6841269b357caa2d0655664961704b06875255a7b6ca1af8004560314384447", + "challenge": "2b11aa89d39dd8b95fd0a7c047b364f169f653abffdc138f426db45725a52e07" + }, "encrypted_shares": [ - "9123460b09df36e1e8b23c5ab8716568874481343bb647109941484c4a0b77243e9057ea3e6e39b394f3e97abd09e407", - "0448d0e38af67f341b5a2062573786edda7254bdf6f24d23c9618897e75b642763f7a2cf4e80a6a6cd9a6d9acacf6190", - "de7bbe0110fdf1b3a4e9590a53ec4a35edbf9495a905639afdacaa1f17232c71f2f0f72f768ff02fc4050772eea4ff2a" + "375c36ca6110e66a7c5b41fb8ad7aa8469d6ca29ca309704571d4960db9d0350c8c487ce985457df5833e94f6be49459", + "04f0663c1ee8fbddd47694709ea870080789b7044f75d7a679b656a40ad93fdab3a682c3c86827915aa39201c006acda", + "340ff8092ea5da9993a4f974c405ba690a10c92f64707e68c8e210bf64b775496973aa4643024eaf197ec267a8e2b067" ] }, { @@ -48,11 +58,19 @@ "bc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055", "f4e3e84108289d680c8e1ad24cd6a70fab1afe233b6b3ad839ee87742baceb39" ], - "pop": "3ea2a28a09f51decd9420f1eb388da9c512d3fd45a2fbc66873e6dbfbd2dbc51b31a77547c7747798d154196fa7c03ab50bbf2d0bb7aa85f4282aa4723bb2c08", + "pop": "f6c8246e83d3dd9cfa13834b734593e410bfd61f2ad91de7bedb3f47e0b7327ab78fb6f89e977b813b38d916fcc221d4e810c91c41cdbb1c97639008a64e940d", + "pop_intermediate": { + "message": "be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65bc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055f4e3e84108289d680c8e1ad24cd6a70fab1afe233b6b3ad839ee87742baceb39a0c9a49c4882ec32590160681791b157a39ff7b7401fef9268c8efb5e48be43f", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345c82c13e0137618c882da777f3ffb8c5a6cd9ae822d32d6e3d94dad43fa2d6700be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65bc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055f4e3e84108289d680c8e1ad24cd6a70fab1afe233b6b3ad839ee87742baceb39a0c9a49c4882ec32590160681791b157a39ff7b7401fef9268c8efb5e48be43f", + "nonce": "5f4a2888a749ebcb264de0edfec3b6a8db69da99effc640cdcac6d5b11e23f04", + "nonce_commitment": "f6c8246e83d3dd9cfa13834b734593e410bfd61f2ad91de7bedb3f47e0b7327a", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837f6c8246e83d3dd9cfa13834b734593e410bfd61f2ad91de7bedb3f47e0b7327abc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65bc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055f4e3e84108289d680c8e1ad24cd6a70fab1afe233b6b3ad839ee87742baceb39a0c9a49c4882ec32590160681791b157a39ff7b7401fef9268c8efb5e48be43f", + "challenge": "469e194f7bb23f1c7ec41eef5311ad941c8eaaf1caecdc07935ba77c44265703" + }, "encrypted_shares": [ - "5f4432d0349118d57dd893d08094fe9732574887ae1f6ad0c723c5ec95a5a25973b7e974f221667f86547833f62abfe4", - "53d0f9d7d68b5f1f32af8dda8c1fb652f01486586a5924e9d7b5eb42c96faa6fe9454edc4f5d36c67df09a6600d86a49", - "21eb55105356a4a56d38ffc7fc54e33d9b6ba13727c34eb04118d4eb9f3c5413be1932c62270cc55a83148f469120e86" + "84530fce8235de9bced0f7596f0932a5af252669eb6fdcaf45353dd4399c1abafc0ffe2c8f724b3f3f2ea716ceeaf03f", + "8ac6fb8f418254b3f4a8231eba42edbad9b686f473884e577c3687c02c33376306f748c25b3f2045bf8acffa628a3079", + "ad69f0252fe6d7ec8ecbc869c4e661014e7c4d5618571e4b7412cd2d6935c6e7f2111f35976d24bb0a5f3adcf63e70de" ] }, { @@ -62,11 +80,19 @@ "a4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839", "e2244a3f3ea70ecd697189daff4792d5af5e4eff132c1bb6101b04a5adc6c743" ], - "pop": "26cf2b0b2d5508a555002148ff03ae093f4ea1b8d8a79123c652fa96bdff6a27eb3b248c1338b3599077f16796b61444a4157ca43f64380427877456cb3ebb00", + "pop": "269c7e4ee3b8773088c3b552b307dcc2d5de36ca00d67bba67dfc83db84edc7d61c04b8ea340ad361299699062e5e9a7025848ac991f0900e26604d6205b8602", + "pop_intermediate": { + "message": "be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65a4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839e2244a3f3ea70ecd697189daff4792d5af5e4eff132c1bb6101b04a5adc6c7432293b1d8ed98f109998a243aa949a55605d0ca0e50897e059b658e0c63dfda25", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345e8bdba8382c0f79e769383cb09310c00fd36cfb29f7756fa76bd233bdb39a50ebe553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65a4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839e2244a3f3ea70ecd697189daff4792d5af5e4eff132c1bb6101b04a5adc6c7432293b1d8ed98f109998a243aa949a55605d0ca0e50897e059b658e0c63dfda25", + "nonce": "64ba762c9135706f20b1671595316754b01e11a4ca97f5e9108ca85e944f3509", + "nonce_commitment": "269c7e4ee3b8773088c3b552b307dcc2d5de36ca00d67bba67dfc83db84edc7d", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837269c7e4ee3b8773088c3b552b307dcc2d5de36ca00d67bba67dfc83db84edc7da4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65a4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839e2244a3f3ea70ecd697189daff4792d5af5e4eff132c1bb6101b04a5adc6c7432293b1d8ed98f109998a243aa949a55605d0ca0e50897e059b658e0c63dfda25", + "challenge": "abbf2db7eab9f7612473ee7423597c5c2b5b2b75dd1e1bac74b93827c7297703" + }, "encrypted_shares": [ - "7c72d167a3a1ae7a7d1afb3970a16e7433af7a9a9d17e7ba1f1dae334889b989dcb9fae5dd17d70952953d03858f1b98", - "578faa68d9bc3e495ec5e82133d501bdd8464401088700cd557224dfc720cea39813156cec1780c5b03b148cd7e9a378", - "e2e07385816f9f092d9c2e35009dc139f96f560f3b278cdc3eaaab6c2455c2b51e11581e5b927dff762ebf60d9080465" + "a8702db938a0e1e89ea25f0e1a6e343504485ac8e7d57e5389a1ec0d24e2e461ef36590c9686b13f526755c8ad4ce621", + "422bbfb63733f16ffe7d59f9617a75b4da7ea2ed9bdc70af90913f10e8f34bb007d8fa676a14401223e4cdf1c835fa54", + "c354f44a49c76cc5cf0a73b9000a35867c758c3e03977915345de037e40b57bb2fea692d7f7c0776f25dac636926193f" ] } ], @@ -88,19 +114,19 @@ } ], "round3": { - "transcript_hash": "688801fc10825c8c317a69bf7720f5a1e9deda663658dcd8d49c75fae3c8ff24d0e8cbbee95e3b9d85a48c512863a3d2f484c572ff2229c1e9bb70ab9aea6609", + "transcript_hash": "fb5790ec7c23f66c25f36d50361e0e448bb3174cec4ee0c9ddc3da4e595428b1215ab66299825529b5f4b1acdb49fecad56ca416993e3bbffe504077204b1f19", "signatures": [ { "signer_id": 1, - "signature": "0a1ffc6b6f07a088f6e4804035cd3e7006272d78eadc5fb41a3eb096592a664848d54e8e8de69785007d07bf5f11de5142ee0039dcd2f5bbc106cce65e8c3705" + "signature": "acb3f81cb8190d3acff848b88fe00eb6e3fbbea124b8d193a8ac7f391908cc362e665f2ab38193b65b016ba1face12966c7392ffdcf544657e31b9b8415a7e03" }, { "signer_id": 2, - "signature": "44bdaed33768e912ccbbdab7a1bbf4addb2321f44adf4244cde6f62939ce9e09577f2d139e53d6f52d14a0d71dea27279f26870a4f7d034739f1a9ed6ef4e703" + "signature": "14051f96de93f645de44a36756d7b4c03e6f62de7d4e6055026f48dda593246e191025fcd30a78ea9477ef629616e3fc8a39950102425364d3cd89ec774d2605" }, { "signer_id": 3, - "signature": "f626f932b65539603113d28d7a26c35b2d1739945f0cc976abefb40df90ad16fc10f1a0e0e36c125bf4a9cbd4d9dcfa1a699f80836a80a27ec1412a64e66a707" + "signature": "64b369aeefabaea7bc958a2fa542eabe9ad8e0831413128339b4b49190456b5a2ce69fa5da24666905b64cb228d88cff243eb91640515bf787904578f6fe330b" } ] }, @@ -108,9 +134,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "9123460b09df36e1e8b23c5ab8716568874481343bb647109941484c4a0b77243e9057ea3e6e39b394f3e97abd09e407", - "5f4432d0349118d57dd893d08094fe9732574887ae1f6ad0c723c5ec95a5a25973b7e974f221667f86547833f62abfe4", - "7c72d167a3a1ae7a7d1afb3970a16e7433af7a9a9d17e7ba1f1dae334889b989dcb9fae5dd17d70952953d03858f1b98" + "375c36ca6110e66a7c5b41fb8ad7aa8469d6ca29ca309704571d4960db9d0350c8c487ce985457df5833e94f6be49459", + "84530fce8235de9bced0f7596f0932a5af252669eb6fdcaf45353dd4399c1abafc0ffe2c8f724b3f3f2ea716ceeaf03f", + "a8702db938a0e1e89ea25f0e1a6e343504485ac8e7d57e5389a1ec0d24e2e461ef36590c9686b13f526755c8ad4ce621" ], "recovered_secret_share": "09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304", "recovered_verification_share": "5e130c137d31a445d1b8df391b41db0dbf6a9e13649abb40d68d3fa955eca22d" @@ -119,7 +145,9 @@ { "n": 5, "t": 3, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "context": "4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b0536", + "extension": "", "config": { "static_secret_keys": [ "0532c882c5e72dc374dd3bf221e641b5634ec4316a5c96a7eb168510d2379a08", @@ -145,13 +173,21 @@ "8a4776c1463b5fb6380a32f3d074c0de444de000402b6b98531e0bc01fe15b57", "321cda88edb81cf1a1a8c74864bf8bdd6dee1f7191a0258248b10825a6de3f1f" ], - "pop": "a8a961fc5a72f0f6031141ababf6657af2f0b3d1aed7e9f68949d692fa05d4734ac6f371b2bb2ffae80d877ea96861e2bbf8f04ad94503e8c5a2b70472a71100", + "pop": "e81b1599b0601302f03ccfec6409415f38bdc9bbe1f74b58f479bd9c2a713f1d54432e3fe1ca1494c42a5ea4ee2a7029539d4864dba9a13858603f4193d52809", + "pop_intermediate": { + "message": "4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b05369a55100f998dd0ed358a37954290863893f68905c31c9cb490ecace1b06eac6e8a4776c1463b5fb6380a32f3d074c0de444de000402b6b98531e0bc01fe15b57321cda88edb81cf1a1a8c74864bf8bdd6dee1f7191a0258248b10825a6de3f1fa02c0b3b32161c4705dd7f4b6516174e19b8d597ab52141f736e5f7d4c9a5100", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345dc4aa99ad8bc855161bfc033b1d3dc1f7aa60687888ca9e4be79c9cdbce4bc0b4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b05369a55100f998dd0ed358a37954290863893f68905c31c9cb490ecace1b06eac6e8a4776c1463b5fb6380a32f3d074c0de444de000402b6b98531e0bc01fe15b57321cda88edb81cf1a1a8c74864bf8bdd6dee1f7191a0258248b10825a6de3f1fa02c0b3b32161c4705dd7f4b6516174e19b8d597ab52141f736e5f7d4c9a5100", + "nonce": "5f44773b3f6778e10fe33fa9fb6203a069d6f317032dd1b4175bf8d11ab3b00e", + "nonce_commitment": "e81b1599b0601302f03ccfec6409415f38bdc9bbe1f74b58f479bd9c2a713f1d", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837e81b1599b0601302f03ccfec6409415f38bdc9bbe1f74b58f479bd9c2a713f1d9a55100f998dd0ed358a37954290863893f68905c31c9cb490ecace1b06eac6e4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b05369a55100f998dd0ed358a37954290863893f68905c31c9cb490ecace1b06eac6e8a4776c1463b5fb6380a32f3d074c0de444de000402b6b98531e0bc01fe15b57321cda88edb81cf1a1a8c74864bf8bdd6dee1f7191a0258248b10825a6de3f1fa02c0b3b32161c4705dd7f4b6516174e19b8d597ab52141f736e5f7d4c9a5100", + "challenge": "05001700eb971c1304d25f6579fde31394aec0936b16f74501fc65d6fd279a00" + }, "encrypted_shares": [ - "0ed913628c31508c325b4f783940439b9fce37b7a0b33ad2aab97b39209df2db88ecb7747ad9ef7ec5db532d855e0cdb", - "e5c15bc0d5e03fc833f98d75a1b467bb4b306b961d738436f7685a085697ab1058a1aba5f1afa26237bb01e27a67ceb7", - "7d8d196d21c35aa4ca66f16203244cd5472337aca5941a98bd70280b3eeb1b26838e4061de9c0a98a37512a0a379bc11", - "eeec37d30d8ac27324657bd71d6de6412b7d4e4bb80f6102bfb206b840d5408e2eceafac822134cb74a8740d845c94f4", - "3b6bf72122448777ea7bbb516eac1e15ee554df8d2c8233df835fc63841417fd060bb580f5d89ec771b522cd8e81697b" + "4252d30fe33259c7d70575ede84c6be736644b416fc5aa0bbdc6bf79727bd90541e6fe5e7c4a0022fefffcdeba9a6ef9", + "8dc9986da391fe04608e614da77c063d010532cf4aa62e3513daa04d9d7bf2e5918cb18f06c5bb3893192a16757eb77b", + "f71e06b9442be184ed0ec87bc4c0ecea0bc2b983af7e815d1e3794650da6fb30d5f5fdaa497374fabe5a6b9c4c583d27", + "4f8b5b566570e676e92776023c82112aae38d1845b3d2ba72934729d7a075222af7b9e29aa190bd746b60ca52bd15d5f", + "d66547b2b3d72b5d654656cce4f24631667b9f7f368c1efc3d89fce315cc612c3801957fa4673bd0a5c6126d7c40e975" ] }, { @@ -162,13 +198,21 @@ "a4133524dd4c4ba5d54cd77b4708a5ebbbba1a26c1e651e8231b611b92fb8162", "369879a4257b4307d637b2763dab9715ac263e8570a74fe06148dabb8293256a" ], - "pop": "ea434f3778c346ce0de6f948f323b5634a736c01a71d28218a62f0988d74ae4a5e6eef7ad7a584d4231d110bf059ca2a1b484b7ec2fa088e1f85441b45398d09", + "pop": "62b13906343921d8b1371a4ace81a3adcc232ae40a3c9484f53683038950c12f85f9a0cdeadd0ec9b5d4e9f9dbfcb04d320e9c5e7163c70eecfb1da38648690d", + "pop_intermediate": { + "message": "4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b0536c259b6466b4fae98a6a8bd0505fab7f0a9dd207571ebf2675032a0b4815f015fa4133524dd4c4ba5d54cd77b4708a5ebbbba1a26c1e651e8231b611b92fb8162369879a4257b4307d637b2763dab9715ac263e8570a74fe06148dabb8293256a5cbf9e751c389aaec943fc80397b58cbc1703af7794fc09fb90ad8dbebba6838", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e43459e29bcc0e3a2148e21c8f274a6de7eb5ea087d64293ee713144946de41d3080a4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b0536c259b6466b4fae98a6a8bd0505fab7f0a9dd207571ebf2675032a0b4815f015fa4133524dd4c4ba5d54cd77b4708a5ebbbba1a26c1e651e8231b611b92fb8162369879a4257b4307d637b2763dab9715ac263e8570a74fe06148dabb8293256a5cbf9e751c389aaec943fc80397b58cbc1703af7794fc09fb90ad8dbebba6838", + "nonce": "b343022f34b006525eb9dd9235685d8b896e052087bdb0492c28c15c56f61304", + "nonce_commitment": "62b13906343921d8b1371a4ace81a3adcc232ae40a3c9484f53683038950c12f", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d483762b13906343921d8b1371a4ace81a3adcc232ae40a3c9484f53683038950c12fc259b6466b4fae98a6a8bd0505fab7f0a9dd207571ebf2675032a0b4815f015f4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b0536c259b6466b4fae98a6a8bd0505fab7f0a9dd207571ebf2675032a0b4815f015fa4133524dd4c4ba5d54cd77b4708a5ebbbba1a26c1e651e8231b611b92fb8162369879a4257b4307d637b2763dab9715ac263e8570a74fe06148dabb8293256a5cbf9e751c389aaec943fc80397b58cbc1703af7794fc09fb90ad8dbebba6838", + "challenge": "a28138c235856a27f16718d8694b6b7e53df85042af0f0a8c1551ee04c820503" + }, "encrypted_shares": [ - "1d0d7eceb2e89ae4dc1ef3c55e0aec326fb458446132210bf8918fcaa9424df2ac061b0ba9bd899274a3492f8c9a318b", - "8eb741bbdbed9c0ec6fa6bdbf79cde0241f105c27957d22b1cabf4718e197d6ca117197730bbecdd50f4f18fd99a1a65", - "c9de34d43d56c875df47f91afa464a7af34f23a79397b76e60c501ae1ad1e2aa2e868365c82274da5aabe2ccc98116ca", - "53306b1adf9d0bbda152459f0c37971d76d1651354cb6ce5a6e3030cc2abae8ec8b3ab2631f36d88e80d38d49b956947", - "fa05ddb574fb1c1d3323bd3e2edd9ec47538ebd0deaf79b1a494784a890ecee81e6b67e8bb2aa4941f2e62237074a6f9" + "b505e25fa26548305a7399fbc46734b0e45984fc0ac711f7073dc1239d024219c76cb34f04bd785ce3c8562fac005a85", + "a3e7c2d65b694294e3b965c2ba2a86deef68282819fd0fe1d125fc9e2ff9b3e41de6f95cb0cece1615ccab4836acab6a", + "e19d38f31437bc0af5c3960c9b8bcbdc3f29b4e3dec7246dc88bcec1524fe1650529ab3fccd21aaaadb29ff3f36a8a15", + "7e068f3923c3542897917d2c1ce8ba4450c5c4ae604771b16c7b9d3266bafeece91740a01d6da8e8b882bc375ca16348", + "6baa5614f3047d088a56a2b5b0ea00ac5a077a5b393ef7eb8011219da353097d23f9e9551d49f097eb92f65bd66c6ecd" ] }, { @@ -179,13 +223,21 @@ "74421e8b64bb1062d489c0056b98033450f512df8b6bea8b3db993234c05334c", "a8e83652823da58d580f75de85f8c85291125cde85357b8fe07f3049a049410e" ], - "pop": "0a94b0c33b6e826ce49a091d446caaee6cfb1f0713d58e0bef8b375ffd477d307f04efac82383dfa70cd11be576c180e2cc390ff5c17dda247d8eab29947a603", + "pop": "2c2aa25da480b94efeb495719e632e4640448442a99dbd81aba42b8081c456058aeefc8a8159e1bf935b9babc9f5857da8575d018d452c8e3e71767d9579d609", + "pop_intermediate": { + "message": "4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b0536004a6fe76163a12b39f754c9a9c15d29dfca88b7ee4a176940c4ba006fbfbc7274421e8b64bb1062d489c0056b98033450f512df8b6bea8b3db993234c05334ca8e83652823da58d580f75de85f8c85291125cde85357b8fe07f3049a049410ea067c79b28615b91f8b2712ebc5ef3ac01496c6cb7442102e168a0a8b5bc2d19", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e43454742d9464f129a2aca8a1d8e0b33973a0b9fa58fedcc8a77db1270c961558e0d4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b0536004a6fe76163a12b39f754c9a9c15d29dfca88b7ee4a176940c4ba006fbfbc7274421e8b64bb1062d489c0056b98033450f512df8b6bea8b3db993234c05334ca8e83652823da58d580f75de85f8c85291125cde85357b8fe07f3049a049410ea067c79b28615b91f8b2712ebc5ef3ac01496c6cb7442102e168a0a8b5bc2d19", + "nonce": "68ee8950aa78e553be633f7f76cdd3c470ebfdcf3338ef720baf6b2b82f1390a", + "nonce_commitment": "2c2aa25da480b94efeb495719e632e4640448442a99dbd81aba42b8081c45605", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d48372c2aa25da480b94efeb495719e632e4640448442a99dbd81aba42b8081c45605004a6fe76163a12b39f754c9a9c15d29dfca88b7ee4a176940c4ba006fbfbc724faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b0536004a6fe76163a12b39f754c9a9c15d29dfca88b7ee4a176940c4ba006fbfbc7274421e8b64bb1062d489c0056b98033450f512df8b6bea8b3db993234c05334ca8e83652823da58d580f75de85f8c85291125cde85357b8fe07f3049a049410ea067c79b28615b91f8b2712ebc5ef3ac01496c6cb7442102e168a0a8b5bc2d19", + "challenge": "577fcc653523d99d729cb517fbf0ed9fec78a93f248a1047d4eedcd56544ed05" + }, "encrypted_shares": [ - "f9e0b1c8671f687930e8424d3f2746213ff4454f5a0116446356e1cd79a0b91dd28dc3267fe4eefceb2552254bdfe416", - "3422f539f32cc28c29f589513c7c368ed4ec88b7631983791ac72cb5988bf8accd97e6afac09860acf126b0bf64b754f", - "7f732ebf2612ae0a3893fe7344cabc991312bbf9f098c8e954683ea2b22dfd0575d00b6b4c319aa883b291302930e0c2", - "d5667c3f999cc7a9a5347577c3c5769b442c8398a6efbb3189a461c709b2f69485684c3e1b10677056656b76d98ab12c", - "f24bb9588220d4ad848f0960d20bc38a58f5e911e931ad0dad1b78e09bca0f020324f98401b81539c95d8a21b5b26417" + "00fb41b329f2dd11b28492863e7b84e42e49ec31152e9edddd3543bc1152165111cbfb4bfa04aa11f0c1e39450d87d0a", + "02650f831cffe377067819ff8a9d9bee5bd157a90046363d6cd6406c68d8b79e3ba9f8582e36533151bd5371fcd19240", + "8a0b8dde174b68cf6a881383f67be0619349ac4a510709ce6fd4c320eb1b38416385e450327e51e45c90f741b63166ed", + "a06ddcb4f325d6c0f82fe0a05ede64b02956204c551b1badef28eaeaa5811b5fb8f3840dfe6802bfb3a370934446a0cc", + "af6c1fb16217d0e8f3a87b35df6177cf0ad32d956040fa84d0aa6699b1c2a06afdb3144c7e7c299e3e831ee066c9a15f" ] }, { @@ -196,13 +248,21 @@ "9a6786177d7945e165487a150e5872c8ecc459f540becde065dea50d961dfd18", "b8a23454601960c736ac67e37df840796a7ecf5cd7e3322be82fe54cf2de5931" ], - "pop": "9efcf15df1a52a4616f72b46ebaef2ea6a38fc10940dffc400e56fe111137f5520b7024a0a4d68dda47919143abf7fba3e96af190b965cf6ce5399af58edfb03", + "pop": "d62e1a4a6241fd45f524f4a8afac65ee66609fc73f8b9484da30058f92587119636f4b5b05d245c7a7bcb68e1d8f2496654c525da61a9decfac35eefffa19c00", + "pop_intermediate": { + "message": "4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b05363053098dbe48ce6da90fe816dc1a24c35b835d1c2c98a6f5e0d29117f668621c9a6786177d7945e165487a150e5872c8ecc459f540becde065dea50d961dfd18b8a23454601960c736ac67e37df840796a7ecf5cd7e3322be82fe54cf2de5931b2dd82ff8b6548d0bcd01772efa15016bf7e8f83a6b92643ff29107e1a279538", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345f5a142e39b8c9842f5e59043e208325c053a120fca34b6ee170e3662592f590d4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b05363053098dbe48ce6da90fe816dc1a24c35b835d1c2c98a6f5e0d29117f668621c9a6786177d7945e165487a150e5872c8ecc459f540becde065dea50d961dfd18b8a23454601960c736ac67e37df840796a7ecf5cd7e3322be82fe54cf2de5931b2dd82ff8b6548d0bcd01772efa15016bf7e8f83a6b92643ff29107e1a279538", + "nonce": "3db62060d984391aafc0e20de6dd62b0d69125a940fab073862535414894d40d", + "nonce_commitment": "d62e1a4a6241fd45f524f4a8afac65ee66609fc73f8b9484da30058f92587119", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837d62e1a4a6241fd45f524f4a8afac65ee66609fc73f8b9484da30058f925871193053098dbe48ce6da90fe816dc1a24c35b835d1c2c98a6f5e0d29117f668621c4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b05363053098dbe48ce6da90fe816dc1a24c35b835d1c2c98a6f5e0d29117f668621c9a6786177d7945e165487a150e5872c8ecc459f540becde065dea50d961dfd18b8a23454601960c736ac67e37df840796a7ecf5cd7e3322be82fe54cf2de5931b2dd82ff8b6548d0bcd01772efa15016bf7e8f83a6b92643ff29107e1a279538", + "challenge": "92f7c9f82ff916b3f568930f9685f832ed8d81067481e59c99bfdb04c7e0e00f" + }, "encrypted_shares": [ - "f1d8ed0070ea02e165bd49e503442797c95061bfec5d1e9e53c027417c7396b30cbdfb5355fec1759a92fe5046780c5d", - "51e8b2aa2f5dccaa6c314dc16420fc963544d1f5ebcb66ed22e668d943134fd56b1a8b2e41d73ce7a98801af8adeea50", - "6bdbc6736550e28f3ce27df16ef06d81a8c01fa345798ec460520094287c6aae241c20e22534394697ac5a3e04cbbe8c", - "f010f109d58f6197c50a869dda7c78402930f0e968a7005b6ffeb28ee27ec91dcf87c8b24f5e04823f5f29a705256633", - "906de7bd6e4d9e42853cd9dcd21f92821f1583106bf8a7cb274b2f74355a05550ad6e826a9ff1289f6674efccabef536" + "6305a0ff2743fe92813512a6ed0a843556c04ed922d6aff3481ec483d5bf0819d85fab4e581bb7404ce6bb3b7bbf89a0", + "990ce2e7a841967a243df5bf048795ac5c605bbe9884ed1b6fba40d08642126397dcfd285b1fa629aac9be5bfcda4f25", + "951931d3389134fe63aa0851ee18e7e036e8dd4e7b03d5ebfa664fb541db2ff275e7260914025e92e3a4c99cca8d5802", + "e9d92a59fade32022f6b70c56360f3da17aca40f6508cba5fed07cf7aff6eb49a4e8e39d6281381e90752fbeda5db449", + "f2808cfa7bc5048f6d2e891f333400220fb5dba03da8cd065c788580c1000b256dd24b668b53caa540f5fc0404a75111" ] }, { @@ -213,13 +273,21 @@ "c2470fad041fa046059462d7b4070dc5b9e970fcb676605ac38f618e980b0e0d", "8231ab4a8036efb232ff44f8244a6040a433d2c476ba32467f62377f7422f778" ], - "pop": "ae6a630e9f2fed31ed765e403dac00c3081d7f71223fcca32048c08c18e25a07c275f6daf3afbd1548ae8180be57609e62b6dbc610ee6fc348370d4dcb09730f", + "pop": "4612ad32d85b8f36e374a49640a2907066a82cca1cbd87b86fade16fb350b919d19b8600d5ba997f0f62184b0ce2c1045cb88dc1a6d57631fbfd143eff7b810a", + "pop_intermediate": { + "message": "4faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b0536c0077971f510f9a59c6e2acb4052996719f24b145afb785886f225d1d995ff36c2470fad041fa046059462d7b4070dc5b9e970fcb676605ac38f618e980b0e0d8231ab4a8036efb232ff44f8244a6040a433d2c476ba32467f62377f7422f778ece630031feb832b9aedae4a13faecad76969de2b60e0ce31c4a23107314a11c", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e43451269118832ad7e874e0e5ca30de18e5cae4b04ee89eddea4938603659f27e6014faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b0536c0077971f510f9a59c6e2acb4052996719f24b145afb785886f225d1d995ff36c2470fad041fa046059462d7b4070dc5b9e970fcb676605ac38f618e980b0e0d8231ab4a8036efb232ff44f8244a6040a433d2c476ba32467f62377f7422f778ece630031feb832b9aedae4a13faecad76969de2b60e0ce31c4a23107314a11c", + "nonce": "297b768d5e602233f2b81bd92ac41d2fc396e19e212df6dea31bc4b096219e0d", + "nonce_commitment": "4612ad32d85b8f36e374a49640a2907066a82cca1cbd87b86fade16fb350b919", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d48374612ad32d85b8f36e374a49640a2907066a82cca1cbd87b86fade16fb350b919c0077971f510f9a59c6e2acb4052996719f24b145afb785886f225d1d995ff364faf7e59f130de01625ffff50fc665888f8af9269959015986fe5bee98b69482c4b6de19fc8939dc388d0426d2d247325ba7856a95076e4f20631894456b0536c0077971f510f9a59c6e2acb4052996719f24b145afb785886f225d1d995ff36c2470fad041fa046059462d7b4070dc5b9e970fcb676605ac38f618e980b0e0d8231ab4a8036efb232ff44f8244a6040a433d2c476ba32467f62377f7422f778ece630031feb832b9aedae4a13faecad76969de2b60e0ce31c4a23107314a11c", + "challenge": "f47bd88b360139e8f8de683534a46796eb5cb0acd76f107206820db1f7a5d906" + }, "encrypted_shares": [ - "e1e04b351409b459e4ed7bde99c5f29b4b1c56571d4fae3b32e9a53316c24db064b847cc7822afcf74bc4cd8b79ba844", - "d24ee149db99610b0c262ccaa40a3f2ce5cfc205238a894e4b2c922bed354e217ee5768d1637b4106c04d744337a8132", - "66b8cfff5105a409057581cbb1237e447b7d1b2d6a5c041111288f001a895d333046a813b6c6fa9e00bd7a34dab0cfeb", - "7b19e0dc3e0ceef3b7c04410726838cd599cdfcc28c7da7f2a3606833a0db3efe7c8893879fa1c9790a5308fafa76549", - "b090df1d7eb5620d3710614291b6f7a4ed31d21d0a9f626e533ec5b5537b934577bce5708e8f827e255e53193cb87cfb" + "ea43f134a51b17b539fbf6925cdb1444548f32163d855e805e619da67321e228610c7080121626232d7b2fcd0a10fc44", + "768ad95f877d5e4eabd4c7eb1348c375ca84124895f9223310c92de0fb74fc1eb178f98708d16b708c8e6b0551d7c3a5", + "c980d27fbe91c082552e0bacbb5faecb23022dbcc007d4cd9675d8bb2303cc67b9dfc9d8b9ec3dfd854cf6189e0abf18", + "0ab3d95a24302886350e2bddd995f4937435bcb930e9b6b115cd6645d4139705103cfb687ddd1943f4a73b38c02c9838", + "3153b988c061a440a06cc38cdac463d11b7002f5ea8f30282f2a19e1075d06c86da108305222bf02caa2adcdedbcb453" ] } ], @@ -251,48 +319,38 @@ } ], "round3": { - "transcript_hash": "c80f280bf75822900ae0db5fa3a5a6802d6d3378f5bd931f1c320d2de2cbac6214e2ed9450c2b4090eca486c369cfd9490d7a184f756dc85fb3cc433f21bb23d", + "transcript_hash": "6aa2ba2ecdde9aee443bd56eff42c04c76a39dd5be5471dae380a585ad7b741eb375b006d50d2263b7e8c8d20ef127128df2f0eb9eddaa21af2c1fff99a01775", "signatures": [ { "signer_id": 1, - "signature": "c61c8bffc8bf6f5e36d0e83ca6323872e399cc86c9fde6f6522a0a0373524f472aa935f7dd75810781fafb4128800aded5c8212474233866cf8cc7bf82da960c" + "signature": "e4d30027c06be84e6b61343c1a87d2eef6b56bde46b2c5b50ec450c5505c1c4efd182b34bf6c2751c72fbdee00d9856ccac003c99cd13b9729f930f8254c1f0b" }, { "signer_id": 2, - "signature": "1cb463d85a3e01bb3de03dba657c6af16c04f1d205aff7aa15c0f47cbbcd367cc3bf7c1edff1d1ceb84d758f9f9dac7711d1ffab268da4bfcd18bfa2ce117d05" + "signature": "4a1de1fdd589e92097ce10487d4bf282e10adbb1ef4127c49545333aa6a3092417dfc192003fe5512ee7636c1cd21e3ee622b55451de72714c167205e98f5408" }, { "signer_id": 3, - "signature": "baa1ec558e803de9ba00ef26ed09afbd61b485530b572759083e2e2c8827e736b0999c6dc7b5d6c088cf8ced35cfd53898db46badd67e2338c1d67b7710c2101" + "signature": "7eadb33440132309efcf26481d71432b2478da179d9220433b0daa1c37efed14dba8950fede77b32cb9bf4820f01537f8c6657c26676f39073158a88cf8c010a" }, { "signer_id": 4, - "signature": "bac14c3163a3b78b8258cdd19ead7eaf20909a3ab0a0f938c8a1e0cbeba647483646390bcb1fd370cdbc1c1940ce81f7623328ce1f2ffad33913ea1dac0b190d" + "signature": "aa0930098c4f6b6e9325ddd428c798c77d73bdbd06311e9c3ae8ed8786b8894e41a407181973e3b95c9cdb3187935e7f035238fae60b755988a90aa6b6ab8a0a" }, { "signer_id": 5, - "signature": "200e360c346d98071cab316180badf919b52de10ab16489e020cd62af125613b75b600f14768fef966c805f0be2775417b597ff3286db80ff720f714c69d9601" + "signature": "58dd4ddb8d742cebcbae9e0fb77de9cadef9d00ebd110c84928fc6b85342ea1c47f048f995d8804d8fbca1ac72351f693185de343774e5998366a680cb44b100" } ] }, - "group_public_key": "08ee9bb0fc75a34dabe96f9f808d89234a7456d0563bc0887404fc9c0bb7b406", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "0ed913628c31508c325b4f783940439b9fce37b7a0b33ad2aab97b39209df2db88ecb7747ad9ef7ec5db532d855e0cdb", - "1d0d7eceb2e89ae4dc1ef3c55e0aec326fb458446132210bf8918fcaa9424df2ac061b0ba9bd899274a3492f8c9a318b", - "f9e0b1c8671f687930e8424d3f2746213ff4454f5a0116446356e1cd79a0b91dd28dc3267fe4eefceb2552254bdfe416", - "f1d8ed0070ea02e165bd49e503442797c95061bfec5d1e9e53c027417c7396b30cbdfb5355fec1759a92fe5046780c5d", - "e1e04b351409b459e4ed7bde99c5f29b4b1c56571d4fae3b32e9a53316c24db064b847cc7822afcf74bc4cd8b79ba844" - ], - "recovered_secret_share": "653535bf967662ac857d654764a1b9550abe0809f415b378ab7ada025b4c2802", - "recovered_verification_share": "be53f58edb38e3ad67964229124f804350ef7b1665a1b2dd6a20eb2b04829160" - } + "group_public_key": "08ee9bb0fc75a34dabe96f9f808d89234a7456d0563bc0887404fc9c0bb7b406" }, { "n": 14, "t": 7, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "context": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af", + "extension": "", "config": { "static_secret_keys": [ "730091092abcd19d49aa1c3277dd36ff2d8bb4e6b91963e467dc9b5429e48401", @@ -340,22 +398,30 @@ "58eacf3cd81bbc0613df86cef1cc0050856801cd5bed4ba30b06a7f41e44c36a", "b04544100db8060422c562d1d04ed13277aa9e90ad6ff426e7cde28692d5a41c" ], - "pop": "80b1ab87efef720311daf39dab626c63a0e644c3b635a6422d2c225a7ec385494fce6a2db7757780973679f4c4e30bb23fd3f55d12cceb5ce54c4104d172150e", + "pop": "d4ed1fa41def07b72b9cdb5420c5a2dc388b0e1b2555b52939f13bb0b672ad688b7d91da155294cdcc6f0fa89c46ad34f90257e2a0fdd432533c016374a31507", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af74297551a5fdb2d51f81864d0f1cfd69972e66d473817f081a8b686603ae834ed4b5a70c83720b4f7e59e9a67a4c23a09044029bd6e56f79c2cd845cf7ae712d50dbf8a45feca35a6b59d8fe518e59c71c3e788159722c7fd667befa19eea06440caccd9c094cb76e513b6d3efeb7e5fdcc020c765f0e5b53bc60890a74a752d7cc0f1fdef74d51dde122d2a2833b7e4f2c0e6e7ed37e841fd33cdb9cbfbbb2e58eacf3cd81bbc0613df86cef1cc0050856801cd5bed4ba30b06a7f41e44c36ab04544100db8060422c562d1d04ed13277aa9e90ad6ff426e7cde28692d5a41cfe9ceee36f73db675e10c709beb2395e7bc33535d18bde02cefedb72acf6ed43", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e43452c3648b826d143592e4f22e6b35e2d2b923c5de9db19c0d27ad58351ecddb30c357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af74297551a5fdb2d51f81864d0f1cfd69972e66d473817f081a8b686603ae834ed4b5a70c83720b4f7e59e9a67a4c23a09044029bd6e56f79c2cd845cf7ae712d50dbf8a45feca35a6b59d8fe518e59c71c3e788159722c7fd667befa19eea06440caccd9c094cb76e513b6d3efeb7e5fdcc020c765f0e5b53bc60890a74a752d7cc0f1fdef74d51dde122d2a2833b7e4f2c0e6e7ed37e841fd33cdb9cbfbbb2e58eacf3cd81bbc0613df86cef1cc0050856801cd5bed4ba30b06a7f41e44c36ab04544100db8060422c562d1d04ed13277aa9e90ad6ff426e7cde28692d5a41cfe9ceee36f73db675e10c709beb2395e7bc33535d18bde02cefedb72acf6ed43", + "nonce": "f6240f5067e0b074694d32481ace10a766032f958cd98c604c623c44ef31f10e", + "nonce_commitment": "d4ed1fa41def07b72b9cdb5420c5a2dc388b0e1b2555b52939f13bb0b672ad68", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837d4ed1fa41def07b72b9cdb5420c5a2dc388b0e1b2555b52939f13bb0b672ad6874297551a5fdb2d51f81864d0f1cfd69972e66d473817f081a8b686603ae834e357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af74297551a5fdb2d51f81864d0f1cfd69972e66d473817f081a8b686603ae834ed4b5a70c83720b4f7e59e9a67a4c23a09044029bd6e56f79c2cd845cf7ae712d50dbf8a45feca35a6b59d8fe518e59c71c3e788159722c7fd667befa19eea06440caccd9c094cb76e513b6d3efeb7e5fdcc020c765f0e5b53bc60890a74a752d7cc0f1fdef74d51dde122d2a2833b7e4f2c0e6e7ed37e841fd33cdb9cbfbbb2e58eacf3cd81bbc0613df86cef1cc0050856801cd5bed4ba30b06a7f41e44c36ab04544100db8060422c562d1d04ed13277aa9e90ad6ff426e7cde28692d5a41cfe9ceee36f73db675e10c709beb2395e7bc33535d18bde02cefedb72acf6ed43", + "challenge": "996a2371bc6ed20f4c08bef8629c411b88e3207294c67090f55b78aeac8b2001" + }, "encrypted_shares": [ - "ddc8eb535927d58c34042562531a2054c57719eac93a2989223b3fe8eb19e53b4b4d02facef7d07e46f3dbdee9c07c89", - "66cdda32ef3b0a4580b8cade83ff05b7b2d35bb19c41f14506aa7500f49c4c331913e72524271b4fab745d6c4fd0169d", - "fe4a6dd7ebbaa12b4317f03e64e778b108a5b141d702779086de0efb88107f24912cc6ec2f7498629a0765d2024420b0", - "3ec886938343384039def7f1f4eea9f586ebfb99bb78d5944286d372e25094120ce647ec89b206d93029a0284de1f406", - "4aeae2a79e5eec76f23190f8ab27dea54817ab980ada04e535159b09108a1bcc8eaf30e04fb5d446d9554fcd7a477954", - "636069d89870fc53acf8a4248a87db29076d298bcf6c94f02cf60ec157dc97cb60a696a48ecc676adae48a36e148934f", - "3f36fa68cb47c81e251d712043846e1fce105bdc8c64b071460c3be830f31126fa35bed2b6e8cac714d480ea068667cd", - "8f8030a72156a0bd4f8c315d021ded4efd6c38dc2295ccdc4a9f19c1ed647c8c3da8d8047c5311b05be558ec0b04c9c7", - "1e05394351a3e73770bc9c84b6d91e05b4c5beb01bb3186813f3685f7bd4509ea9a5206f4487b404728a6508ad74282b", - "ffbdb39bb3d91c15d412c3b9f23f3fb73252f1e16e504980c126cd1ac04ce2b9e4b37ef61cb17879532fded614033ca6", - "bd3d80ed51a4be2e901cd59eaa0b8a91f58172e5f537f2675ff6fb9464e976434ad7b950000f28d90318568183ae1ac0", - "84894c5b53a7ee4d320e3970569ef2636e9dcaf37323e2f84359c205a8971d2fc1b32a079eba4dafb8abaa8a3c2f77da", - "25e98dc12bbeff5a2881bb718a6f3321dbcf12b2752bf1224104d7e6baa4bb3b3b48463b2f50f0ef6ed42c823b8176fd", - "988184fbe592eec6f22f58796f508e15fd454ee438bd4ae412856f4a284adacbae3cfab2611d916eca0b6a72cd11418a" + "7a4b684ff82bf6cfe2f305741f0749efef48f775e1b1c1c71c4a7577c08dc936c9de083c2e1709fe9d233e382c17200f", + "f0fc8f0aeafc3f123fdce625767d64d6002a200177d72552a9a997ea50f38acbab36713d0335a7ce473b77f5f510affa", + "5357c66103b63ca702e42001cba9062243faef3d2071a5322f4e2d2abfc50bd4848f3c199ebed46ab8ab8c0c059b771d", + "6449d0e6c2e95fe9fe6735e49b8621138e37f35cddf98b98eca8f5b9a225175e86e4bb6683c07d7b39140912558698fd", + "6d46bbee52d567839a2e13873593349377858994b079053d6259b8934c905c1ff5aad3218073afb757c55d64162aa610", + "f25de4fa5d29d9b4afc91e836c32f23957224a9b20b02a29591e5f696f8e4fa189cd74ffd45092bb135445d8b6b8da2a", + "7e9be8c2062881a3d81d4af053af20f9b45b196cb4a89784e849519d6e32c53ac9e72cf0086ed728034f51eca5e8f40b", + "2f8e4874d2f9917e310aae67848b60ae4e6321aa232e1d52d534d299e4c742047602e65ffd4970f59427cf330159ca21", + "ae512fb7029205d2ae7d626a04d6a3091da99f10a30acabe5f81efd9c84b23ca0d13a0022d25333679a75cd24d48a727", + "5e9c71791c47e71708630ffc8924e88dbba9b295b92ec4a4c1d7d1a250c297820c47d43d048a33d8bec45cd857fac8ca", + "8b31bc664acb19025c92286b1e5f681635b2b05553afaed7332f617fb4e8c52260706529946c42b2887d2fbca997b5ca", + "a8c8c236c41ec90ce226c5adc60adfc49cabdbd5672cdb81799323366acd5071dec67273667483ef6e5ad7d616489008", + "6dd5e7bd633137539a1e81df399788706b145807b91a1aae9e3b2bb2e16a2912ab6ff5c33ecb2cd82e8dcff19fb73c37", + "a6585f06206f5d018aa812c3a55dabd5805eaddbbc4a9fedf4e2a753b5f1ecbffce5d0ec09f15c375eec325d73cec903" ] }, { @@ -370,22 +436,30 @@ "c452fd06059de5f6be0e8a44edd30e78b1fa5e16fa3c4912146c1da2b753ac5d", "ec8db27dade68f8def4991b106bed8311f8f1f054eddb511a19afd50d5f64d63" ], - "pop": "601b0c75d11d05e05096ee161aa72afe3830f4e7713fd8d88943a6f225642507885e2ede8e2be379526593cd05873524eb2a8ac14d4874894c1b2dd1e4680c04", + "pop": "927c6981046310f76ed4fc3ec84e3b38accb628c1f97b53e17a26d9b6a1f4267ccb2c0bf77e21f3c36f9f82708b014b0257f290aef170d87ce19add68c49850c", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af323f39439fd84a7a31e3cdd2bbec87cbf1cd20af5429d7ac8c838c05b0dd1e64527bdae81f912bf07d0c587c33d950a788e1335f8118f218f3e571f36f34927e5a33f8cdb8d3cb8d250d270ff04db6d502c5fdebcdb2cd2508cc01135e1225325adb693f8517b1c6d9f0eee956dc46be89515a142163c5563d2695ac25c79a55ce230c84450ad82f178c7ab5b4cd3a03616b85134c26a4cd6ede4264a4b04b20c452fd06059de5f6be0e8a44edd30e78b1fa5e16fa3c4912146c1da2b753ac5dec8db27dade68f8def4991b106bed8311f8f1f054eddb511a19afd50d5f64d63248ab534490f877d3f876e08918b1591357ab8efbb40aa9cf38542c585fd9f52", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345ef9ba7a903e66bb9ca5702f25f57e8bc9c73c568b37170f92d6230fe356ed203357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af323f39439fd84a7a31e3cdd2bbec87cbf1cd20af5429d7ac8c838c05b0dd1e64527bdae81f912bf07d0c587c33d950a788e1335f8118f218f3e571f36f34927e5a33f8cdb8d3cb8d250d270ff04db6d502c5fdebcdb2cd2508cc01135e1225325adb693f8517b1c6d9f0eee956dc46be89515a142163c5563d2695ac25c79a55ce230c84450ad82f178c7ab5b4cd3a03616b85134c26a4cd6ede4264a4b04b20c452fd06059de5f6be0e8a44edd30e78b1fa5e16fa3c4912146c1da2b753ac5dec8db27dade68f8def4991b106bed8311f8f1f054eddb511a19afd50d5f64d63248ab534490f877d3f876e08918b1591357ab8efbb40aa9cf38542c585fd9f52", + "nonce": "d7f1d24abc651630abcc87a4ab02e79aa1f86800ea4095e5549d6eefdf4d9f07", + "nonce_commitment": "927c6981046310f76ed4fc3ec84e3b38accb628c1f97b53e17a26d9b6a1f4267", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837927c6981046310f76ed4fc3ec84e3b38accb628c1f97b53e17a26d9b6a1f4267323f39439fd84a7a31e3cdd2bbec87cbf1cd20af5429d7ac8c838c05b0dd1e64357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af323f39439fd84a7a31e3cdd2bbec87cbf1cd20af5429d7ac8c838c05b0dd1e64527bdae81f912bf07d0c587c33d950a788e1335f8118f218f3e571f36f34927e5a33f8cdb8d3cb8d250d270ff04db6d502c5fdebcdb2cd2508cc01135e1225325adb693f8517b1c6d9f0eee956dc46be89515a142163c5563d2695ac25c79a55ce230c84450ad82f178c7ab5b4cd3a03616b85134c26a4cd6ede4264a4b04b20c452fd06059de5f6be0e8a44edd30e78b1fa5e16fa3c4912146c1da2b753ac5dec8db27dade68f8def4991b106bed8311f8f1f054eddb511a19afd50d5f64d63248ab534490f877d3f876e08918b1591357ab8efbb40aa9cf38542c585fd9f52", + "challenge": "637e09560ed512e2f908c3b7b4e2fe78d6616eb483d35ec3d7559aa4934b6f03" + }, "encrypted_shares": [ - "f704d9599a28a9722120fe0ca6d1fb1c6edb109cbdcbaf0aa6f810b7a5d9faa5a71ca23e0010cdedcdade61b1809b41d", - "c28ae90752fd36d689b223f36bc591b65c9be3a82cb97386ad1a7594e8cc353d68d6ef61ad14e98ebaf992ab68b7300d", - "36c5838539b4d32c5acfbce3fd010b1fa910b8594ca78dcad5ff494a02787dcf8cbe135a6b040a739588a81c06651867", - "8d712f5dd23a9868436e4a10f7ca07b77f178c0e16ed0a0b590d4fcd6f35820609a9a63c6eb46b5397a52dd13e827792", - "b12848c132313b2317479e85dc388dfc23b61ca53205f98e01487a6284496fcb47968f3f0487bd0960ecf111e8394180", - "7eac6df6b52356b3aaf2605afb286e95bdd217a1f27d5211250230aef961caa7adb51e8ba9d32b0344af08c84fdc0b68", - "d57f45df1cd21fac6619ddde48d07c363ca5b6f5d9f92d159ed44574314b9ff80526f6c5aa9397189b9cb0bf03e6809e", - "10bce2baab315bc72b54d35c5ef9167777d36b298b4317fe1e25e688313565f7f91f28233ebd711a1f97de2e504ff2a1", - "f37dee940c48ed6c462794bfda8969b96e368519aad76c92dd866cf7096fdf03ceef9563033815b3ae91c85f2d910dda", - "85a56fb86c99bd7246706885f4179ef928e8afbe98305a25943fed8c7bc74530e43818ff91ce1184f3132e631e2f0b86", - "62ac6df21ec114896a5d654950760d2ea03b452f610833ced760f18b797d9a04c4be6a4ab504e06b1528b17a98f29eec", - "78e90a2bd0b6fd2719ee7bbf47352314b3bd967d3ccdbcd40daee5a04ed4e1539d53b9c5db8d8ea21a3b28b084d737a2", - "b8307f638e979a92128f47156f0d143d6bcb3482fc52f8c23f978a2e09b5831ad0985452c4954303c00a5e029669f8e8", - "82f296df08621b8fb7ff7419ac807ae6393f70b1eb9260862605c198b6554db055a5ed51755046dd7f02cde8cbf9da59" + "3b0066be3f7048c604b9241ebf28ffe85b95bd4778d2de90e3a17367b8252c42f2bb7b359efd9db1474f09fe10f1b83a", + "eb4238e183890d9be885cf5b6877a6970288552bbef6e99569c40c3450499d816a44a4408f29ecdf581b79b3a6384601", + "b8dfca05d850887522d49a5fbee4afedcd323d42f437f392374406c8239e6920cffcb6fc5e547de94408f400d3cbb103", + "00f3cbbb3811bb83ef81071c1e63706ef3e71860b57d730e6c856472b27b7dd09e4967819a0b4452b8c1c1080867d20a", + "7cc3dbb8cc98042d8811e69ce5453fd1ba2d2ebc939b590c88e0ccdd61a7dc07b8d8b4d28e1fc4e03fcb7ac253062653", + "876bfb62d1b564619f1ec3e7d8daa77d367220a58cc81509f9e1a27fd54ec18dd629220fc47d37e8aa8c417884e280da", + "14733e030fee0f6a7a52f3e499c1664bac4e337f54697e28f0d38b74886ee2da1a4585f24236332153adb0777f9daf77", + "6334440386b39a37afbfe41ddbc608d98a22be7abfb3e243588e6fed37ce4ff8fb6dc2f3b16956b3cede63a60cfda887", + "8f1e73252e9fc2a087d3f860a17e2e66f3bb50add457c7f9d75a66d727bbd391befcbda1c12c13c30a358eee475ddaaf", + "50236c7722a4c7f13ed09c6fb4cde53b009f6425cc489f00527c3a229d862cd5eea4ad9c3c4eff3cc523bb9ed1f150be", + "a402fd266bccd4d472626becb77ab07edffa84658406e38f3d1e62b9a40109d1d4764afe64b1bba7aef17746e31fe549", + "8a8b023def22ecd509735deb2a301793b4500d5e438a203cd56044549b4e580a66cf1d02981eab3eefe21a25ba8a129c", + "a81dd013f127bafadd52d04e6bd7f61d59b31d74442e01eb97a0949945aee1f01640f4dc99de3bf27ca8b3834a59ad0b", + "860efa0e9601347ee5d3cc9e725a552ded641faef4f7eb5a066ecd13e88bcb81b9f31dd052e2d0ab437ea8423782ac19" ] }, { @@ -400,22 +474,30 @@ "44f810e47f763476b9f935c06feaaeca315002f2694e565d0834addf0119d018", "be25cd603f657f13d71f523c7916e0cea1436497f8cbf4e519e5b8e06fef2818" ], - "pop": "72d38d4db8900d523ba204137df6756dae5b6670cc0e1d8d636520b640a451438bcbd997547cad8a6df4244cb7c6609437acf7306f350c7a1fabebdb82bb600c", + "pop": "b2b793d46feb41bbe723e0f37e34fbd3450ad45c2c172d0513e4bb11afa7956e16f2bc56c8f786ec1ee205eef3c133fdb81c9911543ac192c006eb4c0613120e", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af6a7b6a56b1929addf363dc04096e909db0fb8a58f99eafbffd234d1d1ec9480450e812a17c7febc998e7f43ddb7f38371fd546bae6a596175a1532899404c92314a92e14c713f71461bc9bd30714e34817c37cd8c8bcd7a0286e0746dfadb0707093184d8531909a0290b0d26daa17889ce0945115397785379065284c99cc60a6041b9544a402d4b59947047fc52d069980a652437d3cc7d934a75bd1e8a73244f810e47f763476b9f935c06feaaeca315002f2694e565d0834addf0119d018be25cd603f657f13d71f523c7916e0cea1436497f8cbf4e519e5b8e06fef281858b307a269328546b4d340b6ece3a750d3e276ef9e53832eae659e5b6543b859", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345ce11ca45fee12cd33cee3d4ddcf7f8b6b5eedd1640158cdb3b8dc13a5804ff00357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af6a7b6a56b1929addf363dc04096e909db0fb8a58f99eafbffd234d1d1ec9480450e812a17c7febc998e7f43ddb7f38371fd546bae6a596175a1532899404c92314a92e14c713f71461bc9bd30714e34817c37cd8c8bcd7a0286e0746dfadb0707093184d8531909a0290b0d26daa17889ce0945115397785379065284c99cc60a6041b9544a402d4b59947047fc52d069980a652437d3cc7d934a75bd1e8a73244f810e47f763476b9f935c06feaaeca315002f2694e565d0834addf0119d018be25cd603f657f13d71f523c7916e0cea1436497f8cbf4e519e5b8e06fef281858b307a269328546b4d340b6ece3a750d3e276ef9e53832eae659e5b6543b859", + "nonce": "efb41e6448bae3fd9c8cfb471ecd96a3ecdba7c2b46cd9a2de1c3ede5ac11600", + "nonce_commitment": "b2b793d46feb41bbe723e0f37e34fbd3450ad45c2c172d0513e4bb11afa7956e", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837b2b793d46feb41bbe723e0f37e34fbd3450ad45c2c172d0513e4bb11afa7956e6a7b6a56b1929addf363dc04096e909db0fb8a58f99eafbffd234d1d1ec94804357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af6a7b6a56b1929addf363dc04096e909db0fb8a58f99eafbffd234d1d1ec9480450e812a17c7febc998e7f43ddb7f38371fd546bae6a596175a1532899404c92314a92e14c713f71461bc9bd30714e34817c37cd8c8bcd7a0286e0746dfadb0707093184d8531909a0290b0d26daa17889ce0945115397785379065284c99cc60a6041b9544a402d4b59947047fc52d069980a652437d3cc7d934a75bd1e8a73244f810e47f763476b9f935c06feaaeca315002f2694e565d0834addf0119d018be25cd603f657f13d71f523c7916e0cea1436497f8cbf4e519e5b8e06fef281858b307a269328546b4d340b6ece3a750d3e276ef9e53832eae659e5b6543b859", + "challenge": "81b61a3e3061bb4eca2a246b993305b12b451282387c7afb34e2e1b1df330c04" + }, "encrypted_shares": [ - "e24c11877cc963414869c143838245a37705bc347cc6bab8466a4f30abf73bea3f65d7e3bb2d62a3690101b11a2703f4", - "dcd7cf0954e1635373aa5d075db9a2acfee11189122cab0ae4bcf0e856d491b69557395fb6951887c484a975bc364d0b", - "2ec7b66a3ff0d8efeed2ab1ebff1dcba178a54cca7ef7d1b4e4bf4d8023d1f75cc3fc436e7cc8448305b8ad9c5db7a50", - "febf53eda74ba8f37b5c5d42341cabeb9f35070aed9109fa0630a600011557f720bdf3015330f00edeac58db2f731ac5", - "f9045e1e64720e53deb54491d2db7f523b4658e745b83a23a3c4fe6e8b6be85f0de774080634393259fe962b3a8f4764", - "36c1d36c25951b6c50f554aa532cb9a99b8f5995db7881a5d82d67799665488e84bab6c6fb6c8739e3d0f6381c204422", - "a79faf40e000ae45bd16068c28a428d05066a00c1f5d4cc033bec627f58f60c17caef63c20136a2751444747c62f5e57", - "4aaf48e560ce2f86af371ed20ee34f961bcb71782ff1a2eb6c45ce41becb565c901e3143b5a718c5eb395bab61095bbc", - "90ac119715356d656fef84207866dd9fa23d642f1987518568ef566b19e6fbb7f586be31a31d9fcf7626f5c92133bdc5", - "c05b21822e1d6c89bb7d9976504c2eac04b74877dc93e05da7a2a5ad31ecdfe288efea87ddaef2517db1a2f41385d1e1", - "c65b6fb6480cfc750c7c58a99d06ee9856d8f5571cb0cd79bd3faf6e5692963d7ab10ab4d94c329121d1bab5e880218b", - "5da0239210b171030ed0652bb2f517df01cb727665608a83ebb949b1d192bebac57896fa86e8e9f46f441f47c900c203", - "fe16a1b9aa3fa7aa4f5cb1ad96a84bd6dc30f166f85f9560bc5116990a82906878621f5caea036dd5fbcabe9458298df", - "ef7bc1be762120771e1f61b4a7bb3afb184ae6825b1ed38edc5670a7909574b455f8e4846f40cffb0d71e18905d2f25f" + "612537cee0379ae88d3b5beefe25f23d767680355ff725f3d30fc6459a083241446e1b52a424649f1ca33aa79a7b628c", + "92972d16e67b2f4f63ee4f238c1916c15f68a1d0963d3721cbc19747ddef450ce7f56afc1dd83e0c862240af4528f8c6", + "ff4fa28de25b6dbbc9ac7d1ef3c488134a5b4d30810a5bb5f0c3e96a952406cfd7f0a91299e74f67bd46334a886bbf45", + "dfba267248d5317b1cab29a488ebee24c024214ae301105372d00dc17cfc387a0065ea5da4fe4385d1a6ca87da9405f7", + "47d66ee2246d644e0c8dcbcec7f22f5ec62e2cfff411a2127c1df6f28900525441fb6fedc101e4dda1694f1f93b532eb", + "6e119df361a0f00fde759bb698c5e48b747aec06b3dd626e8f1d242d315c1aa2ef0f0415857dd30407e14e96ee3ced85", + "1ce99e9db3d7c954fd06dff1dff8b56f8dbfcffb08b29181000228dc8289e4cf502748ed81182ab6749672e36c42deca", + "3f358728a402a2110f9bcb04713dd5d63aeadfd0d6465d7bae6cd8d50bdb0d3b1d017d26973888e2b206ead5db2356e0", + "7de441213bc35cce394a1361059a0f450f7f4fc6e970df4b8b607a6d9a86f2fe391167a91f89c41b07a9998357120a10", + "e8b9c5926b7f1d121aaf3f54234f92fa411e8f08743e503246e08170a5dde6ea00df8c5eabf48cbd90f058d6c21ef1e1", + "7a2f30b9508010c6605a670a1e7b7b1f14c88ea67980fbb26525b867d88f2a9f7b371d23f5aff035dc69ab21ed8844df", + "33c3295d4753575e2d7c09a46669f3d2301dc50c3fb4b0e7769e18065fe1d26b45171a8cc5cb7babb54b17278cd02f26", + "51eef7151da5ca2e9b3ac242783ee3c28acbe4df9dc707e9e0c759785e9bbea5b926f41c75f83779f0f05c866d17262d", + "384031dff3adb3207732aa4bbb90eb2dbd5147058eeb27dd498ae7271a2be34243d767246fe71722b80c0afd4c9195f5" ] }, { @@ -430,22 +512,30 @@ "608515f2a3a32543e56932449e3b1e1766397f17ae4a18c34000462984486564", "ccd4c63d5d8af45916104784f89a2e815b814b45e904cce816d61531b81be41f" ], - "pop": "505c6ae8ccd57b286a9df1eac713859b98f8a3eceefc5527ca83b6c237c83e3e4c3521f4e349890e44ce27c01098c168141460463e438901182d4fcfcc4eee09", + "pop": "b0d3f72aed38833c092bf003637f226fe3ae4253d5e69808e5e111f796bfe2263095d73eee319fb39bc40f0524fb7e6daa0bc3a57e5fb7d5aa05b1ba29203f00", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af945fae2324d4c5c3109f0ef92b92ef44bc0b0a55fdfec6226997c762025f6b13ce89a76689b72c72b1cd4421986dbed4722cf638517de8705f9a250d1fc0ca01de5db96e8e3cd68d691c72ec3f02240c7e74192a33c9307fa0dab3d028bf727208e2be581f8dc85a0c8abf48cdd56f2d040729ba301c7f5422ebc635779af22f86b05cc745d34d3b51a77bbcc6f2cb9cd6b71dee406d8aebd788d0c36036cd35608515f2a3a32543e56932449e3b1e1766397f17ae4a18c34000462984486564ccd4c63d5d8af45916104784f89a2e815b814b45e904cce816d61531b81be41f06fab84c478b353bc1e64fc55ccbf51a5c92e4422c0409015e055e2d1bf14415", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345edf416dca41befa418e402f9525b23f895241005a5239673fb05d83a755b7a0f357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af945fae2324d4c5c3109f0ef92b92ef44bc0b0a55fdfec6226997c762025f6b13ce89a76689b72c72b1cd4421986dbed4722cf638517de8705f9a250d1fc0ca01de5db96e8e3cd68d691c72ec3f02240c7e74192a33c9307fa0dab3d028bf727208e2be581f8dc85a0c8abf48cdd56f2d040729ba301c7f5422ebc635779af22f86b05cc745d34d3b51a77bbcc6f2cb9cd6b71dee406d8aebd788d0c36036cd35608515f2a3a32543e56932449e3b1e1766397f17ae4a18c34000462984486564ccd4c63d5d8af45916104784f89a2e815b814b45e904cce816d61531b81be41f06fab84c478b353bc1e64fc55ccbf51a5c92e4422c0409015e055e2d1bf14415", + "nonce": "c0bdb9f9a25a872b20f2d353d74d26ca2d7618293b18dc12f435e7a4ee3e640c", + "nonce_commitment": "b0d3f72aed38833c092bf003637f226fe3ae4253d5e69808e5e111f796bfe226", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837b0d3f72aed38833c092bf003637f226fe3ae4253d5e69808e5e111f796bfe226945fae2324d4c5c3109f0ef92b92ef44bc0b0a55fdfec6226997c762025f6b13357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af945fae2324d4c5c3109f0ef92b92ef44bc0b0a55fdfec6226997c762025f6b13ce89a76689b72c72b1cd4421986dbed4722cf638517de8705f9a250d1fc0ca01de5db96e8e3cd68d691c72ec3f02240c7e74192a33c9307fa0dab3d028bf727208e2be581f8dc85a0c8abf48cdd56f2d040729ba301c7f5422ebc635779af22f86b05cc745d34d3b51a77bbcc6f2cb9cd6b71dee406d8aebd788d0c36036cd35608515f2a3a32543e56932449e3b1e1766397f17ae4a18c34000462984486564ccd4c63d5d8af45916104784f89a2e815b814b45e904cce816d61531b81be41f06fab84c478b353bc1e64fc55ccbf51a5c92e4422c0409015e055e2d1bf14415", + "challenge": "349cd7ac8ad3070950ca87aca9791d9ccf3c218339ff6ac852ba81c460b84b0c" + }, "encrypted_shares": [ - "97db00ce802977499fd132aa6ab74c7c853f6fdb6d414b7d53c296a874e3850418393cde8db4c2db2f45456ad0e31726", - "821fc5c634cdd05b37f95b8c0e6b7213c37095d00c29437b325cc985865b952daf64d57e07b2a29c9e514b80449f5d38", - "1d54b02aa77018fc14b7087aa036224f99a1016e0d10c1ac0514464dc2591ae2db50f0de026ed578a917507af0a4c473", - "62d7c1316e0fe0340f96c1b1f68fcb283e97447afa85cd272f5b6d161bce21fe94bcfdcb59031076104b32076ade3d70", - "6e05ed9371afd76ded4686d73fff10627bd7826d4af3d611289b0c7f5b1ec30e0b1f3b6002e14cec023eef38c04ef0e4", - "9cc3ed81746257f04c51a239f69ceaa1f0531a50b125028657582510f2e233a4cb9d8260110b7349603a60eb6ba3089c", - "b186e87bbf1a2f91925146c3fa6909d368488ef8e44c23c245194b64730f5db2682f2a6b75dc6352895bb5b3243cd27e", - "1be1599bac2c8bb43b1b9f8eb34fc4f42ffd962286b10764c9e8bf45bec71f0e0ccd51b22affe87cc13c54fe683fe8ad", - "3fef97b187f21c38081295ee8934b38ea1a4f56216a4c98268d1acb7dd537f3aec65f2a22daee19fbaf780074e9cf92b", - "bff25125840cc66c8b95854f88221bf9533e9c0aabab902d6dc5e18632e254649fee3a7b77a1b6a354547740e259315f", - "03933be15c0be73f4a5d0ea4026e008dea8bb29281e8d49b423aa51df8356564c87eb3e6e96e4fd87236ff7b9ba03600", - "ee7485aaa266ffd3b69498859b978614d6a6bef493d684e37e86be9482a9c6f30545b2ed8dc852f3c3d8a7fd5a6853fe", - "6e3850b10eb770d468a0f919697390e24b37d58aa8bb49ee9cd345ce4c22388177274d3b7683bd4cabd3e11cf50df72e", - "f5fd1a568086c1124180e05db6bf7ca24b3232714418a22fa46ad018e83d689d0bba3e7778a00d37227bd9d62c427411" + "7428ef24406a90da6ff38cbd208acb5e32532b01de2d23b512abe0c8528051318b29aeb04a8c8db27e55ea4a84440d7f", + "6e8502f1f13b98117eccacf69dc75f1d172a2c564dde3f193fc6cc9490201736f2dbe73a838fbd85b488ceff8d0a6e42", + "3e17a20f79842bfadec950844d74315a22fb0cb3d205a17fd85b532d955b315a580944cdde4ed961e61f67664288bb46", + "92d922d973d5efadba054d66713fb954f757a42ad7b1df4c412e607f09939def2e9eeec7665baed5a59e0ad20ad22d84", + "91a342a7d59e45cb9dfb156701e8256d93f77552b19aa1988418b2119f24f967fa6195c40b24d5d21cd2a4a3b3c77865", + "699686c671eed34ee840a23e87b328343f22c5fb3f90cded7fe1dce1fc33579efe81c185d9af3177ebdee5b726d4d2d0", + "b810d3014b4e274127689eb23ebadc289176aa66b958eeff217f1d0dc2d39e0b53c8bef0c8929ad293b5610e390c845e", + "68d2892dce1c48a72689860925466fbfff5c3cd52bcb62bcbbeaa8d5dce3a00d87878e499b0e17f2054a0ddca1ae201a", + "29323f08c569f00755535efc4df5228b6641071c407967d22587c0aad3105cefe7851b4dfe557081282e7094ffc61f26", + "4924678f1d34c53388c8d9079fb9113e4c0f52c3c5dce3cc271cf478e4c111a5d7e6ed546ebac8547c22ca8d29f96c28", + "bdd91884eb758b62472b4218fb3f0b0624743766b45f4f93061236482f27008004d956373dea9957ca99873c80098136", + "079afd111d789cb3c86a90c69b34b3bc8140c3000a894248e31a981ea1dbdcd6561f89a8b143529191cd97edf4e8d84c", + "8d90f81cb49a6ee45c9d0c36cfbf45ea49080a30a1f639d50ace3be20aef2fc6db14f3619c8b8552fbc21fc48a55c0e6", + "4cd4b81a1300ad62ef702848bf0664f9fd3c98ec478744fae2f0f98d0e10f2235f226a32fa2f549a05ee196229d50328" ] }, { @@ -460,22 +550,30 @@ "18d1faba366ab67eb50d273f2ac36da34e5cb0366bd78f9ae98b340c86b4073f", "26b631d6640f6975b7a749d318f9a6d27b6d7f15466f3c08b96264e0f87f6556" ], - "pop": "804ddd17f37e6a6119cd583f2d8dc901bbf7d9cff73df96d454e8fa7dcb2761f0515465f022a6727f3cb38d9fed50bb5c15a90fe387de7cc8f1d0e7cd9c02d08", + "pop": "7c1189bf632f0284c0a7a14fd4e275c220471aa4a4976a45136090c47cbd3a6c512cb66086232032267dbc0591749cc6aeb25b961037d39deb45af9495bd1d0c", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af0ecdef078af2d19769069c320a1e78de50bef25d500e06a4cfa45e6dec30f230f65c25d9ebda72152889a84b01380f0a3c7f6c17275bfd3e408244ebdca6cf448c1b440bd89190bd5fc81c3a2a45ef5475763dc4c344f21405d4a9cec6dbd8008a5b5643bd9ce53d00504bf7b4b4746cc8e4c7b192a6abf356626babe52db54cb63463adacecb6814d6202f20d4c0ecd8bb9cc83694a212085dab2b06ab10f0c18d1faba366ab67eb50d273f2ac36da34e5cb0366bd78f9ae98b340c86b4073f26b631d6640f6975b7a749d318f9a6d27b6d7f15466f3c08b96264e0f87f655682fe58ff61eb3c304b4f9e5cc1c1a9a898a386f7be47df7ba08c854029a97939", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345b92868b6267c21a6b63853a4b3b11cece0ed1ddf0692046cbcf3247b4df37908357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af0ecdef078af2d19769069c320a1e78de50bef25d500e06a4cfa45e6dec30f230f65c25d9ebda72152889a84b01380f0a3c7f6c17275bfd3e408244ebdca6cf448c1b440bd89190bd5fc81c3a2a45ef5475763dc4c344f21405d4a9cec6dbd8008a5b5643bd9ce53d00504bf7b4b4746cc8e4c7b192a6abf356626babe52db54cb63463adacecb6814d6202f20d4c0ecd8bb9cc83694a212085dab2b06ab10f0c18d1faba366ab67eb50d273f2ac36da34e5cb0366bd78f9ae98b340c86b4073f26b631d6640f6975b7a749d318f9a6d27b6d7f15466f3c08b96264e0f87f655682fe58ff61eb3c304b4f9e5cc1c1a9a898a386f7be47df7ba08c854029a97939", + "nonce": "e0a3f62d13d2924c8de16e0fa96eceb4354d76d8370a76a8667d450a0b871e04", + "nonce_commitment": "7c1189bf632f0284c0a7a14fd4e275c220471aa4a4976a45136090c47cbd3a6c", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d48377c1189bf632f0284c0a7a14fd4e275c220471aa4a4976a45136090c47cbd3a6c0ecdef078af2d19769069c320a1e78de50bef25d500e06a4cfa45e6dec30f230357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af0ecdef078af2d19769069c320a1e78de50bef25d500e06a4cfa45e6dec30f230f65c25d9ebda72152889a84b01380f0a3c7f6c17275bfd3e408244ebdca6cf448c1b440bd89190bd5fc81c3a2a45ef5475763dc4c344f21405d4a9cec6dbd8008a5b5643bd9ce53d00504bf7b4b4746cc8e4c7b192a6abf356626babe52db54cb63463adacecb6814d6202f20d4c0ecd8bb9cc83694a212085dab2b06ab10f0c18d1faba366ab67eb50d273f2ac36da34e5cb0366bd78f9ae98b340c86b4073f26b631d6640f6975b7a749d318f9a6d27b6d7f15466f3c08b96264e0f87f655682fe58ff61eb3c304b4f9e5cc1c1a9a898a386f7be47df7ba08c854029a97939", + "challenge": "5da6e381210ec5922619b8bb93ec6c8bc213ec9f70d0a619bc3ba9a07880a600" + }, "encrypted_shares": [ - "11d6a1354f7fecdbb14d3cdacadcd33d42d26bc7511d7b0116c546300f2eef33f91b4db951ce74cbc8d420c775bc043c", - "476c4aa818a06cdd0187ae5665b19bbb7b719d668aec0a481a28cb4916543884f85e21f6e52df8bd68daefb9e0d88802", - "62213dc6cd5127e4080ff5ae165057f58cd629809b490906539821a57f3599c402a39b08bb605e9b67c476b59715b83d", - "05a24ac494b05e05b672708f1782b4c7abc4e4a70903e4b320356917c96a7198e6cfbee2610601847d009149b3eef366", - "33f08a7b2bd84a97786aa2e1ac09519701ba49f64b0d765ecd993ad9aba4b5bb8ab28dae32eecffa38d71c41ac1fdaa4", - "1aa44dbf377fc8317ce6354fcd28d1be3f4787f808418acc8da2e46d769774ac2fdad91de0aa08fddc47dada35decbfd", - "9fe04f62162ae98afad27524070eb11e5bf873bfb031e2c5991fb08501e4f207c57562282c6ecec2ab440998cc58156f", - "0ffc4e9764567919901a56e40e9782c8f649db6bdcdf76e96adcb133f9c8d9b2b27ad98b1335cc1935dd955fb793fce4", - "6f74153e497d47079ef381dc6ce2fed56667f49b3603b7befd9823a87c0a77e1845705352526bf9cb6cfe98c15579bfb", - "1f35b00c5233008c1e4bc5ecbb33b764794b6cad184af8da80796fc00c108e0c6b8a3a08b067d35aa3d67db521d004f2", - "fb54a178271aafb3cf5e3d6526c2647e20cc19340e15984d7d89443828883fb2f968e5a3d00c95309cfb0f3c11757b20", - "e5bbbcd698eab636e71d737fdb60e2c624bf605c33bf3b3f72bde75ac33b62201fd12bc50affebcd6cc39f6b6e993b33", - "d985f66257d308e529e644e8af13135d713c3f3244c81c3654fc379eab4c0d12434807c8ae67e9f317680ce02480423d", - "a94031e9464dd507135335aa6963fc9a612dc7628b7e5894ab3aa53af0face89dc813a95d2a83c955352554d053daecd" + "2d905d21fb87e4ce019d3460675616de89e5d14626b5c5342401fe847ed5f518843ca3f943fbe5ceb985fcac69677ea3", + "870c3b1e4f2722efd7ed971f1873b4fe8c6a4e11d8f94352558856a5f96d117fbe0a53c91631958ca4392c2f7065dda5", + "6762c3a94b42886b0e9fbbe91920baf7596e176d8149126188b134d4397b0b7fd8677e771b1ebdd8186d31b5db7c7a6e", + "631a122a73a5b7d7b6f40ea26944cfe1d29af8b05bb8d0e6c0ac86ac9f0c203c6890ac732440895395b8b9ca7440760a", + "7f8285ca5dde790ce98949d63ec3c20048b9f8e77c517bab237289bb0c491aba827e1463ef6ebc559c8546eef1c28833", + "fdbf57eae6b1fffc1d9a886deb7d01de0c618ddca41e7af71c71de74b2242c5894a0d111f58bfc7e7c7678212d6e167e", + "39684602ad24a898801e7bffb71706a191f8a2f9630e67827dced3c2bf3e1643e2a329f197a31f82833391ce1647584d", + "fb2660df1e3650dc582e724cbdd2fc604c72073d2a3d18c13c4caa679bdfc370d9b3222a6af7ccf3b452788c60833b0b", + "772364b29dda2d0cfc7899873d57987f36e7cb78925843240dd307fbd030b73027395c248f4bea258d610d729c9c8982", + "1f9cb3635f366219f2676c88a32ad0d40f49bb97e612ad433674b8309f5475bf4b00dd6e2f891d55d10b59d81657ce30", + "230bdc76c3ad941197aba0f6152198e7d03af378f394c2a52f2ad99330c146808baf381397ffc45aebcefa087b7035a4", + "732085bfeb54db2dcfca5b4e96419a84139adb173af1dde55284e6cca50fd6ec24c10c21d94c2357343f48952e1bcbeb", + "571a190bc2179f1db4966724826fa792a01d8a52a2281b658eb9118ae6660b2894e2b2ba16c8bc495a5883f51413a7bc", + "0e272ed5e36d0501a7da6feb7b257090c93f5ba0e451eccb9766c65421f4a47a74630f7c5e05a65ae92ecb2bb455ab32" ] }, { @@ -490,22 +588,30 @@ "20530c06139fb016622ff5d25bfcc07ffc44e185db16354f265591bfc8aa3167", "e64987cc98aad8802526307b87d6aefdf5e5ed61189aba341059de379d72310f" ], - "pop": "3c11ab56f737a3444f155207b13396940f4512830dabde7bbf7373808eceb23504fd4b2e422fb7cac83fd13b388c7450d7026f66e0f7ca8afe1cdaa55d06840c", + "pop": "ec2a750fce4a337d7cc5af4eeb959161d686db246b88dc9afd55ea857cd8cf40c4498791c319744ea4f3934aaf30a8c5b4443e7bb824e134d95eae7dee615405", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af62a4edb2031d9324daceadead796a84c83a03fbe06d020f6c22ff98271e0e56e46806cd5bf86e56bf7d8617649853476d2e363beed3793d3e51001b1c1238f1e0042831ca6ff26df865b713392470924c6a112ad9659fce6a26428d6e50ce86762e50c60c1feed8a43b8e787f8e498bb70e77d5d64958debfe7aa8a339a5a50178827aa50109112071940a3e90ad7ec1591179fd297afa79c6a596c0c2f97d2e20530c06139fb016622ff5d25bfcc07ffc44e185db16354f265591bfc8aa3167e64987cc98aad8802526307b87d6aefdf5e5ed61189aba341059de379d72310f8c0e4242a426870d07006752043d45c30d5bbcd1ab5b57a8537a536c1f8c5415", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345a87a43cbe4702b6aa8489e672f382c6526a98ef78d336eec368def794ac05a00357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af62a4edb2031d9324daceadead796a84c83a03fbe06d020f6c22ff98271e0e56e46806cd5bf86e56bf7d8617649853476d2e363beed3793d3e51001b1c1238f1e0042831ca6ff26df865b713392470924c6a112ad9659fce6a26428d6e50ce86762e50c60c1feed8a43b8e787f8e498bb70e77d5d64958debfe7aa8a339a5a50178827aa50109112071940a3e90ad7ec1591179fd297afa79c6a596c0c2f97d2e20530c06139fb016622ff5d25bfcc07ffc44e185db16354f265591bfc8aa3167e64987cc98aad8802526307b87d6aefdf5e5ed61189aba341059de379d72310f8c0e4242a426870d07006752043d45c30d5bbcd1ab5b57a8537a536c1f8c5415", + "nonce": "7c9d7da2996dd10e957ddb043c9dce7ed91e1cfacb02e287ed2c7d2752ce240c", + "nonce_commitment": "ec2a750fce4a337d7cc5af4eeb959161d686db246b88dc9afd55ea857cd8cf40", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837ec2a750fce4a337d7cc5af4eeb959161d686db246b88dc9afd55ea857cd8cf4062a4edb2031d9324daceadead796a84c83a03fbe06d020f6c22ff98271e0e56e357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af62a4edb2031d9324daceadead796a84c83a03fbe06d020f6c22ff98271e0e56e46806cd5bf86e56bf7d8617649853476d2e363beed3793d3e51001b1c1238f1e0042831ca6ff26df865b713392470924c6a112ad9659fce6a26428d6e50ce86762e50c60c1feed8a43b8e787f8e498bb70e77d5d64958debfe7aa8a339a5a50178827aa50109112071940a3e90ad7ec1591179fd297afa79c6a596c0c2f97d2e20530c06139fb016622ff5d25bfcc07ffc44e185db16354f265591bfc8aa3167e64987cc98aad8802526307b87d6aefdf5e5ed61189aba341059de379d72310f8c0e4242a426870d07006752043d45c30d5bbcd1ab5b57a8537a536c1f8c5415", + "challenge": "4571abebe3c54848be15b0f0613092c12c0534c0f7a3f95c121391d166b72b0c" + }, "encrypted_shares": [ - "ee14560b391bb002dc8d97b30b33dc5d2d9526c38de0cb8abdfb09a8fdced4861009a6d83c6ee5e6822d036376d44d5c", - "c1d7f8492d786275e7b6cd3210cbae01805f02d86a2177b2e4ed6dad73ab982a4856655d217a5e8b94495ddac8470d95", - "dea77d11ea4b4ada913f0d63368b4867b1996a4f9df2f1d15a80fc04d95877f844d41bf17871683d8b49aef4c981d96b", - "0901b3aa7889be4d32d6cacc321a12e21b88e58e9804b2dcf7340034ea9d46de9379ca39e1fc7982b6da050a4651d6ce", - "753c49ef68912b296462ac8e158b3f4f192e4fb6535f77398c70f0ac5c4ed6bed066b4aede5057c805604d706e93ed93", - "c91831faeda174918ec46a012eebcc770228b1f47de2b673d12219f6fcdd92989005b2c165f233b20bac5762d0b7a4a7", - "598b0e01598ff33097ba2fa5ecd974feccb8e28bc8d7cf8347fed330a0b11ba4d90b2459905414eedfbcc13f4d92738d", - "1cfb944f73422793218a5b42a76f921b2f64e3f92d1763b4bde16a43d222b3d82cc3811cd14dbafeab9d847217ba5bd1", - "3b4d83c5ffccebce8c9995c6b7f9b9a4a917e1fe9206b76747a561e7015c4ea403eacb0f2166d0aefef2e33fe3671fc4", - "230ec27a464e3a9590a987acf12f1ac04e4c4e4cca52427415b2cecf0baa17f32fd73169c6e65eee4634c01999212429", - "bf9152f8c95aafaba2c945be40d5542f2528f36349d7658daf13b42306ab42d5f5fd0d457672432d31623bffc8d8c5ef", - "448fe0b978e91537e1d3b2d3156786b93c8550d27ba4c3f8501397cbeeb9c9b2712cd006a3fdf11b353e2724f84603a6", - "73663876e95d1f1ad5befbbc8488abef105f6243a2f598fb3a31879dace2fec7d135016b99f6a801a746fd5c38b3fdea", - "fb4b1652774eaa6b6084e68282724bbafdc4f7f27af8cfd7b09ed8684e79f731562524c59d23074af0a7804b5337e31c" + "bc14e6c94499574ddcb28b3d34f322613f8d60d92d9bbe014a049c8d0694311a442191aed81774cdd2636f9745478338", + "9e8a8d1c5765450eb6d34bc1fdde6175137a220a54b7b5809d52c2c3b532eacf3478a7deae1415577271e5f15751fe0d", + "3a560142de0747a6743e44fce7c41e0df047f08b5fde008e6f62e161861b71a770c61b016a39fda93da21b6cdd26dd5c", + "2bdeb70ceabf9c06276cf76275cfe0c32c903ba7b547b3e545517c3c82a6d4662da11bf510c9cf03d99df7054099faa9", + "44f3190a43105a100f45e19b8757a205246f127794e02351388f2ee5626eb3a34885a37cdb5374706e55a7bb569977e2", + "48bc75d33b23c29962dd29f724089a39bf31ef3ef1678bae5338035092dfc39d1558ed03d3a1324ddedc34200fec9226", + "547579a014dab080d489389be35ed379a00af46fcab534fe2b75a9dc3277e0a5f18ff693d92d3bb6c3c04c72d9003ddf", + "8b7d4b86ce7f0c3a0aebe1969ea7ab96cd13f8c438a16bbdd2f88b5a925dc4e33deda9ee3fb5383ce6c749e0d794cfa8", + "873f2b6f161ee196cefc0b9ea16dd90fa3f64e4e7e324610b833d9c3008fdafb83478f04be0110ff4cfa309d5e0b4c22", + "5095f1c8d76d50232676f206c1864577347909f18938f4bfd6148c6943e92431f65c3435ac0081c273ab13bf063ef6c7", + "e1708086fb8e6cd2bfc28cafbc43cbee7c0a3b9c99a750f0d4174c9ef819405ba7d11642065c85eb953abaf5b9ca2834", + "3fe7924f1d9082b47f3d2a6bdaa32939d191416eab25328f7e4be1c72015adfa093cbac7bb21521ffde089a49284170a", + "c469afefd40ad7425fefb84be0a9d7864a4874f5700c30083b943a28b138c1d7e1033d545a1e381bc01d3be9119492e9", + "e2b615dd09c976aa8b5f357f048c676410c459a306c3cc36be27004fe528143a2c3cee5bf4929c42c487705380486931" ] }, { @@ -520,22 +626,30 @@ "1eff05c5646134204b9f295de0d331286f5821e9808845c45c9f59d97441eb7f", "fc4a66b510b80f5b71389af3fd3ebd30e07880c41408d9a48e58fe1e72c6842c" ], - "pop": "043194c2c7ebd9d978e713bd3ae80a969fcdb7c107bbf517e822a7d07a910002f6687e2b3de7c4fae7fc88fd53f6914bff1f8ead7408c60ac133b0f6fb2e7b01", + "pop": "12a73528149b7abc95d9388de36b9f4179a32a3830ccd2bb92e8b3f9a48a2f4e89973530ca3aba70b1207ddcddbf5b124f80b40678357a16ce21db2039aca409", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af66b90a0c2b628f1fd5c00a9c563a16a8ba7479f0ced9a6ba384c828ea6dbd64b4803931ededdd25a6e5958323f2729b0f2218cb6bde30fbed4a475ef49beaf787a3ec43362b3757c261d7cb840159e1808c173f739b4fa5b3ab4df325a82d1107a7c05245b9d35fb91a8c2bfefa750350eb9929045721ccc70719194b0d82e04c4e3195d801f9bbf51777052c8e3fe9574f23834d4d1292c9de823ee4cb4850c1eff05c5646134204b9f295de0d331286f5821e9808845c45c9f59d97441eb7ffc4a66b510b80f5b71389af3fd3ebd30e07880c41408d9a48e58fe1e72c6842c0a5f5dddfceb248d3b43626d95c5a19bf0f6a411016e78c0075b4ad011dd4602", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e43459713fc346dc9ae75f60a65edd8291fa7e4ce40c375150228e672a143f1d1000a357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af66b90a0c2b628f1fd5c00a9c563a16a8ba7479f0ced9a6ba384c828ea6dbd64b4803931ededdd25a6e5958323f2729b0f2218cb6bde30fbed4a475ef49beaf787a3ec43362b3757c261d7cb840159e1808c173f739b4fa5b3ab4df325a82d1107a7c05245b9d35fb91a8c2bfefa750350eb9929045721ccc70719194b0d82e04c4e3195d801f9bbf51777052c8e3fe9574f23834d4d1292c9de823ee4cb4850c1eff05c5646134204b9f295de0d331286f5821e9808845c45c9f59d97441eb7ffc4a66b510b80f5b71389af3fd3ebd30e07880c41408d9a48e58fe1e72c6842c0a5f5dddfceb248d3b43626d95c5a19bf0f6a411016e78c0075b4ad011dd4602", + "nonce": "ab3c3f5c1006d26948263c000c32bdb3d6df689aed2853caeda14b97dc29140a", + "nonce_commitment": "12a73528149b7abc95d9388de36b9f4179a32a3830ccd2bb92e8b3f9a48a2f4e", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d483712a73528149b7abc95d9388de36b9f4179a32a3830ccd2bb92e8b3f9a48a2f4e66b90a0c2b628f1fd5c00a9c563a16a8ba7479f0ced9a6ba384c828ea6dbd64b357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af66b90a0c2b628f1fd5c00a9c563a16a8ba7479f0ced9a6ba384c828ea6dbd64b4803931ededdd25a6e5958323f2729b0f2218cb6bde30fbed4a475ef49beaf787a3ec43362b3757c261d7cb840159e1808c173f739b4fa5b3ab4df325a82d1107a7c05245b9d35fb91a8c2bfefa750350eb9929045721ccc70719194b0d82e04c4e3195d801f9bbf51777052c8e3fe9574f23834d4d1292c9de823ee4cb4850c1eff05c5646134204b9f295de0d331286f5821e9808845c45c9f59d97441eb7ffc4a66b510b80f5b71389af3fd3ebd30e07880c41408d9a48e58fe1e72c6842c0a5f5dddfceb248d3b43626d95c5a19bf0f6a411016e78c0075b4ad011dd4602", + "challenge": "5b2d0f9ab08568ee5ffa5eec527fa8024a4da3025a223b34be4da87aebac7f02" + }, "encrypted_shares": [ - "7d4ab54ab8085a92e577acaabc310f57c2e205379874e8c28f8728e85cc0a1b955ae2d088788319524a8912393c1b857", - "13881f9751de218a5f04a7e0628078f695e812f947410667cba3ea3ce43edad888d4ebe3b727cb4c60815182ffccb59c", - "2977b964afcd66e97d7318764c38095be96d42b3ebde55d1abe8eee2f1e900a64c97644e3d51a5c7a82d9e867ad37666", - "68acf7f8adb6cd05efd2e25aa287924ebc07661e10d650b2e2f97049d113ed5915b1641f4b8ec7ee7d2c17fdfca323f3", - "3a6e2853ac3604cef9ef464ca5e4a7fea93bcd29594472e06e278e6d2c65b5edc719b2bc3a087f7f44ceaee576ed1e00", - "dfb1efdbeb0a7fd45ddce2218b916e07e379950836b3be364e8906fe329b3a00a2872c0b10df67b6ce7c087e24494592", - "1548d28babee7a38e1882372954b82c88abceb865504abf44e64d187cabd762aba3ccf07664516b7c50ec7f100ba412e", - "c757810bfd93a939cff92f3d57afa7889ef36b795a7f29e849af17e67ba13a7e47a2b064dcfae27e0a509e7739263bd2", - "2fa81a17fd7fd0e6399c13b7b947ffab0931a9b846af98de755bbc38478a28d223c8c70abc13f097c1afd6040a7d716f", - "7e64b8a667a2bac4a5925932563c5027840f2c9b167d736b48a752fd11e0426891ca93014496ca256d0a4087f49b8ec0", - "5f7a296e2dea921e87dd1e8763c68bc899bd15cac9b3af2dfd44031c38898c3e5c9bd6305a78977a9e6327cbeceaa800", - "25e4ac366726441c488a8b42a6af4a47d5c9f76ef95af527d22d92145520b2b92a102b582e0416110066a05b37c696de", - "89866279b78c5998bc808eea90fe1e60ec4e12c804e8dac34c15320c88c5c9f7c60844c773af3c051fa4466deeacf844", - "c895a57e4492e2326b9c21201a13030922cac4c098ab9df813f52dd7517ddc4ad8a24535c54958914bd096f54bcbcde9" + "a36aceed74543550732d5079225347286c271184750c6a88788c5d37737edfcb898d3ad175375f10393045c46663dba7", + "49ad0c589923e098f8a54b86bcae7902aae7b555d6a0934d082c72bd5cd3a60ebec791f3942fc112048c03001e4c1772", + "2446019dfa4537a804d6756373375daffa938500f81463181fbeed71c587d9830d04f3df39629a67c10b42d299657658", + "753ea5f151fac8a313d29e424a3ec387ddc18170d544937567b8c6444fa44bcf14350b10863f0614431ca6d0ee84be07", + "5691046196fc397a406144d93ab8bd834bfa51f382db7e03467718344e34a6c13b887c3a55a665b517b8fe34d6036b94", + "22796e188491df1f59c5b0ae598904d7e86289bfad337ffab6f616b82ed736910ae39695ef4f556d1052a9eeec40be25", + "0c7b06ffb1b9866b624e21c90b45f312bd00384ae84598fd8dda60e3a48fd2434a0c5dc6d073f570e57733d646c9fbf1", + "9b1615644b3b6b0318cd94b65b8b7d454ec7b9053eb764b807a4e4ed4c79f6e7c0b96eeaf344dac0b2999e0774a3bab4", + "7c84ff1e0f232f7c05e7aa5c5b2c5c20724d54aceb825ce36d012853d2a02aaccf358a665e22600ccb9039d9eb35aaa0", + "81fff2b1024b9b656ad56998dacdbed15195506965b2b198e8d30c28d7e0824c8482cb235e75dd7359392700e46b2457", + "e0807c532d773b76401c0dc149213b6ef8dffa6dd5cc6757d95b14a2e3a6912b0621efc2fc4524556d28ad72022f1f4a", + "d5799788a622c37ceae40536327941978c355c22a98c9a71149d0876c9d34c46920c09df9bbc90c2726d0c0cc7523b79", + "7cf621d0bb8a21da38b4df9c99b54077f2cbc842fe00fa24d038f1f83b52ba0576ad23e2f7e4f4cea9be1bf9b7c4cf6b", + "dbd1d2a9e5cb84d8cbdbcc264e4d0fa5b090808205a2bfef3f66c348509eb34cf1c443b0bbb1c8c6e6ddc324aeef6e13" ] }, { @@ -550,22 +664,30 @@ "ca20eae1813935b73f18ee6b5520d23a1b511d40e5ff95b8abe405099d88ac59", "30a8c89d12788a541694ccc8dcb9ba7bea235381e2cfb6924fd262066458927d" ], - "pop": "ecf8637b15d7494bed00f93bb13207f5cad3c3d78c7d87d1e0a1e3077a363f5e1eaf57bff199b84891f6a07415709fc1918ea94df93fe00ceec81b016ce6b307", + "pop": "fa33e5fb79eb14b10830e3aea8b986534d923852d149f3ce014c52a0a535a52f9c4389911d1e9a84975d64111f6d82ae6be53803ee056e4f6ed08515a5a9270d", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af9a10b10c8352e33e19776701a31c3bd934519dcf61c135b75875561a838c6f5a8c789ab852e400fbb365cf5d6ffe8e3f952a7c980c7e387b551b11343df2d724de5c9fec0bb2e9b86605ea20a598b6fb71e15ab47eb8cfdc1cfb6a95e49cd863686a30e5613ca84d3c64a71ae6838f22c81d08a060139e25557b7d24750b3750dc4f90364a1de8c7a11933deb407bfeb0f1d98d0a4a3f36e6d58d9193cc8b75eca20eae1813935b73f18ee6b5520d23a1b511d40e5ff95b8abe405099d88ac5930a8c89d12788a541694ccc8dcb9ba7bea235381e2cfb6924fd262066458927d5886bcffc515f555b16bad68e3a2707fcc5dcf4d81a9a8a88a9c4308f6bac13b", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e43450f04bad5b0eb124c17bbfbbff3d4630995377c0e62fafb47f7ab160c8c5f9102357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af9a10b10c8352e33e19776701a31c3bd934519dcf61c135b75875561a838c6f5a8c789ab852e400fbb365cf5d6ffe8e3f952a7c980c7e387b551b11343df2d724de5c9fec0bb2e9b86605ea20a598b6fb71e15ab47eb8cfdc1cfb6a95e49cd863686a30e5613ca84d3c64a71ae6838f22c81d08a060139e25557b7d24750b3750dc4f90364a1de8c7a11933deb407bfeb0f1d98d0a4a3f36e6d58d9193cc8b75eca20eae1813935b73f18ee6b5520d23a1b511d40e5ff95b8abe405099d88ac5930a8c89d12788a541694ccc8dcb9ba7bea235381e2cfb6924fd262066458927d5886bcffc515f555b16bad68e3a2707fcc5dcf4d81a9a8a88a9c4308f6bac13b", + "nonce": "90363086fe6bdee197546eff57f38bbf8892c32c6f20d4b44d01c8971844c10c", + "nonce_commitment": "fa33e5fb79eb14b10830e3aea8b986534d923852d149f3ce014c52a0a535a52f", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837fa33e5fb79eb14b10830e3aea8b986534d923852d149f3ce014c52a0a535a52f9a10b10c8352e33e19776701a31c3bd934519dcf61c135b75875561a838c6f5a357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af9a10b10c8352e33e19776701a31c3bd934519dcf61c135b75875561a838c6f5a8c789ab852e400fbb365cf5d6ffe8e3f952a7c980c7e387b551b11343df2d724de5c9fec0bb2e9b86605ea20a598b6fb71e15ab47eb8cfdc1cfb6a95e49cd863686a30e5613ca84d3c64a71ae6838f22c81d08a060139e25557b7d24750b3750dc4f90364a1de8c7a11933deb407bfeb0f1d98d0a4a3f36e6d58d9193cc8b75eca20eae1813935b73f18ee6b5520d23a1b511d40e5ff95b8abe405099d88ac5930a8c89d12788a541694ccc8dcb9ba7bea235381e2cfb6924fd262066458927d5886bcffc515f555b16bad68e3a2707fcc5dcf4d81a9a8a88a9c4308f6bac13b", + "challenge": "eb06547bbf8fe8cf77c3a6829a9aaaf936aff96c97e0ff9e609161d443e4e208" + }, "encrypted_shares": [ - "46a49e24e1e9ac4ebdc6220be14ea1efbfcf02cfca1346ae5f512256c371c112bb775be994ac2a0e6be9bcc5a1bcfe1d", - "78b811bdb8ec6075d102f560f64f1e64db068437989fa89e5d5dd32bc3dc87efa1717b917a3345407ed2166505d9283e", - "b09b00433f6e3bf5a32d677d8f533be9761824b697fefd0cd037c86aa2bca637008066022d4346807a72926dc5f1c7ea", - "4733d82d5d8294a8b48dcf18126ccfd9c5b6f186a09bce1686a09a82254e8ff6bb4e2706ae29feca4c207966eec6d09c", - "94a8e3862452406abca7db4cbd89de0b5d9fefa9db3baab3267231a70329a525523d384fc57d9ca52918e6e94d1a1ceb", - "b53693bfe17ae67b51289d4d54df1c0b0a1cdb8756e13a19134d5db541676cf30fd147d08198b06916d37d9789838026", - "8dc2dad45dd21f03d8d6fffe84e4ae6584d5104256164d427809ba197ea76094620df9ed12fec7ac9a21a75b8f58247a", - "38b97e1f65669b93198fecb28e59da4ebaf7a030846c58d644d9b0f07cd5e143a63edfb5d525a7a539a49a1ca85e3b5d", - "e3c8e3970f7e3a4fb4fe7f0838fdcdbb36ad18c4e5f8a966566cb346c56beb4f912ab15048d781b3567353290447f99b", - "fcb58f4c8724e7b8545604839940261c730062ef09109f11ac11eed4ec22d0eefc275ec81c7d4fbd0e0732d62920c67b", - "d9b3013bb0b7fe4308a1c9c9a9e4f8ee2a23cc1cda23783ad8137e51fc970bc258edff26ea44073dbe8d0f170e2cc906", - "1f5ef745a074d4c08127ddc4498da8eab2eba8d66e500cc31ba59ac3ad12abca54ef63ac2c29ea6089e444372a391212", - "23893ad02207361a80116917935238fabed18fd27eb83dffc3db95aee21b76ab9c992180fecdeaa73569b47c4643803e", - "bbe35fd7de1c9e386bef8c8c646ec4763184e330d41007381f03fe8a7f359e1753f507ad57a0aea1e792553ae62cd7d3" + "06874dc0d62974327110302f75c4ebf446a5f1d7564adcbe74b45a94c2d2e0c17da02053697abd0fdcc4a14c9df54646", + "d921c6f5c6536c96d3ef52fc04a5b2bd76c33e64c643d26cea8ad1b073e9de8f06d2d7da9fa914df11ee9c06ccaeef21", + "a52ef46c1094b961940deabb0431ae5d10575af95745305fa7f28266bae81216f59ce15ae6c231e3ff33f21ef63fd19c", + "37eeef53a6a8f4a39ed061570b9fcbaeaba146ddc1fdcd73351ae1a9a99d7c19fc841801b715d03c3c6fffbaaa8bb317", + "794096f11c26b88429b7e2d9b69dbe2b53fbf5be08243efb9a7ceb8f593e9b52d60c04645f21e85d6bb9b6050a14e630", + "9a65bc2c09f50bb7716370c1e2d1cbbf0ba632b9a52d887a20dbc54a6e9fe28afd0a33212aab44a72bc805beddc258b6", + "420c30d5ed01099b74c083ef2d0cac4d2f53c401ffd7f93dddf858366b0f8c7462fb02b5b8bfb838a4ad2cf7f69c7227", + "025aa98b6585721b4a4d774537e83849d7685189b503d37f745b9a866e207e2810f6eb59d479755f2e155ccfd950c7ec", + "4f67c198949043af4cf5226512efbfc27a530dad5ec3b900d85410ac4b7c6e05b71467d59db5eba4e2db0a47421dfe85", + "c038b5009a83d1b7c317c6c009ddb6017da0bc258d482a2b9a28d256a89c1be34ce3260c929493c147162554d98bc93c", + "f656b1728afef40e21b5b1056b5e85509fd6e4f37e498c221b497d5a557587d18bd4a6170ae4f990cb2295447542ad5a", + "27ca6b8c6cf33fd8b23300578d941bd63f9c0943939c116387fde934ba31e3c4bbe0255fe47e22272e26451d6b5fac6c", + "0dca977c76f75ed9b315640d2c98998b72a16ca41e7637151d065938b6739375932d14bad8cb77513b2ffa713599ffa3", + "385e8c5ed7becf51850d1b18ebfb3bf8ad07bcfa14880acf30bc9c59c26f2869fc7285ab465aa2be2a91394500015a28" ] }, { @@ -580,22 +702,30 @@ "6224a7a36213050853e5d471096fb8e665a603bc0a7b022fa4941dd2e7d32d50", "0e1c81ceec8635fda5198938f75de4d1b6ee495481eff731de1a0aa302694f55" ], - "pop": "d079a6282e31cdc99ef3a7ec8c785124b7eca10b9c75be9bac4b2ff5d529395d20f09e46337487533c3e6dabfb8de9743c05fe7d1d96cb675e3f194b191f3a05", + "pop": "aa333fed38e38bea752c9f676c15a79a181c97fd8d8acdf069c5a08512e37021d1cfec026ad72f4a8c643e48389ff903713d44ac3928ac9362e45a5a41c3530e", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28afdea93fc27aaed692abde4ee2cfa1e03db707dee3f645449ea539e8a25391127cb6aa5a516eacd05329904fa7030da2e51c4f0d38a7019d5cdef33b919be936551e3e764625918fa274bf24e4c2de0223bd7f3fd1d5621a747e92853202c8853252981205f0e9ad000e8a9076cb8f33b20a019f2270ad76f4991a0282ff75fc277a3e8ce1aa7b6a118072377e9374d46756e1e6addfc915d5f6060d6eab0778376224a7a36213050853e5d471096fb8e665a603bc0a7b022fa4941dd2e7d32d500e1c81ceec8635fda5198938f75de4d1b6ee495481eff731de1a0aa302694f559ea962570a4f53ddcaab89ba83a116afeae14a0e22c076afe870e8aa036ce51c", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e434524911255a9e50a69be3ac094e78d9dc9040f9c23af0538818319e9b46ab1d70b357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28afdea93fc27aaed692abde4ee2cfa1e03db707dee3f645449ea539e8a25391127cb6aa5a516eacd05329904fa7030da2e51c4f0d38a7019d5cdef33b919be936551e3e764625918fa274bf24e4c2de0223bd7f3fd1d5621a747e92853202c8853252981205f0e9ad000e8a9076cb8f33b20a019f2270ad76f4991a0282ff75fc277a3e8ce1aa7b6a118072377e9374d46756e1e6addfc915d5f6060d6eab0778376224a7a36213050853e5d471096fb8e665a603bc0a7b022fa4941dd2e7d32d500e1c81ceec8635fda5198938f75de4d1b6ee495481eff731de1a0aa302694f559ea962570a4f53ddcaab89ba83a116afeae14a0e22c076afe870e8aa036ce51c", + "nonce": "12b7028d3fbbfce90f823402f3bc6ec11640d29830195d670eb850c2921a0b0d", + "nonce_commitment": "aa333fed38e38bea752c9f676c15a79a181c97fd8d8acdf069c5a08512e37021", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837aa333fed38e38bea752c9f676c15a79a181c97fd8d8acdf069c5a08512e37021dea93fc27aaed692abde4ee2cfa1e03db707dee3f645449ea539e8a25391127c357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28afdea93fc27aaed692abde4ee2cfa1e03db707dee3f645449ea539e8a25391127cb6aa5a516eacd05329904fa7030da2e51c4f0d38a7019d5cdef33b919be936551e3e764625918fa274bf24e4c2de0223bd7f3fd1d5621a747e92853202c8853252981205f0e9ad000e8a9076cb8f33b20a019f2270ad76f4991a0282ff75fc277a3e8ce1aa7b6a118072377e9374d46756e1e6addfc915d5f6060d6eab0778376224a7a36213050853e5d471096fb8e665a603bc0a7b022fa4941dd2e7d32d500e1c81ceec8635fda5198938f75de4d1b6ee495481eff731de1a0aa302694f559ea962570a4f53ddcaab89ba83a116afeae14a0e22c076afe870e8aa036ce51c", + "challenge": "0c01edd42cb236abe4ed1b5a676b82cc71d5e34817cb52c39e93fe437bc38b05" + }, "encrypted_shares": [ - "2484d66cc4694fb4421b7a7ccf0552f2329e5f3763ea0a0e26bbade96382f77048635128f17a5574f14274a2cf267545", - "0933c5e54588693ec358d142db09a3701cb4c5dbcff856a2a8281aaea307399b040b2fd59e112012f492f429e61e7791", - "f2a6b1a6886893b26772ef7f634ad711b1d9339c8e816dd545d2abae8c572fe931d4fc2aa1151c81d70f122e8bd5bc84", - "5f0cc5131c4c4390ae0cdc58491f45d8dacb9390a7b17903a895581d2e35706f0c86bd17b14d2d7d2428d7bf86d7d43a", - "37b3c70bc80f62da57a68af98b1f84d48ae5cf809c8d3f957a193a7c6f31eb7c6b55127729e31bfb74569e7cce09b5ec", - "fccef58718628a3a72f5c9f540ab1cc10d654471af0aa6e29eb55f5b900da4cd56900c937529e68db8834f5368af695a", - "173d49720830425fc1675a9c6935fe6b5ae2295759c64ca379d1d6aaf149a0590d67284f90a58ab31a81228e1028df02", - "6542c18c83026d5f24e5db18a640281b9892e3b44b9b236dde13a354c2bd5b96d478f0a1a59fdf846cc33068e0a6e8be", - "18d6ebb4bfe0a92f7b57f1ddcfb2998ba93de5491e3d363ed74051c810b0e3a59606bc8313ad5da784d19ce281e52018", - "d06ecc503302ad412947adc9cc2a77836db5ae6e05ea258bc6a191fa588e2e86f2c573821063d05f423ca906238b7448", - "84b0ff8c539cef426b59f069b2890cb0e1e0ffe0ab545e43318441c46c78e4e942658d1d03cb90788ee1c88c0b811e14", - "f0634d6407cd7e921e1b4caa1b5c0847e843fa935d1f79f6b12c67149428ebddbd9038d8377fb3db766a7b4316e77a00", - "d69d7423b2ba5fd102db0e892bc37e1995dfe7da2742b3319ea9261fc14a8e983880bc05275f03be9c6cb515a921e334", - "11133c86bbd43cffb1219c0863bbba348ff08494b997fc104e14dfdd2dd8cf37f18bffd533a88fce96f15f27e7c56cf6" + "8636e86ef71fa5c93ee1a7df9bd289077a019643c6db3722d290fd6c7eadf412aac36abee185cb9d0f7a8d0e39949bfb", + "21563fdd2ebb67193a7c3d09660c0190045684e7cb82a0e6f9284a1c91c4e36752a0ef9dd8ab958e485901f3a965a880", + "eefa878656e5abf04f40f8d6ad040ef258f73a9088dfbdaddd3243b0a577930bd3973853ab8d6b7fa4bb61b1b840b3bc", + "26e87a4e5a937313fe0a68427553d637dd3ce147cd2d5b06e1bb7ba4659c1690047f975e812d75b90d062f8c1e345253", + "a5b3b0fb65535c17a9d6c4f816648db693eb88f48cdbc8f2434a10ab39b7cfe9d2104ce9a4292b7b69ecd051620ad28a", + "8b567f50274b54bbd20aa42fd0c9396d016221e4ad5b713d8dbcd593d2713f62f67aed5adc9c8506040ffac5706e21dd", + "0298b4096d4602225fbd8c5647a63bf8ac1a1af88fa0befe8da30b6fb09d113779e2aca9ac0d94b477578e1cb9eae59e", + "6a8578aa3f061da4b7a9e0dbe22a69fbc0be3d9d50da4730701d727b9658a8b90f6078386d556f459c835a9145a25bf1", + "d38b5f8f05f9ed261e5c25a715c0868a17668957630f601caf5ccc3e8dbacaf17338d815ea1687446a7e8b4ec3138abf", + "2a776d33634bd535ec05fca19aa85d1750a9e14320289cbb161ad8959ecd8d57e8c82956c88c7e82c1f8b1f4624af726", + "a1280c3404f201c567cbfc208dd9962733c608cd5375cef7dc93e7bf4de93c69b5ff0a4f463fdcbcee6fc2804d321dc0", + "1ce241b6fa588f0128ffd2de434e76021c0f98e7b610dc2007d7f14500d4480bb51eb08798d468198b615d10c1ead94d", + "e27806e9a0fbc8f1c7158aec28dff3cc791ae0a7782d6e187635310536d3a16575a1b9eb680ceb60c6221811ea214b2d", + "2e94ef3479877686fa048e59cd24b32c878aa9b298a41e77503da9b5682b5aeca36500d69732cf1d4cc7f0df4dcb244d" ] }, { @@ -610,22 +740,30 @@ "9626df7ee28877472222bcebfe511bd4e8294456625041c35e0c7e71824d1d1e", "3e9c350a0d9bef4384ad0ef34d643d9814c2e0081292e1f858737e0bc1785d03" ], - "pop": "66e9e778902e36ca48f6d8b6aee925ac0c062a1350a9aadf68da9569b6ee971b0995705485ebddcaf37383c5219bdd1d173670515a21cbb5f361f7c40ff0bf01", + "pop": "c2399215e87912790275cd44575cadd1a2bf311492a4039670849b6db39828777f682e57e69991a7c3fe2be6c0ae59bfe17581dc786d12d55f10220b558f010c", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28afe4dafb7dde0c0e2e1d0c678cff33c220b29b8fb6fada8bbe095b030aa2d7e74dd8985d7aa7b022b58d9fe27920fef4fdcf49b16a0ea41b6facefcd00ebfe2a5dec0c324ee31a405d09256e63a208db02e132ccf42467e026cce1ec721399ba338c50eb0629dd3fa7fdb599b5a22c14d0af96a01699176266377c244184788a6dac5066a57ce817795840fe727834d21ea0d73b035659c97b187c9fffd347b2319626df7ee28877472222bcebfe511bd4e8294456625041c35e0c7e71824d1d1e3e9c350a0d9bef4384ad0ef34d643d9814c2e0081292e1f858737e0bc1785d0318fe3f3194d835cb34cf1131166c7ddf58affefe55e37533404219f20f09307d", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345213c2eb9984fccd7ee89a0c15407ba28f0be48cb7333c4f575cd9818c7fc4d09357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28afe4dafb7dde0c0e2e1d0c678cff33c220b29b8fb6fada8bbe095b030aa2d7e74dd8985d7aa7b022b58d9fe27920fef4fdcf49b16a0ea41b6facefcd00ebfe2a5dec0c324ee31a405d09256e63a208db02e132ccf42467e026cce1ec721399ba338c50eb0629dd3fa7fdb599b5a22c14d0af96a01699176266377c244184788a6dac5066a57ce817795840fe727834d21ea0d73b035659c97b187c9fffd347b2319626df7ee28877472222bcebfe511bd4e8294456625041c35e0c7e71824d1d1e3e9c350a0d9bef4384ad0ef34d643d9814c2e0081292e1f858737e0bc1785d0318fe3f3194d835cb34cf1131166c7ddf58affefe55e37533404219f20f09307d", + "nonce": "5e8f96ed85e58d6750e784db6b7b5e80ba914584799de24bd5a1bfe43b56f102", + "nonce_commitment": "c2399215e87912790275cd44575cadd1a2bf311492a4039670849b6db3982877", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837c2399215e87912790275cd44575cadd1a2bf311492a4039670849b6db3982877e4dafb7dde0c0e2e1d0c678cff33c220b29b8fb6fada8bbe095b030aa2d7e74d357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28afe4dafb7dde0c0e2e1d0c678cff33c220b29b8fb6fada8bbe095b030aa2d7e74dd8985d7aa7b022b58d9fe27920fef4fdcf49b16a0ea41b6facefcd00ebfe2a5dec0c324ee31a405d09256e63a208db02e132ccf42467e026cce1ec721399ba338c50eb0629dd3fa7fdb599b5a22c14d0af96a01699176266377c244184788a6dac5066a57ce817795840fe727834d21ea0d73b035659c97b187c9fffd347b2319626df7ee28877472222bcebfe511bd4e8294456625041c35e0c7e71824d1d1e3e9c350a0d9bef4384ad0ef34d643d9814c2e0081292e1f858737e0bc1785d0318fe3f3194d835cb34cf1131166c7ddf58affefe55e37533404219f20f09307d", + "challenge": "1e5c40b06655c3ffe65a2062a88794c15d60f5697af62baeddfd0c8836fe9c0c" + }, "encrypted_shares": [ - "b4d6c7af725fea2292e9595ec832c18126a6df504281a06ff4a4bde62c27529ad065c698ec50a0bfa85640e506a8bbc3", - "3f5bef28f4ab4171d0d5a860eb1c6befa882b62ab5532279114a8f59372347739ad1b9e7c7dc1d4ba9de9b1da0c9b6c6", - "ffe2f7054692017d507e022e5a66c182a8f9e87258ab3d1e6cea79157cc2ce35e74bdf68d93669d6be007417953b2d44", - "a3e582fb6d369dec562fdb8b200a01db683db1113fe16edd10a4dcf08faad59310ca8809b65601171b15fb780e90231d", - "83c761f2a294e98e2cfd50a6269bac99ebb76e9ee42432c59766ca7d5369d478bf2b7e32ce233038861f442de02c5b29", - "b9f82ea4f3506ce38f217d8873985b06c9bea5c14510670d115904c4969b571d668ff5777b33f941d5def2982708a321", - "cd23a01cc01b873ae25ecebc670d247dc9dd131edf3715bb91925b6957d2c21f10d17eacd054276296818aa45153261f", - "3f6b4d28e6fc877720001afe9be232443528b8de799e71bafe74b7151188ca55e31ef519ee2cee697a3f494da900bbdd", - "444f6e6e88edc7b7eb11d3317676b95fccb9fdfdc7eb242b2ae08e44989736ebb9c972ea18c9cfce9dbba21c2acbd710", - "3b37eef775e7038c55b9ae357d7d194379d346c43b7b593ce356ace46f1db26767502119c15afc567ce66ab64add00d7", - "ebe9198d8538e7da67fa744de7294ee980367e7904afc9d011b63da72c7562a11ec2cca3d3a0291308c7dededc7d8d05", - "fba8b993309747994a8454d2831b080cbe97f03407094364aa7104234152a407c6b1f95024fe3545b2e78ccaae51c2e6", - "87012ab3e8dee2cc8b91baf97c2afc921b82dff101cfbdd2cef1a49090242ce9d152e9f0048b910d8252dde68668a84f", - "510be230cfffb42409f683d31a4ed30891c791e5f8274edd03cff11be56078e91a5af23ae39eeb09ec9979936236405f" + "cc6dc36140ed0f420c6176cae62874cfa11753c331701f0c901f00d486fbf92d66bc0bfa128c49da85f72c689f51debb", + "b23ca2f7ebeb620b755872f5e8b6c3d6557115e292663cb51b8ea5370f4bccf1fea1384d4f6c8d929df5c38ee9b15aeb", + "bf9978112e569ddb316b56ef9a6434465734c10de5d07bc987fd3a15c87fc005e115985ff8f36788b447f3b019aac63f", + "e6bb77f2bccdff2cd10c8fa3345b69977fc4fe52846c27bcb50cdcbc223be9af63569fd7c962095c6ce809afe3603220", + "c618cbf32cc5b079c8b5275daa171adeb9792e327b4ea4f07c52e9ea97e9bf99f11418a5d24bef4e58e6a606984266ce", + "04bd4440cb912f3f3a3e381d611f242582cb0f584793e117c32db941020627dbace485c5e45a0013ea97151e5e2430a9", + "d99d5f333da7bdd1fd52c98eda3e1c65bb18052936b481acffd655daa847deff4d3f688132d62b3a59b545af450291a3", + "592657729b44c8b1e5b1361818dbb2bbba105801bd16e1910d264acbc880401da730c4250b2ecae7d84280579891dc53", + "54a3625b0ede8cdcc1a176059a067ac87a0422a7cc838e8166a9603491a239d04891b37eb002480639b559ae762d6a7e", + "5c352f44ad725ee6d69403345930629cbbea5a31136426b8399d1551f1094b4b6e22e0453a06c8a5ee8f7f77bf1134ca", + "edece77b2f5b22d87a9e2aabbbdf6064426b9561bff81b622611d1084f92a9931ab4be0d7af18a082b3553cadff5c7b5", + "b7a4ae48561e49c27a37f5d2d363d56ced3b1c183b7b6b35be793783525d0fc0b10f763508e78aa298c5a663da27c7a1", + "09b49ab37d8a7a68c033ae3a8e6eea8f59887afe5011c11ca94425dd063039b1604ea774c7a94900702e1ade2ba017f2", + "0e18f84e61b0a8b37ae3ff0b47098a9c8243ed3fd3bc2ab553459ad27877833918dd9eb1812cb81272d4b51b7e6c9307" ] }, { @@ -640,22 +778,30 @@ "5a2c0e6fa1163d23f694bee0c2002d80d2a1e9ace4c9cd46016e49d61226741f", "4e041b24b81c22dd33ec86fd7284da17544dc80bd9b8aae014ec9955ba127a79" ], - "pop": "b04ef68b39c2c0623eecde73e63b81c5ffbd32f128004cb5e6b304d028442b5b3a3a5b5b2c6dce885756c107433520bf7d554a6d1082dceb7026a95f2c4edb05", + "pop": "d215d9a03af042477533fcc706781cebd12dbe8569702c314d92e229cd40a50ab5b142f3b03c6cbdbbdf858fb2946e1fcb32d6976b2e7ff77e585f38a23fda0e", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af3c3a4b77277a95efd83ebe9a8f5b1092ef2dda8457dc846f20fb2306b4e14a7384f976c4da2ba73b2ed3eb4e41466a291dad677e87eeb3b56752e3b11d99595d0690318cdaa9758fc5b13a838c4a8d4c73c4381bc55a49756a660c4ac56b4a32ec1a8b06df1d62dce0bdee3adc91579977a5b00de138db3b9074dee51ec85a4ae820d12a3345f8fba346884064ed5d8da52c10a4f4b62b3b0274902f0b267c0c5a2c0e6fa1163d23f694bee0c2002d80d2a1e9ace4c9cd46016e49d61226741f4e041b24b81c22dd33ec86fd7284da17544dc80bd9b8aae014ec9955ba127a794aa8771d1da3a55455defae91dd870fda4d18e0dff71863eb40356ff1ecb042c", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e434507b76ed6a818d2db346043d12a32144fc271f8af4ec1972d6b2a2ff43f6ea405357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af3c3a4b77277a95efd83ebe9a8f5b1092ef2dda8457dc846f20fb2306b4e14a7384f976c4da2ba73b2ed3eb4e41466a291dad677e87eeb3b56752e3b11d99595d0690318cdaa9758fc5b13a838c4a8d4c73c4381bc55a49756a660c4ac56b4a32ec1a8b06df1d62dce0bdee3adc91579977a5b00de138db3b9074dee51ec85a4ae820d12a3345f8fba346884064ed5d8da52c10a4f4b62b3b0274902f0b267c0c5a2c0e6fa1163d23f694bee0c2002d80d2a1e9ace4c9cd46016e49d61226741f4e041b24b81c22dd33ec86fd7284da17544dc80bd9b8aae014ec9955ba127a794aa8771d1da3a55455defae91dd870fda4d18e0dff71863eb40356ff1ecb042c", + "nonce": "5a5f4dde77c0c62dba65c75d835a4bc1f4107a82f29264a143d05b77fb283e03", + "nonce_commitment": "d215d9a03af042477533fcc706781cebd12dbe8569702c314d92e229cd40a50a", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837d215d9a03af042477533fcc706781cebd12dbe8569702c314d92e229cd40a50a3c3a4b77277a95efd83ebe9a8f5b1092ef2dda8457dc846f20fb2306b4e14a73357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af3c3a4b77277a95efd83ebe9a8f5b1092ef2dda8457dc846f20fb2306b4e14a7384f976c4da2ba73b2ed3eb4e41466a291dad677e87eeb3b56752e3b11d99595d0690318cdaa9758fc5b13a838c4a8d4c73c4381bc55a49756a660c4ac56b4a32ec1a8b06df1d62dce0bdee3adc91579977a5b00de138db3b9074dee51ec85a4ae820d12a3345f8fba346884064ed5d8da52c10a4f4b62b3b0274902f0b267c0c5a2c0e6fa1163d23f694bee0c2002d80d2a1e9ace4c9cd46016e49d61226741f4e041b24b81c22dd33ec86fd7284da17544dc80bd9b8aae014ec9955ba127a794aa8771d1da3a55455defae91dd870fda4d18e0dff71863eb40356ff1ecb042c", + "challenge": "69e280f5c5949b183f5726f1bcf4933ea877a5cc67e12091ee53a08bc34f5f00" + }, "encrypted_shares": [ - "534748e1eba318799b43965f829df921dc09862bc3287575477a149c1fc3452f249b56027cfec602c7936a616111c196", - "302f862a40d3257b690838e1306161b390f5babb4b6289edbfcf21389de91d6fc0c8c2ada80716541edd64ac24e3d226", - "6c61d95e55bd885e5e3cb88d15ea46507467dd53495ad1bd6a6cdc0790c2d163b2b52fb77ed2aba9fb6cde9b1171c5cd", - "a71af891e5900260a2e4b4bbe7bcb89d1a91b59949e07a50a7cadab86f17582aa0fa97ea01fce1b58d1cfbc3b51f6990", - "337cba6d612be12af0329926b140ec654e278a9f56839424470329c21256b0c9861e761989a1e20a5b1f88f03534698b", - "4a2936319c789ed688f8afa6c0ab7d2bc1e25da44cec166cdd28fc120f8c1f3319b58c4a6e33f2c2d86752635ebd514a", - "a7829d3959ee681882e15454543247b72d295e2e37531741bcd578971a65acd6114eaa5b3112df7235ce9d754274aaa3", - "ba96b1b5496337e08ab92a03835f230377ec155b474d0c4e2a4ae45a19643a5209de9f3f68043fcfeed77695ea5e52db", - "5f1f1dad94e3eb44cec0a13ee264bbd013556c0146d6a5247c91e1d73c11d8fca88b0c9e27b338b4ef2a1cea20dec5f0", - "ab5510e23f7ecdb408d5d7c7ae2c7f4309b700859c96184c0244a60c67384fae72afc12b53c2576c4209ce6a6949e9dd", - "fcdd43a55fa2873852a5940f24debcbe1cd6015cc80476c68e04789c8cd5df5cf4d81ade721f5b44a5cbd22d5b691e38", - "feb6e59c30c5a0ac16ad567f25bd336c41a1e07130187c467fa9a18285b1b334c67d9e4548ee5ad40b2e97377e0a89e6", - "a96f5d059f28f143863388fe8a99f498eca3de676c16534f97aa31d880f03442798af0b54ebffbc1b78dba4d75232a09", - "7216e3036564d3b3ea6097abecfaa8c7720d1dd618c8104e92e851d3d3031617a4a686056c4e39b5fd1c0cf21182eaa3" + "35feae3ec127975d44639d5d39607379ca7f9421accfd1de27b719c1da5df2405a1a04261d92322553969230faeeefeb", + "be19ec0cc285bb0e9eb58502e22200a1a15c637bf8961793f532e614662458fea2bba7af9366a55af853b83456550c11", + "b2b65c0d2ab25b54da7ed0052de3ca466ebaa28a01df34bdce948675c19bd4913b34a47ea652ba8538125c09e7448ef2", + "4d9cb9c85cbb995a30e7da96985cb4e6accebd82b9493afe36d5cf458733ea04c80be4e1c1cd0822c66812a1a5425faa", + "427d44042717c062682b2916e0a2574aaf52658697d462fb04fe68209e8c2d88eb279145e031538ff4cdd8343552ef9b", + "6ea7301836eeac014fe9fc54cbc1b28f174bebb352700190fdaf2d5903dbb65b238e1a9cb08b32472d34d1714f34aa46", + "2aff8d70fd6a74a72546756f0c39c28bde302bf833df3cfec20970c73e1a36fceecb8da896beb944cf813192abb782d5", + "7999ab97c8fee61b1a5b10125da3107e11b14f66379dedab388cbbfe7265a786f084846ece97636a4be76961f27a6283", + "66775089c03dccecbe1d26b8e7403d15535dd759e0f3331229f8710923cbfd53cbd4c4ec87bf9bc99750631c8af235fe", + "0cd9d48311b16675c676bd5843f03bd234cf7133cc00d748f04743a0854b0955c70369ee69dfa652e7f3541928ecaf38", + "b561faeb848aa51d486ac2860740532f0ea24cc040c23b4d5d5bcc886659f265760394a0e79769d59ae187ea0a19bb70", + "e21c0275c55665c6721ef8bfdf7f866ae8788a7bf29de4fe937cac42031cef30536be711be9260a7c394b60cd7fcad50", + "bad3b8b31f6a325a9f812d02341cb5862fa4e90bed7dc3d8cff5c8140bde57768291007cb081f2cec400060168827276", + "a3235ed84dfc273b7199fc471edf8692e62646af205ed71f006e60bd46bab27f95e928e47a214d1923ab6bf90575d68c" ] }, { @@ -670,22 +816,30 @@ "c8aec26926a3a82accf19371b19c22149ee8e4dc2627921fb5af94ac4251c24b", "acbfb7996f507ae5800ced79a5bc163ee45cea2ed485431c1f9c5c67227f9d6e" ], - "pop": "c4faa8d46b816421fcc59bbe41762ec3894d92fabb806594b636dc74a3305a25d10d73856f9c742012f6553ddf81ab25afc3de19716ee379c394b2609beb6304", + "pop": "cca85c1ffbaa6bef5547516feb3fb03841cca69082b7ed169724d296d85baf550bc4f8293139a0bd68c82901366344ac8b34f3ae1bb82d9eb3aa0e17d6b48e0a", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af2089a5148201b05fff9d63fa3732fc0ee37ef591f439befe2da1ddab46acbe10ca7f4af6b82d77cd78e56eec027ac7623ac9cee7da0bca2c308043519c03737e5cabcfa39cc0a6ebf7127a1f79c064aa8238d84885f5863b78ee5d8aee651e7f6c44bb31c5cc7aa072b46d03c017bb4b360456040fe02c4e9e04037fe1e4b25532d99f1c8326dfb75ef341abe24602f17f7a01285ac7299602614742009f1169c8aec26926a3a82accf19371b19c22149ee8e4dc2627921fb5af94ac4251c24bacbfb7996f507ae5800ced79a5bc163ee45cea2ed485431c1f9c5c67227f9d6e7a4a54deefe85e69c2a1a6c80cfe1b2c480d3bf660dcbf62570c2232f8d38962", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345473e3e346c301b7bf30e98714e5cc529fdcd967b356294cd2362546d6a1aba07357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af2089a5148201b05fff9d63fa3732fc0ee37ef591f439befe2da1ddab46acbe10ca7f4af6b82d77cd78e56eec027ac7623ac9cee7da0bca2c308043519c03737e5cabcfa39cc0a6ebf7127a1f79c064aa8238d84885f5863b78ee5d8aee651e7f6c44bb31c5cc7aa072b46d03c017bb4b360456040fe02c4e9e04037fe1e4b25532d99f1c8326dfb75ef341abe24602f17f7a01285ac7299602614742009f1169c8aec26926a3a82accf19371b19c22149ee8e4dc2627921fb5af94ac4251c24bacbfb7996f507ae5800ced79a5bc163ee45cea2ed485431c1f9c5c67227f9d6e7a4a54deefe85e69c2a1a6c80cfe1b2c480d3bf660dcbf62570c2232f8d38962", + "nonce": "b4a8f1f80dec0b8e351dcfa6d3bad7434cabe0fae71abd756d83278a0bdb7d08", + "nonce_commitment": "cca85c1ffbaa6bef5547516feb3fb03841cca69082b7ed169724d296d85baf55", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837cca85c1ffbaa6bef5547516feb3fb03841cca69082b7ed169724d296d85baf552089a5148201b05fff9d63fa3732fc0ee37ef591f439befe2da1ddab46acbe10357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af2089a5148201b05fff9d63fa3732fc0ee37ef591f439befe2da1ddab46acbe10ca7f4af6b82d77cd78e56eec027ac7623ac9cee7da0bca2c308043519c03737e5cabcfa39cc0a6ebf7127a1f79c064aa8238d84885f5863b78ee5d8aee651e7f6c44bb31c5cc7aa072b46d03c017bb4b360456040fe02c4e9e04037fe1e4b25532d99f1c8326dfb75ef341abe24602f17f7a01285ac7299602614742009f1169c8aec26926a3a82accf19371b19c22149ee8e4dc2627921fb5af94ac4251c24bacbfb7996f507ae5800ced79a5bc163ee45cea2ed485431c1f9c5c67227f9d6e7a4a54deefe85e69c2a1a6c80cfe1b2c480d3bf660dcbf62570c2232f8d38962", + "challenge": "accd4a3e6719a1fcb48046a7e6792a847361b48b1b004aacd66a59bddb84fe0d" + }, "encrypted_shares": [ - "d2316221a9e05b3bcc3691e04f008812f46fdec19676564c8fe36b93417ebe9f1baff5200e8def8e1a8ab23287a8dfdc", - "1b4f919052a2996f4ad196140756ac7487638f743662b50b109417943c33c944806f9207e35fb5e16d6ecd8153a76456", - "90908853109c03de2ad9221caa696a62a2f7b8ff3ea6a69730444f542bdfe1d75f4c17b4e24377fe407c5f2e3399ebfc", - "bc1eb605f542a705cdd228d3c6bf31ae62e57d72e4cac13a365155ece67f079593c164305b25f389c0a03191a87a2740", - "b05990fb65f0941087f58a2d17c624b2f3bb36b76aa35b040239b902a2d57a7b9998273f2d644451e603ba2b17f8c10a", - "c3828c89bb103e82dc15cd2ca93a87f0001083dc5f45048f959245daa1e9c0b83a1b76bc60f810038ded69b8cf77f246", - "01e8a1c2205c71c10f346419934bd222ac2d7409f79f466102dd431f40da43d0dc24f8b8fa235d77a0753b404d8f4ed1", - "a1c41a8fb70d444b381086ec14c9fcba78795a7431cf29b3c29e5658ebad664da353281bf4842e67fca1d3b9989d40d8", - "a04da8f210e0b965dafecb040c613594749b1a7602513f6bcc580ac6750fad435851b754d2893ac5d56ae7eb7999ede8", - "3d2e01558c3562d80198f2ea032c30a765cdc8d7c64dca281132888e578ce590fd0358cdfae31df353246bbfa923bff2", - "99738a93ee592797aa3839abefed22ac7ebb56d1feb76c101458dcdde1068667ed66ac55ead510799681d9c4bd775518", - "1c3d3cd5e91541017b6666ace9faa68c06ccf4abe4d96824a6b38db346379983181dc28023be73d39a76789d0cd2d186", - "84d82b53ca907116051225551d9541fad6b4e049afe67dbc367959fb5cae620df64ea2cb351c58f3cc9319f58930989e", - "16ade99b66726696d2c329991f889a9cdcbd325a97f4e7fc20f8b99df6556e2eee40883ced8eaf26f19e5f470ad4848f" + "1b91afcb3be4bfccab68553d4a54616f2a048c0bba631b7b8f01469f12304a149665e3e4e01fdb2fe6db5dc5a97248d9", + "296850be4c15375227a44572afb3cfaa77d3b6b0488fbbb62ed0e9de946aef214af24ae1e0424bf96fa0e05abd6d9a62", + "54b884add96b312b2a654a242c422b59c7ce4cdea93de8b12757b5160d1021b279434e9024e1311662a61fd533193060", + "015beaf0b72aa3daab4270c84df9dfc5ab84805258f8685494bab9eeece9314e6fa7821fff9c96139318b08915adea10", + "940d89d5e8941fd97ea9a74d0a7050ffeed5f8718baab4cdbbaccc4857816e795bcb455a361e3c62555deb5584ca6e85", + "ca4d41afc9ba3019e4a8ef935246702d627be2c9d15bc6d88ac6985bbdeb43e791608ee775f82af58578aca498409b84", + "69544f252c6c470df5a0b137851e2b499fc1a55cfeaf06a88ca764ca05024a7c4191671bb801b99e91ecbc7abe7c7ee4", + "1869a4970e6e1698886714b4aa59aa34b5c1927009b49f4ac561ca46ae631b832c4c81bfc2ea69a7e8ba0df230dff188", + "9618cfc3e24ea54c6c865518271574332f99799cac32763dc1e08442728b062a943f185ef683fc113814c0b8ebfdb7b0", + "e22617d6e5d8fc418a6bfa457a0ba0ee1da1f33494832d879edf69817cb25bf93faeca9d8864b6f321b470ec736f72e8", + "a6eced37a112e0b2be29de78fb854b1734c529dd0e7ddc47b1918f78a675c5279655b1ed7c636dda6b6534990a78ca06", + "443502fb006b8d9c0dd3cb457884ca4cc350a5dc5c95b451334a28adbb91dc5ac8a04e82148002588a9d618899a02575", + "7773b3a7d603e742a5eee91b8e7a22c9df87bd598fce5554e91445211dc0b871c92d139dd78867c6d589b7b80e73a509", + "61bc73541c1343ba11d1d0e6b7d71dfc0cea8f9e4430e61ec875a378768c8156ab812ed442012a7b018cdaaab58d2caf" ] }, { @@ -700,22 +854,30 @@ "549b2fa7b6d3d8b4dd2c15c682df72d23b0d097597fe52d3c853251f2837ee20", "c4efafa958f60f52caa26b0559614061eac9a50fec0d20db1182c9400ab99e66" ], - "pop": "a6929782d683728ddc9354483d331aae1f35cd25461814f8d04b3135b98c5a65649e75fb66e25be887dc1d60a2c419feb681d9302f126fc0fae0146c8da97208", + "pop": "20fbdaedc421f2848c6208120520630170fd2185fdc0c56277f498c3bfcfc327e061130e0826bfdcf943b346823211811ba1f0cfd35f9410c9e919721b92d809", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af0e2169f91417e504a33a6b4c11c5870ca4b17ba224a5c867d89d8b102d1735057a216236f52ada14b934ba38162949a4fd44ea05b0ca2c586c8d36d0a4cbbd6148a6e85c1e16dbd8a2b6b88ae88896be7526ab70f0471ab419fdbe7d1944c00138ec7ac86f3cffab66075d3930beed6f50cbd485d6542c78acbec153f1e9623be4b827606b6d7992e30febc62689a4333e7960819a07d3cd207b0eed0601ab72549b2fa7b6d3d8b4dd2c15c682df72d23b0d097597fe52d3c853251f2837ee20c4efafa958f60f52caa26b0559614061eac9a50fec0d20db1182c9400ab99e668ed8fefdfb97646fe2ddb4ef8995ecfc1a2081e3617fecc6834c5d6c7491cb4c", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345f7438e49b1d2a5651d4a16e40cf6e2d2afb48426dd2c99bc215e3a1e4b854d00357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af0e2169f91417e504a33a6b4c11c5870ca4b17ba224a5c867d89d8b102d1735057a216236f52ada14b934ba38162949a4fd44ea05b0ca2c586c8d36d0a4cbbd6148a6e85c1e16dbd8a2b6b88ae88896be7526ab70f0471ab419fdbe7d1944c00138ec7ac86f3cffab66075d3930beed6f50cbd485d6542c78acbec153f1e9623be4b827606b6d7992e30febc62689a4333e7960819a07d3cd207b0eed0601ab72549b2fa7b6d3d8b4dd2c15c682df72d23b0d097597fe52d3c853251f2837ee20c4efafa958f60f52caa26b0559614061eac9a50fec0d20db1182c9400ab99e668ed8fefdfb97646fe2ddb4ef8995ecfc1a2081e3617fecc6834c5d6c7491cb4c", + "nonce": "fd40281691084c381b09753b0c32d9d020c9b828d65e3746b06ab705aa2faf00", + "nonce_commitment": "20fbdaedc421f2848c6208120520630170fd2185fdc0c56277f498c3bfcfc327", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d483720fbdaedc421f2848c6208120520630170fd2185fdc0c56277f498c3bfcfc3270e2169f91417e504a33a6b4c11c5870ca4b17ba224a5c867d89d8b102d173505357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af0e2169f91417e504a33a6b4c11c5870ca4b17ba224a5c867d89d8b102d1735057a216236f52ada14b934ba38162949a4fd44ea05b0ca2c586c8d36d0a4cbbd6148a6e85c1e16dbd8a2b6b88ae88896be7526ab70f0471ab419fdbe7d1944c00138ec7ac86f3cffab66075d3930beed6f50cbd485d6542c78acbec153f1e9623be4b827606b6d7992e30febc62689a4333e7960819a07d3cd207b0eed0601ab72549b2fa7b6d3d8b4dd2c15c682df72d23b0d097597fe52d3c853251f2837ee20c4efafa958f60f52caa26b0559614061eac9a50fec0d20db1182c9400ab99e668ed8fefdfb97646fe2ddb4ef8995ecfc1a2081e3617fecc6834c5d6c7491cb4c", + "challenge": "d115d108089e165784c0e9aa83fb6a406bfb52776d2d4fc5c77ac2c2d5cf7d0e" + }, "encrypted_shares": [ - "d752d6c01831e275e72b2036899579a76d887846bc5c7872a8c6ee6c1f51253e21fa427fdc23404432f72f69279c378e", - "c1aed5e742817eb658a31c756896dbfefe8ab3fddd70e1b8017e06bf188f54f324c923a6b90097c1d167aa60b9b8da0c", - "b16d5c6d847903be8e8343e21873abd01217f20d599f805ac31105498cd08ecaa156e1e607e879010b6bde2c47995ffa", - "7606d322d2a4bb6c4d8ccb66d13a280d342dc8a38e071efa4f70864ced3d2535d151d1009d440f8f524fa8486b0e1307", - "e819cfb1bdf0c37951d4dcc41980d50edee22930e7440781b39b27f8aa1764d0120d7ac5978661e790c48bddb7107b51", - "0a6292d186dedb257a97ece6f425b9cb61b54eb2a5aa3e8c218196a2f213dad5bccb89cf77f160cafe73e931b29281fc", - "a624530e6bdb7e7e697014820eacd1c127bf2319d602f8d07ef7d04acb5c707101ea3c46112374fada590f861a17392d", - "447aa97808538df5ee2b764b8d76b27f4c1b3e8718bc4412e8d12655b53581eb3c68532aa8cf92b2873ffeb28a7282dc", - "2bdea0f99b7bb8abdcc76b09c3e105013d3c31ab651ac85064676e9f40b57567427344f6a0a7797ffd7ae0a93abe9aa5", - "f967dde1b87d6a587ec735ffe5323363cf4f3c23dbc9a29593ddc0ba875531197eef09d5bad41a392661cf28d047a166", - "b89be7016787cef2e77a4a1a7868c131dff0e4ee9e9e65eca5041d1724c9095bffc910186345f07e50f2be27a845445e", - "5b5a994f5e3d6bda91766c22fa406cd405d97450cae8124f375f54eb45521089fac9b0a6ce4b4491a4b701b2a026f592", - "0372ce7a30d5f27fa80aae142f80eba7ae5a109d55e41fbfb0a6830e034f48d33d6c39e87d90966cace57ebed0a3201a", - "6dc72c461e789caeb78dc452d0910d60038c5c9f29cdb245c037fc71c862e297a246a5d4d0ab87ffdf9d20c2481e9b36" + "d4e77efb1c3d04e865f047940a0b3d5eb72f30cc7a93bc530d49cc766907ff66c5863bda5a26a1dfd0b3c45e5273b820", + "f7de3f5da476761a219c85f8107bd87c0ffbff40cf8572a88026cd0b8e225dbba55f47bee83f5d75f34e5f101116cd42", + "a00a0bd65e95ad5d9a66e04b6c33bf4707c9e097f29fe3996ccf60efcddaaf2291c75156fd04b8896f9712b22c70a94d", + "d422b314600d95c494aeb0caedf6527387777cdcb060752790df64ba666df82f65219afe0e46943e862955651b464df9", + "78ef74d0a7a6cca6c3363512e4d3a67780be1c1db8db05eda22c8d18cd396e96413977d6172a667fb1a91e1769c754d4", + "d0a94d2e340920263ed23d92ef326e721c8e1e73c9229afe5b73efa9649617ec6b7930b8f64711968ebe120afc836219", + "0089c4face3fb16d2663067268c18ac819185d0823f8886b031f4ddbc0cd2e6b4fab56394997a7d29266bafe114db6da", + "985cbd9c5c29ddc226c4d016dbb7dfcce65e0ac050c3191cb793dbf239ea47b18bfe913b9a2c9ff501a8f64ae3577e24", + "6dd3c05206165097168a64c1e18b9b33d3ae3d199f7868268930f29ef21e5836c9cb89b65d576977280015b64099cbb5", + "9df0c6668a86dbe7e1850d481db6cacda3b3a79b0b60e17880134e780b91ce963db775c795c7950d66003992c3ed9c95", + "36dec9549a46973d2461744a9d9224724498811d6780d8007673ca80c9a0b11796d8fc9bfdde93a4be18203530e67ef1", + "6deb77a8e51220ee1afd6a5fb355ae75d1ab8cba2f771527c753354ef189dd3662228de02d228ddf0f9bf92a54685671", + "bbf77b58c1024fee37ef52e7760ed7816ff5148f80220eadfa73370bd97f403b99c316d72aa3031670074c4399ce6e04", + "ecf84249b2e99125601c324743a2e3a7d6a7d964a153e62baa8c2797af692b1229fb933f7fb95ee7fff801f6569e9ea2" ] }, { @@ -730,22 +892,30 @@ "e411b0f2a2b6d1ed4ec45421ca84af500400883424ea8b8278f8e11e4e86df4b", "a2c4ccfc1e0e910855e46bc8a1ea8b63523767e8f8a27a7c7ca53f05f4b1e72d" ], - "pop": "2ad22727bea28ab293d84ea79f4c13ab2555b1f5689ec1d47802b0b54383b94e3f16dcfd69b62566665da8260ef3ab98dca7faf989c8469c3e6b0f87f3c84107", + "pop": "bc935c7f6b03def96e06997bef21f76cb72a51bdaf142cdc50d0ae4d75b33a7d4a6e6b6c22230c6889c4c5d7ecfd228b0ab991a717a9aa834364e928fd233303", + "pop_intermediate": { + "message": "357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af70842599803b790e10cebc82b1f91a003519040450d2aa1927ee91a49382896be06ddfddb4dfcdf552db11febb5d59d2afbcef2a338248e0f49fa0f2115ef070fcd8d809e89bc45ea42269b0b3a7efbeb2f27994bfb07fca74090b993080bc18bc01f8a130ef1a6a3c8a61621303a74ff8358c27a42e2c91f20b4b0a8a476d4adc3f5e540e39a7c751c4231621cbdfa2b0f1312aff9bca42cd0d61ef925a317ce411b0f2a2b6d1ed4ec45421ca84af500400883424ea8b8278f8e11e4e86df4ba2c4ccfc1e0e910855e46bc8a1ea8b63523767e8f8a27a7c7ca53f05f4b1e72d206f3ef6e28c2707a3935ae8872c71e13f712ffa6b7d8c0b83c4915240fc872e", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345ee5c6086a15a1baed30194437b4e65a478a6eb0d7b236a8437e7d91440a9fd02357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af70842599803b790e10cebc82b1f91a003519040450d2aa1927ee91a49382896be06ddfddb4dfcdf552db11febb5d59d2afbcef2a338248e0f49fa0f2115ef070fcd8d809e89bc45ea42269b0b3a7efbeb2f27994bfb07fca74090b993080bc18bc01f8a130ef1a6a3c8a61621303a74ff8358c27a42e2c91f20b4b0a8a476d4adc3f5e540e39a7c751c4231621cbdfa2b0f1312aff9bca42cd0d61ef925a317ce411b0f2a2b6d1ed4ec45421ca84af500400883424ea8b8278f8e11e4e86df4ba2c4ccfc1e0e910855e46bc8a1ea8b63523767e8f8a27a7c7ca53f05f4b1e72d206f3ef6e28c2707a3935ae8872c71e13f712ffa6b7d8c0b83c4915240fc872e", + "nonce": "8a92a0d16b7ffc55a432259e2c3b777afca1522be0f12d72b75aa4a7ef8e2909", + "nonce_commitment": "bc935c7f6b03def96e06997bef21f76cb72a51bdaf142cdc50d0ae4d75b33a7d", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837bc935c7f6b03def96e06997bef21f76cb72a51bdaf142cdc50d0ae4d75b33a7d70842599803b790e10cebc82b1f91a003519040450d2aa1927ee91a49382896b357e71deb7f2259f0f3f3f60500c16edd0e75eff1ce4fd66163df6424fe7bb2db1307ac6bbb4a88a67c2cdf08a74b053dd13dd282e0413f90772aa6c720a28af70842599803b790e10cebc82b1f91a003519040450d2aa1927ee91a49382896be06ddfddb4dfcdf552db11febb5d59d2afbcef2a338248e0f49fa0f2115ef070fcd8d809e89bc45ea42269b0b3a7efbeb2f27994bfb07fca74090b993080bc18bc01f8a130ef1a6a3c8a61621303a74ff8358c27a42e2c91f20b4b0a8a476d4adc3f5e540e39a7c751c4231621cbdfa2b0f1312aff9bca42cd0d61ef925a317ce411b0f2a2b6d1ed4ec45421ca84af500400883424ea8b8278f8e11e4e86df4ba2c4ccfc1e0e910855e46bc8a1ea8b63523767e8f8a27a7c7ca53f05f4b1e72d206f3ef6e28c2707a3935ae8872c71e13f712ffa6b7d8c0b83c4915240fc872e", + "challenge": "34c3b1f273f817ef5d34d6886202ec24221c00aff5aac42f78180f0030f12503" + }, "encrypted_shares": [ - "976a512822211036ce9b16e708b83f2ac83936395170f552c7dfa18c0da8a52eac25ab43b0e1d8b25541947062d683d9", - "632c8ce89e9f73fbd9a39c51fe73d262b18b4442e2edd533286bfeca24f5a38494196c4b09e891a9fa2cd65bd234c8fc", - "60fe69da9a686d0e2cf7870f7c0d3c5f36b708746f8891275a28add44836d659490fa9e7cc138d273bedccb7c6754ebf", - "48868573e0d5592d1535b936819b17d1ce493d1dc5369e564022a78be88104551770e6cac0c297a9b3e574f7c73340cf", - "432b5baa3580e1cfceac8f03e8aa870e57070a13d83703d17e2caeb738a093f6b587d2e3a49a4557e6f11e9b00518886", - "9db63ce58d0938c35b78d51816d504f38afebb3afeefb6372447dcad66d89665bf69be11925552a28ee9961bc0ffa830", - "66993cfd88bf6ebe32160254a8cd2314c841c5670c260725df40663863b16f75da17b9c79a0514674c92a8f3205762f1", - "3cce266cdc43328b8457359297f45a40ea46e6d64c70583a02b4fa8c514bf3b555b902f476f4a60ae0effc7bedd30cc1", - "f2b7e2468033402f74aef6ce5275d48f57b979a507338b4bff914e13e242c9f388ec81f4797565d0ac98991f94b099f9", - "3b7101c1196c03a3c200471ede819904361b7108b033f739a82e2bcdafa2dc5a1a81f3bca8c2b9e95bdb45c4293b5811", - "2ab209c59b93b79f83e3fdd7fcfa451e53e2f65f789e8df979ae3496203f089c0735c1f00529ec0a701eb489ba593dbd", - "55208a72c9eaf31f874e6d3940fad5bf3adb00e04f32cf37cdaaca4fac2d13f313efe8fa29b609196e01c9f698da43ee", - "42e53eebdd1811b6b80350bd6e0886fcecefd86d8660798de820effb9fb1a1c88fa7aa582dcb04aee86499223c8a35b2", - "a4b86a1bbca0bd8f76b6b5068e45c2ca026433eefead58a7e0e447d6d523cdaad35096f81f2a2e1078bc3e47995226d7" + "a1aef2cfb4f6d651308746771ade501620c4207fe0650b66ed151f9bd9973aa29fdf72fe434a8419d1d085d876f91778", + "5ec0e90a0e84c76e8673c3b54b9d8aceb7b063ed47d992afaaf57ca886f5ed76bcc47cb1cc46c5cb8f899bfe86fb20e8", + "6305b30a32c18764853f6dd9f44b6f7e1bc4d52814e903440ba72e47247b1880141fc74e5d32b2c40c5166f6d1ecd13b", + "9eb195b8c845d89dcef48a551771fba5eb8a4312b267884c70730584050ceec9492840fa19ca17e326abd966b10e3094", + "07fc7df95f81598ed0f804db1bea880ee1b4929daa589db7bff1b217b6f67e2fea9c05b5ebe75e501199bc53eb199562", + "0b856a5ea44fbe3ae3d791bf44bd54fbb80d7634d98182dbcfaf6574b2b0ade84a32c0d0c3fc1ef7427010e9ed83af32", + "0e562fcf4b8f0e20079bbf43aab6db14c5d6d00dd52ef4df765a82d7933b74ae4e37d7e802ef082de69e34616ad2462a", + "09afb7acca269f88cdd4a543e5e1cc6534e703cd217fef720b984cd86eab34ff39ff724f222a8a252da50903c1249d37", + "76498b33f24d0089812e1a81f1c87ba3a2731f877dc649dba34fc1055e8e51f1f20103aab31550cddf81375698c9e001", + "af9be8ef783fca77f69d713a911a788f9e4fcdde3d8c07773885cd22fa15fb8e45ac0cec9f3721e027b29b811f7d6ee1", + "75f25e3ebed20967cad0c11a291c0d065d3ca9411810f2eb91692fa0731c3934e8817ab3a45e891f234b22a14a06aea0", + "9b68627bdf61f0e54e44760c27844a33d45b62fcad35043c36328e530f09e722510db68b8944e8ae5db514c8c0aba972", + "540b35786ab7998f5b723e26bf06daff19eaa41eaf9f1c3867beaa40874dfba4730298a881d67841f74eb9c6d3982bbc", + "3ce5b43e3b431fd13d722b125d901cbc33049a6baadaedeb97825d1bb605b9e31c0fff7efb25038a0b9a04e9c1a8578d" ] } ], @@ -822,93 +992,74 @@ } ], "round3": { - "transcript_hash": "c14900732438c02af052e6e5d4f25b445f45576ae4dd014a4e43e3ca9218fc04bf3d29d54be73ae00799c46d02cf06736819d96853373b7d04b51eb614e58666", + "transcript_hash": "4167610d1933dcbb51a5f6334ec32cfb06b469f11c6d908f3a6ac544e1e01261060abad37ae56c51ed3976a3a3f185911b76add214fe4c8141e8fc854e71d91d", "signatures": [ { "signer_id": 1, - "signature": "20507609bcba75a2edc6f703c039bb86daa46067e01f417790161947c91d9c4169b387cfb5ee3eb9ae3817acc874aa5589bdbbfb519293079549e4c6b65c8901" + "signature": "2657cdfef4f1be0b061ada24b70ac44a1b434b3843c1f5c03347b181c3e4ed498f4670755693172e87639432e465515daba05279b2522a65c6ead02da33a1d0b" }, { "signer_id": 2, - "signature": "3e2040f4598801b812caea61fccdd9c25d0e6f70f67b8ebfe8ad406c5b340a58deb18d2fbb8c4daa56b8059c0f3fd73b1a9c1f8bb38f4598365607d5b8a9eb05" + "signature": "f4b02380032c6f5508d5391409842368a617601cc9ada51a81b5c3755ba9392fa50e5f5129826acd7959739b4edb501cc2538cd8100d7f8d5cdedd84f59fdd0e" }, { "signer_id": 3, - "signature": "f6bbf68e15ec3de8b98164c0cf8246268c71225e56f94cd4d7da38bc643da5300b65176edcd1f8d244eec257e7c82d50e72ca2d5cf0a0db032071c406f4c5307" + "signature": "a0893f5ae5fa9311a38810bda18d0ea452c100d878b5617971338be17946141e1fda7bad943cfd83c68ad750926cf5ebd1b7202a1533a1f8957b3a0bce1eeb03" }, { "signer_id": 4, - "signature": "1420046030e269db6a9d96355a01fd4cad759ac8fd69e865359284cfbadf63622d95d099b6b7d0593d31b75ffd9cfe0669a3b9dfd4db8927da98be9570ee7b04" + "signature": "caef859f77923a1a155786076571edb80e48dfeeceecd49da6c51a10d1d7fe63795b6aa6b1af41639b9c658345170c6726b7144488e495a524a5e3b1ea6d6606" }, { "signer_id": 5, - "signature": "6e473eeff77b8795c079a4120cf8a3c6e10963ebf691981e39af248acad12b504ddabb4b0799feb8266744fdcc41994de47c6e0d6a8fdcd72e834870bec6f40f" + "signature": "4ecc0aa68a94a9f8b0dc30983f1557d4da3b448ddc496f7df8745bb4968831351da7d2528e02245f1f2bb00ff56ecc1460ad53541210dfb8219f92b86385ba09" }, { "signer_id": 6, - "signature": "509e935d7bb468f058ccc129c28a3ceec877336e29fc0c0a76bcbe972a3b5932669cc26afcf4534b71a0b98d61c78d3f92baed032deab8738fac9a31f52ebc0f" + "signature": "b47a623ae31ecf78aece7dacf91a15f402cadb6089d75d20c1c2d0cfcf8dc44d089cad21bd51b270d76bf6c0c53864e30671860ab502ece8ce2c4b73fc77c606" }, { "signer_id": 7, - "signature": "aae674d78f9c3aab08acb6d3723dbec41f0372fd6f1aa5e90f2b206ebec9286a02cb44913a591487355cd8d8688cf4eb2d2cba2acc4f2803fa7eb91655c5c100" + "signature": "a4f7d02ba7bc54df0071d36b2282d31e76c78892843ca6c8051a31dd30514e4f081ecde65fe0453403a21c05c1fe48ccb70ab689263b0923e452f4e605efdd00" }, { "signer_id": 8, - "signature": "8e4c992536cb160207b70bfff422c3bc0d16cf197904d936f0a591094c9b7c26ac0ce4be44a261e7a8836129c35341f0017126f0298711f2d2ab8de35f7b200b" + "signature": "148a67b1b15769dd58d17aa6a8194d0d15743c1482ef550ce1dffa82b56d0a798a56932ef7ca940cb58e7f902056aae330b54618e15f29f3fcbd18f4307b6405" }, { "signer_id": 9, - "signature": "b8cb214eb8629c69cae877af5ad9da4ddde4f0671049506588c547ad982574110ce9e9d82abedcac6748e40d8235c586095c1b654ee81588c4cb630e8b01ce0a" + "signature": "2ec829cde8bd12bf409b775bc8d0d5151c5aee8f1b45e547257c8d4a60f43003aaf848ca27558c73df981889e67d6edaf5bcd28b68d3ee8270bf6fd9f21ee404" }, { "signer_id": 10, - "signature": "cccf2b9b962b3484d7f1b8f6e016c379fbd6993d9fbfe21f89a465b9f42bf53831a9a44af4d52694524b0f34823c774dd0f6ed3f4b2835228771d0421480b204" + "signature": "c051cd58300669424801c866cb8684281f04364d61f27ab70e935840cbddd337f3ea86de05a3eb859982687463e120b0c226eb16af7af5b3449008351fb7f405" }, { "signer_id": 11, - "signature": "cadcfea4761aec772a7d5f2a2725a8eea951c817d16872fb661d1faf0ee3021540d7dee39212ee2462cf4017e1bfef49e81175cf4f7b28caa7be896969287706" + "signature": "9e6f0275cf906065465836d9b13964e3d494052c4daccf79d8c4b913e7fcea0c86ad1de5bc215d66ec58f530cdfeb1ad96835224c87c71b6025b74c5e0621103" }, { "signer_id": 12, - "signature": "8a19f2bf08a05474568824bc645d23c91ff709e98c33049554f2da8c9d5af410e04eb3b0c69d97f7e9a5d0064bad8b4d9b0e3681fe13891e28fe25a16e5fa208" + "signature": "5066c8103e9d81f3c6ef1dc432ff54614e62f8b6481d009a71d9c258c993554b24f72ba014c013ff1c32b2924c975026103591d6e115d1fbd037dc328ab48d09" }, { "signer_id": 13, - "signature": "0edd74733c1833a5bc92db1d568f31ebfe346857a2c30fa033ddc33f49f50102dbe81c5d8a699b84c85c8e1d32f66d3f64fae329790e5f212e2c57f88ce72d03" + "signature": "ae4f59a4a83401de655c4d7e8c0c6203bac506b9af5d83159d4fb2fbe66cd45bb038507db9b450bb3944c8bdf6fc2965717c7f09a8d2054c116b693d347b6307" }, { "signer_id": 14, - "signature": "76607d05dc9a385aff4cb971b4996c873595a0821fc6820c760446bc36f03e62d4c7bb7075e858f1d0edc5a91026744dec36cadb2f9ca3c7fe972667d6649e06" + "signature": "6a5ef53dc46b851cd11bba116fc122cde6c09887c2dccc12c450a9b7bc3f03051e775fcc981ecea699be58cfbc06b8eabbe2637de7a4c995c9672d20a23a670a" } ] }, - "group_public_key": "5056c3b4570be4c8afa7301347edea1de395810df72afccf576cc076a46d6a07", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "ddc8eb535927d58c34042562531a2054c57719eac93a2989223b3fe8eb19e53b4b4d02facef7d07e46f3dbdee9c07c89", - "f704d9599a28a9722120fe0ca6d1fb1c6edb109cbdcbaf0aa6f810b7a5d9faa5a71ca23e0010cdedcdade61b1809b41d", - "e24c11877cc963414869c143838245a37705bc347cc6bab8466a4f30abf73bea3f65d7e3bb2d62a3690101b11a2703f4", - "97db00ce802977499fd132aa6ab74c7c853f6fdb6d414b7d53c296a874e3850418393cde8db4c2db2f45456ad0e31726", - "11d6a1354f7fecdbb14d3cdacadcd33d42d26bc7511d7b0116c546300f2eef33f91b4db951ce74cbc8d420c775bc043c", - "ee14560b391bb002dc8d97b30b33dc5d2d9526c38de0cb8abdfb09a8fdced4861009a6d83c6ee5e6822d036376d44d5c", - "7d4ab54ab8085a92e577acaabc310f57c2e205379874e8c28f8728e85cc0a1b955ae2d088788319524a8912393c1b857", - "46a49e24e1e9ac4ebdc6220be14ea1efbfcf02cfca1346ae5f512256c371c112bb775be994ac2a0e6be9bcc5a1bcfe1d", - "2484d66cc4694fb4421b7a7ccf0552f2329e5f3763ea0a0e26bbade96382f77048635128f17a5574f14274a2cf267545", - "b4d6c7af725fea2292e9595ec832c18126a6df504281a06ff4a4bde62c27529ad065c698ec50a0bfa85640e506a8bbc3", - "534748e1eba318799b43965f829df921dc09862bc3287575477a149c1fc3452f249b56027cfec602c7936a616111c196", - "d2316221a9e05b3bcc3691e04f008812f46fdec19676564c8fe36b93417ebe9f1baff5200e8def8e1a8ab23287a8dfdc", - "d752d6c01831e275e72b2036899579a76d887846bc5c7872a8c6ee6c1f51253e21fa427fdc23404432f72f69279c378e", - "976a512822211036ce9b16e708b83f2ac83936395170f552c7dfa18c0da8a52eac25ab43b0e1d8b25541947062d683d9" - ], - "recovered_secret_share": "7fd318c7a71d543ed87e2b8df70d434f3bd4406a0e754069d4317327a02d430a", - "recovered_verification_share": "9a8493d78c60dc0caaa2aa294777d9f4db157e4b002de4f1d5e5fdba7750b24b" - } + "group_public_key": "5056c3b4570be4c8afa7301347edea1de395810df72afccf576cc076a46d6a07" }, { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65", + "extension": "05f6d6bd225542a690b3caf0713d87916d42a806fc5e5be482fdd52de4e54b21edac8c4355ac74eeb459c67c89bc48747476125fbbf5c4666a2966957f20eba8", "config": { "static_secret_keys": [ "8232337dffa583f214e2ead7f19c37b482f77171194ed6984a715353e086d20e", @@ -921,6 +1072,11 @@ "e4dad4d96d6e507ac59aa539a42c8185618b51941f4497af246cfaa9d1912b18" ] }, + "payloads": [ + "277e56e632fef7ae9163eb2b7d8bdc9efa726505193c74700472f2a08ace9096a61ad07eb56c93acc06dff0993907332d0df6ab9390d019b5f851b87311fc7c8", + "c027a2f9456e5581a38a347d7895ec7a4ae327850a6f5841e1b1a5ff4c0e06c1748d3d19b3c21b4df8e6769b41dd0056753dc75ccfd56209be9aef8b28c3977f", + "fd54c23efa8cc274509a715a3215aa1dafb4742b9c4738525034ce424631034049218da3b91a8575984b47b9b209277a5fef975d7fae640cf8f8227d0520fb51" + ], "round1": [ { "participant_id": 1, @@ -929,11 +1085,19 @@ "fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33a", "08fcd4093599c2dd7def1bfe843d8fd6c9041caa33c00a2bad11fd4bc1f16134" ], - "pop": "6601dd522cbc9be894c4a2d6388b38f4b98f0325f884d3aae21c9a6bd76ca41b794c0a64696b07a90891d0172d10e78f118ca441f33cfcd293986dc491634e07", + "pop": "daa5517fe46e89c7b819d17695ac04605638b7da25e3e3aec800bfe2d2034a51bcee07a6fd147827a66f32985c6e3f1029ea1c588c7f1bbf7dde540525c38609", + "pop_intermediate": { + "message": "be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33a08fcd4093599c2dd7def1bfe843d8fd6c9041caa33c00a2bad11fd4bc1f16134a6841269b357caa2d0655664961704b06875255a7b6ca1af8004560314384447", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345bf750e2889d1685f7adb1b565084a7825d1c89e64c058c12f6ec97b144ecc30dbe553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33a08fcd4093599c2dd7def1bfe843d8fd6c9041caa33c00a2bad11fd4bc1f16134a6841269b357caa2d0655664961704b06875255a7b6ca1af8004560314384447", + "nonce": "af3560b3949d7104ced95f9da35edbbb524bbc81957c966303b5c7c5b490450e", + "nonce_commitment": "daa5517fe46e89c7b819d17695ac04605638b7da25e3e3aec800bfe2d2034a51", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837daa5517fe46e89c7b819d17695ac04605638b7da25e3e3aec800bfe2d2034a51fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33abe553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65fa98c4b2508b75d64f2420d2569cb878d9fde3124fa7b3341004f2f2e424c33a08fcd4093599c2dd7def1bfe843d8fd6c9041caa33c00a2bad11fd4bc1f16134a6841269b357caa2d0655664961704b06875255a7b6ca1af8004560314384447", + "challenge": "2b11aa89d39dd8b95fd0a7c047b364f169f653abffdc138f426db45725a52e07" + }, "encrypted_shares": [ - "9123460b09df36e1e8b23c5ab8716568874481343bb647109941484c4a0b77243e9057ea3e6e39b394f3e97abd09e407", - "0448d0e38af67f341b5a2062573786edda7254bdf6f24d23c9618897e75b642763f7a2cf4e80a6a6cd9a6d9acacf6190", - "de7bbe0110fdf1b3a4e9590a53ec4a35edbf9495a905639afdacaa1f17232c71f2f0f72f768ff02fc4050772eea4ff2a" + "375c36ca6110e66a7c5b41fb8ad7aa8469d6ca29ca309704571d4960db9d03500b72b322fabdb269cc4ef8b1f55698e11c34e9c28296c1e72ddc68f74fef3ebe6ff718a29839dac7c5986d43e15000733acddecec4064eb27a5647fa88ba806d9300ba68e9b9dd191144f0848a5851c6", + "04f0663c1ee8fbddd47694709ea870080789b7044f75d7a679b656a40ad93fdaf4a30f7ab4961c3a3c494e1028bc2273c89b77e312d881f43fb37ffdab866ad7839381a2c36beff3c562f64bf6aa39f6cd0a657a5935737c5743c8a5fbadb15f92b3bd84481f2d9f1e1e4c6b8a9970e9", + "340ff8092ea5da9993a4f974c405ba690a10c92f64707e68c8e210bf64b775494f181e956f89d8d099f26f7160cb7776f5d6795fcfdaa751edbc4ab94c45097b4462b7b54876d54004b745a90318d97fd362dbb88d225420108556d1c574d07d69ffba1f19cce57e087e6878a7735d41" ] }, { @@ -943,11 +1107,19 @@ "bc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055", "f4e3e84108289d680c8e1ad24cd6a70fab1afe233b6b3ad839ee87742baceb39" ], - "pop": "3ea2a28a09f51decd9420f1eb388da9c512d3fd45a2fbc66873e6dbfbd2dbc51b31a77547c7747798d154196fa7c03ab50bbf2d0bb7aa85f4282aa4723bb2c08", + "pop": "f6c8246e83d3dd9cfa13834b734593e410bfd61f2ad91de7bedb3f47e0b7327ab78fb6f89e977b813b38d916fcc221d4e810c91c41cdbb1c97639008a64e940d", + "pop_intermediate": { + "message": "be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65bc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055f4e3e84108289d680c8e1ad24cd6a70fab1afe233b6b3ad839ee87742baceb39a0c9a49c4882ec32590160681791b157a39ff7b7401fef9268c8efb5e48be43f", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345c82c13e0137618c882da777f3ffb8c5a6cd9ae822d32d6e3d94dad43fa2d6700be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65bc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055f4e3e84108289d680c8e1ad24cd6a70fab1afe233b6b3ad839ee87742baceb39a0c9a49c4882ec32590160681791b157a39ff7b7401fef9268c8efb5e48be43f", + "nonce": "5f4a2888a749ebcb264de0edfec3b6a8db69da99effc640cdcac6d5b11e23f04", + "nonce_commitment": "f6c8246e83d3dd9cfa13834b734593e410bfd61f2ad91de7bedb3f47e0b7327a", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837f6c8246e83d3dd9cfa13834b734593e410bfd61f2ad91de7bedb3f47e0b7327abc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65bc6af038fb6950d0503bfd9f5dea21671dc0f2b27b55c5be99229c601239d055f4e3e84108289d680c8e1ad24cd6a70fab1afe233b6b3ad839ee87742baceb39a0c9a49c4882ec32590160681791b157a39ff7b7401fef9268c8efb5e48be43f", + "challenge": "469e194f7bb23f1c7ec41eef5311ad941c8eaaf1caecdc07935ba77c44265703" + }, "encrypted_shares": [ - "5f4432d0349118d57dd893d08094fe9732574887ae1f6ad0c723c5ec95a5a25973b7e974f221667f86547833f62abfe4", - "53d0f9d7d68b5f1f32af8dda8c1fb652f01486586a5924e9d7b5eb42c96faa6fe9454edc4f5d36c67df09a6600d86a49", - "21eb55105356a4a56d38ffc7fc54e33d9b6ba13727c34eb04118d4eb9f3c5413be1932c62270cc55a83148f469120e86" + "84530fce8235de9bced0f7596f0932a5af252669eb6fdcaf45353dd4399c1abab1897dbf8e32d1d19a8aa9e1633b15e0dd1551273d9580151bd603227768793ff39abca6624a9d52500a4080786d45847efeb846706d64f0c597c6f0032001e701f82124b824f3a0fc00816ac7d5a32d", + "8ac6fb8f418254b3f4a8231eba42edbad9b686f473884e577c3687c02c333763b7578096c0c7f1dcc6ee7fa676f34360337a462fe5c83dcef8dc75869b36f69cd6a2d63363f45ea17f766dd3b796c895750ad7088f7c659e713d45bfb73c21f5b031802a8c760ab13623692ebe93d2a6", + "ad69f0252fe6d7ec8ecbc869c4e661014e7c4d5618571e4b7412cd2d6935c6e7b22b1831394955b5ba28837e01a99eeb371832a2ab545ddc2e907ccd5d80cf2fbb0aa1245f89f55fef8ba1257f0d96a71bcfa4c52bb554c0a8b33b54721b8fe4e7349673dc20507b958972f64b62b8db" ] }, { @@ -957,11 +1129,19 @@ "a4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839", "e2244a3f3ea70ecd697189daff4792d5af5e4eff132c1bb6101b04a5adc6c743" ], - "pop": "26cf2b0b2d5508a555002148ff03ae093f4ea1b8d8a79123c652fa96bdff6a27eb3b248c1338b3599077f16796b61444a4157ca43f64380427877456cb3ebb00", + "pop": "269c7e4ee3b8773088c3b552b307dcc2d5de36ca00d67bba67dfc83db84edc7d61c04b8ea340ad361299699062e5e9a7025848ac991f0900e26604d6205b8602", + "pop_intermediate": { + "message": "be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65a4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839e2244a3f3ea70ecd697189daff4792d5af5e4eff132c1bb6101b04a5adc6c7432293b1d8ed98f109998a243aa949a55605d0ca0e50897e059b658e0c63dfda25", + "nonce_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4e4f4e4345e8bdba8382c0f79e769383cb09310c00fd36cfb29f7756fa76bd233bdb39a50ebe553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65a4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839e2244a3f3ea70ecd697189daff4792d5af5e4eff132c1bb6101b04a5adc6c7432293b1d8ed98f109998a243aa949a55605d0ca0e50897e059b658e0c63dfda25", + "nonce": "64ba762c9135706f20b1671595316754b01e11a4ca97f5e9108ca85e944f3509", + "nonce_commitment": "269c7e4ee3b8773088c3b552b307dcc2d5de36ca00d67bba67dfc83db84edc7d", + "challenge_input": "434f434b5441494c2d444b472d52697374726574746f3235352d5348413531322d4837269c7e4ee3b8773088c3b552b307dcc2d5de36ca00d67bba67dfc83db84edc7da4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839be553a2da73e8832be8e3c72689a21bd69bdefbd512c52adc920e13527318da354e817afb721aaa31d079e9579f659343454066480aa9b25a64448a8922d0d65a4d8f448d74e78344d5db2324e0e8e09ee1706110f61cd057977b0e220008839e2244a3f3ea70ecd697189daff4792d5af5e4eff132c1bb6101b04a5adc6c7432293b1d8ed98f109998a243aa949a55605d0ca0e50897e059b658e0c63dfda25", + "challenge": "abbf2db7eab9f7612473ee7423597c5c2b5b2b75dd1e1bac74b93827c7297703" + }, "encrypted_shares": [ - "7c72d167a3a1ae7a7d1afb3970a16e7433af7a9a9d17e7ba1f1dae334889b989dcb9fae5dd17d70952953d03858f1b98", - "578faa68d9bc3e495ec5e82133d501bdd8464401088700cd557224dfc720cea39813156cec1780c5b03b148cd7e9a378", - "e2e07385816f9f092d9c2e35009dc139f96f560f3b278cdc3eaaab6c2455c2b51e11581e5b927dff762ebf60d9080465" + "a8702db938a0e1e89ea25f0e1a6e343504485ac8e7d57e5389a1ec0d24e2e4617a35eaa1e0ae847ae7336538ebb46f03c5218041aa1b0ac0146ea71513d24fe562e3cc1cef44278f3a164f59f817d9d88b805fd6d310e34abff0d447fc47b4bef1cfc67b2c89d52e86c324e711afe2cd", + "422bbfb63733f16ffe7d59f9617a75b4da7ea2ed9bdc70af90913f10e8f34bb0bed42b5857d4afa01c82aabfe80b81755d1ce43d9f1ab00feb72b7d441de9aac3968f832912662d646e040f26fc1d8e70adf3c9e373c301e2b346754396fb0a0a74e776ae03db2bbe2802bf1372d1c71", + "c354f44a49c76cc5cf0a73b9000a35867c758c3e03977915345de037e40b57bb0d1209e709e0ec2289ccac13b4cb27d3d1c77d93835f44d3e64204d4a9e86cf1b6c368ec12c85f9289a01d6ea881329887c94283e70e660785668260ddd903183998532278880429cf3e283469f8f8b6" ] } ], @@ -983,19 +1163,19 @@ } ], "round3": { - "transcript_hash": "688801fc10825c8c317a69bf7720f5a1e9deda663658dcd8d49c75fae3c8ff24d0e8cbbee95e3b9d85a48c512863a3d2f484c572ff2229c1e9bb70ab9aea6609", + "transcript_hash": "e7fe06428beb04aed0ccb549f76a15e537b046d54f13db3534bb5fa30e661828a45ef0b7386e137a528e62ec91912ae6649b1e68b51d5a4efb6b1b5697103ae3", "signatures": [ { "signer_id": 1, - "signature": "0a1ffc6b6f07a088f6e4804035cd3e7006272d78eadc5fb41a3eb096592a664848d54e8e8de69785007d07bf5f11de5142ee0039dcd2f5bbc106cce65e8c3705" + "signature": "0ac91455ad1a5304d7ad22a33965cb257653fc9f0a28ea05f8bf59125615742b35a03df00ba9650fef57b0dea8946b16acac8c22b29ce7b20e6d7b5b1293e609" }, { "signer_id": 2, - "signature": "44bdaed33768e912ccbbdab7a1bbf4addb2321f44adf4244cde6f62939ce9e09577f2d139e53d6f52d14a0d71dea27279f26870a4f7d034739f1a9ed6ef4e703" + "signature": "e6dd52ce7073754b0795046b7b5d459d16d06bb21e57204f43e9bc7a2f77d3019471c823689d50d5a868cd7d9015ffcc5e146499b0289b88b097761b61137500" }, { "signer_id": 3, - "signature": "f626f932b65539603113d28d7a26c35b2d1739945f0cc976abefb40df90ad16fc10f1a0e0e36c125bf4a9cbd4d9dcfa1a699f80836a80a27ec1412a64e66a707" + "signature": "0c0a59d841d48143497060c2c08820d07cbf5c9f06b0b71276a3162a9acc38053a747c3769ebaeae8278f635bf9e5b4ada719ec9039de5db158d8524f38f7105" } ] }, @@ -1003,9 +1183,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "9123460b09df36e1e8b23c5ab8716568874481343bb647109941484c4a0b77243e9057ea3e6e39b394f3e97abd09e407", - "5f4432d0349118d57dd893d08094fe9732574887ae1f6ad0c723c5ec95a5a25973b7e974f221667f86547833f62abfe4", - "7c72d167a3a1ae7a7d1afb3970a16e7433af7a9a9d17e7ba1f1dae334889b989dcb9fae5dd17d70952953d03858f1b98" + "375c36ca6110e66a7c5b41fb8ad7aa8469d6ca29ca309704571d4960db9d03500b72b322fabdb269cc4ef8b1f55698e11c34e9c28296c1e72ddc68f74fef3ebe6ff718a29839dac7c5986d43e15000733acddecec4064eb27a5647fa88ba806d9300ba68e9b9dd191144f0848a5851c6", + "84530fce8235de9bced0f7596f0932a5af252669eb6fdcaf45353dd4399c1abab1897dbf8e32d1d19a8aa9e1633b15e0dd1551273d9580151bd603227768793ff39abca6624a9d52500a4080786d45847efeb846706d64f0c597c6f0032001e701f82124b824f3a0fc00816ac7d5a32d", + "a8702db938a0e1e89ea25f0e1a6e343504485ac8e7d57e5389a1ec0d24e2e4617a35eaa1e0ae847ae7336538ebb46f03c5218041aa1b0ac0146ea71513d24fe562e3cc1cef44278f3a164f59f817d9d88b805fd6d310e34abff0d447fc47b4bef1cfc67b2c89d52e86c324e711afe2cd" ], "recovered_secret_share": "09b8de601c1d28161f3b18410245595d791de5e54372f19628760125fa263304", "recovered_verification_share": "5e130c137d31a445d1b8df391b41db0dbf6a9e13649abb40d68d3fa955eca22d" diff --git a/frost-secp256k1-tr/src/keys/cocktail_dkg.rs b/frost-secp256k1-tr/src/keys/cocktail_dkg.rs index 665c9601f..384977906 100644 --- a/frost-secp256k1-tr/src/keys/cocktail_dkg.rs +++ b/frost-secp256k1-tr/src/keys/cocktail_dkg.rs @@ -63,14 +63,13 @@ pub fn part1( /// Performs Round 2 of the COCKTAIL-DKG protocol. #[allow(clippy::type_complexity)] -pub fn part2( +pub fn part2( secret_package: round1::SecretPackage, round1_packages: &BTreeMap, static_signing_key: &SigningKey, participants: &BTreeMap, context: &[u8], extension: &[u8], - rng: RNG, ) -> Result< ( round2::SecretPackage, @@ -86,7 +85,6 @@ pub fn part2( participants, context, extension, - rng, ) } diff --git a/frost-secp256k1-tr/src/lib.rs b/frost-secp256k1-tr/src/lib.rs index 075d31576..45f463b55 100644 --- a/frost-secp256k1-tr/src/lib.rs +++ b/frost-secp256k1-tr/src/lib.rs @@ -508,8 +508,23 @@ impl RandomizedCiphersuite for Secp256K1Sha256TR { #[cfg(feature = "cocktail-dkg")] #[allow(deprecated)] impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Secp256K1Sha256TR { - fn HPOP(data: &[u8]) -> Scalar { - hash_to_scalar(&[CONTEXT_STRING.as_bytes(), b"pop"], data) + const COCKTAIL_ID: &'static str = "COCKTAIL(secp256k1, SHA-256)"; + + const H6_OUTPUT_SIZE: usize = 32; + + fn HNONCE(secret_key: &[u8], message: &[u8]) -> Scalar { + let mut hasher = tagged_hash("COCKTAIL-DKG/NONCE"); + hasher.update(secret_key); + hasher.update(message); + hasher_to_scalar(hasher) + } + + fn H7(commitment: &[u8], public_key: &[u8], message: &[u8]) -> Scalar { + let mut hasher = tagged_hash("COCKTAIL-DKG/H7"); + hasher.update(commitment); + hasher.update(public_key); + hasher.update(message); + hasher_to_scalar(hasher) } fn H6( @@ -518,22 +533,22 @@ impl frost_core::keys::cocktail_dkg::CocktailCiphersuite for Secp256K1Sha256TR { ephemeral_pub: &[u8], sender_pub: &[u8], recipient_pub: &[u8], - context: &[u8], + extra: &[u8], ) -> alloc::vec::Vec { + // BIP-340 style tagged hash; note that unlike the default H6 formula, + // `extra` is not length-prefixed here (see the COCKTAIL-DKG + // specification for why this is safe for the inputs used by the + // protocol). let mut hasher = tagged_hash("COCKTAIL-DKG/H6"); hasher.update(shared_secret_ephem); hasher.update(shared_secret_static); hasher.update(ephemeral_pub); hasher.update(sender_pub); hasher.update(recipient_pub); - hasher.update(context); + hasher.update(extra); hasher.finalize().to_vec() } - fn HKDF(data: &[u8]) -> alloc::vec::Vec { - hash_to_array(&[data]).to_vec() - } - fn aead_encrypt(key: &[u8; 32], nonce: &[u8; 24], plaintext: &[u8]) -> alloc::vec::Vec { let key = Key::::from_slice(key); let cipher = Xaes256Gcm::new(key); diff --git a/frost-secp256k1-tr/tests/cocktail_dkg_tests.rs b/frost-secp256k1-tr/tests/cocktail_dkg_tests.rs index cadb1efaf..4f58a1291 100644 --- a/frost-secp256k1-tr/tests/cocktail_dkg_tests.rs +++ b/frost-secp256k1-tr/tests/cocktail_dkg_tests.rs @@ -18,7 +18,5 @@ fn check_cocktail_dkg_test_vectors() { frost_core::tests::cocktail_dkg::check_cocktail_dkg_test_vectors::( json_str, |data| Sha256::digest(data).to_vec(), - true, // encrypted shares match (XAES-256-GCM) - true, // recovery is tested ); } diff --git a/frost-secp256k1-tr/tests/helpers/cocktail-dkg-secp256k1-sha256.json b/frost-secp256k1-tr/tests/helpers/cocktail-dkg-secp256k1-sha256.json index 683131c72..51a7f6a68 100644 --- a/frost-secp256k1-tr/tests/helpers/cocktail-dkg-secp256k1-sha256.json +++ b/frost-secp256k1-tr/tests/helpers/cocktail-dkg-secp256k1-sha256.json @@ -13,7 +13,9 @@ { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd8", + "extension": "", "config": { "static_secret_keys": [ "b6d8938c60ba5cfbf0ba97ae1c3f99c7a58485344ed7d6f387dc35bc76cacea1", @@ -34,11 +36,19 @@ "0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e", "0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f1" ], - "pop": "03adb7b47336ac7c66f065e5963be8e2403e52134264fef03a9b654700df0ac457e4f93be87ee7a5efa216ecb73926a462caf865dec15ee7657518ea960d16d851", + "pop": "029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d9b3911f8be90e78a1307608a36b040b7a5e24099dca5c5675d29655e62e041a4", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98ef05ddfb1f4f0498f7723bcca609138ff67ca2d88eb0f07ab9f3378b0007aeb40ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "nonce": "9f362b57e2b37db15b74ffe5cbc41f2054add10b6e30edf1798a0d40b33b6cef", + "nonce_commitment": "029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "challenge": "2da8c6a4317ce5e00075124caa150b329f26803973c2c30c1ffbcd0bda222bb9" + }, "encrypted_shares": [ - "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", - "50162b60cefb0fa778966de5dcfa79b6046ad855a709fdc61ef253631575e2c3ce9048c42fe7c84583ff19d37ca8a775", - "be016f51b514b6bd413ab8053940454e068d69271cb5092dc0a229f544a9d134f72413b8ade30f4b21d10ca1f5485dd2" + "944a59446f203aee0c0ebe4107cc3c605ebbf3470364ecd74b5c7b001de178849450035e424551e4abbe4edccdfe0987", + "9d5c20d5c3b43845febd8fe1c235fc870dc9a687d8c8f146985f8510c58d6e295db11449509d8dc50fbe2b6f0e190351", + "a56fdcf433203d0ed1979df54aba263b82660f5c8de3302a62f2185d14bae7154e8369065bb2325a9d0ed98597ab5521" ] }, { @@ -48,11 +58,19 @@ "02672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c", "020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f" ], - "pop": "03b55ded99a60fe407ee51b4c340a586110892e15d7f7b13da965fd826b4525653c1265f7595bd061e024830051e42b0816ba3cdbf7bb49947106930c788aba7cb", + "pop": "036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b4475902387e2e6498997315ff4e981a7720b0796205ada27a4c9bc3afd49a4b97e0ea37e2", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a980ecfbdcc5ca424206a03459eec46420d68ffa9c4ca54bc18feac4dd4cc7940be0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "nonce": "9339e805c597b90f07a57e0449b9885b3c474735018f7624a5a176faa19e8833", + "nonce_commitment": "036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b447590238", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b44759023802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "challenge": "c9405f0a5c26a72b564a492b4eb90932f64151761255c09a11866ac04ae8d63c" + }, "encrypted_shares": [ - "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", - "a45a839733537744b0cbdeeae90f14f659458425eb603ae69bd867e6098367d1a9982b249cb30daebe150570c5e7fa4d", - "f9f29daaa5cbb0e2917e71b8bfe5f2baa847307b5d70b319d5f7731bbb7075adc4ad244264b85fa4d0bf9299ae11a529" + "68f343954dfa1298fab846f3b7859861cf65242b606429a8dc3bec4253f29590b104047132854cfaa9cd73ba504d41d6", + "3ec47bc60f2132ad43800c29684d64e2ed0ba6ee9f2fb445787e3e8b176c6195276e898aecac9b57640159c9c2b46d07", + "d6c737b54baf32175a85ce8c8f30ff7219034d056367f487fe31ddf058820399851229a587b84c4ac682bfe9078aa318" ] }, { @@ -62,11 +80,19 @@ "02fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b4", "02dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d0501" ], - "pop": "025ab99ca736f8ce1203687a626364744c3ccfeda9b63e7313a8b969ac62aede0bc0943c103c540da236ba575fb88921221ebc85e1ed0f432408f8ad16896dd878", + "pop": "03d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b2ec444a7a43e1a3f620f863b39fba65d4b5cfa706dd6ad1435304608bec2ef851", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a986491c1b93019c341d13f9a9d118e473f515de60022b72134a63fffe19cc4f03b0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "nonce": "8d6347e328d4fea3d0697999d7ccf0069cd0d945655f04600a6e9575f8a056c6", + "nonce_commitment": "03d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b2", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b202fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b40ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "challenge": "cfab1bfe17c6f6a319725dbde0ce24380cd4d1163ef6c56dbc560408b33d7db3" + }, "encrypted_shares": [ - "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a", - "11173ed71d7ad60daf3720734ad96cad47b58ee1548e65fa4903e0e5a7e94fbeae3a8076064895bc7bdc201df4de5236", - "d5aa7efab9d2d6e32c2039bd01eb893696930bf5c3e6449f9abc82a4482604680ba2373fad594aea7754960b3064e88b" + "dcae93813a7b4aaea0779ba5e63afd8d334dd8642ad612ef6d8721994cf11496257834b4df374cfc383dac3f49cd3a5f", + "e5357c60329c0b7086c81b952a0f20f0e959c27aa300646778b948d0c68337055164cec12de44c2739ee2a5994b9a95c", + "e533f3f84e232099c48a56f4b2f4c6685bf56105cc24741478ab93b86b2d73653aa56853b6d53996e03cda07bdafa7dc" ] } ], @@ -88,19 +114,19 @@ } ], "round3": { - "transcript_hash": "0d785c00ecb6bde350ea1800ca69121c82be87ace2d7b691cb3d4c91566994b2", + "transcript_hash": "df0b530aa49c10a145f6387738b13641e0caee220fed2b6d91930d6c4b72ea7d", "signatures": [ { "signer_id": 1, - "signature": "02bab75a5155f867dfb974424b9993965f8e86929253f3630d7c840a9d381e9b1a1e1b1e11153dac5e3a1ac8ad0f12588e10822068435b26bcbc654bc1ee2b1c4e" + "signature": "03e8acfb85a07d3ffcbb3524a5c643a50de1d7bcc65289c424c4822ffed54d02f742d90e44b124c2f1413706d793dc5ef5c8f9cf4ea7c64f5e32f1bd5ab650b468" }, { "signer_id": 2, - "signature": "025a191fe08f7d0248f8bc69d016ceaa5316430e13b8056e192bd8f80c3017d4bbf658214c1ee2e184add34c07a73ee5f8da3eabe849b320a71e187769a54e1e61" + "signature": "0252b0425c0f0adda58dd59df86d1a0199cc03fdb5db79c2d074a150eb16bb502b129e385105e450927072512f9b3c6e75cf46ea2c24a24547eeafdf80a5e21387" }, { "signer_id": 3, - "signature": "0388ea3c84b7ca9a7a4332227442495a5447d9832819817f48cfcedcbf8f44e672d61df10dd5ba4b979ebc8e38ed7b6baedc1b07703161d3539023cfcc2f80ddea" + "signature": "03c03124836c050f5dfbb2d82ea66c696a0832cf0c2f0081580e968ab8609fed2cabd6aa01577f35c584f074ef34b5b9b0a9ae95ec112e7c46884b2189070f45ad" } ] }, @@ -108,9 +134,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", - "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", - "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a" + "944a59446f203aee0c0ebe4107cc3c605ebbf3470364ecd74b5c7b001de178849450035e424551e4abbe4edccdfe0987", + "68f343954dfa1298fab846f3b7859861cf65242b606429a8dc3bec4253f29590b104047132854cfaa9cd73ba504d41d6", + "dcae93813a7b4aaea0779ba5e63afd8d334dd8642ad612ef6d8721994cf11496257834b4df374cfc383dac3f49cd3a5f" ], "recovered_secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", "recovered_verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11" @@ -119,7 +145,9 @@ { "n": 5, "t": 3, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "context": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af", + "extension": "", "config": { "static_secret_keys": [ "97b9f7468d461d768bfc89ffff0c41efa43d63e915db3b1e9558d0e7d0120b7c", @@ -145,13 +173,21 @@ "03b9bfdd22bf681fd328e82debe7ba260ee2aeedab6fcdf24dde3b1db6e68fa64a", "03ff3e169637a4a257d2dfc1cee6668121f8b9112c1555fa1b5a07bd5c495d00bd" ], - "pop": "030116f65fb2f6c6bcbd7a0e4ea738b6d345e685f19589e1dbc4d7b923915dbb8321cd2cb9379e967a749c4d4fb4c0db8377feaba2a7f10bfbcf484703d070b880", + "pop": "0349b1e58a5c00d7fdd687a93f957a228960e582ad9c491f7ee26f365089611d9b08562e4baf7529500e152dbdb466c4ee1508e78b1986cba9d6e6619f0cdea161", + "pop_intermediate": { + "message": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af028d67064658d922c4c16e052c326162fe25eaa5a5b67c18166285afde6a3736e703b9bfdd22bf681fd328e82debe7ba260ee2aeedab6fcdf24dde3b1db6e68fa64a03ff3e169637a4a257d2dfc1cee6668121f8b9112c1555fa1b5a07bd5c495d00bd0220a9ce41fa715b0ffbdfcd0d24f9d0e47a6c824a133c79c6e5913aecd90bebbe", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a983889a95f02ae922b7c4930a83a718554943adbc73f8ddeeb7a6216bea24163a9810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af028d67064658d922c4c16e052c326162fe25eaa5a5b67c18166285afde6a3736e703b9bfdd22bf681fd328e82debe7ba260ee2aeedab6fcdf24dde3b1db6e68fa64a03ff3e169637a4a257d2dfc1cee6668121f8b9112c1555fa1b5a07bd5c495d00bd0220a9ce41fa715b0ffbdfcd0d24f9d0e47a6c824a133c79c6e5913aecd90bebbe", + "nonce": "d0048a2df8773f03cb07e72fd7bd4b131c9068794cb1716e3feffe8e45ddf738", + "nonce_commitment": "0349b1e58a5c00d7fdd687a93f957a228960e582ad9c491f7ee26f365089611d9b", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd3998640349b1e58a5c00d7fdd687a93f957a228960e582ad9c491f7ee26f365089611d9b028d67064658d922c4c16e052c326162fe25eaa5a5b67c18166285afde6a3736e7810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af028d67064658d922c4c16e052c326162fe25eaa5a5b67c18166285afde6a3736e703b9bfdd22bf681fd328e82debe7ba260ee2aeedab6fcdf24dde3b1db6e68fa64a03ff3e169637a4a257d2dfc1cee6668121f8b9112c1555fa1b5a07bd5c495d00bd0220a9ce41fa715b0ffbdfcd0d24f9d0e47a6c824a133c79c6e5913aecd90bebbe", + "challenge": "2d873956a53fac68b02408e17fc6859ed5d3171f4b7b584a2a667fa8d378e725" + }, "encrypted_shares": [ - "be4888644474f5e3b447a32f12005a27929cdba66460a4ff71c51c4d55937af983d5c4442a7f3ef4519205e40c0abab0", - "cd5b5e013e0f0ab77571b49c9e3881af42a17102bdf12b4cd7e0b6627fa69f7475b9ccabd1b3958417cc2552046f6f87", - "4195663c99ae4fee99fb822654c1a91d8d4aa4524a67ee4f81a493aa6ac5c15fd98631039923304b4684bcdbe688ed71", - "f0ba86ddd4012763980b5c175872e30cddc5863352119693985bdbcb677cc4fb4e134c5d662e8464b984e5d5ae1a5988", - "57d250753752a517c513857f49e374e121150b366232955a905887cd55ee6bfb9a47cfd4007b34344b2df2ce27e54cc4" + "7d1565ab9b6ca3baac4211c0fab99f3f776ae76c8d4bcb270fe89f3215bbea52fc2b1e859efd0fe1d982c3bb8674ca45", + "d3d2c88cb212db0eac52ee1a072746000089c4742208c304cc5b68e71154eab012900488f523bde8ad4ee78e8575ffd3", + "2e92a101042aff43245b13e769e08380186d3a8a20f1827cc401250eb2aebbb152368deee8dfd52d55fb7ba9dda0564d", + "3fd8da04cdf0a1984e741474f165146c96e0cbf12abce601b6e07f6210c4c485ae2d555afa8f4af75d9358f6a386745d", + "f89c759a615dd74b51fb4153936b69a3bb0b638f77fd6b9c569f778a299f85b25daa3e5a5829b700a4ed372362a4722a" ] }, { @@ -162,13 +198,21 @@ "0253b6295998c07f93e5272ad7639ed8172719fbf273f698522a93063c6efc2d64", "02e602a2ae6dce4425bf660c55dcbc3f8e9ffdbad4517299d5d1d1426e5d7ef5e4" ], - "pop": "03be58c97432325fc734ca6e2bbdaf68db27806dccd7f162f8e4f179d278e4c5e368f72756c4519ca14bfe9b1e479f8d2ab0db1256ecb00ed18da0befed3392aec", + "pop": "020cc13f0fd3658fd55ade25873f286217ccc4b57781febf42e6a67b71514490b0c7a47da7e079010d1727b447e60776f2242de8f306ecc44612cf07c173cc75b0", + "pop_intermediate": { + "message": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af02b517e4cc53bd4bcf6e04e79637d44321a9763ef8350a5c2d8e9b7b0dbb1230910253b6295998c07f93e5272ad7639ed8172719fbf273f698522a93063c6efc2d6402e602a2ae6dce4425bf660c55dcbc3f8e9ffdbad4517299d5d1d1426e5d7ef5e403b40ac55e8c628b50a73c7d6dad2648cf344148be9c2eb175daf62780df46178e", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a988861b8d4bfe82855a2c5af27be8ee83386533d4b2680ba55e19b5929341d20bf810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af02b517e4cc53bd4bcf6e04e79637d44321a9763ef8350a5c2d8e9b7b0dbb1230910253b6295998c07f93e5272ad7639ed8172719fbf273f698522a93063c6efc2d6402e602a2ae6dce4425bf660c55dcbc3f8e9ffdbad4517299d5d1d1426e5d7ef5e403b40ac55e8c628b50a73c7d6dad2648cf344148be9c2eb175daf62780df46178e", + "nonce": "139bf9270de256ac0ad24d746ecb85164a06af2d5e5da2cd149cdb03b02e17ca", + "nonce_commitment": "020cc13f0fd3658fd55ade25873f286217ccc4b57781febf42e6a67b71514490b0", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864020cc13f0fd3658fd55ade25873f286217ccc4b57781febf42e6a67b71514490b002b517e4cc53bd4bcf6e04e79637d44321a9763ef8350a5c2d8e9b7b0dbb123091810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af02b517e4cc53bd4bcf6e04e79637d44321a9763ef8350a5c2d8e9b7b0dbb1230910253b6295998c07f93e5272ad7639ed8172719fbf273f698522a93063c6efc2d6402e602a2ae6dce4425bf660c55dcbc3f8e9ffdbad4517299d5d1d1426e5d7ef5e403b40ac55e8c628b50a73c7d6dad2648cf344148be9c2eb175daf62780df46178e", + "challenge": "0a416750b95c5250f3f170544291cc23acc8bfe2da766a7be523414c442a5851" + }, "encrypted_shares": [ - "7c0cd36129905e1f0497e856e8c095c4894e7d3aa5f093ba8dc444ff5e02b37aa02936493e5e932a5fa194dc0444e06e", - "ed7a9c86ef801e9bffcd7caffe9f1dd8c228353dd633fb6ae0634d64d0267fd414cad8012fbc8c0f09a3928a4eed7aff", - "afb31731444bb89347facf940c451f50806c8c2d1cc5f712eba18780374357a93b2ae82aefc1e11af513cfd7d881c01a", - "15616fdc63cbf2d2f49faa90f1a83005853b86daee85eb6c2b3faa2c5a68fe12c3cd0fd2a3379c7df74138399d5fb647", - "e9bd960a0768858b5700cbf73186890bad5834d65f3a909b0a5d84310584a5cf06bc0332a4481e80237417fa2b954895" + "c5e8260213d55d8f07fb4d6adf69e13abde4bf1219e14734a121d32177879c8c6d9b7f6c09a27ee50bffd9ecf18d0a5a", + "73cd1cb1f8a37dffa0ee09be67ad750e43a9c43c2b1b3140b0ecd13dad6ac31e023456e59dbee162ac7f31e0f06818b9", + "058bf71eb0afb6ce883eca06bf7a45befc70e0aaa6ed47f4a90e5c6c2274db938f7680c56f369261714cfe0d7cba6f15", + "03b69cbc09d7193612f0f94c5b4f5eeedaf4a80296478bdf5ae4f777772bd857f8d95c9b46c803d1e19c4d0ce39bc5d6", + "de9ccfa7646bed6cbf89855a67e17bfc79222c09bcf402b5a6ef7671d735cbedba7b0ae8e7c18565f445fd665eccc01b" ] }, { @@ -179,13 +223,21 @@ "0303f357f157153c1a8df01b78fe3aecbd83af9a5628ba7696a666922f9732ad89", "026a7c4e404fdb7dba91bec2646181377eaef2c5926011ec097b5390040fc9ab38" ], - "pop": "02299d6c883a75da067f4bee7df0e765ebb7def51dd9013fd1d5b335663069430b7d50667a6d9638a31e256ae6a6651d6b3aad7a811660de58df319da0e395988a", + "pop": "02c7156deeb44d3a073ae5668c33c62e650e1c15ac801e9af388c694d6e7e9baacb8b7a262915056f0bf6c4868c772899df29fa6b209bca60903fdb78cceefd79e", + "pop_intermediate": { + "message": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af03736a1d64fef3a68a054c2afc2ba2c3a6b75d5651030a954b322cc25095516a140303f357f157153c1a8df01b78fe3aecbd83af9a5628ba7696a666922f9732ad89026a7c4e404fdb7dba91bec2646181377eaef2c5926011ec097b5390040fc9ab38025d2e46cbf1d980427572df52fcca1bca4bcc50ea2165c2362bc3b65a0f253ef2", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98db0654e47018ce77458bbea218a7f8aa3d6b0fee7cdb96fbda6f0a749a47e044810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af03736a1d64fef3a68a054c2afc2ba2c3a6b75d5651030a954b322cc25095516a140303f357f157153c1a8df01b78fe3aecbd83af9a5628ba7696a666922f9732ad89026a7c4e404fdb7dba91bec2646181377eaef2c5926011ec097b5390040fc9ab38025d2e46cbf1d980427572df52fcca1bca4bcc50ea2165c2362bc3b65a0f253ef2", + "nonce": "2e1d5c710577b4fc0fe2c268af10686ddfe2eb6770873cd0af635f42881f851f", + "nonce_commitment": "02c7156deeb44d3a073ae5668c33c62e650e1c15ac801e9af388c694d6e7e9baac", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402c7156deeb44d3a073ae5668c33c62e650e1c15ac801e9af388c694d6e7e9baac03736a1d64fef3a68a054c2afc2ba2c3a6b75d5651030a954b322cc25095516a14810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af03736a1d64fef3a68a054c2afc2ba2c3a6b75d5651030a954b322cc25095516a140303f357f157153c1a8df01b78fe3aecbd83af9a5628ba7696a666922f9732ad89026a7c4e404fdb7dba91bec2646181377eaef2c5926011ec097b5390040fc9ab38025d2e46cbf1d980427572df52fcca1bca4bcc50ea2165c2362bc3b65a0f253ef2", + "challenge": "c8245bf7ac8b56de5bfc5ab2c934efff0cb4a24401aa4310a39b15af33a9d4f4" + }, "encrypted_shares": [ - "a040df73212c2aac6fbfea2b2d8ee485c9a467d11e4a25b2cd5b252af53226fe5d9eddb85711844cef9d76e656417405", - "59ba15ffd40f2187b92d47f00a2c9c9f4f93b2ee2570bb62bdcc63a3e02d7802fff3cc248b96901a900763fb9c393b05", - "4041c551933749a5b40b793825e216c176ab69a515f15e0e69d4fe29920b035f462b5d9e9b64e46c8132c1e4f2c7cdd4", - "0aa4b79495a6a7ca6121d1b9b42a84ae5aae6df1d151fd60570566a272de29ae2d249907301a2b01357e4f27e5cd8085", - "ef3adca5d017946d284674368a3f6b91215304a0ce19abac529b9b8d521400a33d995eedaa79a5ba9976f0523d9f053d" + "4df05d126a3a2db2f06301b6983aa367da9eb008b08944c38d3fbc74705eb98e1140d43035209cd99eedf4621f9a1429", + "ba0d846e8e59f594110ff8d7e2fae92c1d3bcbac20e45297a616e63e4f741afa90ac7ee1ae31fefd6b132d0346eaf4c7", + "dc83a2983baba8f469d1db78453736755ebca268a8a56e0984e659894afe9f4e62ebdb0f4fab2c16f624902c10b26613", + "b0aadf713f9b5adca96dc760c3c77624eb42a598af6b0d1d5a0e619522ffb1b78818e5cba3bb4cdbfc471311c1b634c4", + "2d47435266fde93f4ea17e617e741e501f553094091a7358a984395d440f114bef09ff5745d5ba6788fd96086255cab9" ] }, { @@ -196,13 +248,21 @@ "0219bdef95c40ab661631c875bbb889074ba4b0b9bfb2efd247521ea0703087e1c", "03010ef466a733f117074eeb7491e434731ba27a52d12d212547d20d19c0eac754" ], - "pop": "02838260f85298a27e0b131434a28189e6621491893ad3606c48e98a874a17c01efb712ed3ede1c8f402c676fc5491afc309d57033276885cd61077be94a8f988a", + "pop": "02f7b553954fbe27c779451d96114f8c6f27ff545a42ee70f659e08321e832b72bc0da339dad575e28c2cd8ac6de664fd2cea7b1eaf588a037798fa45157cd701d", + "pop_intermediate": { + "message": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af035af32bf5f018c0ff4bf8676a6d2f388337ef94a603d9c4b5c2e29c432bf653420219bdef95c40ab661631c875bbb889074ba4b0b9bfb2efd247521ea0703087e1c03010ef466a733f117074eeb7491e434731ba27a52d12d212547d20d19c0eac7540293e7d24e9b65b43b843ca030bf8dfccfc4e9af206e8f4b9b3e00b21cb1b41815", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a9812c89d425bf0b174bb9b6e661d6bae13b96f2ad4f72b1f6e2ed65e17608b7658810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af035af32bf5f018c0ff4bf8676a6d2f388337ef94a603d9c4b5c2e29c432bf653420219bdef95c40ab661631c875bbb889074ba4b0b9bfb2efd247521ea0703087e1c03010ef466a733f117074eeb7491e434731ba27a52d12d212547d20d19c0eac7540293e7d24e9b65b43b843ca030bf8dfccfc4e9af206e8f4b9b3e00b21cb1b41815", + "nonce": "a7b8e0281c24bc0ae9993b485d413c9c9e00c5cc29ad79ac79c1e850ea41ac9d", + "nonce_commitment": "02f7b553954fbe27c779451d96114f8c6f27ff545a42ee70f659e08321e832b72b", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402f7b553954fbe27c779451d96114f8c6f27ff545a42ee70f659e08321e832b72b035af32bf5f018c0ff4bf8676a6d2f388337ef94a603d9c4b5c2e29c432bf65342810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af035af32bf5f018c0ff4bf8676a6d2f388337ef94a603d9c4b5c2e29c432bf653420219bdef95c40ab661631c875bbb889074ba4b0b9bfb2efd247521ea0703087e1c03010ef466a733f117074eeb7491e434731ba27a52d12d212547d20d19c0eac7540293e7d24e9b65b43b843ca030bf8dfccfc4e9af206e8f4b9b3e00b21cb1b41815", + "challenge": "6baf5efcfe3731c4cbacd5aa5f1b0daa4d6fcae56bc8df8f442fe7b5ab6b6489" + }, "encrypted_shares": [ - "c8d893e11274c4a5622967e519996a540b09c83a5a8b290a15a9b83803fa4928d3442f316ec515ffd20f689f7b965056", - "b90c169fbb2748073d8879231490fc2183fa7f394834a41e3cd6957ba6d35b3a8555ac0a23afa082ecb280309cc2c57e", - "628713a70fb02b03e0221c5bcc93f82daf8f11bcd5828ae3cfb2139acfa1781a077e5013f2850f2a73fdb927bfac9690", - "0f2bc915e2818be2eefd5fea13ca8aba4e4e6c658cecfd43ca2b6e1064529ae2a4ad9cd552ba2050349456a31a1aac2b", - "1a8446b2e1b30958b5f45c8e4037db19addfbba209374b7dda6fcee94046c5c9e5ce7e74c4cd4e05d39b3a3efe3e6b61" + "af893959c2f9d2e4da53c8e7931f89bfa0a5597048dbd9f5ee9fa24de738153753bfe57d82cbb2fc864f665ae76b9c1e", + "675912272014398a7e1bb7045212365380acb22d8d5cc7664e2e3926d849de484176f1df6e6dee45cabf4f2ad416af9c", + "a7e72a87dc3b37c567ca16e67a74d55d7296eef49c7567437b1a9ef259a137c7713517d9ef85fe8d82e0f7967acf988c", + "01e839c4ea44958d73c9ea847075b0f7f77854a950f46d76e045d8229463756764dea08a12908f2cddf90046e27dc9e8", + "3d379a0cf4dfa2fa63ad98bbce892914cb24a23858505a69dd4ce93e17371020b684ec24b50da8b6c7a026242d82e865" ] }, { @@ -213,13 +273,21 @@ "02b7e6f0ff6d7210514e0bbead23e8d24f64c4a494ee35de46b7b4425a37dbe55a", "02402145930979fc7e190bdf41fec0951397c2d1d874e723cf5b231f7dd3d58dd8" ], - "pop": "025ca4d83365231f4e35ca1c4784edecdfb35d0fdb6d83907e0c1cccd7a2628bb2fd0697c274eb287c51127010c60f1c55e782fe8dfe60357a84bea35b669c5e5c", + "pop": "02ef9b7d461fc6cc345a84fb9dbcab8939acaa4f0a6c27f4744d306358f813dc19777cbe5267c1e79359df2d29ea41e50f77d9c5c61aa01daddd200092dcd4d82d", + "pop_intermediate": { + "message": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af032929a150a39be2ea8d5196e5ec1df09ce9ca0a8be24853b01ae8472771e3d22302b7e6f0ff6d7210514e0bbead23e8d24f64c4a494ee35de46b7b4425a37dbe55a02402145930979fc7e190bdf41fec0951397c2d1d874e723cf5b231f7dd3d58dd803b99e24a59bac8686386deeacf642995c6dcb9b034dfeb4a0c95f62e05be48c08", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98bb6cf33060f5308a67c2716484f71a11a4fed1e8fa3d42a33e74fee60a587603810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af032929a150a39be2ea8d5196e5ec1df09ce9ca0a8be24853b01ae8472771e3d22302b7e6f0ff6d7210514e0bbead23e8d24f64c4a494ee35de46b7b4425a37dbe55a02402145930979fc7e190bdf41fec0951397c2d1d874e723cf5b231f7dd3d58dd803b99e24a59bac8686386deeacf642995c6dcb9b034dfeb4a0c95f62e05be48c08", + "nonce": "a621ab3f5db389492b98e373f2cfab3c2245a748986cbaed7826c13d7588808c", + "nonce_commitment": "02ef9b7d461fc6cc345a84fb9dbcab8939acaa4f0a6c27f4744d306358f813dc19", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402ef9b7d461fc6cc345a84fb9dbcab8939acaa4f0a6c27f4744d306358f813dc19032929a150a39be2ea8d5196e5ec1df09ce9ca0a8be24853b01ae8472771e3d223810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af032929a150a39be2ea8d5196e5ec1df09ce9ca0a8be24853b01ae8472771e3d22302b7e6f0ff6d7210514e0bbead23e8d24f64c4a494ee35de46b7b4425a37dbe55a02402145930979fc7e190bdf41fec0951397c2d1d874e723cf5b231f7dd3d58dd803b99e24a59bac8686386deeacf642995c6dcb9b034dfeb4a0c95f62e05be48c08", + "challenge": "96991436cb790cc6e6748f7f87d710d57dfce69b9678fd09cb2a2dc071125430" + }, "encrypted_shares": [ - "8f8c833e1dc8ac0a6065754591ead3c907c056b62c965b1afa9b6ac26d30ea7d9e3be842d18bbfe69613663e2eac1272", - "bc04eea028ba12490bd8b73715cc2aab4b1e22d44e558c12b1bd4458b2ee403404cc3919c6dcb8f769299eb699ae1c21", - "e7aa1762aac7ad4e1a6802cc2e645b84499fab5491bd28f7bab1ebc194ed86c8f80e9cf434aecf4a110f62dfe506d9f3", - "bcee0f8fc2097fb653feb0e49892fd2f8eed8331f7370205697b55de026fc7baac8e90de1c5e8d255b6944ee757df59d", - "d5c48b399ddcc645ecc33295d457feb069f024f0a45114196a4486f5667cfaf6f5275f035f80c49a1a2413f16c349609" + "26742a3ea3390b372a88a50e862875e0d374f00c83adb3bfe5a3155b1d987cfc5fa756a4954773020e59729105f7e7c3", + "d5bcb8b4b26ee495ce0cbc8ec40507dbef9bf8e9f58bb65d9810bcdc1bde6cc8d9b8d0297febc437567d43acd630b8b6", + "c908f5d5da2801dcba0b4812b080846de68ee284089870ee80cd2b05b1b6b33e0b9e200bb46afda37a6e15811ab913d8", + "83ba93829311864789ec22a18a0cb2d328176cfd6c415802f053802059a2e3dfa2e120d026514c89fc2e4788471c21c2", + "1cedc2dbbd1133e99e087206744139bb92d4c7430e3aecc98260332a45b86cc6d6dd3160d4cd890c252de41b58403e4c" ] } ], @@ -251,48 +319,38 @@ } ], "round3": { - "transcript_hash": "7dba0528c2bf18da7afe4a1de2e9283f70f4812569711f18eba3af92dab2469d", + "transcript_hash": "53c718b0cf65126511226a5e099358aaf49d2e8167534c7e5638a48c5a72c8ec", "signatures": [ { "signer_id": 1, - "signature": "03a7e42ac95336d262b534ca4fa9f42de946c014a8880197d6e677d97ca3f2a4c2e2c8b5971498af9f9a892f11d88682d5c4e439efb919559fb8dc66392b7cb8bb" + "signature": "03ba8ae28aeffbb2ee69bdab5223e53ac9ab41223e927dfe9f809ca73d387772edae5c783bd75a6eba15d16003e2942af617751fe19f9defd512496cf477a4b825" }, { "signer_id": 2, - "signature": "0288501f4164d60bfe63f1b795fcdcbad86f0465653490f05133fd8fca4d6042ddc2604a251167d686b1a8a6f98dfc9fa260611f6534ac57874732676dc0f34a24" + "signature": "03f797742a0eaf76f62d98d79cf37dfb41e6f8d0824ce5ed4210a8adb5b0253b79833e20e2071d3b9bf829e7bbef83cd5073c711fb37341fe25879921f201fdec6" }, { "signer_id": 3, - "signature": "02d2ad6aae935ab7c5ccf55c7f2219095cc4a5ab55fa3e5ad34510e7ec53e748d6075c0614e75a5e2e554d0435abc2b64c143982cc56ede5c5185a0880cb9fc987" + "signature": "02a32888af565e3aeb27768457500f38319a845bf66487afd55b7f29bffa94642f87e9defd4bb4fd3ed4286d7553c9f1011ed8692ac665525c17e5b6291b4f7334" }, { "signer_id": 4, - "signature": "024a745339da5a45e921355acca626033a65f43fdcaf07814e4d7865d3b169f016fa0cb3e74ac36376c2a3720f06276d57db911eb7573640081ed05e492d25dbdc" + "signature": "03b9d3bdd005dbb26d25f446aa45f3d115776f013397fed9f1df631fdef122f3680538b1316babcc45b01596d7bf4e91d160a593a3a996c40fd19a1ff94541d203" }, { "signer_id": 5, - "signature": "026682e0007ddf53d43bc64fb350ceb47b6787d2514cfb9c2b87acd3f13b99208192379a0aeb6fffef175e4cf69b59248e0eb735b9b1ed88a8b4c81c2545147ecc" + "signature": "03d4d5382d39aebae4a60b098877799a43cf3b0c6a73f1bad8e3a7b3f5fea6214902ebaff944d2f41a6346788fc5b4379b6d125f9af273e594e3e0a182cbd5fd37" } ] }, - "group_public_key": "02c4d6153a66c590f2bc546d51cf411b2522ee6b447ed0b0e51275dac238e666f1", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "be4888644474f5e3b447a32f12005a27929cdba66460a4ff71c51c4d55937af983d5c4442a7f3ef4519205e40c0abab0", - "7c0cd36129905e1f0497e856e8c095c4894e7d3aa5f093ba8dc444ff5e02b37aa02936493e5e932a5fa194dc0444e06e", - "a040df73212c2aac6fbfea2b2d8ee485c9a467d11e4a25b2cd5b252af53226fe5d9eddb85711844cef9d76e656417405", - "c8d893e11274c4a5622967e519996a540b09c83a5a8b290a15a9b83803fa4928d3442f316ec515ffd20f689f7b965056", - "8f8c833e1dc8ac0a6065754591ead3c907c056b62c965b1afa9b6ac26d30ea7d9e3be842d18bbfe69613663e2eac1272" - ], - "recovered_secret_share": "2aa84b0e28cf945fab50a04b0493026be4a8aac17bdd980915a50830a897cbe7", - "recovered_verification_share": "03ffd0727fdb797a7ede721674aeec6080d67dd5667d0b7f11635bd27411eb8955" - } + "group_public_key": "02c4d6153a66c590f2bc546d51cf411b2522ee6b447ed0b0e51275dac238e666f1" }, { "n": 14, "t": 7, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "context": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49", + "extension": "", "config": { "static_secret_keys": [ "8f26fe486e7d36a291970961906a799433633e3fbae1ebc0d4f9a07ff6be6539", @@ -340,22 +398,30 @@ "03310dd76145338dab22d69993d2f9de096e80d25a4f57f66de80290f6d2e60653", "03211495a08cbd357e03ac78783b6f0848c4a8ecee9f6ee3227a6c646584963ecf" ], - "pop": "02651e2079058491cd52eb7afdadb51e7f820870d36041bcc6ed507df990c0d0570ba20d9f86150e8fccff44171be141173e248946471f70818c1b0b40f9163418", + "pop": "0317b238417bb6bb50beba38b41900210f5970e69bd9207abaf39cff386648f0102eaa2594c4acda46305cebbc8ab6740efdd4245979f45a3d81e885eab2936291", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49029fec9edf9536e4de8577e27298b286c80abba39a70a17cfadee7b45cd5750b7502270a87f2092916b609f464965cf9992a9436bf5eba5adc46abfcd48b2c34bd0002c5e04a05aaa88708cc76492c6adb731a0a86e952a3696f9ec3371c9b77e483880299180858f763aca25584c5d1ab6a4f895c37d4378c29cf0ed97d12a3f3f4c5b402753e0fc6e6b3191e87b493dec11c13ce96ce738236e2c858bdb24b2f00b1514f03310dd76145338dab22d69993d2f9de096e80d25a4f57f66de80290f6d2e6065303211495a08cbd357e03ac78783b6f0848c4a8ecee9f6ee3227a6c646584963ecf0340e68f5518ea6dcbe5ffea65de6c65f57ed9d68eca22d113815eeacafa450699", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98f4e9239a3e60c8a2d16f4ebac00f588849a3ba62e0384e79102a16b19e1cc29f1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49029fec9edf9536e4de8577e27298b286c80abba39a70a17cfadee7b45cd5750b7502270a87f2092916b609f464965cf9992a9436bf5eba5adc46abfcd48b2c34bd0002c5e04a05aaa88708cc76492c6adb731a0a86e952a3696f9ec3371c9b77e483880299180858f763aca25584c5d1ab6a4f895c37d4378c29cf0ed97d12a3f3f4c5b402753e0fc6e6b3191e87b493dec11c13ce96ce738236e2c858bdb24b2f00b1514f03310dd76145338dab22d69993d2f9de096e80d25a4f57f66de80290f6d2e6065303211495a08cbd357e03ac78783b6f0848c4a8ecee9f6ee3227a6c646584963ecf0340e68f5518ea6dcbe5ffea65de6c65f57ed9d68eca22d113815eeacafa450699", + "nonce": "9d5fa18e88a418029c6ee5337e961900cbdaf235a34e4924e4cbdf4d0901e5d8", + "nonce_commitment": "0317b238417bb6bb50beba38b41900210f5970e69bd9207abaf39cff386648f010", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd3998640317b238417bb6bb50beba38b41900210f5970e69bd9207abaf39cff386648f010029fec9edf9536e4de8577e27298b286c80abba39a70a17cfadee7b45cd5750b751f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49029fec9edf9536e4de8577e27298b286c80abba39a70a17cfadee7b45cd5750b7502270a87f2092916b609f464965cf9992a9436bf5eba5adc46abfcd48b2c34bd0002c5e04a05aaa88708cc76492c6adb731a0a86e952a3696f9ec3371c9b77e483880299180858f763aca25584c5d1ab6a4f895c37d4378c29cf0ed97d12a3f3f4c5b402753e0fc6e6b3191e87b493dec11c13ce96ce738236e2c858bdb24b2f00b1514f03310dd76145338dab22d69993d2f9de096e80d25a4f57f66de80290f6d2e6065303211495a08cbd357e03ac78783b6f0848c4a8ecee9f6ee3227a6c646584963ecf0340e68f5518ea6dcbe5ffea65de6c65f57ed9d68eca22d113815eeacafa450699", + "challenge": "41540f724434acbdffc1a18a1e6fddc371e9099e27db67dabdf17d251effb117" + }, "encrypted_shares": [ - "68f1a4f3a1b132dce2a36e4463baf2241918986826d32bb5e29374db2a8cc1a69dfd61e6cefda4ba70bd4471113da46f", - "1fce5ae21713a540bfc04293d04e5ffb0ad482a467e3673d268c3a2ec3e639c27b9963f169ebcc67c2d815b69ad960a6", - "67125dac2a0ed2ca7f6a618870aee00b3ea900b620d72dbaa008df1b449a7b120f4de503e478708633dba3ec54260f3d", - "f0cd7fa9ecb9d9d225ebbbfd39cf4c9a3f1e4e1622a846228dfb6f06f0a4401d4763934eca27cab650398afbbb82ca68", - "24b065d4e77d6bd4e634c16145365184ff077a62381a5ac51548e2df1bb67dfb9dc087adb7358b30f8ed2fb037d33bcc", - "9bd7d41baf33445173f2d5cd0efddbdb6dcfa9f1a0ad8c4c2a55886cab41ad88186c989a335bb2cf7bf6631e036fe01a", - "f1b69ee08a0c1881c64408f905073df0f258fa232f77cadb9af05d28a164d09e0ec71d277a2742c209489802951c4aad", - "dee1a6e72f8161fe7f1b227a670ce689dfb6179e98d0f51340684e50f791bb4d6ec2af29d6d1281943bd8c43d415ea88", - "cd36eb0a76e85c561a7a6c87b23e8b4340033175e29ac5e9c176b9de2413688344c1888748c6d1f6e376f9e0c93e14ca", - "9a857469603fb6136b05d6c634a06702e7ecce98c54088297619e7d4cca0966284a10c35d0e2c1ac9bd18ae31c422023", - "46eb07cd1b6c68ec8ada5c5c11f9b6bec3869cebee8b18b6e9d67ab79699940d9b031a267e1a79e9d85a662234945802", - "d23cedd66db8360c060d52fb0b5fbd6f44529612cf864d6e0b853c5d100200b97124ca6891bbdbd8904db59572263051", - "930c8919f3c3b7795b37d9b2e17e8afce1f48434de5c2019eefdd13ea6d02fe5e8a7d46e56144bcd83e9ff764e9ceecf", - "f4a1634a40e884e21dab729f8d9eeea46614659ed7e3ef8dfcc56e80c4186187f2e6afc5801caf89e3c86287369674f5" + "60dde45fe8cdf86005f544cfa84599bfd4245a5d54478b7a7157a66223d1bc0eed62dbc2f83066ebe811c5cf34a91843", + "a5e5ef4f48eba28c3fda63a687baaea9d1561ad1672cca4adf10be01d6a44bf414f6996d81c421937ef76aa3efcc3325", + "9e4344cfe44c1260ef127230c276f7febe039abfae516786f5fefbf359663c6e9a38e4d851c0dc3cf6bc587bd302e96b", + "9f4a574ffe6e3039548da0325a99c9eec9d3a401900e56e1b98019d784465084d436b8326a2d29c55365af2f2622cfe8", + "cf75a77306ef08b86c73edf605a2cd1c50d1877ce8e087d112e50aa192d12a6076f699e5c57d053f6a7fc7b0fba9ca6f", + "9662f6c2a1ea0d92d943b7fd6eeb6fb7ffd467fbdb365374ba7cd472b52683748c6672ad8811e8ebc3c2eabd9ea5df1c", + "46deb8c172b4920263ac59dc7d6181d6ca09f7cdb9c6769e513695b435d6ba781b68853e622e88491c9172ac339aa652", + "1a42f506d586d5ebb0f6650d1494ccc6ef2b743ae47fcf8d2e764ccba32253a9aea50af39a99621c01c4709da1224b36", + "9aac655d23bd8f5fec2ec148c07c3b653d75141b85388c7ee707c079744e862a1e4dd15976b0557a7dfa6c762c7bfd5b", + "bff5e7c952ffe40a8af9fb2f23b0f88ed03f0c513b4f4b20db003a562b674512f34a21e590b5fcba7a43b6ee8eaee518", + "1834c2bf5482137f9600e9214e99ace9dc16700d59259e7d82ced42c521219fec8fb605bd90aaad9551f35b5b359f174", + "377526d9a1d7f115ba9cef96b7f593c6d0d9bffb9bf40f801729e1d89a88a21f92b4f711b36e9bf3569d6955776b013f", + "09fc417ed04cbf6577b96a3f70e63d176392e6ff85bfcce75f2ffc51061ca6d609f616d732ab887543c348b3e1c8401c", + "06621d1381af114765ed1d26eb92f8163a144b878b7e4acc2b64bff2a4b02a12bf451e2d9661db5c9f199c4d7876844f" ] }, { @@ -370,22 +436,30 @@ "030b0b881ab3849569821ba9db282a75eff81bd5548a1849023c8d2f925ecbfd89", "03fae9c5ab6490dcea961231d605d48ee4b8f571b016a25e0befdf8b7dc882e25d" ], - "pop": "023425786a702f8aa06cd63903efaf99013bff822501ab293b1098600d2a92dca23472ae68a21f6d9c5d19e552f67e7694c20d32a0b9b338426ea1604c4390de52", + "pop": "03cb8a8a4a5e51f20937de7fb5956aaef892529a2319b021281aea595c1cf91bb5772e2024c6c502e640a6a6b59cc380a4118decb42a73fc965a7e2a30583efa61", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021f247705c6b241e6d4ac3d0f95bfe10ad18403f2fd41ba11c794258119ecef8803b70722e06075e49d19fdcebe86d960c36d958785eefc564b79b5a200496bf94c0274aef2534c2b1d809be5353f99a5e099511c70507b8144a05c2525b452316cb2025e8cf552d0c12e33bd057009338ea9762d010331b2b898502e6fd5d1d9ea8b1a025791353f84de1fab98f6e22b5ae4b39563812cc27a35440946a95beba66d8b2b030b0b881ab3849569821ba9db282a75eff81bd5548a1849023c8d2f925ecbfd8903fae9c5ab6490dcea961231d605d48ee4b8f571b016a25e0befdf8b7dc882e25d0246c7a2f3989134ac4ba45e39a4a9f653bc34062ced6ab7b4e485ae6ee27b520c", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98715d5118129194f00349cb8f1f3fcb062c366e41ebb6b84f980a0c0c157b311d1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021f247705c6b241e6d4ac3d0f95bfe10ad18403f2fd41ba11c794258119ecef8803b70722e06075e49d19fdcebe86d960c36d958785eefc564b79b5a200496bf94c0274aef2534c2b1d809be5353f99a5e099511c70507b8144a05c2525b452316cb2025e8cf552d0c12e33bd057009338ea9762d010331b2b898502e6fd5d1d9ea8b1a025791353f84de1fab98f6e22b5ae4b39563812cc27a35440946a95beba66d8b2b030b0b881ab3849569821ba9db282a75eff81bd5548a1849023c8d2f925ecbfd8903fae9c5ab6490dcea961231d605d48ee4b8f571b016a25e0befdf8b7dc882e25d0246c7a2f3989134ac4ba45e39a4a9f653bc34062ced6ab7b4e485ae6ee27b520c", + "nonce": "6cbf16548a77d3d83721d7b1aa65a74488d50cb12c6a66e1cd52003a6dd36bc7", + "nonce_commitment": "03cb8a8a4a5e51f20937de7fb5956aaef892529a2319b021281aea595c1cf91bb5", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403cb8a8a4a5e51f20937de7fb5956aaef892529a2319b021281aea595c1cf91bb5021f247705c6b241e6d4ac3d0f95bfe10ad18403f2fd41ba11c794258119ecef881f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021f247705c6b241e6d4ac3d0f95bfe10ad18403f2fd41ba11c794258119ecef8803b70722e06075e49d19fdcebe86d960c36d958785eefc564b79b5a200496bf94c0274aef2534c2b1d809be5353f99a5e099511c70507b8144a05c2525b452316cb2025e8cf552d0c12e33bd057009338ea9762d010331b2b898502e6fd5d1d9ea8b1a025791353f84de1fab98f6e22b5ae4b39563812cc27a35440946a95beba66d8b2b030b0b881ab3849569821ba9db282a75eff81bd5548a1849023c8d2f925ecbfd8903fae9c5ab6490dcea961231d605d48ee4b8f571b016a25e0befdf8b7dc882e25d0246c7a2f3989134ac4ba45e39a4a9f653bc34062ced6ab7b4e485ae6ee27b520c", + "challenge": "dd715c197240a6387aa02b7cb9441f13b5dce43bf8fff080c52dd71436a01fe0" + }, "encrypted_shares": [ - "112de458c4a7d3f72b165723603c7d97f121a0c6eccf5b599a59680600a354c516ddf653651c17a559b8a1c572474e62", - "5cef24ed069c5d8b28a070d36548e81a37f44159ec1316e19558023c0c9ecfdcf6050d3183cadb11da788f3db2f688af", - "29467495d3cc43b6d4405e18f1be1e1617a38fce8b39063f02668c1d150697c44a6649d49aef212617a3beb0a4b36eeb", - "3e8ba8bc1c7dba280cae7b47102c3586f04bfc7228c552376231d25e1f68503a8efe3ede63bb3df0f13ebe428593eaf5", - "9a72bf6614b7f3d6d2822d8aa482de4f75f72decdfed0538a7ace87a96f2e3f6e19d975adf933fe61d2504fafb7991e8", - "a8e4be63f6b396c3a9a21b7d7805c9d9747defbae0565639e80b766ce9cb697ce830fb3f6fb4329f1faee47e4bd9aec9", - "8dcfdb1834410116ad7b33588ac58fc936f33b2392a01ea8d9ab3a7a8fcd27b119f4939579fcf4896d7182aa5beb432e", - "f2a64243c50e95637099c7b0ec4d009dfbe18655f7840982bfebc050ccae8f65706238e5683851ca504e55612af3ecaa", - "f807ee1a18c3ac55593be99aafea45722d19a4c8b9f7351e5047235c4c2d53b332f2bb022e9817ae7b1273c77740a596", - "5cd7ba1c00912d33bfd0235b90143cbec9e7aaec427d6e37b4cbb34321abff046617d0c2f58c4a1bc846c5ae7d7a7a97", - "6423c5ccaaeeef130e26d4333e071c4421a1b9676ba2db8a18fb156598385580c85fc3e466cb7711023bfa4dc2db1b36", - "99e0c37ef1f4a38ab9fc81b4866480b7c6dde023644cd8d8316ea634039b8ca99e054c59bf2665120a2d16465f7dc2f5", - "f0c15541813106c265042668ba394762fe4636ea0962fbf0e7ac0479307c49513b73791307b953b7dfc4613654a9b420", - "e04223c1ec7ac20542a43059449a180e5a60b366e039def067d7d836f8c1f240dbe760c586eba78b36e73c2853215932" + "64a503473c9d2c9858b70a41a428adf33676e5aae2a4780bbe464765303760e4502d0a2f68a12449a21ab4d58ad3ce16", + "e2ffdb52513fe29649943a931506d0a1c2bbaa8a9e79f10daeaefdfbaaef749164fcf06e3be42b2c0c88f04e815ebb09", + "28fc5cb46b09a6cf6ed72f252560f16cf9ba7948736bd589fec8ee12bbe94338ade6b34ce7c9e0f3dc59174ab2ba64db", + "0fe31caee5d3e5c8274aa31abbfe18f15defe3e819487d3c79e0be7a45d647b4f628ed028c6a402143ab015953ff9adb", + "a65c612e0dda836bbc2a545c05796686e540741fa4c434bd6e8542ae1754f6da9b4ee862ac7accc4c1830724631a04a5", + "04de568d27fdc6b549d81c4e8ddc42a1d3a618cc0a4837937e75349a0631baedf86efc0d4312fc2746e6887d6ac99994", + "00bf2f221f47c3d26767f62f5c92811963aa6f3878be24c41732c866318ded02db5dc3e4aa52783de0e6b5a3b05a9497", + "0b8bafc8f64769ca367c54d9a9aa8417a38170bd57d1929e2ab1d8a1b5b2f1626765e0769ae216f6c6a58e2c181c3697", + "b02c66136ec592f03e251151c5dbcde271a68eedf62a805c8f1ac86c6f707bb0a07f55a827cf87c44824b23ffaa3219d", + "aaeee4285aedd04c5d63527e93ea657760d5260dde22d4609242b038a8c4583e34e1cd585393590c0bc548b6277a45fa", + "8fae2cc576ae994f2432784577d762404b80c50396c7f63282799efb0c38e6bca4075b07300f401efe82060930c39cbb", + "2a5fe132951597c5e1de909e061c353007cf77b3b7b5fb8d50b9bddc2c4940116c2c53a41119461f51633aa6ec40dc11", + "86e6d997a9bb4b91929b4ea81f755480dc82aa813e7ab7970f5cd375e95197e25323da018dad3c643d413971b50180ad", + "fbad7b7b57d51cc40a6700d5a0b62385717f351271813f361fb5b0557779ebc909c05dc3a3831fc89f942bbc8a7f3507" ] }, { @@ -400,22 +474,30 @@ "021b20f069bbcbbd39cd7a8f8a7c4a0a8d90f241891f8847a0949bc2161b70da47", "020df5bed362a491fa1194ec0cf51a501e225b91f3db9b5da7cff75e52ea3503b2" ], - "pop": "0380d00397d4542d4ade0747ad9fc9900b99a21ef6073daeb2805fdae6776f1741815e11168680d7c5d1cbf4e090a5bb05a53d27851610900bb6c9dc9bc0da8eac", + "pop": "029b31986a3408b0870056d83d2d3de23af88eec5cd25683b85fe74edc9d81e76aaee60480cbffb9d951e43db3153b3e92882e00f9aff1cae3d912d7e4be4e68cf", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902028de294e49f3ea53c3aa4991680419cb7ae5588f66ac88dbc954521d52d329c020b55fd370dcfadff8e37fc9da0342bf6df286d601633e9638cf8e18744ed2bd602231777348dc8490e9dc6a46ea7cf640280a446f7aecddd7dffdeac70b4acc1c4022615e98a65cebc3771d05ef472837e813405d47549e0932a407161286114b9e00342a508beddcc510bd541a408f0da3a005f83177d0022ede87407aea94e7c3c39021b20f069bbcbbd39cd7a8f8a7c4a0a8d90f241891f8847a0949bc2161b70da47020df5bed362a491fa1194ec0cf51a501e225b91f3db9b5da7cff75e52ea3503b202d48bbcb20444a2654a4c336ec39ddf7010b65484a68744641d03ef50f4e51945", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a9861a26d86db8902990f95cd58fe7eebe2717e0e5154924da80754351d4395da4f1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902028de294e49f3ea53c3aa4991680419cb7ae5588f66ac88dbc954521d52d329c020b55fd370dcfadff8e37fc9da0342bf6df286d601633e9638cf8e18744ed2bd602231777348dc8490e9dc6a46ea7cf640280a446f7aecddd7dffdeac70b4acc1c4022615e98a65cebc3771d05ef472837e813405d47549e0932a407161286114b9e00342a508beddcc510bd541a408f0da3a005f83177d0022ede87407aea94e7c3c39021b20f069bbcbbd39cd7a8f8a7c4a0a8d90f241891f8847a0949bc2161b70da47020df5bed362a491fa1194ec0cf51a501e225b91f3db9b5da7cff75e52ea3503b202d48bbcb20444a2654a4c336ec39ddf7010b65484a68744641d03ef50f4e51945", + "nonce": "354232f5de3616f271c17aa81a72be7fe8e554b1538f7ce77c51631fb01187fb", + "nonce_commitment": "029b31986a3408b0870056d83d2d3de23af88eec5cd25683b85fe74edc9d81e76a", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864029b31986a3408b0870056d83d2d3de23af88eec5cd25683b85fe74edc9d81e76a02028de294e49f3ea53c3aa4991680419cb7ae5588f66ac88dbc954521d52d329c1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902028de294e49f3ea53c3aa4991680419cb7ae5588f66ac88dbc954521d52d329c020b55fd370dcfadff8e37fc9da0342bf6df286d601633e9638cf8e18744ed2bd602231777348dc8490e9dc6a46ea7cf640280a446f7aecddd7dffdeac70b4acc1c4022615e98a65cebc3771d05ef472837e813405d47549e0932a407161286114b9e00342a508beddcc510bd541a408f0da3a005f83177d0022ede87407aea94e7c3c39021b20f069bbcbbd39cd7a8f8a7c4a0a8d90f241891f8847a0949bc2161b70da47020df5bed362a491fa1194ec0cf51a501e225b91f3db9b5da7cff75e52ea3503b202d48bbcb20444a2654a4c336ec39ddf7010b65484a68744641d03ef50f4e51945", + "challenge": "3ff4754884f591cac15fdabb7c47d85fff9ed2e00b57996d4316e2ff9fa71137" + }, "encrypted_shares": [ - "97c9c7b796bda9a0a458b1c17568ceb6564602168840aa02c2e66be77c4ffe1cf0e4f2fa79d7f623f8c054035f42b1f2", - "e739515db385a089212c8a5db981441040c9e3cad5c4bfc558ca9c860609ad9e3e2fd03c9cc1c5f419958a338365d752", - "d0698ef4cceb067697c7ae4bb61eea3607f9a4c4a7dde95e4e709b4fb768efbaf6b4d695b8e289c81854941a2532484f", - "7161c721136b42c677129146ddb6075918d315b1e0d8482676180a555a97dac79aec8c90d991dc799b79e6fb245864d5", - "0a209d12fc03d1a03246dff36d39fd4d3bab58326d4ccb5fc8efc9ff9f8d44ac188e9ee7ef88533b64592c2d92bd488a", - "b5d01742719ae48bd771da803bfdd860e9ec89f408a0460950029ef99d4a223fc560564c9c1ae4c726fdde055babb839", - "ea01267953724a36ec3b119fbcdfb59bbbffa55e74ca1b6041b5ed71bbf92daaff1dff7afe23e15856966fc472ef04a6", - "4a7743c8956d4d1ad7c19f1a6d9203ab5ce18b510c8e29c48aabeb67f0b693daed3e3fd443115492f3060f3aeb3491cb", - "c1b27ff8deea107d3301ffbc5ce8b694f74b613b3a5cc3337ff6f22165e6619f0c02d72ec6d4f81f830fb67f61456571", - "8ab8388145c9dabcc46c862744220a147a7745927d8d02d21f11e4b5fe96ee866ec7903dc2fb499a3b5d7622a0be436c", - "34872172bf936f1b9cd7ed20db682c39f69dccb3128d631fb694e19c72a467b2912e13e17b34167f66f96563f4ec4e86", - "6932a06319a6a1ec07cf50de0f426752b0b806d5e85963bdcad1fb0252bb4b7082539e10d0d9ca235c97ac32be300575", - "b10a99692123f84065299cff1ad6234d512808200cd7bcda886eb961d44fe8dba66cacbec81b1c97a0b312bebda65db9", - "600d89ae931b53a6307eb41bba7fd27268cebb23050f7db9219b4776720c9d2b3351b4edd8641e9f40d601f03bc3947e" + "19fc577da2bf01ebb9ee8643a8a7d55aa0c19ad0c2c80c8602728d2ab78110bd6622ce62cb075644ef44a7138cd40fc7", + "787269ebd78413a8fd4b22b50f2e281a5fefd533146db3d7c48bb56324cc6a50675fc4b694d7b5513cd3c49dd6331dac", + "a29b89537b6717eb23539f4dd0ed0a7ac43499c1f6646f5063e2a7055233868baa71f7a9448f6a3d7b98f5460d53c1da", + "b3d950e277d96ae480ac68e3130c5e0f65b91d4773b53cb91bfae4b2e2ae22dd98d6a3de2348bb99acd4e789d38ab505", + "a0cb62305c6c2266b4f140a2801e81fe5dbfccd4c3588fa889059e244c83c5fff63a03c4e531bbe5543e39fbeb35a8d1", + "5ad4e37241c7d442fad3e6ac0abfc8d928410e17e389c79ad703b34ed64d69d905c93bc5c92967b56d937d42f25903ed", + "5cabebedca39a300b01f3997d56d7f1bbdff9ffd8244d33ae5151c315c69b4c3fa694f2c7c60a4c21f381a35b853fd8c", + "f1f500a110a075e3d5ea618eb398fcb64b267d55143ea0f8ddb456995490f14d2307e4ffe5bef0ff781ed492466f355c", + "9c3a72c122bc9627ebd6312ffdf39cafe03ad71882a8eccc9c8d56d2f386f32c218cc715b054e961d0818139a4e4230e", + "11e670038f765c5d4e5248233c5e122ff976bd81fe9da218dfdeb38cb17aad90244ed30815dde5195790229b6f4e3af9", + "f184d339951956a858d5a8c47c88bd1b9e763041c2696209f25ca37b67bbc553762d0a35951b56854b00ebdacb463974", + "e66514ab7ba89e3c0f8d8b8c550adc459a17f9635c5d688ab5206ce3626d31792e136b95c4f12ded8d83814921945ddd", + "7427a11abe62833492757e2772f3ab88edb620f9f5274e6e073c25ec82dc2538520d372d55c4c47f015d1e06b8064579", + "e3e72a8552d40dd9affb44b868ccbd0616b2ac23277d152452a99a474dc1341446e27307bfe90b9e9eefd78423db97b2" ] }, { @@ -430,22 +512,30 @@ "02daa518e1c337563cbcf69647a0a44025a9dce749a7540ddc0e2534624c31a00f", "03c5b2125b34f31bd8e15a60c886d1a4eccbb7e4dbc8e756e57eaada2460a1215b" ], - "pop": "02954c2b9cd4bcf9fe08b29e60ceba2cebc2dc22d3c97ebeb7114b5d9472760a14516cdaa7400c276140a59637c0745013336d0e5601115354d29c1a9634e25e64", + "pop": "035a0aa5d7788cfeeee94ca1b46d781906349028ff0105446109003f556cee281027d526764504b465afb4c5a4d23d4a9df0ed239aec63e359ccec290f338e878c", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49032c46c2b0f2fafe849f575abc906d2169d4efd6450d14b048a74cf0b78a80afd803c176bb4cd8da82662ae4a8e4fc71fbb870a305589fb72fe86069ea2af32eedeb0392f58d64debde7dd4864be84ad06b8a7d598c405fc7f5fba59e9a9a8b714c603033df5f112a03baacbae93e0b8ff462f55ce445d3317dbac1b4d6065d37b9e847f025ba8abec84eccdd09f4403878c642830ddb8a5c87f697722d6f3395f482311ee02daa518e1c337563cbcf69647a0a44025a9dce749a7540ddc0e2534624c31a00f03c5b2125b34f31bd8e15a60c886d1a4eccbb7e4dbc8e756e57eaada2460a1215b033598b7108b3e1e4987003ea9803f248e7f78597d525af30e864569a4f4006871", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a9807583277de5a13e2916584d19b111e70e25f07f267aa0e99ddfa8aecbe3d6f8d1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49032c46c2b0f2fafe849f575abc906d2169d4efd6450d14b048a74cf0b78a80afd803c176bb4cd8da82662ae4a8e4fc71fbb870a305589fb72fe86069ea2af32eedeb0392f58d64debde7dd4864be84ad06b8a7d598c405fc7f5fba59e9a9a8b714c603033df5f112a03baacbae93e0b8ff462f55ce445d3317dbac1b4d6065d37b9e847f025ba8abec84eccdd09f4403878c642830ddb8a5c87f697722d6f3395f482311ee02daa518e1c337563cbcf69647a0a44025a9dce749a7540ddc0e2534624c31a00f03c5b2125b34f31bd8e15a60c886d1a4eccbb7e4dbc8e756e57eaada2460a1215b033598b7108b3e1e4987003ea9803f248e7f78597d525af30e864569a4f4006871", + "nonce": "0fc7f7fefe2deb637dd662764dff35252c28da8b52f57b2f78abaa08d92cc959", + "nonce_commitment": "035a0aa5d7788cfeeee94ca1b46d781906349028ff0105446109003f556cee2810", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864035a0aa5d7788cfeeee94ca1b46d781906349028ff0105446109003f556cee2810032c46c2b0f2fafe849f575abc906d2169d4efd6450d14b048a74cf0b78a80afd81f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49032c46c2b0f2fafe849f575abc906d2169d4efd6450d14b048a74cf0b78a80afd803c176bb4cd8da82662ae4a8e4fc71fbb870a305589fb72fe86069ea2af32eedeb0392f58d64debde7dd4864be84ad06b8a7d598c405fc7f5fba59e9a9a8b714c603033df5f112a03baacbae93e0b8ff462f55ce445d3317dbac1b4d6065d37b9e847f025ba8abec84eccdd09f4403878c642830ddb8a5c87f697722d6f3395f482311ee02daa518e1c337563cbcf69647a0a44025a9dce749a7540ddc0e2534624c31a00f03c5b2125b34f31bd8e15a60c886d1a4eccbb7e4dbc8e756e57eaada2460a1215b033598b7108b3e1e4987003ea9803f248e7f78597d525af30e864569a4f4006871", + "challenge": "e9e93a22ccaa52e3bc33da3a6a18e33bc0ee9482569a5c92ab01ea547f2beb1d" + }, "encrypted_shares": [ - "3fc08d5f03a9fbcc9b6a02f4be8f70032e115d88d2062166df86ff0213a0a5ec36187f52641dcf50925688c550ed0820", - "09b172e4aa8bc508c45773155f3873e951195ecec1bded15794782f53bf6d0eacd69f987bbfcb30a080008c34d9ae811", - "93069c39f72d635175437aec0e11a344d484c873cc50ca6b6636c469ed6ebfd149a3def98706b48fe7a359a1f3918e3e", - "ef53af384ae2cb10e047800b5a271e0b0323b1a8bbfb84dbf62aa22ff6a02f4c1d9dbbf4acf0132c198835007d313ecb", - "c12901c106e19a86f4eb2a6ff7bb0008a5d286f619a89a034996d0d16071cbc6fd4d4981b2ee7b6dec7c086f84a8a23f", - "401d175240c9b8f8d16165f00709c89ffea89b7e0c4e4474d2cbd8e5b6702bacdfff9360712d31b088f84441b6ab2b55", - "581866ed8f2cde184fe91eca8b85ff0285a9b959e2e16a7b3b4ae0f2c24de67d96c910fa4ce97e867528a05ed05f1b3f", - "d3c54251d1686f925733cce604f380e61d96c955d883556f95f980022cfc7fd1a8cbfc645a20cee94a95a582a8a8ed0b", - "09767d1e2fc97498876863257d8ce576718efec1f6e2549a029831ef6f23ae74122658a86fbfb478565da7433637fdf4", - "4aeb6486a98d544b4e08001874abd4833a7011ade17ae93c0089c52096bab2c5ade3a209177d9791006082093a1d121f", - "217dba35d529eacbffbed4c865b447f988fb6d68122c11147fe51d1ec6dfc6027f95f8c3b0500ef6a80185b3c51f53de", - "66b44ca2477bb51c068fdbb1dc32c9897bde7fde89fc50781bb733fa0585312ae701d48d802359f1ec3cea97f973b576", - "de627a99b8e05e45e018dd8e0d274b20b10dcaf4e6471c39e44e54f6dee3d54dc329029b5510a02013d1b4f5e77423dc", - "dcb316073ad42a9bf3e5ff0f99208b9c430a6615a6bd8fa6694a8346265f4d278c97cc9e0a8d39c2610441eaca5c8169" + "a5b3f330a50d0309ed627e2a0a60fac83b34dceb3c2cee8de0ea8c2c8954d8d8bcb417b006c9f97570168bbd383d7ed3", + "013a73799c3ba0afa6a9021b91ce729dbd7915922e5cbd9828cfab94dfc82234cc4349da2960874130d2a02efcf68c10", + "d30fcc3e0cf4335af82ea59be143a88ee0e8fd01d5b881554cb15842426cf1633c9dee8861c7472b72bb334ff9a05d32", + "6e7b8d8351e4537814c3fe75ff45020408404cdb8ff056738ea3e1cfb29064d6bc809ad08f8c30c6e75d80e770617104", + "628cfd3998bb1cb3f9af1664a09677886190c21d41a824946605e257e2e2cbc475d7ea512886ba9f2b3ea329074c9705", + "4afb679ca8917e51428d24cef5f1364df55f9086174474969903e64e24c886827d54766439b5a544092f3e6cd4737c51", + "294c177d0ae6464471c96cc520139dfb28bde6a789778d502454e98814aec1f9918966f3ae2679d48c8408dfc8731568", + "9c1f17dc95bf7773abdff7f9306aa1c50c08b40587b1acde26c5e00efb4b8272b425e0fce126ba9b7e4921c8ce3da0d4", + "83c81d220c44ad8721978f291374f2471a99a9e2e50dbfb0bb324da53f4a91ff1603ff3e02633f306419d57f239d5fc8", + "23907ad3c3c47f77a105165cc1e7f406ac3e192785e0edb374530d5ee18efc112fe4a00046dbecff7005f6ca19eeb827", + "eeb74454e8809f97d6d60a43901ad65eec73501a90844274219f2e2ece3de54b0a3fab2bee36226c1032d1d6ec000b39", + "cc43dd77d5eef06e671f69d577c1bda58284e60568a21883a51b18b616c4fe56d3b55b6a4b9a2bb6c5834bb2f408ba0d", + "a1ee80fb59e114e171e75af1fd56e7ed05e82ab5861cfbe756ba05cca68dd70055286228bd2af915c884c08b770c72cb", + "f58fab877ebd638a3eead253847a155a5efc0a97cac6bb52f1374226fb54d4a727fcb2cafab93189f18b9b17950e07d0" ] }, { @@ -460,22 +550,30 @@ "0383b264526f45d2bf94f1002ac35cd0905c853255ce3bc99dabd45beb513c7f27", "03977035063a3c00f9d99d3c45409ae0dc7ca4ee74e4358b79dc83a2a2b519cf63" ], - "pop": "02fe825146fcb5a0d55b0c1f8970ddc5bcd56461f7efa2241964824c691dc6a392a0c66ac19d4e827f3468ba57cab41e1a46243dd3c25ec5b0e477b96214a5db43", + "pop": "02a82fe8ac3c6abe94a8b085df1f1f36b1f50aee3765f49988e0b0476e35866978cfa023fdf723622d8d5b702fc7748ac43fd7f3c3f44f8af1a1207267fc9da135", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49025f5c6b5c45aefafeab56d42aaf10964178b90d52466c6d25308408ea913a50bf02835119e04d272b61d833d1811b06761d3978b9eaf8d930b55100e54e305e820a0241a586f2f9f82a69da02086d498c0a30324dc25734145aca070c1ab40217e326031481e78f8669d8107bcbc418bce3254cdeefd48e8f68046b77bd3de7ef375a1603ff971fdcdde07efe0392d9ba8cfc339893dd7b42728b91524d61d1d014376eac0383b264526f45d2bf94f1002ac35cd0905c853255ce3bc99dabd45beb513c7f2703977035063a3c00f9d99d3c45409ae0dc7ca4ee74e4358b79dc83a2a2b519cf63024fecde50ff76e4b0e14e1468b4818fc4a259706a25c7ba6aa7603e36ddae3150", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a982ed2a1ab96f898d6941c21799d0541bd4a4e8cb9672ea422a8ea554793efc9841f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49025f5c6b5c45aefafeab56d42aaf10964178b90d52466c6d25308408ea913a50bf02835119e04d272b61d833d1811b06761d3978b9eaf8d930b55100e54e305e820a0241a586f2f9f82a69da02086d498c0a30324dc25734145aca070c1ab40217e326031481e78f8669d8107bcbc418bce3254cdeefd48e8f68046b77bd3de7ef375a1603ff971fdcdde07efe0392d9ba8cfc339893dd7b42728b91524d61d1d014376eac0383b264526f45d2bf94f1002ac35cd0905c853255ce3bc99dabd45beb513c7f2703977035063a3c00f9d99d3c45409ae0dc7ca4ee74e4358b79dc83a2a2b519cf63024fecde50ff76e4b0e14e1468b4818fc4a259706a25c7ba6aa7603e36ddae3150", + "nonce": "78b15878a886d3939af39a180e52cd0704395b8355fcb37a0b4498fd8597c1e2", + "nonce_commitment": "02a82fe8ac3c6abe94a8b085df1f1f36b1f50aee3765f49988e0b0476e35866978", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402a82fe8ac3c6abe94a8b085df1f1f36b1f50aee3765f49988e0b0476e35866978025f5c6b5c45aefafeab56d42aaf10964178b90d52466c6d25308408ea913a50bf1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49025f5c6b5c45aefafeab56d42aaf10964178b90d52466c6d25308408ea913a50bf02835119e04d272b61d833d1811b06761d3978b9eaf8d930b55100e54e305e820a0241a586f2f9f82a69da02086d498c0a30324dc25734145aca070c1ab40217e326031481e78f8669d8107bcbc418bce3254cdeefd48e8f68046b77bd3de7ef375a1603ff971fdcdde07efe0392d9ba8cfc339893dd7b42728b91524d61d1d014376eac0383b264526f45d2bf94f1002ac35cd0905c853255ce3bc99dabd45beb513c7f2703977035063a3c00f9d99d3c45409ae0dc7ca4ee74e4358b79dc83a2a2b519cf63024fecde50ff76e4b0e14e1468b4818fc4a259706a25c7ba6aa7603e36ddae3150", + "challenge": "e8fd5277e2728bdf356a0936dd7ceddede4cef77801299be217f728861a7510d" + }, "encrypted_shares": [ - "b86302bc16bbd3750486cd01d2501292e7d56a866bd6724a8ad0a26e9764222db396dc4c9c91112af2e1f1ec25404473", - "1be0cc82223546ca9a0c48ef26b3a4ff622d2a349a9b581ee06084ba466e35461dc12db1c9e122da36e9ecda82d96dfb", - "316b215b1c0d1ce740d443ed661be293d91c379bd6d35b9bb57139d445f45ff3131e81d88e2cfca5a92072bac0154854", - "f4e5cae45f0436d13409dbcedb7d5534ee9a8f0ca8b274c761bbb1b4ba8af8fd45ba8a619799593f5b86eb3c768ed5ec", - "c409e3f8b13de31e2f175060f2922bdba82e67580dc43c153f448356d3e88f87274eb31aa1293e600fbc9cc7395d379e", - "79cac05f3ba8db918e4433d868a4649971b8c816d1f6909d8ad49da93a91684d02026a20146d598c381302f28b9a057e", - "1027ddbcf1d551c8afed5c4f5fc6743182eded036cd80dce2c2c98b96952b478c535e872f7875084aa15f41b63310c93", - "7d295afb7129849f212d82bc613c35bf156b6c0f662a3fefbb7c9155e40b6070f81dd8db47dcc82a00899b25ca8982de", - "74bc65974c0eaebe639608d6deb50d994ba17e70b91a5268fa50d235158f14be0282a4021c0a5619953b0e97967f1fce", - "880279785e1129568167eb412bb8e8beffa36ac34f49f044b5698d5778e27d07a782cd858466fb225c9078cb8e8729fd", - "79a0d02cbf57649bcf2bb5f583457cde3ad5934d8e126d738920de57b7327c4328e530c5edd3f2507d778f0af02ab6ad", - "4f6228456e716b3f293b6e2cbccb5aaaf806dfc79afc9b30a0b3d77eb19bb8d65d7ca125c9e8df36588f6e426af3e754", - "f06a6e479df097e74c0dbd4d6e3b7a02493a9e1d71fbc78a50fc632aac188c9e29c3472dd827c9a34dbdefe8b5d011df", - "59e224587b5fb7bf5b8b61653afb2441034892599837d3a50f7aa4be515298459f401448b8760acfed7a431209d7ee74" + "7f6d292cfd193b18727c59d48c575c1f8c14ca545bcdd51fb77e48c4f1771ab878b65f1aeaf138c971ddc15fec9d41bc", + "285d7cfdca8d1997a2deaa036f6c32debbdd8d12772b4cd4491bd1a6b3015d2564fc64aa8a5a6f3e06e5a985d2ed8838", + "fc5ed7db86095eebc78559bcc391a03ba49186121c6f226e3e041d9af505cacba530ab91959e30fe6e8a2d10f28bf8dc", + "b2e86e3b454405cd0d12c51121dfffa561448bce06f564075e7ecfbc9ad8bb86dfb3a3189d5992cc44b7b2492ed9f9c0", + "2c40f73cadade8db2402f08f2224cc1108794127fe3cc6bfa654845f6245dfc9c0bb547b6b3855a3902b82c63b67f861", + "88915d7702c34e06f6baea2b18886ee736faff25534b95171535224ceb3cb449443f5b8ff7563a1d6b5b095c4055c578", + "4525a3e6387ee2c12004718a3ed9027999acdb5d2309c159e991a7c7a19b54ad7090eb417173284d5a78d09c68b2d2de", + "60a64f62c042ccc7f92417e8c6920070926ffce633ebeee160449f628215de82524f3096a29cc2986c7cc77bd498301d", + "c4a8e0ce2e6b3d7a6a9c93edded7b1549f36b5a3400a1fca7af556d9dc4f651b22646663996ffc34b4e44babe24a6204", + "a2749dc7c6c0e78ac0b488ee0126cade0149a2b23266479fc4fe6c462f6240391646d9b035574d3f8a3fb7f7f97d13cb", + "9c189275c0d9ab8ee0370529d74b462c03b4175f19c15dfce24f92dfd1ad2920a419e83bf1148db72dd944bfd17ef7d7", + "275072a4a32ea45733ffd2ce848bc6360e237cd6ec921af51bd00f21aa61099f7c7da70b15b3cc7c1ec65790117c4a20", + "e2816d51126eb4a034c218fa4a7a5899e8ee76b93c5987aab4da2e29d93daebf997cfe65312f2bae8499cb28cbc4320d", + "1cc352b1bfcaef16bdb568978f3580a28bb8c3906898eec65224b28fff8c6f4d9d57590b0ce8497a6ad15b336a03356b" ] }, { @@ -490,22 +588,30 @@ "0376ad624ba60d02c1d2d151fcf5318de3a79d7d257a19cc99dd28d08bb5318b9e", "02896784b3607b26cfdadf04878cb76ea81ce46893196d5bf6f14af193e6633523" ], - "pop": "024c2e2387fc1600eb6da6edabaab8be811cd4c48ec5af13ff1a22508fd0515fc963f629ed03c65ba08d86c398a752afe245ee19ec31b41ef8b36fdc0342a17df0", + "pop": "030d8eaa5703ead358a5623183b689036edfb609a8b094b443f84f2341c8b08de75334b722a0d7e233d4eee01e178c2b2068a3506c169519c86b81ee9666d2ae21", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902090c8ba9e7280642d1d9d7aadab4cc8bca04bef8cd5acfa5509e249007d31d5a037656971b2e261daf3d42095509c47b3dc317af77f0b6562806e28e92cb2ad2670357374b37f5deb0046a47644288fd8592e55245e1fde6d6fc2383742cf4a34fb803379a68a4b09775a7bab05a7497626504d9458b5808fc91f9c64ee584be07b76302ac1fe63a050faabdf196971293412735952ed58fb47e27e3b7888939fd74adba0376ad624ba60d02c1d2d151fcf5318de3a79d7d257a19cc99dd28d08bb5318b9e02896784b3607b26cfdadf04878cb76ea81ce46893196d5bf6f14af193e663352303e6291ea571285bf18c16a3b12f85ac8db318fe4818c3b2def993606cdd0d517b", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98f1103bcb7a4b2f76bacab8ce4e4cee698a7f0ce83d1fabefac849583c28c77a51f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902090c8ba9e7280642d1d9d7aadab4cc8bca04bef8cd5acfa5509e249007d31d5a037656971b2e261daf3d42095509c47b3dc317af77f0b6562806e28e92cb2ad2670357374b37f5deb0046a47644288fd8592e55245e1fde6d6fc2383742cf4a34fb803379a68a4b09775a7bab05a7497626504d9458b5808fc91f9c64ee584be07b76302ac1fe63a050faabdf196971293412735952ed58fb47e27e3b7888939fd74adba0376ad624ba60d02c1d2d151fcf5318de3a79d7d257a19cc99dd28d08bb5318b9e02896784b3607b26cfdadf04878cb76ea81ce46893196d5bf6f14af193e663352303e6291ea571285bf18c16a3b12f85ac8db318fe4818c3b2def993606cdd0d517b", + "nonce": "6d93f144d07317227dfb57157b8280259ce00e1d45b353a4ae6e4726c1d28d19", + "nonce_commitment": "030d8eaa5703ead358a5623183b689036edfb609a8b094b443f84f2341c8b08de7", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864030d8eaa5703ead358a5623183b689036edfb609a8b094b443f84f2341c8b08de702090c8ba9e7280642d1d9d7aadab4cc8bca04bef8cd5acfa5509e249007d31d5a1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902090c8ba9e7280642d1d9d7aadab4cc8bca04bef8cd5acfa5509e249007d31d5a037656971b2e261daf3d42095509c47b3dc317af77f0b6562806e28e92cb2ad2670357374b37f5deb0046a47644288fd8592e55245e1fde6d6fc2383742cf4a34fb803379a68a4b09775a7bab05a7497626504d9458b5808fc91f9c64ee584be07b76302ac1fe63a050faabdf196971293412735952ed58fb47e27e3b7888939fd74adba0376ad624ba60d02c1d2d151fcf5318de3a79d7d257a19cc99dd28d08bb5318b9e02896784b3607b26cfdadf04878cb76ea81ce46893196d5bf6f14af193e663352303e6291ea571285bf18c16a3b12f85ac8db318fe4818c3b2def993606cdd0d517b", + "challenge": "edd44cf260f1bb7b8a025e0249d01aa456ad199225b61141c612102317741a88" + }, "encrypted_shares": [ - "64182e75b7f126a8bcc5dec90ffded51e21f7bdb8a9c24b3795a14dfe00f9c0f9b4dab50995f6023510c8afc7672d904", - "4c7038e8db4aa0e9f6fe3ae4a8b02d7b384d1e4c60e17baf05618925f08a863354c65f506e10d301908c6ca3cff23a47", - "4c6618d6e685759c8e31c5f1471543e189898ae6841e41a47efd6d1c15655b277702bc06acc7f04719078e70dc4975db", - "26b0e50ec578b78de1fd896efe2aa809c4cf5fa69860774fee8f95263eb65ee107de8b50bb8dc647230d08db5a0d6952", - "d7f60e330e079187c3d4c19c0d112ef2f1a5386714ca043f69a6d9b4dfad7dc470886c8731563cb3fdb3356f8fa0c3f6", - "0dd9e98daa97f46bc6a6e80871f334489173d2c81c7becdb1d19e035c616742a21da616df7937e5f74502d0385ba4100", - "32a165ddf46e1db19daced746cb778e9f4446d6587e8180ca52972fc70ba3dd657cc7c04af68e86fb7c5f82722c10089", - "1d4825b09206002d7f43b43f6a849a74ada36736b63d7b4c7ad7dff5406afbf31bfaf2ff0bfabcd4cd9508e6c9848e13", - "4558ce1a54e8468ff5f0e93070c3da4258fe616813352e3333b5fd6ce8fb3edf64aabcea631959317581cc4984e5284c", - "68cc2e86879581a89be4739193c33dfb501292fb2746690797b3c30aea522199d40712627c9cf0093c827c7fdc1f6985", - "acba4fad9316e28608f3d84e793f6db5dae938b52d0274ccdd7589078f2735d5acc20a14b812c8b5d2d7f0c78f888610", - "007456fe6f986fa91fa78e741412a68d1dd6f15d30b5b7ac3e26b8b5cf0c1ce6fbd663b60880142ce357027879fac3de", - "a42dcd63be8f4d932c2330d2fb83f439cf1e91a3d7ff441bab65e35c252e48213dbc75dcd2ad00fb4d634262e46958f8", - "0c0cd86d10d12d590cb5a8f76ff6da663e266f91541795e2732940462f20e52261b1b2108729152f3dbf2411033b2fed" + "1f02ae382ff6c231359681315f1dfe4d8a111666d522c477640fb400fd7ef43b6aa21138b8b0f5e2b1ca022585901512", + "948c4b8d82158d148d4a0be657bfef4429f39b90915b9be91a0e2cdb7af9b3c73e177bd23157350707b3d27487ede63e", + "2c76326efe1350f2ee6110e6e3542fdfc8139ef0dec0d58ba98a6605059be97a2dcec5e3161b8eb43063fd5ca3a8544a", + "d52bb5ee2d8f54a3689af24895caf3115f81bb169685efad121827eaec043f05215c65d7fe80680f29dffdf2569cea14", + "9dbd28e132b127a701718edc2a7449aa34a07602ff3751c5a5f581860754cbc7bf387511aea4cca90739c831e42b7005", + "444069483abbe3b873c06b45df8be359f930bd0d9c2ca01b44182ce7edf3b700bf512bc064bc57c961f6cdb27298dccf", + "2a818d54d496d199b8522d8e8e997d2f9ebeb821991d14a27c1c623e04dca55c64a3b5eee138efec6ccbe80779819d0d", + "df88d8d648735feadb77bca5b5fe7074119ebaf389fccc14235abb55581aa83a103cb788897007a4dd326c0335da5ed4", + "2c95c9cc75971795a21135ab18623e0fbfb76e516e6ef9daf1e7d2aaa63b7c15d068681beda3e82acc8cd2933ee7286a", + "39645f013139f92f7baa563807009d881adc6da2f21f24188cbd688735f9b87d29fc0e927ac9e507f52091629b8d2951", + "7cb5941421290a289dfeb47d2e008eaba03e0cbf7bdeb432f93e032c13f978eeee71fadcbc8f5f8fb5a2601024865c90", + "07b80b08b281875296ee8d9f0482f8df7c4fbdcedb5662b2d938f404c24d0b8bdcf951e4faaca9856fc385e25e90c65e", + "358b6559981feba8da1a2a93eb781a8c8905e867119174825b2da422838989169dfc2c2c66e27b006b0bccb5f633874f", + "18880834ded30683a168c9eb61b9cc92d7242f2fbc2a9d3761ae9e8d5e78b336ff77d5ba44cd0275c03623292572cbbb" ] }, { @@ -520,22 +626,30 @@ "021221d9c8ea4fb7c4489a1c9de725e03bda1675cb946c730dc025deb95cf00a84", "029eaa33be5c49e88d3b376787c49984b82a6212d77997aa84e01322e5c9c81ccb" ], - "pop": "0348d22f2f2544958a153fd81c4ff2278920a167c72552ab3b75fcc9b5b8e6c698d8898ffd59909e316a8c2572fda6b34b3257945fdb38884d0c76def94685f72a", + "pop": "03656cdafd7c7bf290dc131743ac9f6b896b0595882cba8f4d03305e1bff04726adfab6bcf70f5c78f0f3ac6e612cbb2cd4835407b9ddae1b32c73eb8e08195869", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490227274a81280503025a85015f6db6baee01a0913b17d60aa0b4824fa679093b4b03a5feeb3bf59e429d058e41f782b282eafcf2bd717803fa6cfefae04429fb9e700264730f670d02f3e9912a9e7e56e86b6d9ea957ce4aae144864fc3398428c11c903025506b25599d255ccf749cec3f403a0f79f878168507deb12160a44d19e6fd2030ecd13aec79f2b582b8abcf290a68c9ad2497f873bc5244b66d4c62db2e9d802021221d9c8ea4fb7c4489a1c9de725e03bda1675cb946c730dc025deb95cf00a84029eaa33be5c49e88d3b376787c49984b82a6212d77997aa84e01322e5c9c81ccb036161a36669fd45293969123bbe09e782ce241d8f3f9a2683a874319c5b260439", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a984eb97a3cea8a3f7d30d7460be5db0cf037d9eb17fb63e92a5dbae78bdfcaef0c1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490227274a81280503025a85015f6db6baee01a0913b17d60aa0b4824fa679093b4b03a5feeb3bf59e429d058e41f782b282eafcf2bd717803fa6cfefae04429fb9e700264730f670d02f3e9912a9e7e56e86b6d9ea957ce4aae144864fc3398428c11c903025506b25599d255ccf749cec3f403a0f79f878168507deb12160a44d19e6fd2030ecd13aec79f2b582b8abcf290a68c9ad2497f873bc5244b66d4c62db2e9d802021221d9c8ea4fb7c4489a1c9de725e03bda1675cb946c730dc025deb95cf00a84029eaa33be5c49e88d3b376787c49984b82a6212d77997aa84e01322e5c9c81ccb036161a36669fd45293969123bbe09e782ce241d8f3f9a2683a874319c5b260439", + "nonce": "e21048632aab45d7180438c0cad2dcee7b014a1bb4e65904212a022514f0b4ed", + "nonce_commitment": "03656cdafd7c7bf290dc131743ac9f6b896b0595882cba8f4d03305e1bff04726a", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403656cdafd7c7bf290dc131743ac9f6b896b0595882cba8f4d03305e1bff04726a0227274a81280503025a85015f6db6baee01a0913b17d60aa0b4824fa679093b4b1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490227274a81280503025a85015f6db6baee01a0913b17d60aa0b4824fa679093b4b03a5feeb3bf59e429d058e41f782b282eafcf2bd717803fa6cfefae04429fb9e700264730f670d02f3e9912a9e7e56e86b6d9ea957ce4aae144864fc3398428c11c903025506b25599d255ccf749cec3f403a0f79f878168507deb12160a44d19e6fd2030ecd13aec79f2b582b8abcf290a68c9ad2497f873bc5244b66d4c62db2e9d802021221d9c8ea4fb7c4489a1c9de725e03bda1675cb946c730dc025deb95cf00a84029eaa33be5c49e88d3b376787c49984b82a6212d77997aa84e01322e5c9c81ccb036161a36669fd45293969123bbe09e782ce241d8f3f9a2683a874319c5b260439", + "challenge": "ced2c32c40acb06805523f65c6987314ef7c134c923d1f7b7d0db092648c31e6" + }, "encrypted_shares": [ - "2e31a834492c145e6726494cbd7f6ca1f6202fd69853539c18d813fe379c44df32efc1ab21cf090fd4c94e0bb3fdb59c", - "0c47ae7527a16a7b148d0a8ca84a02a53d8a63b6fd00ab93429c9b4aba6ad65f6f669938a4f9f52a585d48dc547d3d46", - "483cd7f7e95ea8dbf559373defe99998e31b586cef8d57e8cc9ce46799acaffb21184dbbe1e6e6308074db9343bc352d", - "d9e91f818a5f7452af1e239cf6be4bdb6fc7410e29195c4cbe6d24130cb360e861c0d735a34fd35b1c39ae0e82b79dfd", - "a933cef0b4ed44c15869839f3d07e749de1fb68f0349a93ecf79c27b874d83f755613409e13a9dbbf11732cf0d12cc72", - "f9b609f4658e4795660e1abb47af109b18a96b54381f229e85214e5dbf79f9da23dac606bf0003b5a3cb9f085fc2f2c0", - "db4e5e83e198cc6c6a83880520c35167e0c8eaebdfd3dd7c0c73db5062d5efb1313d517ac0c8088a29ad57067c66150c", - "ca672bc3216085dbca6cd9e2452cbef64560b0b1c0c1f04c14f5f601528b284a2467c112adcf0e539418e65b02cd260d", - "2a1964a4603327210f7ae0f8834794f98bc597d0c8d3b1599d2d0adec8bf62f35a4c43fa6dcc9cce03c1f17a3d2ff89d", - "9a23de38b9fc8a069a2d0974de18107d265590aec245bfb8e89fd7e2fef19166a8a64af60a489b879a1781ea125c4bba", - "752f7a21efd76530c7e0a41d20c96fa786334fe1a0bb784da671f43c3d757171133c3254f6a370e2b174a37ab7ae8bb5", - "c609a19f8e73132834f0bc606c57a539432272fc8dca641fb26a9e4a02d99c9839dacd0c9fab5ba7936a920755ffb284", - "e55427ad94d690066914c58dc918fbb27e652b78e01a1d2a298525a99410c8043334a56837879113256f352239308e3d", - "cfbf866472e33db6788ae4a6e2fb3cf89d996fc8fb13ff89c5b03f85fbd56ec877601db85c4553df4b07ea0d6425e493" + "5496474a26b8fd49ea26e409ba4cf060ff9eb588264cfdac362cf11db0952017532322ea276b8545ea5492675703f02d", + "3bf0faa4ac551fcf0acbbd615d77b768237c17dc6b7e985b6553c00765333e6a590feed3b7ca43fa5a177860e9ef4335", + "3e04a2d755a35e089cd366e71b070cc9756a06ebcab502dbe044ffd90211085e6c5fee09aa2d39ba0fa52997373e133f", + "c900a6279182d14d5189b5b09ee81bee9b6bd1c0d9dc8cb7c67cda62dec96688f4380cf12d4b654fe12f961d6602b1d9", + "43233f8ba622d82a999505916765e77d7630c1980f0d974a8714e6f6713be7466568b1f03f82f8a60a4cbcfc4af9b956", + "fc8a751294e550937b0e558d17e83ea357418a978d43f3d7492747c78efce120de8e089bcfbd49945a16c26fc333ba26", + "1a9e323a2f599f84823b34a399be1c9bfd5b57d1cc313920765e4ec8388e92b5cee98f1fd53c4a061afc287d59c08547", + "ea1e679f357d70190984da871dcd60511b663d7a41bd132b6a4a2bc5ffeeb89305643766f90c41f91578b2720cccff59", + "effd64c611c2d4ce51f0106329a46303f0726546cca60137d76cc094cc910934d2e4dbe0cc7238658b71548c67b1521e", + "bdc2a6821b7bf21af1dec6d05a5499326dfe9da3bfbcca203fe84d91c8c5b36e4224b9790c750f1ee2af44b055d99ef3", + "bf58aa5701b8a09f9897c8c40a4d84dfcd48cd2efe3508b4b460e2b205906662f7c97d46c86f7d099220cb908f713091", + "ba9dc21de707c6d7b82100f79c34af7047ec7b0dc1076aaab5dace5d372ee6daf184386e3276b3a6a8eeb222d7b85366", + "d5179c17ba1271641f47715a2ee482da03c2a2ef6a4bacce6351549c0db8c087ba042d76a1f5e7b7a46eee16003f77bd", + "a26c304b1e38416fdca4c87f1b8da32e710ffb426de94ca3fc68bd423d2164c98d169f37dd153e818e2536998a78ac50" ] }, { @@ -550,22 +664,30 @@ "02a518224925bb4acf3ecbdadc010767ecea44b573ba95f1bb8b95beb502b32104", "02740d42f724b2b8feae34b194552fe15ae20bbf5d1ef0b715305ae3fe6b5368a4" ], - "pop": "03ef3828cbdfc25ca623b75eecb0101e724aeaadcde15ee010c5dcd30ce09af9fbf4d13894f9dcd5d4aadfa58ed94d7174ea33b961de3f44f46028eaecd57e317e", + "pop": "02c4230698c3ef4611b2d85df701018a1a56905e36fedb4c2834e8034ddcf664a25c52f9dbe3a047a977146bad7a910f2bdb07d209823f717f3fb937e6dd9dec97", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038fce3f5252fb0ca36eeba65102672cb5bc6755177ba833dc601d538677ff9255030b66bd946b9cfdea2b9f151b8c2fb8d4bb7b1677b7ab1be9740cc819bdf179b603005cb473c499892e71258ce8e6e40d5b8862008d79f5384f9f9f6b09ef86b691036d0184bee50a3af415bcb4f617f0510a90f234d43a69eef47110da37748bea1403d9a59dfb29f3d92a8ca58bfa0cb08172d1e8a033ae6ed749759421a6f5d577f502a518224925bb4acf3ecbdadc010767ecea44b573ba95f1bb8b95beb502b3210402740d42f724b2b8feae34b194552fe15ae20bbf5d1ef0b715305ae3fe6b5368a4039d7cdb373d5067737b86164e8dc2462c6bc948189dd38e25f5f06a00f6058fb1", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98adff6dd7106304ca5e6839f5dbf19b9856799f26817b79355aef6c8ecd07d8d01f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038fce3f5252fb0ca36eeba65102672cb5bc6755177ba833dc601d538677ff9255030b66bd946b9cfdea2b9f151b8c2fb8d4bb7b1677b7ab1be9740cc819bdf179b603005cb473c499892e71258ce8e6e40d5b8862008d79f5384f9f9f6b09ef86b691036d0184bee50a3af415bcb4f617f0510a90f234d43a69eef47110da37748bea1403d9a59dfb29f3d92a8ca58bfa0cb08172d1e8a033ae6ed749759421a6f5d577f502a518224925bb4acf3ecbdadc010767ecea44b573ba95f1bb8b95beb502b3210402740d42f724b2b8feae34b194552fe15ae20bbf5d1ef0b715305ae3fe6b5368a4039d7cdb373d5067737b86164e8dc2462c6bc948189dd38e25f5f06a00f6058fb1", + "nonce": "590170c7d5d355f9718cc8e0c0c6e52e48fe9a20ffccba9fc52d6f5a29ded5da", + "nonce_commitment": "02c4230698c3ef4611b2d85df701018a1a56905e36fedb4c2834e8034ddcf664a2", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402c4230698c3ef4611b2d85df701018a1a56905e36fedb4c2834e8034ddcf664a2038fce3f5252fb0ca36eeba65102672cb5bc6755177ba833dc601d538677ff92551f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038fce3f5252fb0ca36eeba65102672cb5bc6755177ba833dc601d538677ff9255030b66bd946b9cfdea2b9f151b8c2fb8d4bb7b1677b7ab1be9740cc819bdf179b603005cb473c499892e71258ce8e6e40d5b8862008d79f5384f9f9f6b09ef86b691036d0184bee50a3af415bcb4f617f0510a90f234d43a69eef47110da37748bea1403d9a59dfb29f3d92a8ca58bfa0cb08172d1e8a033ae6ed749759421a6f5d577f502a518224925bb4acf3ecbdadc010767ecea44b573ba95f1bb8b95beb502b3210402740d42f724b2b8feae34b194552fe15ae20bbf5d1ef0b715305ae3fe6b5368a4039d7cdb373d5067737b86164e8dc2462c6bc948189dd38e25f5f06a00f6058fb1", + "challenge": "68be3091b176cd1be3338f20d5ca1192772a5116c2c54a8ee95d239babc4e31d" + }, "encrypted_shares": [ - "d23d0e189af314f25c0f28aa24943eecb62746b6beb805d1b7e17f1e454d6edd5ca8a4af6354ab289c064b3dd7cbd838", - "3ac8279890f911777f9d0a61c2adc34668359272f46b3625b68258b6cd2c35caf00814cdc8ff50c0d4d581a673b7a495", - "0a66e85f473c8ec3de08a70a5970f226182186c4a0d2e36ab0d98cb5a5befca438cdd4ec30bddd04f358beee753115e5", - "e3f3678e5a6610f52190acdbff5fea3b11ec93b68abd429c22109c93d5e16def56abfcd19bc9d000cea3f9ff152dc6b5", - "581c36f721c334b4d2d22f5d5d13f774bb9a6ab1fdc43b6e07ec25f4153c5da25ee362aebed4681e6ab869414b1b8e1d", - "f567b1aa2107372073feb929200e238cf8f8f12d82ee3acdc7a60f2af462d8b137e81ed52421aaeeb990c56fee42ea5f", - "65ff14b8eabaa0a308a00029c89bc37dbcb3131a2959294c1be1ef094ff00d886502e2ca40ed44901cea194eaae4240f", - "3125848460ad3985348715911c6972fad517a1a24d9bf1199f0ccb67b2f5272919f925294d7c1f7875226de966169c57", - "a914839e0ecff4ad8210b1c8d37a138950662fcfef75787ff15f142b9ba3a8dc5892e8ead7d526c51a84500c8c171576", - "4e2bb800804a94a24ca0318e17f13a5a43e68fa022f7f99538f3e177005cba2fc80a54a757acdd5292e7a46bf301e619", - "97984f7bc9586068c61635a0a624c54db8f6d74e0d2a9e56e1feb4e90174f45e9f5e879d6d87661121125faf84c18104", - "0f6214e6c4654340106d3816798ffab02fcc97cc371fd1fc07c4eaba754ca5baa8925e2370694f655c66824064f98bf7", - "a5d423146da9563142baa9ec697a1d325393fa89ce05da90259c3de11c22757e2dd11973c75dafe7bfe571ac5d6a5c90", - "58137f31b63fa54edbb7eb3e6cd7419772ca165dd658fe3c57e52095c1d3bcb71b7ef50ab4b53cf329189c06ae799973" + "232b2fa8512472a10ba04a6c117b7e5a63da9c621c90232fcd755a241a5b51f83975b8687f073310f63d566f5d669ede", + "a00321a00fe7b865c77571fe3ac32c9f82b8e04f7ed1240c401eda765d04c6f6ad4a483b06a4739cae7814ab66f642b3", + "f429af62d5f88ee96443af484c59163b18a453a52c3262ff825d9a8c18e89319fd92723ef46388a8c01fe82690db6c7c", + "a644e70c9de6f7aaa48353cfbd9f363a056c0c6443c4f57655a010d318ecc8763f85652c39753dd2e98db0b598519ffc", + "f40cd2b70ba92db65b6c359881c9286eb0bb5ecc6a62297b2a6b38a95f64df03f55bfc163d82264af15f59b5aa652c1e", + "d93fdfea94b4cadcda4f7744bda7a5fdd5449e36e398fc5c1bff8efa1beaab84cde52d3b25bc2ba600a1aecfe89971fc", + "7f0560131dcdaf1706b6ded3ebcac397f271687b0a5ff699355eb19d80b191a1714ae3685c2776d63bbfa9bdf057e2fa", + "0da18529b8cd1f42ea462dbae05fe8242956e74712ec739b4522301f0b9b9c542ed2e592fb8d36214713f6ac2fe79f7b", + "9f3043bf5dda3c6d936aabaa31ceac3e8a832489b4f8746971511e4b1a3ef638acc5bde6e094fead55a30ce7e44c3311", + "142a243d2b84bfa4c0e0b5a5993ab4d8d4a3327b36949565d235157f66d5391f16c05b33c06a3fcfda62b52f2c011adf", + "c37c28cff82c532deacb4bb63c8e5ea80bfaf900837c4ad0d8ded2408f4c9c35ac5861a82de3686ff8e3b34cebe2786b", + "dfbd1fc8bdc937f2c66ee4d6030384ab6185d6aaf1cfb41dbbf0f5bda5530416ce78286747a0beb7277a6692193fe9fc", + "c309f897dd64d4bc5f413a0e35b3f15f4297425aef357c3e90750206950da82ed785dd07fe3140ff72980cc6573e910f", + "0d4929bfbbfdea557439672f158b631ed37ef964732e9a0e1b0a922c9aff1f33d666a215162bb4a62a5e6cdd591f1beb" ] }, { @@ -580,22 +702,30 @@ "0246bcf194a197e65634895f60d540fb5168963aec254dc9e1481c1ceaa2eddc36", "02f04c60f3afecd501bd5742c0476408c70a140dae619728bd378cf9417b295f57" ], - "pop": "03cfd7083a8dae265bca8b7a0857d11a87f8678942bc9d8ffe739d08858335b7896c6c3e0f31fc067aa3c6cd2c6346466ba6bf2a81ab7e154157ffd063f1aea543", + "pop": "02381954f89a750dadb35b4c21736ab183bd73297125091e56a158154aa4decc855e3117db81e36a111d9ec0fd719ff70a3ef13e09525ccf262a8307f9d18667c7", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902e7ed96360065c607aaeb4160354ff18b5e9563597833ff5168b1b30c9f98568402c5f1d57333211e466af91aae253831d20f4d4695b7fbd8349fbb96dc9d87dac603ec13c8699fe953b95e16cc244de070aa1b0c560cad2d95f1e3ae5527d89d4c4a039cbd4bae5f065593da419bfa65e389a90d142d4584add5058a834c4ae4af13cc03ad1773f595260ac150564135ae6a2d708ae811a67680831bf46bcee12a53788f0246bcf194a197e65634895f60d540fb5168963aec254dc9e1481c1ceaa2eddc3602f04c60f3afecd501bd5742c0476408c70a140dae619728bd378cf9417b295f57021575be706ffe480733c2786b3a80f49e1dc1fca6c4222d79f7c22e2d581448c0", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a9805b9884bc386965323767075e4016a308844bfd6b74e61e9b9ebcfae74e7dfad1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902e7ed96360065c607aaeb4160354ff18b5e9563597833ff5168b1b30c9f98568402c5f1d57333211e466af91aae253831d20f4d4695b7fbd8349fbb96dc9d87dac603ec13c8699fe953b95e16cc244de070aa1b0c560cad2d95f1e3ae5527d89d4c4a039cbd4bae5f065593da419bfa65e389a90d142d4584add5058a834c4ae4af13cc03ad1773f595260ac150564135ae6a2d708ae811a67680831bf46bcee12a53788f0246bcf194a197e65634895f60d540fb5168963aec254dc9e1481c1ceaa2eddc3602f04c60f3afecd501bd5742c0476408c70a140dae619728bd378cf9417b295f57021575be706ffe480733c2786b3a80f49e1dc1fca6c4222d79f7c22e2d581448c0", + "nonce": "7261d9a6b45877b5c31f2ed7e8392a06631c62e348db92574e00b5d37b741502", + "nonce_commitment": "02381954f89a750dadb35b4c21736ab183bd73297125091e56a158154aa4decc85", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402381954f89a750dadb35b4c21736ab183bd73297125091e56a158154aa4decc8502e7ed96360065c607aaeb4160354ff18b5e9563597833ff5168b1b30c9f9856841f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902e7ed96360065c607aaeb4160354ff18b5e9563597833ff5168b1b30c9f98568402c5f1d57333211e466af91aae253831d20f4d4695b7fbd8349fbb96dc9d87dac603ec13c8699fe953b95e16cc244de070aa1b0c560cad2d95f1e3ae5527d89d4c4a039cbd4bae5f065593da419bfa65e389a90d142d4584add5058a834c4ae4af13cc03ad1773f595260ac150564135ae6a2d708ae811a67680831bf46bcee12a53788f0246bcf194a197e65634895f60d540fb5168963aec254dc9e1481c1ceaa2eddc3602f04c60f3afecd501bd5742c0476408c70a140dae619728bd378cf9417b295f57021575be706ffe480733c2786b3a80f49e1dc1fca6c4222d79f7c22e2d581448c0", + "challenge": "9a647840c6eb409bd4d01466d2b6c1ecc405b56449bd3242e4d5e0c9b8f4ac6c" + }, "encrypted_shares": [ - "0878609704737084ba492d821dedd9f1835f4dc488ac5aa1a309cec0227035a406f6ac679f918b8b4691f5868fa18a3a", - "8a29295f27e605d6d660d38e2325855d2214cb7c4767c8f3b477185df301e57cfd4bab597b673e08a92646ccf3f8ae42", - "68d175e3a6b77eeac98fb2fc901d2e874b8192033cf6dc0c9af448e36600847dd143f6ac34437e325bdd7aaabcbdeee1", - "f610909085cc459c19e3d033a0a69156b68b662a69e23b705dff549c51c5335dcc262191e53cb335705a2eb74f3aaab6", - "3c7a48d7e07a867c48558daa6825c481dc81bc658062c0ac60ef188214c09b362c5e2c9e515ec100c324669173f4bbd5", - "161a858e461c82d4c76e2ba0847d2eb24cd6bed6e251e01069c7c9f99df36209b843e253604aefed61c9014c29d94125", - "4769b20ee27428c38395f95b7320df97894adde733e4b8c6fd10d9cab171e1bf442f9daa250cd9d514c2b14cba0c9fa6", - "f18cf4cc6af1710d36c7a8dccfc74ed998c44d0deabdfbe0bcc08c4d10f99a46d7b276e8f22cae7d55c8e4fb7f63604c", - "fa1e4dafa79eae687afe5af332dbbedbb22695c362b89ebd653056b57e88be4785bc7dad3abc133c4b4900c4c409fbac", - "c868c300bca273c5a5760369c3fcee31b0eb0e5f7eefb025a5be4728bcc4d63090311f9e52e1100f37c2cf275012c5af", - "ca41cae9d973f41baacd4214e7e35ddbabdd11ca988a74ce034b6e6ebb5a7c39416815687e3a7072657c7394426b9b75", - "a1bf80eeb350b56d8193f4d6fc02631ba7d1af5870ceef0cf852f8c1478382f726e73dd21e670004939367ed721708e5", - "c094acba3c5617ef33e6554b24b3cb52c0bebec29cb33e61204c9c89e40f38ba392bf13d8bc888b45378e3da93ce528c", - "701c064eb851d8dfba1d4a1a02715761bc32ab5e9e856557a75f743c2cf4b1684ebf0046d33bbb95fcf837ebadebd412" + "967e5464d179370f4f9e227bfaa2126f8427241dff5d79710bdd468fb94231119a2510a4f8bbfe715afb511f196f8459", + "513c39fc520e842d9a3cfc3f5b0cd0d8c5ae6c97b3f0cd3c177f637657b1a2a2fb985dd3bddbb71ee7ad4711bc2b36ca", + "c3b4df8e85adf58e413ab46b5d0bc6c5b134bbf528b6fd26fe5545e623fd484d897a7d5d8b8c2879ec4bae5bbd8c3d31", + "44047d62d2c0c815e6cb75e6cbd23ddd651d569b5dc46159478ef52fd34d9151bff65e77eacd3ba56ce2d7a96ef348d4", + "0f30f2d9e1efc9d739b296c357943b7b8e6c5f2fbc9242ae2082ea81b9593a92c54133adb6d7777b67ce1e7a479ac7d5", + "1796b7e01aa940bb6e43d1146758c0ae561e2ebc1793255610d771d7d57ca44a9829fc2c7170172e391549fd3f66322e", + "67cb7eab72e87656103d0847838c58e5f245b5341b8d43165947bb35b9a10acf547fb048ed6b1a60a93bcbb44218f52a", + "89773dd0185fc3ad394a12e633914c5917685189c1eb0d932d8b8f265af15d9e57c09f59cc03490fcfa2d6c5171378cf", + "2e091c8807f853cea07b2d4177199ca7741214333f463389664ab7ff79fcd5da1dbb9e37d789b968bf0dc1ee63a9a8e9", + "fc914e236b95f5ed92ad6fff0e00839134f93c47bd29dcaef1a504ef16ac0d712bf45194506d0bff2e5fd0c2742e266e", + "34cd0e5179486b0b6be7fe6a34b4d139f4e1b67486edf1bd403e80f6ba0bac34dd4520fc5825304d3ad30093f2c39d72", + "25e31115eeb2f9ee7ed1239a19919eff0899f66690407a5cc4c57d6d5d2514e8934914ce3c36934938aec3cef273212e", + "018ab8069dd7489eecac7688efbb80415870b881673a2e68e47e83225f4bd3e0eb42160337b30a604d5eece3e1735eeb", + "8d9c94d76fa34ee149d854c91df825e684ff0f5ed45e32f96724e1930289048d20f8e43c3f4eb1da1529dfb877a94917" ] }, { @@ -610,22 +740,30 @@ "03653bf707d0c43986427ba3a9a68236174b832ec122bd9b32b42dee645febd240", "03ef5ed844d14265295e3960da6e2e0963f8b254710cdf523a98db664d06e81a8e" ], - "pop": "0207a21bd084ca5608deef38369c0274e855a9523e3c2f2508ed430a41a458a6f0fdae764a757f23489f8013a0720a98f498537dda6cdf2a07312bd64b7b524c28", + "pop": "03ab11ca62108baa39974cdb238efb83912aebacbe9602a2651b8b6a5a3cb06d68f89228389fc6a754be22cdde2adbf460a3d35807ee205f58ff2d46891dbd34b0", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490286d02724ea3240278a86be7145bd7771bf185a82627e8326c8c7a0bcabe95d5803f84623deb50aa07bf0d7a5a7b1429badacc4e263cee60a02e159c8a518cd9dcb03e1998be4784122df4aa65722a3a626e124b42fdbed5cfdece5ba7801e6cd5f27029a59df9b9d44ebfe75e3111b6489a634a0841be16e3293236f1b498ec0db4aad03051ab2a97b9b58dc453b88c0fe83dda6c114637a6f62199c217795d8b000c0a703653bf707d0c43986427ba3a9a68236174b832ec122bd9b32b42dee645febd24003ef5ed844d14265295e3960da6e2e0963f8b254710cdf523a98db664d06e81a8e021e8d6f6835f81e0116f49a1c4d81912a04283f14137773b12cfa760c10f7aeb2", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98466a7a29cc4b98281ebf6351996a500ea6c48a9642c5ad4bc4b4e913bb15009f1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490286d02724ea3240278a86be7145bd7771bf185a82627e8326c8c7a0bcabe95d5803f84623deb50aa07bf0d7a5a7b1429badacc4e263cee60a02e159c8a518cd9dcb03e1998be4784122df4aa65722a3a626e124b42fdbed5cfdece5ba7801e6cd5f27029a59df9b9d44ebfe75e3111b6489a634a0841be16e3293236f1b498ec0db4aad03051ab2a97b9b58dc453b88c0fe83dda6c114637a6f62199c217795d8b000c0a703653bf707d0c43986427ba3a9a68236174b832ec122bd9b32b42dee645febd24003ef5ed844d14265295e3960da6e2e0963f8b254710cdf523a98db664d06e81a8e021e8d6f6835f81e0116f49a1c4d81912a04283f14137773b12cfa760c10f7aeb2", + "nonce": "87b7837d3cf58e08f579b756a0e831e96c56928f6cb9a51d25827e8787eb2200", + "nonce_commitment": "03ab11ca62108baa39974cdb238efb83912aebacbe9602a2651b8b6a5a3cb06d68", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403ab11ca62108baa39974cdb238efb83912aebacbe9602a2651b8b6a5a3cb06d680286d02724ea3240278a86be7145bd7771bf185a82627e8326c8c7a0bcabe95d581f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490286d02724ea3240278a86be7145bd7771bf185a82627e8326c8c7a0bcabe95d5803f84623deb50aa07bf0d7a5a7b1429badacc4e263cee60a02e159c8a518cd9dcb03e1998be4784122df4aa65722a3a626e124b42fdbed5cfdece5ba7801e6cd5f27029a59df9b9d44ebfe75e3111b6489a634a0841be16e3293236f1b498ec0db4aad03051ab2a97b9b58dc453b88c0fe83dda6c114637a6f62199c217795d8b000c0a703653bf707d0c43986427ba3a9a68236174b832ec122bd9b32b42dee645febd24003ef5ed844d14265295e3960da6e2e0963f8b254710cdf523a98db664d06e81a8e021e8d6f6835f81e0116f49a1c4d81912a04283f14137773b12cfa760c10f7aeb2", + "challenge": "dc40b9242edcc15898785106e16f01241680103dccb194544d2cf69d31ddd541" + }, "encrypted_shares": [ - "b4be12e10e8012f31acd9e671073066cc5fe67ede60e472017f06e8ad6c5311c86cb1af6d3e37b6c669ec4f37dbf6548", - "e91547f633e478f52b60e2099a56e8825d5620117bfee32bc911b6135a8590b4fd1a353916eae43378a88680704fca97", - "d8c17b093f80c13927b208f024f8fb06719c8cca85b2fa7ce61c9690ed2df772191b5482e403567f751feb0175dfe406", - "ed40bb15130f1826b77f2f35a548adaaa88ed27af407bfbf4f42cbd7379f8c3f35c946008b75f744e0544de0a4a3fa60", - "0d68c58e34f4860da657f446e4f9e31c1aa2e75b6c5a2bd14e1413b5328fe72af6d08bb170f49ee5b0e6b0d79c649014", - "3cebb78786dba08016538e9c932b925c0a66608c38ab5e8da5361c9be9a34c95228e26cf95aa8a151d5a3a37bf31f7f6", - "abde98f956f961f09049b6e06879efa0232a63945c8ac16654e9f0a0ff87e523c03f5bfa6c65908e2adbebfd57262f62", - "daa727e964ab8ba5fdc60198ece917360c767f04394c69779982d1712136f403a2b1065fe61add4d6343fcd0d1ebd69e", - "9004c2d11ff128e140ffec51d209a07f3a39a20aad6e26cd3919dafdffa639a8a356409852ccc6adb372baa2f304780f", - "55276897c36cf92f685ab5d862faf0c9b2ddc25884ea2f78d7961763ce6702f8caa21dd1487fc02fc49ea16a697f21b3", - "75e3b568c93623463b05708eb0ff02a92037712e31ef54ec1a86c064e69a02591fed3de3f26f0ec3209aef7d36b41963", - "077881c29748fda3538e046dfd4055a64729892e3c3b85a701a5c4c7d935b614e5a68038bcc83d7debc025e6762f9acb", - "83cc42e3fb19d351160943290d2160eb25f5ed2a87961c4aa76dd19347a4965916af3f02bc2a2084afa72f7d7d5b4a43", - "c51ab0d636ba40ab9808df2fed4c0b2208f8811821bc3a2ec9ceca839320a2fd86be32e1c23b25a6f7508c29e3fcfad9" + "8ef340862fc8b8b1cc45d49b1ba0ab8a4d1097202a80c10964c52b576f698d0c30e2d7aa5f20ddce321ebdd38f2756a8", + "b12c252e9f35f82f3f9e950330cb651a831c8b5c54ef1bde9244d1fac29ca516bdad65bfa1fc078ae2a4a07c58facee6", + "6b6191ba7c7350f5428d6988782347043f332e0d1bf390f9d672ec332b5b2217775c7159c43037869c03767bae66da01", + "da6de24e248be052d9f775a39a1a228bd197122d161ccc51cd52187b1cfe4349a3ab5193b35fe8fb2fa0c2af645d0aa2", + "b44ef39d391de46bd803121364115cfce2a501c0fe052e9af2124e747bd38bcf7914da362412c98df839e443791be8f3", + "2e4e6048434509d2596994fed9b98bd8a461d83f9b44120566102a3bc771594c6e3c16ee245577d96950b5cd482feeeb", + "02da915e87ce3a18d29bbaef85309848f6642c8c0870e545f7a7ccf385a07db1d3204656fd53c5c825403b3dfef86b14", + "3ddc832e284d954598733958a82463fc767fe0079e9dfde394b2349568a2666ca0a4ae2dcff7d77ed9912d8dab152f0a", + "082e7c115ae6ecd0c749a6605ea0c495866ecfc3b8237ae81c1d3807f8cefdbf4c3aed5d81bd2611c1919783a4f1dc2e", + "40c4ede3420d9a0c17ab05e980bc15d1b99d8a2df0e8ec7abb0806a3b9506a96409d48fdbf492d4e575988948e558627", + "dbe007c7d5bccae9e5407c02ee2592893b0a4571a7e3fc57b2c3c741509885521ed2f49a1546789807a99bc125efd281", + "f7590216d5796947b9d2820fcc87c8baf2242e4e62d225fb629402319585e8d540c2768d0be3fdd5929a8c4939118739", + "8fab55e4ca3a6f82ce5e7a9edf083de2a20797c85850f3d0382c77f2dd30fbc60d66e8a4b8355bd07ce66020cd1f1536", + "f215d2e4a5095f767fb9ab62b8c14607389993804705968801325014bde826e3611acdabd371240bb2c74087dc0f0528" ] }, { @@ -640,22 +778,30 @@ "0339cd656b6cdf84eb9fe716f904c62ed72d43fd7bdb5be9e4c3853486e84687b0", "030968a7797a54e267c531c3083619d4362ac322a656090f93b7b06d63cb5f4cec" ], - "pop": "03712a375018ea9e1ae2c11c87a3c6692876718022033438dba2340533795f7c3c6b48cc66cf786775e7db8584314a8df246205c5ebbf74887423f13714f025573", + "pop": "02304eb2baf67364b3b25ed5811607aa67f42c85b5b578328d70d8062ffbb7d587022cc55bc8e1175b51d83ea02006ae317be85545b60681745c8b42778d3a71ca", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021babfa9347f317acb16c45111e9c9053d623adee7419097cea163624a6c77398028bc1491fbf92dcac01ecb41a0f1858a0cc39b14734c31ab591b77aafae16f2b7025a327265522fbab2485fc46754744e74394093e4c91ba6df2bd3b589b91e61a202e98b7249ea5794645c0e49e41b354b15c165a63cfb7d4ac3e304dd5f68364a1402aa4f42a30d2b7eef209d96da798373dde9910aaa1dadd8d8b55b0e3f277d7cc30339cd656b6cdf84eb9fe716f904c62ed72d43fd7bdb5be9e4c3853486e84687b0030968a7797a54e267c531c3083619d4362ac322a656090f93b7b06d63cb5f4cec02d0e9b7c9d510929110f485450c7d2005e84540d30fad3793644c9dcc5508bf28", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98f2239413cea29eef862d9f1387f3d4b4c508cca0ad9bd8ce012603d8908b4d471f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021babfa9347f317acb16c45111e9c9053d623adee7419097cea163624a6c77398028bc1491fbf92dcac01ecb41a0f1858a0cc39b14734c31ab591b77aafae16f2b7025a327265522fbab2485fc46754744e74394093e4c91ba6df2bd3b589b91e61a202e98b7249ea5794645c0e49e41b354b15c165a63cfb7d4ac3e304dd5f68364a1402aa4f42a30d2b7eef209d96da798373dde9910aaa1dadd8d8b55b0e3f277d7cc30339cd656b6cdf84eb9fe716f904c62ed72d43fd7bdb5be9e4c3853486e84687b0030968a7797a54e267c531c3083619d4362ac322a656090f93b7b06d63cb5f4cec02d0e9b7c9d510929110f485450c7d2005e84540d30fad3793644c9dcc5508bf28", + "nonce": "8d6ffd05542f5ee4d6d595811d387331d6f698497e7d5716c7efb2ba54dce944", + "nonce_commitment": "02304eb2baf67364b3b25ed5811607aa67f42c85b5b578328d70d8062ffbb7d587", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402304eb2baf67364b3b25ed5811607aa67f42c85b5b578328d70d8062ffbb7d587021babfa9347f317acb16c45111e9c9053d623adee7419097cea163624a6c773981f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021babfa9347f317acb16c45111e9c9053d623adee7419097cea163624a6c77398028bc1491fbf92dcac01ecb41a0f1858a0cc39b14734c31ab591b77aafae16f2b7025a327265522fbab2485fc46754744e74394093e4c91ba6df2bd3b589b91e61a202e98b7249ea5794645c0e49e41b354b15c165a63cfb7d4ac3e304dd5f68364a1402aa4f42a30d2b7eef209d96da798373dde9910aaa1dadd8d8b55b0e3f277d7cc30339cd656b6cdf84eb9fe716f904c62ed72d43fd7bdb5be9e4c3853486e84687b0030968a7797a54e267c531c3083619d4362ac322a656090f93b7b06d63cb5f4cec02d0e9b7c9d510929110f485450c7d2005e84540d30fad3793644c9dcc5508bf28", + "challenge": "d7cb5c3448866af00778826ee5e9a926e3957f7cbe38381e190c4c33334b7b62" + }, "encrypted_shares": [ - "1c7206f6fe3b4662e1ef3aaf70e09fa073c1b7ae9f542a68f29ac68e0081d149abfd15f112c1d7e84981d9ef01db4488", - "998ea64f2969d15e4af9f1a2b2bad20e846014d7a07349553659b38604c258fde3bc3ae786dc3e6848819d478a755354", - "30c8191c21483c1e6ae4e0038942465e02374dabaf4ff41373e0e6da524fa8e71003e0f9f9bbac91c19b9a927cc2f0ec", - "55eec026d58238609492cad9e2756dc10015766a516c624775fdebcf7a32504745f0484a81a4ed5abf1704a0e5295b01", - "333bfbeafc5598dd7033d8dac630adfea7e2896301e6c432a3a53174f0a96559f13426b25e4393f938573a9d948a3582", - "0bc0b9d5b7fcd78e75a8afcc3a5481b794bc253fb502fcc6431038ecc0e7d05186681bb0d001bb1637b6d46963b3e2ab", - "a0e97a87626431b1eabb2e993db0c6950a798308e531ea581fe8d2a6697e5eada5806f993be5399a94b91a6c6491909f", - "4c5782c093f36c60a5bd5e84dbe1aebc5140ea7ff882091783d2b5e4dfabf75b26b165abccc64dc0bff50a3637986b5c", - "99c124907cde46f965bd1e764f7d9e8e9256e4a51e1bccfeb66066e22d669e1615b226d6b0d95c7d4dec4ce9de8b1e0a", - "dc821a74a2b60152cacea6a3dc3765541c03d21830b489e5c5bfeabe159d32cf248a58f1719757f53a9c9d9614915bb7", - "dd9690c21416c8a5d7806f89b47589119419c19955e7b9aca6b177ace4d45d3e05e2c139eec578ecdd244b3921bab260", - "f4d002fe2f5b63574c66f3b967d2e16ad2536644962bc718c5111af201519f291ac0d621349afcee74c4d0b025c0917b", - "178d8ef21c27ec874e4f9ddbf910a5aff7828810b9dde843f392775710c4ce8f5ea8de8ecdd4efd7f368c0177e3c9b85", - "a4489a1ff9bcde95bf0f271009d354a041ae3794da41558073c59a77a8aae24835f6e79790b94f7f4e95fa4ae986d919" + "53053624c244ddcd2268ee99cf1f952ea3823af0ceb72a6ced9388a4b3cbfbeaabfad85ad6acae4d415a14e8d7a8d5ad", + "c4ccc8c112817abc9d1af6bdaad9d5282c38ac79163aab0aa2a07d9395d35a2ad0a33c2917eaf2477ba6fae34d6812b3", + "8b94cf4e6d7cbf250889695faea1dbc7ceb51261ebdf44b94c4048a9be78210cab30bc6d10d8d68aaea366c245fb1208", + "15f4403e890c403f1f38491a3b6adf7862b9cb78192a3a623ac93597faab0ef557d16ce3784f0a915fc0d9cda145c603", + "3f99d4966e02af682f113b1f48fc5f84a630521650f07efc9b3350df2c7824f792b79bafc9f271983a5a6e3647af1689", + "693f4111912c470e8337206a89181ea71e3639b6991d7187ac92d5e1415762bd5da23d9908a2df6417b1885a362e86f2", + "73edbf2f75fdcb631305ee331435c0cb7ca89294b87d39337b36789bb86d1140dcf9cd98113f54257e486a909370f95b", + "03730aaf935fb8662d60208923ebfbc5b6b18443f468085329f2e743b0d89c7cdd417207f3b8d277ff703ffeefe89c33", + "37183c9c4794bf9226b74f0ee1d55b34342aa82117bd1cdc39b1e69827f320de7bca24ea1c3a40520c271f9bcb1e55ae", + "8d283782ea6e208cc43db7b1a70fbda530e75573f8b8d6d562840d1b6bc13a356c04e8593604b7fd812c78e22fc460c9", + "8851d47ff7d382026657159257660c8bec70c3936a6da2240d3ad251764d45c56aba64cfd48fa0a3bd0e3a51c5080781", + "52109ea85d04187e3fb113126e6412c561041d703f88a77dabfa21a5996cd5453b447e2c4c01d79105535dbc5e2db370", + "b511907024b35e4cc51c27029bbb3e610fe1c1d0152a565785d50caecfba1b4da8992f6164b30c91a7ba61694ec0384c", + "84365da72eb3d29ac787af7673621b558619d8a596bc92206136fff8ebad21f247ba7a2f1b659e5c6753e9c3a34464cf" ] }, { @@ -670,22 +816,30 @@ "036e60be5cf4f3d74f5a6cc43fbb03821bba55ea45c8c2bf0f744de2f8eabd207c", "03375c34613979a6ef67293c0856ae714010d28e0ed6f0405b44e9c6f4cf608012" ], - "pop": "0202fb9094d99ae591323e6f5a90fa4202e41fcf1ab144c012f85005a8829ca30217d939018d30b200dd89f185ae14647a903d9cf49210c390e60e282b466b55c1", + "pop": "030a3ac8f9394308588326a9a7bd715d7bab3b9ff5d598a63eb07e22cb5945eb7cdb677dd3fa8937270a5c209c2a2331779fad3acc3b108e00c581e23f6510e920", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49020be7444ee8418240a533119224900c85d44e544ec819eed4947883a21de67fea03f30ff1bd63174b603d784be776a50ad8d3b69fc05200be35daab20916ba0b6dd034cefa90c68f07c1a4cb587bd32c7a0c3698ba75b26c88882c4dfcc81756f8a3e0396368f92eb8b33a363b82860e900cdc41da13bf6c6602e0d3bacfd4fec23c80003a4971077a616644216f319e186cad60ba1320dc327a844d77ca828347620305a036e60be5cf4f3d74f5a6cc43fbb03821bba55ea45c8c2bf0f744de2f8eabd207c03375c34613979a6ef67293c0856ae714010d28e0ed6f0405b44e9c6f4cf6080120210c570c77f6fb8fb396aef54d293e493754d807baa1f1605241a4d8e895efdfc", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a9818b6aff77a19790ef16c0fb7d8738c6b02e36a5f7001d54cb9367de652e2abab1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49020be7444ee8418240a533119224900c85d44e544ec819eed4947883a21de67fea03f30ff1bd63174b603d784be776a50ad8d3b69fc05200be35daab20916ba0b6dd034cefa90c68f07c1a4cb587bd32c7a0c3698ba75b26c88882c4dfcc81756f8a3e0396368f92eb8b33a363b82860e900cdc41da13bf6c6602e0d3bacfd4fec23c80003a4971077a616644216f319e186cad60ba1320dc327a844d77ca828347620305a036e60be5cf4f3d74f5a6cc43fbb03821bba55ea45c8c2bf0f744de2f8eabd207c03375c34613979a6ef67293c0856ae714010d28e0ed6f0405b44e9c6f4cf6080120210c570c77f6fb8fb396aef54d293e493754d807baa1f1605241a4d8e895efdfc", + "nonce": "7b320f013f4f823a51f52ab32c8c12bb472cef7678690d5029a0de6746859651", + "nonce_commitment": "030a3ac8f9394308588326a9a7bd715d7bab3b9ff5d598a63eb07e22cb5945eb7c", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864030a3ac8f9394308588326a9a7bd715d7bab3b9ff5d598a63eb07e22cb5945eb7c020be7444ee8418240a533119224900c85d44e544ec819eed4947883a21de67fea1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49020be7444ee8418240a533119224900c85d44e544ec819eed4947883a21de67fea03f30ff1bd63174b603d784be776a50ad8d3b69fc05200be35daab20916ba0b6dd034cefa90c68f07c1a4cb587bd32c7a0c3698ba75b26c88882c4dfcc81756f8a3e0396368f92eb8b33a363b82860e900cdc41da13bf6c6602e0d3bacfd4fec23c80003a4971077a616644216f319e186cad60ba1320dc327a844d77ca828347620305a036e60be5cf4f3d74f5a6cc43fbb03821bba55ea45c8c2bf0f744de2f8eabd207c03375c34613979a6ef67293c0856ae714010d28e0ed6f0405b44e9c6f4cf6080120210c570c77f6fb8fb396aef54d293e493754d807baa1f1605241a4d8e895efdfc", + "challenge": "9e7036feae0b42549ed141504c04ad963eea5a1d651fa0a2e9fbe5ac949e0867" + }, "encrypted_shares": [ - "45df99d313d832633fa08a9610932f6aafffe13f9059d4a3bbdd06868f840f48e5f05a3db0ac8fd0ea3597ad33709fe4", - "f129d6b6fa2a0fbb4644e82d3073a84745a2b7eaacff9ac4c7d81b21e7682517c27ec333157d4f3cfa6ec0a5b1063662", - "af31b9a506592565a4eb22c43411d5786865dfdfa49d87425460488e5715603246b9c5ab62a1a8225379c746d515282a", - "51882ca3be8c5a290c9841f95fd17cadaa5f6aa889aaa40ae20bb2268629b7b0927186080ae387aa2b23a72285a895ea", - "e8c7be74e17686783a2443c77b579151cc7b5f3bdc197ed43809c0048ccf51f9327aad35aff010bdf3eeb42cd29e5119", - "61c3a49a3b082a8b875b495fbefe5e98e9415997531b061a53cd461e27c22401689fd868a38891dffaad7238a72d975b", - "b546e39dea0c789035085c0518f288f92ec4d3e160c99ec76b10f38f11f5c0cfd29053f24628232b51fc83c0d801a483", - "289cf5bb3835d873f12de52b5bd56e13c3f94d5a5824718ebfa3c0b588c235521a79a0ca0e2c9cd54982fedb16972a9a", - "78733c90dc2c24aa1704a2a045e64be9fcc664ba55dc55920a3a6d049d3bb848476567e2eb944fe17027e9424ea736ff", - "9a1b5387e3d3bb43f97ff9ac26c46a3062fe8eef1e93dcfdacf49542d8bffa23178c812937780cc293d4c0cbd60cd9a0", - "4dafba923c543bdbb540d4d5b6543d8e4d22b8bf975e679537a526012e6562fc8ab4456f91adfaa15f6f0e01677d506b", - "7eb261bd7b63b6fafdbbf27924bd89f851dd0b87c12b1beb8091fc4efc89d8324d707f6ba8cc14f38be75aebaeb7f40b", - "bf61b6ef3468128b24847671ec110fffb37ed90e77a32ec69b112e273baff0807941b7188a1fcbf128c5665752fbd782", - "d8a3e20fbe4e41bb80828f8290da4ff46f1ba8c127bb2b6c5282b6e719cb12d55b92551d58c2eb2d26d87f7554dc8d0b" + "e4ed64be2ce2bf1f1238859792e92dd84ee568c1c11718e3c405a00b9f583763588992b0a646ab2d3531e978bdf7ccc4", + "b10497efde811331fdefebb3a211df9bef787e9a30150c76f84687002fd9e3c0d1d213f1076d7a8a1823f397cbdfb9cb", + "b89c627713470e78f31f7915ef0b3a2bed5beac2f59f2611509c2b5343af90fc679dba6618be229da634c705639791ea", + "4351515c219d2b26d22d056be20b571fb2e44ecf771f756e6be980128f78468cb244a199f7dc668ed7585869505f6880", + "6a6fd8d05afad438a5f24829f5a2468de21a2637addbc2e8be88b4de46bf305a57ef490b7bad48e8f258fc069ed89094", + "3c7697a387a4481f5e2fa63a98193dd7e7696985b35491af22dda689ee3dbd0b7a073a2e0288f6aaaf1a62c5be814f9b", + "1b0db8f67c90b4ad3f32eb48610eee04344ec122fdcfd3c6a568059976a26f33b8ca2f38a3337065e36e01b98dd7c7d6", + "cecb0eeded9e69bcb25df2e4fe0808c4a257eb3d2eeb8aac1d50e6cbc8b72e61b39f589a5c660c8f253ee3ec4072ebef", + "0b23f6585d6d98deec06ba9e1c08d566b5debe8b474a940a87dcd6e6f424d4f64a67562d741c8b44101251c720609205", + "89623cbfb9b0cc41b4b11c8dd418bcf64cc33fa0fc1c7d45786ba6fe9e1b0374051482d4d26c8e4c791211125b3f118e", + "8d7597d00a470d2a66723cfd7e389b7568ec63990996020bdbf38ab7997f3ab2cdf9033164f37d614f4b57389fe14076", + "41e411fc6d96481060d598daf8a6ee4e5cc98fcd770339f40c0ff914b75b72ccac01777690f7d0417040547a1f2cafde", + "91761309ef0977e0bb00d70e4d95eff667723e57a9be5a66a7a91c359271f56890ab999f49fabc2d8d02248ec2801c3c", + "afef0a4340364526bb5dd802ab1d84e4d30eb1b148a28d926d7b02bf15ba1887abe6e910ba96ef272a8cda04b8d02a6c" ] }, { @@ -700,22 +854,30 @@ "03db77e50aa8d4ae02b86401ee575ee3f88504ef21284a54830641be5268650822", "029ba8de4b973eacda2b112c528e520e12af390280e62d00370da5a7af978a2005" ], - "pop": "024fc3f3f4e74e79fc587fff06a5833a96b1156fed803fbd5946c29a0a4ca1fb486d90c36c68896ff665f32668b12b1995ab0b90d241cd20fcad17f82d12b172dc", + "pop": "02cee05578cfd052188bf5cb564e1ef3da8e8466cfb76d98de3fec937b5dff4b6740dada7b08df4b953e13da00c4df00f71e556ad2e10d3aa4f59e4ee03fc16f96", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490271a15813be66a1e81ff4f55506b959e9173de3e3c73554bb6180d9c5967aea2403dc18b70508c3266717c349933db0ae50f7dea04fd7ae8607052a12a47cfecbc702eaf94e10fb2eea95c1f08a09a26a986d7724696040758e23ac36bed57935825d02996cab462aeada0c282305276a5426292fe5c0b87b998f5c5e01caa227fe2c7e033c08c5c61a1c2f7987b49850699440563f0f0823ae0ed0a689942ffcc7b4e0c603db77e50aa8d4ae02b86401ee575ee3f88504ef21284a54830641be5268650822029ba8de4b973eacda2b112c528e520e12af390280e62d00370da5a7af978a2005038eb5b5e86ccce9138daa14a1c2b458491286ab00a973c9a3950091f4af8276e0", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a989b6c13f3aa93115db960488064946118a9d9ca9e41a0e358241d4faf8562d5421f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490271a15813be66a1e81ff4f55506b959e9173de3e3c73554bb6180d9c5967aea2403dc18b70508c3266717c349933db0ae50f7dea04fd7ae8607052a12a47cfecbc702eaf94e10fb2eea95c1f08a09a26a986d7724696040758e23ac36bed57935825d02996cab462aeada0c282305276a5426292fe5c0b87b998f5c5e01caa227fe2c7e033c08c5c61a1c2f7987b49850699440563f0f0823ae0ed0a689942ffcc7b4e0c603db77e50aa8d4ae02b86401ee575ee3f88504ef21284a54830641be5268650822029ba8de4b973eacda2b112c528e520e12af390280e62d00370da5a7af978a2005038eb5b5e86ccce9138daa14a1c2b458491286ab00a973c9a3950091f4af8276e0", + "nonce": "e17096736cd3fedde993683b9150386783e4d076dd453d16627d222bed28acf3", + "nonce_commitment": "02cee05578cfd052188bf5cb564e1ef3da8e8466cfb76d98de3fec937b5dff4b67", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402cee05578cfd052188bf5cb564e1ef3da8e8466cfb76d98de3fec937b5dff4b670271a15813be66a1e81ff4f55506b959e9173de3e3c73554bb6180d9c5967aea241f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490271a15813be66a1e81ff4f55506b959e9173de3e3c73554bb6180d9c5967aea2403dc18b70508c3266717c349933db0ae50f7dea04fd7ae8607052a12a47cfecbc702eaf94e10fb2eea95c1f08a09a26a986d7724696040758e23ac36bed57935825d02996cab462aeada0c282305276a5426292fe5c0b87b998f5c5e01caa227fe2c7e033c08c5c61a1c2f7987b49850699440563f0f0823ae0ed0a689942ffcc7b4e0c603db77e50aa8d4ae02b86401ee575ee3f88504ef21284a54830641be5268650822029ba8de4b973eacda2b112c528e520e12af390280e62d00370da5a7af978a2005038eb5b5e86ccce9138daa14a1c2b458491286ab00a973c9a3950091f4af8276e0", + "challenge": "d5e1dd1cab09ca71b828778fb20c80dae3a8fb0da22ad6edd47a9ae3922f9161" + }, "encrypted_shares": [ - "44b6eb6a4b4676a78edfe2c601d7c958ec6ce3013dbc9ff331ff688b892b6117f335957e2e892f5cab27b836c9ca0f40", - "eb74109355ddf85c2428bbcb6afcd821dce9c6d93eb95124dd247d448323ed242d9bf37d646fbb1db09dceae2d1f529f", - "9fc7457f2ef3feae0bc7584dcdfbe7ab333755d93b1725a4dff2d949aca02ae4c677701f554dfe3d621c129a29442ef4", - "b626e6be8ed44ae84070f60e0e1ac4642f8a33acdadae4c0c988bf30e37d52c685dc2c312c58785f640c1d156efca2f3", - "c6322caf3a731fd9d6a2031c2cca985d2502c58e5176e1b3e3bce9bf14558e7f96590f44ca5a5d94911f1ae128320cec", - "a068fa89668dc8e6130a3b73958b19125973d3607d59815f9f15b9cddf2a4df7d45ae998e57196082bd0deed8b113830", - "ba914953af6f3e3176c0a5fa40aa2fe856f147cb82deefb651226e7da40d5fd7d41e351ef1990ad5b1eca21757ce4e5a", - "e4fdffe4f2af9b800747acbe6c1a89a4308a1d03940d7e222fe43794c816943aff7a661eebe7043e62442f13726e6ca4", - "b2c7755a789a66cd83b6141b810b42e7898a752f15eaa99e327024f6f9868633eb3b9694294c78cb9e6bd3fb453bb83f", - "0247b0f5eb260c37f2d44cb16987534f39303a073282e10f476be53ef26e5ec7371908cc9d0407af6d303e6edac9290f", - "6d7b01ef543608c818676b27fe4d0536ae79b78472dda4c657321d966ef8d03275ff207a6d7f90fd95f64adba0ffe6e7", - "f07fb8113367e6f8a4bc9ff8831c5a5a8693a28c9ff8521ca59e9fb76b0b47520ead4aa55717bc2803ddc28b262ebee9", - "996df11a2f8d3d0f38bb2d17531a75033c4ead473bfbd32463788cb54e1c683f918244b7f1cd3dbdd18ffde2c8759378", - "7b7f24ff1f4b8376882225b8d7ee12a255cedabbff4c310cf0170e3dc9b7a3573b6ceb13be136fbba68aa541df6fc05b" + "cc4785f6a46b8114c34b1291557cc7b79136ba9b476208c94b2985c01739a023ce891402fc7bbd0a76758b613b026856", + "0bd88af0da20298b217bb896541ec7e41c4f5b587ded4076d95d4296e08049748510efef6574f15db5d68e4fa169e3c9", + "60010f3a8a8120057af9f8ba81a1784fb238d4c335005cb3faf89ae38f691ea7fc4f35df3db45b070291b01de18be552", + "060af0b0f818f5d5a79d931655809dbb2acdb0adad1dbea96a4bf1ec3140fef601cb9a0ee6495c792fddc03c58acdea1", + "04e116300e3023bfeb9336ae938ce72a1c6725a6c6f400316b98387c232f0dd1ee02fea3ead0814ac676fadcf4115de7", + "ac08fdcf1df08f428f071ab4c146cf14285f0e489993367fecabd070278509cb67c7ac99521ae91ddef4f8cb51df7ca0", + "8bedb2c5d8527eca6d5f16d20dfdbca0de58d5c5adac8e794a9c9d368c0d7e0db9437d05fda3a46c2f5aff4ea7cf5efb", + "07652ff7c08acbfc7915404222f924fe6a32c15f9f4f8fd5a0d88f28f45c31cea3fd1c6c571568320fd3592738c4450d", + "2236444598ac20633c9fa80695af279b65ff2d6114f798e625c22f751c6db69f3775ef9f52473e750212eb43821bf6c8", + "f39a5cd15341ce32f3e11db4d847fb023be237372d8d0fd503838e6f749c9d1f1fb05a1a0d4ccd5e114b61c2df0c549b", + "5a5eb4095c6504435e7a34767f06577d1a748d993a564b68cbb54e8d2042d9e6ffa4d1b57739915a525e275c41d25560", + "8902591c7690ddfd2a500441f6c66e21a9de5652a5a0f4b857781da2c78ca1ff0483ad60a101d6e2ba624aceac41a4ee", + "92575271b297829e607301e67c0a28447f8a976cb2062d7c482e8064f424ae57d226336edf0fa9ee1aecb7005eb7d5ae", + "754941e3cebd74ed36f6ae5709dd5c6aa1fb4b266b57ee1fe27a317bbadefbaf21ef9eb822d144fe01d440bc5871839c" ] }, { @@ -730,22 +892,30 @@ "02f58e5125a8deffcfc6d981194013a76124f4de11de953170b9637874f8a56891", "034f7bbf3a956cf571aecda6dd3c26d705243a1231570c72f22d0901dcb7d4a72b" ], - "pop": "03ac98fabf07224fc9d714b6d76fdec15e0fb317f54efd8c6f678b5741dca7379b395559896533b2fb885631fa1b1a7b75056bb24071553a0a6dced76aefa7bd3f", + "pop": "03c8552b911730fe2ae006b59c4c80fc526cf7186446161d054cd39ae8595630104aebfc2044b7395e1425e7be4961249fd022410076ab84ab9d701e840be4bc11", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038da248d7ec20d51715a358307d5db7af4fe3a1c8ca77e2935c58eb8b1e960445034df2b9dcb9cf805aa7b0512267bea491594e1914ccbb3d7a52416f34a5daf61002dc5c6e33b65b604839d5c9afa49d56e6d7885ff379107d1d0d4b2ad5f4f69ecb03ddcf074590c752fd0e49d9430836448d4d3605b6bbb9e7de40669ab4af32e463021492e7d43b593333fcd22b2a480ca7b2792f87b166d4c1a4428d6d9755cf5f2502f58e5125a8deffcfc6d981194013a76124f4de11de953170b9637874f8a56891034f7bbf3a956cf571aecda6dd3c26d705243a1231570c72f22d0901dcb7d4a72b03b1a97536cf30136ee127f4331208ea81b12370c12422f5711b6c512096c677ab", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98cabc0570e24380eb483f6152fe1c6ca9fb49478ea6ce0edb71dab008f9e599141f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038da248d7ec20d51715a358307d5db7af4fe3a1c8ca77e2935c58eb8b1e960445034df2b9dcb9cf805aa7b0512267bea491594e1914ccbb3d7a52416f34a5daf61002dc5c6e33b65b604839d5c9afa49d56e6d7885ff379107d1d0d4b2ad5f4f69ecb03ddcf074590c752fd0e49d9430836448d4d3605b6bbb9e7de40669ab4af32e463021492e7d43b593333fcd22b2a480ca7b2792f87b166d4c1a4428d6d9755cf5f2502f58e5125a8deffcfc6d981194013a76124f4de11de953170b9637874f8a56891034f7bbf3a956cf571aecda6dd3c26d705243a1231570c72f22d0901dcb7d4a72b03b1a97536cf30136ee127f4331208ea81b12370c12422f5711b6c512096c677ab", + "nonce": "3f04b1edddaa48512a260405403dca8aec2fee53760fc81cf77184f09d91070e", + "nonce_commitment": "03c8552b911730fe2ae006b59c4c80fc526cf7186446161d054cd39ae859563010", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403c8552b911730fe2ae006b59c4c80fc526cf7186446161d054cd39ae859563010038da248d7ec20d51715a358307d5db7af4fe3a1c8ca77e2935c58eb8b1e9604451f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038da248d7ec20d51715a358307d5db7af4fe3a1c8ca77e2935c58eb8b1e960445034df2b9dcb9cf805aa7b0512267bea491594e1914ccbb3d7a52416f34a5daf61002dc5c6e33b65b604839d5c9afa49d56e6d7885ff379107d1d0d4b2ad5f4f69ecb03ddcf074590c752fd0e49d9430836448d4d3605b6bbb9e7de40669ab4af32e463021492e7d43b593333fcd22b2a480ca7b2792f87b166d4c1a4428d6d9755cf5f2502f58e5125a8deffcfc6d981194013a76124f4de11de953170b9637874f8a56891034f7bbf3a956cf571aecda6dd3c26d705243a1231570c72f22d0901dcb7d4a72b03b1a97536cf30136ee127f4331208ea81b12370c12422f5711b6c512096c677ab", + "challenge": "8612c2c30184c820c8777c8dde39a7974c5ea64aef42c746d673387331cefd0c" + }, "encrypted_shares": [ - "8423f53c937087ef2f07186357a7a23c02dfc5775ab0072343a9b1d0bae008662adb3434d1a8f87e86bfbf16567b22f3", - "2905ca9e775303b9ddd04cee3aaf23f931608eed2b79e10ab719d5057b0704e38f9995d5aed4b775dae84c936cc90047", - "6cb4798da69853c098fd0557a45375c99dad9f03ead6acb47b45f6b420877dbcf5fb30d0902b39eb0d54258c87b205b4", - "429d35a2f09eebd6337b78a5050eb2f21ef8392aef02ef81c029af9aa381c1a5521566ea973f938e459a1959debf2c79", - "476ffb9762b7e73d0e5c8e1920164436fd07df080e60d0412b68aad33207792db7d5ce94aba93d24f273db456448213f", - "f43a029a09659d6d1fdcb3955076fbff3ba351ef0747a04012dd21ddc2eba10740cacb7bcd13585b32da982c873d55af", - "7100ce08067299f7187aca2c7c7cdf1d806f2b60cc6a386ed50e1f4147e17a116b34b6f14f1fae748fdf6d1fb1374cdc", - "d90ccbf4df5e610a8898f98493b351e56f5522b623636fbca4b5c3a8d45e5f434f716488f68e787f350e1bf0af4cdb14", - "a1f4387952e5fecb9a9fc0910c8360e41555c9ddfcc405ca95f4de542af100b82dab26b65eeef1c56d746e476f0b4563", - "dacb37642ed196cf2d03589e4b94dc632a335bc72d9a127114f7b1457f59e839947b9513b57498e3b57fe031d6fb5c88", - "9226a45a1fe82558373cf34f71af7e0b625427378dd34bd37850c38c4f3ac2c866bfb4534f85498a5215cf99f739543b", - "3ffd69bba2d65739c8a2d80d57eae4083b222c727690c152af3c32911ea4e4dbb58e774eeb4d69e9ad1f221bc15d7948", - "7c7c1ce2ffa4199620515d614f615352f7bb9dde2ad19534bda080a8f08d50e93bf64b53d56ec9fcd9dcc01a10100ec5", - "88c366c4d2fa9ef310e98f8ebc3541481f834721ea480ee59ed61c5975ff044a031ef1bad7fbd448b49614f033b9ccc9" + "f20ecd5c2d2c808aa935605dc505440ba75272b147725aacefeeb3a94885a05dc749dca86ba35895b121210208ec56e9", + "fcc3b40096128c99da06228556d68d813f65db0303cee1694322e3269d31b0b08f53fd180e19ace84f3860f3d9e553a7", + "b0b2655a6e9796b7d994e97eb040a66bbf1a1c6e30ec8fba557371fa5e30e3e9ad50475e3af8b5f9d90225b8e0541a77", + "567949cf3b4f4fef933b6a4c74dce368bfafd3029c08077b47003d4a5e70003603007b2fbe813d25b35107f0c38a15b4", + "3f6f07781ea1f2c38736c3c21081243f3126dada1655d33f13eb89a32d5892e394ae547f72ab8ae31fffe17a6e32195c", + "909ea06922ab3b937da8ef43c23c967f28578a5ad88e5c1e748c01380ea7e76d91c07ec3883b5d4a175de9d60184925e", + "cd6ad1628dc571c4c76e9676e95433f7b7fb471d2471044022e351a82e884aa0e07c4adaced5c60bef77646a9a4fa23a", + "16398147849321a5c2f750baf9ee0168b3d42cb6d04b95d3c9bc47b2e6ab26559c77075dcb4644bb8e042fd0002ce308", + "ad4797d570824d579de348374b8438ba9145fe54003cfced36cd384d1abb093af2b3f1e59efc230313fe028ab9b8bf8d", + "7dcd278b87d3ba161664d007c5f86a8de159610363d5e40908501ae041f1acef995746760ed4526226876171dc78d308", + "ff5afc195b4b1cbd199a73d7a7686f861f4b8866401773483374b0041401914bef14d759bac057074aef4a89ec87287a", + "9e659f64de1d270f89610a78ed867110bc8335b806f9b658a49d6a2823f7d9013c989dc5539d72906b5d1d5937ca1722", + "d0f5d12d37a7bb2d621bb23cfa32a03c02e01ac92189cc72c9ad2ed01d7166d49e601f83d14922fe1e766ea857b58a5f", + "455829c06803bbd1fd22b2bfe61f3808bc0070549b107f754e1e3ae9e2bfffa6f91b177badf5807ed1ea44b480a07ecb" ] } ], @@ -822,93 +992,74 @@ } ], "round3": { - "transcript_hash": "87196836c538f03a5c1528134793a916da9adad6c03003d39b062b38597616fe", + "transcript_hash": "a6f37b10d6448dc84184441babe8f8096c3cf0f0a776f8a8a3a110a755ce7f81", "signatures": [ { "signer_id": 1, - "signature": "02a2dcee0bc91f054c6b2cefa47e8b78e957cecf8dda88ca0067652b34c99ebb514ceb1505f625891ac399d116925f7c0d29a10cf50673fb60e1347f7c0ca9697b" + "signature": "0272948f9e0764b64c2bbbcf4cc9c95aeb51327adef913f4e25107f10eb56caa11401b09b8bfaa4f708ff71202e44e7887815bfa56294d6f5fae511ca9f6057b55" }, { "signer_id": 2, - "signature": "027babf54a124fa0950f232fa7d0276e2871fd67daff919110ccefc99e8c0202ecdb5076f1017c8bf9d9d6783518083d52c8ac26621389b71a7c6a3b088252ef42" + "signature": "020f240a00bee3191d7461d15d472f49494a37b143984e86b40025f038d2e83022087dc19ab3fbd486b5011d82de6a1419f99583ad92767364bc14b4bcc8885046" }, { "signer_id": 3, - "signature": "0381ce5e780f8b306ea3af6a2c64b469e4c38e5d6bc96aa32e0672863bcd03898a8b8a261dcd5320dbfd31dfd4a2c01c279002d310900209483507fe9de9ac139d" + "signature": "027d0ccb7883d9d7084c9242c3cb40892ed8b77fd023891b181b75817f4d4832763ca8192b999f4d1375f1327cb37102a0f6c613c754c1f71ceb97e4a8eede51a6" }, { "signer_id": 4, - "signature": "03a945b9932f6e6ac2d572ab43b679615dfb10d69679d1e667b68f3bc77b80bb6ba8bb6137144f7aa7af9db910dfbe58afa5687fe0bcf8abf06a67e90602d2d47a" + "signature": "03e1b68e6fd2ea3476de49b36c0ef5a3ba5741a8a0380446be60dbce48a64fe077fe46e4efdbb9ff4155a7cdd51791943b88d33f0c445c18a03bf9fbc08f7d6ad4" }, { "signer_id": 5, - "signature": "03a4465ce3697bad87559bf75a16bd837d2826b32c141f462003ca24c658c24788c69f2ac9991b10f23731fb1bfd8e62170cac5528ca13ef1a8bfdf7a40bfbb8f5" + "signature": "03e206bf4a8081e4772a8d6f01f298d1aef72341d0587aea81ada85a9ec2c721565466d1610bfea27258262943b36204784e66de3a8b2a86b478a5c43b2185527b" }, { "signer_id": 6, - "signature": "0346412d18d070db59556e667c8112591ca7ab3345231f9cb96084e2dce7b739b25eb815b2ba05859b0d66c52effdb3ad49853213f51500b172a5d6e93113a3d84" + "signature": "03c83a5733a7a6782d0463472ab7bc80fd99105f99eb636f969ede40e8a8eea33f50513f3e914eca05af17aa7b0dd24f2b59b28826fd8ad9d8d7291e07001bae57" }, { "signer_id": 7, - "signature": "03dae4f34266c2ce268accbfc7cb3123c23950a27488c64f2aa64b3f12db4657fb9593d1e0591dcdf31593ad1c98dc65f2b3ff40c1bebb8172a0943bdc69ab8913" + "signature": "03c89c072390e1f0b60f69427e5148748ddda743e5188ba9ac7130f98073cbdbd344a2f5a9433bf897e91f44e3fb9b05a79ea06a71e3876a04a034bf0858fe8052" }, { "signer_id": 8, - "signature": "030e5a2bb9fd13bdc5816468fce6ef592bd7a2a5dbaf02c7974c6040d5fa17956cdeb486fe7a4c9b54240fb9c05078428dfbbf6ced110aef2323dd8e0f64dd7bc3" + "signature": "02e8746477742a8eb26e356a7de36a1b1a236f4ccca37e284c7404441214b1cd7323a3f986c92eb744ff09b6a625cbaaa21c3e4a11347396100abb770d488bbb7e" }, { "signer_id": 9, - "signature": "02aea5f43b21b586985fbe20fe86f45f78235d66a96d5e170ee755cf3be2956d779ca1c8646902fc4eb292a78af422b65019b47c958a25c5b4bd10339aee08a2f0" + "signature": "03ac0fd7234d3bc0fbb44d33903b32b06dbb94ffe75c32c5114c1a8e7ed313ff4a0abf60ef7464b27c9850becde32c545add3a6f1abbce2ae09cd7288c97d906cc" }, { "signer_id": 10, - "signature": "0224d6bdd3c2dbae0d3ffca09d706a7d0b6450f38edc978497181be7c06510aff4347687cd2fb52930f15e1d59347ec2a5e4e70f8735e1804d5022e91ecf9f2ae9" + "signature": "0322404e72249faeba1039d2c97bba013c783628dcf94f31d097300153e802fb84c1a8c42b2a1255f9b1b933ceeaaeeb30375fedcfb79c03f95dddffaf294a1221" }, { "signer_id": 11, - "signature": "03468d3766e8700bad4193e5beed6556b808e2df8f80b97fe28fb44380ec10e0a169a8989e84fd2986f03c201f1feb6d4cc4e6c95b2aa49e9d75844d6b4031b61b" + "signature": "020dc65c9ac444c51a5c1d3ce883cac0f0cc5e430936d7a96a1a373082f4f4cd0394eb2220a2fc84d45fa0aec5e043a28b8b90c6e687b66ae0290bfe5b32f2c135" }, { "signer_id": 12, - "signature": "0339c42bd4ec25759c8a630389b7e71a6f201b3a38adfe18082105bc7dbac4f5aaeaca52edab4a8e335c6c556abcb30279cc42c5b35926d2485847b366cbe7c3f4" + "signature": "024ff3f1290a46ccdb1f7470864d9e74e270b17a0ef9614d72b5f5a003925255e766d1f145a93ef1e2ce4d2b7841c1139a2e157f5c0ed31109dfafc191177bc5ad" }, { "signer_id": 13, - "signature": "024c25d61ba694b4d674f0e4614f87f86d337b9c78d070b25a6d8173ce05d01fb675c12baf22828712db6cae094b53900715a74b6def48eccf92d9a268c4a24143" + "signature": "028637750c99f20728d3fc963eef664f619cb534e0b3b154a8ba730b6cfb37b549fa73f881f28a0a9c886469365f332d1c03fad92ee5d36401adf195fe90438a14" }, { "signer_id": 14, - "signature": "03c8272010bfa2e14ea986511620e5f772b9ef58678b2fef702d4e70f428af77fac994cc93ca2956fdae8f12f6e4ae80441b8fc6d3c0b3fbe9f4887aa89d86331b" + "signature": "03522a9793f0f01b3fdaca06404acee275a1f0d65b7e7c501046fe944d0f2ae9f336482a2d51ff05c32e79e2fecce511eee8749cd11145e8d8f3e48608ef9627ec" } ] }, - "group_public_key": "0359d5d1ab443cda953b002b6dc12a11ba96e6f3aca7b8fe8d3e159ae1d56cde4b", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "68f1a4f3a1b132dce2a36e4463baf2241918986826d32bb5e29374db2a8cc1a69dfd61e6cefda4ba70bd4471113da46f", - "112de458c4a7d3f72b165723603c7d97f121a0c6eccf5b599a59680600a354c516ddf653651c17a559b8a1c572474e62", - "97c9c7b796bda9a0a458b1c17568ceb6564602168840aa02c2e66be77c4ffe1cf0e4f2fa79d7f623f8c054035f42b1f2", - "3fc08d5f03a9fbcc9b6a02f4be8f70032e115d88d2062166df86ff0213a0a5ec36187f52641dcf50925688c550ed0820", - "b86302bc16bbd3750486cd01d2501292e7d56a866bd6724a8ad0a26e9764222db396dc4c9c91112af2e1f1ec25404473", - "64182e75b7f126a8bcc5dec90ffded51e21f7bdb8a9c24b3795a14dfe00f9c0f9b4dab50995f6023510c8afc7672d904", - "2e31a834492c145e6726494cbd7f6ca1f6202fd69853539c18d813fe379c44df32efc1ab21cf090fd4c94e0bb3fdb59c", - "d23d0e189af314f25c0f28aa24943eecb62746b6beb805d1b7e17f1e454d6edd5ca8a4af6354ab289c064b3dd7cbd838", - "0878609704737084ba492d821dedd9f1835f4dc488ac5aa1a309cec0227035a406f6ac679f918b8b4691f5868fa18a3a", - "b4be12e10e8012f31acd9e671073066cc5fe67ede60e472017f06e8ad6c5311c86cb1af6d3e37b6c669ec4f37dbf6548", - "1c7206f6fe3b4662e1ef3aaf70e09fa073c1b7ae9f542a68f29ac68e0081d149abfd15f112c1d7e84981d9ef01db4488", - "45df99d313d832633fa08a9610932f6aafffe13f9059d4a3bbdd06868f840f48e5f05a3db0ac8fd0ea3597ad33709fe4", - "44b6eb6a4b4676a78edfe2c601d7c958ec6ce3013dbc9ff331ff688b892b6117f335957e2e892f5cab27b836c9ca0f40", - "8423f53c937087ef2f07186357a7a23c02dfc5775ab0072343a9b1d0bae008662adb3434d1a8f87e86bfbf16567b22f3" - ], - "recovered_secret_share": "6a230a7c1d0d83e59c6e26fbcc4be24c4a691b5f2f14a049154f88883faade9a", - "recovered_verification_share": "0201e0c204e450fa1025f793493a1f79260b5956cd73edd47883d8b15782e47ef6" - } + "group_public_key": "0359d5d1ab443cda953b002b6dc12a11ba96e6f3aca7b8fe8d3e159ae1d56cde4b" }, { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd8", + "extension": "1b8d8650b1b7cd498462e5b2da0888eace5afe4a147f5bd30d7278a205908495", "config": { "static_secret_keys": [ "b6d8938c60ba5cfbf0ba97ae1c3f99c7a58485344ed7d6f387dc35bc76cacea1", @@ -921,6 +1072,11 @@ "02fe2400b831d7dc120d4f1f49ede75956782e77ca92aa24f7d1cb88bc584dd1f6" ] }, + "payloads": [ + "0f8df2f59079008ebc2cb23b42caf064073aae4c2eda7a1e3aa21dcd808c82e5", + "0fcc38c15315812e2db82c261131255be27bc9e6cd4b3f4ec680056c49323a6e", + "eaa4e04f127d7e48db6f1d0022b198ddd00e00dee09211aab74d2b78220601bb" + ], "round1": [ { "participant_id": 1, @@ -929,11 +1085,19 @@ "0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e", "0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f1" ], - "pop": "03adb7b47336ac7c66f065e5963be8e2403e52134264fef03a9b654700df0ac457e4f93be87ee7a5efa216ecb73926a462caf865dec15ee7657518ea960d16d851", + "pop": "029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d9b3911f8be90e78a1307608a36b040b7a5e24099dca5c5675d29655e62e041a4", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98ef05ddfb1f4f0498f7723bcca609138ff67ca2d88eb0f07ab9f3378b0007aeb40ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "nonce": "9f362b57e2b37db15b74ffe5cbc41f2054add10b6e30edf1798a0d40b33b6cef", + "nonce_commitment": "029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "challenge": "2da8c6a4317ce5e00075124caa150b329f26803973c2c30c1ffbcd0bda222bb9" + }, "encrypted_shares": [ - "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", - "50162b60cefb0fa778966de5dcfa79b6046ad855a709fdc61ef253631575e2c3ce9048c42fe7c84583ff19d37ca8a775", - "be016f51b514b6bd413ab8053940454e068d69271cb5092dc0a229f544a9d134f72413b8ade30f4b21d10ca1f5485dd2" + "944a59446f203aee0c0ebe4107cc3c605ebbf3470364ecd74b5c7b001de178840f162b965a6d569f553f4ddbeca32fa018ffb6bd60466faf2144225b20c34e25ecbb87df2769db006aee6ac60be90526", + "9d5c20d5c3b43845febd8fe1c235fc870dc9a687d8c8f146985f8510c58d6e2946a9743d2c4a85509be949bf3bdd2fe5415cd3ecb97ff5f5cdce2648055c69e21387412fb9ee1c5e280fa10be8e2286c", + "a56fdcf433203d0ed1979df54aba263b82660f5c8de3302a62f2185d14bae7151453fa62a6927e139bda5a2899a9b111b8e07b30fa371e0641192a14b6414db425bab0e26213255a00107a7260d41fdb" ] }, { @@ -943,11 +1107,19 @@ "02672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c", "020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f" ], - "pop": "03b55ded99a60fe407ee51b4c340a586110892e15d7f7b13da965fd826b4525653c1265f7595bd061e024830051e42b0816ba3cdbf7bb49947106930c788aba7cb", + "pop": "036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b4475902387e2e6498997315ff4e981a7720b0796205ada27a4c9bc3afd49a4b97e0ea37e2", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a980ecfbdcc5ca424206a03459eec46420d68ffa9c4ca54bc18feac4dd4cc7940be0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "nonce": "9339e805c597b90f07a57e0449b9885b3c474735018f7624a5a176faa19e8833", + "nonce_commitment": "036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b447590238", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b44759023802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "challenge": "c9405f0a5c26a72b564a492b4eb90932f64151761255c09a11866ac04ae8d63c" + }, "encrypted_shares": [ - "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", - "a45a839733537744b0cbdeeae90f14f659458425eb603ae69bd867e6098367d1a9982b249cb30daebe150570c5e7fa4d", - "f9f29daaa5cbb0e2917e71b8bfe5f2baa847307b5d70b319d5f7731bbb7075adc4ad244264b85fa4d0bf9299ae11a529" + "68f343954dfa1298fab846f3b7859861cf65242b606429a8dc3bec4253f2959026e5173c8089f22171e1233ba20f8606fda5414ee56427f47d298a1f33cd1a419570b748bf78d015b6881a5bc012f59e", + "3ec47bc60f2132ad43800c29684d64e2ed0ba6ee9f2fb445787e3e8b176c619591ee6f9d53c6d8919291a02a463bba7f093456ec2565d7526e957656567744d3cdaf907c0a77dde67ae6a2d19778ce35", + "d6c737b54baf32175a85ce8c8f30ff7219034d056367f487fe31ddf05882039982074c7d9d6b9f0f91edf056de96e1ffcee685ca77a9d6a4ac3bd6baabf5e5b38d547779302da8f7bd29cd83b6e046f0" ] }, { @@ -957,11 +1129,19 @@ "02fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b4", "02dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d0501" ], - "pop": "025ab99ca736f8ce1203687a626364744c3ccfeda9b63e7313a8b969ac62aede0bc0943c103c540da236ba575fb88921221ebc85e1ed0f432408f8ad16896dd878", + "pop": "03d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b2ec444a7a43e1a3f620f863b39fba65d4b5cfa706dd6ad1435304608bec2ef851", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a986491c1b93019c341d13f9a9d118e473f515de60022b72134a63fffe19cc4f03b0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "nonce": "8d6347e328d4fea3d0697999d7ccf0069cd0d945655f04600a6e9575f8a056c6", + "nonce_commitment": "03d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b2", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b202fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b40ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "challenge": "cfab1bfe17c6f6a319725dbde0ce24380cd4d1163ef6c56dbc560408b33d7db3" + }, "encrypted_shares": [ - "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a", - "11173ed71d7ad60daf3720734ad96cad47b58ee1548e65fa4903e0e5a7e94fbeae3a8076064895bc7bdc201df4de5236", - "d5aa7efab9d2d6e32c2039bd01eb893696930bf5c3e6449f9abc82a4482604680ba2373fad594aea7754960b3064e88b" + "dcae93813a7b4aaea0779ba5e63afd8d334dd8642ad612ef6d8721994cf11496cdb9a120175ce3b6403f1bdc7f98fe8b4ba674d5da425b55312bec1ad095b03ce34ca938580edbc8c0696bde4010b640", + "e5357c60329c0b7086c81b952a0f20f0e959c27aa300646778b948d0c683370521466445588effa7576e38b725d7b3374fee95bbe2c78ce029ec9fdbb05e8e39a7c8108c5a8bafcf9a3513f2722f7f63", + "e533f3f84e232099c48a56f4b2f4c6685bf56105cc24741478ab93b86b2d736529093686f39773ad60074163510709eb710330a225e9efafcb314dc8750e74c6b754789ddcc232abb8831df13a9c5e2b" ] } ], @@ -983,19 +1163,19 @@ } ], "round3": { - "transcript_hash": "0d785c00ecb6bde350ea1800ca69121c82be87ace2d7b691cb3d4c91566994b2", + "transcript_hash": "1494f91178f9bdccb340aea088f353c7ef2b21acb14d7de9b8c68ec171880516", "signatures": [ { "signer_id": 1, - "signature": "02bab75a5155f867dfb974424b9993965f8e86929253f3630d7c840a9d381e9b1a1e1b1e11153dac5e3a1ac8ad0f12588e10822068435b26bcbc654bc1ee2b1c4e" + "signature": "03d02d53238c256e3e95b6a197d3538a713c7c45e2502079511c20e9c2cc36e1136c7e4db2001a18d4b24d9a0116e3f38a26593c6410fdb3102b123c67a54cde0f" }, { "signer_id": 2, - "signature": "025a191fe08f7d0248f8bc69d016ceaa5316430e13b8056e192bd8f80c3017d4bbf658214c1ee2e184add34c07a73ee5f8da3eabe849b320a71e187769a54e1e61" + "signature": "022cb80f375efa8c964b959392ea41a823a9994a0b2bd23a6404a2842ee91ff3e7f3c32ad38b70d5d7fbfa12d580e067bba14b37d6ac48bdad74b56ca866cf998d" }, { "signer_id": 3, - "signature": "0388ea3c84b7ca9a7a4332227442495a5447d9832819817f48cfcedcbf8f44e672d61df10dd5ba4b979ebc8e38ed7b6baedc1b07703161d3539023cfcc2f80ddea" + "signature": "023122abd75b1cc1a74a1bff90df66a43905cf290894b01e5accdbc20755000891b0531b50db24496fdad963f228cd35fd46385cd47277351c5b1651fb09a5d74e" } ] }, @@ -1003,9 +1183,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", - "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", - "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a" + "944a59446f203aee0c0ebe4107cc3c605ebbf3470364ecd74b5c7b001de178840f162b965a6d569f553f4ddbeca32fa018ffb6bd60466faf2144225b20c34e25ecbb87df2769db006aee6ac60be90526", + "68f343954dfa1298fab846f3b7859861cf65242b606429a8dc3bec4253f2959026e5173c8089f22171e1233ba20f8606fda5414ee56427f47d298a1f33cd1a419570b748bf78d015b6881a5bc012f59e", + "dcae93813a7b4aaea0779ba5e63afd8d334dd8642ad612ef6d8721994cf11496cdb9a120175ce3b6403f1bdc7f98fe8b4ba674d5da425b55312bec1ad095b03ce34ca938580edbc8c0696bde4010b640" ], "recovered_secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", "recovered_verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11" diff --git a/frost-secp256k1/src/keys/cocktail_dkg.rs b/frost-secp256k1/src/keys/cocktail_dkg.rs index 665c9601f..384977906 100644 --- a/frost-secp256k1/src/keys/cocktail_dkg.rs +++ b/frost-secp256k1/src/keys/cocktail_dkg.rs @@ -63,14 +63,13 @@ pub fn part1( /// Performs Round 2 of the COCKTAIL-DKG protocol. #[allow(clippy::type_complexity)] -pub fn part2( +pub fn part2( secret_package: round1::SecretPackage, round1_packages: &BTreeMap, static_signing_key: &SigningKey, participants: &BTreeMap, context: &[u8], extension: &[u8], - rng: RNG, ) -> Result< ( round2::SecretPackage, @@ -86,7 +85,6 @@ pub fn part2( participants, context, extension, - rng, ) } diff --git a/frost-secp256k1/tests/helpers/cocktail-dkg-secp256k1-sha256.json b/frost-secp256k1/tests/helpers/cocktail-dkg-secp256k1-sha256.json index 683131c72..51a7f6a68 100644 --- a/frost-secp256k1/tests/helpers/cocktail-dkg-secp256k1-sha256.json +++ b/frost-secp256k1/tests/helpers/cocktail-dkg-secp256k1-sha256.json @@ -13,7 +13,9 @@ { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd8", + "extension": "", "config": { "static_secret_keys": [ "b6d8938c60ba5cfbf0ba97ae1c3f99c7a58485344ed7d6f387dc35bc76cacea1", @@ -34,11 +36,19 @@ "0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e", "0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f1" ], - "pop": "03adb7b47336ac7c66f065e5963be8e2403e52134264fef03a9b654700df0ac457e4f93be87ee7a5efa216ecb73926a462caf865dec15ee7657518ea960d16d851", + "pop": "029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d9b3911f8be90e78a1307608a36b040b7a5e24099dca5c5675d29655e62e041a4", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98ef05ddfb1f4f0498f7723bcca609138ff67ca2d88eb0f07ab9f3378b0007aeb40ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "nonce": "9f362b57e2b37db15b74ffe5cbc41f2054add10b6e30edf1798a0d40b33b6cef", + "nonce_commitment": "029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "challenge": "2da8c6a4317ce5e00075124caa150b329f26803973c2c30c1ffbcd0bda222bb9" + }, "encrypted_shares": [ - "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", - "50162b60cefb0fa778966de5dcfa79b6046ad855a709fdc61ef253631575e2c3ce9048c42fe7c84583ff19d37ca8a775", - "be016f51b514b6bd413ab8053940454e068d69271cb5092dc0a229f544a9d134f72413b8ade30f4b21d10ca1f5485dd2" + "944a59446f203aee0c0ebe4107cc3c605ebbf3470364ecd74b5c7b001de178849450035e424551e4abbe4edccdfe0987", + "9d5c20d5c3b43845febd8fe1c235fc870dc9a687d8c8f146985f8510c58d6e295db11449509d8dc50fbe2b6f0e190351", + "a56fdcf433203d0ed1979df54aba263b82660f5c8de3302a62f2185d14bae7154e8369065bb2325a9d0ed98597ab5521" ] }, { @@ -48,11 +58,19 @@ "02672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c", "020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f" ], - "pop": "03b55ded99a60fe407ee51b4c340a586110892e15d7f7b13da965fd826b4525653c1265f7595bd061e024830051e42b0816ba3cdbf7bb49947106930c788aba7cb", + "pop": "036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b4475902387e2e6498997315ff4e981a7720b0796205ada27a4c9bc3afd49a4b97e0ea37e2", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a980ecfbdcc5ca424206a03459eec46420d68ffa9c4ca54bc18feac4dd4cc7940be0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "nonce": "9339e805c597b90f07a57e0449b9885b3c474735018f7624a5a176faa19e8833", + "nonce_commitment": "036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b447590238", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b44759023802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "challenge": "c9405f0a5c26a72b564a492b4eb90932f64151761255c09a11866ac04ae8d63c" + }, "encrypted_shares": [ - "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", - "a45a839733537744b0cbdeeae90f14f659458425eb603ae69bd867e6098367d1a9982b249cb30daebe150570c5e7fa4d", - "f9f29daaa5cbb0e2917e71b8bfe5f2baa847307b5d70b319d5f7731bbb7075adc4ad244264b85fa4d0bf9299ae11a529" + "68f343954dfa1298fab846f3b7859861cf65242b606429a8dc3bec4253f29590b104047132854cfaa9cd73ba504d41d6", + "3ec47bc60f2132ad43800c29684d64e2ed0ba6ee9f2fb445787e3e8b176c6195276e898aecac9b57640159c9c2b46d07", + "d6c737b54baf32175a85ce8c8f30ff7219034d056367f487fe31ddf058820399851229a587b84c4ac682bfe9078aa318" ] }, { @@ -62,11 +80,19 @@ "02fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b4", "02dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d0501" ], - "pop": "025ab99ca736f8ce1203687a626364744c3ccfeda9b63e7313a8b969ac62aede0bc0943c103c540da236ba575fb88921221ebc85e1ed0f432408f8ad16896dd878", + "pop": "03d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b2ec444a7a43e1a3f620f863b39fba65d4b5cfa706dd6ad1435304608bec2ef851", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a986491c1b93019c341d13f9a9d118e473f515de60022b72134a63fffe19cc4f03b0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "nonce": "8d6347e328d4fea3d0697999d7ccf0069cd0d945655f04600a6e9575f8a056c6", + "nonce_commitment": "03d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b2", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b202fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b40ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "challenge": "cfab1bfe17c6f6a319725dbde0ce24380cd4d1163ef6c56dbc560408b33d7db3" + }, "encrypted_shares": [ - "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a", - "11173ed71d7ad60daf3720734ad96cad47b58ee1548e65fa4903e0e5a7e94fbeae3a8076064895bc7bdc201df4de5236", - "d5aa7efab9d2d6e32c2039bd01eb893696930bf5c3e6449f9abc82a4482604680ba2373fad594aea7754960b3064e88b" + "dcae93813a7b4aaea0779ba5e63afd8d334dd8642ad612ef6d8721994cf11496257834b4df374cfc383dac3f49cd3a5f", + "e5357c60329c0b7086c81b952a0f20f0e959c27aa300646778b948d0c68337055164cec12de44c2739ee2a5994b9a95c", + "e533f3f84e232099c48a56f4b2f4c6685bf56105cc24741478ab93b86b2d73653aa56853b6d53996e03cda07bdafa7dc" ] } ], @@ -88,19 +114,19 @@ } ], "round3": { - "transcript_hash": "0d785c00ecb6bde350ea1800ca69121c82be87ace2d7b691cb3d4c91566994b2", + "transcript_hash": "df0b530aa49c10a145f6387738b13641e0caee220fed2b6d91930d6c4b72ea7d", "signatures": [ { "signer_id": 1, - "signature": "02bab75a5155f867dfb974424b9993965f8e86929253f3630d7c840a9d381e9b1a1e1b1e11153dac5e3a1ac8ad0f12588e10822068435b26bcbc654bc1ee2b1c4e" + "signature": "03e8acfb85a07d3ffcbb3524a5c643a50de1d7bcc65289c424c4822ffed54d02f742d90e44b124c2f1413706d793dc5ef5c8f9cf4ea7c64f5e32f1bd5ab650b468" }, { "signer_id": 2, - "signature": "025a191fe08f7d0248f8bc69d016ceaa5316430e13b8056e192bd8f80c3017d4bbf658214c1ee2e184add34c07a73ee5f8da3eabe849b320a71e187769a54e1e61" + "signature": "0252b0425c0f0adda58dd59df86d1a0199cc03fdb5db79c2d074a150eb16bb502b129e385105e450927072512f9b3c6e75cf46ea2c24a24547eeafdf80a5e21387" }, { "signer_id": 3, - "signature": "0388ea3c84b7ca9a7a4332227442495a5447d9832819817f48cfcedcbf8f44e672d61df10dd5ba4b979ebc8e38ed7b6baedc1b07703161d3539023cfcc2f80ddea" + "signature": "03c03124836c050f5dfbb2d82ea66c696a0832cf0c2f0081580e968ab8609fed2cabd6aa01577f35c584f074ef34b5b9b0a9ae95ec112e7c46884b2189070f45ad" } ] }, @@ -108,9 +134,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", - "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", - "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a" + "944a59446f203aee0c0ebe4107cc3c605ebbf3470364ecd74b5c7b001de178849450035e424551e4abbe4edccdfe0987", + "68f343954dfa1298fab846f3b7859861cf65242b606429a8dc3bec4253f29590b104047132854cfaa9cd73ba504d41d6", + "dcae93813a7b4aaea0779ba5e63afd8d334dd8642ad612ef6d8721994cf11496257834b4df374cfc383dac3f49cd3a5f" ], "recovered_secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", "recovered_verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11" @@ -119,7 +145,9 @@ { "n": 5, "t": 3, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d332d4f462d35", + "context": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af", + "extension": "", "config": { "static_secret_keys": [ "97b9f7468d461d768bfc89ffff0c41efa43d63e915db3b1e9558d0e7d0120b7c", @@ -145,13 +173,21 @@ "03b9bfdd22bf681fd328e82debe7ba260ee2aeedab6fcdf24dde3b1db6e68fa64a", "03ff3e169637a4a257d2dfc1cee6668121f8b9112c1555fa1b5a07bd5c495d00bd" ], - "pop": "030116f65fb2f6c6bcbd7a0e4ea738b6d345e685f19589e1dbc4d7b923915dbb8321cd2cb9379e967a749c4d4fb4c0db8377feaba2a7f10bfbcf484703d070b880", + "pop": "0349b1e58a5c00d7fdd687a93f957a228960e582ad9c491f7ee26f365089611d9b08562e4baf7529500e152dbdb466c4ee1508e78b1986cba9d6e6619f0cdea161", + "pop_intermediate": { + "message": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af028d67064658d922c4c16e052c326162fe25eaa5a5b67c18166285afde6a3736e703b9bfdd22bf681fd328e82debe7ba260ee2aeedab6fcdf24dde3b1db6e68fa64a03ff3e169637a4a257d2dfc1cee6668121f8b9112c1555fa1b5a07bd5c495d00bd0220a9ce41fa715b0ffbdfcd0d24f9d0e47a6c824a133c79c6e5913aecd90bebbe", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a983889a95f02ae922b7c4930a83a718554943adbc73f8ddeeb7a6216bea24163a9810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af028d67064658d922c4c16e052c326162fe25eaa5a5b67c18166285afde6a3736e703b9bfdd22bf681fd328e82debe7ba260ee2aeedab6fcdf24dde3b1db6e68fa64a03ff3e169637a4a257d2dfc1cee6668121f8b9112c1555fa1b5a07bd5c495d00bd0220a9ce41fa715b0ffbdfcd0d24f9d0e47a6c824a133c79c6e5913aecd90bebbe", + "nonce": "d0048a2df8773f03cb07e72fd7bd4b131c9068794cb1716e3feffe8e45ddf738", + "nonce_commitment": "0349b1e58a5c00d7fdd687a93f957a228960e582ad9c491f7ee26f365089611d9b", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd3998640349b1e58a5c00d7fdd687a93f957a228960e582ad9c491f7ee26f365089611d9b028d67064658d922c4c16e052c326162fe25eaa5a5b67c18166285afde6a3736e7810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af028d67064658d922c4c16e052c326162fe25eaa5a5b67c18166285afde6a3736e703b9bfdd22bf681fd328e82debe7ba260ee2aeedab6fcdf24dde3b1db6e68fa64a03ff3e169637a4a257d2dfc1cee6668121f8b9112c1555fa1b5a07bd5c495d00bd0220a9ce41fa715b0ffbdfcd0d24f9d0e47a6c824a133c79c6e5913aecd90bebbe", + "challenge": "2d873956a53fac68b02408e17fc6859ed5d3171f4b7b584a2a667fa8d378e725" + }, "encrypted_shares": [ - "be4888644474f5e3b447a32f12005a27929cdba66460a4ff71c51c4d55937af983d5c4442a7f3ef4519205e40c0abab0", - "cd5b5e013e0f0ab77571b49c9e3881af42a17102bdf12b4cd7e0b6627fa69f7475b9ccabd1b3958417cc2552046f6f87", - "4195663c99ae4fee99fb822654c1a91d8d4aa4524a67ee4f81a493aa6ac5c15fd98631039923304b4684bcdbe688ed71", - "f0ba86ddd4012763980b5c175872e30cddc5863352119693985bdbcb677cc4fb4e134c5d662e8464b984e5d5ae1a5988", - "57d250753752a517c513857f49e374e121150b366232955a905887cd55ee6bfb9a47cfd4007b34344b2df2ce27e54cc4" + "7d1565ab9b6ca3baac4211c0fab99f3f776ae76c8d4bcb270fe89f3215bbea52fc2b1e859efd0fe1d982c3bb8674ca45", + "d3d2c88cb212db0eac52ee1a072746000089c4742208c304cc5b68e71154eab012900488f523bde8ad4ee78e8575ffd3", + "2e92a101042aff43245b13e769e08380186d3a8a20f1827cc401250eb2aebbb152368deee8dfd52d55fb7ba9dda0564d", + "3fd8da04cdf0a1984e741474f165146c96e0cbf12abce601b6e07f6210c4c485ae2d555afa8f4af75d9358f6a386745d", + "f89c759a615dd74b51fb4153936b69a3bb0b638f77fd6b9c569f778a299f85b25daa3e5a5829b700a4ed372362a4722a" ] }, { @@ -162,13 +198,21 @@ "0253b6295998c07f93e5272ad7639ed8172719fbf273f698522a93063c6efc2d64", "02e602a2ae6dce4425bf660c55dcbc3f8e9ffdbad4517299d5d1d1426e5d7ef5e4" ], - "pop": "03be58c97432325fc734ca6e2bbdaf68db27806dccd7f162f8e4f179d278e4c5e368f72756c4519ca14bfe9b1e479f8d2ab0db1256ecb00ed18da0befed3392aec", + "pop": "020cc13f0fd3658fd55ade25873f286217ccc4b57781febf42e6a67b71514490b0c7a47da7e079010d1727b447e60776f2242de8f306ecc44612cf07c173cc75b0", + "pop_intermediate": { + "message": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af02b517e4cc53bd4bcf6e04e79637d44321a9763ef8350a5c2d8e9b7b0dbb1230910253b6295998c07f93e5272ad7639ed8172719fbf273f698522a93063c6efc2d6402e602a2ae6dce4425bf660c55dcbc3f8e9ffdbad4517299d5d1d1426e5d7ef5e403b40ac55e8c628b50a73c7d6dad2648cf344148be9c2eb175daf62780df46178e", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a988861b8d4bfe82855a2c5af27be8ee83386533d4b2680ba55e19b5929341d20bf810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af02b517e4cc53bd4bcf6e04e79637d44321a9763ef8350a5c2d8e9b7b0dbb1230910253b6295998c07f93e5272ad7639ed8172719fbf273f698522a93063c6efc2d6402e602a2ae6dce4425bf660c55dcbc3f8e9ffdbad4517299d5d1d1426e5d7ef5e403b40ac55e8c628b50a73c7d6dad2648cf344148be9c2eb175daf62780df46178e", + "nonce": "139bf9270de256ac0ad24d746ecb85164a06af2d5e5da2cd149cdb03b02e17ca", + "nonce_commitment": "020cc13f0fd3658fd55ade25873f286217ccc4b57781febf42e6a67b71514490b0", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864020cc13f0fd3658fd55ade25873f286217ccc4b57781febf42e6a67b71514490b002b517e4cc53bd4bcf6e04e79637d44321a9763ef8350a5c2d8e9b7b0dbb123091810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af02b517e4cc53bd4bcf6e04e79637d44321a9763ef8350a5c2d8e9b7b0dbb1230910253b6295998c07f93e5272ad7639ed8172719fbf273f698522a93063c6efc2d6402e602a2ae6dce4425bf660c55dcbc3f8e9ffdbad4517299d5d1d1426e5d7ef5e403b40ac55e8c628b50a73c7d6dad2648cf344148be9c2eb175daf62780df46178e", + "challenge": "0a416750b95c5250f3f170544291cc23acc8bfe2da766a7be523414c442a5851" + }, "encrypted_shares": [ - "7c0cd36129905e1f0497e856e8c095c4894e7d3aa5f093ba8dc444ff5e02b37aa02936493e5e932a5fa194dc0444e06e", - "ed7a9c86ef801e9bffcd7caffe9f1dd8c228353dd633fb6ae0634d64d0267fd414cad8012fbc8c0f09a3928a4eed7aff", - "afb31731444bb89347facf940c451f50806c8c2d1cc5f712eba18780374357a93b2ae82aefc1e11af513cfd7d881c01a", - "15616fdc63cbf2d2f49faa90f1a83005853b86daee85eb6c2b3faa2c5a68fe12c3cd0fd2a3379c7df74138399d5fb647", - "e9bd960a0768858b5700cbf73186890bad5834d65f3a909b0a5d84310584a5cf06bc0332a4481e80237417fa2b954895" + "c5e8260213d55d8f07fb4d6adf69e13abde4bf1219e14734a121d32177879c8c6d9b7f6c09a27ee50bffd9ecf18d0a5a", + "73cd1cb1f8a37dffa0ee09be67ad750e43a9c43c2b1b3140b0ecd13dad6ac31e023456e59dbee162ac7f31e0f06818b9", + "058bf71eb0afb6ce883eca06bf7a45befc70e0aaa6ed47f4a90e5c6c2274db938f7680c56f369261714cfe0d7cba6f15", + "03b69cbc09d7193612f0f94c5b4f5eeedaf4a80296478bdf5ae4f777772bd857f8d95c9b46c803d1e19c4d0ce39bc5d6", + "de9ccfa7646bed6cbf89855a67e17bfc79222c09bcf402b5a6ef7671d735cbedba7b0ae8e7c18565f445fd665eccc01b" ] }, { @@ -179,13 +223,21 @@ "0303f357f157153c1a8df01b78fe3aecbd83af9a5628ba7696a666922f9732ad89", "026a7c4e404fdb7dba91bec2646181377eaef2c5926011ec097b5390040fc9ab38" ], - "pop": "02299d6c883a75da067f4bee7df0e765ebb7def51dd9013fd1d5b335663069430b7d50667a6d9638a31e256ae6a6651d6b3aad7a811660de58df319da0e395988a", + "pop": "02c7156deeb44d3a073ae5668c33c62e650e1c15ac801e9af388c694d6e7e9baacb8b7a262915056f0bf6c4868c772899df29fa6b209bca60903fdb78cceefd79e", + "pop_intermediate": { + "message": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af03736a1d64fef3a68a054c2afc2ba2c3a6b75d5651030a954b322cc25095516a140303f357f157153c1a8df01b78fe3aecbd83af9a5628ba7696a666922f9732ad89026a7c4e404fdb7dba91bec2646181377eaef2c5926011ec097b5390040fc9ab38025d2e46cbf1d980427572df52fcca1bca4bcc50ea2165c2362bc3b65a0f253ef2", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98db0654e47018ce77458bbea218a7f8aa3d6b0fee7cdb96fbda6f0a749a47e044810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af03736a1d64fef3a68a054c2afc2ba2c3a6b75d5651030a954b322cc25095516a140303f357f157153c1a8df01b78fe3aecbd83af9a5628ba7696a666922f9732ad89026a7c4e404fdb7dba91bec2646181377eaef2c5926011ec097b5390040fc9ab38025d2e46cbf1d980427572df52fcca1bca4bcc50ea2165c2362bc3b65a0f253ef2", + "nonce": "2e1d5c710577b4fc0fe2c268af10686ddfe2eb6770873cd0af635f42881f851f", + "nonce_commitment": "02c7156deeb44d3a073ae5668c33c62e650e1c15ac801e9af388c694d6e7e9baac", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402c7156deeb44d3a073ae5668c33c62e650e1c15ac801e9af388c694d6e7e9baac03736a1d64fef3a68a054c2afc2ba2c3a6b75d5651030a954b322cc25095516a14810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af03736a1d64fef3a68a054c2afc2ba2c3a6b75d5651030a954b322cc25095516a140303f357f157153c1a8df01b78fe3aecbd83af9a5628ba7696a666922f9732ad89026a7c4e404fdb7dba91bec2646181377eaef2c5926011ec097b5390040fc9ab38025d2e46cbf1d980427572df52fcca1bca4bcc50ea2165c2362bc3b65a0f253ef2", + "challenge": "c8245bf7ac8b56de5bfc5ab2c934efff0cb4a24401aa4310a39b15af33a9d4f4" + }, "encrypted_shares": [ - "a040df73212c2aac6fbfea2b2d8ee485c9a467d11e4a25b2cd5b252af53226fe5d9eddb85711844cef9d76e656417405", - "59ba15ffd40f2187b92d47f00a2c9c9f4f93b2ee2570bb62bdcc63a3e02d7802fff3cc248b96901a900763fb9c393b05", - "4041c551933749a5b40b793825e216c176ab69a515f15e0e69d4fe29920b035f462b5d9e9b64e46c8132c1e4f2c7cdd4", - "0aa4b79495a6a7ca6121d1b9b42a84ae5aae6df1d151fd60570566a272de29ae2d249907301a2b01357e4f27e5cd8085", - "ef3adca5d017946d284674368a3f6b91215304a0ce19abac529b9b8d521400a33d995eedaa79a5ba9976f0523d9f053d" + "4df05d126a3a2db2f06301b6983aa367da9eb008b08944c38d3fbc74705eb98e1140d43035209cd99eedf4621f9a1429", + "ba0d846e8e59f594110ff8d7e2fae92c1d3bcbac20e45297a616e63e4f741afa90ac7ee1ae31fefd6b132d0346eaf4c7", + "dc83a2983baba8f469d1db78453736755ebca268a8a56e0984e659894afe9f4e62ebdb0f4fab2c16f624902c10b26613", + "b0aadf713f9b5adca96dc760c3c77624eb42a598af6b0d1d5a0e619522ffb1b78818e5cba3bb4cdbfc471311c1b634c4", + "2d47435266fde93f4ea17e617e741e501f553094091a7358a984395d440f114bef09ff5745d5ba6788fd96086255cab9" ] }, { @@ -196,13 +248,21 @@ "0219bdef95c40ab661631c875bbb889074ba4b0b9bfb2efd247521ea0703087e1c", "03010ef466a733f117074eeb7491e434731ba27a52d12d212547d20d19c0eac754" ], - "pop": "02838260f85298a27e0b131434a28189e6621491893ad3606c48e98a874a17c01efb712ed3ede1c8f402c676fc5491afc309d57033276885cd61077be94a8f988a", + "pop": "02f7b553954fbe27c779451d96114f8c6f27ff545a42ee70f659e08321e832b72bc0da339dad575e28c2cd8ac6de664fd2cea7b1eaf588a037798fa45157cd701d", + "pop_intermediate": { + "message": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af035af32bf5f018c0ff4bf8676a6d2f388337ef94a603d9c4b5c2e29c432bf653420219bdef95c40ab661631c875bbb889074ba4b0b9bfb2efd247521ea0703087e1c03010ef466a733f117074eeb7491e434731ba27a52d12d212547d20d19c0eac7540293e7d24e9b65b43b843ca030bf8dfccfc4e9af206e8f4b9b3e00b21cb1b41815", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a9812c89d425bf0b174bb9b6e661d6bae13b96f2ad4f72b1f6e2ed65e17608b7658810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af035af32bf5f018c0ff4bf8676a6d2f388337ef94a603d9c4b5c2e29c432bf653420219bdef95c40ab661631c875bbb889074ba4b0b9bfb2efd247521ea0703087e1c03010ef466a733f117074eeb7491e434731ba27a52d12d212547d20d19c0eac7540293e7d24e9b65b43b843ca030bf8dfccfc4e9af206e8f4b9b3e00b21cb1b41815", + "nonce": "a7b8e0281c24bc0ae9993b485d413c9c9e00c5cc29ad79ac79c1e850ea41ac9d", + "nonce_commitment": "02f7b553954fbe27c779451d96114f8c6f27ff545a42ee70f659e08321e832b72b", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402f7b553954fbe27c779451d96114f8c6f27ff545a42ee70f659e08321e832b72b035af32bf5f018c0ff4bf8676a6d2f388337ef94a603d9c4b5c2e29c432bf65342810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af035af32bf5f018c0ff4bf8676a6d2f388337ef94a603d9c4b5c2e29c432bf653420219bdef95c40ab661631c875bbb889074ba4b0b9bfb2efd247521ea0703087e1c03010ef466a733f117074eeb7491e434731ba27a52d12d212547d20d19c0eac7540293e7d24e9b65b43b843ca030bf8dfccfc4e9af206e8f4b9b3e00b21cb1b41815", + "challenge": "6baf5efcfe3731c4cbacd5aa5f1b0daa4d6fcae56bc8df8f442fe7b5ab6b6489" + }, "encrypted_shares": [ - "c8d893e11274c4a5622967e519996a540b09c83a5a8b290a15a9b83803fa4928d3442f316ec515ffd20f689f7b965056", - "b90c169fbb2748073d8879231490fc2183fa7f394834a41e3cd6957ba6d35b3a8555ac0a23afa082ecb280309cc2c57e", - "628713a70fb02b03e0221c5bcc93f82daf8f11bcd5828ae3cfb2139acfa1781a077e5013f2850f2a73fdb927bfac9690", - "0f2bc915e2818be2eefd5fea13ca8aba4e4e6c658cecfd43ca2b6e1064529ae2a4ad9cd552ba2050349456a31a1aac2b", - "1a8446b2e1b30958b5f45c8e4037db19addfbba209374b7dda6fcee94046c5c9e5ce7e74c4cd4e05d39b3a3efe3e6b61" + "af893959c2f9d2e4da53c8e7931f89bfa0a5597048dbd9f5ee9fa24de738153753bfe57d82cbb2fc864f665ae76b9c1e", + "675912272014398a7e1bb7045212365380acb22d8d5cc7664e2e3926d849de484176f1df6e6dee45cabf4f2ad416af9c", + "a7e72a87dc3b37c567ca16e67a74d55d7296eef49c7567437b1a9ef259a137c7713517d9ef85fe8d82e0f7967acf988c", + "01e839c4ea44958d73c9ea847075b0f7f77854a950f46d76e045d8229463756764dea08a12908f2cddf90046e27dc9e8", + "3d379a0cf4dfa2fa63ad98bbce892914cb24a23858505a69dd4ce93e17371020b684ec24b50da8b6c7a026242d82e865" ] }, { @@ -213,13 +273,21 @@ "02b7e6f0ff6d7210514e0bbead23e8d24f64c4a494ee35de46b7b4425a37dbe55a", "02402145930979fc7e190bdf41fec0951397c2d1d874e723cf5b231f7dd3d58dd8" ], - "pop": "025ca4d83365231f4e35ca1c4784edecdfb35d0fdb6d83907e0c1cccd7a2628bb2fd0697c274eb287c51127010c60f1c55e782fe8dfe60357a84bea35b669c5e5c", + "pop": "02ef9b7d461fc6cc345a84fb9dbcab8939acaa4f0a6c27f4744d306358f813dc19777cbe5267c1e79359df2d29ea41e50f77d9c5c61aa01daddd200092dcd4d82d", + "pop_intermediate": { + "message": "810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af032929a150a39be2ea8d5196e5ec1df09ce9ca0a8be24853b01ae8472771e3d22302b7e6f0ff6d7210514e0bbead23e8d24f64c4a494ee35de46b7b4425a37dbe55a02402145930979fc7e190bdf41fec0951397c2d1d874e723cf5b231f7dd3d58dd803b99e24a59bac8686386deeacf642995c6dcb9b034dfeb4a0c95f62e05be48c08", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98bb6cf33060f5308a67c2716484f71a11a4fed1e8fa3d42a33e74fee60a587603810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af032929a150a39be2ea8d5196e5ec1df09ce9ca0a8be24853b01ae8472771e3d22302b7e6f0ff6d7210514e0bbead23e8d24f64c4a494ee35de46b7b4425a37dbe55a02402145930979fc7e190bdf41fec0951397c2d1d874e723cf5b231f7dd3d58dd803b99e24a59bac8686386deeacf642995c6dcb9b034dfeb4a0c95f62e05be48c08", + "nonce": "a621ab3f5db389492b98e373f2cfab3c2245a748986cbaed7826c13d7588808c", + "nonce_commitment": "02ef9b7d461fc6cc345a84fb9dbcab8939acaa4f0a6c27f4744d306358f813dc19", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402ef9b7d461fc6cc345a84fb9dbcab8939acaa4f0a6c27f4744d306358f813dc19032929a150a39be2ea8d5196e5ec1df09ce9ca0a8be24853b01ae8472771e3d223810f6b4a2e051e7630d246e12cf5bd662dd06582a9bb2f88bb863f3e94ce00af032929a150a39be2ea8d5196e5ec1df09ce9ca0a8be24853b01ae8472771e3d22302b7e6f0ff6d7210514e0bbead23e8d24f64c4a494ee35de46b7b4425a37dbe55a02402145930979fc7e190bdf41fec0951397c2d1d874e723cf5b231f7dd3d58dd803b99e24a59bac8686386deeacf642995c6dcb9b034dfeb4a0c95f62e05be48c08", + "challenge": "96991436cb790cc6e6748f7f87d710d57dfce69b9678fd09cb2a2dc071125430" + }, "encrypted_shares": [ - "8f8c833e1dc8ac0a6065754591ead3c907c056b62c965b1afa9b6ac26d30ea7d9e3be842d18bbfe69613663e2eac1272", - "bc04eea028ba12490bd8b73715cc2aab4b1e22d44e558c12b1bd4458b2ee403404cc3919c6dcb8f769299eb699ae1c21", - "e7aa1762aac7ad4e1a6802cc2e645b84499fab5491bd28f7bab1ebc194ed86c8f80e9cf434aecf4a110f62dfe506d9f3", - "bcee0f8fc2097fb653feb0e49892fd2f8eed8331f7370205697b55de026fc7baac8e90de1c5e8d255b6944ee757df59d", - "d5c48b399ddcc645ecc33295d457feb069f024f0a45114196a4486f5667cfaf6f5275f035f80c49a1a2413f16c349609" + "26742a3ea3390b372a88a50e862875e0d374f00c83adb3bfe5a3155b1d987cfc5fa756a4954773020e59729105f7e7c3", + "d5bcb8b4b26ee495ce0cbc8ec40507dbef9bf8e9f58bb65d9810bcdc1bde6cc8d9b8d0297febc437567d43acd630b8b6", + "c908f5d5da2801dcba0b4812b080846de68ee284089870ee80cd2b05b1b6b33e0b9e200bb46afda37a6e15811ab913d8", + "83ba93829311864789ec22a18a0cb2d328176cfd6c415802f053802059a2e3dfa2e120d026514c89fc2e4788471c21c2", + "1cedc2dbbd1133e99e087206744139bb92d4c7430e3aecc98260332a45b86cc6d6dd3160d4cd890c252de41b58403e4c" ] } ], @@ -251,48 +319,38 @@ } ], "round3": { - "transcript_hash": "7dba0528c2bf18da7afe4a1de2e9283f70f4812569711f18eba3af92dab2469d", + "transcript_hash": "53c718b0cf65126511226a5e099358aaf49d2e8167534c7e5638a48c5a72c8ec", "signatures": [ { "signer_id": 1, - "signature": "03a7e42ac95336d262b534ca4fa9f42de946c014a8880197d6e677d97ca3f2a4c2e2c8b5971498af9f9a892f11d88682d5c4e439efb919559fb8dc66392b7cb8bb" + "signature": "03ba8ae28aeffbb2ee69bdab5223e53ac9ab41223e927dfe9f809ca73d387772edae5c783bd75a6eba15d16003e2942af617751fe19f9defd512496cf477a4b825" }, { "signer_id": 2, - "signature": "0288501f4164d60bfe63f1b795fcdcbad86f0465653490f05133fd8fca4d6042ddc2604a251167d686b1a8a6f98dfc9fa260611f6534ac57874732676dc0f34a24" + "signature": "03f797742a0eaf76f62d98d79cf37dfb41e6f8d0824ce5ed4210a8adb5b0253b79833e20e2071d3b9bf829e7bbef83cd5073c711fb37341fe25879921f201fdec6" }, { "signer_id": 3, - "signature": "02d2ad6aae935ab7c5ccf55c7f2219095cc4a5ab55fa3e5ad34510e7ec53e748d6075c0614e75a5e2e554d0435abc2b64c143982cc56ede5c5185a0880cb9fc987" + "signature": "02a32888af565e3aeb27768457500f38319a845bf66487afd55b7f29bffa94642f87e9defd4bb4fd3ed4286d7553c9f1011ed8692ac665525c17e5b6291b4f7334" }, { "signer_id": 4, - "signature": "024a745339da5a45e921355acca626033a65f43fdcaf07814e4d7865d3b169f016fa0cb3e74ac36376c2a3720f06276d57db911eb7573640081ed05e492d25dbdc" + "signature": "03b9d3bdd005dbb26d25f446aa45f3d115776f013397fed9f1df631fdef122f3680538b1316babcc45b01596d7bf4e91d160a593a3a996c40fd19a1ff94541d203" }, { "signer_id": 5, - "signature": "026682e0007ddf53d43bc64fb350ceb47b6787d2514cfb9c2b87acd3f13b99208192379a0aeb6fffef175e4cf69b59248e0eb735b9b1ed88a8b4c81c2545147ecc" + "signature": "03d4d5382d39aebae4a60b098877799a43cf3b0c6a73f1bad8e3a7b3f5fea6214902ebaff944d2f41a6346788fc5b4379b6d125f9af273e594e3e0a182cbd5fd37" } ] }, - "group_public_key": "02c4d6153a66c590f2bc546d51cf411b2522ee6b447ed0b0e51275dac238e666f1", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "be4888644474f5e3b447a32f12005a27929cdba66460a4ff71c51c4d55937af983d5c4442a7f3ef4519205e40c0abab0", - "7c0cd36129905e1f0497e856e8c095c4894e7d3aa5f093ba8dc444ff5e02b37aa02936493e5e932a5fa194dc0444e06e", - "a040df73212c2aac6fbfea2b2d8ee485c9a467d11e4a25b2cd5b252af53226fe5d9eddb85711844cef9d76e656417405", - "c8d893e11274c4a5622967e519996a540b09c83a5a8b290a15a9b83803fa4928d3442f316ec515ffd20f689f7b965056", - "8f8c833e1dc8ac0a6065754591ead3c907c056b62c965b1afa9b6ac26d30ea7d9e3be842d18bbfe69613663e2eac1272" - ], - "recovered_secret_share": "2aa84b0e28cf945fab50a04b0493026be4a8aac17bdd980915a50830a897cbe7", - "recovered_verification_share": "03ffd0727fdb797a7ede721674aeec6080d67dd5667d0b7f11635bd27411eb8955" - } + "group_public_key": "02c4d6153a66c590f2bc546d51cf411b2522ee6b447ed0b0e51275dac238e666f1" }, { "n": 14, "t": 7, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d372d4f462d3134", + "context": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49", + "extension": "", "config": { "static_secret_keys": [ "8f26fe486e7d36a291970961906a799433633e3fbae1ebc0d4f9a07ff6be6539", @@ -340,22 +398,30 @@ "03310dd76145338dab22d69993d2f9de096e80d25a4f57f66de80290f6d2e60653", "03211495a08cbd357e03ac78783b6f0848c4a8ecee9f6ee3227a6c646584963ecf" ], - "pop": "02651e2079058491cd52eb7afdadb51e7f820870d36041bcc6ed507df990c0d0570ba20d9f86150e8fccff44171be141173e248946471f70818c1b0b40f9163418", + "pop": "0317b238417bb6bb50beba38b41900210f5970e69bd9207abaf39cff386648f0102eaa2594c4acda46305cebbc8ab6740efdd4245979f45a3d81e885eab2936291", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49029fec9edf9536e4de8577e27298b286c80abba39a70a17cfadee7b45cd5750b7502270a87f2092916b609f464965cf9992a9436bf5eba5adc46abfcd48b2c34bd0002c5e04a05aaa88708cc76492c6adb731a0a86e952a3696f9ec3371c9b77e483880299180858f763aca25584c5d1ab6a4f895c37d4378c29cf0ed97d12a3f3f4c5b402753e0fc6e6b3191e87b493dec11c13ce96ce738236e2c858bdb24b2f00b1514f03310dd76145338dab22d69993d2f9de096e80d25a4f57f66de80290f6d2e6065303211495a08cbd357e03ac78783b6f0848c4a8ecee9f6ee3227a6c646584963ecf0340e68f5518ea6dcbe5ffea65de6c65f57ed9d68eca22d113815eeacafa450699", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98f4e9239a3e60c8a2d16f4ebac00f588849a3ba62e0384e79102a16b19e1cc29f1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49029fec9edf9536e4de8577e27298b286c80abba39a70a17cfadee7b45cd5750b7502270a87f2092916b609f464965cf9992a9436bf5eba5adc46abfcd48b2c34bd0002c5e04a05aaa88708cc76492c6adb731a0a86e952a3696f9ec3371c9b77e483880299180858f763aca25584c5d1ab6a4f895c37d4378c29cf0ed97d12a3f3f4c5b402753e0fc6e6b3191e87b493dec11c13ce96ce738236e2c858bdb24b2f00b1514f03310dd76145338dab22d69993d2f9de096e80d25a4f57f66de80290f6d2e6065303211495a08cbd357e03ac78783b6f0848c4a8ecee9f6ee3227a6c646584963ecf0340e68f5518ea6dcbe5ffea65de6c65f57ed9d68eca22d113815eeacafa450699", + "nonce": "9d5fa18e88a418029c6ee5337e961900cbdaf235a34e4924e4cbdf4d0901e5d8", + "nonce_commitment": "0317b238417bb6bb50beba38b41900210f5970e69bd9207abaf39cff386648f010", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd3998640317b238417bb6bb50beba38b41900210f5970e69bd9207abaf39cff386648f010029fec9edf9536e4de8577e27298b286c80abba39a70a17cfadee7b45cd5750b751f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49029fec9edf9536e4de8577e27298b286c80abba39a70a17cfadee7b45cd5750b7502270a87f2092916b609f464965cf9992a9436bf5eba5adc46abfcd48b2c34bd0002c5e04a05aaa88708cc76492c6adb731a0a86e952a3696f9ec3371c9b77e483880299180858f763aca25584c5d1ab6a4f895c37d4378c29cf0ed97d12a3f3f4c5b402753e0fc6e6b3191e87b493dec11c13ce96ce738236e2c858bdb24b2f00b1514f03310dd76145338dab22d69993d2f9de096e80d25a4f57f66de80290f6d2e6065303211495a08cbd357e03ac78783b6f0848c4a8ecee9f6ee3227a6c646584963ecf0340e68f5518ea6dcbe5ffea65de6c65f57ed9d68eca22d113815eeacafa450699", + "challenge": "41540f724434acbdffc1a18a1e6fddc371e9099e27db67dabdf17d251effb117" + }, "encrypted_shares": [ - "68f1a4f3a1b132dce2a36e4463baf2241918986826d32bb5e29374db2a8cc1a69dfd61e6cefda4ba70bd4471113da46f", - "1fce5ae21713a540bfc04293d04e5ffb0ad482a467e3673d268c3a2ec3e639c27b9963f169ebcc67c2d815b69ad960a6", - "67125dac2a0ed2ca7f6a618870aee00b3ea900b620d72dbaa008df1b449a7b120f4de503e478708633dba3ec54260f3d", - "f0cd7fa9ecb9d9d225ebbbfd39cf4c9a3f1e4e1622a846228dfb6f06f0a4401d4763934eca27cab650398afbbb82ca68", - "24b065d4e77d6bd4e634c16145365184ff077a62381a5ac51548e2df1bb67dfb9dc087adb7358b30f8ed2fb037d33bcc", - "9bd7d41baf33445173f2d5cd0efddbdb6dcfa9f1a0ad8c4c2a55886cab41ad88186c989a335bb2cf7bf6631e036fe01a", - "f1b69ee08a0c1881c64408f905073df0f258fa232f77cadb9af05d28a164d09e0ec71d277a2742c209489802951c4aad", - "dee1a6e72f8161fe7f1b227a670ce689dfb6179e98d0f51340684e50f791bb4d6ec2af29d6d1281943bd8c43d415ea88", - "cd36eb0a76e85c561a7a6c87b23e8b4340033175e29ac5e9c176b9de2413688344c1888748c6d1f6e376f9e0c93e14ca", - "9a857469603fb6136b05d6c634a06702e7ecce98c54088297619e7d4cca0966284a10c35d0e2c1ac9bd18ae31c422023", - "46eb07cd1b6c68ec8ada5c5c11f9b6bec3869cebee8b18b6e9d67ab79699940d9b031a267e1a79e9d85a662234945802", - "d23cedd66db8360c060d52fb0b5fbd6f44529612cf864d6e0b853c5d100200b97124ca6891bbdbd8904db59572263051", - "930c8919f3c3b7795b37d9b2e17e8afce1f48434de5c2019eefdd13ea6d02fe5e8a7d46e56144bcd83e9ff764e9ceecf", - "f4a1634a40e884e21dab729f8d9eeea46614659ed7e3ef8dfcc56e80c4186187f2e6afc5801caf89e3c86287369674f5" + "60dde45fe8cdf86005f544cfa84599bfd4245a5d54478b7a7157a66223d1bc0eed62dbc2f83066ebe811c5cf34a91843", + "a5e5ef4f48eba28c3fda63a687baaea9d1561ad1672cca4adf10be01d6a44bf414f6996d81c421937ef76aa3efcc3325", + "9e4344cfe44c1260ef127230c276f7febe039abfae516786f5fefbf359663c6e9a38e4d851c0dc3cf6bc587bd302e96b", + "9f4a574ffe6e3039548da0325a99c9eec9d3a401900e56e1b98019d784465084d436b8326a2d29c55365af2f2622cfe8", + "cf75a77306ef08b86c73edf605a2cd1c50d1877ce8e087d112e50aa192d12a6076f699e5c57d053f6a7fc7b0fba9ca6f", + "9662f6c2a1ea0d92d943b7fd6eeb6fb7ffd467fbdb365374ba7cd472b52683748c6672ad8811e8ebc3c2eabd9ea5df1c", + "46deb8c172b4920263ac59dc7d6181d6ca09f7cdb9c6769e513695b435d6ba781b68853e622e88491c9172ac339aa652", + "1a42f506d586d5ebb0f6650d1494ccc6ef2b743ae47fcf8d2e764ccba32253a9aea50af39a99621c01c4709da1224b36", + "9aac655d23bd8f5fec2ec148c07c3b653d75141b85388c7ee707c079744e862a1e4dd15976b0557a7dfa6c762c7bfd5b", + "bff5e7c952ffe40a8af9fb2f23b0f88ed03f0c513b4f4b20db003a562b674512f34a21e590b5fcba7a43b6ee8eaee518", + "1834c2bf5482137f9600e9214e99ace9dc16700d59259e7d82ced42c521219fec8fb605bd90aaad9551f35b5b359f174", + "377526d9a1d7f115ba9cef96b7f593c6d0d9bffb9bf40f801729e1d89a88a21f92b4f711b36e9bf3569d6955776b013f", + "09fc417ed04cbf6577b96a3f70e63d176392e6ff85bfcce75f2ffc51061ca6d609f616d732ab887543c348b3e1c8401c", + "06621d1381af114765ed1d26eb92f8163a144b878b7e4acc2b64bff2a4b02a12bf451e2d9661db5c9f199c4d7876844f" ] }, { @@ -370,22 +436,30 @@ "030b0b881ab3849569821ba9db282a75eff81bd5548a1849023c8d2f925ecbfd89", "03fae9c5ab6490dcea961231d605d48ee4b8f571b016a25e0befdf8b7dc882e25d" ], - "pop": "023425786a702f8aa06cd63903efaf99013bff822501ab293b1098600d2a92dca23472ae68a21f6d9c5d19e552f67e7694c20d32a0b9b338426ea1604c4390de52", + "pop": "03cb8a8a4a5e51f20937de7fb5956aaef892529a2319b021281aea595c1cf91bb5772e2024c6c502e640a6a6b59cc380a4118decb42a73fc965a7e2a30583efa61", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021f247705c6b241e6d4ac3d0f95bfe10ad18403f2fd41ba11c794258119ecef8803b70722e06075e49d19fdcebe86d960c36d958785eefc564b79b5a200496bf94c0274aef2534c2b1d809be5353f99a5e099511c70507b8144a05c2525b452316cb2025e8cf552d0c12e33bd057009338ea9762d010331b2b898502e6fd5d1d9ea8b1a025791353f84de1fab98f6e22b5ae4b39563812cc27a35440946a95beba66d8b2b030b0b881ab3849569821ba9db282a75eff81bd5548a1849023c8d2f925ecbfd8903fae9c5ab6490dcea961231d605d48ee4b8f571b016a25e0befdf8b7dc882e25d0246c7a2f3989134ac4ba45e39a4a9f653bc34062ced6ab7b4e485ae6ee27b520c", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98715d5118129194f00349cb8f1f3fcb062c366e41ebb6b84f980a0c0c157b311d1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021f247705c6b241e6d4ac3d0f95bfe10ad18403f2fd41ba11c794258119ecef8803b70722e06075e49d19fdcebe86d960c36d958785eefc564b79b5a200496bf94c0274aef2534c2b1d809be5353f99a5e099511c70507b8144a05c2525b452316cb2025e8cf552d0c12e33bd057009338ea9762d010331b2b898502e6fd5d1d9ea8b1a025791353f84de1fab98f6e22b5ae4b39563812cc27a35440946a95beba66d8b2b030b0b881ab3849569821ba9db282a75eff81bd5548a1849023c8d2f925ecbfd8903fae9c5ab6490dcea961231d605d48ee4b8f571b016a25e0befdf8b7dc882e25d0246c7a2f3989134ac4ba45e39a4a9f653bc34062ced6ab7b4e485ae6ee27b520c", + "nonce": "6cbf16548a77d3d83721d7b1aa65a74488d50cb12c6a66e1cd52003a6dd36bc7", + "nonce_commitment": "03cb8a8a4a5e51f20937de7fb5956aaef892529a2319b021281aea595c1cf91bb5", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403cb8a8a4a5e51f20937de7fb5956aaef892529a2319b021281aea595c1cf91bb5021f247705c6b241e6d4ac3d0f95bfe10ad18403f2fd41ba11c794258119ecef881f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021f247705c6b241e6d4ac3d0f95bfe10ad18403f2fd41ba11c794258119ecef8803b70722e06075e49d19fdcebe86d960c36d958785eefc564b79b5a200496bf94c0274aef2534c2b1d809be5353f99a5e099511c70507b8144a05c2525b452316cb2025e8cf552d0c12e33bd057009338ea9762d010331b2b898502e6fd5d1d9ea8b1a025791353f84de1fab98f6e22b5ae4b39563812cc27a35440946a95beba66d8b2b030b0b881ab3849569821ba9db282a75eff81bd5548a1849023c8d2f925ecbfd8903fae9c5ab6490dcea961231d605d48ee4b8f571b016a25e0befdf8b7dc882e25d0246c7a2f3989134ac4ba45e39a4a9f653bc34062ced6ab7b4e485ae6ee27b520c", + "challenge": "dd715c197240a6387aa02b7cb9441f13b5dce43bf8fff080c52dd71436a01fe0" + }, "encrypted_shares": [ - "112de458c4a7d3f72b165723603c7d97f121a0c6eccf5b599a59680600a354c516ddf653651c17a559b8a1c572474e62", - "5cef24ed069c5d8b28a070d36548e81a37f44159ec1316e19558023c0c9ecfdcf6050d3183cadb11da788f3db2f688af", - "29467495d3cc43b6d4405e18f1be1e1617a38fce8b39063f02668c1d150697c44a6649d49aef212617a3beb0a4b36eeb", - "3e8ba8bc1c7dba280cae7b47102c3586f04bfc7228c552376231d25e1f68503a8efe3ede63bb3df0f13ebe428593eaf5", - "9a72bf6614b7f3d6d2822d8aa482de4f75f72decdfed0538a7ace87a96f2e3f6e19d975adf933fe61d2504fafb7991e8", - "a8e4be63f6b396c3a9a21b7d7805c9d9747defbae0565639e80b766ce9cb697ce830fb3f6fb4329f1faee47e4bd9aec9", - "8dcfdb1834410116ad7b33588ac58fc936f33b2392a01ea8d9ab3a7a8fcd27b119f4939579fcf4896d7182aa5beb432e", - "f2a64243c50e95637099c7b0ec4d009dfbe18655f7840982bfebc050ccae8f65706238e5683851ca504e55612af3ecaa", - "f807ee1a18c3ac55593be99aafea45722d19a4c8b9f7351e5047235c4c2d53b332f2bb022e9817ae7b1273c77740a596", - "5cd7ba1c00912d33bfd0235b90143cbec9e7aaec427d6e37b4cbb34321abff046617d0c2f58c4a1bc846c5ae7d7a7a97", - "6423c5ccaaeeef130e26d4333e071c4421a1b9676ba2db8a18fb156598385580c85fc3e466cb7711023bfa4dc2db1b36", - "99e0c37ef1f4a38ab9fc81b4866480b7c6dde023644cd8d8316ea634039b8ca99e054c59bf2665120a2d16465f7dc2f5", - "f0c15541813106c265042668ba394762fe4636ea0962fbf0e7ac0479307c49513b73791307b953b7dfc4613654a9b420", - "e04223c1ec7ac20542a43059449a180e5a60b366e039def067d7d836f8c1f240dbe760c586eba78b36e73c2853215932" + "64a503473c9d2c9858b70a41a428adf33676e5aae2a4780bbe464765303760e4502d0a2f68a12449a21ab4d58ad3ce16", + "e2ffdb52513fe29649943a931506d0a1c2bbaa8a9e79f10daeaefdfbaaef749164fcf06e3be42b2c0c88f04e815ebb09", + "28fc5cb46b09a6cf6ed72f252560f16cf9ba7948736bd589fec8ee12bbe94338ade6b34ce7c9e0f3dc59174ab2ba64db", + "0fe31caee5d3e5c8274aa31abbfe18f15defe3e819487d3c79e0be7a45d647b4f628ed028c6a402143ab015953ff9adb", + "a65c612e0dda836bbc2a545c05796686e540741fa4c434bd6e8542ae1754f6da9b4ee862ac7accc4c1830724631a04a5", + "04de568d27fdc6b549d81c4e8ddc42a1d3a618cc0a4837937e75349a0631baedf86efc0d4312fc2746e6887d6ac99994", + "00bf2f221f47c3d26767f62f5c92811963aa6f3878be24c41732c866318ded02db5dc3e4aa52783de0e6b5a3b05a9497", + "0b8bafc8f64769ca367c54d9a9aa8417a38170bd57d1929e2ab1d8a1b5b2f1626765e0769ae216f6c6a58e2c181c3697", + "b02c66136ec592f03e251151c5dbcde271a68eedf62a805c8f1ac86c6f707bb0a07f55a827cf87c44824b23ffaa3219d", + "aaeee4285aedd04c5d63527e93ea657760d5260dde22d4609242b038a8c4583e34e1cd585393590c0bc548b6277a45fa", + "8fae2cc576ae994f2432784577d762404b80c50396c7f63282799efb0c38e6bca4075b07300f401efe82060930c39cbb", + "2a5fe132951597c5e1de909e061c353007cf77b3b7b5fb8d50b9bddc2c4940116c2c53a41119461f51633aa6ec40dc11", + "86e6d997a9bb4b91929b4ea81f755480dc82aa813e7ab7970f5cd375e95197e25323da018dad3c643d413971b50180ad", + "fbad7b7b57d51cc40a6700d5a0b62385717f351271813f361fb5b0557779ebc909c05dc3a3831fc89f942bbc8a7f3507" ] }, { @@ -400,22 +474,30 @@ "021b20f069bbcbbd39cd7a8f8a7c4a0a8d90f241891f8847a0949bc2161b70da47", "020df5bed362a491fa1194ec0cf51a501e225b91f3db9b5da7cff75e52ea3503b2" ], - "pop": "0380d00397d4542d4ade0747ad9fc9900b99a21ef6073daeb2805fdae6776f1741815e11168680d7c5d1cbf4e090a5bb05a53d27851610900bb6c9dc9bc0da8eac", + "pop": "029b31986a3408b0870056d83d2d3de23af88eec5cd25683b85fe74edc9d81e76aaee60480cbffb9d951e43db3153b3e92882e00f9aff1cae3d912d7e4be4e68cf", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902028de294e49f3ea53c3aa4991680419cb7ae5588f66ac88dbc954521d52d329c020b55fd370dcfadff8e37fc9da0342bf6df286d601633e9638cf8e18744ed2bd602231777348dc8490e9dc6a46ea7cf640280a446f7aecddd7dffdeac70b4acc1c4022615e98a65cebc3771d05ef472837e813405d47549e0932a407161286114b9e00342a508beddcc510bd541a408f0da3a005f83177d0022ede87407aea94e7c3c39021b20f069bbcbbd39cd7a8f8a7c4a0a8d90f241891f8847a0949bc2161b70da47020df5bed362a491fa1194ec0cf51a501e225b91f3db9b5da7cff75e52ea3503b202d48bbcb20444a2654a4c336ec39ddf7010b65484a68744641d03ef50f4e51945", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a9861a26d86db8902990f95cd58fe7eebe2717e0e5154924da80754351d4395da4f1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902028de294e49f3ea53c3aa4991680419cb7ae5588f66ac88dbc954521d52d329c020b55fd370dcfadff8e37fc9da0342bf6df286d601633e9638cf8e18744ed2bd602231777348dc8490e9dc6a46ea7cf640280a446f7aecddd7dffdeac70b4acc1c4022615e98a65cebc3771d05ef472837e813405d47549e0932a407161286114b9e00342a508beddcc510bd541a408f0da3a005f83177d0022ede87407aea94e7c3c39021b20f069bbcbbd39cd7a8f8a7c4a0a8d90f241891f8847a0949bc2161b70da47020df5bed362a491fa1194ec0cf51a501e225b91f3db9b5da7cff75e52ea3503b202d48bbcb20444a2654a4c336ec39ddf7010b65484a68744641d03ef50f4e51945", + "nonce": "354232f5de3616f271c17aa81a72be7fe8e554b1538f7ce77c51631fb01187fb", + "nonce_commitment": "029b31986a3408b0870056d83d2d3de23af88eec5cd25683b85fe74edc9d81e76a", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864029b31986a3408b0870056d83d2d3de23af88eec5cd25683b85fe74edc9d81e76a02028de294e49f3ea53c3aa4991680419cb7ae5588f66ac88dbc954521d52d329c1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902028de294e49f3ea53c3aa4991680419cb7ae5588f66ac88dbc954521d52d329c020b55fd370dcfadff8e37fc9da0342bf6df286d601633e9638cf8e18744ed2bd602231777348dc8490e9dc6a46ea7cf640280a446f7aecddd7dffdeac70b4acc1c4022615e98a65cebc3771d05ef472837e813405d47549e0932a407161286114b9e00342a508beddcc510bd541a408f0da3a005f83177d0022ede87407aea94e7c3c39021b20f069bbcbbd39cd7a8f8a7c4a0a8d90f241891f8847a0949bc2161b70da47020df5bed362a491fa1194ec0cf51a501e225b91f3db9b5da7cff75e52ea3503b202d48bbcb20444a2654a4c336ec39ddf7010b65484a68744641d03ef50f4e51945", + "challenge": "3ff4754884f591cac15fdabb7c47d85fff9ed2e00b57996d4316e2ff9fa71137" + }, "encrypted_shares": [ - "97c9c7b796bda9a0a458b1c17568ceb6564602168840aa02c2e66be77c4ffe1cf0e4f2fa79d7f623f8c054035f42b1f2", - "e739515db385a089212c8a5db981441040c9e3cad5c4bfc558ca9c860609ad9e3e2fd03c9cc1c5f419958a338365d752", - "d0698ef4cceb067697c7ae4bb61eea3607f9a4c4a7dde95e4e709b4fb768efbaf6b4d695b8e289c81854941a2532484f", - "7161c721136b42c677129146ddb6075918d315b1e0d8482676180a555a97dac79aec8c90d991dc799b79e6fb245864d5", - "0a209d12fc03d1a03246dff36d39fd4d3bab58326d4ccb5fc8efc9ff9f8d44ac188e9ee7ef88533b64592c2d92bd488a", - "b5d01742719ae48bd771da803bfdd860e9ec89f408a0460950029ef99d4a223fc560564c9c1ae4c726fdde055babb839", - "ea01267953724a36ec3b119fbcdfb59bbbffa55e74ca1b6041b5ed71bbf92daaff1dff7afe23e15856966fc472ef04a6", - "4a7743c8956d4d1ad7c19f1a6d9203ab5ce18b510c8e29c48aabeb67f0b693daed3e3fd443115492f3060f3aeb3491cb", - "c1b27ff8deea107d3301ffbc5ce8b694f74b613b3a5cc3337ff6f22165e6619f0c02d72ec6d4f81f830fb67f61456571", - "8ab8388145c9dabcc46c862744220a147a7745927d8d02d21f11e4b5fe96ee866ec7903dc2fb499a3b5d7622a0be436c", - "34872172bf936f1b9cd7ed20db682c39f69dccb3128d631fb694e19c72a467b2912e13e17b34167f66f96563f4ec4e86", - "6932a06319a6a1ec07cf50de0f426752b0b806d5e85963bdcad1fb0252bb4b7082539e10d0d9ca235c97ac32be300575", - "b10a99692123f84065299cff1ad6234d512808200cd7bcda886eb961d44fe8dba66cacbec81b1c97a0b312bebda65db9", - "600d89ae931b53a6307eb41bba7fd27268cebb23050f7db9219b4776720c9d2b3351b4edd8641e9f40d601f03bc3947e" + "19fc577da2bf01ebb9ee8643a8a7d55aa0c19ad0c2c80c8602728d2ab78110bd6622ce62cb075644ef44a7138cd40fc7", + "787269ebd78413a8fd4b22b50f2e281a5fefd533146db3d7c48bb56324cc6a50675fc4b694d7b5513cd3c49dd6331dac", + "a29b89537b6717eb23539f4dd0ed0a7ac43499c1f6646f5063e2a7055233868baa71f7a9448f6a3d7b98f5460d53c1da", + "b3d950e277d96ae480ac68e3130c5e0f65b91d4773b53cb91bfae4b2e2ae22dd98d6a3de2348bb99acd4e789d38ab505", + "a0cb62305c6c2266b4f140a2801e81fe5dbfccd4c3588fa889059e244c83c5fff63a03c4e531bbe5543e39fbeb35a8d1", + "5ad4e37241c7d442fad3e6ac0abfc8d928410e17e389c79ad703b34ed64d69d905c93bc5c92967b56d937d42f25903ed", + "5cabebedca39a300b01f3997d56d7f1bbdff9ffd8244d33ae5151c315c69b4c3fa694f2c7c60a4c21f381a35b853fd8c", + "f1f500a110a075e3d5ea618eb398fcb64b267d55143ea0f8ddb456995490f14d2307e4ffe5bef0ff781ed492466f355c", + "9c3a72c122bc9627ebd6312ffdf39cafe03ad71882a8eccc9c8d56d2f386f32c218cc715b054e961d0818139a4e4230e", + "11e670038f765c5d4e5248233c5e122ff976bd81fe9da218dfdeb38cb17aad90244ed30815dde5195790229b6f4e3af9", + "f184d339951956a858d5a8c47c88bd1b9e763041c2696209f25ca37b67bbc553762d0a35951b56854b00ebdacb463974", + "e66514ab7ba89e3c0f8d8b8c550adc459a17f9635c5d688ab5206ce3626d31792e136b95c4f12ded8d83814921945ddd", + "7427a11abe62833492757e2772f3ab88edb620f9f5274e6e073c25ec82dc2538520d372d55c4c47f015d1e06b8064579", + "e3e72a8552d40dd9affb44b868ccbd0616b2ac23277d152452a99a474dc1341446e27307bfe90b9e9eefd78423db97b2" ] }, { @@ -430,22 +512,30 @@ "02daa518e1c337563cbcf69647a0a44025a9dce749a7540ddc0e2534624c31a00f", "03c5b2125b34f31bd8e15a60c886d1a4eccbb7e4dbc8e756e57eaada2460a1215b" ], - "pop": "02954c2b9cd4bcf9fe08b29e60ceba2cebc2dc22d3c97ebeb7114b5d9472760a14516cdaa7400c276140a59637c0745013336d0e5601115354d29c1a9634e25e64", + "pop": "035a0aa5d7788cfeeee94ca1b46d781906349028ff0105446109003f556cee281027d526764504b465afb4c5a4d23d4a9df0ed239aec63e359ccec290f338e878c", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49032c46c2b0f2fafe849f575abc906d2169d4efd6450d14b048a74cf0b78a80afd803c176bb4cd8da82662ae4a8e4fc71fbb870a305589fb72fe86069ea2af32eedeb0392f58d64debde7dd4864be84ad06b8a7d598c405fc7f5fba59e9a9a8b714c603033df5f112a03baacbae93e0b8ff462f55ce445d3317dbac1b4d6065d37b9e847f025ba8abec84eccdd09f4403878c642830ddb8a5c87f697722d6f3395f482311ee02daa518e1c337563cbcf69647a0a44025a9dce749a7540ddc0e2534624c31a00f03c5b2125b34f31bd8e15a60c886d1a4eccbb7e4dbc8e756e57eaada2460a1215b033598b7108b3e1e4987003ea9803f248e7f78597d525af30e864569a4f4006871", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a9807583277de5a13e2916584d19b111e70e25f07f267aa0e99ddfa8aecbe3d6f8d1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49032c46c2b0f2fafe849f575abc906d2169d4efd6450d14b048a74cf0b78a80afd803c176bb4cd8da82662ae4a8e4fc71fbb870a305589fb72fe86069ea2af32eedeb0392f58d64debde7dd4864be84ad06b8a7d598c405fc7f5fba59e9a9a8b714c603033df5f112a03baacbae93e0b8ff462f55ce445d3317dbac1b4d6065d37b9e847f025ba8abec84eccdd09f4403878c642830ddb8a5c87f697722d6f3395f482311ee02daa518e1c337563cbcf69647a0a44025a9dce749a7540ddc0e2534624c31a00f03c5b2125b34f31bd8e15a60c886d1a4eccbb7e4dbc8e756e57eaada2460a1215b033598b7108b3e1e4987003ea9803f248e7f78597d525af30e864569a4f4006871", + "nonce": "0fc7f7fefe2deb637dd662764dff35252c28da8b52f57b2f78abaa08d92cc959", + "nonce_commitment": "035a0aa5d7788cfeeee94ca1b46d781906349028ff0105446109003f556cee2810", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864035a0aa5d7788cfeeee94ca1b46d781906349028ff0105446109003f556cee2810032c46c2b0f2fafe849f575abc906d2169d4efd6450d14b048a74cf0b78a80afd81f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49032c46c2b0f2fafe849f575abc906d2169d4efd6450d14b048a74cf0b78a80afd803c176bb4cd8da82662ae4a8e4fc71fbb870a305589fb72fe86069ea2af32eedeb0392f58d64debde7dd4864be84ad06b8a7d598c405fc7f5fba59e9a9a8b714c603033df5f112a03baacbae93e0b8ff462f55ce445d3317dbac1b4d6065d37b9e847f025ba8abec84eccdd09f4403878c642830ddb8a5c87f697722d6f3395f482311ee02daa518e1c337563cbcf69647a0a44025a9dce749a7540ddc0e2534624c31a00f03c5b2125b34f31bd8e15a60c886d1a4eccbb7e4dbc8e756e57eaada2460a1215b033598b7108b3e1e4987003ea9803f248e7f78597d525af30e864569a4f4006871", + "challenge": "e9e93a22ccaa52e3bc33da3a6a18e33bc0ee9482569a5c92ab01ea547f2beb1d" + }, "encrypted_shares": [ - "3fc08d5f03a9fbcc9b6a02f4be8f70032e115d88d2062166df86ff0213a0a5ec36187f52641dcf50925688c550ed0820", - "09b172e4aa8bc508c45773155f3873e951195ecec1bded15794782f53bf6d0eacd69f987bbfcb30a080008c34d9ae811", - "93069c39f72d635175437aec0e11a344d484c873cc50ca6b6636c469ed6ebfd149a3def98706b48fe7a359a1f3918e3e", - "ef53af384ae2cb10e047800b5a271e0b0323b1a8bbfb84dbf62aa22ff6a02f4c1d9dbbf4acf0132c198835007d313ecb", - "c12901c106e19a86f4eb2a6ff7bb0008a5d286f619a89a034996d0d16071cbc6fd4d4981b2ee7b6dec7c086f84a8a23f", - "401d175240c9b8f8d16165f00709c89ffea89b7e0c4e4474d2cbd8e5b6702bacdfff9360712d31b088f84441b6ab2b55", - "581866ed8f2cde184fe91eca8b85ff0285a9b959e2e16a7b3b4ae0f2c24de67d96c910fa4ce97e867528a05ed05f1b3f", - "d3c54251d1686f925733cce604f380e61d96c955d883556f95f980022cfc7fd1a8cbfc645a20cee94a95a582a8a8ed0b", - "09767d1e2fc97498876863257d8ce576718efec1f6e2549a029831ef6f23ae74122658a86fbfb478565da7433637fdf4", - "4aeb6486a98d544b4e08001874abd4833a7011ade17ae93c0089c52096bab2c5ade3a209177d9791006082093a1d121f", - "217dba35d529eacbffbed4c865b447f988fb6d68122c11147fe51d1ec6dfc6027f95f8c3b0500ef6a80185b3c51f53de", - "66b44ca2477bb51c068fdbb1dc32c9897bde7fde89fc50781bb733fa0585312ae701d48d802359f1ec3cea97f973b576", - "de627a99b8e05e45e018dd8e0d274b20b10dcaf4e6471c39e44e54f6dee3d54dc329029b5510a02013d1b4f5e77423dc", - "dcb316073ad42a9bf3e5ff0f99208b9c430a6615a6bd8fa6694a8346265f4d278c97cc9e0a8d39c2610441eaca5c8169" + "a5b3f330a50d0309ed627e2a0a60fac83b34dceb3c2cee8de0ea8c2c8954d8d8bcb417b006c9f97570168bbd383d7ed3", + "013a73799c3ba0afa6a9021b91ce729dbd7915922e5cbd9828cfab94dfc82234cc4349da2960874130d2a02efcf68c10", + "d30fcc3e0cf4335af82ea59be143a88ee0e8fd01d5b881554cb15842426cf1633c9dee8861c7472b72bb334ff9a05d32", + "6e7b8d8351e4537814c3fe75ff45020408404cdb8ff056738ea3e1cfb29064d6bc809ad08f8c30c6e75d80e770617104", + "628cfd3998bb1cb3f9af1664a09677886190c21d41a824946605e257e2e2cbc475d7ea512886ba9f2b3ea329074c9705", + "4afb679ca8917e51428d24cef5f1364df55f9086174474969903e64e24c886827d54766439b5a544092f3e6cd4737c51", + "294c177d0ae6464471c96cc520139dfb28bde6a789778d502454e98814aec1f9918966f3ae2679d48c8408dfc8731568", + "9c1f17dc95bf7773abdff7f9306aa1c50c08b40587b1acde26c5e00efb4b8272b425e0fce126ba9b7e4921c8ce3da0d4", + "83c81d220c44ad8721978f291374f2471a99a9e2e50dbfb0bb324da53f4a91ff1603ff3e02633f306419d57f239d5fc8", + "23907ad3c3c47f77a105165cc1e7f406ac3e192785e0edb374530d5ee18efc112fe4a00046dbecff7005f6ca19eeb827", + "eeb74454e8809f97d6d60a43901ad65eec73501a90844274219f2e2ece3de54b0a3fab2bee36226c1032d1d6ec000b39", + "cc43dd77d5eef06e671f69d577c1bda58284e60568a21883a51b18b616c4fe56d3b55b6a4b9a2bb6c5834bb2f408ba0d", + "a1ee80fb59e114e171e75af1fd56e7ed05e82ab5861cfbe756ba05cca68dd70055286228bd2af915c884c08b770c72cb", + "f58fab877ebd638a3eead253847a155a5efc0a97cac6bb52f1374226fb54d4a727fcb2cafab93189f18b9b17950e07d0" ] }, { @@ -460,22 +550,30 @@ "0383b264526f45d2bf94f1002ac35cd0905c853255ce3bc99dabd45beb513c7f27", "03977035063a3c00f9d99d3c45409ae0dc7ca4ee74e4358b79dc83a2a2b519cf63" ], - "pop": "02fe825146fcb5a0d55b0c1f8970ddc5bcd56461f7efa2241964824c691dc6a392a0c66ac19d4e827f3468ba57cab41e1a46243dd3c25ec5b0e477b96214a5db43", + "pop": "02a82fe8ac3c6abe94a8b085df1f1f36b1f50aee3765f49988e0b0476e35866978cfa023fdf723622d8d5b702fc7748ac43fd7f3c3f44f8af1a1207267fc9da135", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49025f5c6b5c45aefafeab56d42aaf10964178b90d52466c6d25308408ea913a50bf02835119e04d272b61d833d1811b06761d3978b9eaf8d930b55100e54e305e820a0241a586f2f9f82a69da02086d498c0a30324dc25734145aca070c1ab40217e326031481e78f8669d8107bcbc418bce3254cdeefd48e8f68046b77bd3de7ef375a1603ff971fdcdde07efe0392d9ba8cfc339893dd7b42728b91524d61d1d014376eac0383b264526f45d2bf94f1002ac35cd0905c853255ce3bc99dabd45beb513c7f2703977035063a3c00f9d99d3c45409ae0dc7ca4ee74e4358b79dc83a2a2b519cf63024fecde50ff76e4b0e14e1468b4818fc4a259706a25c7ba6aa7603e36ddae3150", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a982ed2a1ab96f898d6941c21799d0541bd4a4e8cb9672ea422a8ea554793efc9841f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49025f5c6b5c45aefafeab56d42aaf10964178b90d52466c6d25308408ea913a50bf02835119e04d272b61d833d1811b06761d3978b9eaf8d930b55100e54e305e820a0241a586f2f9f82a69da02086d498c0a30324dc25734145aca070c1ab40217e326031481e78f8669d8107bcbc418bce3254cdeefd48e8f68046b77bd3de7ef375a1603ff971fdcdde07efe0392d9ba8cfc339893dd7b42728b91524d61d1d014376eac0383b264526f45d2bf94f1002ac35cd0905c853255ce3bc99dabd45beb513c7f2703977035063a3c00f9d99d3c45409ae0dc7ca4ee74e4358b79dc83a2a2b519cf63024fecde50ff76e4b0e14e1468b4818fc4a259706a25c7ba6aa7603e36ddae3150", + "nonce": "78b15878a886d3939af39a180e52cd0704395b8355fcb37a0b4498fd8597c1e2", + "nonce_commitment": "02a82fe8ac3c6abe94a8b085df1f1f36b1f50aee3765f49988e0b0476e35866978", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402a82fe8ac3c6abe94a8b085df1f1f36b1f50aee3765f49988e0b0476e35866978025f5c6b5c45aefafeab56d42aaf10964178b90d52466c6d25308408ea913a50bf1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49025f5c6b5c45aefafeab56d42aaf10964178b90d52466c6d25308408ea913a50bf02835119e04d272b61d833d1811b06761d3978b9eaf8d930b55100e54e305e820a0241a586f2f9f82a69da02086d498c0a30324dc25734145aca070c1ab40217e326031481e78f8669d8107bcbc418bce3254cdeefd48e8f68046b77bd3de7ef375a1603ff971fdcdde07efe0392d9ba8cfc339893dd7b42728b91524d61d1d014376eac0383b264526f45d2bf94f1002ac35cd0905c853255ce3bc99dabd45beb513c7f2703977035063a3c00f9d99d3c45409ae0dc7ca4ee74e4358b79dc83a2a2b519cf63024fecde50ff76e4b0e14e1468b4818fc4a259706a25c7ba6aa7603e36ddae3150", + "challenge": "e8fd5277e2728bdf356a0936dd7ceddede4cef77801299be217f728861a7510d" + }, "encrypted_shares": [ - "b86302bc16bbd3750486cd01d2501292e7d56a866bd6724a8ad0a26e9764222db396dc4c9c91112af2e1f1ec25404473", - "1be0cc82223546ca9a0c48ef26b3a4ff622d2a349a9b581ee06084ba466e35461dc12db1c9e122da36e9ecda82d96dfb", - "316b215b1c0d1ce740d443ed661be293d91c379bd6d35b9bb57139d445f45ff3131e81d88e2cfca5a92072bac0154854", - "f4e5cae45f0436d13409dbcedb7d5534ee9a8f0ca8b274c761bbb1b4ba8af8fd45ba8a619799593f5b86eb3c768ed5ec", - "c409e3f8b13de31e2f175060f2922bdba82e67580dc43c153f448356d3e88f87274eb31aa1293e600fbc9cc7395d379e", - "79cac05f3ba8db918e4433d868a4649971b8c816d1f6909d8ad49da93a91684d02026a20146d598c381302f28b9a057e", - "1027ddbcf1d551c8afed5c4f5fc6743182eded036cd80dce2c2c98b96952b478c535e872f7875084aa15f41b63310c93", - "7d295afb7129849f212d82bc613c35bf156b6c0f662a3fefbb7c9155e40b6070f81dd8db47dcc82a00899b25ca8982de", - "74bc65974c0eaebe639608d6deb50d994ba17e70b91a5268fa50d235158f14be0282a4021c0a5619953b0e97967f1fce", - "880279785e1129568167eb412bb8e8beffa36ac34f49f044b5698d5778e27d07a782cd858466fb225c9078cb8e8729fd", - "79a0d02cbf57649bcf2bb5f583457cde3ad5934d8e126d738920de57b7327c4328e530c5edd3f2507d778f0af02ab6ad", - "4f6228456e716b3f293b6e2cbccb5aaaf806dfc79afc9b30a0b3d77eb19bb8d65d7ca125c9e8df36588f6e426af3e754", - "f06a6e479df097e74c0dbd4d6e3b7a02493a9e1d71fbc78a50fc632aac188c9e29c3472dd827c9a34dbdefe8b5d011df", - "59e224587b5fb7bf5b8b61653afb2441034892599837d3a50f7aa4be515298459f401448b8760acfed7a431209d7ee74" + "7f6d292cfd193b18727c59d48c575c1f8c14ca545bcdd51fb77e48c4f1771ab878b65f1aeaf138c971ddc15fec9d41bc", + "285d7cfdca8d1997a2deaa036f6c32debbdd8d12772b4cd4491bd1a6b3015d2564fc64aa8a5a6f3e06e5a985d2ed8838", + "fc5ed7db86095eebc78559bcc391a03ba49186121c6f226e3e041d9af505cacba530ab91959e30fe6e8a2d10f28bf8dc", + "b2e86e3b454405cd0d12c51121dfffa561448bce06f564075e7ecfbc9ad8bb86dfb3a3189d5992cc44b7b2492ed9f9c0", + "2c40f73cadade8db2402f08f2224cc1108794127fe3cc6bfa654845f6245dfc9c0bb547b6b3855a3902b82c63b67f861", + "88915d7702c34e06f6baea2b18886ee736faff25534b95171535224ceb3cb449443f5b8ff7563a1d6b5b095c4055c578", + "4525a3e6387ee2c12004718a3ed9027999acdb5d2309c159e991a7c7a19b54ad7090eb417173284d5a78d09c68b2d2de", + "60a64f62c042ccc7f92417e8c6920070926ffce633ebeee160449f628215de82524f3096a29cc2986c7cc77bd498301d", + "c4a8e0ce2e6b3d7a6a9c93edded7b1549f36b5a3400a1fca7af556d9dc4f651b22646663996ffc34b4e44babe24a6204", + "a2749dc7c6c0e78ac0b488ee0126cade0149a2b23266479fc4fe6c462f6240391646d9b035574d3f8a3fb7f7f97d13cb", + "9c189275c0d9ab8ee0370529d74b462c03b4175f19c15dfce24f92dfd1ad2920a419e83bf1148db72dd944bfd17ef7d7", + "275072a4a32ea45733ffd2ce848bc6360e237cd6ec921af51bd00f21aa61099f7c7da70b15b3cc7c1ec65790117c4a20", + "e2816d51126eb4a034c218fa4a7a5899e8ee76b93c5987aab4da2e29d93daebf997cfe65312f2bae8499cb28cbc4320d", + "1cc352b1bfcaef16bdb568978f3580a28bb8c3906898eec65224b28fff8c6f4d9d57590b0ce8497a6ad15b336a03356b" ] }, { @@ -490,22 +588,30 @@ "0376ad624ba60d02c1d2d151fcf5318de3a79d7d257a19cc99dd28d08bb5318b9e", "02896784b3607b26cfdadf04878cb76ea81ce46893196d5bf6f14af193e6633523" ], - "pop": "024c2e2387fc1600eb6da6edabaab8be811cd4c48ec5af13ff1a22508fd0515fc963f629ed03c65ba08d86c398a752afe245ee19ec31b41ef8b36fdc0342a17df0", + "pop": "030d8eaa5703ead358a5623183b689036edfb609a8b094b443f84f2341c8b08de75334b722a0d7e233d4eee01e178c2b2068a3506c169519c86b81ee9666d2ae21", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902090c8ba9e7280642d1d9d7aadab4cc8bca04bef8cd5acfa5509e249007d31d5a037656971b2e261daf3d42095509c47b3dc317af77f0b6562806e28e92cb2ad2670357374b37f5deb0046a47644288fd8592e55245e1fde6d6fc2383742cf4a34fb803379a68a4b09775a7bab05a7497626504d9458b5808fc91f9c64ee584be07b76302ac1fe63a050faabdf196971293412735952ed58fb47e27e3b7888939fd74adba0376ad624ba60d02c1d2d151fcf5318de3a79d7d257a19cc99dd28d08bb5318b9e02896784b3607b26cfdadf04878cb76ea81ce46893196d5bf6f14af193e663352303e6291ea571285bf18c16a3b12f85ac8db318fe4818c3b2def993606cdd0d517b", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98f1103bcb7a4b2f76bacab8ce4e4cee698a7f0ce83d1fabefac849583c28c77a51f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902090c8ba9e7280642d1d9d7aadab4cc8bca04bef8cd5acfa5509e249007d31d5a037656971b2e261daf3d42095509c47b3dc317af77f0b6562806e28e92cb2ad2670357374b37f5deb0046a47644288fd8592e55245e1fde6d6fc2383742cf4a34fb803379a68a4b09775a7bab05a7497626504d9458b5808fc91f9c64ee584be07b76302ac1fe63a050faabdf196971293412735952ed58fb47e27e3b7888939fd74adba0376ad624ba60d02c1d2d151fcf5318de3a79d7d257a19cc99dd28d08bb5318b9e02896784b3607b26cfdadf04878cb76ea81ce46893196d5bf6f14af193e663352303e6291ea571285bf18c16a3b12f85ac8db318fe4818c3b2def993606cdd0d517b", + "nonce": "6d93f144d07317227dfb57157b8280259ce00e1d45b353a4ae6e4726c1d28d19", + "nonce_commitment": "030d8eaa5703ead358a5623183b689036edfb609a8b094b443f84f2341c8b08de7", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864030d8eaa5703ead358a5623183b689036edfb609a8b094b443f84f2341c8b08de702090c8ba9e7280642d1d9d7aadab4cc8bca04bef8cd5acfa5509e249007d31d5a1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902090c8ba9e7280642d1d9d7aadab4cc8bca04bef8cd5acfa5509e249007d31d5a037656971b2e261daf3d42095509c47b3dc317af77f0b6562806e28e92cb2ad2670357374b37f5deb0046a47644288fd8592e55245e1fde6d6fc2383742cf4a34fb803379a68a4b09775a7bab05a7497626504d9458b5808fc91f9c64ee584be07b76302ac1fe63a050faabdf196971293412735952ed58fb47e27e3b7888939fd74adba0376ad624ba60d02c1d2d151fcf5318de3a79d7d257a19cc99dd28d08bb5318b9e02896784b3607b26cfdadf04878cb76ea81ce46893196d5bf6f14af193e663352303e6291ea571285bf18c16a3b12f85ac8db318fe4818c3b2def993606cdd0d517b", + "challenge": "edd44cf260f1bb7b8a025e0249d01aa456ad199225b61141c612102317741a88" + }, "encrypted_shares": [ - "64182e75b7f126a8bcc5dec90ffded51e21f7bdb8a9c24b3795a14dfe00f9c0f9b4dab50995f6023510c8afc7672d904", - "4c7038e8db4aa0e9f6fe3ae4a8b02d7b384d1e4c60e17baf05618925f08a863354c65f506e10d301908c6ca3cff23a47", - "4c6618d6e685759c8e31c5f1471543e189898ae6841e41a47efd6d1c15655b277702bc06acc7f04719078e70dc4975db", - "26b0e50ec578b78de1fd896efe2aa809c4cf5fa69860774fee8f95263eb65ee107de8b50bb8dc647230d08db5a0d6952", - "d7f60e330e079187c3d4c19c0d112ef2f1a5386714ca043f69a6d9b4dfad7dc470886c8731563cb3fdb3356f8fa0c3f6", - "0dd9e98daa97f46bc6a6e80871f334489173d2c81c7becdb1d19e035c616742a21da616df7937e5f74502d0385ba4100", - "32a165ddf46e1db19daced746cb778e9f4446d6587e8180ca52972fc70ba3dd657cc7c04af68e86fb7c5f82722c10089", - "1d4825b09206002d7f43b43f6a849a74ada36736b63d7b4c7ad7dff5406afbf31bfaf2ff0bfabcd4cd9508e6c9848e13", - "4558ce1a54e8468ff5f0e93070c3da4258fe616813352e3333b5fd6ce8fb3edf64aabcea631959317581cc4984e5284c", - "68cc2e86879581a89be4739193c33dfb501292fb2746690797b3c30aea522199d40712627c9cf0093c827c7fdc1f6985", - "acba4fad9316e28608f3d84e793f6db5dae938b52d0274ccdd7589078f2735d5acc20a14b812c8b5d2d7f0c78f888610", - "007456fe6f986fa91fa78e741412a68d1dd6f15d30b5b7ac3e26b8b5cf0c1ce6fbd663b60880142ce357027879fac3de", - "a42dcd63be8f4d932c2330d2fb83f439cf1e91a3d7ff441bab65e35c252e48213dbc75dcd2ad00fb4d634262e46958f8", - "0c0cd86d10d12d590cb5a8f76ff6da663e266f91541795e2732940462f20e52261b1b2108729152f3dbf2411033b2fed" + "1f02ae382ff6c231359681315f1dfe4d8a111666d522c477640fb400fd7ef43b6aa21138b8b0f5e2b1ca022585901512", + "948c4b8d82158d148d4a0be657bfef4429f39b90915b9be91a0e2cdb7af9b3c73e177bd23157350707b3d27487ede63e", + "2c76326efe1350f2ee6110e6e3542fdfc8139ef0dec0d58ba98a6605059be97a2dcec5e3161b8eb43063fd5ca3a8544a", + "d52bb5ee2d8f54a3689af24895caf3115f81bb169685efad121827eaec043f05215c65d7fe80680f29dffdf2569cea14", + "9dbd28e132b127a701718edc2a7449aa34a07602ff3751c5a5f581860754cbc7bf387511aea4cca90739c831e42b7005", + "444069483abbe3b873c06b45df8be359f930bd0d9c2ca01b44182ce7edf3b700bf512bc064bc57c961f6cdb27298dccf", + "2a818d54d496d199b8522d8e8e997d2f9ebeb821991d14a27c1c623e04dca55c64a3b5eee138efec6ccbe80779819d0d", + "df88d8d648735feadb77bca5b5fe7074119ebaf389fccc14235abb55581aa83a103cb788897007a4dd326c0335da5ed4", + "2c95c9cc75971795a21135ab18623e0fbfb76e516e6ef9daf1e7d2aaa63b7c15d068681beda3e82acc8cd2933ee7286a", + "39645f013139f92f7baa563807009d881adc6da2f21f24188cbd688735f9b87d29fc0e927ac9e507f52091629b8d2951", + "7cb5941421290a289dfeb47d2e008eaba03e0cbf7bdeb432f93e032c13f978eeee71fadcbc8f5f8fb5a2601024865c90", + "07b80b08b281875296ee8d9f0482f8df7c4fbdcedb5662b2d938f404c24d0b8bdcf951e4faaca9856fc385e25e90c65e", + "358b6559981feba8da1a2a93eb781a8c8905e867119174825b2da422838989169dfc2c2c66e27b006b0bccb5f633874f", + "18880834ded30683a168c9eb61b9cc92d7242f2fbc2a9d3761ae9e8d5e78b336ff77d5ba44cd0275c03623292572cbbb" ] }, { @@ -520,22 +626,30 @@ "021221d9c8ea4fb7c4489a1c9de725e03bda1675cb946c730dc025deb95cf00a84", "029eaa33be5c49e88d3b376787c49984b82a6212d77997aa84e01322e5c9c81ccb" ], - "pop": "0348d22f2f2544958a153fd81c4ff2278920a167c72552ab3b75fcc9b5b8e6c698d8898ffd59909e316a8c2572fda6b34b3257945fdb38884d0c76def94685f72a", + "pop": "03656cdafd7c7bf290dc131743ac9f6b896b0595882cba8f4d03305e1bff04726adfab6bcf70f5c78f0f3ac6e612cbb2cd4835407b9ddae1b32c73eb8e08195869", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490227274a81280503025a85015f6db6baee01a0913b17d60aa0b4824fa679093b4b03a5feeb3bf59e429d058e41f782b282eafcf2bd717803fa6cfefae04429fb9e700264730f670d02f3e9912a9e7e56e86b6d9ea957ce4aae144864fc3398428c11c903025506b25599d255ccf749cec3f403a0f79f878168507deb12160a44d19e6fd2030ecd13aec79f2b582b8abcf290a68c9ad2497f873bc5244b66d4c62db2e9d802021221d9c8ea4fb7c4489a1c9de725e03bda1675cb946c730dc025deb95cf00a84029eaa33be5c49e88d3b376787c49984b82a6212d77997aa84e01322e5c9c81ccb036161a36669fd45293969123bbe09e782ce241d8f3f9a2683a874319c5b260439", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a984eb97a3cea8a3f7d30d7460be5db0cf037d9eb17fb63e92a5dbae78bdfcaef0c1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490227274a81280503025a85015f6db6baee01a0913b17d60aa0b4824fa679093b4b03a5feeb3bf59e429d058e41f782b282eafcf2bd717803fa6cfefae04429fb9e700264730f670d02f3e9912a9e7e56e86b6d9ea957ce4aae144864fc3398428c11c903025506b25599d255ccf749cec3f403a0f79f878168507deb12160a44d19e6fd2030ecd13aec79f2b582b8abcf290a68c9ad2497f873bc5244b66d4c62db2e9d802021221d9c8ea4fb7c4489a1c9de725e03bda1675cb946c730dc025deb95cf00a84029eaa33be5c49e88d3b376787c49984b82a6212d77997aa84e01322e5c9c81ccb036161a36669fd45293969123bbe09e782ce241d8f3f9a2683a874319c5b260439", + "nonce": "e21048632aab45d7180438c0cad2dcee7b014a1bb4e65904212a022514f0b4ed", + "nonce_commitment": "03656cdafd7c7bf290dc131743ac9f6b896b0595882cba8f4d03305e1bff04726a", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403656cdafd7c7bf290dc131743ac9f6b896b0595882cba8f4d03305e1bff04726a0227274a81280503025a85015f6db6baee01a0913b17d60aa0b4824fa679093b4b1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490227274a81280503025a85015f6db6baee01a0913b17d60aa0b4824fa679093b4b03a5feeb3bf59e429d058e41f782b282eafcf2bd717803fa6cfefae04429fb9e700264730f670d02f3e9912a9e7e56e86b6d9ea957ce4aae144864fc3398428c11c903025506b25599d255ccf749cec3f403a0f79f878168507deb12160a44d19e6fd2030ecd13aec79f2b582b8abcf290a68c9ad2497f873bc5244b66d4c62db2e9d802021221d9c8ea4fb7c4489a1c9de725e03bda1675cb946c730dc025deb95cf00a84029eaa33be5c49e88d3b376787c49984b82a6212d77997aa84e01322e5c9c81ccb036161a36669fd45293969123bbe09e782ce241d8f3f9a2683a874319c5b260439", + "challenge": "ced2c32c40acb06805523f65c6987314ef7c134c923d1f7b7d0db092648c31e6" + }, "encrypted_shares": [ - "2e31a834492c145e6726494cbd7f6ca1f6202fd69853539c18d813fe379c44df32efc1ab21cf090fd4c94e0bb3fdb59c", - "0c47ae7527a16a7b148d0a8ca84a02a53d8a63b6fd00ab93429c9b4aba6ad65f6f669938a4f9f52a585d48dc547d3d46", - "483cd7f7e95ea8dbf559373defe99998e31b586cef8d57e8cc9ce46799acaffb21184dbbe1e6e6308074db9343bc352d", - "d9e91f818a5f7452af1e239cf6be4bdb6fc7410e29195c4cbe6d24130cb360e861c0d735a34fd35b1c39ae0e82b79dfd", - "a933cef0b4ed44c15869839f3d07e749de1fb68f0349a93ecf79c27b874d83f755613409e13a9dbbf11732cf0d12cc72", - "f9b609f4658e4795660e1abb47af109b18a96b54381f229e85214e5dbf79f9da23dac606bf0003b5a3cb9f085fc2f2c0", - "db4e5e83e198cc6c6a83880520c35167e0c8eaebdfd3dd7c0c73db5062d5efb1313d517ac0c8088a29ad57067c66150c", - "ca672bc3216085dbca6cd9e2452cbef64560b0b1c0c1f04c14f5f601528b284a2467c112adcf0e539418e65b02cd260d", - "2a1964a4603327210f7ae0f8834794f98bc597d0c8d3b1599d2d0adec8bf62f35a4c43fa6dcc9cce03c1f17a3d2ff89d", - "9a23de38b9fc8a069a2d0974de18107d265590aec245bfb8e89fd7e2fef19166a8a64af60a489b879a1781ea125c4bba", - "752f7a21efd76530c7e0a41d20c96fa786334fe1a0bb784da671f43c3d757171133c3254f6a370e2b174a37ab7ae8bb5", - "c609a19f8e73132834f0bc606c57a539432272fc8dca641fb26a9e4a02d99c9839dacd0c9fab5ba7936a920755ffb284", - "e55427ad94d690066914c58dc918fbb27e652b78e01a1d2a298525a99410c8043334a56837879113256f352239308e3d", - "cfbf866472e33db6788ae4a6e2fb3cf89d996fc8fb13ff89c5b03f85fbd56ec877601db85c4553df4b07ea0d6425e493" + "5496474a26b8fd49ea26e409ba4cf060ff9eb588264cfdac362cf11db0952017532322ea276b8545ea5492675703f02d", + "3bf0faa4ac551fcf0acbbd615d77b768237c17dc6b7e985b6553c00765333e6a590feed3b7ca43fa5a177860e9ef4335", + "3e04a2d755a35e089cd366e71b070cc9756a06ebcab502dbe044ffd90211085e6c5fee09aa2d39ba0fa52997373e133f", + "c900a6279182d14d5189b5b09ee81bee9b6bd1c0d9dc8cb7c67cda62dec96688f4380cf12d4b654fe12f961d6602b1d9", + "43233f8ba622d82a999505916765e77d7630c1980f0d974a8714e6f6713be7466568b1f03f82f8a60a4cbcfc4af9b956", + "fc8a751294e550937b0e558d17e83ea357418a978d43f3d7492747c78efce120de8e089bcfbd49945a16c26fc333ba26", + "1a9e323a2f599f84823b34a399be1c9bfd5b57d1cc313920765e4ec8388e92b5cee98f1fd53c4a061afc287d59c08547", + "ea1e679f357d70190984da871dcd60511b663d7a41bd132b6a4a2bc5ffeeb89305643766f90c41f91578b2720cccff59", + "effd64c611c2d4ce51f0106329a46303f0726546cca60137d76cc094cc910934d2e4dbe0cc7238658b71548c67b1521e", + "bdc2a6821b7bf21af1dec6d05a5499326dfe9da3bfbcca203fe84d91c8c5b36e4224b9790c750f1ee2af44b055d99ef3", + "bf58aa5701b8a09f9897c8c40a4d84dfcd48cd2efe3508b4b460e2b205906662f7c97d46c86f7d099220cb908f713091", + "ba9dc21de707c6d7b82100f79c34af7047ec7b0dc1076aaab5dace5d372ee6daf184386e3276b3a6a8eeb222d7b85366", + "d5179c17ba1271641f47715a2ee482da03c2a2ef6a4bacce6351549c0db8c087ba042d76a1f5e7b7a46eee16003f77bd", + "a26c304b1e38416fdca4c87f1b8da32e710ffb426de94ca3fc68bd423d2164c98d169f37dd153e818e2536998a78ac50" ] }, { @@ -550,22 +664,30 @@ "02a518224925bb4acf3ecbdadc010767ecea44b573ba95f1bb8b95beb502b32104", "02740d42f724b2b8feae34b194552fe15ae20bbf5d1ef0b715305ae3fe6b5368a4" ], - "pop": "03ef3828cbdfc25ca623b75eecb0101e724aeaadcde15ee010c5dcd30ce09af9fbf4d13894f9dcd5d4aadfa58ed94d7174ea33b961de3f44f46028eaecd57e317e", + "pop": "02c4230698c3ef4611b2d85df701018a1a56905e36fedb4c2834e8034ddcf664a25c52f9dbe3a047a977146bad7a910f2bdb07d209823f717f3fb937e6dd9dec97", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038fce3f5252fb0ca36eeba65102672cb5bc6755177ba833dc601d538677ff9255030b66bd946b9cfdea2b9f151b8c2fb8d4bb7b1677b7ab1be9740cc819bdf179b603005cb473c499892e71258ce8e6e40d5b8862008d79f5384f9f9f6b09ef86b691036d0184bee50a3af415bcb4f617f0510a90f234d43a69eef47110da37748bea1403d9a59dfb29f3d92a8ca58bfa0cb08172d1e8a033ae6ed749759421a6f5d577f502a518224925bb4acf3ecbdadc010767ecea44b573ba95f1bb8b95beb502b3210402740d42f724b2b8feae34b194552fe15ae20bbf5d1ef0b715305ae3fe6b5368a4039d7cdb373d5067737b86164e8dc2462c6bc948189dd38e25f5f06a00f6058fb1", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98adff6dd7106304ca5e6839f5dbf19b9856799f26817b79355aef6c8ecd07d8d01f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038fce3f5252fb0ca36eeba65102672cb5bc6755177ba833dc601d538677ff9255030b66bd946b9cfdea2b9f151b8c2fb8d4bb7b1677b7ab1be9740cc819bdf179b603005cb473c499892e71258ce8e6e40d5b8862008d79f5384f9f9f6b09ef86b691036d0184bee50a3af415bcb4f617f0510a90f234d43a69eef47110da37748bea1403d9a59dfb29f3d92a8ca58bfa0cb08172d1e8a033ae6ed749759421a6f5d577f502a518224925bb4acf3ecbdadc010767ecea44b573ba95f1bb8b95beb502b3210402740d42f724b2b8feae34b194552fe15ae20bbf5d1ef0b715305ae3fe6b5368a4039d7cdb373d5067737b86164e8dc2462c6bc948189dd38e25f5f06a00f6058fb1", + "nonce": "590170c7d5d355f9718cc8e0c0c6e52e48fe9a20ffccba9fc52d6f5a29ded5da", + "nonce_commitment": "02c4230698c3ef4611b2d85df701018a1a56905e36fedb4c2834e8034ddcf664a2", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402c4230698c3ef4611b2d85df701018a1a56905e36fedb4c2834e8034ddcf664a2038fce3f5252fb0ca36eeba65102672cb5bc6755177ba833dc601d538677ff92551f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038fce3f5252fb0ca36eeba65102672cb5bc6755177ba833dc601d538677ff9255030b66bd946b9cfdea2b9f151b8c2fb8d4bb7b1677b7ab1be9740cc819bdf179b603005cb473c499892e71258ce8e6e40d5b8862008d79f5384f9f9f6b09ef86b691036d0184bee50a3af415bcb4f617f0510a90f234d43a69eef47110da37748bea1403d9a59dfb29f3d92a8ca58bfa0cb08172d1e8a033ae6ed749759421a6f5d577f502a518224925bb4acf3ecbdadc010767ecea44b573ba95f1bb8b95beb502b3210402740d42f724b2b8feae34b194552fe15ae20bbf5d1ef0b715305ae3fe6b5368a4039d7cdb373d5067737b86164e8dc2462c6bc948189dd38e25f5f06a00f6058fb1", + "challenge": "68be3091b176cd1be3338f20d5ca1192772a5116c2c54a8ee95d239babc4e31d" + }, "encrypted_shares": [ - "d23d0e189af314f25c0f28aa24943eecb62746b6beb805d1b7e17f1e454d6edd5ca8a4af6354ab289c064b3dd7cbd838", - "3ac8279890f911777f9d0a61c2adc34668359272f46b3625b68258b6cd2c35caf00814cdc8ff50c0d4d581a673b7a495", - "0a66e85f473c8ec3de08a70a5970f226182186c4a0d2e36ab0d98cb5a5befca438cdd4ec30bddd04f358beee753115e5", - "e3f3678e5a6610f52190acdbff5fea3b11ec93b68abd429c22109c93d5e16def56abfcd19bc9d000cea3f9ff152dc6b5", - "581c36f721c334b4d2d22f5d5d13f774bb9a6ab1fdc43b6e07ec25f4153c5da25ee362aebed4681e6ab869414b1b8e1d", - "f567b1aa2107372073feb929200e238cf8f8f12d82ee3acdc7a60f2af462d8b137e81ed52421aaeeb990c56fee42ea5f", - "65ff14b8eabaa0a308a00029c89bc37dbcb3131a2959294c1be1ef094ff00d886502e2ca40ed44901cea194eaae4240f", - "3125848460ad3985348715911c6972fad517a1a24d9bf1199f0ccb67b2f5272919f925294d7c1f7875226de966169c57", - "a914839e0ecff4ad8210b1c8d37a138950662fcfef75787ff15f142b9ba3a8dc5892e8ead7d526c51a84500c8c171576", - "4e2bb800804a94a24ca0318e17f13a5a43e68fa022f7f99538f3e177005cba2fc80a54a757acdd5292e7a46bf301e619", - "97984f7bc9586068c61635a0a624c54db8f6d74e0d2a9e56e1feb4e90174f45e9f5e879d6d87661121125faf84c18104", - "0f6214e6c4654340106d3816798ffab02fcc97cc371fd1fc07c4eaba754ca5baa8925e2370694f655c66824064f98bf7", - "a5d423146da9563142baa9ec697a1d325393fa89ce05da90259c3de11c22757e2dd11973c75dafe7bfe571ac5d6a5c90", - "58137f31b63fa54edbb7eb3e6cd7419772ca165dd658fe3c57e52095c1d3bcb71b7ef50ab4b53cf329189c06ae799973" + "232b2fa8512472a10ba04a6c117b7e5a63da9c621c90232fcd755a241a5b51f83975b8687f073310f63d566f5d669ede", + "a00321a00fe7b865c77571fe3ac32c9f82b8e04f7ed1240c401eda765d04c6f6ad4a483b06a4739cae7814ab66f642b3", + "f429af62d5f88ee96443af484c59163b18a453a52c3262ff825d9a8c18e89319fd92723ef46388a8c01fe82690db6c7c", + "a644e70c9de6f7aaa48353cfbd9f363a056c0c6443c4f57655a010d318ecc8763f85652c39753dd2e98db0b598519ffc", + "f40cd2b70ba92db65b6c359881c9286eb0bb5ecc6a62297b2a6b38a95f64df03f55bfc163d82264af15f59b5aa652c1e", + "d93fdfea94b4cadcda4f7744bda7a5fdd5449e36e398fc5c1bff8efa1beaab84cde52d3b25bc2ba600a1aecfe89971fc", + "7f0560131dcdaf1706b6ded3ebcac397f271687b0a5ff699355eb19d80b191a1714ae3685c2776d63bbfa9bdf057e2fa", + "0da18529b8cd1f42ea462dbae05fe8242956e74712ec739b4522301f0b9b9c542ed2e592fb8d36214713f6ac2fe79f7b", + "9f3043bf5dda3c6d936aabaa31ceac3e8a832489b4f8746971511e4b1a3ef638acc5bde6e094fead55a30ce7e44c3311", + "142a243d2b84bfa4c0e0b5a5993ab4d8d4a3327b36949565d235157f66d5391f16c05b33c06a3fcfda62b52f2c011adf", + "c37c28cff82c532deacb4bb63c8e5ea80bfaf900837c4ad0d8ded2408f4c9c35ac5861a82de3686ff8e3b34cebe2786b", + "dfbd1fc8bdc937f2c66ee4d6030384ab6185d6aaf1cfb41dbbf0f5bda5530416ce78286747a0beb7277a6692193fe9fc", + "c309f897dd64d4bc5f413a0e35b3f15f4297425aef357c3e90750206950da82ed785dd07fe3140ff72980cc6573e910f", + "0d4929bfbbfdea557439672f158b631ed37ef964732e9a0e1b0a922c9aff1f33d666a215162bb4a62a5e6cdd591f1beb" ] }, { @@ -580,22 +702,30 @@ "0246bcf194a197e65634895f60d540fb5168963aec254dc9e1481c1ceaa2eddc36", "02f04c60f3afecd501bd5742c0476408c70a140dae619728bd378cf9417b295f57" ], - "pop": "03cfd7083a8dae265bca8b7a0857d11a87f8678942bc9d8ffe739d08858335b7896c6c3e0f31fc067aa3c6cd2c6346466ba6bf2a81ab7e154157ffd063f1aea543", + "pop": "02381954f89a750dadb35b4c21736ab183bd73297125091e56a158154aa4decc855e3117db81e36a111d9ec0fd719ff70a3ef13e09525ccf262a8307f9d18667c7", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902e7ed96360065c607aaeb4160354ff18b5e9563597833ff5168b1b30c9f98568402c5f1d57333211e466af91aae253831d20f4d4695b7fbd8349fbb96dc9d87dac603ec13c8699fe953b95e16cc244de070aa1b0c560cad2d95f1e3ae5527d89d4c4a039cbd4bae5f065593da419bfa65e389a90d142d4584add5058a834c4ae4af13cc03ad1773f595260ac150564135ae6a2d708ae811a67680831bf46bcee12a53788f0246bcf194a197e65634895f60d540fb5168963aec254dc9e1481c1ceaa2eddc3602f04c60f3afecd501bd5742c0476408c70a140dae619728bd378cf9417b295f57021575be706ffe480733c2786b3a80f49e1dc1fca6c4222d79f7c22e2d581448c0", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a9805b9884bc386965323767075e4016a308844bfd6b74e61e9b9ebcfae74e7dfad1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902e7ed96360065c607aaeb4160354ff18b5e9563597833ff5168b1b30c9f98568402c5f1d57333211e466af91aae253831d20f4d4695b7fbd8349fbb96dc9d87dac603ec13c8699fe953b95e16cc244de070aa1b0c560cad2d95f1e3ae5527d89d4c4a039cbd4bae5f065593da419bfa65e389a90d142d4584add5058a834c4ae4af13cc03ad1773f595260ac150564135ae6a2d708ae811a67680831bf46bcee12a53788f0246bcf194a197e65634895f60d540fb5168963aec254dc9e1481c1ceaa2eddc3602f04c60f3afecd501bd5742c0476408c70a140dae619728bd378cf9417b295f57021575be706ffe480733c2786b3a80f49e1dc1fca6c4222d79f7c22e2d581448c0", + "nonce": "7261d9a6b45877b5c31f2ed7e8392a06631c62e348db92574e00b5d37b741502", + "nonce_commitment": "02381954f89a750dadb35b4c21736ab183bd73297125091e56a158154aa4decc85", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402381954f89a750dadb35b4c21736ab183bd73297125091e56a158154aa4decc8502e7ed96360065c607aaeb4160354ff18b5e9563597833ff5168b1b30c9f9856841f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc4902e7ed96360065c607aaeb4160354ff18b5e9563597833ff5168b1b30c9f98568402c5f1d57333211e466af91aae253831d20f4d4695b7fbd8349fbb96dc9d87dac603ec13c8699fe953b95e16cc244de070aa1b0c560cad2d95f1e3ae5527d89d4c4a039cbd4bae5f065593da419bfa65e389a90d142d4584add5058a834c4ae4af13cc03ad1773f595260ac150564135ae6a2d708ae811a67680831bf46bcee12a53788f0246bcf194a197e65634895f60d540fb5168963aec254dc9e1481c1ceaa2eddc3602f04c60f3afecd501bd5742c0476408c70a140dae619728bd378cf9417b295f57021575be706ffe480733c2786b3a80f49e1dc1fca6c4222d79f7c22e2d581448c0", + "challenge": "9a647840c6eb409bd4d01466d2b6c1ecc405b56449bd3242e4d5e0c9b8f4ac6c" + }, "encrypted_shares": [ - "0878609704737084ba492d821dedd9f1835f4dc488ac5aa1a309cec0227035a406f6ac679f918b8b4691f5868fa18a3a", - "8a29295f27e605d6d660d38e2325855d2214cb7c4767c8f3b477185df301e57cfd4bab597b673e08a92646ccf3f8ae42", - "68d175e3a6b77eeac98fb2fc901d2e874b8192033cf6dc0c9af448e36600847dd143f6ac34437e325bdd7aaabcbdeee1", - "f610909085cc459c19e3d033a0a69156b68b662a69e23b705dff549c51c5335dcc262191e53cb335705a2eb74f3aaab6", - "3c7a48d7e07a867c48558daa6825c481dc81bc658062c0ac60ef188214c09b362c5e2c9e515ec100c324669173f4bbd5", - "161a858e461c82d4c76e2ba0847d2eb24cd6bed6e251e01069c7c9f99df36209b843e253604aefed61c9014c29d94125", - "4769b20ee27428c38395f95b7320df97894adde733e4b8c6fd10d9cab171e1bf442f9daa250cd9d514c2b14cba0c9fa6", - "f18cf4cc6af1710d36c7a8dccfc74ed998c44d0deabdfbe0bcc08c4d10f99a46d7b276e8f22cae7d55c8e4fb7f63604c", - "fa1e4dafa79eae687afe5af332dbbedbb22695c362b89ebd653056b57e88be4785bc7dad3abc133c4b4900c4c409fbac", - "c868c300bca273c5a5760369c3fcee31b0eb0e5f7eefb025a5be4728bcc4d63090311f9e52e1100f37c2cf275012c5af", - "ca41cae9d973f41baacd4214e7e35ddbabdd11ca988a74ce034b6e6ebb5a7c39416815687e3a7072657c7394426b9b75", - "a1bf80eeb350b56d8193f4d6fc02631ba7d1af5870ceef0cf852f8c1478382f726e73dd21e670004939367ed721708e5", - "c094acba3c5617ef33e6554b24b3cb52c0bebec29cb33e61204c9c89e40f38ba392bf13d8bc888b45378e3da93ce528c", - "701c064eb851d8dfba1d4a1a02715761bc32ab5e9e856557a75f743c2cf4b1684ebf0046d33bbb95fcf837ebadebd412" + "967e5464d179370f4f9e227bfaa2126f8427241dff5d79710bdd468fb94231119a2510a4f8bbfe715afb511f196f8459", + "513c39fc520e842d9a3cfc3f5b0cd0d8c5ae6c97b3f0cd3c177f637657b1a2a2fb985dd3bddbb71ee7ad4711bc2b36ca", + "c3b4df8e85adf58e413ab46b5d0bc6c5b134bbf528b6fd26fe5545e623fd484d897a7d5d8b8c2879ec4bae5bbd8c3d31", + "44047d62d2c0c815e6cb75e6cbd23ddd651d569b5dc46159478ef52fd34d9151bff65e77eacd3ba56ce2d7a96ef348d4", + "0f30f2d9e1efc9d739b296c357943b7b8e6c5f2fbc9242ae2082ea81b9593a92c54133adb6d7777b67ce1e7a479ac7d5", + "1796b7e01aa940bb6e43d1146758c0ae561e2ebc1793255610d771d7d57ca44a9829fc2c7170172e391549fd3f66322e", + "67cb7eab72e87656103d0847838c58e5f245b5341b8d43165947bb35b9a10acf547fb048ed6b1a60a93bcbb44218f52a", + "89773dd0185fc3ad394a12e633914c5917685189c1eb0d932d8b8f265af15d9e57c09f59cc03490fcfa2d6c5171378cf", + "2e091c8807f853cea07b2d4177199ca7741214333f463389664ab7ff79fcd5da1dbb9e37d789b968bf0dc1ee63a9a8e9", + "fc914e236b95f5ed92ad6fff0e00839134f93c47bd29dcaef1a504ef16ac0d712bf45194506d0bff2e5fd0c2742e266e", + "34cd0e5179486b0b6be7fe6a34b4d139f4e1b67486edf1bd403e80f6ba0bac34dd4520fc5825304d3ad30093f2c39d72", + "25e31115eeb2f9ee7ed1239a19919eff0899f66690407a5cc4c57d6d5d2514e8934914ce3c36934938aec3cef273212e", + "018ab8069dd7489eecac7688efbb80415870b881673a2e68e47e83225f4bd3e0eb42160337b30a604d5eece3e1735eeb", + "8d9c94d76fa34ee149d854c91df825e684ff0f5ed45e32f96724e1930289048d20f8e43c3f4eb1da1529dfb877a94917" ] }, { @@ -610,22 +740,30 @@ "03653bf707d0c43986427ba3a9a68236174b832ec122bd9b32b42dee645febd240", "03ef5ed844d14265295e3960da6e2e0963f8b254710cdf523a98db664d06e81a8e" ], - "pop": "0207a21bd084ca5608deef38369c0274e855a9523e3c2f2508ed430a41a458a6f0fdae764a757f23489f8013a0720a98f498537dda6cdf2a07312bd64b7b524c28", + "pop": "03ab11ca62108baa39974cdb238efb83912aebacbe9602a2651b8b6a5a3cb06d68f89228389fc6a754be22cdde2adbf460a3d35807ee205f58ff2d46891dbd34b0", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490286d02724ea3240278a86be7145bd7771bf185a82627e8326c8c7a0bcabe95d5803f84623deb50aa07bf0d7a5a7b1429badacc4e263cee60a02e159c8a518cd9dcb03e1998be4784122df4aa65722a3a626e124b42fdbed5cfdece5ba7801e6cd5f27029a59df9b9d44ebfe75e3111b6489a634a0841be16e3293236f1b498ec0db4aad03051ab2a97b9b58dc453b88c0fe83dda6c114637a6f62199c217795d8b000c0a703653bf707d0c43986427ba3a9a68236174b832ec122bd9b32b42dee645febd24003ef5ed844d14265295e3960da6e2e0963f8b254710cdf523a98db664d06e81a8e021e8d6f6835f81e0116f49a1c4d81912a04283f14137773b12cfa760c10f7aeb2", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98466a7a29cc4b98281ebf6351996a500ea6c48a9642c5ad4bc4b4e913bb15009f1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490286d02724ea3240278a86be7145bd7771bf185a82627e8326c8c7a0bcabe95d5803f84623deb50aa07bf0d7a5a7b1429badacc4e263cee60a02e159c8a518cd9dcb03e1998be4784122df4aa65722a3a626e124b42fdbed5cfdece5ba7801e6cd5f27029a59df9b9d44ebfe75e3111b6489a634a0841be16e3293236f1b498ec0db4aad03051ab2a97b9b58dc453b88c0fe83dda6c114637a6f62199c217795d8b000c0a703653bf707d0c43986427ba3a9a68236174b832ec122bd9b32b42dee645febd24003ef5ed844d14265295e3960da6e2e0963f8b254710cdf523a98db664d06e81a8e021e8d6f6835f81e0116f49a1c4d81912a04283f14137773b12cfa760c10f7aeb2", + "nonce": "87b7837d3cf58e08f579b756a0e831e96c56928f6cb9a51d25827e8787eb2200", + "nonce_commitment": "03ab11ca62108baa39974cdb238efb83912aebacbe9602a2651b8b6a5a3cb06d68", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403ab11ca62108baa39974cdb238efb83912aebacbe9602a2651b8b6a5a3cb06d680286d02724ea3240278a86be7145bd7771bf185a82627e8326c8c7a0bcabe95d581f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490286d02724ea3240278a86be7145bd7771bf185a82627e8326c8c7a0bcabe95d5803f84623deb50aa07bf0d7a5a7b1429badacc4e263cee60a02e159c8a518cd9dcb03e1998be4784122df4aa65722a3a626e124b42fdbed5cfdece5ba7801e6cd5f27029a59df9b9d44ebfe75e3111b6489a634a0841be16e3293236f1b498ec0db4aad03051ab2a97b9b58dc453b88c0fe83dda6c114637a6f62199c217795d8b000c0a703653bf707d0c43986427ba3a9a68236174b832ec122bd9b32b42dee645febd24003ef5ed844d14265295e3960da6e2e0963f8b254710cdf523a98db664d06e81a8e021e8d6f6835f81e0116f49a1c4d81912a04283f14137773b12cfa760c10f7aeb2", + "challenge": "dc40b9242edcc15898785106e16f01241680103dccb194544d2cf69d31ddd541" + }, "encrypted_shares": [ - "b4be12e10e8012f31acd9e671073066cc5fe67ede60e472017f06e8ad6c5311c86cb1af6d3e37b6c669ec4f37dbf6548", - "e91547f633e478f52b60e2099a56e8825d5620117bfee32bc911b6135a8590b4fd1a353916eae43378a88680704fca97", - "d8c17b093f80c13927b208f024f8fb06719c8cca85b2fa7ce61c9690ed2df772191b5482e403567f751feb0175dfe406", - "ed40bb15130f1826b77f2f35a548adaaa88ed27af407bfbf4f42cbd7379f8c3f35c946008b75f744e0544de0a4a3fa60", - "0d68c58e34f4860da657f446e4f9e31c1aa2e75b6c5a2bd14e1413b5328fe72af6d08bb170f49ee5b0e6b0d79c649014", - "3cebb78786dba08016538e9c932b925c0a66608c38ab5e8da5361c9be9a34c95228e26cf95aa8a151d5a3a37bf31f7f6", - "abde98f956f961f09049b6e06879efa0232a63945c8ac16654e9f0a0ff87e523c03f5bfa6c65908e2adbebfd57262f62", - "daa727e964ab8ba5fdc60198ece917360c767f04394c69779982d1712136f403a2b1065fe61add4d6343fcd0d1ebd69e", - "9004c2d11ff128e140ffec51d209a07f3a39a20aad6e26cd3919dafdffa639a8a356409852ccc6adb372baa2f304780f", - "55276897c36cf92f685ab5d862faf0c9b2ddc25884ea2f78d7961763ce6702f8caa21dd1487fc02fc49ea16a697f21b3", - "75e3b568c93623463b05708eb0ff02a92037712e31ef54ec1a86c064e69a02591fed3de3f26f0ec3209aef7d36b41963", - "077881c29748fda3538e046dfd4055a64729892e3c3b85a701a5c4c7d935b614e5a68038bcc83d7debc025e6762f9acb", - "83cc42e3fb19d351160943290d2160eb25f5ed2a87961c4aa76dd19347a4965916af3f02bc2a2084afa72f7d7d5b4a43", - "c51ab0d636ba40ab9808df2fed4c0b2208f8811821bc3a2ec9ceca839320a2fd86be32e1c23b25a6f7508c29e3fcfad9" + "8ef340862fc8b8b1cc45d49b1ba0ab8a4d1097202a80c10964c52b576f698d0c30e2d7aa5f20ddce321ebdd38f2756a8", + "b12c252e9f35f82f3f9e950330cb651a831c8b5c54ef1bde9244d1fac29ca516bdad65bfa1fc078ae2a4a07c58facee6", + "6b6191ba7c7350f5428d6988782347043f332e0d1bf390f9d672ec332b5b2217775c7159c43037869c03767bae66da01", + "da6de24e248be052d9f775a39a1a228bd197122d161ccc51cd52187b1cfe4349a3ab5193b35fe8fb2fa0c2af645d0aa2", + "b44ef39d391de46bd803121364115cfce2a501c0fe052e9af2124e747bd38bcf7914da362412c98df839e443791be8f3", + "2e4e6048434509d2596994fed9b98bd8a461d83f9b44120566102a3bc771594c6e3c16ee245577d96950b5cd482feeeb", + "02da915e87ce3a18d29bbaef85309848f6642c8c0870e545f7a7ccf385a07db1d3204656fd53c5c825403b3dfef86b14", + "3ddc832e284d954598733958a82463fc767fe0079e9dfde394b2349568a2666ca0a4ae2dcff7d77ed9912d8dab152f0a", + "082e7c115ae6ecd0c749a6605ea0c495866ecfc3b8237ae81c1d3807f8cefdbf4c3aed5d81bd2611c1919783a4f1dc2e", + "40c4ede3420d9a0c17ab05e980bc15d1b99d8a2df0e8ec7abb0806a3b9506a96409d48fdbf492d4e575988948e558627", + "dbe007c7d5bccae9e5407c02ee2592893b0a4571a7e3fc57b2c3c741509885521ed2f49a1546789807a99bc125efd281", + "f7590216d5796947b9d2820fcc87c8baf2242e4e62d225fb629402319585e8d540c2768d0be3fdd5929a8c4939118739", + "8fab55e4ca3a6f82ce5e7a9edf083de2a20797c85850f3d0382c77f2dd30fbc60d66e8a4b8355bd07ce66020cd1f1536", + "f215d2e4a5095f767fb9ab62b8c14607389993804705968801325014bde826e3611acdabd371240bb2c74087dc0f0528" ] }, { @@ -640,22 +778,30 @@ "0339cd656b6cdf84eb9fe716f904c62ed72d43fd7bdb5be9e4c3853486e84687b0", "030968a7797a54e267c531c3083619d4362ac322a656090f93b7b06d63cb5f4cec" ], - "pop": "03712a375018ea9e1ae2c11c87a3c6692876718022033438dba2340533795f7c3c6b48cc66cf786775e7db8584314a8df246205c5ebbf74887423f13714f025573", + "pop": "02304eb2baf67364b3b25ed5811607aa67f42c85b5b578328d70d8062ffbb7d587022cc55bc8e1175b51d83ea02006ae317be85545b60681745c8b42778d3a71ca", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021babfa9347f317acb16c45111e9c9053d623adee7419097cea163624a6c77398028bc1491fbf92dcac01ecb41a0f1858a0cc39b14734c31ab591b77aafae16f2b7025a327265522fbab2485fc46754744e74394093e4c91ba6df2bd3b589b91e61a202e98b7249ea5794645c0e49e41b354b15c165a63cfb7d4ac3e304dd5f68364a1402aa4f42a30d2b7eef209d96da798373dde9910aaa1dadd8d8b55b0e3f277d7cc30339cd656b6cdf84eb9fe716f904c62ed72d43fd7bdb5be9e4c3853486e84687b0030968a7797a54e267c531c3083619d4362ac322a656090f93b7b06d63cb5f4cec02d0e9b7c9d510929110f485450c7d2005e84540d30fad3793644c9dcc5508bf28", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98f2239413cea29eef862d9f1387f3d4b4c508cca0ad9bd8ce012603d8908b4d471f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021babfa9347f317acb16c45111e9c9053d623adee7419097cea163624a6c77398028bc1491fbf92dcac01ecb41a0f1858a0cc39b14734c31ab591b77aafae16f2b7025a327265522fbab2485fc46754744e74394093e4c91ba6df2bd3b589b91e61a202e98b7249ea5794645c0e49e41b354b15c165a63cfb7d4ac3e304dd5f68364a1402aa4f42a30d2b7eef209d96da798373dde9910aaa1dadd8d8b55b0e3f277d7cc30339cd656b6cdf84eb9fe716f904c62ed72d43fd7bdb5be9e4c3853486e84687b0030968a7797a54e267c531c3083619d4362ac322a656090f93b7b06d63cb5f4cec02d0e9b7c9d510929110f485450c7d2005e84540d30fad3793644c9dcc5508bf28", + "nonce": "8d6ffd05542f5ee4d6d595811d387331d6f698497e7d5716c7efb2ba54dce944", + "nonce_commitment": "02304eb2baf67364b3b25ed5811607aa67f42c85b5b578328d70d8062ffbb7d587", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402304eb2baf67364b3b25ed5811607aa67f42c85b5b578328d70d8062ffbb7d587021babfa9347f317acb16c45111e9c9053d623adee7419097cea163624a6c773981f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49021babfa9347f317acb16c45111e9c9053d623adee7419097cea163624a6c77398028bc1491fbf92dcac01ecb41a0f1858a0cc39b14734c31ab591b77aafae16f2b7025a327265522fbab2485fc46754744e74394093e4c91ba6df2bd3b589b91e61a202e98b7249ea5794645c0e49e41b354b15c165a63cfb7d4ac3e304dd5f68364a1402aa4f42a30d2b7eef209d96da798373dde9910aaa1dadd8d8b55b0e3f277d7cc30339cd656b6cdf84eb9fe716f904c62ed72d43fd7bdb5be9e4c3853486e84687b0030968a7797a54e267c531c3083619d4362ac322a656090f93b7b06d63cb5f4cec02d0e9b7c9d510929110f485450c7d2005e84540d30fad3793644c9dcc5508bf28", + "challenge": "d7cb5c3448866af00778826ee5e9a926e3957f7cbe38381e190c4c33334b7b62" + }, "encrypted_shares": [ - "1c7206f6fe3b4662e1ef3aaf70e09fa073c1b7ae9f542a68f29ac68e0081d149abfd15f112c1d7e84981d9ef01db4488", - "998ea64f2969d15e4af9f1a2b2bad20e846014d7a07349553659b38604c258fde3bc3ae786dc3e6848819d478a755354", - "30c8191c21483c1e6ae4e0038942465e02374dabaf4ff41373e0e6da524fa8e71003e0f9f9bbac91c19b9a927cc2f0ec", - "55eec026d58238609492cad9e2756dc10015766a516c624775fdebcf7a32504745f0484a81a4ed5abf1704a0e5295b01", - "333bfbeafc5598dd7033d8dac630adfea7e2896301e6c432a3a53174f0a96559f13426b25e4393f938573a9d948a3582", - "0bc0b9d5b7fcd78e75a8afcc3a5481b794bc253fb502fcc6431038ecc0e7d05186681bb0d001bb1637b6d46963b3e2ab", - "a0e97a87626431b1eabb2e993db0c6950a798308e531ea581fe8d2a6697e5eada5806f993be5399a94b91a6c6491909f", - "4c5782c093f36c60a5bd5e84dbe1aebc5140ea7ff882091783d2b5e4dfabf75b26b165abccc64dc0bff50a3637986b5c", - "99c124907cde46f965bd1e764f7d9e8e9256e4a51e1bccfeb66066e22d669e1615b226d6b0d95c7d4dec4ce9de8b1e0a", - "dc821a74a2b60152cacea6a3dc3765541c03d21830b489e5c5bfeabe159d32cf248a58f1719757f53a9c9d9614915bb7", - "dd9690c21416c8a5d7806f89b47589119419c19955e7b9aca6b177ace4d45d3e05e2c139eec578ecdd244b3921bab260", - "f4d002fe2f5b63574c66f3b967d2e16ad2536644962bc718c5111af201519f291ac0d621349afcee74c4d0b025c0917b", - "178d8ef21c27ec874e4f9ddbf910a5aff7828810b9dde843f392775710c4ce8f5ea8de8ecdd4efd7f368c0177e3c9b85", - "a4489a1ff9bcde95bf0f271009d354a041ae3794da41558073c59a77a8aae24835f6e79790b94f7f4e95fa4ae986d919" + "53053624c244ddcd2268ee99cf1f952ea3823af0ceb72a6ced9388a4b3cbfbeaabfad85ad6acae4d415a14e8d7a8d5ad", + "c4ccc8c112817abc9d1af6bdaad9d5282c38ac79163aab0aa2a07d9395d35a2ad0a33c2917eaf2477ba6fae34d6812b3", + "8b94cf4e6d7cbf250889695faea1dbc7ceb51261ebdf44b94c4048a9be78210cab30bc6d10d8d68aaea366c245fb1208", + "15f4403e890c403f1f38491a3b6adf7862b9cb78192a3a623ac93597faab0ef557d16ce3784f0a915fc0d9cda145c603", + "3f99d4966e02af682f113b1f48fc5f84a630521650f07efc9b3350df2c7824f792b79bafc9f271983a5a6e3647af1689", + "693f4111912c470e8337206a89181ea71e3639b6991d7187ac92d5e1415762bd5da23d9908a2df6417b1885a362e86f2", + "73edbf2f75fdcb631305ee331435c0cb7ca89294b87d39337b36789bb86d1140dcf9cd98113f54257e486a909370f95b", + "03730aaf935fb8662d60208923ebfbc5b6b18443f468085329f2e743b0d89c7cdd417207f3b8d277ff703ffeefe89c33", + "37183c9c4794bf9226b74f0ee1d55b34342aa82117bd1cdc39b1e69827f320de7bca24ea1c3a40520c271f9bcb1e55ae", + "8d283782ea6e208cc43db7b1a70fbda530e75573f8b8d6d562840d1b6bc13a356c04e8593604b7fd812c78e22fc460c9", + "8851d47ff7d382026657159257660c8bec70c3936a6da2240d3ad251764d45c56aba64cfd48fa0a3bd0e3a51c5080781", + "52109ea85d04187e3fb113126e6412c561041d703f88a77dabfa21a5996cd5453b447e2c4c01d79105535dbc5e2db370", + "b511907024b35e4cc51c27029bbb3e610fe1c1d0152a565785d50caecfba1b4da8992f6164b30c91a7ba61694ec0384c", + "84365da72eb3d29ac787af7673621b558619d8a596bc92206136fff8ebad21f247ba7a2f1b659e5c6753e9c3a34464cf" ] }, { @@ -670,22 +816,30 @@ "036e60be5cf4f3d74f5a6cc43fbb03821bba55ea45c8c2bf0f744de2f8eabd207c", "03375c34613979a6ef67293c0856ae714010d28e0ed6f0405b44e9c6f4cf608012" ], - "pop": "0202fb9094d99ae591323e6f5a90fa4202e41fcf1ab144c012f85005a8829ca30217d939018d30b200dd89f185ae14647a903d9cf49210c390e60e282b466b55c1", + "pop": "030a3ac8f9394308588326a9a7bd715d7bab3b9ff5d598a63eb07e22cb5945eb7cdb677dd3fa8937270a5c209c2a2331779fad3acc3b108e00c581e23f6510e920", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49020be7444ee8418240a533119224900c85d44e544ec819eed4947883a21de67fea03f30ff1bd63174b603d784be776a50ad8d3b69fc05200be35daab20916ba0b6dd034cefa90c68f07c1a4cb587bd32c7a0c3698ba75b26c88882c4dfcc81756f8a3e0396368f92eb8b33a363b82860e900cdc41da13bf6c6602e0d3bacfd4fec23c80003a4971077a616644216f319e186cad60ba1320dc327a844d77ca828347620305a036e60be5cf4f3d74f5a6cc43fbb03821bba55ea45c8c2bf0f744de2f8eabd207c03375c34613979a6ef67293c0856ae714010d28e0ed6f0405b44e9c6f4cf6080120210c570c77f6fb8fb396aef54d293e493754d807baa1f1605241a4d8e895efdfc", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a9818b6aff77a19790ef16c0fb7d8738c6b02e36a5f7001d54cb9367de652e2abab1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49020be7444ee8418240a533119224900c85d44e544ec819eed4947883a21de67fea03f30ff1bd63174b603d784be776a50ad8d3b69fc05200be35daab20916ba0b6dd034cefa90c68f07c1a4cb587bd32c7a0c3698ba75b26c88882c4dfcc81756f8a3e0396368f92eb8b33a363b82860e900cdc41da13bf6c6602e0d3bacfd4fec23c80003a4971077a616644216f319e186cad60ba1320dc327a844d77ca828347620305a036e60be5cf4f3d74f5a6cc43fbb03821bba55ea45c8c2bf0f744de2f8eabd207c03375c34613979a6ef67293c0856ae714010d28e0ed6f0405b44e9c6f4cf6080120210c570c77f6fb8fb396aef54d293e493754d807baa1f1605241a4d8e895efdfc", + "nonce": "7b320f013f4f823a51f52ab32c8c12bb472cef7678690d5029a0de6746859651", + "nonce_commitment": "030a3ac8f9394308588326a9a7bd715d7bab3b9ff5d598a63eb07e22cb5945eb7c", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864030a3ac8f9394308588326a9a7bd715d7bab3b9ff5d598a63eb07e22cb5945eb7c020be7444ee8418240a533119224900c85d44e544ec819eed4947883a21de67fea1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49020be7444ee8418240a533119224900c85d44e544ec819eed4947883a21de67fea03f30ff1bd63174b603d784be776a50ad8d3b69fc05200be35daab20916ba0b6dd034cefa90c68f07c1a4cb587bd32c7a0c3698ba75b26c88882c4dfcc81756f8a3e0396368f92eb8b33a363b82860e900cdc41da13bf6c6602e0d3bacfd4fec23c80003a4971077a616644216f319e186cad60ba1320dc327a844d77ca828347620305a036e60be5cf4f3d74f5a6cc43fbb03821bba55ea45c8c2bf0f744de2f8eabd207c03375c34613979a6ef67293c0856ae714010d28e0ed6f0405b44e9c6f4cf6080120210c570c77f6fb8fb396aef54d293e493754d807baa1f1605241a4d8e895efdfc", + "challenge": "9e7036feae0b42549ed141504c04ad963eea5a1d651fa0a2e9fbe5ac949e0867" + }, "encrypted_shares": [ - "45df99d313d832633fa08a9610932f6aafffe13f9059d4a3bbdd06868f840f48e5f05a3db0ac8fd0ea3597ad33709fe4", - "f129d6b6fa2a0fbb4644e82d3073a84745a2b7eaacff9ac4c7d81b21e7682517c27ec333157d4f3cfa6ec0a5b1063662", - "af31b9a506592565a4eb22c43411d5786865dfdfa49d87425460488e5715603246b9c5ab62a1a8225379c746d515282a", - "51882ca3be8c5a290c9841f95fd17cadaa5f6aa889aaa40ae20bb2268629b7b0927186080ae387aa2b23a72285a895ea", - "e8c7be74e17686783a2443c77b579151cc7b5f3bdc197ed43809c0048ccf51f9327aad35aff010bdf3eeb42cd29e5119", - "61c3a49a3b082a8b875b495fbefe5e98e9415997531b061a53cd461e27c22401689fd868a38891dffaad7238a72d975b", - "b546e39dea0c789035085c0518f288f92ec4d3e160c99ec76b10f38f11f5c0cfd29053f24628232b51fc83c0d801a483", - "289cf5bb3835d873f12de52b5bd56e13c3f94d5a5824718ebfa3c0b588c235521a79a0ca0e2c9cd54982fedb16972a9a", - "78733c90dc2c24aa1704a2a045e64be9fcc664ba55dc55920a3a6d049d3bb848476567e2eb944fe17027e9424ea736ff", - "9a1b5387e3d3bb43f97ff9ac26c46a3062fe8eef1e93dcfdacf49542d8bffa23178c812937780cc293d4c0cbd60cd9a0", - "4dafba923c543bdbb540d4d5b6543d8e4d22b8bf975e679537a526012e6562fc8ab4456f91adfaa15f6f0e01677d506b", - "7eb261bd7b63b6fafdbbf27924bd89f851dd0b87c12b1beb8091fc4efc89d8324d707f6ba8cc14f38be75aebaeb7f40b", - "bf61b6ef3468128b24847671ec110fffb37ed90e77a32ec69b112e273baff0807941b7188a1fcbf128c5665752fbd782", - "d8a3e20fbe4e41bb80828f8290da4ff46f1ba8c127bb2b6c5282b6e719cb12d55b92551d58c2eb2d26d87f7554dc8d0b" + "e4ed64be2ce2bf1f1238859792e92dd84ee568c1c11718e3c405a00b9f583763588992b0a646ab2d3531e978bdf7ccc4", + "b10497efde811331fdefebb3a211df9bef787e9a30150c76f84687002fd9e3c0d1d213f1076d7a8a1823f397cbdfb9cb", + "b89c627713470e78f31f7915ef0b3a2bed5beac2f59f2611509c2b5343af90fc679dba6618be229da634c705639791ea", + "4351515c219d2b26d22d056be20b571fb2e44ecf771f756e6be980128f78468cb244a199f7dc668ed7585869505f6880", + "6a6fd8d05afad438a5f24829f5a2468de21a2637addbc2e8be88b4de46bf305a57ef490b7bad48e8f258fc069ed89094", + "3c7697a387a4481f5e2fa63a98193dd7e7696985b35491af22dda689ee3dbd0b7a073a2e0288f6aaaf1a62c5be814f9b", + "1b0db8f67c90b4ad3f32eb48610eee04344ec122fdcfd3c6a568059976a26f33b8ca2f38a3337065e36e01b98dd7c7d6", + "cecb0eeded9e69bcb25df2e4fe0808c4a257eb3d2eeb8aac1d50e6cbc8b72e61b39f589a5c660c8f253ee3ec4072ebef", + "0b23f6585d6d98deec06ba9e1c08d566b5debe8b474a940a87dcd6e6f424d4f64a67562d741c8b44101251c720609205", + "89623cbfb9b0cc41b4b11c8dd418bcf64cc33fa0fc1c7d45786ba6fe9e1b0374051482d4d26c8e4c791211125b3f118e", + "8d7597d00a470d2a66723cfd7e389b7568ec63990996020bdbf38ab7997f3ab2cdf9033164f37d614f4b57389fe14076", + "41e411fc6d96481060d598daf8a6ee4e5cc98fcd770339f40c0ff914b75b72ccac01777690f7d0417040547a1f2cafde", + "91761309ef0977e0bb00d70e4d95eff667723e57a9be5a66a7a91c359271f56890ab999f49fabc2d8d02248ec2801c3c", + "afef0a4340364526bb5dd802ab1d84e4d30eb1b148a28d926d7b02bf15ba1887abe6e910ba96ef272a8cda04b8d02a6c" ] }, { @@ -700,22 +854,30 @@ "03db77e50aa8d4ae02b86401ee575ee3f88504ef21284a54830641be5268650822", "029ba8de4b973eacda2b112c528e520e12af390280e62d00370da5a7af978a2005" ], - "pop": "024fc3f3f4e74e79fc587fff06a5833a96b1156fed803fbd5946c29a0a4ca1fb486d90c36c68896ff665f32668b12b1995ab0b90d241cd20fcad17f82d12b172dc", + "pop": "02cee05578cfd052188bf5cb564e1ef3da8e8466cfb76d98de3fec937b5dff4b6740dada7b08df4b953e13da00c4df00f71e556ad2e10d3aa4f59e4ee03fc16f96", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490271a15813be66a1e81ff4f55506b959e9173de3e3c73554bb6180d9c5967aea2403dc18b70508c3266717c349933db0ae50f7dea04fd7ae8607052a12a47cfecbc702eaf94e10fb2eea95c1f08a09a26a986d7724696040758e23ac36bed57935825d02996cab462aeada0c282305276a5426292fe5c0b87b998f5c5e01caa227fe2c7e033c08c5c61a1c2f7987b49850699440563f0f0823ae0ed0a689942ffcc7b4e0c603db77e50aa8d4ae02b86401ee575ee3f88504ef21284a54830641be5268650822029ba8de4b973eacda2b112c528e520e12af390280e62d00370da5a7af978a2005038eb5b5e86ccce9138daa14a1c2b458491286ab00a973c9a3950091f4af8276e0", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a989b6c13f3aa93115db960488064946118a9d9ca9e41a0e358241d4faf8562d5421f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490271a15813be66a1e81ff4f55506b959e9173de3e3c73554bb6180d9c5967aea2403dc18b70508c3266717c349933db0ae50f7dea04fd7ae8607052a12a47cfecbc702eaf94e10fb2eea95c1f08a09a26a986d7724696040758e23ac36bed57935825d02996cab462aeada0c282305276a5426292fe5c0b87b998f5c5e01caa227fe2c7e033c08c5c61a1c2f7987b49850699440563f0f0823ae0ed0a689942ffcc7b4e0c603db77e50aa8d4ae02b86401ee575ee3f88504ef21284a54830641be5268650822029ba8de4b973eacda2b112c528e520e12af390280e62d00370da5a7af978a2005038eb5b5e86ccce9138daa14a1c2b458491286ab00a973c9a3950091f4af8276e0", + "nonce": "e17096736cd3fedde993683b9150386783e4d076dd453d16627d222bed28acf3", + "nonce_commitment": "02cee05578cfd052188bf5cb564e1ef3da8e8466cfb76d98de3fec937b5dff4b67", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986402cee05578cfd052188bf5cb564e1ef3da8e8466cfb76d98de3fec937b5dff4b670271a15813be66a1e81ff4f55506b959e9173de3e3c73554bb6180d9c5967aea241f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc490271a15813be66a1e81ff4f55506b959e9173de3e3c73554bb6180d9c5967aea2403dc18b70508c3266717c349933db0ae50f7dea04fd7ae8607052a12a47cfecbc702eaf94e10fb2eea95c1f08a09a26a986d7724696040758e23ac36bed57935825d02996cab462aeada0c282305276a5426292fe5c0b87b998f5c5e01caa227fe2c7e033c08c5c61a1c2f7987b49850699440563f0f0823ae0ed0a689942ffcc7b4e0c603db77e50aa8d4ae02b86401ee575ee3f88504ef21284a54830641be5268650822029ba8de4b973eacda2b112c528e520e12af390280e62d00370da5a7af978a2005038eb5b5e86ccce9138daa14a1c2b458491286ab00a973c9a3950091f4af8276e0", + "challenge": "d5e1dd1cab09ca71b828778fb20c80dae3a8fb0da22ad6edd47a9ae3922f9161" + }, "encrypted_shares": [ - "44b6eb6a4b4676a78edfe2c601d7c958ec6ce3013dbc9ff331ff688b892b6117f335957e2e892f5cab27b836c9ca0f40", - "eb74109355ddf85c2428bbcb6afcd821dce9c6d93eb95124dd247d448323ed242d9bf37d646fbb1db09dceae2d1f529f", - "9fc7457f2ef3feae0bc7584dcdfbe7ab333755d93b1725a4dff2d949aca02ae4c677701f554dfe3d621c129a29442ef4", - "b626e6be8ed44ae84070f60e0e1ac4642f8a33acdadae4c0c988bf30e37d52c685dc2c312c58785f640c1d156efca2f3", - "c6322caf3a731fd9d6a2031c2cca985d2502c58e5176e1b3e3bce9bf14558e7f96590f44ca5a5d94911f1ae128320cec", - "a068fa89668dc8e6130a3b73958b19125973d3607d59815f9f15b9cddf2a4df7d45ae998e57196082bd0deed8b113830", - "ba914953af6f3e3176c0a5fa40aa2fe856f147cb82deefb651226e7da40d5fd7d41e351ef1990ad5b1eca21757ce4e5a", - "e4fdffe4f2af9b800747acbe6c1a89a4308a1d03940d7e222fe43794c816943aff7a661eebe7043e62442f13726e6ca4", - "b2c7755a789a66cd83b6141b810b42e7898a752f15eaa99e327024f6f9868633eb3b9694294c78cb9e6bd3fb453bb83f", - "0247b0f5eb260c37f2d44cb16987534f39303a073282e10f476be53ef26e5ec7371908cc9d0407af6d303e6edac9290f", - "6d7b01ef543608c818676b27fe4d0536ae79b78472dda4c657321d966ef8d03275ff207a6d7f90fd95f64adba0ffe6e7", - "f07fb8113367e6f8a4bc9ff8831c5a5a8693a28c9ff8521ca59e9fb76b0b47520ead4aa55717bc2803ddc28b262ebee9", - "996df11a2f8d3d0f38bb2d17531a75033c4ead473bfbd32463788cb54e1c683f918244b7f1cd3dbdd18ffde2c8759378", - "7b7f24ff1f4b8376882225b8d7ee12a255cedabbff4c310cf0170e3dc9b7a3573b6ceb13be136fbba68aa541df6fc05b" + "cc4785f6a46b8114c34b1291557cc7b79136ba9b476208c94b2985c01739a023ce891402fc7bbd0a76758b613b026856", + "0bd88af0da20298b217bb896541ec7e41c4f5b587ded4076d95d4296e08049748510efef6574f15db5d68e4fa169e3c9", + "60010f3a8a8120057af9f8ba81a1784fb238d4c335005cb3faf89ae38f691ea7fc4f35df3db45b070291b01de18be552", + "060af0b0f818f5d5a79d931655809dbb2acdb0adad1dbea96a4bf1ec3140fef601cb9a0ee6495c792fddc03c58acdea1", + "04e116300e3023bfeb9336ae938ce72a1c6725a6c6f400316b98387c232f0dd1ee02fea3ead0814ac676fadcf4115de7", + "ac08fdcf1df08f428f071ab4c146cf14285f0e489993367fecabd070278509cb67c7ac99521ae91ddef4f8cb51df7ca0", + "8bedb2c5d8527eca6d5f16d20dfdbca0de58d5c5adac8e794a9c9d368c0d7e0db9437d05fda3a46c2f5aff4ea7cf5efb", + "07652ff7c08acbfc7915404222f924fe6a32c15f9f4f8fd5a0d88f28f45c31cea3fd1c6c571568320fd3592738c4450d", + "2236444598ac20633c9fa80695af279b65ff2d6114f798e625c22f751c6db69f3775ef9f52473e750212eb43821bf6c8", + "f39a5cd15341ce32f3e11db4d847fb023be237372d8d0fd503838e6f749c9d1f1fb05a1a0d4ccd5e114b61c2df0c549b", + "5a5eb4095c6504435e7a34767f06577d1a748d993a564b68cbb54e8d2042d9e6ffa4d1b57739915a525e275c41d25560", + "8902591c7690ddfd2a500441f6c66e21a9de5652a5a0f4b857781da2c78ca1ff0483ad60a101d6e2ba624aceac41a4ee", + "92575271b297829e607301e67c0a28447f8a976cb2062d7c482e8064f424ae57d226336edf0fa9ee1aecb7005eb7d5ae", + "754941e3cebd74ed36f6ae5709dd5c6aa1fb4b266b57ee1fe27a317bbadefbaf21ef9eb822d144fe01d440bc5871839c" ] }, { @@ -730,22 +892,30 @@ "02f58e5125a8deffcfc6d981194013a76124f4de11de953170b9637874f8a56891", "034f7bbf3a956cf571aecda6dd3c26d705243a1231570c72f22d0901dcb7d4a72b" ], - "pop": "03ac98fabf07224fc9d714b6d76fdec15e0fb317f54efd8c6f678b5741dca7379b395559896533b2fb885631fa1b1a7b75056bb24071553a0a6dced76aefa7bd3f", + "pop": "03c8552b911730fe2ae006b59c4c80fc526cf7186446161d054cd39ae8595630104aebfc2044b7395e1425e7be4961249fd022410076ab84ab9d701e840be4bc11", + "pop_intermediate": { + "message": "1f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038da248d7ec20d51715a358307d5db7af4fe3a1c8ca77e2935c58eb8b1e960445034df2b9dcb9cf805aa7b0512267bea491594e1914ccbb3d7a52416f34a5daf61002dc5c6e33b65b604839d5c9afa49d56e6d7885ff379107d1d0d4b2ad5f4f69ecb03ddcf074590c752fd0e49d9430836448d4d3605b6bbb9e7de40669ab4af32e463021492e7d43b593333fcd22b2a480ca7b2792f87b166d4c1a4428d6d9755cf5f2502f58e5125a8deffcfc6d981194013a76124f4de11de953170b9637874f8a56891034f7bbf3a956cf571aecda6dd3c26d705243a1231570c72f22d0901dcb7d4a72b03b1a97536cf30136ee127f4331208ea81b12370c12422f5711b6c512096c677ab", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98cabc0570e24380eb483f6152fe1c6ca9fb49478ea6ce0edb71dab008f9e599141f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038da248d7ec20d51715a358307d5db7af4fe3a1c8ca77e2935c58eb8b1e960445034df2b9dcb9cf805aa7b0512267bea491594e1914ccbb3d7a52416f34a5daf61002dc5c6e33b65b604839d5c9afa49d56e6d7885ff379107d1d0d4b2ad5f4f69ecb03ddcf074590c752fd0e49d9430836448d4d3605b6bbb9e7de40669ab4af32e463021492e7d43b593333fcd22b2a480ca7b2792f87b166d4c1a4428d6d9755cf5f2502f58e5125a8deffcfc6d981194013a76124f4de11de953170b9637874f8a56891034f7bbf3a956cf571aecda6dd3c26d705243a1231570c72f22d0901dcb7d4a72b03b1a97536cf30136ee127f4331208ea81b12370c12422f5711b6c512096c677ab", + "nonce": "3f04b1edddaa48512a260405403dca8aec2fee53760fc81cf77184f09d91070e", + "nonce_commitment": "03c8552b911730fe2ae006b59c4c80fc526cf7186446161d054cd39ae859563010", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403c8552b911730fe2ae006b59c4c80fc526cf7186446161d054cd39ae859563010038da248d7ec20d51715a358307d5db7af4fe3a1c8ca77e2935c58eb8b1e9604451f8507e013294a3292bd69ccffab5edbc1c6473165e75e305833285c4bbbbc49038da248d7ec20d51715a358307d5db7af4fe3a1c8ca77e2935c58eb8b1e960445034df2b9dcb9cf805aa7b0512267bea491594e1914ccbb3d7a52416f34a5daf61002dc5c6e33b65b604839d5c9afa49d56e6d7885ff379107d1d0d4b2ad5f4f69ecb03ddcf074590c752fd0e49d9430836448d4d3605b6bbb9e7de40669ab4af32e463021492e7d43b593333fcd22b2a480ca7b2792f87b166d4c1a4428d6d9755cf5f2502f58e5125a8deffcfc6d981194013a76124f4de11de953170b9637874f8a56891034f7bbf3a956cf571aecda6dd3c26d705243a1231570c72f22d0901dcb7d4a72b03b1a97536cf30136ee127f4331208ea81b12370c12422f5711b6c512096c677ab", + "challenge": "8612c2c30184c820c8777c8dde39a7974c5ea64aef42c746d673387331cefd0c" + }, "encrypted_shares": [ - "8423f53c937087ef2f07186357a7a23c02dfc5775ab0072343a9b1d0bae008662adb3434d1a8f87e86bfbf16567b22f3", - "2905ca9e775303b9ddd04cee3aaf23f931608eed2b79e10ab719d5057b0704e38f9995d5aed4b775dae84c936cc90047", - "6cb4798da69853c098fd0557a45375c99dad9f03ead6acb47b45f6b420877dbcf5fb30d0902b39eb0d54258c87b205b4", - "429d35a2f09eebd6337b78a5050eb2f21ef8392aef02ef81c029af9aa381c1a5521566ea973f938e459a1959debf2c79", - "476ffb9762b7e73d0e5c8e1920164436fd07df080e60d0412b68aad33207792db7d5ce94aba93d24f273db456448213f", - "f43a029a09659d6d1fdcb3955076fbff3ba351ef0747a04012dd21ddc2eba10740cacb7bcd13585b32da982c873d55af", - "7100ce08067299f7187aca2c7c7cdf1d806f2b60cc6a386ed50e1f4147e17a116b34b6f14f1fae748fdf6d1fb1374cdc", - "d90ccbf4df5e610a8898f98493b351e56f5522b623636fbca4b5c3a8d45e5f434f716488f68e787f350e1bf0af4cdb14", - "a1f4387952e5fecb9a9fc0910c8360e41555c9ddfcc405ca95f4de542af100b82dab26b65eeef1c56d746e476f0b4563", - "dacb37642ed196cf2d03589e4b94dc632a335bc72d9a127114f7b1457f59e839947b9513b57498e3b57fe031d6fb5c88", - "9226a45a1fe82558373cf34f71af7e0b625427378dd34bd37850c38c4f3ac2c866bfb4534f85498a5215cf99f739543b", - "3ffd69bba2d65739c8a2d80d57eae4083b222c727690c152af3c32911ea4e4dbb58e774eeb4d69e9ad1f221bc15d7948", - "7c7c1ce2ffa4199620515d614f615352f7bb9dde2ad19534bda080a8f08d50e93bf64b53d56ec9fcd9dcc01a10100ec5", - "88c366c4d2fa9ef310e98f8ebc3541481f834721ea480ee59ed61c5975ff044a031ef1bad7fbd448b49614f033b9ccc9" + "f20ecd5c2d2c808aa935605dc505440ba75272b147725aacefeeb3a94885a05dc749dca86ba35895b121210208ec56e9", + "fcc3b40096128c99da06228556d68d813f65db0303cee1694322e3269d31b0b08f53fd180e19ace84f3860f3d9e553a7", + "b0b2655a6e9796b7d994e97eb040a66bbf1a1c6e30ec8fba557371fa5e30e3e9ad50475e3af8b5f9d90225b8e0541a77", + "567949cf3b4f4fef933b6a4c74dce368bfafd3029c08077b47003d4a5e70003603007b2fbe813d25b35107f0c38a15b4", + "3f6f07781ea1f2c38736c3c21081243f3126dada1655d33f13eb89a32d5892e394ae547f72ab8ae31fffe17a6e32195c", + "909ea06922ab3b937da8ef43c23c967f28578a5ad88e5c1e748c01380ea7e76d91c07ec3883b5d4a175de9d60184925e", + "cd6ad1628dc571c4c76e9676e95433f7b7fb471d2471044022e351a82e884aa0e07c4adaced5c60bef77646a9a4fa23a", + "16398147849321a5c2f750baf9ee0168b3d42cb6d04b95d3c9bc47b2e6ab26559c77075dcb4644bb8e042fd0002ce308", + "ad4797d570824d579de348374b8438ba9145fe54003cfced36cd384d1abb093af2b3f1e59efc230313fe028ab9b8bf8d", + "7dcd278b87d3ba161664d007c5f86a8de159610363d5e40908501ae041f1acef995746760ed4526226876171dc78d308", + "ff5afc195b4b1cbd199a73d7a7686f861f4b8866401773483374b0041401914bef14d759bac057074aef4a89ec87287a", + "9e659f64de1d270f89610a78ed867110bc8335b806f9b658a49d6a2823f7d9013c989dc5539d72906b5d1d5937ca1722", + "d0f5d12d37a7bb2d621bb23cfa32a03c02e01ac92189cc72c9ad2ed01d7166d49e601f83d14922fe1e766ea857b58a5f", + "455829c06803bbd1fd22b2bfe61f3808bc0070549b107f754e1e3ae9e2bfffa6f91b177badf5807ed1ea44b480a07ecb" ] } ], @@ -822,93 +992,74 @@ } ], "round3": { - "transcript_hash": "87196836c538f03a5c1528134793a916da9adad6c03003d39b062b38597616fe", + "transcript_hash": "a6f37b10d6448dc84184441babe8f8096c3cf0f0a776f8a8a3a110a755ce7f81", "signatures": [ { "signer_id": 1, - "signature": "02a2dcee0bc91f054c6b2cefa47e8b78e957cecf8dda88ca0067652b34c99ebb514ceb1505f625891ac399d116925f7c0d29a10cf50673fb60e1347f7c0ca9697b" + "signature": "0272948f9e0764b64c2bbbcf4cc9c95aeb51327adef913f4e25107f10eb56caa11401b09b8bfaa4f708ff71202e44e7887815bfa56294d6f5fae511ca9f6057b55" }, { "signer_id": 2, - "signature": "027babf54a124fa0950f232fa7d0276e2871fd67daff919110ccefc99e8c0202ecdb5076f1017c8bf9d9d6783518083d52c8ac26621389b71a7c6a3b088252ef42" + "signature": "020f240a00bee3191d7461d15d472f49494a37b143984e86b40025f038d2e83022087dc19ab3fbd486b5011d82de6a1419f99583ad92767364bc14b4bcc8885046" }, { "signer_id": 3, - "signature": "0381ce5e780f8b306ea3af6a2c64b469e4c38e5d6bc96aa32e0672863bcd03898a8b8a261dcd5320dbfd31dfd4a2c01c279002d310900209483507fe9de9ac139d" + "signature": "027d0ccb7883d9d7084c9242c3cb40892ed8b77fd023891b181b75817f4d4832763ca8192b999f4d1375f1327cb37102a0f6c613c754c1f71ceb97e4a8eede51a6" }, { "signer_id": 4, - "signature": "03a945b9932f6e6ac2d572ab43b679615dfb10d69679d1e667b68f3bc77b80bb6ba8bb6137144f7aa7af9db910dfbe58afa5687fe0bcf8abf06a67e90602d2d47a" + "signature": "03e1b68e6fd2ea3476de49b36c0ef5a3ba5741a8a0380446be60dbce48a64fe077fe46e4efdbb9ff4155a7cdd51791943b88d33f0c445c18a03bf9fbc08f7d6ad4" }, { "signer_id": 5, - "signature": "03a4465ce3697bad87559bf75a16bd837d2826b32c141f462003ca24c658c24788c69f2ac9991b10f23731fb1bfd8e62170cac5528ca13ef1a8bfdf7a40bfbb8f5" + "signature": "03e206bf4a8081e4772a8d6f01f298d1aef72341d0587aea81ada85a9ec2c721565466d1610bfea27258262943b36204784e66de3a8b2a86b478a5c43b2185527b" }, { "signer_id": 6, - "signature": "0346412d18d070db59556e667c8112591ca7ab3345231f9cb96084e2dce7b739b25eb815b2ba05859b0d66c52effdb3ad49853213f51500b172a5d6e93113a3d84" + "signature": "03c83a5733a7a6782d0463472ab7bc80fd99105f99eb636f969ede40e8a8eea33f50513f3e914eca05af17aa7b0dd24f2b59b28826fd8ad9d8d7291e07001bae57" }, { "signer_id": 7, - "signature": "03dae4f34266c2ce268accbfc7cb3123c23950a27488c64f2aa64b3f12db4657fb9593d1e0591dcdf31593ad1c98dc65f2b3ff40c1bebb8172a0943bdc69ab8913" + "signature": "03c89c072390e1f0b60f69427e5148748ddda743e5188ba9ac7130f98073cbdbd344a2f5a9433bf897e91f44e3fb9b05a79ea06a71e3876a04a034bf0858fe8052" }, { "signer_id": 8, - "signature": "030e5a2bb9fd13bdc5816468fce6ef592bd7a2a5dbaf02c7974c6040d5fa17956cdeb486fe7a4c9b54240fb9c05078428dfbbf6ced110aef2323dd8e0f64dd7bc3" + "signature": "02e8746477742a8eb26e356a7de36a1b1a236f4ccca37e284c7404441214b1cd7323a3f986c92eb744ff09b6a625cbaaa21c3e4a11347396100abb770d488bbb7e" }, { "signer_id": 9, - "signature": "02aea5f43b21b586985fbe20fe86f45f78235d66a96d5e170ee755cf3be2956d779ca1c8646902fc4eb292a78af422b65019b47c958a25c5b4bd10339aee08a2f0" + "signature": "03ac0fd7234d3bc0fbb44d33903b32b06dbb94ffe75c32c5114c1a8e7ed313ff4a0abf60ef7464b27c9850becde32c545add3a6f1abbce2ae09cd7288c97d906cc" }, { "signer_id": 10, - "signature": "0224d6bdd3c2dbae0d3ffca09d706a7d0b6450f38edc978497181be7c06510aff4347687cd2fb52930f15e1d59347ec2a5e4e70f8735e1804d5022e91ecf9f2ae9" + "signature": "0322404e72249faeba1039d2c97bba013c783628dcf94f31d097300153e802fb84c1a8c42b2a1255f9b1b933ceeaaeeb30375fedcfb79c03f95dddffaf294a1221" }, { "signer_id": 11, - "signature": "03468d3766e8700bad4193e5beed6556b808e2df8f80b97fe28fb44380ec10e0a169a8989e84fd2986f03c201f1feb6d4cc4e6c95b2aa49e9d75844d6b4031b61b" + "signature": "020dc65c9ac444c51a5c1d3ce883cac0f0cc5e430936d7a96a1a373082f4f4cd0394eb2220a2fc84d45fa0aec5e043a28b8b90c6e687b66ae0290bfe5b32f2c135" }, { "signer_id": 12, - "signature": "0339c42bd4ec25759c8a630389b7e71a6f201b3a38adfe18082105bc7dbac4f5aaeaca52edab4a8e335c6c556abcb30279cc42c5b35926d2485847b366cbe7c3f4" + "signature": "024ff3f1290a46ccdb1f7470864d9e74e270b17a0ef9614d72b5f5a003925255e766d1f145a93ef1e2ce4d2b7841c1139a2e157f5c0ed31109dfafc191177bc5ad" }, { "signer_id": 13, - "signature": "024c25d61ba694b4d674f0e4614f87f86d337b9c78d070b25a6d8173ce05d01fb675c12baf22828712db6cae094b53900715a74b6def48eccf92d9a268c4a24143" + "signature": "028637750c99f20728d3fc963eef664f619cb534e0b3b154a8ba730b6cfb37b549fa73f881f28a0a9c886469365f332d1c03fad92ee5d36401adf195fe90438a14" }, { "signer_id": 14, - "signature": "03c8272010bfa2e14ea986511620e5f772b9ef58678b2fef702d4e70f428af77fac994cc93ca2956fdae8f12f6e4ae80441b8fc6d3c0b3fbe9f4887aa89d86331b" + "signature": "03522a9793f0f01b3fdaca06404acee275a1f0d65b7e7c501046fe944d0f2ae9f336482a2d51ff05c32e79e2fecce511eee8749cd11145e8d8f3e48608ef9627ec" } ] }, - "group_public_key": "0359d5d1ab443cda953b002b6dc12a11ba96e6f3aca7b8fe8d3e159ae1d56cde4b", - "recovery": { - "participant_id": 1, - "ciphertexts": [ - "68f1a4f3a1b132dce2a36e4463baf2241918986826d32bb5e29374db2a8cc1a69dfd61e6cefda4ba70bd4471113da46f", - "112de458c4a7d3f72b165723603c7d97f121a0c6eccf5b599a59680600a354c516ddf653651c17a559b8a1c572474e62", - "97c9c7b796bda9a0a458b1c17568ceb6564602168840aa02c2e66be77c4ffe1cf0e4f2fa79d7f623f8c054035f42b1f2", - "3fc08d5f03a9fbcc9b6a02f4be8f70032e115d88d2062166df86ff0213a0a5ec36187f52641dcf50925688c550ed0820", - "b86302bc16bbd3750486cd01d2501292e7d56a866bd6724a8ad0a26e9764222db396dc4c9c91112af2e1f1ec25404473", - "64182e75b7f126a8bcc5dec90ffded51e21f7bdb8a9c24b3795a14dfe00f9c0f9b4dab50995f6023510c8afc7672d904", - "2e31a834492c145e6726494cbd7f6ca1f6202fd69853539c18d813fe379c44df32efc1ab21cf090fd4c94e0bb3fdb59c", - "d23d0e189af314f25c0f28aa24943eecb62746b6beb805d1b7e17f1e454d6edd5ca8a4af6354ab289c064b3dd7cbd838", - "0878609704737084ba492d821dedd9f1835f4dc488ac5aa1a309cec0227035a406f6ac679f918b8b4691f5868fa18a3a", - "b4be12e10e8012f31acd9e671073066cc5fe67ede60e472017f06e8ad6c5311c86cb1af6d3e37b6c669ec4f37dbf6548", - "1c7206f6fe3b4662e1ef3aaf70e09fa073c1b7ae9f542a68f29ac68e0081d149abfd15f112c1d7e84981d9ef01db4488", - "45df99d313d832633fa08a9610932f6aafffe13f9059d4a3bbdd06868f840f48e5f05a3db0ac8fd0ea3597ad33709fe4", - "44b6eb6a4b4676a78edfe2c601d7c958ec6ce3013dbc9ff331ff688b892b6117f335957e2e892f5cab27b836c9ca0f40", - "8423f53c937087ef2f07186357a7a23c02dfc5775ab0072343a9b1d0bae008662adb3434d1a8f87e86bfbf16567b22f3" - ], - "recovered_secret_share": "6a230a7c1d0d83e59c6e26fbcc4be24c4a691b5f2f14a049154f88883faade9a", - "recovered_verification_share": "0201e0c204e450fa1025f793493a1f79260b5956cd73edd47883d8b15782e47ef6" - } + "group_public_key": "0359d5d1ab443cda953b002b6dc12a11ba96e6f3aca7b8fe8d3e159ae1d56cde4b" }, { "n": 3, "t": 2, - "context": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "session_tag": "434f434b5441494c2d444b472d544553542d564543544f522d322d4f462d33", + "context": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd8", + "extension": "1b8d8650b1b7cd498462e5b2da0888eace5afe4a147f5bd30d7278a205908495", "config": { "static_secret_keys": [ "b6d8938c60ba5cfbf0ba97ae1c3f99c7a58485344ed7d6f387dc35bc76cacea1", @@ -921,6 +1072,11 @@ "02fe2400b831d7dc120d4f1f49ede75956782e77ca92aa24f7d1cb88bc584dd1f6" ] }, + "payloads": [ + "0f8df2f59079008ebc2cb23b42caf064073aae4c2eda7a1e3aa21dcd808c82e5", + "0fcc38c15315812e2db82c261131255be27bc9e6cd4b3f4ec680056c49323a6e", + "eaa4e04f127d7e48db6f1d0022b198ddd00e00dee09211aab74d2b78220601bb" + ], "round1": [ { "participant_id": 1, @@ -929,11 +1085,19 @@ "0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e", "0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f1" ], - "pop": "03adb7b47336ac7c66f065e5963be8e2403e52134264fef03a9b654700df0ac457e4f93be87ee7a5efa216ecb73926a462caf865dec15ee7657518ea960d16d851", + "pop": "029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d9b3911f8be90e78a1307608a36b040b7a5e24099dca5c5675d29655e62e041a4", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98ef05ddfb1f4f0498f7723bcca609138ff67ca2d88eb0f07ab9f3378b0007aeb40ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "nonce": "9f362b57e2b37db15b74ffe5cbc41f2054add10b6e30edf1798a0d40b33b6cef", + "nonce_commitment": "029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864029b5bad0c439a28f288e0f8ba4c3e6f0efc2b81efb69209e1258e817ea927245d0236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd80236459a670916a3d2843b2347977fa73b178a3c0b736373e57f08a710bee86f9e0255492a86789b757bcbfdf199ed45846b9600ab4dadf5f6c0ac3b5337a74df0f102788f2de7349d17b58acff1943f13f360aff34ffc2fdb3c014c1742940e7810be", + "challenge": "2da8c6a4317ce5e00075124caa150b329f26803973c2c30c1ffbcd0bda222bb9" + }, "encrypted_shares": [ - "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", - "50162b60cefb0fa778966de5dcfa79b6046ad855a709fdc61ef253631575e2c3ce9048c42fe7c84583ff19d37ca8a775", - "be016f51b514b6bd413ab8053940454e068d69271cb5092dc0a229f544a9d134f72413b8ade30f4b21d10ca1f5485dd2" + "944a59446f203aee0c0ebe4107cc3c605ebbf3470364ecd74b5c7b001de178840f162b965a6d569f553f4ddbeca32fa018ffb6bd60466faf2144225b20c34e25ecbb87df2769db006aee6ac60be90526", + "9d5c20d5c3b43845febd8fe1c235fc870dc9a687d8c8f146985f8510c58d6e2946a9743d2c4a85509be949bf3bdd2fe5415cd3ecb97ff5f5cdce2648055c69e21387412fb9ee1c5e280fa10be8e2286c", + "a56fdcf433203d0ed1979df54aba263b82660f5c8de3302a62f2185d14bae7151453fa62a6927e139bda5a2899a9b111b8e07b30fa371e0641192a14b6414db425bab0e26213255a00107a7260d41fdb" ] }, { @@ -943,11 +1107,19 @@ "02672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c", "020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f" ], - "pop": "03b55ded99a60fe407ee51b4c340a586110892e15d7f7b13da965fd826b4525653c1265f7595bd061e024830051e42b0816ba3cdbf7bb49947106930c788aba7cb", + "pop": "036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b4475902387e2e6498997315ff4e981a7720b0796205ada27a4c9bc3afd49a4b97e0ea37e2", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a980ecfbdcc5ca424206a03459eec46420d68ffa9c4ca54bc18feac4dd4cc7940be0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "nonce": "9339e805c597b90f07a57e0449b9885b3c474735018f7624a5a176faa19e8833", + "nonce_commitment": "036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b447590238", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864036eaede09c631f2dd7a45c57a8812bc0a8ec1b4dd606f33163ccdf5b44759023802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802672e99ec6545be224a58a31fac1b5fe7707b7f6023351007bedee79ee2b74d7c020fc6eef9b1e79854fdb98c3af321425e78eea115b67c3e8712a72086fefc7b9f02103197f4e9f391a01d3ccbab9c06a5588cce9fa0f9fee420ace45441a3c4d2b8", + "challenge": "c9405f0a5c26a72b564a492b4eb90932f64151761255c09a11866ac04ae8d63c" + }, "encrypted_shares": [ - "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", - "a45a839733537744b0cbdeeae90f14f659458425eb603ae69bd867e6098367d1a9982b249cb30daebe150570c5e7fa4d", - "f9f29daaa5cbb0e2917e71b8bfe5f2baa847307b5d70b319d5f7731bbb7075adc4ad244264b85fa4d0bf9299ae11a529" + "68f343954dfa1298fab846f3b7859861cf65242b606429a8dc3bec4253f2959026e5173c8089f22171e1233ba20f8606fda5414ee56427f47d298a1f33cd1a419570b748bf78d015b6881a5bc012f59e", + "3ec47bc60f2132ad43800c29684d64e2ed0ba6ee9f2fb445787e3e8b176c619591ee6f9d53c6d8919291a02a463bba7f093456ec2565d7526e957656567744d3cdaf907c0a77dde67ae6a2d19778ce35", + "d6c737b54baf32175a85ce8c8f30ff7219034d056367f487fe31ddf05882039982074c7d9d6b9f0f91edf056de96e1ffcee685ca77a9d6a4ac3bd6baabf5e5b38d547779302da8f7bd29cd83b6e046f0" ] }, { @@ -957,11 +1129,19 @@ "02fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b4", "02dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d0501" ], - "pop": "025ab99ca736f8ce1203687a626364744c3ccfeda9b63e7313a8b969ac62aede0bc0943c103c540da236ba575fb88921221ebc85e1ed0f432408f8ad16896dd878", + "pop": "03d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b2ec444a7a43e1a3f620f863b39fba65d4b5cfa706dd6ad1435304608bec2ef851", + "pop_intermediate": { + "message": "0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "nonce_input": "667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a98667fa7c9e3f33125f8e4bf9fca312f980b88854ad2d4205f2d4aff54f63f3a986491c1b93019c341d13f9a9d118e473f515de60022b72134a63fffe19cc4f03b0ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "nonce": "8d6347e328d4fea3d0697999d7ccf0069cd0d945655f04600a6e9575f8a056c6", + "nonce_commitment": "03d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b2", + "challenge_input": "804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd399864804bca3c1310e5188bc78147b895726dc436a4e1d0618152838739d5fd39986403d6f9c4e64fd05b1fdfe47ca41e483b3eaca9e8a8f91963a95ff7c29e2d11b5b202fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b40ca5e693787bf353a1f5f167e32c09acbbf720c80fd2eeda6e33d7bb42a81dd802fb299d878c07c2cea75b8d340e13b0af5bfcd3338d796c39bc2e97135998b2b402dd445578f7077aa9b1925c4971aaee7141eae5a28df174f724944dfb269d05010306ea02d9b59a35991dbf1522aef55cec80f3c28f9d9d140a0f864cea1b3beb86", + "challenge": "cfab1bfe17c6f6a319725dbde0ce24380cd4d1163ef6c56dbc560408b33d7db3" + }, "encrypted_shares": [ - "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a", - "11173ed71d7ad60daf3720734ad96cad47b58ee1548e65fa4903e0e5a7e94fbeae3a8076064895bc7bdc201df4de5236", - "d5aa7efab9d2d6e32c2039bd01eb893696930bf5c3e6449f9abc82a4482604680ba2373fad594aea7754960b3064e88b" + "dcae93813a7b4aaea0779ba5e63afd8d334dd8642ad612ef6d8721994cf11496cdb9a120175ce3b6403f1bdc7f98fe8b4ba674d5da425b55312bec1ad095b03ce34ca938580edbc8c0696bde4010b640", + "e5357c60329c0b7086c81b952a0f20f0e959c27aa300646778b948d0c683370521466445588effa7576e38b725d7b3374fee95bbe2c78ce029ec9fdbb05e8e39a7c8108c5a8bafcf9a3513f2722f7f63", + "e533f3f84e232099c48a56f4b2f4c6685bf56105cc24741478ab93b86b2d736529093686f39773ad60074163510709eb710330a225e9efafcb314dc8750e74c6b754789ddcc232abb8831df13a9c5e2b" ] } ], @@ -983,19 +1163,19 @@ } ], "round3": { - "transcript_hash": "0d785c00ecb6bde350ea1800ca69121c82be87ace2d7b691cb3d4c91566994b2", + "transcript_hash": "1494f91178f9bdccb340aea088f353c7ef2b21acb14d7de9b8c68ec171880516", "signatures": [ { "signer_id": 1, - "signature": "02bab75a5155f867dfb974424b9993965f8e86929253f3630d7c840a9d381e9b1a1e1b1e11153dac5e3a1ac8ad0f12588e10822068435b26bcbc654bc1ee2b1c4e" + "signature": "03d02d53238c256e3e95b6a197d3538a713c7c45e2502079511c20e9c2cc36e1136c7e4db2001a18d4b24d9a0116e3f38a26593c6410fdb3102b123c67a54cde0f" }, { "signer_id": 2, - "signature": "025a191fe08f7d0248f8bc69d016ceaa5316430e13b8056e192bd8f80c3017d4bbf658214c1ee2e184add34c07a73ee5f8da3eabe849b320a71e187769a54e1e61" + "signature": "022cb80f375efa8c964b959392ea41a823a9994a0b2bd23a6404a2842ee91ff3e7f3c32ad38b70d5d7fbfa12d580e067bba14b37d6ac48bdad74b56ca866cf998d" }, { "signer_id": 3, - "signature": "0388ea3c84b7ca9a7a4332227442495a5447d9832819817f48cfcedcbf8f44e672d61df10dd5ba4b979ebc8e38ed7b6baedc1b07703161d3539023cfcc2f80ddea" + "signature": "023122abd75b1cc1a74a1bff90df66a43905cf290894b01e5accdbc20755000891b0531b50db24496fdad963f228cd35fd46385cd47277351c5b1651fb09a5d74e" } ] }, @@ -1003,9 +1183,9 @@ "recovery": { "participant_id": 1, "ciphertexts": [ - "2bdd90da132bb078da821d243212e080d79f4e673872857185e84b604a1cc650615d7d8fbfbc8cbb485b5dd361c93bba", - "a14ec908c3cc4ac2805846ca05a20a8244fb7ce3e889ae94ab00768c8bf0e4d309986b00a99484938cb0dfcdc7746636", - "f6f277baa4fb9c0affec954d3f5cb147d804b1156b66fb349400adb7908bafc4e6abd1fa76d8a081185791d30bef363a" + "944a59446f203aee0c0ebe4107cc3c605ebbf3470364ecd74b5c7b001de178840f162b965a6d569f553f4ddbeca32fa018ffb6bd60466faf2144225b20c34e25ecbb87df2769db006aee6ac60be90526", + "68f343954dfa1298fab846f3b7859861cf65242b606429a8dc3bec4253f2959026e5173c8089f22171e1233ba20f8606fda5414ee56427f47d298a1f33cd1a419570b748bf78d015b6881a5bc012f59e", + "dcae93813a7b4aaea0779ba5e63afd8d334dd8642ad612ef6d8721994cf11496cdb9a120175ce3b6403f1bdc7f98fe8b4ba674d5da425b55312bec1ad095b03ce34ca938580edbc8c0696bde4010b640" ], "recovered_secret_share": "78402404ae73ea8795a8af5d5fe1caae5a71abdb62b52bd4be279a05df62bb26", "recovered_verification_share": "02f6c8494a0e242d73696a1635b3839a54a55dc471d3465e719fedcc8bf8f07f11"