TamgaNetwork
Ähli ýazgylar
Tehniki·6 min

Selective disclosure we zero-knowledge: bahany däl, hakykaty görkez

Doglan senäni açman 18 ýaşdan uludygyňy subut et. Az paýlaşyp köp subut etmegiň matematikasy.

Häzirki zaman sanly şahsyýetiň iň güýçli pikiri iň ýönekeý aýdylýanydyr: barlaýja diňe zerur zady ber, artygyny däl. Iki kriptografiýa gatlagy muny hakykata öwürýär: selective disclosure we zero-knowledge subutnamalary.

Selective disclosure (SD-JWT)

Credential — claim-leriň toplumydyr. Issuer, çig bahalary däl, olaryň salted hash-lerini imzalaýar. Bir claim-i açmak üçin holder onuň duzuny (salt) we bahasyny görkezýär; barlaýjy hash-i gaýtadan hasaplap imzalanan toplum bilen deňeşdirýär. Açylmadyk claim-ler hiç zat syzdyrmaýar — salt olary yzyna öwrülmez edýär.

salted-hash disclosure
for each claim c_i with random salt s_i:
    d_i = H( s_i || c_i )
issuer signs the set  D = { d_1, ..., d_n }

reveal claim i:  holder shows (s_i, c_i)
verify:          H(s_i||c_i) == d_i  AND  d_i in D  AND  Sig_issuer(D) ok

Zero-knowledge: bahasyz hakykat

Selective disclosure entek açylan meýdany doly görkezýär. Zero-knowledge subutnamalary bir ädim öňe gidýär: gizlin baha barada bir predicate subut edýärsiň. Nusga — doglan senäni açman “ýaş ≥ 18” subut etmek — imzalanan commitment üstünde range proof-a öwrülýär. Barlaýjy diňe bir boolean öwrenýär.

predicate proof
issuer signs commitment  C = Commit(birth_date, r)
holder proves in zero knowledge:
    exists (birth_date, r):  C = Commit(...)  AND  today - birth_date >= 18y
verifier learns ONLY the boolean  (range proof: Bulletproofs / BBS+)

BBS+ imzalary bilen hödürlemeler hem unlinkable bolýar — iki barlaýjy şol bir adamy görendigini bilip bilmeýär. Bu primitiwler ýol kartamyzda; kämilleşdigiçe we barlagdan geçdigiçe girýär. Köpräk: Saýlama açyklama we SD-JWT.