@@ -24,7 +24,28 @@ This document describes a Catalyst V2 vote transaction structure.
2424It is a Catalyst v2 voting transaction
2525defined on top the [ "Generalized Vote Transaction"] ( ./gen_vote_tx.md#specification ) structure.
2626
27- Following that spec need to define a format of ` choice ` , ` proof ` and ` prop_id ` .
27+ Following that spec need to define a ` choice ` , ` proof ` and ` prop-id ` .
28+
29+ Also needed to define an ` event ` field,
30+ so for both public and private transaction it must be the following:
31+
32+ ``` CDDL
33+ event = {
34+ "brand_id": UUID,
35+ "campaign_id": UUID,
36+ "election_id": UUID,
37+ "category_id": UUID,
38+ }
39+ ```
40+
41+ * ` brand_id ` - a unique identifier which represents a "brand" who is running the voting,
42+ e.g. Catalyst, Midnight.
43+ * ` campaign_id ` - a unique identifier which defines a "campaign" of voting,
44+ e.g. "treasury campaign".
45+ * ` election_id ` - a unique identifier which defines an election,
46+ e.g. "Catalyst Fund 1", "Catalyst Fund 2".
47+ * ` category_id ` - a unique identifier which defines a voting category as a collection of proposals,
48+ e.g. "Development & Infrastructure", "Products & Integrations".
2849
2950### Public vote
3051
@@ -36,6 +57,11 @@ Following that spec need to define a format of `choice`, `proof` and `prop_id`.
3657 ```
3758<!-- markdownlint-enable max-one-sentence-per-line code-block-style -->
3859
60+
61+ ``` CDDL
62+ vote-type = #6.37(h'8DE5586CE9984B9587427BE3C8592803') ; 8de5586c-e998-4b95-8742-7be3c8592803
63+ ```
64+
3965### Private vote
4066
4167<!-- markdownlint-disable max-one-sentence-per-line code-block-style -->
@@ -46,17 +72,20 @@ Following that spec need to define a format of `choice`, `proof` and `prop_id`.
4672 ```
4773<!-- markdownlint-enable max-one-sentence-per-line code-block-style -->
4874
49- #### Vote generation
75+ ``` CDDL
76+ vote-type = #6.37(h'E78EE18DF38044C1A85280AA6ECB07FE') ; e78ee18d-f380-44c1-a852-80aa6ecb07fe
77+ ```
78+
79+ #### Vote and Proof generation
5080
51- To generate a cryptographically secured ` private_choice ` and ` zk_proof ` parts you can follow this [ spec] ( ./crypto.md#vote ) .
81+ To generate a cryptographically secured ` choice-data ` and ` zk_proof ` parts you can follow this [ spec] ( ./crypto.md#vote ) .
5282Important to note,
5383that as part of [ * initial setup* ] ( ./crypto.md#initial-setup ) of the voting procedure,
5484the following properties are used:
5585
56- 1 . Each proposal,
57- defined by the ` vote_plan_id ` and ` proposal_index ` , defines a number of possible options.
86+ 1 . Each proposal, defined by the ` proposal ` field, defines a number of possible options.
58872 . [ ristretto255] as a backend cryptographic group.
59- 3 . A commitment key $ck$ defined as a [ BLAKE2b-512] hash of the ` vote_plan_id ` bytes.
88+ 3 . A commitment key $ck$ defined as a [ BLAKE2b-512] hash of the ` proposal ` bytes.
6089
6190## Rationale
6291
0 commit comments