Skip to content

Commit 58a35d1

Browse files
committed
add abv
1 parent 3a0d414 commit 58a35d1

File tree

15 files changed

+5842
-13
lines changed

15 files changed

+5842
-13
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ members = [
1212
"solution/key_tool_box/hierarchical_deterministic_key",
1313
"solution/selective_certificate_disclosure",
1414
"solution/verifiable_confidential_ledger",
15+
"solution/anonymous_bounded_voting",
1516
]

protos/solution/abv/abv.proto

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
// Copyright 2020 WeDPR Lab Project Authors. Licensed under Apache-2.0.
2+
3+
syntax = "proto3";
4+
5+
package com.webank.wedpr.abv.proto;
6+
option java_package = "com.webank.wedpr.abv.proto";
7+
option java_multiple_files = true;
8+
9+
// Counter Secret value
10+
message CounterSecret {
11+
bytes poll_secret_share = 1;
12+
}
13+
14+
message CounterSystemParametersShareRequest {
15+
string counter_id = 1;
16+
bytes poll_point_share = 2;
17+
}
18+
19+
message CounterSystemParametersStorage {
20+
repeated CounterSystemParametersShareRequest counter_parameters_request = 1;
21+
}
22+
23+
// Voter Secret value
24+
message VoterSecret {
25+
bytes vote_secret = 1;
26+
}
27+
28+
message RegistrationRequest {
29+
RegistrationBlindingPoint weight_point = 1;
30+
}
31+
32+
message RegistrationBlindingPoint {
33+
bytes blinding_poll_point = 1;
34+
bytes blinding_basepoint_g2 = 2;
35+
}
36+
37+
message RegistrationResponse {
38+
uint32 voter_weight = 1;
39+
Ballot ballot = 2;
40+
bytes signature = 3;
41+
Ballot zero_ballot = 4;
42+
}
43+
44+
message Ballot {
45+
bytes ciphertext1 = 1;
46+
bytes ciphertext2 = 2;
47+
}
48+
49+
message VoteChoice {
50+
string candidate = 1;
51+
uint32 value = 2;
52+
}
53+
54+
message VoteChoices {
55+
repeated VoteChoice choice = 1;
56+
}
57+
58+
message CandidateBallot {
59+
string candidate = 1;
60+
Ballot ballot = 2;
61+
}
62+
63+
message VoteStorage {
64+
bytes signature = 1;
65+
Ballot blank_ballot = 2;
66+
Ballot rest_ballot = 3;
67+
repeated CandidateBallot voted_ballot = 4;
68+
}
69+
70+
message CandidateList {
71+
repeated string candidate = 1;
72+
}
73+
74+
message SystemParametersStorage {
75+
bytes poll_point = 1;
76+
CandidateList candidates = 2;
77+
}
78+
79+
message BallotProof {
80+
bytes format_proof = 1;
81+
bytes either_equality_proof = 2;
82+
}
83+
84+
message CandidateBallotProofPair {
85+
string candidate = 1;
86+
BallotProof value = 2;
87+
}
88+
89+
// Do not use Map, cause unordered in blockchain
90+
message VoteRequest {
91+
VoteStorage vote = 1;
92+
repeated CandidateBallotProofPair ballot_proof = 2;
93+
bytes range_proof = 3;
94+
bytes sum_balance_proof = 4;
95+
}
96+
97+
message DecryptedResultPartStorage {
98+
CountingPart blank_part = 1;
99+
repeated StringToCountingPartPair candidate_part = 2;
100+
}
101+
102+
message StringToCountingPartPair {
103+
string key = 1;
104+
CountingPart value = 2;
105+
}
106+
107+
message CountingPart {
108+
string counter_id = 1;
109+
bytes c2_r = 2;
110+
bytes equality_proof = 3;
111+
}
112+
113+
message VoteResultStorage {
114+
repeated StringToInt64Pair result = 1;
115+
}
116+
117+
message StringToInt64Pair {
118+
string key = 1;
119+
int64 value = 2;
120+
}

0 commit comments

Comments
 (0)