Sa totoong buhay at sa digital na mundo, madalas nating gustong patunayan ang mga bagay-bagay sa iba. Bago pumasok sa isang gusali ng opisina, ang mga empleyado ay karaniwang nagbibigay ng ilang uri ng ID bago makapasok sa loob.
Kapag sinubukan ng mga user na mag-log in sa isang app gaya ng Facebook o Twitter, dapat munang hilingin ng mga serbisyong ito sa user na mag-log in gamit ang isang password at paminsan-minsan ay nagpapadala ng one-time passcode (OTP) sa kanilang mobile device.
Ang isang downside ng pagbibigay ng patunay ay madalas kaming nagbibigay ng iba pang mga uri ng impormasyon. Ang pagbibigay ng password sa isang website ay nangangahulugan pa rin na ang website mismo ay nagpapanatili ng kopya ng na-hash na password sa mga server nito. Kung may magha-hack ng employee ID scanner ng gusali ng opisina, maaaring makuha nila ang mga pribadong susi ng lahat.
Ang mga zero-knowledge proof o ZKP ay nagbibigay ng paraan para sa pagpapatunay ng pagkakakilanlan o transaksyon nang hindi kinakailangang magbigay ng karagdagang impormasyon. Dahil sa mga aplikasyon nito sa cryptography, ang mga ZKP ay inangkop ng blockchains upang lumikha ng ligtas at nasusukat na mga protocol sa pagpapatunay.
Ano ang Zero-Knowledge Proofs?
Ang mga patunay ng zero-knowledge ay unang iminungkahi ng mga mananaliksik ng MIT na sina Silvio Micali, Charles Rackoff, at Shafi Goldwasser noong 1985 sa kanilang papel. "Ang pagiging kumplikado ng kaalaman ng Interactive Proof-Systems"
Ipinakilala ng papel na ito ang konsepto ng pagiging kumplikado ng kaalaman. Ito ay tumutukoy sa dami ng kaalaman tungkol sa isang patunay na inilipat mula sa prover patungo sa verifier. Nilalayon ng mga zero-knowledge proof na payagan ang isang partido na patunayan na ang isang partikular na pahayag ay totoo sa ibang partido nang hindi kinakailangang magbunyag ng anumang iba pang impormasyon.
Ang mga ZKP ay maaaring gamitin bilang isang ligtas na alternatibo sa kasalukuyang mga sistema ng pagpapatunay at maaari ding idagdag sa mga protocol ng blockchain upang mapanatiling pribado ang mga transaksyon.
Paano Gumagana ang mga ZKP?
Halimbawa ng Tunay na Daigdig
Upang ilarawan kung paano gumagana ang mga patunay ng zero-knowledge, tingnan natin ang isang abstract na halimbawa ng isang ZKP.
Sabihin nating may kaibigan kang red-green colorblind. Mayroon kang dalawang magkaparehong bola na naiiba lang sa kulay: isang pula, at isang berde. Sa iyong kaibigan, magkamukha sila, ngunit bilang isang taong walang colorblindness, madali mo silang mapaghiwalay.
Posible bang patunayan mo sa iyong kaibigan na iba sila ng kulay nang hindi inilalantad kung aling bola ang pula o berde?
Sa katunayan, mayroong isang paraan upang patunayan ito nang hindi inilalantad ang mga kulay ng mga bola. Una, dapat mong hayaan ang iyong kaibigan na ilagay ang parehong bola sa likod niya at sabihin sa kanya na magpakita ng anumang bola at itago itong muli. Susunod, sasabihin mo sa iyong kaibigan na may pagpipilian siyang ipakita muli ang parehong bola o ilipat ito sa isa.
Sa tuwing may ipapakitang bagong bola, masasabi mo sa kanya kung inilipat niya ang bola o hindi. Kung patuloy mong hulaan ang tamang tawag, ito ay nagiging mas at mas malamang na ang mga bola ay naiiba ang kulay. Ang iyong kaibigan ay dapat na ngayon ay kumbinsido na ang mga bola ay naiiba ang kulay nang hindi na kailangang sabihin sa kanya kung aling mga bola ang may kulay.
praktikal Aplikasyon
Karamihan sa mga praktikal na halimbawa ng zero-knowledge proofs ay nahahati sa dalawang uri.
Una, maaaring gamitin ang mga ZKP kapag nagdidisenyo ng mga protocol. Maaari naming matiyak na ang iba't ibang partido ay hindi maaaring mandaya o magsamantala sa protocol. Pangalawa, maaaring gamitin ang mga ZKP para sa pagkakakilanlan.
Halimbawa, maaari naming gamitin ang mga ZKP upang mag-log in sa isang web application nang ligtas nang hindi kinakailangang ibunyag ang mismong password.
Tingnan natin ang ilang halimbawa kung paano natin magagamit ang mga patunay na walang kaalaman.
E-Pagboto
Ang isang karaniwang tinatalakay na aplikasyon ng mga ZKP ay ang kanilang posibleng papel sa online na pagboto. Sabihin nating mayroon tayong paparating na reperendum kung saan makakaboto ang mga user sa isang iminungkahing patakaran. Ang bawat karapat-dapat na botante ay pinapayagang bumoto ng alinman sa 1 o 0 sa balota.
Gamit ang mga ZKP, mapapatunayan ng mga botante ang kanilang karapatang bumoto nang hindi ibinubunyag ang kanilang pagkakakilanlan. Tinitiyak nito na ang bawat boto ay magiging tunay na anonymous. Gagamitin din ang karagdagang ZKP upang patunayan na ang boto ng isang partikular na user ay bahagi ng huling tally ng mga boto.
Tungkol sa mga nilalaman mismo ng mga balota, ang sistema ng pagboto ay maaari ding bumuo ng zero-knowledge proof na ang bawat balota ay naglalaman ng alinman sa 1 o 0. Ito ay nagagawa nang hindi kinakailangang malaman ang mga nilalaman ng balota mismo.
Privacy ng Blockchain
Ang mga blockchain tulad ng Bitcoin at Ethereum ay hindi katutubong sumusuporta sa mga pribadong transaksyon. Hangga't ang iyong Bitcoin wallet ay pampubliko, kahit sino ay maaaring pumunta sa isang block explorer gaya ng Blockstream para makita ang lahat ng transaksyon kung saan bahagi ang wallet.
Samantala, ang paggamit ng isang serbisyo tulad ng isang bangko o mga serbisyo sa pagbabayad tulad ng Cash App o Venmo ay nagbibigay sa iyo ng kakayahang makipagtransaksyon nang pribado. Ang kaginhawaan na ito, gayunpaman, ay dumating sa halaga ng pagbubunyag ng iyong impormasyon sa sentralisadong serbisyo.
Maaari naming pagsamahin ang anonymity sa desentralisasyon sa pamamagitan ng pagdaragdag ng mga ZKP sa blockchain protocol. Ang mga cryptocurrency tulad ng ZCash ay gumagamit ng mga ZKP upang lumikha ng mga pribadong transaksyon na nagpapahintulot sa mga may hawak ng barya na mapanatili ang kanilang hindi pagkakilala. Ang ilan sa mga cryptocurrencies na ito ay gumagamit ng isang uri ng ZKP na kilala bilang zk-SNARK.
Ang mga ZKP na ito ay hindi nangangailangan ng pakikipag-ugnayan sa pagitan ng prover at ng verifier.
Zero-Knowledge Rollups
Ang ZK-rollups ay isang scalability solution na nagbibigay-daan sa mga off-chain na transaksyon na ma-verify kaagad at may kaunting gas fee. Ang mga ito ay isang paraan upang pagsamahin ang isang malaking bilang ng mga transaksyon sa Layer 2 at isumite ang mga ito sa Layer 1 protocol.
Bukod sa pagbibigay ng privacy, pinapayagan ng mga ZKP ang pag-scale ng mga kumplikadong system. Ang mga protocol ng Blockchain ay maaaring gumamit ng mga ZKP upang patunayan na ang mga gumagamit ay naayos na ang mga tamang transaksyon, may naaangkop na balanse, at iba pa. Ang mga secure ngunit nasusukat na solusyon na ito ay posible lamang sa pamamagitan ng mga mathematical na patunay na ginawa off-chain sa mga ZKP.
Gumagamit ang mga protocol tulad ng Loopring ng mga zero-knowledge proofs upang makatulong sa pagproseso ng mga off-chain na transaksyon nang hindi kinakailangang ikompromiso ang seguridad.
Mga Benepisyo ng Zero-Knowledge Proofs
- Pinapalitan ng mga ZKP ang mga hindi gaanong maaasahang paraan ng pagpapatotoo gaya ng mga PIN o mga identification card
- Pinapataas ng ZKPS ang scalability ng mga blockchain
- Ang pagpapatupad ng ZKP ay nangangailangan ng mga simpleng paraan ng pag-encrypt
- Ang paggamit ng ZKPS ay maaaring gawing mas secure ang mga system sa pamamagitan ng hindi pag-aatas ng hindi kinakailangang impormasyon na maiimbak sa system.
Konklusyon
Ang privacy ng data ay isa nang pangunahing isyu sa parehong sentralisado at desentralisadong mga sistema. Ang mga zero-knowledge proofs ay nagbibigay ng paraan para sa iba't ibang partido na patunayan o patunayan ang mga transaksyon at pagkakakilanlan nang hindi kinakailangang ibunyag ang nasabing mga transaksyon o pagkakakilanlan.
Habang ang teknolohiya ng blockchain ay nagiging mas malawak na ginagamit, ang pag-aampon ng mga ZKP upang ligtas na pangasiwaan ang pag-verify ay magiging susi sa mga alalahanin sa scalability.
Mag-iwan ng Sagot