Skip to content

Commit 6d3aecd

Browse files
authored
Update README.md
1 parent f527c11 commit 6d3aecd

File tree

1 file changed

+64
-28
lines changed

1 file changed

+64
-28
lines changed

src/audit/README.md

Lines changed: 64 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,93 @@
1-
# Audit Tooling:
1+
# Audit Tooling
22

3-
## Offline audit
3+
Independent verification tools for Catalyst voting results. These tools allow anyone to audit and verify the integrity of voting outcomes without needing to trust centralized authorities.
44

5-
### Download Fund State
6-
Download historical fund state from [*here*](https://github.com/input-output-hk/catalyst-core) in order to replay and audit the voting event.
5+
## Quick Start
76

8-
The official published results can be found in this file in the form of **activevoteplans.json**.
7+
### 1. Download Fund State
98

10-
**activevoteplans.json** = FINAL RESULTS.
9+
Download historical fund state from [here](https://github.com/input-output-hk/catalyst-core) to replay and audit the voting event.
1110

12-
If you would like to re-generate **activevoteplans.json** yourself, via a live node and historical fragments - [*see here for instructions*](./balance/README.md)
11+
The official published results are found in **activevoteplans.json**.
1312

14-
If not, you can begin the audit with the following steps.
13+
**activevoteplans.json** = FINAL RESULTS.
1514

16-
*Example usage:*
15+
### 2. Build the Audit Tool
1716

18-
```
17+
```bash
1918
cargo build --release -p audit
20-
```
19+
```
2120

22-
*Cross reference offline tallies with published catalyst tallies.*
21+
### 3. Run Offline Audit
2322

24-
```bash
23+
#### Option A: Cross-reference with Official Results
24+
25+
Compare your audit results with published Catalyst tallies:
2526

27+
```bash
2628
OFFICIAL_RESULTS=/tmp/activevoteplans.json
2729
BLOCK0=/tmp/fund9-leader-1/artifacts/block0.bin
2830
FRAGMENTS_STORAGE=/tmp/fund9-leader-1/persist/leader-1
2931

3032
./target/release/offline --fragments $FRAGMENTS_STORAGE --block0 $BLOCK0 --official-results $OFFICIAL_RESULTS
31-
3233
```
3334

34-
35-
*Generate encrypted tally with gamma scaling*
36-
35+
#### Option B: Generate Encrypted Tally with Gamma Scaling
3736

3837
```bash
39-
4038
BLOCK0=/tmp/fund9-leader-1/artifacts/block0.bin
4139
FRAGMENTS_STORAGE=/tmp/fund9-leader-1/persist/leader-1
4240
GAMMA=0.5
43-
PRECISION=100
44-
41+
PRECISION=5
4542

46-
./target/release/offline --fragments $FRAGMENTS_STORAGE --block0 $BLOCK0 --gamma $GAMMA --precision $PRECISION
43+
./target/release/offline --fragments $FRAGMENTS_STORAGE --block0 $BLOCK0 --gamma $GAMMA --precision $PRECISION
4744
```
4845

49-
This will create three files:
50-
- *ledger_after_tally.json* **(decrypted ledger state after tally)** *should match official results!*
51-
- *ledger_before_tally.json* **(encrypted ledger state before tally)**
52-
- *decryption_shares.json* **(decryption shares for each proposal)**
46+
### 4. Generated Files
47+
48+
The offline audit creates three critical files:
5349

54-
[*See here for next steps of audit process*](src/tally/README.md)
50+
- **ledger_after_tally.json** - Decrypted ledger state after tally *(should match official results!)*
51+
- **ledger_before_tally.json** - Encrypted ledger state before tally
52+
- **decryption_shares.json** - Decryption shares for each proposal
5553

56-
### Find my vote
57-
[*See here for instructions on how to find your voting history*](src/find/README.md)
54+
---
55+
56+
## ➡️ **NEXT STEP: Verify Individual Proposals**
57+
58+
**🔍 [Complete the audit process - Verify specific proposal results →](src/tally/README.md)**
59+
60+
After generating the audit files above, the next crucial step is to **independently verify individual proposal results** using cryptographic proof. This step:
61+
62+
-**Validates each proposal's decryption** was performed correctly
63+
-**Provides mathematical proof** of result integrity
64+
-**Requires no trust** in election officials or committee members
65+
-**Can be run by anyone** using publicly available data
66+
67+
**Why this step is essential:**
68+
- The offline audit gives you the raw encrypted data
69+
- The tally verification proves the decryption was legitimate
70+
- Together, they provide complete end-to-end verification
71+
72+
---
73+
74+
## Additional Tools
75+
76+
### Find Your Vote
77+
[See instructions on how to find your voting history →](src/find/README.md)
78+
79+
### Regenerate Results from Live Node
80+
If you want to regenerate **activevoteplans.json** yourself via a live node and historical fragments:
81+
[See instructions here →](./balance/README.md)
82+
83+
## Overview
84+
85+
This audit tooling provides:
86+
87+
1. **Offline Verification** - Replay voting events from blockchain data
88+
2. **Cryptographic Proof** - Mathematically verify decryption integrity
89+
3. **Individual Vote Tracking** - Find and verify your specific votes
90+
4. **Complete Transparency** - No black boxes or trusted components
91+
92+
The audit process is designed to be completely independent and reproducible, ensuring that anyone can verify Catalyst voting results without needing to trust any centralized authority.
93+
```

0 commit comments

Comments
 (0)