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.
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) okZero-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.
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.