Pregled i odluke
MaksimirGlasanjeV1: plan, odluke, stanje, otvorena pitanja
# Glasanje javnosti na Gnosis Chainu
Sažetak sesije, zamke i otvorene stavke: 2026-09-26-glasanje-onchain.md.
Status 26. 9. 2026.: MaksimirGlasanjeV1 je prošao 6 krugova audita (47 testova, 100 % pokrivenosti,
23/23 mutanta ubijena, 800 fuzz koraka), radi na Chiadu (testnet) i prošao je E2E kroz stvarni
kod relayera. Na Gnosis mainnet još nije deployan. Web još nije spojen; plan spajanja s fazom 1
je u 08 i implementiran je (lokalno + Chiado, 26. 9.; produkcija čeka ok). Web ostaje Vite + Worker (Astro je odbačen,
odluka).
Faza 1 (glasanje-kako-radi.md) drži listiće u Postgresu, a operater baze vidi sve. U V1 glasačev preglednik izrađuje ZK dokaz za svaki listić. Ugovor ga provjerava i broji uživo, a relayer na Cloudflare Workeru samo plaća gas za gotov paket. Glasač ne treba novčanik ni xDAI.
# Dokumenti
| # | Dokument | Sadržaj |
|---|---|---|
| 6 | 06-kontrola-glasaca.md | glasač ima kontrolu nad svojim glasom: tko drži koji ključ, tko što može i ne može, granice, dokazi s Chiada |
| 8 | 08-integracija-s-fazom-1.md | plan spajanja s fazom 1: redoslijed (Chiado → Gnosis), registrar, relayer, web, dan prijelaza, izvor rezultata, /g/<id>, povratak, E2E, otvorena pitanja |
| 7 | 07-verzioniranje.md | V1, V2, V3… bez proxyja, zamrznut izvor, selidba listića samo uz glasačev dokaz |
| 1 | 01-arhitektura.md | ugovor V1 funkciju po funkciju, poruke, zbroj, prijelaz s faze 1 |
| 2 | 02-relayer-i-gas.md | zašto ne Safe/Gelato sponzorstvo, relayer, izmjereni gas, faucet |
| 3 | 03-deploy-runbook.md | Chiado (napravljeno) i Gnosis (sljedeće), korak po korak |
| 4 | 04-web-i-baza.md | što treba u webu i u domovina-api (registrar); redoslijed i prijelaz su u 08 |
| ADR | adr/0001 | ključ glasača: 24 riječi za oporavak + passkey (PRF) za svakodnevno otključavanje |
| R | istrazivanja/ | EIP-7702 + passkey na Gnosisu umjesto Safea (provjereno na lancu) |
| A | audit/ | audit: metode, checklista napada, nalazi i popravci, krugovi |
| 5 | 05-sljedece-faze.md | anonimni upis, ZK-JWT bez registrara, MACI, vlastiti krug |
# Sažetak odluka
| Odluka | Izbor | Zašto |
|---|---|---|
| Mreža | Gnosis Chain (100), test na Chiadu (10200) | EVM, gas u xDAI, cijene u djelićima centa; Semaphore v4 je već na obje |
| Listić | Semaphore ZK dokaz iz preglednika, poruka = hash listića + revizija + ugovor | relayer ne može ništa promijeniti; operater ne zna čiji je koji listić |
| Zbroj | na lancu, uživo (results()) |
provjerljiv bez nas |
| Pravo glasa | registrar (domovina.ai) potpisuje EIP-712 Register(commitment) nakon eOsobne, jednom po osobi |
jedino mjesto povjerenja; ne može glasati ni vidjeti listiće |
| Gas | vlastiti relayer (Cloudflare Worker) bez ikakve uloge u ugovoru | Safeovo sponzorstvo vrijedi samo za Safe račune; paket može poslati i bilo tko drugi |
| Nadogradnja | bez proxyja; V2, V3… kao novi ugovori, selidba uz glasačev dokaz | vlasnik ne može promijeniti pravila postojećih listića |
| Izvor | zamrznut: chain/contracts/v1/ + manifest + CI + verificiran uz adresu |
ono što je deployano ostaje čitljivo zauvijek |
| Osobni podaci | nikad na lancu | samo commitmenti, nullifieri, bodovi i dokazi |
# Što je gotovo
| Dio | Mjesto | Provjera |
|---|---|---|
| Ugovor V1 | chain/contracts/v1/MaksimirGlasanjeV1.sol |
47 testova s pravim Groth16 dokazima; 100 % naredbi, grana, funkcija i linija; 23/23 mutanta ubijena; audit |
| Klijent (kripto u pregledniku) | chain/client/ |
isti hash poruke kao ugovor (test); grupa s lanca uz provjeru korijena |
| Relayer | web/worker/relayer/ (ruta /relayer/<chainId>/… Workera maksimir) |
8 testova, pravi tok na Chiadu |
| Spajanje s fazom 1 | 08: baza i registrar (domovina-api), web tok, snapshot v3, verify --chain |
E2E u pregledniku 33/33 na Chiadu; SQL 15, Deno 7, Python 9 testova |
| Vlasnik na Chiadu | Safe 2/3 0x2B7C…64e9 |
1 potpis i stari vlasnik odbijeni, 2 potpisa rade |
| Deploy + manifest | chain/scripts/deploy-v1.ts |
deployments/chiado/v1.json |
| Zamrznut izvor | chain/scripts/check-frozen.mjs, .github/workflows/chain.yml |
isprobano u oba smjera: nepromijenjen izvor prolazi, jedna promjena pada |
| Faucet bez preglednika | chain/scripts/faucet-chiado.mjs |
0,001 xDAI stiglo iz prvog pokušaja |
| Chiado E2E | chain/scripts/e2e-chiado.ts |
registracija, listić, izmjena, objava; tri podmetanja odbijena |
Gnosis V1 (26. 9. 2026.): 0x812960FA1120121DEd82A8806aECE93dcf49E869,
vlasnik Safe 2/3 0xfb1b…c576, izvor Sourcify exact_match, tag glasanje-v1-gnosis.
Chiado V1: 0xe7903145c8F2401fC16D78d9788D34beE0c3e029
(verificiran izvor). Testni deployer i sponzor:
0x408d…d30C.
# Što preostaje
- Odluke (vidi niže).
- Registrar u
domovina-api: edge funkcija koja nakon eOsobne potpisujeRegisterjednom po osobi (04). - Gnosis mainnet: commit, deploy, verifikacija, git tag
glasanje-v1-gnosis, Worker (03). - Web (Vite + Worker): ključ, dokaz, relayer, rezultati s lanca (04, 08).
- Prijelaz s faze 1: faza 1 se zamrzava uz završni OTS snapshot, listići se prenose uz glasačev ključ, a glasanje se nastavlja na lancu (08).
# Otvorena pitanja za Matiju
- Vlasnik: novi Safe 2/3 s istim potpisnicima kao MPT Safe?
- Javnost listića tijekom glasanja: u V1 je svaki listić javan pod nullifierom čim je predan. To je cijena zbroja provjerljivog uživo. Alternativa je da relayer skuplja pakete i šalje ih u satnim serijama, što smanjuje povezivanje po vremenu. Vidi 06.
- Izgubljen ključ: listić ostaje zamrznut, bez oporavka preko nas. Je li to prihvatljivo?
- Kompajler: V1 je na solc 0.8.28 (Chiado). Prije mainnet deploya može se prijeći na najnoviji 0.8.x, ali to znači novi Chiado deploy. Vidi 03.