You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

164 lines
7.7 KiB

{
"max_participants": 5,
"min_participants": 3,
"group_public_key": "037940B3ED1FDC360252A6F48058C7B94276DFB6AA2B7D51706FB48326B19E7AE1",
"secshare_p1":"81D0D40CDF044588167A987C14552954DB187AC5AD3B1CA40D7B03DCA32AFDFB",
"identifiers": [1, 2, 3, 4, 5],
"pubshares": [
"02BB66437FCAA01292BFB4BB6F19D67818FE693215C36C4663857F1DC8AB8BF4FA",
"02C3250013C86AA9C3011CD40B2658CBC5B950DD21FFAA4EDE1BB66E18A063CED5",
"03259D7068335012C08C5D80E181969ED7FFA08F7973E3ED9C8C0BFF3EC03C223E",
"02A22971750242F6DA35B8DB0DFE74F38A3227118B296ADD2C65E324E2B7EB20AD",
"03541293535BB662F8294C4BEB7EA25F55FEAE86C6BAE0CEBD741EAAA28639A6E6"
],
"secnonce_p1":"96DF27F46CB6E0399C7A02811F6A4D695BBD7174115477679E956658FF2E83D618E4F670DF3DEB215934E4F68D4EEC71055B87288947D75F6E1EA9037FF62173",
"pubnonces": [
"02FCDBEE416E4426FB4004BAB2B416164845DEC27337AD2B96184236D715965AB2039F71F389F6808DC6176F062F80531E13EA5BC2612B690FC284AE66C2CD859CE9",
"02D26EF7E09A4BC0A2CF295720C64BAD56A28EF50B6BECBD59AF6F3ADE6C2480C503D11B9993AE4C2D38EA2591287F7B744976F0F0B79104B96D6399507FC533E893",
"03C7E3D6456228347B658911BF612967F36C7791C24F9607ADB34E09F8CC1126D803D2C9C6E3D1A11463F8C2D57B145A814F5D44FD1A42F7A024140AC30D48EE0BEE",
"036409E6BA4A00E148E9BE2D3B4217A74B3A65F0D75489176EF8A7D2BD699B949002B1E9FA2A8AE80CD7CE1593B51402B980B56896DB5B5C2B07EDA2C0CFEB08AD93",
"02464144C7AFAEF651F63E330B1FFF6EEC43991F9AE75AE6069796C097B04DAE720288B464788E5DFC9C2CCD6A3CCBBED643666749250012DA220D1C9FC559214270"
],
"aggnonces": [
"02047C99228CEA528AE200A82CBE4CD188BC67D58F537D1904A16B07FCDE07C3A6038708199DFA5BC5C41A0DD0FBD7D0620ADB4AC9991F7DB55A155CE9396AA80D1A",
"03AB37C47419536990037B903428008878E4F395823A135C2B39E67FA850CFF41F028967ECFE399759125F59F7142B6580D91F70DE1C9E9C6B0F56754B64370A4438",
"0353365AF75F7C246089940D57D3265947A1D27576E411AE9C98702516C72DB51B02F5483E63F474BDD8EAC03F99276ED5A2ED31786F5B0F1A8706BE7367BC1D4555"
],
"tweaks": [
"E8F791FF9225A2AF0102AFFF4A9A723D9612A682A25EBE79802B263CDFCD83BB",
"AE2EA797CC0FE72AC5B97B97F3C6957D7E4199A167A58EB08BCAFFDA70AC0455",
"F52ECBC565B3D8BEA2DFD5B75A4F457E54369809322E4120831626F290FA87E0",
"1969AD73CC177FA0B4FCED6DF1F7BF9907E665FDE9BA196A74FED0A3CF5AEF9D",
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141"
],
"msg": "F95466D086770E689964664219266FE5ED215C92AE20BAB5C9D79ADDDDF3C0CF",
"valid_test_cases": [
{
"id_indices": [1, 2, 0],
"pubshare_indices": [1, 2, 0],
"pubnonce_indices": [1, 2, 0],
"tweak_indices": [],
"is_xonly": [],
"aggnonce_index": 0,
"signer_index": 2,
"expected": "DEDAA44E6DB7FF1B40D8CBAA44DF3F8C80BD7CEC6A21AE22F34ED7ABC59E2AEC",
"comment": "No tweak. The expected value (partial sig) must match the signing with untweaked group public key."
},
{
"id_indices": [1, 2, 0],
"pubshare_indices": [1, 2, 0],
"pubnonce_indices": [1, 2, 0],
"tweak_indices": [0],
"is_xonly": [true],
"aggnonce_index": 0,
"signer_index": 2,
"expected": "00A84851A7D3F53B94FDFDE0BE6C6DCE570B7FF27E8B77FDF75AFF52066F42EE",
"comment": "A single x-only tweak"
},
{
"id_indices": [1, 2, 0],
"pubshare_indices": [1, 2, 0],
"pubnonce_indices": [1, 2, 0],
"tweak_indices": [0],
"is_xonly": [false],
"aggnonce_index": 0,
"signer_index": 2,
"expected": "FC2D7852AAEF8F3C229FEC7E6B496999C52857387E4274CD2F7625CD4B262D73",
"comment": "A single plain tweak"
},
{
"id_indices": [1, 2, 0],
"pubshare_indices": [1, 2, 0],
"pubnonce_indices": [1, 2, 0],
"tweak_indices": [0, 1],
"aggnonce_index": 0,
"is_xonly": [false, true],
"signer_index": 2,
"expected": "1634928A5951F23E77DB9D6171E89A04E55B2BC07A492CFE68B611303C96957A",
"comment": "A plain tweak followed by an x-only tweak"
},
{
"id_indices": [1, 2, 0],
"pubshare_indices": [1, 2, 0],
"pubnonce_indices": [1, 2, 0],
"tweak_indices": [0, 1, 2, 3],
"aggnonce_index": 0,
"is_xonly": [true, false, true, false],
"signer_index": 2,
"expected": "4252C4EA9641F1B8C502F3B63C3D0AFEF3274CFE7C70D94AE2F2DC54FA16D216",
"comment": "Four tweaks: x-only, plain, x-only, plain. If an implementation prohibits applying plain tweaks after x-only tweaks, it can skip this test vector or return an error."
},
{
"id_indices": [1, 2, 0],
"pubshare_indices": [1, 2, 0],
"pubnonce_indices": [1, 2, 0],
"tweak_indices": [0, 1, 2, 3],
"aggnonce_index": 0,
"is_xonly": [false, false, true, true],
"signer_index": 2,
"expected": "CF079FD835F00CF6A737FDC19D602AA445C95825B6A5D1C0FFB32A848427F49E",
"comment": "Four tweaks: plain, plain, x-only, x-only."
},
{
"id_indices": [0, 1, 2],
"pubshare_indices": [0, 1, 2],
"pubnonce_indices": [0, 1, 2],
"tweak_indices": [0, 1, 2, 3],
"aggnonce_index": 0,
"is_xonly": [false, false, true, true],
"signer_index": 0,
"expected": "CF079FD835F00CF6A737FDC19D602AA445C95825B6A5D1C0FFB32A848427F49E",
"comment": "Order of the signers shouldn't affect tweaking. The expected value (partial sig) must match the previous test vector."
},
{
"id_indices": [0, 1, 2, 3],
"pubshare_indices": [0, 1, 2, 3],
"pubnonce_indices": [0, 1, 2, 3],
"tweak_indices": [0, 1, 2, 3],
"aggnonce_index": 1,
"is_xonly": [false, false, true, true],
"signer_index": 0,
"expected": "22B8AE565FB2A52E07F1D6D0B5F85DD16932ADF77C0D61C473554133C22EE617",
"comment": "Number of the signers won't affect tweaking but the expected value (partial sig) will change because of interpolating value."
},
{
"id_indices": [0, 1, 2, 3, 4],
"pubshare_indices": [0, 1, 2, 3, 4],
"pubnonce_indices": [0, 1, 2, 3, 4],
"tweak_indices": [0, 1, 2, 3],
"aggnonce_index": 2,
"is_xonly": [false, false, true, true],
"signer_index": 0,
"expected": "7BCA92625F1C83D1EE6A855A198D25410BBE3867E2B61400A02D12BA2D6E2384",
"comment": "Tweaking with maximum possible signers"
}
],
"error_test_cases": [
{
"id_indices": [1, 2, 0],
"pubshare_indices": [1, 2, 0],
"tweak_indices": [4],
"aggnonce_index": 0,
"is_xonly": [false],
"signer_index": 2,
"error": {
"type": "value",
"message": "The tweak must be less than n."
},
"comment": "Tweak is invalid because it exceeds group size"
},
{
"id_indices": [1, 2, 0],
"pubshare_indices": [1, 2, 0],
"tweak_indices": [0, 1, 2, 3],
"aggnonce_index": 0,
"is_xonly": [false, false],
"signer_index": 2,
"error": {
"type": "value",
"message": "The tweaks and is_xonly arrays must have the same length."
},
"comment": "Tweaks count doesn't match the tweak modes count"
}
]
}